电子科技大学光电信息学院课程设计论文课程名称光电图像处理题目名称简易车牌识别系统设计学号2705302012姓名周之川指导老师彭真明起止时间2010年5月1日至2010年5月30日2010年5月30日电子科技大学光电信息学院课程设计任务书一、课程名称___________光电图像处理______________________二、课程设计题目______________简易车牌识别系统设计_______________二、课程设计目的通过简易车牌识别系统的设计,能够对光电图像处理系统及应用有一个整体认识。对图像识别中涉及的关键技术,如图像增强、直方图分析、阈值分割、特征匹配等有更进一步的理解。培养学生在小系统设计中的总体思路、关键技术分析、简单程序设计等能力。三、课程设计要求1、了解车牌识别的关键技术及难点问题;2、明确小型车牌识别系统的各功能模块;3、图像处理算法的程序设计;4、提交综合课程设计报告。四、课程设计任务和内容1、查阅相关文献,了解车牌识别技术现状及关键知识点分析;2、提交小型车牌识别系统设计方案,需画出模块及流程图;3、关键算法,如图像分割、字符识别的程序实现(可用Matlab或VisualC++等)。4、撰写综合课程设计报告。五、参考文献[1]周妮娜,王敏,黄心汉,等.车牌字符识别的预处理算法.计算机工程与应用,2003,(15)[2]董慧颖,曹仁帅.汽车牌照自动识别系统中字符分割算法研究.沈阳工业学院学报2003(12)Vol.22No.4[3]崔江,王友仁.车牌自动识别方法中的关键技术研究.计算机测量与控制,2003.11(4):260-262[4]马俊莉,莫玉龙,王明祥.一种基于改进模板匹配的车牌字符识别方法.小型微型计算机系统,2003,23(2)指导教师签名:彭真明日期:2010年4月23日基于MATLAB的简易车牌识别系统设计周之川摘要:汽车车牌识别技术在图像识别领域有其典型性与实用性的意义,而MATLAB有其突出的处理图像数据的能力,这里运用MATLAB实现对图像的预处理、车牌定位、车牌字符分割以及字符识别,最终设计出一套简易车牌识别系统。该系统能准确定位在自然背景下的蓝色车牌,并通过统计手段分离出每个字符,最后识别出每个字符。经过多次测试,结果表明该系统对蓝色车牌有相当好的识别能力。关键词:MATLAB;图像处理;车牌定位;字符分割;字符识别1引言车牌识别对于交通管理有着重要的意义,车牌是车辆的唯一标志,在交通系统之正逐渐向智能化自动化发展的今日,自动车牌识别系统有着至关重要的意义。比如,通过交通监控系统自动识别获得违规、超速、肇事车辆的车牌信息做到实时监控就现今车牌系统而言,有很多出色的系统,但对于100%识别率还没有绝对可靠的系统,所以这还是一项有待完善的技术,有着很大的研究空间与价值。就现今的研究成果看车牌识别多分为四步[1],即图像预处理、车牌定位、字符分割、字符识别。本系统也以这四个方面为模块用MATLAB进行设计实现。2系统实现2.1系统简介如上图,为本系统的基本框架。首先通过图像预处理得到清晰图像,再通过车牌定位算法定位车牌,然后对得到的车牌进行字符分割,再对分割出的字符一一识别,最后输出结果。其中车牌定位最为关键,准确的定位将使下面的工作事半功倍的进行下去。图像预处理车牌定位字符分割字符识别输出结果2.2图像预处理对于采集到的图像不都是满意的图像,总伴有各种各样的噪声几失真。对于交通监控系统采集的图像多会由于天气、被测物速度等因素使得图像产生失真,而这些因素有些是可以事先估计到的。比如一天下雨造成的图像较暗淡或造成一些颜色的色差,可以通过图像增强将图中的重要信息突出出来,如通过灰度直方图对图像亮度进行调整增加图像的可分辨度或通过相匹配的滤波器对图像滤波去除噪声。又如,对运动物体拍摄的图像很可能存在拖影的现象[2],可通过图像复原技术对速度产生的图象退化做逆运算,从而得到较好的物体图像。2.3车牌定位自然环境下,汽车图像背景复杂、光照不均匀,如何在自然背景中准确地确定牌照区域是整个识别过程的关键。如何在自然背景下准确选取车牌区域有多种办法,如区域大小匹配[3]、灰度二值化后直方图特征选取[4]或颜色投影匹配等。其中颜色投影匹配方法最具特征性,也最容易准确识别车牌区域。本系统就是采用了这个思想,考虑到车牌为标准化的物体,其中小型民用车辆都为蓝底白字,识别时可针对车牌特有的蓝色背景进行选取。经过多张图像统计发现车牌的颜色比起背景很具特征,其RGB值约在R(0,30),G(20,100),B(110,250)范围内所以可以用以下程序找出r1=0;r2=30;g1=10;g2=100;b1=110;b2=250;if((I(i,j,1)=r2&&(I(i,j,1)=r1))&&((I(i,j,2)=g2)&&(I(i,j,2)=g1))&&((I(i,j,3)=b2)&&(I(i,j,3)=b1)))Blue_y(i,1)=Blue_y(i,1)+1;End这样判断条件设立,考虑到车牌在纵向上比横向加总特征更加明显,故先用循环语句纵向加总,进行纵向投影统计,选出统计量大于一定阈值Pmx要求的,对于低于要求的则不予考虑。从而筛选找出横向范围,找到纵向的端点坐标。再对横轴做同样的筛选找出横向范围,则可选出车牌的区域。具体操作为:(1)经判断得到每纵符合判断的像素总和Blue_y(i,1)(2)[tempMaxY]=max(Blue_y);%取出其中极大值坐标(3)while((Blue_y(PY1,1)=5)&&(PY11))PY1=PY1-1;End%以极大值为中心向两边判断符合阈值的纵列。此处阈值为5.(4)IY=I(PY1:PY2,:,:);此即为纵向范围(5)同上方法找出横向范围下图为截取的车牌图像:选取时可适当放宽选区从而保证车牌的完整。2.4字符分割这将是承前启后的一步。车牌定位后节的图像可很容易的发现其颜色上大体上只有蓝白两种色彩,其中包含的有用信息也多在蓝白分别代表的区域上,若对其进行二值化处理则可去除多余的颜色信息而突出其区域性。而分割的优劣则将直接影响车牌识别的结果。2.4.二值化二值化就是将原图RGB图像变为用“0”“1”表示的二值图像,只保留归类后的区域信息,而把其他次要信息忽略。首先将RGB图像变为256级的灰度图像。接着就此灰度图二值化,对此灰度图像进行二值化实质是将图像中的每一个象素按一定规则进行分类,也就是将图像转换为只有“0”“1”(黑,白)表示的二值图像。最简单的分类规则是依据区域相似性和不连续性,取定一灰度阈值。大于此阈值的象素点置成黑(白),而小于此阈值的象素点置成白(黑)。常用的二值化算法有:Otsu算法、Bernsern算法和熵函数算法等。文献报道中多数系统都是采用这种灰度阈值二值化的方法。有时为了简化算法,减少运算时间,取图像平均值为阈值[21];有的考虑到牌照光照不均,采取了牌照字幅分别二值化的方法[25],也就是先对牌照图像进行分割,再对分割出来的字符图像进行独立梯度统计,取各自不同的阈值进行分类;这里用简单的最小值最大值之间的45%做阈值。具体做法如下:(1)I2=rgb2gray(Plate)%将图像变为灰度图像(2)fmax=double(max(max(I2)));fmin=double(min(min(I2)));lvl=(fmax1-(fmax-fmin)/2.2)/255;%获得最佳阈值(3)bw22=im2bw(I2,lvl);%将图像转换为二进制图像(4)bw11=imresize(bw22,[50,200]);figure,imshow(bw11)%将图像标准化等待下一步处理处理完毕的图像:接下来就是分割的部分了。2.4.2字符分割从上面处理完的图形可见每个字符之间都有一段间断,正以利用这段间断带来的统计规律将字符分割开。这类似于上面颜色统计,这里将二值图进行统计,结果如下图:02040608010012014016018020005101520253035404550很明显看出每个字符间一段一段的间断,这里再运用二值化将小于阈值的全部归零大于的全部置一,则值为一的部分就为有效字符部分如图所示:02040608010012014016018020000.20.40.60.81此时通过检测上升下降沿,并为上升下降沿分别建立数组位置一一对应,则每一组上升下降沿就对应一个字符的横坐标位置范围,从图中可见其中有些噪声条纹,则可将宽度小于18像素(前面已经标准化过)剔除达到去噪声效果。具体程序实现如下:(1)forj=1:x2fori=1:y2ifP(i,j)~=0Px(1,j)=Px(1,j)+1;endendend%统计(3)fori=1:201ifPx3(i)==0&&Px3(i+1)==1m1(a1)=i;a1=a1+1;elseifPx3(i)==1&&Px3(i+1)==0m2(a2)=i;a2=a2+1;endend%上升沿下降沿分别建立数组(2)fori=1:x2ifPx(1,i)1Px2(i)=1;elsePx2(i)=0;endend%二值化(4)t=0;fori=1:a2-1if(m2(i)-m1(i))=18t=t+1;m2(t)=m2(i);m1(t)=m1(i);endend%去掉噪声这样基本完成了字符的分割,效果如下:2.5字符识别分割好的字符将进入最后一步识别。现今的识别技术很多,但各有优缺点,就字符识别而言有如下几类[5]:(1)利用字符的结构特征和变换进行特征提取,如:Fourier变Karhuren-Loeve变换等,这种方法对字符的倾斜、变形都有较高的容忍度,但运算量巨大,对计算机性能要求高;(2)利用字符的统计特征进行特征提取,目前多数字符识别系统均采用此方法,如提取字符号的投影特征、网格特征和轮廓特征组成字符特征矢量,进行特征匹配,结果具有较高的识别率;(3)基于字符结构分析的识别方法,这种方法可以识别有较大旋转、变形、缩放的字符图像,但需要进行复杂的字符笔划分析和抽取,对牌照字符图像质量要求较高;(4)模板匹配法,此法方法简便,广泛采用,这种方法对于有轻微变形、笔划缺损、污迹干扰的字符图像有较好的识别率,识别速度与匹配库大小有关。(5)基于人工神经网络算法(ANNS)的识别,这是对人脑或自然神经网络若干基本特性的抽象和模拟,其优点为可以学习自适应不确定系统,可以充分逼近任意复杂的非线性关系,具有联想储存功能,但其程序复杂,识别前需要多次训练,且运算较大。考虑到本字符识别只涉及31个汉字26个字母以及十个数字,字符库很容易建立,运用模板匹配法应该是最好的选择。首先需要建立字库,可将每个字符模板(模板均为二值图像)按约定好的顺序大小依次排入一张.bmp图中,再用matlab调用图片与所要识别图像用corr2()函数一一比较,找出其中最大值及其对应位置编号再用switch函数赋相应的值即完成。3结论经过几幅图像的测试,本系统都能较好的识别出来,但系统还是存在适用范围,本简易系统只考虑了蓝色车牌情况,所以只适用于蓝色车牌识别,当然对参数稍作改动也能适应其他车牌。由于运用的是颜色识别,对于背景中有大面积蓝色物体的就不能很好识别了,但可以通过与区域匹配程序结合完成识别。参考文献[1]崔江、王友仁.车牌自动识别方法中的关键技术研究.计算机测量与控制,2003.11[2]彭真明,雍杨,杨先明.光电图像处理,电子科技大学出版社,2008.3[3]王刚,冀小平.基于MATLAB的车牌识别系统的研究.中国科技论文在线[4]鲁小平,陈阿林.基于MATLAB的车牌识别.测绘通报,2007.Vol.10[5]孙彬.车牌自动识别图像处理关键技术研究.电子科技大学学位论文课程设计总结通过这次车牌识别系统的课程设计的完成,对光电图像处理课程的作用和意义有了更深的理解,对课程所教授的内容也在实践中灵活运用加深了印象,也学会了运用MATLAB这一数学编程工具。对于科研的一般过程有了了解。