数字信号处理作业——车牌识别系统设计(共23页)_第1页
数字信号处理作业——车牌识别系统设计(共23页)_第2页
数字信号处理作业——车牌识别系统设计(共23页)_第3页
数字信号处理作业——车牌识别系统设计(共23页)_第4页
数字信号处理作业——车牌识别系统设计(共23页)_第5页
已阅读5页,还剩22页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、数字信号处理(xn ho ch l)报告项目名称: 车牌识别系统设计(shj) 专 业: 电子(dinz)信息工程技术班 级: 电信141 姓 名: 卢德寅 指导 教师: 罗金生 成绩评定二一六 年 一 月 六 日目录(ml) TOC o 1-3 h z u HYPERLINK l _Toc439858589 1摘要(zhiyo): PAGEREF _Toc439858589 h 1 HYPERLINK l _Toc439858590 2设计(shj)目的: PAGEREF _Toc439858590 h 1 HYPERLINK l _Toc439858591 3设计原理 PAGEREF _T

2、oc439858591 h 1 HYPERLINK l _Toc439858592 4详细设计步骤 PAGEREF _Toc439858592 h 2 HYPERLINK l _Toc439858593 4.1 提出总体设计方案。 PAGEREF _Toc439858593 h 2 HYPERLINK l _Toc439858594 4.2 预处理及边缘提取 PAGEREF _Toc439858594 h 3 HYPERLINK l _Toc439858595 4.3 牌照的定位和分割 PAGEREF _Toc439858595 h 6 HYPERLINK l _Toc439858596 4.

3、4 字符的分割与归一化 PAGEREF _Toc439858596 h 8 HYPERLINK l _Toc439858597 4.5 字符的识别 PAGEREF _Toc439858597 h 10 HYPERLINK l _Toc439858598 5设计结果及分析 PAGEREF _Toc439858598 h 11 HYPERLINK l _Toc439858599 6程序源代码:(基于matlab的程序代码) PAGEREF _Toc439858599 h 14 HYPERLINK l _Toc439858600 7总结 PAGEREF _Toc439858600 h 20 HYPE

4、RLINK l _Toc439858601 8参考文献 PAGEREF _Toc439858601 h 21PAGE 1摘要(zhiyo):汽车牌照自动识别系统是制约道路交通智能化的重要因素,包括车牌定位、字符分割和字符识别三个主要部分。本文首先确定车辆牌照在原始图像中的水平位置和垂直位置,从而定位车辆牌照,然后采用局部投影进行字符分割。在字符识别部分,提出了在无特征提取情况下基于支持(zhch)向量机的车牌字符识别方法。实验结果表明,本文提出的方法具有良好的识别性能。随着公路逐渐普及,我国的公路交通事业发展迅速,所以人工管理方式已经(y jing)不能满着实际的需要,微电子、通信和计算机技术

5、在交通领域的应用极大地提高了交通管理效率。汽车牌照的自动识别技术已经得到了广泛应用。2设计目的:1、使学生在巩固理论课上知识的同时,加强实践能力的提高,理论联系实践。2、激发学生的研究潜能,提高学生的协作精神,锻炼学生的动手能力。3设计原理由于车辆牌照是机动车唯一的管理标识符号,在交通管理中具有不可替代的作用,因此车辆牌照识别系统应具有很高的识别正确率,对环境光照条件、拍摄位置和车辆行驶速度等因素的影响应有较大的容阈,并且要求满足实时性要求。 图1 牌照识别系统原理图该系统是计算机图像处理与字符识别技术在智能化交通管理系统中的应用,它主要由图像的采集和预处理、牌照区域的定位和提取、牌照字符的分

