车牌识别数字图像处理
- 格式:doc
- 大小:1.18 MB
- 文档页数:17
基于数字图像处理的车牌识别技术研究数字图像处理技术的发展,推动了很多生活领域的发展,其中一个应用领域就是车牌识别技术。
随着机器视觉技术的不断进步和成熟,车牌识别技术也得到了广泛应用,从而改变了人们的生活和工作方式。
本文将从车牌识别技术的发展历程、技术原理和应用领域三个方面进行分析和探讨。
一、车牌识别技术的发展历程车牌识别技术起初主要应用在警务、交通违法处理、停车场管理等方面。
但随着技术的不断进步和应用需求的增加,车牌识别技术开始在一些商业领域得到广泛应用,如门禁系统、智慧停车场、道路收费系统等。
二、车牌识别技术的基本原理车牌识别技术是一项集成计算机视觉和数字图像处理技术的综合性技术,其基本原理为:通过采集、处理和识别车辆行驶过程中的数字图像信息,实现对车辆的追踪、预警、识别、管理、控制等功能。
车牌识别技术的核心技术包括图像采集和预处理、车牌定位和分割、字符识别和数字识别等三个方面。
图像采集和预处理是车牌识别技术中最基本的环节,直接影响后续处理的质量和精度。
采集过程需要保证光线的充足性和图像清晰度,同时要根据不同的场景和车速等因素调整采集参数,如曝光时间、快门速度等。
车牌定位和分割是车牌识别技术中比较重要的步骤,其主要任务是将图像中的车牌区域准确地划分出来。
车牌定位和分割方法主要有颜色阈值法、边缘检测法和形状检测法等。
其中,颜色阈值法是一种比较常用和简单的方法,其基本原理是设定一个基于颜色的阈值,将车牌区域和其他区域分割开来。
字符识别是车牌识别技术中最为核心的环节,其主要任务是对车牌上的字符进行识别。
车牌上的字符由数字和字母组成,因此字符识别主要分为数字识别和字母识别两种类型。
字符识别的主要技术包括模式匹配、神经网络、支持向量机、卷积神经网络等方法。
三、车牌识别技术的应用领域车牌识别技术广泛应用于智慧交通、安防监控、金融服务、互联网营销、智慧城市建设等多个领域。
其中,智慧交通是车牌识别技术的主要应用领域之一。
本科生毕业论文(设计)题目:基于数字图像处理的车牌识别设计**: ***学院: 数理与信息工程学院专业: 电子信息工程班级: 111学号:指导教师:刘纯利职称: 教授2014 年12 月24 日安徽科技学院教务处制目录摘要 ....................................................................关键词 ..................................................................1、设计目的 .............................................................2、设计原理: ............................................................3、设计步骤: ............................................................4、实行方案 .............................................................4.1. 总体实行方案:...................................................4.2. 各模块的实现:...................................................4.2.1输入待处理的原始图像: .......................................4.2.2图像的灰度化并绘制直方图: ...................................4.2.3 边缘检测....................................................4.2.4图像的腐蚀操作:............................................4.2.5平滑图像....................................................4.2.6除去二值图像的小对象 ........................................4.3车牌定位 .........................................................4.4字符的分割与识别..................................................4.4.1.车牌的再处理................................................4.4.2字符分割....................................................4.5车牌识别:........................................................5、总结: ................................................................6、致谢 .................................................................7、参考文献: ............................................................基于数字图像处理的车牌识别设计电子信息工程专业学生周金鑫指导教师刘纯利摘要:车牌识别在人类社会交通系统中担当重要角色,一个设计优良的车牌识别系统会给人们生活带来极大的方便,本文通过运用matlab和数字图像处理的一些知识简单通过图像预处理,车牌定位,字符分割,采用模板匹配法实现车牌字符的识别。
车辆牌照识别中如何运用数字图像处理技术-数字图像处理论文-计算机论文——文章均为WORD文档,下载后可直接编辑使用亦可打印——摘要:随着我国经济实力得到很大的提升, 汽车已经成为人们的出行的主要交通工具之一, 这对于交通控制以及安全管理也提出了更高的要求, 我国的交通管理也朝着智能交通方向逐渐的完善, 而其中的一个重要组成便是车牌识别, 通过对车牌实现自动识别, 对于交通管理来说有着极大的便利作用。
对此本文利用数字图像识别运用在车牌识别中进行一定的研究, 主要对技术原理极其应用中存在的问题进行分析。
关键词:数字图像处理; 车辆牌照识别; 应用研究; 模式识别;前言随着我国社会取得了快速发展, 目前我国的道路监控与收费软件无法与发展需求相适应, 随着城市内汽车数量快速的增长, 完善的交通管理系统对于道路管理而言非常的必要, 而目前使用的管理系统已经不能很好的适用于社会发展。
要想实现智能化的道路交通系统, 首要便是对车牌实现有效地识别, 其能够对城市道路安全以及实现汽车有序管理具有着非常大的作用, 对此将数字图像处理运用其中是一种非常有效地方式。
1 数字图像处理实现车牌识别的技术原理运用数字图像处理与车牌识别之中主要由如下五个步骤构成, 第一步, 图像预处理, 由于车牌识别过程中所采集到的图像一般为真彩图, 其常常受到采集环境以及硬件设备等造成的影响, 使图像相对较为模糊, 采集图像中存在的背景以及噪声将会对字符分割与识别造成不利影响, 通过与处理能够在很大程度上提升图像质量[1]。
第二步, 车牌定位, 完成预处理之后的得到二值车牌图片, 通过形态学对其实现滤波, 从而使车牌区域可以实现区域的连通, 之后根据车牌先验知识对上述得到的连通区域进行筛选, 以此来获取到相对准确地车牌位置, 最终实现在图片中将车牌进行提取。
第三步, 车牌校正, 由于摄像头在拍摄过程中会与车辆本身具有一定的夹角, 导致获取的车牌图片并非是水平状态, 要想可以对车牌实现有效地分割与识别, 就必须对车牌加以一定的角度校正, 一般是利用Radon变换来使车牌得以校正[2]。
贵州大学实验报告学院:计算机学院专业:网络工程班级:101 姓名学号实验组实验时间12.11 指导教师戴丹成绩实验项目名称实验四汽车牌照自动识别实验目的1.分析汽车牌照的特点,正确获取整个图像中车牌的区域,并识别出车牌号。
2.将图像预处理、分割、分析等关键技术结合起来,理论与实践相结合,提高图像处理关键技术的综合应用能力。
实验原理牌照自动识别是一项利用车辆的动态视频或静态图像进行牌照号码、牌照颜色自动识别的模式识别技术。
其硬件基础一般包括触发设备、摄像设备、照明设备、图像采集设备、识别车牌号码的处理机等,其软件核心包括车牌定位算法、车牌字符分割算法和光学字符识别算法等。
某些牌照识别系统还具有通过视频图像判断车辆驶入视野的功能称之为视频车辆检测。
一个完整的牌照识别系统应包括车辆检测、图像采集、牌照识别等几部分。
当车辆检测部分检测到车辆到达时触发图像采集单元,采集当前的视频图像。
牌照识别单元对图像进行处理,定位出牌照位置,再将牌照中的字符分割出来进行识别,然后组成牌照号码输出。
实验步骤a.牌照定位,定位图片中的牌照位置;b.牌照字符分割,把牌照中的字符分割出来;c.牌照字符识别,把分割好的字符进行识别,最终组成牌照号码。
实验数据getword.mfunction [word,result]=getword(d)word=[];flag=0;y1=8;y2=0.5;while flag==0[m,n]=size(d);wide=0;while sum(d(:,wide+1))~=0 && wide<=n-2wide=wide+1;endtemp=qiege(imcrop(d,[1 1 wide m]));[m1,n1]=size(temp);if wide<y1 && n1/m1>y2d(:,[1:wide])=0;if sum(sum(d))~=0d=qiege(d); % 切割出最小范围else word=[];flag=1;endelseword=qiege(imcrop(d,[1 1 wide m]));d(:,[1:wide])=0;if sum(sum(d))~=0;d=qiege(d);flag=1;else d=[];endendendresult=d;qiege.mfunction e=qiege(d)[m,n]=size(d);top=1;bottom=m;left=1;right=n;while sum(d(top,:))==0 && top<=mtop=top+1;endwhile sum(d(bottom,:))==0 && bottom>=1bottom=bottom-1;endwhile sum(d(:,left))==0 && left<=nleft=left+1;endwhile sum(d(:,right))==0 && right>=1right=right-1;enddd=right-left;hh=bottom-top;e=imcrop(d,[left top dd hh]);main.mfunction [d]=main(jpg)close allclcI=imread('car2.jpg');subplot(2,3,1),imshow(I);title('原图')I1=rgb2gray(I);subplot(2,3,2),imshow(I1);title('灰度图');subplot(2,3,3),imhist(I1);title('灰度图直方图');I2=edge(I1,'robert',0.15,'both');subplot(2,3,4),imshow(I2);title('robert算子边缘检测') se=[1;1;1];I3=imerode(I2,se);subplot(2,3,5),imshow(I3);title('腐蚀后图像');se=strel('rectangle',[25,25]);I4=imclose(I3,se);subplot(2,3,6),imshow(I4);title('平滑图像的轮廓');I5=bwareaopen(I4,2000);figure(2),imshow(I5);title('从对象中移除小对象'); [y,x,z]=size(I5);myI=double(I5);ticBlue_y=zeros(y,1);for i=1:yfor j=1:xif(myI(i,j,1)==1)Blue_y(i,1)= Blue_y(i,1)+1;endendend[temp MaxY]=max(Blue_y);PY1=MaxY;while ((Blue_y(PY1,1)>=5)&&(PY1>1))PY1=PY1-1;endPY2=MaxY;while ((Blue_y(PY2,1)>=5)&&(PY2<y))PY2=PY2+1;endIY=I(PY1:PY2,:,:);Blue_x=zeros(1,x);for j=1:xfor i=PY1:PY2if(myI(i,j,1)==1)Blue_x(1,j)= Blue_x(1,j)+1;endendendwhile ((Blue_x(1,PX1)<3)&&(PX1<x))PX1=PX1+1;endPX2=x;while ((Blue_x(1,PX2)<3)&&(PX2>PX1))PX2=PX2-1;endPX1=PX1-1;PX2=PX2+1;dw=I(PY1:PY2-8,PX1:PX2,:);t=toc;figure(3),subplot(1,2,1),imshow(IY),title('行方向合理区域');figure(3),subplot(1,2,2),imshow(dw),title('定位剪切后的彩色车牌图像') imwrite(dw,'dw.jpg');[filename,filepath]=uigetfile('dw.jpg','输入一个定位裁剪后的车牌图像'); jpg=strcat(filepath,filename);a=imread('dw.jpg');b=rgb2gray(a);imwrite(b,'1.车牌灰度图像.jpg');figure(4);subplot(3,2,1),imshow(b),title('1.车牌灰度图像')g_max=double(max(max(b)));g_min=double(min(min(b)));T=round(g_max-(g_max-g_min)/3);[m,n]=size(b);d=(double(b)>=T);imwrite(d,'2.车牌二值图像.jpg');figure(4);subplot(3,2,2),imshow(d),title('2.车牌二值图像')figure(4),subplot(3,2,3),imshow(d),title('3.均值滤波前')h=fspecial('average',3);d=im2bw(round(filter2(h,d)));imwrite(d,'4.均值滤波后.jpg');figure(4),subplot(3,2,4),imshow(d),title('4.均值滤波后')se=eye(2);[m,n]=size(d);if bwarea(d)/m/n>=0.365d=imerode(d,se);elseif bwarea(d)/m/n<=0.235d=imdilate(d,se);endimwrite(d,'5.膨胀或腐蚀处理后.jpg');figure(4),subplot(3,2,5),imshow(d),title('5.膨胀或腐蚀处理后')d=qiege(d);[m,n]=size(d);figure,subplot(2,1,1),imshow(d);%figure(6),subplot(1,1,1),imshow(d),title(n)k1=1;k2=1;s=sum(d);j=1;while j~=nwhile s(j)==0j=j+1;endk1=j;while s(j)~=0 && j<=n-1j=j+1;endk2=j-1;if k2-k1>=round(n/6.5)[val,num]=min(sum(d(:,[k1+5:k2-5])));d(:,k1+num+5)=0;endendd=qiege(d);y1=10;y2=0.25;flag=0;word1=[];while flag==0[m,n]=size(d);left=1;wide=0;while sum(d(:,wide+1))~=0wide=wide+1;endif wide<y1d(:,[1:wide])=0;d=qiege(d);elsetemp=qiege(imcrop(d,[1 1 wide m]));[m,n]=size(temp);all=sum(sum(temp));two_thirds=sum(sum(temp([round(m/3):2*round(m/3)],:)));if two_thirds/all>y2flag=1;word1=temp;endd(:,[1:wide])=0;d=qiege(d);endend[word2,d]=getword(d);[word3,d]=getword(d);[word4,d]=getword(d);[word5,d]=getword(d);[word6,d]=getword(d);[word7,d]=getword(d);subplot(5,7,1),imshow(word1),title('1');subplot(5,7,2),imshow(word2),title('2');subplot(5,7,3),imshow(word3),title('3');subplot(5,7,4),imshow(word4),title('4');subplot(5,7,5),imshow(word5),title('5');subplot(5,7,6),imshow(word6),title('6');subplot(5,7,7),imshow(word7),title('7');[m,n]=size(word1);word1=imresize(word1,[40 20]);word2=imresize(word2,[40 20]);word3=imresize(word3,[40 20]);word4=imresize(word4,[40 20]);word5=imresize(word5,[40 20]);word6=imresize(word6,[40 20]);word7=imresize(word7,[40 20]);subplot(5,7,15),imshow(word1),title('1');subplot(5,7,16),imshow(word2),title('2');subplot(5,7,17),imshow(word3),title('3');subplot(5,7,18),imshow(word4),title('4');subplot(5,7,19),imshow(word5),title('5');subplot(5,7,20),imshow(word6),title('6');subplot(5,7,21),imshow(word7),title('7');imwrite(word1,'1.jpg');imwrite(word2,'2.jpg');imwrite(word3,'3.jpg');imwrite(word4,'4.jpg'); imwrite(word5,'5.jpg');imwrite(word6,'6.jpg');imwrite(word7,'7.jpg');liccode=char(['0':'9' 'A':'Z' '苏豫陕鲁']);SubBw2=zeros(40,20); l=1;for I=1:7ii=int2str(I);t=imread([ii,'.jpg']);SegBw2=imresize(t,[40 20],'nearest');if l==1kmin=37;kmax=40;elseif l==2kmin=11;kmax=36;else l>=3kmin=1;kmax=36;endfor k2=kmin:kmaxfname=strcat('字符模板\',liccode(k2),'.jpg');SamBw2 = imread(fname);for i=1:40for j=1:20SubBw2(i,j)=SegBw2(i,j)-SamBw2(i,j);endendDmax=0;for k1=1:40for l1=1:20if ( SubBw2(k1,l1) > 0 | SubBw2(k1,l1) <0 )Dmax=Dmax+1;endendendError(k2)=Dmax;endError1=Error(kmin:kmax);MinError=min(Error1);findc=find(Error1==MinError);Code(l*2-1)=liccode(findc(1)+kmin-1);Code(l*2)=' ';l=l+1;endfigure(6),subplot(1,1,1),imshow(d);title(n);figure(6),subplot(1,1,1),imshow(dw);title (['车牌号码:',Code],'Color','b');实验总结学会将图像预处理、分割、分析等关键技术结合起来,理论与实践相结合,提高图像处理关键技术的综合应用能力。
数字图像处理在车牌识别中的应用随着汽车数量的增加,城市交通状况日益受到人们的重视,如何进行有效的交通管理更是成为了人们关注的焦点。
针对此问题,人们运用新的科学技术,相继研制开发出了各种交通道路监视、管理系统。
这些系统通过车辆检测装置对过往的车辆实施检测,提取有关交通数据,达到监控、管理和指挥交通的目的。
因此,智能交通系统 I TS( i ntelli gent traf f i c system )已成为世界交通领域研究的重要课题。
车牌识别系统 LPR ( l icense plate recogni t i on)作为智能交通系统的一个重要组成部分,已在高速公路、城市交通和停车场等项目的管理中占有无可取代的重要地位。
它在不影响汽车状态的情况下, 由计算机自动完成车牌的识别,从而降低交通管理工作的复杂度。
本文应用图像处理技术、车牌定位技术、车牌字符分隔、字符识别技术等解决了车辆牌照识别问题。
1 车牌识别的原理和方法通常,车牌识别过程分为图像预处理、车牌定位、车牌校正、车牌分割和车牌识别五个部分。
图像预处理: 在整个车牌识别系统中,由于采集进来的图像为真彩图,再加上实际采集环境的影响以及采集硬件等原因,图像质量并不高,其背景和噪声会影响字符的正确分割和识别,所以在进行车牌分割和识别处理之前,需要先对车牌图像进行图像预处理操作。
车牌定位: 首先对车牌的二值图片进行形态学滤波,使车牌区域形成一个连通区域,然后根据车牌的先验知识对所得到的连通区域进行筛选,获取车牌区域的具体位置,完成从图片中提取车牌的任务。
车牌校正: 由于捕捉图片的摄像头与车身的角度问题,得到的车牌图片不是水平的。
为了顺利进行后续的分割和识别,必须对车牌进行角度校正。
在此,使用了 Ra don变换来对车牌进行校正。
车牌分割: 首先对车牌进行水平投影,去除水平边框;再对车牌进行垂直投影。
通过对车牌进行投影分析可知,与最大值峰中心对应的为车牌中第二个字符和第三个字符的间隔,与第二大峰中心距离对应的即为车牌字符的宽度,并以此为依据对车牌进行分割。
基于数字图像处理的车牌识别系统基于数字图像处理的车牌识别系统1.车牌识别系统研究⽬的及意义车牌识别系统的主要任务是分析和处理摄取到的复杂背景下的车辆图像,定位分割牌照,最后⾃动识别汽车牌照上的字符,LPR是利⽤车辆牌照的唯⼀性来识别和统计车辆,它是以数字图像处理、模式识别、计算机视觉等技术为基础的智能识别系统在现代化交通发展中车牌识别系统是制约交通系统智能化、现代化的重要因素,LPR系统应该能够从⼀幅图像中⾃动提取车辆图像,⾃动分割牌照图像,对字符进⾏正确识别,从⽽降低交通管理⼯作的复杂度。
2.车牌图像预处理为了便于车牌的分割识别,摄像机摄下的原始图像应具有适当的亮度和对⽐度。
但通常经输⼊系统获取的车牌图像信息由于光照条件、牌照的整洁度、摄像机的状态(焦距、⾓度和镜头的光学畸变)以及车速的不稳定等因素都会使图像含有各种各样的噪声与畸变。
例如由于光照度不均匀造成图像灰度过于集中;由摄像头获得的图像经过AD转换、线路传送都会产⽣噪声污染;车牌的字符部分受到磨损或是被污迹覆盖等等。
这些主客观因素不可避免地影响车牌图像的清晰程度,降低图像质量,轻者表现为图像不⼲净,难以看清细节,重者表现为图像模糊不清、歪斜或缺损,车牌字符边界模糊、细节不清、⽐划断开、粗细不均等现象。
这势必会影响车牌区域分割,降低车牌字符识别的准确度。
因此,在对车牌图像进⾏分析之前,必须要对车牌图像进⾏预处理。
对车牌图像的预处理主要包括以下三个⽅⾯:(l)图像对⽐度增强。
由于车牌识别系统需要全天候⼯作,⾃然光照度的昼夜变化会引起车辆图像对⽐度的严重不⾜,所以增强图像是很有必要的。
(2)图像去噪。
通常得到的汽车图像会有⼀些污点,为了保证识别的效果,需要对图像进⾏去噪处理。
(3)倾斜矫正。
摄像机的位置、车辆的运动等因素经常使拍摄出来的汽车图像有⼀定的倾斜,这就需要对图像进⾏倾斜矫正,或在分割出车牌区域之后对字符倾斜矫正2.1图像的灰度化通常情况下,实际的车牌识别系统中由摄像机采集到的原始图像是彩⾊图像,所有的彩⾊图像都是由红(R)、绿(G)、蓝(B)三基⾊组合⽽成,在数字图像中每⼀个基⾊都被分为256个等级,即0~255。
基于数字图像处理的车牌识别与违章检测技术研究随着互联网的发展和智能交通系统的推广应用,车牌识别与违章检测技术在交通管理中发挥着越来越重要的作用。
基于数字图像处理的车牌识别与违章检测技术通过对车牌区域进行图像处理和模式识别,能够快速准确地实现车牌识别和违章检测,并为交通管理部门提供有效的辅助决策。
车牌识别是指通过数字图像处理技术将车牌从摄像头采集的图像中准确地识别出来。
车牌识别技术的关键是车牌区域的提取和字符识别。
首先,通过图像处理算法对车辆图像进行预处理,去除噪声和干扰。
然后,通过边缘检测等算法将车辆图像分割出车牌区域。
最后,采用模式识别算法对车牌区域进行字符识别,将识别结果输出。
基于数字图像处理的车牌识别技术有很多应用场景,如交通管理、停车场管理、小区出入口管理等。
在交通管理中,车牌识别技术可以帮助交警部门实现违章车辆的快速查找和处罚,提高违法行为的查处率。
在停车场管理中,车牌识别技术可以用于自动收费和车辆出入记录的管理,提高停车场的管理效率。
在小区出入口管理中,车牌识别技术可以辅助安保人员识别车辆及车主身份,增强小区的安全性。
违章检测是指通过数字图像处理技术对路面上的车辆进行违章行为的检测和记录。
违章行为主要包括闯红灯、压线行驶、超速行驶等。
违章检测技术的关键是对车辆的位置和行为进行准确的分析和判断。
首先,通过图像处理算法提取出车辆的特征信息,如车辆轮廓、颜色等。
然后,通过算法将车辆的位置和行为与交通规则进行匹配,判断是否存在违章行为。
最后,将违章车辆的信息进行记录和处理。
基于数字图像处理的车牌识别与违章检测技术的研究主要包括以下几个方面:首先,完善车牌识别算法。
通过研究不同的图像处理算法和模式识别算法,提高车牌识别的准确率和鲁棒性。
例如,可以采用模板匹配法、特征提取法或深度学习等方法进行车牌识别。
其次,优化违章检测算法。
通过研究车辆的行为模式和交通规则,提高违章检测的准确率和稳定性。
例如,可以采用机器学习算法和数据挖掘方法对违章行为进行建模和分析,从而实现更准确的违章检测。
期末大作业报告课程名称:数字图像处理设计题目:车牌识别学院:信息工程与自动化学院专业:计算机科学与技术年级: xxxxx 学生姓名: xxxxxxx (学号 xxxxxxxxxxxxx)指导教师: xxxx 日期: 2012.6.10教务处制车牌识别摘要:数字图像处理技术是20世纪60年代发展起来的一门新兴学科,随着图像处理理论和方法的进一步完善,使得数字图像处理技术在各个领域得到了广泛应用,并显示出广阔的应用前景。
MATLAB既是一种直观、高效的计算机语言,同时又是一个科学计算平台。
它为数据分析和数据可视化、算法和应用程序开发提供了最核心的数学和高级图形工具。
根据它提供的500多个数学和工程函数,工程技术人员和科学工作者可以在它的集成环境中交互或编程以完成各自的计算。
MATLAB中集成了功能强大的图像处理工具箱。
由于MATLAB语言的语法特征与C语言极为相似,而且更加简单,更加符合科技人员对数学表达式的书写格式,而且这种语言可移植性好、可扩展性强,再加上其中有丰富的图像处理函数,所以MATLAB在图像处理的应用中具有很大的优势。
车牌识别技术是智能交通系统的重要组成部分,在近年来得到了很大的发展。
本文从预处理、边缘检测、车牌定位、字符分割、字符识别五个方面,具体介绍了车牌自动识别的原理。
并用MATLAB软件编程来实现每一个部分,最后识别出汽车牌照。
关键词:车牌识别、数字图像处理、MATLAB一、设计原理车辆牌照识别系统的基本工作原理为:将摄像头拍摄到的包含车辆牌照的图像通过视频卡输入到计算机中进行预处理,再由检索模块对牌照进行搜索、检测、定位,并分割出包含牌照字符的矩形区域,然后对牌照字符进行二值化并将其分割为单个字符,然后输入JPEG或BMP格式的数字,输出则为车牌号码的数字。
牌照自动识别是一项利用车辆的动态视频或静态图像进行牌照号码、牌照颜色自动识别的模式识别技术。
其硬件基础一般包括触发设备、摄像设备、照明设备、图像采集设备、识别车牌号码的处理机等,其软件核心包括车牌定位算法、车牌字符分割算法和光学字符识别算法等。
某些牌照识别系统还具有通过视频图像判断车辆驶入视野的功能称之为视频车辆检测。
一个完整的牌照识别系统应包括车辆检测、图像采集、牌照识别等几部分。
当车辆检测部分检测到车辆到达时触发图像采集单元,采集当前的视频图像。
牌照识别单元对图像进行处理,定位出牌照位置,再将牌照中的字符分割出来进行识别,然后组成牌照号码输出。
二、设计步骤1. 提出总体设计方案:(1)车牌图像预处理方法因为车牌图像都是在室外拍摄的,所以不可避免地会受到光照、气候等因素的影响,而且拍摄者的手部抖动与车辆的移动会造成图像的模糊。
要去除这些干扰就得先对车牌图像进行预处理。
由于当前数码相机的像素较高,原始图像的数据一般比较大,输入的彩色图像包含大量颜色信息,会占用较多的存储空间,且处理时也会降低系统的执行速度。
因此对图像进行识别等处理时,常将彩色图像转换为灰度图像,以加快处理速度。
对图像进行灰度化处理后常用的方法是图像二值化、去除背景图像、增强处理、边缘检测、滤波等处理等。
(2)车牌定位方法车牌定位在整个车牌识别系统中是非常关键的一部分,因为如果车牌无法定位或无法精确定位,就不可能进行后续的字符分割与字符识别工作。
经过查阅文献,我发现车牌定位算法的种类非常多,但是至今没有一种通用的方法。
考虑到本次课程大作业所用车牌的一些特点,可采用以下四种车牌定位的算法,下面具体介绍。
1)基于灰度边缘检测与形态学重构的方法。
这种方法只要利用车牌区域局部对比度明显和有规律的纹理特征来定位,然后利用形态学方法将车牌区域与其它背景区域分离。
2)基于直线检测的方法。
这种方法主要Hough变换的方法来检测车牌周围边框直线,利用车牌形状特性来定位车牌。
3)根据车牌的固有长宽比进行定位的方法。
因为中外车牌的长宽比都是固定的3.1:1,在预处理完成后对二值化的图像进行膨胀腐蚀,计算联通区域长宽比确定车牌位置。
4)基于彩色图像的车牌定位方法。
现在的牌照有四种类型:第一种是最常见的小型汽车所用的蓝底白字牌照;第二种是大型汽车所用的黄底黑字牌照;第三种是军用或警用的白底黑字、红字牌照;第四种是国外驻华机构用的黑底白字、红字牌照。
基于彩色图像的车牌定位方法主要利用车牌颜色与车身其他部位颜色具有明显不同的差异来分割与提取车牌。
定位流程图:(3)字符分割方法字符分割是指将车牌区域分割成单个的字符区域,分割越准确,识别效果越好。
目前有许多种车牌字符分割算法,由于在车牌字符分割中存在噪声干扰,边框、铆钉影响,车牌旋转和光照不均等问题,造成分割不准确,甚至分割错误,目前很难找到普遍适用的分割方法。
常用的字符分割法主要是基于投影分析字符的分割方法和基于连通域分析的字符分割方法。
1)投影分析常采用的是水平投影法,即沿水平方向计算每一列属于车牌字符的象素数目,在字符的间隙处取得局部最小值,分割位置应在其附近。
先根据车牌水平投影的统计特征呈现出明显“波峰——波谷——波峰”,进行水平方向上的粗分割,若字符出现合并和粘连现象,再采用递归回归办法进行二次字符分割。
2)投影法进行字符分割实现起较为简单,但在预处理效果不好的情况下,较难获得满足条件的列。
若增加预处理,则使处理后的图像不可避免地损失一部分有用信息,还可能导致额外误差。
基于连通域聚类分析切分车牌字符的方法按照属于同一个字符的像素构成一个连通域的原则,结合牌照字符的固定高度和间距比例关系等先验知识,较好地解决了汽车牌照在复杂背景条件下的字符切分问题,降低了对车牌定位准确度的要求,对不规范的车牌识别也具有一定的适用性。
(4)字符识别方法标准的车牌共有七个字符,如上图所示。
其中第1位为汉字,第2、3位为大写英文字母,4~7位为阿拉伯数字。
目前还有一定数量的个性化车牌,因为保有量较少,故可以忽略不计。
所以总共需要识别的字符约50个汉字,26个大写英文字母及10个阿拉伯数字。
现在常用的字符识别主要是基于模版匹配和神经网络的方法。
1)模板匹配法是最简单的一种字符识别方法。
将待识别字符经分割归一化成模板字体的大小,将它输入字符识别模块进行匹配。
根据实际字符和模板图像之间匹配方差最小的原则,判定车牌图像字符所属类别。
这种方法对于标准、规范的字符识别效果较好。
但在复杂环境下的车牌字符会与理想模板字符不完全一致,这导致了识别结果存在较大误差。
2)模版匹配法简单、成熟,但其自适应不强。
对于字符有断裂和粘连等情况容易造成误判。
神经网络匹配法具有良好的容错性、自适应和学习能力,但样本的训练收敛速度慢,而大规模并行处理为此提供了解决途径。
其中一种方法是采用并行识别的BP网络,让汉字、英文、阿拉伯数字,阿拉伯数字分别送到各自的网络识别。
还有学者结合小波变化的优点,提出基于小波和BP神经网络的车牌字符识别新方法,采用小波变换提取字符特征,神经网络实现字符识别,加快了算法的执行,提高了识别率。
处理流程图:图像输入图像预处理车牌定位字符分割字符识别图像输出2. 各模块的实现(此处仅为处理后的结果图,详细代码见附录)(1)输入待处理的原始图像:原图:I=imread('car2.png');figure;subplot(321);imshow(I);title('原图');(2)图像的灰度化彩色图像包含着大量的颜色信息,不但在存储上开销很大,而且在处理上也会降低系统的执行速度,因此在对图像进行识别等处理中经常将彩色图像转变为灰度图像,以加快处理速度。
由彩色转换为灰度的过程叫做灰度化处理。
选择的标准是经过灰度变换后,像素的动态范围增加,图像的对比度扩展,使图像变得更加清晰、细腻、容易识别。
sx=[-1 0 1;-2 0 2;-1 0 1];sy=[1 2 1;0 0 0;-1 -2 -1];sox=imfilter(I1,sx);soy=imfilter(I1,sy);subplot(323);imshow(sox+soy);title('边缘检测后图像');se=[1;1;1];%线型构造函数I3=imerode(sox+soy,se);subplot(324);imshow(I3);title('腐蚀后的图像');se=strel('rectangle',[25,25]); %矩形结构元素I4=imclose(I3,se);%图像聚类、填充图像subplot(325);imshow(I4);title('填充后图像');I5=bwareaopen(I4,1500);%去除聚团灰度值小于2000的部分subplot(326);imshow(I5);title('形态滤波后图像');定位后(7)车牌字符分割确定车牌位置后下一步的任务就是进行字符切分分离出车牌号码的全部字符图像。
考虑到基于投影分析字符的分割方法和基于连通域分析的字符分割方法实现起来比较复杂,于是我就综合前人方法总结出自己的算法。
车牌字符分割包括字符分割和单个字符识别两个模块。
考虑到获取的图像可能存在一定缺陷,因此在进行字符分割之前要先对定位后的车牌图像进行预处理,以方便后面的工作。
车牌上共有7个字符,间距相等,设平均字宽为W ,还有一个分隔符“﹒”占1/2字宽。
通过之前的预处理,可以将分隔符“﹒”用滤波器去掉。
设(,)f i j 是文字的二维点阵图形,有文字处为1,否则为0。
首先在(,)0f i j =∑处切割,若两个文字相粘连时,其间隔处便不会出现(,)0f i j =∑,此时就要辅之以求平均字宽的方法。
若某个字宽k W W ≥,说明k W 中含有一个以上的文字,需要继续分割。
由于在字符识别中我准备采用模板匹配的方法,因此需要将已分割出来的字符进行归一化处理。
因为我所采用的模板的尺寸为4020⨯,因此需要将分割出的字符也归一化为4020⨯的尺寸。
首先对彩色车牌进行二值化:对二值图像进行形态滤波:最后得到目标车牌区域:经过以上步骤得到分割后的图像:(8)车牌字符识别字符识别方法主要有基于模板匹配算法和基于人工神经网络算法。
基于模板匹配算法是首先将分割后的字符二值化,并将其尺寸缩放为字符数据库中模板的大小,然后与所有模板进行匹配,最后选取最佳匹配作为结果。
建立数字库对该方法在车牌识别过程中很重要, 数字库准确才能保证检测出的数据正确。
基于人工神经元网络的算法有两种,一种是先对特征提取待识别字符,然后用所获得的特征训练神经网络分配器;另一种是直接将待处理图像输入网络由网络自动实现特征提取直至识别结果。
在本程序中用基于人工神经元网络识别车牌字符。