基于神经网络的车牌识别(共15页).doc

上传人:飞****2 文档编号:13365801 上传时间:2022-04-29 格式:DOC 页数:15 大小:819KB
返回 下载 相关 举报
基于神经网络的车牌识别(共15页).doc_第1页
第1页 / 共15页
基于神经网络的车牌识别(共15页).doc_第2页
第2页 / 共15页
点击查看更多>>
资源描述

《基于神经网络的车牌识别(共15页).doc》由会员分享,可在线阅读,更多相关《基于神经网络的车牌识别(共15页).doc(15页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。

1、精选优质文档-倾情为你奉上车牌识别系统设计摘要:车牌识别系统(License Plate Recognition ,简称LPR)是智能交通系统(ITS)的核心组成部分,在现代交通管理系统中发挥着举足轻重的作用。本文运用神经网络算法从车牌图像预处理、车牌定位、车牌字符分割和车牌字符识别这几个方面对车牌识别技术进行研究,运用MATLAB仿真,实现对车牌识别系统的设计。关键词:神经网络算法,图像预处理,车牌定位,车牌字符分割,车牌识别Design of License Plate Recognition SystemAbstract: License Plate Recognition System

2、 (LPR) is the core component of Intelligent Transportation Systems (ITS). LPR plays an important role in a modern traffic management system. This paper applied neural network algorithm to the license plate image pre-processing, license plate license plate character segmentation and character recogni

3、tion to study the license plate recognition technology. These aspects of license plate recognition technology are studied with MATLAB simulation to achieve the design of the license plate recognition system.Key words:neural network algorithms, image pre-processing, license plate location, license pl

4、ate character segmentation, license plate recognition 一引言随着我国经济的快速发展,人民生活水平的不断提高,私有车辆越来越多,对交通控制、安全管理的要求也日益提高,智能交通管理(Intelligence Transportation System,简称ITS)已成为当前交通管理发展的主要方向,而车牌识别技术(LPR)作为智能交通系统的核心,起着举足轻重的作用,利用该技术可以实现对车辆的自动登记、验证、监视和报警,高速公路收费,对停车场进行管理,特殊场所车辆的出入许可等1 。汽车牌照自动识别系统是应用图像处理技术、模式识别技术和神经网络技术,

5、从复杂背景中准确提取、识别出汽车牌照。自动车牌识别技术是解决交通管理问题的重要手段,是计算机图像处理技术和模式识别技术在智能交通领域的典型应用。由于神经网络具有良好的自学习和自适应能力,同时有很强的分类能力、容错能力和鲁棒性,可以实现输入到输出的非线性映射,可在有干扰的情况下对字符实现分类识别,能够解决车牌字符速度和识别正确率等问题,故被广泛地用于汽车牌照识别2。本文设计使用BP神经网络运用MATLAB仿真,对车牌字符进行识别。二系统总体设计车牌识别系统的构成如图1所示结果显示车牌图像采集车牌图像预处理车牌定位车牌字符分割车牌识别图1 车牌识别系统的构成其中各个模块的研究内容包括:1 .车牌图

6、像采集:通过安装在过道路口或者车辆出入通道的摄像机实时捕捉车辆视屏图像,并传输到计算机上以便于实时的处理。2.车牌图像预处理:主要完成包括图像灰度变化,图像边缘检测、图像二值化等来突出车牌的特征,以便于更好的车牌定位。3. 车牌定位:从摄入的汽车图像中找到车牌的位置,并把含有车牌图像的区域提取出来,以供后端的字符分割处理4.车牌字符分割:对搜索定位后的车牌区域进行字符分割, 将车牌分为N个单一的字符5.车牌识别:对于提取出的单个字符,先进行归一化操作,再运用训练好的神经网络进行字符识别。6. 结果显示:显示处理后的车牌并与原始车牌相比较三各个模块设计3.1 车牌图像采集当系统发现有车辆通过感应

7、线圈或监视图像发生变化时,触发图像采集系统,通过CCD摄像机摄取采集出车牌图像,然后车牌自动识别模块对车牌图像进行预处理、车牌定位、字符分割、字符识别等一系列处理识别出车牌号码,识别结果和原始车牌图像通过网络传输至监控中心,留待以后车牌查询和交通流量统计3。本次设计主要是实现对已经采集到的车牌图像进行识别3.2 车牌图像预处理汽车牌照中的字符主要由有限汉字、字母和数字组成,采用固定的印刷体格式。由于图像上字符光照不均、车牌本身污损、汽车行驶速度较快、牌照颜色类型较多、拍摄角度及地况等主客观原因会使车牌字符发生畸变,从而造成识别上的困难,因此,为提高牌照的字符识别率, 必须进行预处理, 以便得到

8、较为清晰的待识别的单个字符.这些预处理包括灰度变换、边缘检测、腐蚀、填充、形态滤波处理等4。预处理的效果对随后的定位处理有很大的影响,所以选择可靠的预处理算法也是非常重要的。图像预处理程序设计流程图如下:原始图像图像灰度变换边缘检测对图像进行腐蚀对车牌图像填充结果显示图2 车牌图像预处理流程预处理的结果显示如下图3图3 车牌图像预处理3.3 车牌定位车牌定位方法的出发点是利用车牌区域的特征来判断牌照,将车牌区域从整幅车辆图像中分割出来。在车牌识别中,定位的成功与否以及定位的准确程度将会直接决定后期能否进行车牌识别以及识别的准确度。车牌定位方法涉及到的具体方法有: 基于边缘检测的方法、区域生长法

9、,构造灰度模型法,二值图像的数学形态学运算法,灰度图像的数学形态学运算法,自适应边界搜索法,DFT变换法,模糊聚类法等5。这里采用基于边缘检测的方法,首先去除图像中的背景,然后得到汽车牌照的特征区域,再通过一定的方式定位这个区域,最后把汽车牌照从图像中分割出来。所谓“边缘”就是指其周围灰度有阶跃变化的那些像素的集合。“边缘”的两侧分属于两个区域,每个区域的灰度均匀一致,而这两个区域的灰度在特征上存在一定的差异。边缘检测的任务是精确定位边缘和抑制噪声。检测的方法有多种, 例如Roberts 边缘算子、Prewitt 算子、Sobel 算子以及拉普拉斯边缘检测。这些方法正是利用物体边缘处灰度变化剧

10、烈这一特点来检测图像的边缘。各算子对不同边缘类型的敏感程度不同, 产生的效果也不同, 经过大量实验分析可知, Roberts边缘算子是一种利用局部方差算子寻找边缘的算子, 定位比较精确; Prewitt算子和Sobel算子对噪声有一定的抑制能力, 但不能完全排除伪边缘; 拉普拉斯算子是二阶微分算子, 对图像中的阶跃型边缘点定位准确且具有旋转不变性, 但容易丢失一部分边缘的方向信息, 同时抗噪能力较差。针对不同的环境和要求, 选择合适的算子来对图像进行边缘检测才能达到好的效果。具体定位流程如下。 原始图像图像预处理边缘算子及其二值车牌定位 图4 车牌定位流程图车牌处理结果如图5所示:图5车牌定位

11、处理结果3.4车牌字符分割字符的分割是指将车牌区域分割成若干个单个的字符区域,把单个有意义的字符从字符串中提取出来,作为独立的字符图像。字符分割的成败与否直接影响到单字的识别效果,如果分割出的字符出现了断裂、粘连,则系统难以识别。本次设计中采用的是垂直投影字符分割方法,即先将图像二值化,然后进行水平倾斜以及竖直倾斜校正,去除一些噪声,然后将车牌像素灰度值按垂直方向累加,即所谓的垂直投影。由于字符块的垂直投影必然在字符间距或字符内的间隙处取得局部最小值,所以分割位置应该在局部最小值处6。此方法比较简单易行,程序设计简单,便于设计和操作,因此比较常用。由于在车牌定位中得到的是彩色的车牌区域图像,故

12、在字符分割前需对图像进行预处理。图6 列方向像素点灰度值累积和图7车牌字符分割结果图8车牌字符归一化后显示结果3.5车牌字符识别3.5.1 BP神经网络简介 BP (Back Propagation)神经网络,即误差反传误差反向传播算法的学习过程,由信息的正向传播和误差的反向传播两个过程组成。输入层各神经元负责接收来自外界的输入信息,并传递给中间层各神经元;中间层是内部信息处理层,负责信息变换,根据信息变化能力的需求,中间层可以设计为单隐层或者多隐层结构;最后一个隐层传递到输出层各神经元的信息,经进一步处理后,完成一次学习的正向传播处理过程,由输出层向外界输出信息处理结果。当实际输出与期望输出

13、不符时,进入误差的反向传播阶段。误差通过输出层,按误差梯度下降的方式修正各层权值,向隐层、输入层逐层反传。周而复始的信息正向传播和误差反向传播过程,是各层权值不断调整的过程,也是神经网络学习训练的过程,此过程一直进行到网络输出的误差减少到可以接受的程度,或者预先设定的学习次数为止。 BP神经网络模型包括其输入输出模型、作用函数模型、误差计算模型和自学习模型。 (1) 节点输出模型 隐节点输出模型:Oj=f(WijXi-qj) 输出节点输出模型:Yk=f(TjkOj-qk) f-非线形作用函数;q -神经单元阈值。 (2) 作用函数模型 作用函数是反映下层输入对上层节点刺激脉冲强度的函数又称刺激

14、函数,一般取为(0,1)内连续取值Sigmoid函数: f(x)=1/(1+e) (3) 误差计算模型 误差计算模型是反映神经网络期望输出与计算输出之间误差大小的函数:Ep=1/2(tpi-Opi) tpi- i节点的期望输出值;Opi-i节点计算输出值。 (4) 自学习模型 神经网络的学习过程,即连接下层节点和上层节点之间的权重拒阵Wij的设定和误差修正过程。BP网络有师学习方式-需要设定期望值和无师学习方式-只需输入模式之分。自学习模型为 Wij(n+1)= h iOj+aWij(n) h -学习因子;i-输出节点i的计算误差;Oj-输出节点j的计算输出;a-动量因子。下图为BP神经网络结

15、构图9 BP神经网络结构3.5.2 神经网络训练BP神经网络学习是典型的有导师学习,其训练主要是利用误差反向传播算法,不断修正网络权值矩阵。因为一般的车牌均由汉字、英文字母和数字组成,根据车牌字符的上述特点,在用BP神经网络进行训练和识别时,所选用的样本需包括字符的这些特点,加上本次实验的特殊性,由于待识别车牌图像有限,所得到的车牌字符不是很全,这里为简化起见,只对汉字渝,数字09和字母A、L、M、N、R这几个字符进行训练。训练样本如下图10所示:汉字:数字09: 字母: 图10 训练样本3.5.3神经网络识别结果图11神经网络训练用训练好的神经网络对样本进行识别,图12为车牌识别结果:图12

16、 不同车牌识别结果四结论汽车牌照的自动识别技术作为智能交通的一部分已经得到了越来越广泛的应用,良好的自动识别技术对现代化交通来说具有重要意义。本设计运用神经网络算法对汽车牌照进行识别,实现了对车牌预处理,车牌定位车牌分割,车牌识别,处在的不足在于,由于不同的汽车牌照其倾斜度和所在位置不一,对于不同的车牌需要改变分割参数才能实现。参考文献1廖金周,宣国荣.车牌的自动分割J.微型电脑应用,1999,(7):P32-342廖翔云,许锦标,龚仕伟.车牌识别技术研究J.微机发展,2003,(6)3杜圣康,毛力.汽车牌照识别系统的设计与实现J.电脑学习,2008,(5):P15-164马腾飞,郑永果,赵卫

17、东,基于边缘检测与HOUGH变换的车牌字符分割算法J,系统方针学报,2006,18(1):391-3935齐林,张向东, 一种汽车牌照字符分割的新方法J. EIC. Vo1. 1 5 2008:92-946李连昌,兰志强,丛奎荣,元学鹏.车牌自动识别技术研究进展J.P:34-38附录:% 主程序%clc;close all;clear all;I=imread(C:wangyuanyuanDSC01317.jpg);dw=cpdw(I);%车牌定位PIN0,PIN1,PIN2,PIN3,PIN4,PIN5,PIN6=zffg(I);%字符分割及处理PIN0=ycl(PIN0);PIN1=ycl

18、(PIN1);PIN2=ycl(PIN2);PIN3=ycl(PIN3);PIN4=ycl(PIN4);PIN5=ycl(PIN5);PIN6=ycl(PIN6);P0=PIN0,PIN1,PIN2,PIN3,PIN4,PIN5,PIN6;%归一化训练样本%I0=ycl(imread(C:wangyuanyuanyangben0.jpg);I1=ycl(imread(C:wangyuanyuanyangben1.jpg);I2=ycl(imread(C:wangyuanyuanyangben2.jpg);I3=ycl(imread(C:wangyuanyuanyangben3.jpg);I4=

19、ycl(imread(C:wangyuanyuanyangben4.jpg);I5=ycl(imread(C:wangyuanyuanyangben5.jpg);I6=ycl(imread(C:wangyuanyuanyangben6.jpg);I7=ycl(imread(C:wangyuanyuanyangben7.jpg);I8=ycl(imread(C:wangyuanyuanyangben8.jpg);I9=ycl(imread(C:wangyuanyuanyangben9.jpg);I10=ycl(imread(C:wangyuanyuanyangbenA.jpg);I11=ycl(

20、imread(C:wangyuanyuanyangbenL.jpg);I12=ycl(imread(C:wangyuanyuanyangbenM.jpg);I13=ycl(imread(C:wangyuanyuanyangbenN.jpg);I14=ycl(imread(C:wangyuanyuanyangbenR.jpg);%输入样本%P=I0,I1,I2,I3,I4,I5,I6,I7,I8,I9,I10,I11,I12,I13,I14;%输出样本%T=eye(15,15);% 建立神经网络模型%bp神经网络参数设置%;net=newff(minmax(P),100,15,logsig,lo

21、gsig,logsig,trainrp);net.inputWeights1,1.initFcn =randnr;net.layerWeights2,1.initFcn =randnr;net.trainparam.epochs=5000;net.trainparam.show=50;net.trainparam.lr=0.003;net.trainparam.goal=0.;net=init(net);%训练样本%net,tr=train(net,P,T);%测试字符,得到识别数值%for i=2:7T0=sim(net,P0(:,i);T1 = compet (T0) ;d = find(

22、T1 = 1) - 1;if (d=10)str=A;elseif (d=11)str=L;elseif (d=12)str=M;elseif (d=13)str=N;elseif (d=14)str=R;elsestr=num2str(d);endswitch icase 2str1=str;case 3str2=str;case 4str3=str;case 5str4=str;case 6str5=str;otherwisestr6=str;endend%显示定位后分割出的车牌彩图,识别结果以标题形式显示在图上%s=strcat(渝,str1,str2,str3,str4,str5,st

23、r6);figure();imshow(dw),title(s);车牌定位程序function dw = cpdw( I )subplot(3,2,1),imshow(I),title(原始图像);I1=rgb2gray(I);%转化为灰度图像subplot(3,2,2),imshow(I1),title(灰度图像);I2=edge(I1,roberts,0.09,both);%采用robert算子进行边缘检测subplot(3,2,3),imshow(I2),title(边缘检测后图像);se=1;1;1;I3=imerode(I2,se); %腐蚀图像subplot(3,2,4),imsh

24、ow(I3),title(腐蚀后边缘图像);se=strel(rectangle,25,25);I4=imclose(I3,se);%图像聚类、填充图像subplot(3,2,5),imshow(I4),title(填充后图像);I5=bwareaopen(I4,2000);%去除聚团灰度值小于2000的部分subplot(3,2,6),imshow(I5),title(形态滤波后图像);y,x,z=size(I5);I6=double(I5); Y1=zeros(y,1); for i=1:y for j=1:x if(I6(i,j,1)=1) Y1(i,1)= Y1(i,1)+1; end

25、 end end temp MaxY=max(Y1); %求的车牌的行起始位置和终止位置% PY1=MaxY; while (Y1(PY1,1)=50)&(PY11) PY1=PY1-1; end PY2=MaxY; while (Y1(PY2,1)=100)&(PY2y) PY2=PY2+1; end IY=I(PY1:PY2,:,:); X1=zeros(1,x); for j=1:x for i=PY1:PY2 if(I6(i,j,1)=1) X1(1,j)= X1(1,j)+1; end end end %求的车牌的列起始位置和终止位置% PX1=1; while (X1(1,PX1)

26、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,:); end字符分割程序function PIN0,PIN1,PIN2,PIN3,PIN4,PIN5,PIN6 = zffg(I)dw=cpdw(I);%车牌定位figure(2);subplot(3,2,1),imshow(dw),title(定位剪切后车牌图像)I1 = rgb2gray(dw); %将RGB图像转化为灰度图像subplot(3,2,2

27、),imshow(I1),title(车牌灰度图像)g_max=double(max(max(I1);g_min=double(min(min(I1);T=round(g_max-(g_max-g_min)/3); % T 为二值化的阈值m,n=size(I1);% d:二值图像I1=im2bw(I1,T/256);subplot(3,2,3);imshow(I1),title(二值化车牌图像);I1=bwareaopen(I1,20);subplot(3,2,4);imshow(I1),title(中值滤波后的二值化图像);y1,x1,z1=size(I1);I3=double(I1);TT

28、=1;% 分割字符按行积累量%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 endfigure(3);plot(0:x1-1,X1),title(列方向像素点灰度值累计和),xlabel(列值),ylabel(累计像素量);Px0=1;Px1=1;%分割字符%for i=1:7 while (X1(1,Px0)3)&(Px0=3)&(Px1x1)|(Px1-Px0)15) Px1=Px1+1; end Z=I1(:,Px0:Px1,:); switch strcat(Z,num2

29、str(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(4); subplot(3,7,i); imshow(Z); Px0=Px1; q=imresize(Z,45 20);%将字符图片统一划为50*20大小 figure(5); subplot(3,7,i); imshow(q); figure(); subplot(3,7,i); imshow(q);endimwrite(PIN0,C:wangyuanyuanzifu0.jpg,jpg);imwrite(PIN1,C:wangyuanyuanzifu1.jpg,jpg);imwrite(PIN2,C:wangyuanyuanzifu2.jpg,jpg);imwrite(PIN3,C:wangyuanyuanzifu3.jpg,jpg);imwrite(PIN4,C:wangyuanyuanzifu4.jpg,jpg);imwrite(PIN5,C:wangyuanyuanzifu5.jpg,jpg);imwrite(PIN6,C:wangyuanyuanzifu6.jpg,jpg);专心-专注-专业

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 教育专区 > 教案示例

本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知淘文阁网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

工信部备案号:黑ICP备15003705号© 2020-2023 www.taowenge.com 淘文阁