6、割和识别等几个(j )部分组成,如图1 所示。其基本工作(gngzu)过程如下:(1)当行驶的车辆经过时,触发埋设在固定位置的传感器,系统被唤醒处于工作状态;一旦(ydn)连接摄像头光快门的光电传感器被触发,设置在车辆前方、后方和侧面的相机同时拍摄下车辆图像;(2)由摄像机或CCD 摄像头拍摄的含有车辆牌照的图像通视频卡输入计算机进行预处理,图像预处理包括图像转换、图像增强、滤波和水平较正等;(3)由检索模块进行牌照搜索与检测,定位并分割出包含牌照字符号码的矩形区域;(4)对牌照字符进行二值化并分割出单个字符,经归一化后输入字符识别系统进行识别。4详细设计步骤4.1 提出总体设计方案。车辆牌照

7、识别整个系统主要是由车牌定位和字符识别两部分组成,其中车牌定位又可以分为图像预处理及边缘提取模块和牌照的定位及分割模块;字符识别可以分为字符分割与特征提取和单个字符识别两个模块。为了用于牌照的分割和牌照字符的识别,原始图象应具有适当的亮度,较大的对比度和清晰可辩的牌照图象。但由于该系统的摄像部分工作于开放的户外环境,加之车辆牌照的整洁度、自然光照条件、拍摄时摄像机与牌照的矩离和角度以及车辆行驶速度等因素的影响,牌照图象可能出现模糊、歪斜和缺损等严重缺陷,因此需要对原始图象进行识别前的预处理。牌照的定位和分割是牌照识别系统的关键技术之一,其主要目的是在经图象预处理后的原始灰度图象中确定牌照的具体

8、位置,并将包含牌照字符的一块子图象从整个图象中分割出来,供字符识别子系统识别之用,分割的准确与否直接关系到整个牌照字符识别系统的识别率。由于拍摄时的光照条件、牌照的整洁程度的影响,和摄像机的焦距调整、镜头的光学畸变所产生的噪声都会不同程度地造成牌照字符的边界模糊、细节不清、笔划断开或粗细不均,加上牌照上的污斑等缺陷,致使字符提取困难,进而影响字符识别的准确性。因此,需要对字符在识别之前再进行一次针对性的处理。车牌识别(shbi)的最终目的就是对车牌上的文字进行识别。主要应用的为模板匹配方法。因为系统运行的过程中,主要进行的都是图像处理,在这个过程中要进行大量的数据处理,所以处理器和内存要求比较

9、(bjio)高,CPU要求主频在600HZ及以上,内存在128MB及以上。系统可以运行于Windows98、Windows2000或者Windows XP操作系统下,程序调试时使用matlab。4.2 预处理及边缘(binyun)提取 输入车牌图象灰度校正平滑处理提取边缘 图2 预处理及边缘提取流程图 4.2.1 图象的采集与转换考虑到现有牌照的字符与背景的颜色搭配一般有蓝底白字、黄底黑字、白底红字、绿底白字和黑底白字等几种,利用不同的色彩通道就可以将区域与背景明显地区分出来,例如,对蓝底白字这种最常见的牌照,采用蓝色B 通道时牌照区域为一亮的矩形,而牌照字符在区域中并不呈现。因为蓝色(255

10、,0,0)与白色(255,255,255)在B 通道中并无区分,而在G、R 通道或是灰度图象中并无此便利。同理对白底黑字的牌照可用R 通道,绿底白字的牌照可以用G 通道就可以明显呈现出牌照区域的位置,便于后续处理。原图、灰度图及其直方图见图2与图3。对于将彩色图象转换成灰度图象时,图象灰度值可由下面的公式计算: G=0.110B+0.588G+0.302R (1) G= (2) 图3 原图(yun t) 图4 灰度图4.2.2 边缘(binyun)提取 边缘是指图像(t xin)局部亮度变化显著的部分,是图像风、纹理特征提取和形状特征提取等图像分析的重要基础。所以在此我们要对图像进行边缘检测。

