基于MATLAB的车牌识别系统的研究与实现
2017-03-14王海涛陈艳丽彭浩
王海涛 陈艳丽 彭浩
【摘 要】车牌识别作为智能交通系统的重要部分,能实现对车辆的自动监测,对交通系统的自动管理有着重要的意义。本文在计算机图像识别和处理的相关原理上,首先对车牌识别系统中的图像的预处理、车牌字符分割及识别等关键技术进行研究,并在此基础上开发了一个基于MATLAB的车牌识别系统。通过测试结果表明,设计的车牌识别系统有较好的识别效果。
【关键词】车牌识别系统;图像预处理;车牌分割;字符识别;MATLAB仿真
Research and Implementation of License Plate Recognition System Based on MATLAB
WANG Hai-tao CHEN Yan-li PENG Hao
(School of Information Science and Engineering,Hunan International Economics University,Changsha Hunan 410205,China)
【Abstract】License plate recognition as an important part of intelligent transportation system,can realize the automatic monitoring of the vehicle,it has important significance for the automatic management of traffic system.Based on the principle of computer graphics recognition and processing,this paper firstly studies the key technology of license plate recognition system in image preprocessing,license plate character segmentation and recognition, and developed a license plate recognition system based on MATLAB.The test results show that the license plate recognition system has a good effect.
【Key words】License Plate Recognition System;License Plate Location;Character Recognition;MATLAB Simulation
0 引言
隨着经济的高速发展,汽车数量急剧增加,智能交通系统(Intelligent Transport System,ITS)中的车牌识别(License Plate Recognition,LPR)技术在实际应用领域的作用也越来越明显。其可应用于停车场管理、高速公路不停车收费、超速管理、道路交通监控系统、城市“电子警察”、小区车辆智能化管理等各个领域[1]。
LPR 需要图像采集、计算机图像处理、模式识别技术等技术的支撑。在一套完整的车牌识别系统(LPRS)中,软件是核心,主要包括图像预处理、车牌定位、字符分割、字符识别等 [2]。其流程如图1所示:
图1 车牌识别系统
1 图像预处理
在实际应用环境中,车牌识别系统会因采集的车牌图像质量不高、牌照本身的多样性、车牌污染严重等方面的限制,使得车牌的对比度降低,字符特征不明显,这给后期车牌的识别造成很多困扰,因此对采集到的车牌图像进行图像预处理是十分有必要的。通过预处理除去图像数据中的多余信息,加强图像数据的基本特征,以提高车牌识别的准确度和效率。
1.1 图像灰度化
从摄像机中捕获的图像通常为RGB彩色图像,因为其包含着大量的颜色信息,所以通常会占用大量的存储空间,另外处理速度慢,很难实现图像处理的实时性要求。因此在对车牌图像定位前需要对图像进行灰度化预处理。所谓灰度化处理就是将一幅彩色图像转化为灰度图,以减少颜色信息量。灰度化处理常用的主要有以下三种方法[3]:
1)最大值法:将彩色图像中R、G、B三个分量中最大值作为灰度值。其算式如(1)所示:
f(i,j)=max(R(i,j),G(i,j),B(i,j)) (1)
2)平均值法:对彩色图像中R、G、B三个分量值的和求平均值,其算式(2)所示:
f(i,j)=(R(i,j)+ G(i,j)+B(i,j))/3 (2)
3)加权平均:根据人眼对彩色图像中R、G、B三个分量的敏感度不同,分别赋予不同的权值,然后求加权平均值。根据经验可设R、G、B三个颜色的权重分为0.3,0.59,0.11得算式(3):
f(i,j)=0.3R(i,j)+0.59 G(i,j)+0.11 B(i,j) (3)
本文采用算式(3)的方法对车牌图像进行灰度化处理,结果如图2所示:
1.2 图像增强
由于图像采集设备或光线原因,会造成车牌图像的对比度不足、层次不清,这给车牌定位识别带来了很大的影响。因此需要对灰度化的图像进行图像增强处理。系统采用灰度拉伸方法来实现的,其效果如图3所示。
1.3 二值化
在进行完灰度化处理后,为了将车牌图像中的字符与背景分离,需对车牌的灰度图进行二值化处理。二值化处理一种区域分割技术,它对物体与背景有较强对比的景物的分割特别有用。通过二值化处理可以删除过多的冗余数据,提高图像局部的特征值,使车牌字符信息更加突出、清晰的[4]。
在车牌图像中,字符与背景之间的差别一般比较明显,可采用最大类间方差法(OTSU)对车牌图像进行二值化处理,OTSU计算简单,易实现[5-7]。通过增大目标和背景的类间方差使图像内仅黑、白二值。假设T为阈值,I(x,y)表示原图像(x,y)处的灰度值,I(x,y) 表示二值化后的灰度值,其表达式如(4)所示:
但阈值T的选取的合适与否会直接影响后续的处理。本系统中对车牌灰度化图像进行二值化后的效果如图4所示:
1.4 滤波
由于雨雪、光线等原因,图像会存在许多噪声,还需要进一步处理。图像滤波的目的是为了消除噪声。在对车牌去噪声技术中,通常有图像的平滑技术、邻域平均法、中值滤波等[8]。中值滤波与其他技术相比能够很好地滤除孤点噪声,保持图像的边缘特性,不会使图像产生显著的模糊,比较适合车牌去噪处理[9]。本文采用了模板大小为3×3区域对车牌图像进行中值滤波,其效果如图5所示。
2 基于灰度图像的车牌定位
对滤波后的图像通过计算车牌二值图像的跳变次数进行水平定位。先对整个二值图像进行水平方向扫描,每一行从白变到黑或从黑变到白都记为一次灰度跳变。第i行的扫描行可表示为new_b_vec(i),令diff(i)=new_b_vec(i)-new_b_vec(i+1)。其算法流程如下:
function [the_begin the_end]=Locate_length(vec,threshod)
b_vec=vec>=threshod;
len=max(size(b_vec));
new_b_vec=zeros(1,len+2);
new_b_vec(2:end-1)=b_vec;
diff=zeros(1,len);%将len-1调整为len了
for i=1:len+1
diff(i)=new_b_vec(i)-new_b_vec(i+1);%表示每一行的跳变
end
begins=find(diff==-1);%保存候选车牌的上边界和下边界
ends=find(diff==1);%保存候选车牌的下边界
lengths=ends-begins;
%根据车牌先验知识,筛选出高度值同45最接近的区域,即可获取车牌的上下边界位置
[min_length,the_index]=min(abs(lengths-45));
the_begin=begins(the_index);
the_end=ends(the_index)-1;
水平定位后的的结果如图6所示。
车牌水平定位后还需进行竖直定位。由于车牌区域内的字符排列紧密有规则,竖直定位根据此特征,通过Roberts边缘算子进行边缘提取,形态学闭运算平滑图像的轮廓,形态学开运算消除一些无意义的小物体,得到车牌精确定位图如图7所示。
3 字符分割与归一化
3.1 字符分割
我国标准车牌由汉字、字母、数字等7个字符水平混合排列而成,其第一个字符通常为汉字,第二个字符为大写英文字母,第三至第七个字符为大写英文字母或阿拉伯数字[10]。每个字符宽度为34mm,除第二第三字间隔34mm以外,其他字符间距都是12mm。鉴于第二三字符间的间隔符,可通过字符的几何分布特征,釆用优先确定车牌的第三字符位置后,再根据车牌宽度和字符间距,将车牌区域逐一分割成七个单一的字符块。系统釆用基于连通域的字符分割方法[11]分割结果如图8所示。
3.2 字符归一化
由于采集到的车牌的拍摄距离和角度的差异,会造成分割后的字符图像大小尺寸不一,所以需要对已经提取的字符图像进行归一化处理,将其统一到同一尺寸,以提高后续字符识别的正确率,增强系统的稳定性。系统中归一化处理采用插值的方法,通过在像素点相应的位置插上一些像素值,将字符尺寸统一为40×20的像素点阵,便于后期识别。
4 字符识别
实现车牌的定位与分割后,需对切割后的车牌字符块进行识别。模板匹配方法是一种简单有效的模式识别方法。该方法对二值图像识别速度快,可满足车牌识别的实时性要求。由于車牌字符数量有限,可通过事先建立标准的模板库,进行字符的相似度匹配来选择最优结果[12]。如果车牌图片的预处理质量较高的话,识别率基本能达到要求。即便是字符分割不够精确,可以使用大的模板或多模板进行匹配以提高的识别率[13]。部分识别后的结果如图9所示。
5 结束语
车牌识别系统的关键技术是车牌区域定位和字符识别。本文重点对这两大模块进行了研究和设计。在图像的预处理中采用OTSU算法,车牌定位中采用Roberts边缘算子,在字符识别的过程采用了模板匹配方法,设计了一个基于MATLAB的车牌识别系统。系统对 300 幅车库入口处采集的车辆图像进行测试,车牌定位准确率高于 96%,定位后的字符识别率高于93%,识别平均时间小于1.985(s)。表明设计的车牌识别系统有较好的准确性、快速性。
【参考文献】
[1]刘彤.汽车牌照识别系统中相关技术的研究[D].济南:山东科技大学,2006.
[2]崔媛媛.基于神经网络的新型车牌识别技术研究[D].华东交通大学,2009.
[3]良义.停车场车牌识别技术研究与实现[D].长沙:湖南大学,2011.
[4]彭健敏.车牌识别中的车牌定位与字符识别技术研究及实现[D].长沙:湖南大学,2006.
[5]孔平,严广乐,戴秦,等.基于分形维数的车牌识别二值化算法[J].计算机工程与应用,2007,43(30):184-185.
[6]胡斌,宫宁生.一种改进的OTSU阈值分割算法[J].微电子学与计算机,2009,26(12):153-155.
[7]王爱侠.面向智能监控系统的动态场景建模与目标跟踪算法研究[D].沈阳:东北大学,2012.
[8]胡蕾,张伟,覃庆炎.几种图像去噪算法的应用分析[J].信息技术,2007,31(7):81-83.
[9]高宏娟.实时人脸识别系统的设计和实现[J].科技信息,2011(10):407-408.
[10]邵玉芹.图像处理技术在车牌识别中的应用研究[D].合肥:合肥工业大学,2007.
[11]甘玲,林小晶.基于连通域提取的车牌字符分割算法[J].计(下转第43页)(上接第34页)算机仿真,2011(4):336-339.
[12]Miao L.License plate character segmentation algorithm based on variable-length template matching.Signal Processing(ICSP),2012[C].IEEE 11th International Conference on.2012.
[13]顾晨勤,葛万成.基于模板匹配算法的字符识别研究[J].通信技术,2009(3):220-222.
[14]高贵龙.车牌识别系统中车牌定位与识别算法的研究[D].石家庄:河北科技大学,2009.
[责任编辑:田吉捷]