当前位置:文档之家› 车牌识别技术浅析及定位算法

车牌识别技术浅析及定位算法

车牌识别技术浅析及算法代码摘要:车牌定位、字符分割、字符识别是车牌识别的三个重要组成部分,是车牌识别技术研究的重点,从这三个方面对车牌识别技术的发展和现状及车牌识别技术的应用进行了简要介绍。

车牌定位是车牌识别技术的第一个关键技术,定位的准确与否直接影响着车牌识别的准确率。

本文对目前存在的车牌定位算法进行简单探讨。

关键词:车牌识别技术;车牌定位;算法比较;字符分割;字符识别。

随着2l世纪经济全球化和信息时代的到来,计算机技术、通信技术和计算机网络技术迅猛发展,自动化的信息处理能力和水平不断提高,并在人们社会活动和生活的各个领域得到广泛应用,高速度、高效率的生活节奏,使汽车普及成为必然趋势。

伴随着世界各国汽车数量的增加,城市交通状况日益受到人们的重视。

如何有效地进行交通管理,越来越成为各国政府的相关部门所关注的焦点。

针对这一问题,人们运行先进的信息处理技术、导航定位技术、无线通信技术、自动控制技术、图像处理和识别技术及计算机网络技术等科学技术,相继研发了各种交通道路监视管理系统、车辆控制系统及公共交通系统。

这些系统将车辆和道路综合起来进行考虑,运行各种先进的技术解决道路交通的问题,统称为智能交通系统(Intelligent Tr ansportationSystem,简称ITS)。

ITS是20世纪90年代兴起的新一代交通运输系统。

它可以加强道路、车辆、驾驶员和管理人员的联系,实现道路交通管理自动化和车辆行驶的智能化,增强交通安全,减少交通堵塞,提高运输效率,减少环境污染,节约能源,提高经济活力。

智能交通系统以车辆的自动检测作为信息的来源,因而对汽车牌照等相关信息的自动采集和处理的一门新的交通信息获取技术——车牌识别(License Plate Recognition,LPR技术逐渐发展起来,成为信息处理技术的一项重要研究课题。

1 车牌识别技术简介车牌识别技术的研究最早出现在20世纪80年代,这个阶段的研究没有形成完整的系统体系,而是就某一具体的问题进行研究,通常采用简单的图像处理方法来解决。

识别过程是使用工业电视摄像机(Industrial TV Camera)~]下汽车的正前方图像,然后交给计算机进行简单处理,并且最终仍需要人工干预进入2O世纪90年代后,随着计算机视觉Computer Vision Technology)的发展和计算机性能的提高,世界各国投入了大量的人力、物力进行汽车牌照识别系统的研究,时隔10多年,仍然没有一个成熟系统的识别率达到100%。

20世纪90年代后期以后,随着全世界汽车数量的急剧增加,车牌识别技术的应用范围也越来越广,车牌识别技术己成为了一个热门的研究课题,人们对其进行了广泛的研究。

车牌识别技术的任务是处理、分析摄取的视频。

其中关键在于以下三部分:车牌定位、字符分割和字符识别。

下面就从这三个方面对车牌识别技术的发展和现状进行简单介绍:(1)车牌定位方法车牌图像往往是在复杂的环境中拍摄得到的,车牌由于与复杂的车身背景融为一体,由于车牌在使用中磨损与灰尘及拍摄仪器的影响以及由于拍摄角度的不同,车牌在图像中往往有很大的形变,如何在复杂背景中准确、快速找出车牌的位置成为车牌识别中的难点。

目前已有不少学者在这方面进行了研究,总结起来主要有如下几类方法:(1)基于水平灰度变化特征的方法,这种方法主要在车牌定位以前,需要对图像进行预处理,将彩色图像转换为灰度图像,利用车牌区域水平方向的纹理特征进行车牌定位;(2)基于边缘检测的定位方法,这种方法是利用车牌区域丰富的边缘特征进行车牌定位,能够进行检测的方法有多种,如Roberts边缘算子、Prewitt算子、Sobel 算子以及拉普拉斯边缘检测;(3)基于车牌颜色特征的定位方法,这种方法主要是应用车牌的纹理特征、形状特征和颜色特征即利用车牌字符和车牌底色具有明显的反差特征来排除干扰进行车牌的定位;(4)基于Hough变换的车牌定位方法,这种方法是利用车牌边框的几何特征,采取寻找车牌边框直线的方法进行车牌定位;(5)基于变换域的车牌定位方法,这种方法是将图像从空域变换到频域进行分析,例如,采用小波变换等;(6)基于数学形态学的车牌定位方法,这种方法是利用数学形态学图像处理的基本思想,利用一个结构元素来探测一个图像,看是否能将这个结构元素很好的填放在图像内部,同时验证填放元素的方法是否有效。

腐蚀、膨胀、开启和关闭是数学形态学的基本运算。

(2)车牌字符分割方法车牌字符的正确分割是进行下一步车牌字符识别的基础,目前常用的方法有如下几种:(1)车牌区域纹理特征的方法,这种方法是利用车牌区域字符和底色具有不同的灰度特征从而进行边框去除和字符分割的方法;(2)基于数学形态学的方法,这种方法是利用形态学的腐蚀和膨胀,将车牌字符区域组成连通域的方法去除边框,再进一步采用字符连通域的形式进行字符切分;(3)基于Hough变换的字符分割方法,这种方法是利用Hough变换,寻找车牌字符的上下边界,再结合车牌字符的排列特征进行字符的分割。