11、图象增强处理对图象牌照的可辩认度的改善和简化后续的牌照字符定位和分割的难度都是很有必要的。增强图象对比度度的方法有:灰度线性变换、图象平滑处理等。(1)灰度校正由于牌照图象在拍摄时受到种种条件的限制和干扰,图象的灰度值往往与实际景物不完全匹配,这将直接影响到图象的后续处理。如果造成这种影响的原因主要是由于被摄物体的远近不同,使得图象中央区域和边缘区域的灰度失衡,或是由于摄像头在扫描时各点的灵敏度有较大的差异而产生图象灰度失真,或是由于曝光不足而使得图像的灰度变化范围很窄。这时就可以采用灰度校正的方法来处理,增强灰度的变化范围、丰富灰度层次,以达到增强图象的对比度和分辨率。我们发现车辆牌照图象的

12、灰度取值范围大多局限在r=(50,200)之间,而且总体上灰度偏低,图象较暗。根据图象处理系统的条件,最好将灰度范围展开到s=(0,255)之间,为此我们对灰度值作如下的变换: s = T(r) r=r min,,r max 使得SSmin, Smax,其中,T为线性变换, 图5 灰度线性变换 (3)若 r(50,200)、s(0,255)则: (4) (2)平滑(pnghu)处理对于受噪声干扰严重的图象,由于噪声点多在频域中映射(yngsh)为高频分量,因此可以在通过低4325i,j167823i,j14通滤波器来滤除噪声(zoshng),但实际中为了简化算法也可以直接在空域中用求邻域平均值

13、的方法莱削弱噪声的影响,这种方法称为图象平滑处理。例如,某一象素点的邻域S 有两种表示方法:8邻域和4邻域分别对应的邻域平均值为 (5)其中,M 为邻域中除中心象素点f(i,j) 之外包括的其它象素总数,对于4邻域M=4,8 邻域M=8。然而,邻域平均值的平滑处理会使得图象灰度急剧变化的地方,尤其是物体边缘区域和字符轮廓等部分产生模糊作用。为了克服这种平均化引起的图象模糊现象,我们给中心点象素值与其邻域平均值的差值设置一固定的阈值,只有大于该阈值的点才能替换为邻域平均值,而差值不大于阈值时,仍保留原来的值,从而减少由于平均化引起的图象模糊。图像中车辆牌照是具有比较显著特征的一块图象区域,这此特

14、征表现在:近似水平的矩形区域;其中字符串都是按水平方向排列的;在整体图象中的位置较为固定。正是由于牌照图象的这些特点,再经过适当的图象变换,它在整幅中可以明显地呈现出其边缘。边缘提取是较经典的算法,此处边缘的提取采用的是Roberts算子。图6 robert算子(sun z)边缘检测由上图可以(ky)归纳起来以下(yxi)方面:原始图像清晰度比较高,从而简化了预处理,结合MATLAB实验过程,得出不是每一种图像处理之初都适合滤波和边界增强。本次汽车车牌的识别,为了保存更多的有用信息。 4.3 牌照的定位和分割牌照的定位和分割是牌照识别系统的关键技术之一,其主要目的是在经图象预处理后的原始灰度图

15、象中确定牌照的具体位置,并将包含牌照字符的一块子图象从整个图象中分割出来,供字符识别子系统识别之用,分割的准确与否直接关系到整个牌照字符识别系统的识别率。由于牌照图象在原始图象中是很有特征的一个子区域,确切说是水平度较高的横向近似的长方形,它在原始图象中的相对位置比较集中,而且其灰度值与周边区域有明显的不同,因而在其边缘形成了灰度突变的边界,这样就便于通过边缘检测来对图象进行分割。对图像进行腐蚀去除杂质通过计算寻找X和Y方向车牌的区域完成车牌定位对分割出的车牌做进一步处理 图7 牌照定位于(wiy)分割流程图4.3.1 牌照区域(qy)的定位牌照图象经过了以上的处理后,牌照区域已经十分明显(m

16、ngxin),而且其边缘得到了勾勒和加强。此时可进一步确定牌照在整幅图象中的准确位置。这里选用的是数学形态学的方法,其基本思想是用具有一定形态的机构元素去量度和提取图像中的对应形状以达到对图像分析和识别的目的。数学形态学的应用可以简化图像数据,保持它们基本的形态特征,并除去不相干的结构。在本程序中用到了膨胀和闭合这两个基本运算,最后还用了bwareaopen来去除对象中不相干的小对象。 图8 腐蚀后图像 图9 平滑图像的轮廓 图10 从对象中移除小对象后图像4.3.2 牌照区域的分割对车牌的分割可以有很多种方法,本程序是利用车牌的彩色信息的彩色分割方法。根据车牌底色等有关的先验知识,采用彩色像

