1.摘要
在智能交通领域,汽车牌照自动识别系统是道路交通智能化的重要因素,包括车牌定位、字符分割和字符识别三个主要部分。本项目主要探讨车牌定位和字符分割两个部分,字符 识别部分由于开发板资源有限,因此采用matlab完成算法验证。本文首先确定车辆牌照在原始图像中的水平位置和垂直位置,从而定位车辆牌照,然后采用局部投影进行字符分割。在字符识别部分,采用较为简单的末班匹配方法进行识别。实验结果表明,该方法具有良好的识别性能。随着公路逐渐普及,我国的公路交通 事业发展迅速,所以人工管理方式已经不能满足实际的需要,微电子、通信和计算机技术在交通领域的应用极大地提高了交通管理效率。汽车牌照的自动识别技术必将得到广泛应用,如小区门禁、智能电子交通警察、犯罪分子车辆追踪等等领域。
2.设计原理
由于车辆牌照是机动车唯一的管理标识符号,在交通管理中具有不可替代的作用,因此车辆牌照识别系统应具有很高的识别正确率,对环境光照条件、拍摄位置和车辆行驶速度等因素的影响应有较大的容阈,并且要求满足实时性要求。
图1 牌照识别系统总体流程
该系统是图像处理与字符识别技术在智能化交通管理系统中的应用,它主要由图像的采集和预处理、牌照区域的定位和提取、牌照字符的分割和识别等几个部分组成,如图1 所示。其基本工作过程如下:
(1)当行驶的车辆经过时,触发埋设在固定位置的传感器,系统被唤醒处于工作状态;一旦连接摄像头光快门的光电传感器被触发,设置在车辆前方、后方和侧面的相机同时拍摄下车辆图像;
(2)由摄像头拍摄的含有车辆牌照的图像通视频卡输入计算机进行预处理,图像预处理包括图像转换、图像增强、滤波和水平较正等;
(3)由检索模块进行牌照搜索与检测,定位并分割出包含牌照字符号码的矩形区域;
(4)对牌照字符进行二值化并分割出单个字符,经归一化后输入字符识别系统进行识别。
3.算法的详细设计步骤
3.1 提出总体设计方案
车辆牌照识别整个系统主要是由车牌定位和字符识别两部分组成,其中车牌定位又可以分为图像预处理及边缘提取模块和牌照的定位及分割模块;字符识别可以分为字符分割与特征提取和单个字符识别两个模块。
为了用于牌照的分割和牌照字符的识别,原始图象应具有适当的亮度,较大的对比度和清晰可辩的牌照图象。但由于该系统的摄像部分工作于开放的户外环境,加之车辆牌照的整洁度、自然光照条件、拍摄时摄像机与牌照的矩离和角度以及车辆行驶速度等因素的影响,牌照图象可能出现模糊、歪斜和缺损等严重缺陷,因此需要对原始图象进行识别前的预处理。
牌照的定位和分割是牌照识别系统的关键技术之一,其主要目的是在经图象预处理后的原始灰度图象中确定牌照的具体位置,并将包含牌照字符的一块子图象从整个图象中分割出来,供字符识别子系统识别之用,分割的准确与否直接关系到整个牌照字符识别系统的识别率。
由于拍摄时的光照条件、牌照的整洁程度的影响,和摄像机的焦距调整、镜头的光学畸变所产生的噪声都会不同程度地造成牌照字符的边界模糊、细节不清、笔划断开或粗细不均,加上牌照上的污斑等缺陷,致使字符提取困难,进而影响字符识别的准确性。因此,需要对字符在识别之前再进行一次针对性的处理。
为了进行牌照识别,需要以下几个基本的步骤:
a.牌照定位,定位图片中的牌照位置;
b.牌照字符分割,把牌照中的字符分割出来;
c.牌照字符识别,把分割好的字符进行识别,最终组成牌照号码。
车牌识别的最终目的就是对车牌上的文字进行识别。主要应用的为模板匹配方法。
3.2 图象的采集与转换
考虑到现有牌照的字符与背景的颜色搭配一般有蓝底白字、黄底黑字、白底红字、绿底白字和黑底白字等几种,利用不同的色彩通道就可以将区域与背景明显地区分出来,本系统中,对蓝底白字这种最常见的牌照,采用蓝色B 通道时牌照区域为一亮的矩形,而牌照字符在区域中并不呈现。因为蓝色(255,0,0)与白色(255,255,255)在B 通道中并无区分,而在G、R 通道或是灰度图象中并无此便利。同理对白底黑字的牌照可用R 通道,绿底白字的牌照可以用G 通道就可以明显呈现出牌照区域的位置,便于后续处理。原图、灰度图及其直方图见图2与图3。对于将彩色图象转换成灰度图象时,图象灰度值可由下面的公式计算:
G=0.110B+0.588G+0.302R (1)
G= (B+G+R)/3 (2)
3.3 预处理及边缘提取
图2 预处理及边缘提取流程图
3.4 平滑处理
对于受噪声干扰严重的图象,由于噪声点多在频域中映射为高频分量,因此可以在通过低通滤波器来滤除噪声,但实际中为了简化算法也可以直接在空域中用求邻域平均值的方法来削弱噪声的影响,这种方法称为图象平滑处理。例如,某一象素点的邻域S 有两种表示方法:8邻域和4邻域分别对应的邻域平均值为
其中,M 为邻域中除中心象素点f(i,j) 之外包括的其它象素总数,对于4邻域M=4,8 邻域M=8。然而,邻域平均值的平滑处理会使得图象灰度急剧变化的地方,尤其是物体边缘区域和字符轮廓等部分产生模糊作用。为了克服这种平均化引起的图象模糊现象,我们给中心点象素值与其邻域平均值的差值设置一固定的阈值,只有大于该阈值的点才能替换为邻域平均值,而差值不大于阈值时,仍保留原来的值,从而减少由于平均化引起的图象模糊。
由上图可以归纳起来以下方面:原始图像清晰度比较高,从而简化了预处理,结合MATLAB实验过程,得出不是每一种图像处理之初都适合滤波和边界增强。本次汽车车牌的识别,为了保存更多的有用信息。
3.5 牌照的定位
牌照的定位和分割是牌照识别系统的关键技术之一,其主要目的是在经图象预处理后的原始灰度图象中确定牌照的具体位置,并将包含牌照字符的一块子图象从整个图象中分割出来,供字符识别子系统识别之用,分割的准确与否直接关系到整个牌照字符识别系统的识别率。由于牌照图象在原始图象中是很有特征的一个子区域,确切说是水平度较高的横向近似的长方形,它在原始图象中的相对位置比较集中,而且其灰度值与周边区域有明显的不同,因而在其边缘形成了灰度突变的边界,这样就便于通过边缘检测来对图象进行分割。
自然环境下,汽车图像背景复杂、光照不均匀,如何在自然背景中准确地确定牌照区域是整个识别过程的关键。首先对采集到的视频图像进行大范围相关搜索,找到符合汽车牌照特征的若干区域作为候选区,然后对这些侯选区域做进一步分析、评判,最后选定一个最佳的区域作为牌照区域,并将其从图象中分割出来。流程图如下:
图3 牌照的定位流程图
3.6 牌照字符分割
完成牌照区域的定位后,再将牌照区域分割成单个字符,然后进行识别。字符分割一般采用垂直投影法。由于字符在垂直方向上的投影必然在字符间或字符内的间隙处取得局部最小值的附近,并且这个位置应满足牌照的字符书写格式、字符、尺寸限制和一些其他条件。利用垂直投影法对复杂环境下的汽车图像中的字符分割有较好的效果。流程图如下
图4 牌照字符分割流程图
3.7 字符的分割与归一化
一般分割出来的字符要进行进一步的处理,以满足下一步字符识别的需要。但是对于车牌的识别,并不需要太多的处理就已经可以达到正确识别的目的。在此只进行了归一化处理,然后进行后期处理。
图5 字符分割与归一化流程图
3.8 字符的识别
字符的识别目前用于车牌字符识别(OCR)中的算法主要有基于模板匹配的OCR算法以及基于人工神经网络的OCR算法。基于模板匹配的OCR的基本过程是:首先对待识别字符进行二值化并将其尺寸大小缩放为字符数据库中模板的大小,然后与所有的模板进行匹配,最后选最佳匹配作为结果。模板匹配的主要特点是实现简单,当字符较规整时对字符图像的缺损、污迹干扰适应力强且识别率相当高。综合模板匹配的这些优点我们将其用为车牌字符识别的主要方法。
模板匹配是图象识别方法中最具代表性的基本方法之一,它是将从待识别的图象或图象区域f(i,j)中提取的若干特征量与模板T(i,j)相应的特征量逐个进行比较,计算它们之间规格化的互相关量,其中互相关量最大的一个就表示期间相似程度最高,可将图象归于相应的类。也可以计算图象与模板特征量之间的距离,用最小距离法判定所属类。然而,通常情况下用于匹配的图象各自的成像条件存在差异,产生较大的噪声干扰,或图象经预处理和规格化处理后,使得图象的灰度或像素点的位置发生改变。在实际设计模板的时候,是根据各区域形状固有的特点,突出各类似区域之间的差别,并将容易由处理过程引起的噪声和位移等因素都考虑进去,按照一些基于图象不变特性所设计的特征量来构建模板,就可以避免上述问题。
图6 字符识别流程图
此处我们采用相减的方法来求得字符与模板中哪一个字符最相似,然后找到相似度最大的输出。汽车牌照的字符一般有七个,大部分车牌第一位是汉字,通常代表车辆所属省份,紧接其后的为字母与数字。车牌字符识别与一般文字识别在于它的字符数有限,汉字共约50多个,大写英文字母26个,数字10个。为了实验方便,结合本次设计所选汽车牌照的特点,只建立了4个数字26个字母与10个数字的模板。其他模板设计的方法与此相同。
首先取字符模板,接着依次取待识别字符与模板进行匹配,将其与模板字符相减,得到的0越多那么就越匹配。把每一幅相减后的图的0值个数保存,即为识别出来的结果。
4.基于FPGA的算法实现
4.1 摄像头数据读取模块
图7 摄像头数据读取模块RTL图
4.2 灰度、二值化模块
该模块基于system generator实现。
图8 灰度变化
图9 图像的二值化
4.3 定位模块
图10 定位模块
图11 车牌号定位具体算法
4.4 分割模块(略)
4.5 识别模块
识别模块由于我们采用开发板的资源不足,故采用mablab仿真模拟,具体分为图像预处理---车牌定位---字符分割----模板匹配几个步骤。实现具体的实现结果如下:
图12 原始图像
图13 灰度图像
图14 行定位之后的图像
图15 列定位及字符分割之后的图像
图16 matlab算法识别之后的结果
5.FPGA DIY体会
对现实事物的设计不仅是对前面所学知识的一种检验,而且也是对自己能力的一种提高。通过这次设计使 我明白了自己原来知识还比较欠缺。这个设计让我学到了很多东西,涉及到方方面面的知识,在这整个过程中我们查阅了大量的资料,得到了老师和同学的帮助,我 在此对他们表示谢意。在这期间遇到了很多困难,我知道做什么都不容易,只能塌下心来,一步一个脚印的去完成才行。这学期我们学习了数字图像处理这门课程, 在这个课程设计中应用到了很多其中的知识。理论只有应用到实际中才能学着更有意义。学习是一个长期积累的过程,在后的工作、生活中都应该不断的学习,努力 提高自己知识和综合素质。此外,还得出一个结论:知识必须通过应用才能实现其价值!有些东西以为学会了,但真正到用的时候才发现是两回事,所以我认为只有 到真正会用的时候才是真的学会了。在整个设计中我懂得了许多东西,也培养了我独立工作的能力,以及团队协作的能力,树立了信心,相信会对今后的学习工作生 活有非常重要的影响。同样此次设计也大大提高了动手的能力,使我充分体会到了在创造过程中探索的艰难和成功时的喜悦。虽然这个设计做的并非对所以车牌都合 适,但是在设计过程中所学到的学习方法是我最大收获和财富,相信定会使我受益终身。
6.作品实物图
7.参考文献
[1] 冈萨雷斯.数字图像处理(第二版).电子工业出版社,2007.8
[2] 胡小锋、赵辉.VC++/MATLAB图像处理与识别使用案例精选。人民邮电出版社,2004.9
[3] 郁梅等,基于视觉的车辆牌照检测,计算机应用研究,1999(5),P65~67
[4] 叶晨洲,廖金周,一种基于纹理的牌照图象二值化方法, 1999(6),P28~29
[5] 朱学芳等,一种自适应细化方法,模式识别与人工智能,Vol.10,No.2,1997(6),P140~145
[6] 杨万山等,基于BP 神经网络的工程图纸图形符号的识别, Vol.16,No.2,2000
[7] 袁志伟,潘晓露。车辆牌照定位的算法研究[J]。昆明理工大学学报,2001,26(2): 56~60
[8] 刘阳,伊铁源等。数字图象处理应用于车辆牌照的识别。辽宁大学学报.2004,65~68
[9] 许志影、李晋平.MATLAB极其在图像处理中的应用。计算机与现代化,2004(4)
[10] 崔江、王友仁。车牌自动识别方法中的关键技术研究。计算机测量与控制,2003.11(4)
[11] 宋建才。汽车牌照识别技术研究[J]。工业控制计算机,2004,44~45.
[12] 韩勇强、李世祥。汽车牌照子图像的定位算法[M]。微型电脑运用,1999.60~65.
[13] 梁玮、罗剑锋、贾云得。一种复杂背景下的多车牌图像分割与识别方法[D]。 2003.
[14] 张 引,潘云鹤,面向车辆牌照字符识别的预处理算法,计算机应用研究,1999(7),P85~87
[15] 叶晨洲等,车辆牌照字符识别系统,计算机系统应用,1999(5),P10~13
[16] 李宏升等,利用牌照识别技术的停车场安全防盗系统,计算机系统应用,1999(5),P14~16
更多赛灵思FPGA DIY系列文章:
赛灵思FPGA DIY系列(1):车牌号定位与识别系统【详情】
赛灵思FPGA DIY系列(2):数字存储扫频仪【详情】
赛灵思FPGA DIY系列(3):HDUSec-网络行为分析监控系统【详情】
赛灵思FPGA DIY系列(4):温控风扇系统的设计【详情】
赛灵思FPGA DIY系列(5):中频全数字频谱分析仪的实现【详情】
评论
查看更多