(3)车牌字符识别方法:车牌字符识别方法基于模式识别理论,主要有:(1)统计识别;(2)结构识别;(3)基于神经网络的字符识别;(4)基于模板匹配的字符识别。

2 车牌识别matlab源码[filename, pathname] = uigetfile({'*.jpg', 'JPEG文件(*.jpg)';'*.bmp','BMP文件(*.bmp)';});if(filename == 0), return, endglobal FILENAME %声明全局变量FILENAME = [pathname filename];I=imread(FILENAME);imshow(I); %显示图像II1=rgb2gray(I);%RGB图转化为灰度图figure,imshow(I1);w1=medfilt2(I1);figure,imshow(w1);s1=histeq(w1,256);figure,imshow(s1);t1=imadjust(s1);figure,imshow(t1);I2=edge(t1,'robert',0.15,'both'); %用ROBERT算子提取图像边缘figure,imshow(I2);se=[1;1;1];I3=imerode(I2,se); %弱化二进制图像I2的边缘figure,imshow(I3);%为定位车牌,将白色区域膨胀,腐蚀去无关的小物件,包括车牌字符(下面两句)se=strel('rectangle',[25,20]); %用来腐蚀的形状为矩形,面积20*25I4=imclose(I3,se);figure,imshow(I4);I5=bwareaopen(I4,2000); %去除图像中面积过小的,可以肯定不是车牌的区域。

figure,imshow(I5);[y,x,z]=size(I5); %z=1。

y,x分别为I5图像的高和宽myI=double(I5)%myI=I5;tic%begin横向扫描white_y=zeros(y,1); %white_y为y行1列的零矩阵for i=1:yfor j=1:xif(myI(i,j,1)==1)%如果myI(i,j,1)即myI图像中坐标为(i,j)的点为白色%则white_y的相应行的元素white_y(i,1)值加1white_y(i,1)= white_y(i,1)+1;endendend[temp MaxY]=max(white_y); %temp为向量white_y的元素中的最大值,MaxY 为该值的索引(在向量中的位置)PY1=MaxY;while ((white_y(PY1,1)>=80)&&(PY1>1))PY1=PY1-1;endPY2=MaxY;while ((white_y(PY2,1)>=80)&&(PY2<y))PY2=PY2+1;endIY=I(PY1:PY2,:,:); %IY为原始图像I中截取的纵坐标在PY1:PY2之间的部分%end横向扫描%begin纵向扫描white_x=zeros(1,x);for j=1:xfor i=PY1:PY2if(myI(i,j,1)==1)white_x(1,j)= white_x(1,j)+1;endendendPX1=1;while ((white_x(1,PX1)<3)&&(PX1<x))PX1=PX1+1;endPX2=x;while ((white_x(1,PX2)<3)&&(PX2>PX1))PX2=PX2-1;end%end纵向扫描PX1=PX1-2;PX2=PX2+2;Plate=I(PY1:PY2,:);t=tocfigure,plot(white_y);gridfigure,plot(white_x);gridfigure,imshow(IY);figure,imshow(Plate);% if isrgd(Plate);Plate3=rgb2gray(Plate);%else% Plate2=Plate;%endplate4=medfilt2(Plate3);plate5=histeq(plate4,256);Plate2=imadjust(plate5);g_max=double(max(max(Plate2)));g_min=double(min(min(Plate2)));t=round(g_max-(g_max-g_min)/2); [m,n]=size(Plate2);Plate2=im2bw(Plate2,t/256);figure,imshow(Plate2);plate=bwareaopen(Plate2,20); figure,imshow(plate);[y1,x1,z1]=size(plate);plate1=double(plate);% tt=1;Y1=zeros(y1,1);for i=1:y1for j=1:x1if(plate1(i,j,1)==1)Y1(i,1)=Y1(i,1)+1;endendendpy1=1;py0=1;while((Y1(py0,1)<20)&&(py0<y1)) py0=py0+1;endpy1=py0;while((Y1(py1,1)>=20)&&(py1<y1)) py1=py1+1;endplate=plate(py0:py1,:,:);figure,imshow(plate);X1=zeros(1,x1);for j=1:x1for i=1:y1if(plate1(i,j,1)==1)X1(1,j)=X1(1,j)+1;endendendfigureplot(0:x1-1,X1)px0=1;px1=1;for i=1:7while((X1(1,px0)<3)&&(px0<x1))px0=px0+1;endpx1=px0;while(((X1(1,px1)>=3)&&(px1<x1))||((px1-px0)<10))px1=px1+1;endZ=plate(:,px0:px1,:);switch strcat('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;otherwisePIN6=Z;endfigure% subplot(1,7,i);imshow(Z);px0=px1;end3 车牌识别技术的应用车牌识别技术作为交通管理自动化的重要手段和车辆检测系统的一个重要环节,该技术能经过图像抓拍、车牌定位、图像处理、字符分割、字符识别等一系列算法运算,识别出视野范围内的车辆牌照号码,它运用数字图像处理、模式识别、人工智能技术,对采集到的汽车图像进行处理的方法,能够实时准确地自动识别出车牌的数字、字母及汉字字符,并以计算机可直接运行的数据形式给出识别结果,使得车辆的电脑化监控和管理成为现实。

相关主题