17、素点统计的方法分割出合理的车牌区域,确定车牌底色蓝色RGB对应的各自灰度范围,然后行方向统计在此颜色范围内的像素点数量,设定合理的 阈值,确定车牌在行方向的合理区域。然后,在分割出的行区域内,统计列方向蓝色像素点的数量,最终确定完整的车牌区域。图11 行方向区域(qy)和最终定位出来的车牌4.3.3车牌进一步处理(chl)经过上述方法分割(fng)出来的车牌图像中存在目标物体、背景还有噪声,要想从图像中直接提取出目标物体,最常用的方法就是设定一个阈值T,用T将图像的数据分成两部分:大于T的像素群和小于T的像素群,即对图像二值化。均值滤波是典型的线性滤波算法,它是指在图像上对目标像素给一个模板,

18、该模板包括了其周围的临近像素。再用模板中的全体像素的平均值来代替原来像素值。图12 裁剪出来的车牌的进一步处理过程图4.4 字符(z f)的分割与归一化m,n=size(d),逐排检查有没有白色像素点,设置1=j=120)&(PY11) PY1=PY1-1; end PY2=MaxY; while (Blue_y(PY2,1)=40)&(PY2y) PY2=PY2+1; end IY=I(PY1:PY2,:,:);%IY为原始图像I中截取的纵坐标在PY1:PY2之间的部分 %end横向扫描 %begin纵向扫描 Blue_x=zeros(1,x);%进一步确定x方向的车牌区域 for j=1:

