车牌识别算法研究及实现
山东大学信息科学与工程学院
2012 年 3 月 28 日
目录
一.摘要 ........................................................................................................................................................................ 2
二.设计原理 ................................................................................................................................................................ 2
三.算法的详细设计步骤 ............................................................................................................................................3
3.1 提出总体设计方案。 ....................................................................................................................................3
3.2 图象的采集与转换 ........................................................................................................................................4
3.3 预处理及边缘提取 ......................................................................................................................................4
3.4 平滑处理 ........................................................................................................................................................4
3.5 牌照的定位 ....................................................................................................................................................5
3.6 牌照字符分割 ................................................................................................................................................6
3.7 字符的分割与归一化 ....................................................................................................................................6
3.8 字符的识别 ....................................................................................................................................................7
四、基于 FPGA 的算法实现........................................................................................................................................9
1、整体 RTL 图......................................................................................................................................................9
2、灰度、二值化模块 ..........................................................................................................................................9
3、定位模块 ........................................................................................................................................................10
4、分割模块 ........................................................................................................................................................ 11
5、识别模块 ........................................................................................................................................................ 11
五、识别效果图 .......................................................................................................................................................... 11
六.体会 ...................................................................................................................................................................... 12
七.参考文献 .............................................................................................................................................................. 13
1
车牌识别算法研究及实现
一.摘要
汽车牌照自动识别系统是制约道路交通智能化的重要因素,包括车牌定位、字符分
割和字符识别三个主要部分。本文首先确定车辆牌照在原始图像中的水平位置和垂直位
置,从而定位车辆牌照,然后采用局部投影进行字符分割。在字符识别部分,提出了在无
特征提取情况下基于支持向量机的车牌字符识别方法。实验结果表明,本文提出的方法
具有良好的识别性能。随着公路逐渐普及,我国的公路交通事业发展迅速,所以人工管
理方式已经不能满足实际的需要,微电子、通信和计算机技术在交通领域的应用极大地
提高了交通管理效率。汽车牌照的自动识别技术已经得到了广泛应用。
二.设计原理
由于车辆牌照是机动车唯一的管理标识符号,在交通管理中具有不可替代的作用,
因此车辆牌照识别系统应具有很高的识别正确率,对环境光照条件、拍摄位置和车辆
行驶速度等因素的影响应有较大的容阈,并且要求满足实时性要求。
图1 牌照识别系统总体流程
该系统是图像处理与字符识别技术在智能化交通管理系统中的应用,它主要由图像
的采集和预处理、牌照区域的定位和提取、牌照字符的分割和识别等几个部分组成,如
图1 所示。其基本工作过程如下:
2
(1)当行驶的车辆经过时,触发埋设在固定位置的传感器,系统被唤醒处于工作状态;
一旦连接摄像头光快门的光电传感器被触发,设置在车辆前方、后方和侧面的相机同时
拍摄下车辆图像;
(2)由摄像头拍摄的含有车辆牌照的图像通视频卡输入计算机进行预处理,图像预处理
包括图像转换、图像增强、滤波和水平较正等;
(3)由检索模块进行牌照搜索与检测,定位并分割出包含牌照字符号码的矩形区域;
(4)对牌照字符进行二值化并分割出单个字符,经归一化后输入字符识别系统进行识别。
三.算法的详细设计步骤
3.1 提出总体设计方案。
车辆牌照识别整个系统主要是由车牌定位和字符识别两部分组成,其中车牌定位又可
以分为图像预处理及边缘提取模块和牌照的定位及分割模块;字符识别可以分为字符分割
与特征提取和单个字符识别两个模块。
为了用于牌照的分割和牌照字符的识别,原始图象应具有适当的亮度,较大的对比度
和清晰可辩的牌照图象。但由于该系统的摄像部分工作于开放的户外环境,加之车辆牌照
的整洁度、自然光照条件、拍摄时摄像机与牌照的矩离和角度以及车辆行驶速度等因素的
影响,牌照图象可能出现模糊、歪斜和缺损等严重缺陷,因此需要对原始图象进行识别前
的预处理。
牌照的定位和分割是牌照识别系统的关键技术之一,其主要目的是在经图象预处理后
的原始灰度图象中确定牌照的具体位置,并将包含牌照字符的一块子图象从整个图象中分
割出来,供字符识别子系统识别之用,分割的准确与否直接关系到整个牌照字符识别系统
的识别率。
由于拍摄时的光照条件、牌照的整洁程度的影响,和摄像机的焦距调整、镜头的光学
畸变所产生的噪声都会不同程度地造成牌照字符的边界模糊、细节不清、笔划断开或粗细
不均,加上牌照上的污斑等缺陷,致使字符提取困难,进而影响字符识别的准确性。因此,
需要对字符在识别之前再进行一次针对性的处理。
为了进行牌照识别,需要以下几个基本的步骤:
a.牌照定位,定位图片中的牌照位置;
b.牌照字符分割,把牌照中的字符分割出来;
3
c.牌照字符识别,把分割好的字符进行识别,最终组成牌照号码。
车牌识别的最终目的就是对车牌上的文字进行识别。主要应用的为模板匹配方法。
3.2 图象的采集与转换
考虑到现有牌照的字符与背景的颜色搭配一般有蓝底白字、黄底黑字、白底红字、绿
底白字和黑底白字等几种,利用不同的色彩通道就可以将区域与背景明显地区分出来,本
系统中,对蓝底白字这种最常见的牌照,采用蓝色 B 通道时牌照区域为一亮的矩形,而
牌照字符在区域中并不呈现。因为蓝色(255,0,0)与白色(255,255,255)在 B 通
道中并无区分,而在 G、R 通道或是灰度图象中并无此便利。同理对白底黑字的牌照可用
R 通道,绿底白字的牌照可以用 G 通道就可以明显呈现出牌照区域的位置,便于后续处
理。原图、灰度图及其直方图见图 2 与图 3。对于将彩色图象转换成灰度图象时,图象灰
度值可由下面的公式计算:
G=0.110B+0.588G+0.302R
RGB
G=
3.3 预处理及边缘提取
(1)
(2)
3
输入车牌图象—RGB
灰度变化
平滑处理
二值
图2 预处理及边缘提取流程图
3.4 平滑处理
对于受噪声干扰严重的图象,由于噪声点多在频域中映射为高频分量,因此可以在通过低
4
通滤波器来滤除噪声,但实际中为了简化算法也可以直接在空域中用求邻域平均值的方
法莱削弱噪声的影响,这种方法称为图象平滑
处理。例如,某一象素点的邻域S 有两种表示方法:8邻域和4邻域分别对应的邻域平均值为
4
5
6
3
2
i,j 1
7
8
2
3
i,j
1
( ,
g i
j
)
1
M
4
( ,
i
j
)
f
( ,
i
j
)
s
其中,M 为邻域中除中心象素点f(i,j) 之外包括的其它象素总数,对于4邻域M=4,8 邻
域M=8。然而,邻域平均值的平滑处理会使得图象灰度急剧变化的地方,尤其是物体边缘区域
和字符轮廓等部分产生模糊作用。为了克服这种平均化引起的图象模糊现象,我们给中心点象
素值与其邻域平均值的差值设置一固定的阈值,只有大于该阈值的点才能替换为邻域平均值,
而差值不大于阈值时,仍保留原来的值,从而减少由于平均化引起的图象模糊。
由上图可以归纳起来以下方面:原始图像清晰度比较高,从而简化了预处理,结合 MATLAB
实验过程,得出不是每一种图像处理之初都适合滤波和边界增强。本次汽车车牌的识别,为
了保存更多的有用信息。
3.5 牌照的定位
牌照的定位和分割是牌照识别系统的关键技术之一,其主要目的是在经图象预处理后的原
始灰度图象中确定牌照的具体位置,并将包含牌照字符的一块子图象从整个图象中分割出来,
供字符识别子系统识别之用,分割的准确与否直接关系到整个牌照字符识别系统的识别率。
由于牌照图象在原始图象中是很有特征的一个子区域,确切说是水平度较高的横向近似的长
方形,它在原始图象中的相对位置比较集中,而且其灰度值与周边区域有明显的不同,因而
在其边缘形成了灰度突变的边界,这样就便于通过边缘检测来对图象进行分割。
自然环境下,汽车图像背景复杂、光照不均匀,如何在自然背景中准确地确定牌照区域是
整个识别过程的关键。首先对采集到的视频图像进行大范围相关搜索,找到符合汽车牌照特
征的若干区域作为候选区,然后对这些侯选区域做进一步分析、评判,最后选定一个最佳的
区域作为牌照区域,并将其从图象中分割出来。
流程图:
RGB 转为
二值化
行列
扫描法
得到行列
车牌定位
边界
5
导入原
始图像
3.6 牌照字符分割
图 3 牌照的定位流程图
完成牌照区域的定位后,再将牌照区域分割成单个字符,然后进行识别。字符分割一般采
用垂直投影法。由于字符在垂直方向上的投影必然在字符间或字符内的间隙处取得局部最小值
的附近,并且这个位置应满足牌照的字符书写格式、字符、尺寸限制和一些其他条件。利用垂
直投影法对复杂环境下的汽车图像中的字符分割有较好的效果。
流程图
计 算 水 平 投 影 进
行车牌水平校正
去掉车牌
的框架
分析垂直投影找到每
个字符中心位置
按左右宽度
切割出字符
图 3 牌照字符分割流程图
3.7 字符的分割与归一化
一般分割出来的字符要进行进一步的处理,以满足下一步字符识别的需要。但是对于车牌
的识别,并不需要太多的处理就已经可以达到正确识别的目的。在此只进行了归一化处理,
然后进行后期处理。
[m,n]=size(d),逐排检查有没有白色像素点,设置 1<=j
图4 字符分割与归一化流程图
3.8 字符的识别
字符的识别目前用于车牌字符识别(OCR)中的算法主要有基于模板匹配的OCR算法以及
基于人工神经网络的OCR算法。基于模板匹配的OCR的基本过程是:首先对待识别字符进行二
值化并将其尺寸大小缩放为字符数据库中模板的大小,然后与所有的模板进行匹配,最后选
最佳匹配作为结果。模板匹配的主要特点是实现简单,当字符较规整时对字符图像的缺损、
污迹干扰适应力强且识别率相当高。综合模板匹配的这些优点我们将其用为车牌字符识别的
主要方法。
模板匹配是图象识别方法中最具代表性的基本方法之一,它是将从待识别的图象或图象
区域f(i,j)中提取的若干特征量与模板T(i,j)相应的特征量逐个进行比较,计算它们之间规
格化的互相关量,其中互相关量最大的一个就表示期间相似程度最高,可将图象归于相应的
类。也可以计算图象与模板特征量之间的距离,用最小距离法判定所属类。然而,通常情况
下用于匹配的图象各自的成像条件存在差异,产生较大的噪声干扰,或图象经预处理和规格
化处理后,使得图象的灰度或像素点的位置发生改变。在实际设计模板的时候,是根据各区
域形状固有的特点,突出各类似区域之间的差别,并将容易由处理过程引起的噪声和位移等
因素都考虑进去,按照一些基于图象不变特性所设计的特征量来构建模板,就可以避免上述
问题。
7