matlab在汽车牌照识别系统中的应用.docx
- 文档编号:8758280
- 上传时间:2023-05-14
- 格式:DOCX
- 页数:12
- 大小:85.20KB
matlab在汽车牌照识别系统中的应用.docx
《matlab在汽车牌照识别系统中的应用.docx》由会员分享,可在线阅读,更多相关《matlab在汽车牌照识别系统中的应用.docx(12页珍藏版)》请在冰点文库上搜索。
matlab在汽车牌照识别系统中的应用
MATLAB在汽车牌照识别系统中的应用
摘要:
汽车普及程度的提高使得智能交通技术迅猛发展,汽车牌照识别系统是智能交通管理领域和数字图像处理领域里的热点问题。
汽车牌照识别系统主要由图像预处理,边缘提取,字符定位,字符分割,字符识别几个部分组成。
本文介绍了MATLAB在汽车牌照图像处理识别系统中的部分应用。
该系统通过调用MATLAB函数,综合使用多种方法提高系统的有效识别能力。
关键词:
MATLAB边缘提取字符分割字符识别
ApplicationofMATLABinLicensePlateRecognitionSystem
WANGYanyan
(SchoolofTransportationScienceandEngineeringofBeihangUniversity,Beijing,100191,China)
Abstract:
Inthispaper,CANbustechnologyandSAEJ1939protocolarestudiedandadigitalvehicleinstrumentsolutionbasedonFreescale'sMC9S12HZ256MCUisproposed.Themessageframeformatandsomeengine-relatedparameters’definitioninSAEJ1939applicationlayerprotocolareintroducedindetail.Steppermotoranditsdriver,alsothemethodsforspeedsignalprocessingareintroducedtoo.ThehardwareplatformofdigitalvehicleinstrumentiscomposedbyMCU,signalacquisitionmoduleandsignalprocessinganddisplayingmodule.DatareceivingandprocessingfromCANbusandsensorsareaccomplishedbyprogrammingandvehicleconditioncanbereflectedinreal-time.
Keywords:
digitalvehicleinstrument;MC9S12HZ256;steppermotor;CANbus;SAEJ1939
引言
车牌识别(LicensePlateRecognitionSystem,LPRS)系统是计算机视觉与模式识别技术在智能交通领域应用的重要研究课题之一,是智能交通系统(IntelligentTransportationSystem,ITS)的重要组成部分。
基于MATLAB图像处理的汽车牌照识别系统是通过引入数字摄像技术和计算机信息管理技术,采用先进的图像处理、模式识别和人工智能技术,通过对图像的采集和处理,获得更多的信息,从而达到更高的智能化管理程度。
1MATLAB及其图像处理工具概述
MATLAB是MatrixLaboratory(矩阵实验室)的缩写,是MathWorks公司推出的一套高性能数值计算和可视化软件,它集数值分析、矩阵运算、信号处理和图形显示于一体,在系统建模和仿真、科学和工程绘图以及应用程序开发等方面有着广泛应用。
MATLAB由著名的线性代数软件包LINPAK和特征值计算软件包EISPACK的子程序为基础,发展为一种开发性程序设计软件,因此MATLAB已经由简单的矩阵计算分析软件发展成为通用性极高、带有多种实用工具的运算操作平台。
本文将给出由MATLAB程序语言实现的汽车牌照识别系统。
2车辆识别系统工作原理
当通行车辆以自然车速行驶时,触动车辆检测装置,此时图像采集设备受到驱动,通过内置于特制取样装置的CCD摄像头动态摄取汽车图像。
该部分功能可简单调用计算机视频捕捉卡厂商提供的各种软件开发包工具即可实现。
然后将采集到的图像送到主机中,车牌识别模块在车辆正面图像中智能搜索牌照区域,并自动识别,PC内的MATLAB软件从输入图像中找到牌照的位置,对牌照进行字符切分,得到各个字符的点阵数据。
字符识别模块利用这些数据作字符识别以及识别结果与数据库中已有的处理牌照号码进行匹配。
并将最终结果输出到指定设备。
至此,一个车辆自动识别的周期完成,检测装置连续不断检测新到车辆。
3系统组成
基于MATLAB图像处理的汽车牌照识别系统主要包括图像预处理与车牌定位、车牌字符分割和车牌字符识别三个关键环节。
其识别流程图如图1所示。
3.1原始图像
原始图像的摄取目前主要采用的是电荷藕合器件图像传感器(ChargeCoupledDevice,CCD)摄像头摄取。
它使用一种高感光度的半导体材料制成,能把光线转变成电荷,通过模数转换器芯片转换成数字信号,数字信号经过压缩以后由相机内部的闪速存储器或内置硬盘卡保存,因而可以轻而易举地把数据传输给计算机,并借助于计算机的处理手段,根据需要和想象来修改图像。
CCD和传统底片相比,CCD更接近于人眼对视觉的工作方式。
只不过,人眼的视网膜是由负责光强度感应的杆细胞和色彩感应的锥细胞,分工合作组成视觉感应。
CCD经过长达35年的发展,大致的形状和运作方式都已经定型。
CCD的组成主要是由一个类似马赛克的网格、聚光镜片以及垫于最底下的电子线路矩阵所组成。
CCD由许多感光单位组成,通常以百万像素为单位。
当CCD表面受到光线照射时,每个感光单位会将电荷反映在组件上,所有的感光单位所产生的信号加在一起,就构成了一幅完整的画面。
3.2图像预处理
对图像进行灰度化处理、边缘提取、再利用形态学方法对车牌进行定位。
(1)读取图像
将由CCD摄像头获取的数码照片保存为‘.jpg’格式,置于matlab安装目录的work文件夹下。
读取图像的程序设计如下:
>>i=imread(‘1.jpg’);
>>figure();
>>subplot(3,2,1);
>>imshow(i)
>>title('originalfigure');
>>holdon
(2)灰度化
由摄像头输入的图像含有大量的彩色信息,会占用较多的存储空间,影响系统运行效率。
因此对图像进行识别等处理,常将彩色图像转换为灰度图像,以加快处理速度。
灰度化图像程序设计如下:
>>i1=rgb2gray(i);
>>subplot(3,2,2);
>>imshow(i1);
>>title('grayscale');
>>holdon
3.3边缘提取
由于摄取的图片含有大量与识别无关的内容,因此识别前应首先去顶边缘,剪掉无用信息,然后进行识别,此部分主要完成边缘化、形态滤波等操作。
程序设计如下:
>>i2=edge(i1,'robert',0.09,'both');
>>subplot(3,2,3),imshow(i2),title('afteredge');
>>se=[1;1;1];
>>i3=imerode(i2,se);
>>subplot(3,2,4),imshow(i3),title('aftercorrode');
>>se=strel('rectangle',[25,25]);
>>i4=imclose(i3,se);
>>subplot(3,2,5),imshow(i4),title('afterstack');
>>i5=bwareaopen(i4,2000);
>>subplot(3,2,6),imshow(i5),title('afterpreceeding');
以上步骤可以获得的图像处理结果如下图所示:
3.4车牌定位
在自然环境下,汽车图像背景复杂,光照不均匀,在自然背景中准确地确定牌照区域是整个图像识别过程中的关键。
我们首先应对采集到的图像进行大范围相关搜索,找到符合汽车牌照特征的若干区域作为候选区,然后对这些侯选区域做进一步分析、评判,最后选定一个最佳区域作为牌照区域。
将其从图像中分割出来,同时要考虑车牌倾斜问题。
数学形态学的基础是腐蚀和膨胀以及由此产生的开、闭运算传统的灰度图像中的开、闭运算具有“削峰添谷”的功能,可以将目标区域显示出来,但同时也将大量非目标区域显示出来,用数学形态学方法对小波分解后的细节图像进行一系列的形态运算,进一步消除无用信息和噪音,以找准车牌位置。
流程如下:
>>[y,x,z]=size(i5);
>>i6=double(i5);
>>fora=1:
y
forb=1:
x
if(i6(a,b,1)==1)
y1(a,1)=y1(a,1)+1;
end
end
end
>>[temp_MaxY]=max(y1);
>>figure();
>>subplot(3,2,1),plot(0:
y-1,y1),title('sum'),xlabel('linevalue'),ylabel('picturedot');
>>py1=max(Y);
>>while((y1(py1,1)>=50)&&(py1>1))
py1=py1-1;
end
>>py2=max(Y);
>>while((y1(py2,1)>=50)&&(py2 py2=py2+1; end >>iy=i(py1: py2,: : ); >>x1=zeros(1,x); >>for(b=1: x) fora=py1: py2 if(i6(a,b,1)==1) x1(1,b)=x1(1,b)+1; end end end >>subplot(3,2,2),plot(0: x-1,x1),title('rowsum'),xlabel('linevalue'),ylabel('picturedot'); 由程序获得的行值与列值信息可得如下两个图: >>px1=1; >>while((x1(1,px1)<3)&&(px1 px1=px1+1; end >>px2=x; >>while((x1(1,px2)<3)&&(px2>px1)) px2=px2-1; end >>px1=px1-1; >>px2=px2+1; >>dw=i(py1: py2,px1: px2,: ); >>subplot(3,2,3),imshow(dw),title('afterlocation') 定位结束之后获得的处理图形如下图所示: 3.5车牌字符分割 通过对车牌图像进行几何校正、去噪、二值化以及字符分割以从车牌图像中分离出组成车牌号码的单个字符图像。 >>ifisrgb(i) i1=rgb2gray(i); elsei1=i; end >>g_max=double(max(max(i1))); >>g_min=double(min(min(i1))); >>t=round(g_max-(g_max-g_min)/3); >>[m,n]=size(i1); >>%h=graythresh(i1); >>i1=im2bw(i1,t/256); >>subplot(3,2,4); >>imshow(i1),title('afterbinarization'); >>i2=bwareaopen(i1,20); >>subplot(3,2,5); >>imshow(i2),title('afterfilterandbinarization'); >>[y1,x1,z1]=size(i2); >>i3=double(i2); >>tt=1; >>y1=zeros(y1,1); >>[Y1,X1,Z1]=size(i2); >>i3=double(i2); >>tt=1; >>y1=zeros(Y1,1); >>fora=1: Y1 forb=1: X1 if(i3(a,b,1)==1) y1(a,1)=y1(a,1)+1; end end end >>py1=1; >>py0=1; >>while((y1(py0,1)<20)&&(py0 py0=py0+1; end >>py1=py0; >>while((y1(py1,1)>=20)&&(py1 py1=py1+1; end >>i2=i2(py0: py1,: : : ); >>subplot(3,2,6); >>imshow(i2),title('target') >>x1=zeros(1,X1); >>for(j=1: X1) for(i=1: Y1) if(i3(i,j,1)==1) x1(1,j)=x1(1,j)+1; end end end >>figure(5); >>plot(0: X1-1,x1),title('rowsum'),xlabel('rowvalue'),ylabel('picturedot'); >> >>figure(5); plot(0: X1-1,x1),title('rowsum'),xlabel('rowvalue'),ylabel('picturedot'); >>px0=1; >>px1=1; >>for(i=1: 7) while((x1(1,px0)<3)&&(px0 px0=px0+1; end px1=px0; while(((x1(1,px1)>=3)&&(px1 px1=px1+1; end z=i2(: px0: px1,: ); switchstrcat('z',num2str(i)) case'z1' pin0=z; case'z2' pin1=z; case'z3' pin2=z; case'z4' pin3=z; case'z5' pin4=z; case'z6' pin5=z; otherwise pin6=z; end figure(3); subplot(1,7,i); imshow(z); >>px0=px1; end 3.6字符识别 字符识别方法目前主要有基于模板匹配算法和基于人工神经网络算法。 基于模板匹配算法是首先将分割后的字符二值化,并将其尺寸缩放为字符数据库中模板的大小,然后与所有模板就行匹配,最后选取最佳匹配作为结果。 建立数字库对该方法在车辆识别过程中很重要。 数字库准确才能保证检测出的数据正确。 基于人工神经元网络的算法有两种,一种是先对特征提取待识别字符,然后用所获得的特征训练神经网络分配器;另一种是直接将待处理图像输入网络由网络自动实现特征提取直至识别结果。 1 4结论 MATLAB软件具有强大的数据处理功能,能够处理色彩图像二值化后的灰度图像,并且计算结果和编程都可以可视化和模块化,适应效果好。 但是建立模板匹配的数据库较为复杂,需要考虑诸多因素。 MATLAB软件可以实现与其他软件的结果,应用前景广阔。 参考文献: [1]李冬梅,牛长流.运动车辆的牌照识别.2009通信理论与技术新发展—第十四届全国青年通信学术会议论文集. [2]侯海滨,沈希忠.车辆牌照识别技术的研究发展.上海应用技术学院学报,2009.3. [3]张晓.汽车牌照识别技术的研究与实现.吉林大学硕士学位论文,2004.4-2005.5. [4]钱华,芮延年.基于人工智能的汽车牌照自动识别技术研究.机电产品开发与创新,2005.9. [5]袁宝民,于万波,魏小鹏.汽车牌照定位研究综述.大连大学学报,2002.4. [6]段玉斌,毕辉,韩雪峰.文献综述的写作方法.西安医学教育.2007.9.27. [7]李月成.2006年汽车牌照识别技术应用现状.市场36期. [8]王亦兵,韩曾晋.城市高速公路交通控制综述.1998.7. [9]袁佳,郭建钢.车辆牌照图像识别技术.机电技术.2008年第1期. [10]仇成群.MATLAB在汽车牌照图像处理识别系统中的应用.2007年.
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- matlab 汽车 牌照 识别 系统 中的 应用