基于matlab的汽车牌照识别_第1页
基于matlab的汽车牌照识别_第2页
基于matlab的汽车牌照识别_第3页
基于matlab的汽车牌照识别_第4页
基于matlab的汽车牌照识别_第5页
免费预览已结束,剩余16页可下载查看

下载本文档

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

文档简介

1、基于 matlab的汽车牌照识别程序摘要: 本次课程设计的目的是通过对基于MATLAB 的字符识别的研究,以汽车牌照识别的设计为实例,详细介绍字符识别的相关原理。整个汽车牌照识别的过程分为预处理、边缘提取、车牌定位、字符分割、字符识别五大模块,用MATLAB 软件编程来实现每一个部分,最后识别出汽车牌照。在研究的同时对其中出现的问题进行了具体分析,处理。 寻找出对于具体的汽车牌照识别过程的最好的方法。关键词:MATLAB 字符识别车牌识别神经网络图像处理0 引言在 MATLAB 的字符识别研究中,汽车牌照的识别是最经典的样例,因为车辆牌照识别系统(License Plate Recogniti

2、on Syste,简称 mLPRS)是建设智能交通系统不可或缺的部分。基于 MATLAB 图像处理的汽车牌照识别系统是通过引入数字摄像技术和计算机信息管理技术,采用先进的图像处理模式识别和人工智能技术,通过对图像的采集和处理,获得更多的信息,从而达到更高的智能化管理程度。车牌识别系统整个处理过程分为预处理、边缘提取、车牌定位、字符分割、字符识别五大模块,用MATLAB 软件编程来实现每一个部分处理工程,最后识别出汽车牌照。1 MATLAB 及其图像处理工具概述MATLAB 是 MATrix LABoratory(矩阵实验室)的缩写,是Math Works公司开发的一种功能强、效率高、简单易学的

3、数学软件。MATLAB 的图像处理工具箱,功能十分强大,支持的图像文件格式丰富,如*.BMP、 *.JPG、 *.JPEG、 *.GIF、 *.TIF、 *.TIFF、 *.PNG、 *.PCX、*.XWD、 *.HDF、 *.ICO、 *.CUR等。MATLAB7.X 提供了 20多类的图像处理函数,几乎涵盖了图像处理的所有技术方法,是学习和研究图像处理的人员难得的宝贵资料和加工工具箱。这些函数按其功能可分为:图像显示、像文件I/O、图像算术运算、几何变换、图像登记、像素值与统计、像分析、图像增强、线性滤波、线性二元滤波设计、图像去模糊、图像变换、邻域与块处理、灰度与二值图像的形态学运算、基

4、于边缘的处理、色彩映射表操作色彩空间变换、像类型与类型转换。MATLAB 还着重在图形用户界面(GUI)的制作上作了很大的改善,对这方面有特殊要求的用户也可以得到满足。本文将给出MATLAB 的图像处理工具箱中的图像处理函数实现图像处理与分析的应用技术实例。2 基于 MATLAB 图像处理的汽车牌照识别系统2.1 系统组成基于 MATLAB 图像处理的汽车牌照识别系统主要包括车牌定位字符车牌分割和车牌字符识别三个关键环节其识别流程图如图1 所示。其中,(1) 原始图像:由数码相机或其它扫描装置拍摄到的图像;(2) 图像预处理:对动态采集到的图像进行滤波、边界增强等处理以克服图像干扰;(3) 车

5、牌定位:计算边缘图像的投影面积,寻找峰谷点,大致确定车牌位置,再计算此连通域内的宽高比,剔除不在域值范围内的连通域,最后得到的便为车牌区域;(4) 字符分割:利用投影检测的字符定位分割方法得到单个的字符;(5) 字符数据库:为第6 步的字符识别建立字符模板数据库;(6) 字符识别:通过基于模板匹配的OCR算法或基于人工神经网络的OCR算法, 通过特征对比或训练识别出相关的字符,得到最后的汽车牌照,包括英文字母和数字。2.2 图像预处理图像在形成传输或变换过程中,受多种因素的影响,如: 光学系统失真、系统噪声、曝光不足或过量、相对运动等,往往会与原始景物之间或图像与原始图像之间产生了某种差异,这

