基于MATLAB的车牌分割与识别_第1页
基于MATLAB的车牌分割与识别_第2页
基于MATLAB的车牌分割与识别_第3页
基于MATLAB的车牌分割与识别_第4页
基于MATLAB的车牌分割与识别_第5页
已阅读5页,还剩4页未读 继续免费阅读

下载本文档

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

文档简介

目 录1.引言.11.1 动机11.2 要解决的问题22.车牌识别的过程23.数据获取44.车牌识别所采用的技术54.1 车牌定位及分割54.2 车牌中字符的提取以及归一化54.3特征提取64.4 BP神经网络65.总结和展望75.1总结75.2展望7参考文献88“模式识别”课程报告 1. 引言 随着车辆的越来越多,无论是在交通管制还是车辆管理上,车牌识别是一个重要的过程。车牌识别是一个复杂的过程,主要涉及到车牌的检测和车牌字符的识别。1.1 动机 车牌识别技术是车辆检测系统中的一个重要的环节,在交通监控和控制中占有很重要的地位,有着多种应用,例如自动收费系统、不停车缴费、失窃车俩的查询、停车场车辆管理、特殊部门车辆的出入控制等,因而对于车牌的识别问题比较重要。由于神经网络技术能够有效并快速的对字符进行识别,因为我们采用BP神经网络来对车牌图像进行识别。1.2 要解决的问题本文利用BP神经网络进行车牌的识别: 能够利用MATLAB通过预处理,将汽车图片的车牌定位和分割; 能够将提取出的车牌图像进行分割,将车牌中的每个字符提取出来; 能够建立一个BP神经网络,训练网络 能够利用BP神经网络进行车牌的识别2. 车牌识别的过程 图2.1给出了车牌识别的整个过程:图 2.1 车牌识别的过程3. 数据获取在车牌识别中,需要两种数据: 一种是车牌的图像; 另一种就是训练BP神经网络的数据: 对获取的字符进行归一化处理,使得各个字符变成了一个个大小相同的字符。然后要从这些字符中提取最能体现一个字符特点的特征向量。将提取出的训练样本中的特征向量输入BP网络中就可以对网络进行训练。 为了克服字符存在倾斜和偏移是都会对识别产生误差,可选取13段特征提取法来进行特征提取,作为BP神经网络的数据。 13段特征提取法的操作过程: 首先把字符平均分成8份,统计每一份内的黑色的像素点个数作为8个特征,如图1.1所示;图 3.1 特征提取 然后统计水平方向中间两列和竖直方向中间两列的黑色像素点的个数作为4个特征,如图1.2所示;图 1.1 特征提取 最后统计所有黑色像素点的个数作为第13个特征。 采用13段特征提取法对所有的大小相同字符进行处理,得到BP神经网络训练样本的数据。4. 车牌识别时所采用的技术 进行车牌识别的关键技术就是:首先,要讲车牌从汽车图片中提取出来,然后要将提取出的车牌再次进行分割,车牌中各字符的图片;第二,就是要将这些字符图片进行处理,得到统一大小的图片;第三,采用4.1车牌提取 采用MATLAB,从多个汽车图片中获取多个车牌图像 在提取车牌之前,首先要对车牌进行一些预处理操作,例如我们要对图3进行 车牌提取,其预处理主要MATLAB程序为:图 2 要提取的车牌I=imread(图像地址图像名);%读取图像I1=rgb2gray(I);%转化为灰度图像,加快处理速度I2=edge(I1,robert,0.09,both);%采用robert算子进行边缘检测se=1;1;1; %线型结构元素 I3=imerode(I2,se); %腐蚀图像se=strel(rectangle,25,25); % 矩形结构元素I4=imclose(I3,se);%图像聚类、填充图像I5=bwareaopen(I4,2000);%进行形态滤波,去除聚团灰度值小于2000的部分 通过上述的处理可得到的如图4所示的图像:图 3 图像处理的结果 由于形态滤波后将图片中的车牌形成了一个连通的区域,所以可以对所得的形态滤波后的图像进行车牌的定位与切割。进行切割时,要分别计算图像的行、列像素点的分布,因为只有在车牌的位置才有像素点。对行、列上的像素点的统计程序为:X1=zeros(1,x); y,x,z=size(I5);I6=double(I5);%行方向Y1=zeros(y,1);for i=1:yfor j=1:xif(I6(i,j,1)=1)Y1(i,1)=Y1(i,1)+1;endendendfigure;plot(0:y-1,Y1),title(行方向像素点灰度值累计和),xlabel(行值),ylabel(像素); %列方向for j=1:x for i=1:y if(I6(i,j,1)=1) X1(1,j)= X1(1,j)+1; end end endfigure;plot(0:x-1,X1),title(列方向像素点灰度值累计和),xlabel(列值),ylabel(像素);图 4 行方向像素点灰度值累计和图 5 列方向像素点灰度值累计和 通过运行上述程序段,可以得到如图5和图6的行、列方向的像素点灰度值累计和,同时也得到了车牌在图片中的行、列的起始位置,可以通过这四个位置将车牌从原图像中分割出来,如图7所示。%求的车牌的行起始位置和终止位置PY1=MaxY; while (Y1(PY1,1)=50)&(PY11) PY1=PY1-1; end PY2=MaxY; while (Y1(PY2,1)=50)&(PY2y) PY2=PY2+1; end%求的车牌的列起始位置和终止位置PX1=1; while (X1(1,PX1)3)&(PX1x) PX1=PX1+1; end PX2=x; while (X1(1,PX2)PX1) PX2=PX2-1; end PX1=PX1-1; PX2=PX2+1; %分割出车牌图像dw=I(PY1:PY2,PX1:PX2,:); imshow(dw),title(定位剪切后的彩色车牌图像)图 6 分割出的车牌图像4.2 车牌中字符的提取 车牌中字符的提取类似于从图像中提取车牌的过程。首先进行各种预处理,然后根据列方向上的像素点的统计值,分割出每个字符。如图8所示:图 7 分割出的车牌字符 分割提取多个车牌中的字符,然后将字符图片归一化为128*128的大小: I1=imresize(I1,128 128)4.3特征提取 将采用前面介绍的13段特征提取法对归一化后的图片进行特征提取。在进行特征提取之前,需要先将图片转换成二值化格式 首先,将图片分成类似图1的8份,然后分别计算每一份的像素为1的点的个数,生成一个81的向量:Z1=zeros(8,1);for i=0:1 for j=0:3 if(i=0&j=0) n=1; end if(i=1&j=0) n=2; end if(i=0&j=1) n=3; end if(i=1&j=1) n=4; end if(i=0&j=2) n=5; end if(i=1&j=2) n=6; end if(i=0&j=3) n=7; end if(i=1&j=3) n=8; end for k=64*i+1: 64*i+64 for m=32*j+1: 32*j+32 if (I1(k,m,1)=1) Z1(n,1)=Z1(n,1)+1; end end end endend 接着将图片分别分成类似于图2的4份,然后分别计算每一份的像素为1的点的个数,生成一个41的向量;Z2=zeros(4,1);Z2(3,1)=Z1(3,1)+Z1(4,1);Z2(4,1)=Z1(5,1)+Z1(6,1);for i=1:2 for j=32*i+1:32*i+i for k=1:128 if (I1(j,k,1)=1) Z2(i,1)=Z2(i,1)+1; end end endend 第三步是计算图片中所有像素点为1的个数,生成一个11的向量:Z3=zeros(1,1);for i=1:128 for j=1:128 if(I1(i,j,1=1) Z3(1,1)=Z3(1,1)+1; end endend 最后将前面生成的3个向量结合成一个131的向量,作为BP神经网络的训练样本。4.4 BP神经网络 BP神经网络是一种反向传播的多层前馈型神经网络。在一个BP神经网络包含了一个输入层、单个或多个隐含层以及一个输出层。每个层根据需要包含了多个神经元,层与层之间采用全连接方式,同层之神经元之间不存在连接。 BP神经网络的学习过程分为正向传播和反向传播两种交替过程。正向传播是在处理样本时,从输入层输入,向前把结果输出到第一隐含层,然后第一隐含层将接数据处理后作为输出,该输出作为第二隐含层的输入,依次类推,直到输出层的输出为止;反向传播是指通过比较输出层的实际输出和预期结果,得到误差,然后通过相关的误差调整方式,从最后一个隐含层到输出层之间的网络权重,依次类推,直到输入层与第一隐含层之间的网络权值调整为止。反向传播算法通过迭代处理的方式,不断的调整连接神经元的网络权权重,使得最终输出结果和预期结果的误差最小 由于三层的BP神经网络的性能较好,所以此处采用含一层隐含层的三层BP神经网络。因为BP神经网络的输入向量采用的是样本字符的特征向量,而样本的特征向量有13个元素,所以设计的BP神经网络的输入层神经元的个数为13;而由于车牌中包括汉字、字母和数字,可以设计三个分别能够识别这三种字符的BP神经网络。以识别数字的BP神经网络为例。因为输出的为数字,所以设定BP神经网络的输出神经元个数为10,然后根据经验,设定BP神经网络的隐含层神经元的个数为12。 BP神经网络的构建和训练:net=newff(minmax(P),12,10 ,tansig,logsig,trainln);%新建一个BP神经网络,其中P为训练样本 net.trainparam.epochs=5000;net.trainparam.goal=0.001;net,tr=train(net,P,T); %训练样本,其中T为目标输出值; 利用BP神经网络进行识别 将要识别车牌的汽车图片按照和样本汽车图片一样的处理,得到车牌中的每个字符。然后将归一化字符图片,得到每个字符的特征值向量作为BP神经网络的测试输入数据,然后利用BP神经网络进行识别:T0= sim(net ,P0)%P0为测试样本,T0为输出 此时T0即我们从车牌中识别出的一个字符。5. 总结和展望5.1 总结 本文描述的车牌识别的整个过程,包括从汽车图片中提取车牌,然后将车牌中的字符分割出来,字符经过训练的BP神经网络能够被识别出来,从而整个车牌号就能够被识别出来。根据这个车牌的识别过程,能够便于之后设计一个更加完善的车牌识别系统,用于各种需要进行车牌识别的场所,使得车辆的管理更加的方便。5.2 展望 本文主要是详细的描述了车牌以及车牌中字符的分割,而且也仅从识别一个静态的图片中的汽车的车牌号,而且汽车的车牌号是完整的。但是对于移动的汽车,或是有污损的车牌号没有进行研究。之后会进一步的研究从动态汽车中准确的找到车牌位置,提取车牌进行识别;也会进一步的研究如何准确的识别污损的车牌。参考文献1 苏科

温馨提示

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

评论

0/150

提交评论