电子说
本设计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引脚。
全部0条评论
快来发表一下你的评论吧 !