6、种差异称为降质或退化。因此在图像处理之前必须进行预处理,包括去除噪音、边界增强、增加亮度等等。输入的彩色图像包含大量颜色信息,会占用较多的存储空间,且处理时也会降低系统的执行速度, 因此对图像进行识别等处理时,常将彩色图像转换为灰度图像,以加快处理速度。对图像进行灰度化处理、边缘提取、再利用形态学方法对车牌进行定位。具体步骤如下:首先对图像进行灰度转换,二值化处理然后采用4X1 的结构元素对图像进行腐蚀,去除图像的噪声。采用25X25 的结构元素,对图像进行闭合应算使车牌所在的区域形成连通。再进行形态学滤波去除其它区域。I=imread('02.jpg');%读取图像figur

7、e, imshow(I),title原始图像('');I1=rgb2gray(I);%转化为灰度图像figure,imshow(I1),title灰度图像('');I2=edge(I1,'roberts',0.09,'both')采用 ;% robert算子进行边缘检测figure,imshow(I2),title边缘检测后图像('');se=1;1;1; %线型结构元素I3=imerode(I2,se);%腐蚀图像figure,imshow(I3),title腐蚀后边缘图像('');se=stre

8、l('rectangle',25,25)%; 矩形结构元素I4=imclose(I3,se);%图像聚类、填充图像figure,imshow(I4),title聚类填充后图像('');I5=bwareaopen(I4,2000);去除聚团灰度值小于%2000的部分figure,imshow(I5),title形态滤波后图像('');通过对比原始图片,我们可以发现形态滤波后的图像已经很接近正确的车牌位置了,因此后期处理将通过这张图来找出车牌位置。2.3 车牌定位观察经过预处理后得到的图像发现车牌位置有明显的矩形有明显的矩形图样,通过对矩形区域的定位

9、即可获得具体的车牌位置。(1) 车牌的行起始和终止位置的确定%绘制行曲线图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;endendendtemp MaxY=max(Y1);%subplot(3,2,1),figure,plot(0:y-1,Y1),title行方向像素点灰度值累计和(''),xlabel(行值''),ylabel(像素'');temp, MaxY=max(Y1);PY1=MaxY;whi

10、le (Y1(PY1,1)>=80)&&(PY1>1)PY1=PY1-7;endPY2=MaxY;while (Y1(PY2,1)>=80)&&(PY2<y)PY2=PY2+7;End(2) 车牌的列起始位置和终止位置的确定%绘制列曲线图X1=zeros(1,x);for j=1:xfor i=PY1:PY2if(I6(i,j,1)=1)X1(1,j)= X1(1,j)+1;endword 文档 可自由复制编辑endend%subplot(1,3,2);figure,plot(0:x-1,X1),title列像素灰度值累计('&#

11、39;),xlabel(列值''),ylabel(像数和'');PX1=1;while (X1(1,PX1)<3)&&(PX1<x)PX1=PX1+7;endPX2=x;while (X1(1,PX2)<3)&&(PX2>PX1)PX2=PX2-7;end%PX1=PX1-7;%PX2=PX2+1;(3) 最后拼合获取的车牌在图像的行列位置dw=I(PY1:PY2,PX1:PX2,:);figure,imshow(dw),title定位剪切后的彩色车牌图像('')3 字符分割在汽车牌照自动识

