基于MATLAB的车牌号码识别系统
2017-08-29胡利娜
胡利娜
(山西欣奥特自动化工程有限公司,山西 太原 030012)
基于MATLAB的车牌号码识别系统
胡利娜
(山西欣奥特自动化工程有限公司,山西 太原 030012)
随着我国汽车数量的增加,车牌号码的识别技术在车辆管理中起着越来越重要的作用,这一技术实现了道路交通管理自动化和车辆行驶智能化,是智能交通管理系统中的关键技术之一。本文介绍了使用MATLAB软件环境对车牌图像的预处理,包括车牌灰度化、边缘检测、灰度腐蚀、平滑处理、车牌定位、字符分割和字符识别,实现了车牌自动识别功能。
MATLAB;车牌定位;字符分割;字符识别
目前,汽车已经成为日常生活中一个重要的工具,随着汽车数量的急剧增加,各种道路诸如高速公路、普通公路及各类车辆相关基础设施建设越来越多,伴随而来的是城市交通状况日益严峻,人工管理的方式已经跟不上时代的需要。作为政府相关机构来说,如何对车辆等进行有效的管理,成为迫切需要解决的问题。
传统的车牌识别仅仅支持单一车辆,背景比较简单的场合,而面对如今复杂多变的环境(如车辆背景有广告牌、建筑物、斑马线,车牌的倾斜、表面污损、光线干扰)已经无法直接应用。而现基于MALAB环境的车牌识别系统,利用图像处理技术处理、分析复杂背景下的车辆图像,进行牌照定位、字符分割、字符识别,最后实现车牌识别,解决了传统技术带来的问题,真正实现了数字化、智能化的交通管理。所以,车牌自动识别系统的开发和应用具有相当广阔的社会前景和很大的社会经济效益。
1 车牌自动识别系统的组成
一个完整的车牌自动识别系统一般由硬件和软件共同组成。硬件包括车体感应设备、辅助光源、图像采集卡和计算机,软件主要由以下六部分。
1) 图像采集:通过摄像机或数码相机采集到的图像;
2) 图像预处理:读取原始图片、灰度化原始图像、图像边缘检测、灰度图腐蚀、图像平滑处理、滤波处理;
3) 车牌定位:利用车牌颜色进行分割,先分割出合理区域,设定阈值,确定车牌的信息区域,在分割出来的区域内,再确定蓝色像素点,最终形成完整区域。
4) 字符分割:对定位后的车牌字符进行垂直投影,找到合适的阈值,逐一分割字符。
5) 建立字符数据库:每个字符建立多个模板,组成一个模板数据库。
6) 字符识别:采用模板匹配的OCR算法,与字符数据库中的模板进行匹配从而确认出字符。
车牌识别系统的基本结构如图1所示。
图1 车牌识别系统的基本结构图
2 系统设计的语言环境介绍
车牌自动识别系统的软件采用MATLAB软件。主要具有以下特点[1]:
1) MATLAB程序语法控制不严格,书写形式自由,程序设计自由度大。
2) 语句简单,函数丰富。
3) MATLAB既有结构化的控制语句,又有面向对象编程的特征。
4) 可移植性好,可灵活运行在不同型号的计算机上,不受操作系统的限制。
5) MATLAB具有强大的图形功能和可视化数据处理能力以及具有较强的制作图形用户界面的能力。
3 车牌号码识别系统的实现与分析
3.1 图像读取及车牌区域提取
图像读取及车牌区域提取的主要步骤有:灰度化原始图像、图像边缘检测、灰度图腐蚀、图像的平滑处理。
3.1.1 图像灰度图转化
通过数码相机、摄像机采集到的图像是彩色的,每个像素都是由三个不同的颜色分量R,G,B组成,其中包含大量的信息,占据大量的存储空间,浪费较多的系统资源,降低系统运行速度,这样给识别过程带来困难。因此将采集来的图像进行灰度化处理,将其转换成灰度图像。灰度化的基本方法是取G,R,B三个分量中的最大值或平均值代替各分量。一般采用加权平均值法灰度处理图像[2]。
加权平均值法:给R、G、B不同的权值,并将R,G,B的值取加权平均值,即R=G=B=(rR+gG+bB),其中r,g,b分别为相应的权值。经过大量的运用与推算,当r、g、b的数值分别设置为0.3、0.59、0.11时,即能得到较合理的灰度图像。如下所示:
R=G=B=0.3R+0.59G+0.11B.
(1)
灰度化程序代码如下:
I=imread('原始图像.jpg'); %读取原始彩色图像
I1=rgb2gray(I); %转换成灰度图像
figure(2);
subplot(1,2,1);
imshow(I1);title('灰度图像');%输出灰度图像
3.1.2 图像的边缘检测
在MATLAB中利用函数edge()中的sobel算子来实现边缘检测。
sobel算子边缘检测程序代码如下:
I2=edge(I1,'sobel',0.15,'both'); %使用sobel算子进行边缘检测
figure,imshow(I2);title('sobel算子实现边缘检测');
经过边缘检测处理后的车牌的轮廓已经很明显,车牌区域和汽车标志的边缘呈现白色条纹,基本上达到了边缘检测的效果。但是,因为车牌周围附近的其他区域存在不可避免的干扰因素,所以四周被白色的边框包围着,需对检测图像进一步做细化处理,来消除多余的边界点。
3.1.3 灰度图腐蚀
灰度图腐蚀是在边缘检测基础上消除多余的边界点,使边界向内部收缩的过程。
灰度图腐蚀的程序代码如下:
bg=[1;1;1];
I3=imerode(I2,bg);%图像腐蚀
figure,imshow(I3); title('灰度腐蚀图像'); %输出灰度腐蚀图像
3.1.4 图像的平滑处理
在分割出车牌区域的图像后,由于存在数字化误差、噪声的先天不足,对角点的提取有一定的影响,因此在角点提取之前必须先要经过图像的平滑处理,利用了MATLAB的图像平滑处理函数imclose()。
平滑处理的程序代码如下:
bg=strel('rectangle',[25,25]);%创造由指定形状的结构元素,矩形
I4=imclose(I3,bg);%对图像实现闭运算
figure,imshow(I4);title('平滑处理图像');%输出平滑处理图像
3.2 车牌区域的定位与分割
车牌区域的定位与分割过程就是车牌图像经过一系列预处理之后,从整幅车辆灰度图像中先确定牌照的位置,然后将车牌部分分割出来,最后经过其他技术进行字符识别。
3.2.1 车牌的分割与定位
车牌识别系统中一个重要的步骤是车牌的字符分割,并且这个步骤受很多因素的影响,都会影响这一过程的正确性。
首先是受二值化不彻底带来的影响,也就是说对图像进行二值化处理过程中的中间状态即“中间灰”不能准确的反映图像的中间状态。通俗讲就是说我们在进行二值化处理整个流程过程中,有时候可能出现因为阈值选取的问题造成“中间灰”过多的保留或者丢弃,出现这种情况造成的结果就是由于“中间灰”过多变黑或变白,而形成的字符笔画变细或者变粗。
其次,汽车行驶中,难免出现车牌污损、阳光反射、照度不均等现象。某些情况下,还可能出现车牌边框分割不正确,铆钉分割不正确,另外车牌前后字符之间的小圆点即分隔符也影响车牌识别。
我们通常利用彩色分割法进行车牌识别,即利用车牌颜色进行分割。按照经验及常规情况,先分割出合理区域,设定阈值,确定车牌的信息区域,在分割出来的区域内,在确定蓝色像素点,最终形成完整区域。
牌照区域的分割如图2所示。
图2 牌照区域的分割
3.2.2 对定位后的彩色车牌的进一步处理
定位完成后,考虑到彩色图片对计算机存储空间的占用,而且采集的图片也会有噪声存在,所以必须对图像进行各种处理。第一是灰度化处理,设置灰度值,使图像表现黑白效果。第二是采用线性滤波算法中的均值滤波进行图像去噪。
剪裁出来的车牌的进一步处理如图3所示。
图3 剪裁出来的车牌的进一步处理
3.3 字符分割与归一化
在车牌识别过程中,字符分割属于中间过程,起着承前启后的作用。牌照定位完成后,进行字符分割,然后进行字符识别。将得到的车牌区域图像二值化后,接着就是根据车牌图像的垂直投影宽度和积累的数值,进行字符分割。由于拍摄的汽车图像大小不一样,所以得到的牌照上的字符大小也不一样,因此分别从水平投影和垂直投影两个方向上对字符象素的大小进行归一化处理,使车牌字符同标准模块里面的字符特征一样,达到字符归一化。
字符分割效果如图4所示。
图4 字符分割效果图
3.4 字符的识别
现在主流的字符识别算法采用模板匹配的OCR算法。整个流程为,首先对目标字符进行大小调整直至符合字符数据库中字符的合理大小,调整完后与数据库进行匹配比对,最后选择最佳匹配结果[3]。这个过程实现简单,并且按照现有技术水平字符识别率很高。只要字符规整,即便出现图像缺损、污迹干扰,也基本能识别字符数据。字符识别如图5所示。
图5 字符识别
4 总结与展望
从MATLAB运行结果来看,可以有效检测车牌图像的上下左右边框,完成对车牌定位、字符分割、字符识别。而且相比较以前的技术,工作量减少、开发周期减少。目前存在的问题是,由于车牌抓拍成像质量好坏参差不齐,各种不可测干扰因素无法预测,造成某些特殊情况下识别率还有待提高。因此还需要我们不断提高技术水平,不断凝练新的方法,运用多种技术方法有机结合起来完善系统,提高系统的识别能力。
当今社会,公路交通建设蓬勃发展,伴随着各种基础设施的建设,车辆管理体制也不断完善,这些都为以图形图像为基础的交通管理系统提供了平台与基础。车牌自动识别技术在智能交通领域中意义重大。而且车牌识别应用广泛,可用于流量监控、车辆定位、技术刑侦、处理车辆违规违法等,另外车牌识别技术的发展与应用,提高了交通运行过程中的效率,某些方面也间接缓解了交通紧张的状况,有非常重要的现实意义。
[1] 张岩.MATLAB图像处理超级学习手册[M].北京:人民邮电出版社,2014.
[2] 陆玲,周书民.数字图像处理方法及程序设计[M]. 哈尔滨:哈尔滨工程大学出版社,2011.
[3] 冈萨雷斯.数字图像处理[M].第2版.北京:电子工业出版社,2007.
License Plate Recognition System Based on MATLAB
Hu Lina
(ShanxiXatAutomationEngineeringCo.,Ltd.,TaiyuanShanxi030012,China)
With the increase of cars in our country, the license plate recognition technology plays an increasingly important role in vehicle management. This technology realizes the automation of road traffic management and the intelligent vehicle driving, which is one of the key technologies of intelligent traffic management system. This paper introduces the image preprocessing of license plate with using the MATLAB software environment, including the gray license plate, edge detection and gray scale corrosion, smoothing, license plate locating, character segmentation and character recognition. The automatic recognition of license plate is realized.
MATLAB; license plate locating; character segmentation; character recognition
2017-05-22
胡利娜(1984- ),女,山西晋中人,工程师,学士学位,研究方向:高速公路三大系统及隧道机电。
1674- 4578(2017)04- 0055- 04
TP391.41
A