19、x for i=PY1:PY2 if(myI(i,j,1)=1) Blue_x(1,j)= Blue_x(1,j)+1; end end end PX1=1; while (Blue_x(1,PX1)3)&(PX1x) PX1=PX1+1; end PX2=x; while (Blue_x(1,PX2)PX1) PX2=PX2-1; end %end纵向(zn xin)扫描 PX1=PX1-2;%对车牌区域(qy)的校正 PX2=PX2+2; dw=I(PY1:PY2,:,:); t=toc; figure(7),subplot(1,2,1),imshow(IY),title(行方向合理(hl

20、)区域);figure(7),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(8);subplot(3,2,1),imshow(b),title(1.车牌灰度图像)g_max=double(max(max(b);g_min=doubl

21、e(min(min(b);T=round(g_max-(g_max-g_min)/3); % T 为二值化的阈值m,n=size(b);d=(double(b)=T); % d:二值图像imwrite(d,2.车牌二值图像.jpg);figure(8);subplot(3,2,2),imshow(d),title(2.车牌二值图像)figure(8),subplot(3,2,3),imshow(d),title(3.均值滤波前)% 滤波h=fspecial(average,3);d=im2bw(round(filter2(h,d);imwrite(d,4.均值滤波后.jpg);figure(8

22、),subplot(3,2,4),imshow(d),title(4.均值滤波后)% 某些图像进行操作% 膨胀或腐蚀% se=strel(square,3); % 使用一个3X3的正方形结果元素对象对创建的图像膨胀% line/diamond/ball.se=eye(2); % eye(n) returns the n-by-n identity matrix 单位矩阵m,n=size(d);if bwarea(d)/m/n=0.365 d=imerode(d,se);elseif bwarea(d)/m/n=0.235 d=imdilate(d,se);endimwrite(d,5.膨胀或腐

23、蚀(fsh)处理后.jpg);figure(8),subplot(3,2,5),imshow(d),title(5.膨胀(png zhng)或腐蚀处理后)% 寻找连续有文字的块,若长度大于某阈值,则认为该块有两个字符(z f)组成,需要分割d=qiege(d);m,n=size(d);figure,subplot(2,1,1),imshow(d),title(n)k1=1;k2=1;s=sum(d);j=1;while j=n while s(j)=0 j=j+1; end k1=j; while s(j)=0 & j=round(n/6.5) val,num=min(sum(d(:,k1+5

24、:k2-5); d(:,k1+num+5)=0; % 分割 endend% 再切割d=qiege(d);% 切割出 7 个字符y1=10;y2=0.25;flag=0;word1=;while flag=0 m,n=size(d); left=1;wide=0; while sum(d(:,wide+1)=0 wide=wide+1; end if widey2 flag=1;word1=temp; % WORD 1 end d(:,1:wide)=0;d=qiege(d); endend% 分割(fng)出第二个字符word2,d=getword(d);% 分割(fng)出第三个字符word

25、3,d=getword(d);% 分割(fng)出第四个字符word4,d=getword(d);% 分割出第五个字符word5,d=getword(d);% 分割出第六个字符word6,d=getword(d);% 分割出第七个字符word7,d=getword(d);figure(9),imshow(word1),title(1);figure(10),imshow(word2),title(2);figure(11),imshow(word3),title(3);figure(12),imshow(word4),title(4);figure(13),imshow(word5),titl

26、e(5);figure(14),imshow(word6),title(6);figure(15),imshow(word7),title(7);m,n=size(word1);% 商用系统程序中归一化大小为 40*20,此处演示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(wo

27、rd7,40 20);figure(16),subplot(3,7,8),imshow(word1),title(1);subplot(3,7,9),imshow(word2),title(2);subplot(3,7,10),imshow(word3),title(3);subplot(3,7,11),imshow(word4),title(4);subplot(3,7,12),imshow(word5),title(5);subplot(3,7,13),imshow(word6),title(6);subplot(3,7,14),imshow(word7),title(7);imwrite

28、(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 苏豫陕鲁); %建立自动识别字符(z f)代码表 SubBw2=zeros(40,20);l=1;for I=1:7 ii=int2str(I); t=imread(ii,.jpg); SegBw2=imresize(t,40 20,nearest); if l=1 %第一位汉

29、字(Hnz)识别 kmin=37; kmax=40; elseif l=2 %第二位 AZ 字母(zm)识别 kmin=11; kmax=36; else l=3 %第三位以后是字母或数字识别 kmin=1; kmax=36; end for k2=kmin:kmax fname=strcat(字符模板,liccode(k2),.jpg); SamBw2 = imread(fname); for i=1:40 for j=1:20 SubBw2(i,j)=SegBw2(i,j)-SamBw2(i,j); end end % 以上相当于两幅图相减得到第三幅图 Dmax=0; for k1=1:4

30、0 for l1=1:20 if ( SubBw2(k1,l1) 0 | SubBw2(k1,l1) 0 ) Dmax=Dmax+1; end end end Error(k2)=Dmax; end Error1=Error(kmin:kmax); MinError=min(Error1); findc=find(Error1=MinError); l=l+1;endfigure(17),subplot(3,1,2),imshow(dw),title (车牌号码: 陕 A B A 2 2 3);%子程序:(getword子程序)function 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-2 wide=wide+1; end temp=qiege(imcrop(d,1 1 wide m); m1,n1=size(temp); if widey2 d(:,1:wide)=0; if sum(sum(d)=0 d=qiege(d); % 切割(qig

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论