12、别过程中,字符分割有承前启后的作用。它在前期牌照定位的基础上进行字符的分割,然后再利用分割的结果进行字符识别。%车牌图像转为灰度word 文档 可自由复制编辑if isrgb(dw)I1 = rgb2gray(dw); elseI1 = dw;end%二值化车牌图像I1 = im2bw(I1,graythresh(I1);二值化图像% %subplot(1,2,1);figure,imshow(I2),title二值化车牌图像('');I2 = bwareaopen(I1,16);去除小于%16像素的区块 %subplot(3,2,5);figure,imshow(I2),ti

13、tle形态学滤波后的二值化图像('');y1,x1,z1=size(I2);I3=double(I2);TT=1;%去除图像顶端和底端的不感兴趣区域%Y1=zeros(y1,1);for i=1:y1for j=1:x1if(I3(i,j,1)=1)Y1(i,1)= Y1(i,1)+1 ;endendendPy1=1;Py0=1;while (Y1(Py0,1)<20)&&(Py0<y1)Py0=Py0+7;endPy1=Py0;while(Y1(Py1,1)>=20)&&(Py1<y1)Py1=Py1+7;endI2=I

14、2(Py0:Py1,:,:);%subplot(3,2,6);figure,imshow(I2),title目标车牌区域('');%分割字符按行积累量X1=zeros(1,x1);for j=1:x1for i=1:y1if(I3(i,j,1)=1)X1(1,j)= X1(1,j)+1;endendendfigure;plot(0:x1-1,X1),title列方向像素点灰度值累计和(''),xlabel(列值''),ylabel(累计像素量'')% 分割字符Px0=1;Px1=1;figure();for i=1:9while

15、(X1(1,Px0)<3)&&(Px0<x1)Px0=Px0+7;endPx1=Px0;while (X1(1,Px1)>=3)&&(Px1<x1)|(Px1-Px0)<10) Px1=Px1+7;endZ=I2(:,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'

16、PIN4=Z;case 'Z6'PIN5=Z;case 'Z7'PIN6=Z;case 'Z8'PIN7=Z;otherwisePIN8=Z;endsubplot(1,9,i);word 文档 可自由复制编辑imshow(Z);Px0=Px1;end4 建立字符模板数据库模板库的合理建造是字符识别准确的关键之一,所以在字符识别之前必须把模板库设置好。 汽车牌照的字符一般有7 个, 大部分车牌第一位是汉字,通常代表车辆所属省份,或是军种 警别等有特定含义的字符简称;紧接其后的为字母与数字。车牌字符识别与一般文字识别在于它的字符数有限,十个阿拉伯数字

17、0 9, 26 个大写英文字母A Z 以及相关的车牌用汉字:京、沪、苏、台、港、澳、甲、乙、丙、使、领、学、试、境、消、边、警等,以及新式军牌中的汉字南、兰、广、北、沈、济、空、海等;车牌颜色:蓝、白、黑、黄等。所以建立字符模板库也极为方便。通过前面实验获取的几幅不同的车牌图片截取到的图片加上使用PhotoShop制作的部分图片如下:建立模板数据库时必须对这些图片进行统一处理,因为对前面处理分割后的车牌图像的测量得知单个字符的最佳宽高比是1: 2,所以将这些图片归一化为50×25大小;因为之后的字符识别考虑使用神经网络算法进行字符识别,所以再将上面归一化后的模板图像的样本排列在一起构

18、成1250× 18的矩阵样本,程序设计如下: function inpt = pretreatment(I)%YUCHULI Summary of this function goes here% Detailed explanation goes hereif isrgb(I)I1 = rgb2gray(I); elseI1=I;endI1=imresize(I1,50 20);%将图片统一划为50*20大小I1=im2bw(I1,0.9);m,n=size(I1);inpt=zeros(1,m*n);%将图像按列转换成一个行向量for j=1:nfor i=1:minpt(1,m

19、*(j-1)+i)=I1(i,j); endend这是一个自定义函数的Pretreatment.m文件,可以解决频繁写重复代码的问题,前面的图像预处理及车牌定位的代码可以写进Location.m文件中,通过代码DW = Location(I); 取得车牌定位后的图像;同时字符分割的代码亦可写进StringSplit.m 文件中,可以通过代码PIN0,PIN1,PIN2,PIN3,PIN4,PIN5,PIN6=StringSplit(DW取得的字符分割后的图像。);5 字符识别字符的识别目前用于车牌字符识别(OCR)中的算法主要有基于模板匹配的OCR 算法以及基于人工神经网络的OCR 算法。基于

20、模板匹配的OCR 的基本过程是:首先对待识别字符进行二值化并将其尺寸大小缩放为字符数据库中模板的大小,然后与所有的模板进行匹配,最后选最佳匹配作为结果。用人工神经网络进行字符识别主要有两种方法:一种方法是先对待识别字符进行特征提取,然后用所获得的特征来训练神经网络分类器。识别效果与字符特征的提取有关, 而字符特征提取往往比较耗时。因此, 字符特征的提取就成为研究的关键。另一种方法则充分利用神经网络的特点,直接把待处理图像输入网络,由网络自动实现特征提取直至识别。本文主要研究基于人工神经网络的方法来识别车牌字符。设计代码如下:close all;clear all;% 归一化训练样本I0=pre

21、treatment(imread('0.jpg');I1=pretreatment(imread('1.jpg');I2=pretreatment(imread('2.jpg');I3=pretreatment(imread('3.jpg');I4=pretreatment(imread('4.jpg');I5=pretreatment(imread('5.jpg');I6=pretreatment(imread('6.jpg');I7=pretreatment(imread(

22、9;7.jpg');I8=pretreatment(imread('8.jpg');I9=pretreatment(imread('9.jpg');I10=pretreatment(imread('10.jpg');I11=pretreatment(imread('11.jpg');I12=pretreatment(imread('12.jpg');I13=pretreatment(imread('13.jpg');I14=pretreatment(imread('14.jpg

23、9;);I15=pretreatment(imread('15.jpg');I16=pretreatment(imread('16.jpg');I17=pretreatment(imread('17.jpg');P=I0',I1',I2',I3',I4',I5',I6',I7',I8',I9',I10',I11',I12',I13',I14',I15',I16',I17'T=eye(18,18); %输出

24、样本% bp神经网络参数设置net=newff(minmax(P),1250,32,18,'logsig','logsig','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=

25、0.0000000001;net=init(net);net,tr=train(net,P,T)%; 训练样本% 测试I=imread('01.jpg');dw=Location(I);%车牌定位PIN0,PIN1,PIN2,PIN3,PIN4,PIN5,PIN6,PIN7,PIN8=StringSplit(dw字符分割及处理);% 测试字符,得到识别数值PIN0=pretreatment(PIN0);PIN1=pretreatment(PIN1);PIN2=pretreatment(PIN2);PIN3=pretreatment(PIN3);PIN4=pretreatment

26、(PIN4);PIN5=pretreatment(PIN5);PIN6=pretreatment(PIN6);PIN7=pretreatment(PIN7);PIN8=pretreatment(PIN8);P0=PIN0',PIN1',PIN2',PIN3',PIN4',PIN5',PIN6',PIN7',PIN8'for i=2:9T0= sim(net ,P0(:,i);T1 = compet (T0) ;d = find(T1 = 1) - 1;if (d=10)str='A'elseif (d=11

27、)str='B'elseif (d=12)str='C'elseif (d=13)str='D'elseif (d=14)str='G'elseif (d=15)str='K'elseif (d=16)str='L'elseif (d=17)str='M'elseif (d=0)str='0'elseif (d=1)str='1'elseif (d=2)str='2'elseif (d=3)str='3'elseif (

28、d=4)str='4'elseif (d=5)str='5'elseif (d=6)str='6'elseif (d=7)str='7'elseif (d=8)str='8'elseif (d=9)str='9'elsestr=num2str(d);endswitch icase 3str3=str;case 5str5=str;case 6str6=str;case 7str7=str;case 8str8=str;otherwisestr9=str;endend% 识别出的结果以标题形式显示在图上S=strcat(甘 ' ',str3,str5,str6,str7,str8,str9);figure();imshow(dw),title(S);第一次训练后识别出的车牌号码不正确,经过多次的识别才出现正确的结果;6 总结在汽车车牌识别的整个过程中,查找了很多资料,综合了各方面

温馨提示

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

评论

0/150

提交评论