带你深入了解车牌号识别系统,STM32F103RBT单片机为主控

电子说

1.3w人已加入

描述

本设计STM32F103RBT单片机为主控,控制OV7670摄像头(带FIFO)进行图像采集,通过模式识别、匹配获得车牌的识别结果,并在显示屏上显示。为尽大可能的提高处理速度,所以对STM32单片机进行了16倍频。识别主要过程包括图像采集、二值化分析、识别车牌区域、字符分割、字符匹配五过程。在有需要的地方上面可以增加计时计费功能,以便对车辆进行实时有效的管理。减少车辆过多造成困扰,减少城市交通带来的负担,在交通违章方面起到监督的作用。

数据采集

1、图像采集

图像通过OV7670摄像头进行数据采集,采集的图像大小为320*240像素,像素格式为RGB565。每个像素由两字节组成,第一字节的高五位是R,第一字节的低三位和第二字节的高三位组成G,第二字节的低五位是B。图像通过STM32单片机读取,并将数据进行特殊处理后,显示于TFT显示屏上。

2、二值化分析

摄像头的数据在采集过程中,对每个像素进行二值化处理,即设定R、G、B的阈值。通过二值化处理,将像素值分为全黑0x0000和全白0xffff两种。同时通过程序分析出每行的跳变点。分析跳变点的目的是识别出车牌区域。

3、识别车牌区域

通过二值化分析出各行的跳变点,车牌区域处由于字符,导致跳变点明显较多,约大于15个,通过跳变点的分析和判断,即可识别出车牌区域位置。如下图中左侧红色标记点,即为各行的跳变点数目。本系统程序中设定跳变点大于15个,在连续行存在多个跳变点大于15的位置处,将起始位置设定为车牌区域的上边边界Y_up,结束位置设定为车牌区域的下边边界Y_down。再通过RGB-HSV颜色转换,识别出车牌区域的左边边界X_left和右边边界X-right。这样既可获取车牌区域的准确边界,如下图蓝色边框范围。

4、字符分割

车牌区域识别后,再次通过二值化进行字符的分割处理。处理过程中,获取各个字符的左边边界kk和右边边界k,若分割出来的字符数为8,则分割比较准确。如下图所示,竖向蓝线为各个字符的边界标记。字符分割,为下一步字符匹配准备总要参数。

5、字符匹配

字符分割后,进行归一化处理,再逐一对各个字符进行字符匹配。字符模板通过取模软件先提取出,存放于程序中,其大小为24*50的单一像素。匹配后,将相似性最大值的对应字符作为输出结果,并予以显示。

因单片机容量有限,目前车牌识别的汉字只有6个:渝闽京浙陕粤。买家可以通过更改程序,更换其他的汉字。数字和字母是全部能识别。

电路原理图

系统供电为DC5V ,接入STM32核心板5V引脚。STM32核心板上通过稳压芯片AMS1117将5V变为3.3V电压,并通过核心板引脚输出。3.3V电压为STM32芯片、摄像头模块、TFT彩屏的供电电压。焊接电路时,将摄像头模块和TFT彩屏接至3.3V引脚,而不是5V引脚。

打开APP阅读更多精彩内容
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉

全部0条评论

快来发表一下你的评论吧 !

×
20
完善资料,
赚取积分