




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、基于MATLAB的车牌识别系统设计 学 院 测控与通信工程学院专 业 信号与信息处理学生姓名 二妮子 学 号 1101101101 指导教师 么么哒 基于MATLAB的车牌识别系统设计摘要:本文主要介绍了基于MATLAB的有关数字图像处理的车牌数字识别系统。系统是利用单张包含车牌的静态图片进行识别的,整个识别过程主要分为车牌定位和字符分割和字符识别三个大的模块。而其中的字符识别是系统的核心部分。字符识别目前运用的最多的就是神经网络和模板匹配的方法,本文所介绍的就是基于神经网络的方法来实现车牌数字的识别。过程中也相应结合了特征提取、直方图统计等一系列方法。从实验得知,这种神经网络的方法实现简单,
2、且容易理解,在确保识别准确率的前提下,可以提高识别的效率,使得系统在比较准确地定位了车牌及分割出字符后,能更准确地实现字符的识别。关键词:车牌识别;matlab;神经网络1 引言随着我国交通运输的不断发展,智能交通系统(Intelligent Traffic System,简称ITS)的推广变的越来越重要,而作为ITS的一个重要组成部分,车牌识别系统(LPRS)是智能交通系统的重要组成部分。随着机动车辆数量的大幅度增加以及计算机技术的发展,人们对交通控制系统的要求显著提高。因而智能交通系统被广泛地应用于交通控制系统当中,比如高速公路收费、停车场车辆管理、违章车辆监控、交通诱导控制等场合。这使得
3、车牌识别系统也得到了更广泛的关注。与传统的车辆管理方法比较,车牌识别系统可以大大提高交通管理的效率和水平,帮助实现车辆管理的规范化。由于牌照是机动车辆管理的唯一标识符号,因此,车辆牌照识别系统的研究在机动车管理方面具有十分重要的实际意义。2 车辆牌照识别系统工作原理车辆牌照识别系统的基本工作原理为:将摄像头拍摄到的包含车辆牌照的图像通过视频卡输入到计算机中进行预处理,再由检索模块对牌照进行搜索、检测、定位,并分割出包含牌照字符的矩形区域,然后对牌照字符进行二值化并将其分割为单个字符,然后输入JPEG或BMP格式的数字,输出则为车牌号码的数字。3 车辆牌照识别系统组成1.读入图像: 输入的图像由
4、于受到天气影响,包括晴天、阴天、晚上等,由于光照影响和摄像机曝光的不同,再加上有些车牌老化污损、陈旧退色,这些都可能使车牌图像产生对比度不足的弊端,图像细节分辨不清,车牌字符部分不突出. 而且,对高速行进中的汽车拍摄的图像往往产生模糊、扭曲、变形等现象,这些都增加了预处理的难度。而这些处理需要很复杂的过程,因为系统把读入的图片默认为比较清晰的、几乎没有倾斜角度的图片。 2.图像预处理:图像预处理过程需要把图像转换成便于车牌定位的二值化图像。需要经过图像灰度化,图像增强,边缘提取,二值化操作。 3.车牌定位:从预处理后的汽车图像中分割出车牌图像。即在一幅车辆图像
5、中找到车牌所在的位置。4.字符分割:对车牌图像进行几何校正、去噪、二值化以及字符分割以从车牌图像中分离出组成车牌号码的单个字符图像5.字符识别:对分割出来的字符进行预处理(二值化、归一化),然后分析提取,对分割出的字符图像进行识别给出文本形式的车牌号码。4 汽车牌照识别系统的matlab实现4.1 图像预处理 图像在形成、传输或变换过程中,受多种因素的影响,如:光学系统失真、系统噪声、曝光不足或过量、相对运动等,往往会与原始景物之间或图像与原始图像之间产生了某种差异,这种差异称为降质或退化。因此在图像处理之前必须进行预处理,包括去除噪音、边界增强、增加亮度等。 输入
6、的彩色图像包含大量颜色信息,会占用较多的存储空间,且处理时也会降低系统的执行速度,因此对图像进行识别等处理时,常将彩色图像转换为灰度图像,以加快处理速度。对图像进行灰度化处理、边缘提取、再利用形态学方法对车牌进行定位。 具体步骤如下:首先对图像进行灰度转换,二值化处理然后采用4X1的结构元素对图像进行腐蚀,去除图像的噪声。采用25X25的结构元素,对图像进行闭合应算使车牌所在的区域形成连通。再进行形态学滤波去除其它区域。图像预处理原图像灰度图像边缘检测腐蚀图像填充后图像形态学滤波后图像通过对比原始图片,我们可以发现形态滤波后的图像已经很接近正确的车牌位置了,因此后期处
7、理将通过这张图来找出车牌位置。车牌定位 观察经过预处理后得到的图像发现车牌位置有明显的矩形有明显的矩形图样,通过对矩形区域的定位即可获得具体的车牌位置。(1)车牌的行起始和终止位置的确定。车牌的列起始位置和终止位置的确定。(2) 最后拼合获取的车牌在图像的行列位置定位剪切后彩色车牌图像(3) 字符分割 在汽车牌照自动识别过程中,字符分割有承前启后的作用。它在前期牌照定位的基础上进行字符的分割,然后再利用分割的结果进行字符识别。灰度图像二值化车牌图像4.3 车牌字符识别建立字符模板数据库 模板库的合理建造是字符识别准确的关键之一
8、,所以在字符识别之前必须把模板库设置好。汽车牌照的字符一般有 7个,大部分车牌第一位是汉字,通常代表车辆所属省份,或是军种,警别等有特定含义的字符简称;紧接其后的为字母与数字。车牌字符识别与一般文字识别在于它的字符数有限,十个阿拉伯数字09, 26个大写英文字母AZ以及相关的车牌用汉字:京、沪、苏、台、港、澳、甲、乙、丙、使、领、学、试、境、消、边、警等,以及新式军牌中的汉字南、兰、广、北、沈、济、空、海等;车牌颜色:蓝、白、黑、黄等。所以建立字符模板库也极为方便。4.3.1 构造训练样本如下图所示的数字和字母 建立模板数据库时必须对这些图片进行统一处理,因为对前面处理分割后的车牌图像的测量得
9、知单个字符的最佳宽高比是1:2,所以将这些图片归一化为50×25大小;因为之后的字符识别考虑使用神经网络算法进行字符识别,所以再将上面归一化后的模板图像的样本排列在一起构成1250×18的矩阵样本。将样本进行归一化为50X20大小,再将图像按列转换成一个1000X1的行向量,将上述18个图像的样本排列在一起构成1000X18的矩阵样本,尽可能多的采集汽车图像提取车牌,部分切分出车牌字符,构造出更多1000X18的矩形样本,用构造好的样本库对神经网络进行训练。4.3.2 构造输入样本,按同样的方法,将前面分割出的样本归一化 4.3.3 神经网络进行识别总结 目前,基于数字图像
10、的车牌数字识别系统已经开发完毕。系统设计过程中,在对图像处理概念和方法有了一定了解之后,开始了系统的开发,此过程大概用了一个半月时间。而后完成系统的实现和测试。系统基本完成了当初预计的功能,根据输入的包含车牌信息的静态图片,利用神经网络方法识别车牌内部数字。就目前结果来看,系统基本实现了当初预计的功能。 本系统的特点: 1. 原创性:在消化理解了现有一些图像操作算法的基础上,根据实际情况,将有关算法转化为了个人的方法,从系统实验结果可以看到,这些算法起到了一定效果 2. 多方式运行:系统可以实现一键运行,即运行程序立即显现结果。同时,可以进行分步运行,帮助用户
11、及使用者观察到系统每一步运行所产生的变化,进而更加理解系统的作用,能够更好的运行系统。 3. 方法的丰富性:系统中运用了多种图像处理算法,并加之个人理解,从而形成了一个功能比较齐全的软件系统。 展望 虽然系统目前完成了基本功能,但是由于图像处理操作很多,并且其设计的知识也相当的广,在短时间内很难全部理解和灵活运用,再加之个人技术水平的限制,因此系统仍存在一些不足之处,总结起来主要有以下三个方面: 1. 系统默认输入图片为具有一定清晰度的图片,但是也会有模糊的情况,系统应降低它的局限性,因此应增加一些更进一步的图像增强的操作,以使得能够处理大部分图片,且能更好的
12、进行车牌定位。 2. 车牌定位算法,虽然可以定位出车牌的位置,但有时还是会出现一定偏差,仍可以进一步完善。 3.系统字符识别过程中的神经网络参数选择如果更加精确,可以更加准确的识别。附录:clear all;close all;clc;I=imread('H:/532.jpg'); %读取图片 figure(1);imshow(I);I1=rgb2gray(I); %转化为灰度图像 figure(2);imshow(I1);I2=edge(I1,'roberts',0.09,'both'); %采用robert算子进行边缘
13、检测 figure(3);imshow(I2);se=1;1;1; %线型结构元素 I3=imerode(I2,se); %腐蚀图像figure(4);imshow(I3);se=strel('rectangle',25,25); %矩形结构元素 I4=imclose(I3,se); %图像聚类、填充图像 figure(5);imshow(I4);I5=bwareaopen(I4,2000); %去除聚团灰度值小于2000的部分<span style="color:#ff0000;"> figure(6);imshow(I5);y,x,=size
14、(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 end end figure(7); subplot(1,2,1); plot(0:y-1,Y1),title('行像素灰度值累计'),xlabel('行值'),ylabel('像素和'); temp, MaxY=max(Y1); PY1=MaxY; while (Y1(PY1,1)>=80)&&(PY1>1) P
15、Y1=PY1-7; end PY2=MaxY; while (Y1(PY2,1)>=80)&&(PY2<y) PY2=PY2+7; end %绘制列曲线图 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 subplot(1,2,2); plot(0:x-1,X1),title('列像素灰度值累计'),xlabel('列值'),ylabel('像数和'); PX1=1; while (X1(1,P
16、X1)<3)&&(PX1<x) PX1=PX1+7; end PX2=x; while (X1(1,PX2)<3)&&(PX2>PX1) PX2=PX2-7; end DW=I(PY1:PY2,PX1:PX2,:); figure(8); imshow(DW),title('车牌定位后图像');% 车牌图像转为灰度 if isrgb(I) I1 = rgb2gray(I); else I1 = I; end % 二值化车牌图像 I1 = im2bw(I1,graythresh(I1);%二值化图像 I2 = bwareao
17、pen(I1,16);%去除小于16像素的区块 figure(); subplot(1,2,1); imshow(I2),title('二值化车牌图像'); % 分割字符按行积累量 y,x=size(I2); I3=double(I2); X1=zeros(1,x); for j=1:x for i=1:y if(I3(i,j,1)=1) X1(1,j)= X1(1,j)+1; end end end subplot(1,2,2); plot(0:x-1,X1),title('车牌列像素点累计'),xlabel('列值'),ylabel('
18、;像素和'); % 分割字符 Px0=1; Px1=1; figure(); for i=1:7 while (X1(1,Px0)<3)&&(Px0<x) Px0=Px0+1; end Px1=Px0; while (X1(1,Px1)>=3)&&(Px1<x)|(Px1-Px0)<10) Px1=Px1+1; end Z=I2(:,Px0:Px1,:); switch strcat('Z',num2str(i) case 'Z1' PIN0=Z; case 'Z2' PIN1
19、=Z; case 'Z3' PIN2=Z; case 'Z4' PIN3=Z; case 'Z5' PIN4=Z; case 'Z6' PIN5=Z; otherwise PIN6=Z; end subplot(1,7,i); imshow(Z); Px0=Px1; end function inpt = Pretreatment(I) % 训练样本前期处理 if isrgb(I) I1 = rgb2gray(I); else I1=I; end I1=imresize(I1,50 25);%将图片统一划为50*25大小 I1=i
20、m2bw(I1,0.9); m,n=size(I1); inpt=zeros(1,m*n); % 将图像按列转换成一个行向量 for j=1:n for i=1:m inpt(1,m*(j-1)+i)=I1(i,j); end end close all; clear all; % 归一化训练样本 I0=pretreatment(imread('BP/0.jpg'); I1=pretreatment(imread('BP/1.jpg'); I2=pretreatment(imread('BP/2.jpg'); I3=pretreatment(im
21、read('BP/3.jpg'); I4=pretreatment(imread('BP/4.jpg'); I5=pretreatment(imread('BP/5.jpg'); I6=pretreatment(imread('BP/6.jpg'); I7=pretreatment(imread('BP/7.jpg'); I8=pretreatment(imread('BP/8.jpg'); I9=pretreatment(imread('BP/9.jpg'); I10=pretre
22、atment(imread('BP/A.jpg'); I11=pretreatment(imread('BP/B.jpg'); I12=pretreatment(imread('BP/C.jpg'); I13=pretreatment(imread('BP/D.jpg'); I14=pretreatment(imread('BP/G.jpg'); I15=pretreatment(imread('BP/K.jpg'); I16=pretreatment(imread('BP/L.jpg
23、9;); I17=pretreatment(imread('BP/M.jpg'); P=I0',I1',I2',I3',I4',I5',I6',I7',I8',I9',I10',I11',I12',I13',I14',I15',I16',I17' T=eye(18,18); %输出样本 % bp神经网络参数设置 net=newff(minmax(P),1250,32,18,'logsig','logsig'
24、;,'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.0000000001; net=init(net); net,tr=train(net,P,T); %训练样本 % 测试 I=imread
25、('CAR/0.jpg'); DW=Location(I);%车牌定位 PIN0,PIN1,PIN2,PIN3,PIN4,PIN5,PIN6=StringSplit(DW);%字符分割及处理 % 测试字符,得到识别数值 PIN0=pretreatment(PIN0); PIN1=pretreatment(PIN1); PIN2=pretreatment(PIN2); PIN3=pretreatment(PIN3); PIN4=pretreatment(PIN4); PIN5=pretreatment(PIN5); PIN6=pretreatment(PIN6); P0=PIN0',PIN1',PIN2',PIN3',PIN4',PIN5',PIN6' for i=2
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 金融分析师考试动态把握与试题及答案
- 计算机辅助外语教学在初中英语教学中的个案研究
- 河北省衡水市阜城实验中学2024-2025学年高一下学期3月月考历史试题(含解析)
- 突破复习瓶颈的CFA试题及答案
- 【地理】2024届山东省滕州市高三一调试题(解析版)
- 中学英语校本教研的途径和方法
- 2024年特许金融分析师评估的试题及答案
- 特许金融分析师考试答题技巧大揭秘与试题及答案
- CFA课程复习试题及答案模板
- 视网膜静脉阻塞的护理
- 河南省鹤壁市各县区乡镇行政村村庄村名居民村民委员会明细
- 妈妈抱抱我 课件
- 电缆绝缘电阻测试记录簿表格
- 2021年丽江地区玉龙纳西族自治县人民医院医护人员招聘笔试试题及答案解析
- 天津某污水处理厂厂区建设创“海河杯”精品工程QC成果发布
- 学习的迁移课件
- 药房消防安全应急预案(通用10篇)
- 销售管理(第三版)-熊银解
- 概率论与数理统计公式整理(超全免费版)
- 灭火器检查表完美
- 华罗庚 统筹方法
评论
0/150
提交评论