您好,欢迎访问三七文档
当前位置:首页 > 机械/制造/汽车 > 汽车理论 > 基于Matlab的车牌识别系统
1基于Matlab的车牌识别系统一、摘要随着公路逐渐普及,我国的公路交通事业发展迅速,所以人工管理方式已经不能满着实际的需要,微电子、通信和计算机技术在交通领域的应用极大地提高了交通管理效率。汽车牌照的自动识别技术已经得到了广泛应用。汽车牌照自动识别整个处理过程分为预处理、边缘提取、车牌定位、字符分割、字符识别五大模块,其中字符识别过程主要由以下3个部分组成:①正确地分割文字图像区域;②正确的分离单个文字;③正确识别单个字符。用MATLAB软件编程来实现每一个部分,最后识别出汽车牌照。在研究的同时对其中出现的问题进行了具体分析,处理。二、课程设计的任务和目的任务:使用MATLAB对包含车牌的图片进行处理,利用算法识别出车牌所在的区域,并辨认其数字及字母,最后在屏幕上输出所识别出的车牌号。目的:1、让自己巩固理论课上所学的知识,理论联系实践。2、锻炼自己的动手能力,激发自己的研究潜能,提高我们的协作精神。三、设计原理由于车辆牌照是机动车唯一的管理标识符号,在交通管理中具有不可替代的作用,因此车辆牌照识别系统应具有很高的识别正确率,对环境光照条件、拍摄位置和车辆行驶速度等因素的影响应有较大的容阈,并且要求满足实时性要求。图1牌照识别系统原理图该系统是计算机图像处理与字符识别技术在智能化交通管理系统中的应用,它主要由牌照图像的采集和预处理、牌照区域的定位和提取、牌照字符的分割和识别等几个部分组成,如图1所示。其基本工作过程如下:(1)当行驶的车辆经过时,触发埋设在固定位置的传感器,系统被唤醒处于工作状态;一旦连接摄像头光快门的光电传感器被触发,设置在车辆前方、后方和侧面的相机同时拍摄下车辆图像;(2)由摄像机或CCD摄像头拍摄的含有车辆牌照的图像通视频卡输入计算机进行预处理,图像预处理包括图像转换、图像增强、滤波和水平较正等;(3)由检索模块进行牌照搜索与检测,定位并分割出包含牌照字符号码的矩形区域;2(4)对牌照字符进行二值化并分割出单个字符,经归一化后输入字符识别系统进行识别。四、设计所需函数介绍B=imread(‘A’);A是要读取的图像Im_gray=rgb2gray(im);将图像变为灰度图。im是待处理图像,Im_gray是处理后的图像。B=medfilt2(A,[mn]);用指定大小为m×n的窗口对图像A进行中值滤波。BW=im2bw(I,level)通过设定亮度将阈值灰度、真彩、索引图像转换为二值图像。Level是归一化的阈值,值域为[0,1]。BW=edge(I,'roberts',thresh);采用robert算子进行边缘检测。Thresh是所指定的敏感度阈值。ones产生全1数组,zeros产生全零数组。ones(a,b)产生a行b列全1数组。ones(a)产生a行a列全1数组。Matlab基于腐蚀和膨胀的边缘检测腐蚀:删除对象边界某些像素。膨胀:给图像中的对象边界添加像素。在操作中,输出图像中所有给定像素的状态都是通过对输入图像的相应像素及邻域使用一定的规则进行确定。在膨胀操作时,输出像素值是输入图像相应像素邻域内所有像素的最大值。在二进制图像中,如果任何像素值为1,那么对应的输出像素值为1;而在腐蚀操作中,输出像素值是输入图像相应像素邻域内所有像素的最小值。在二进制图像中,如果任何一个像素值为0,那么对应的输出像素值为0。结构元素的原点定义在对输入图像感兴趣的位置。对于图像边缘的像素,由结构元素定义的邻域将会有一部分位于图像边界之外。为了有效处理边界像素,进行形态学运算的函数通常都会给出超出图像、未指定数值的像素指定一个数值,这样就类似于函数给图像填充了额外的行和列。对于膨胀和腐蚀操作,它们对像素进行填充的值是不同的。对于二进制图像和灰度图像,膨胀和腐蚀操作使用的填充方法如下表:腐蚀和膨胀填充图像规则表规则规则腐蚀超出图像边界的像素值定义为该数据类型允许的最大值,对于二进制图像,这些像素值设置为1;对于灰度图像,unit8类型的最小值也为255。膨胀超出图像边界的像素值定义为该数据类型允许的最小值,对于二进制图像,这些像素值设置为0;对于灰度图像,unit8类型的最小值也为0。B1=imdilate(B0,se);图像的膨胀。B0是待处理的输入图像,se是结构元素对象B2=imerode(B1,se);图像的腐蚀,参数同上。imcrop功能:剪切图像.语法:I2=imcrop(I)X2=imcrop(X,map)RGB2=imcrop(RGB)I2=imcrop(I,rect)X2=imcrop(X,map,rect)RGB2=imcrop(RGB,rect)函数bwareaopen——删除小面积对象3格式:BW2=bwareaopen(BW,P,conn)作用:删除二值图像BW中面积小于P的对象,默认情况下使用8邻域。se=strel('square',6);%创建n*n的正方形C=max(A,[],dim)max是对矩阵求最大值。得到每行的最大值,用列向量形式输出。C=min(A,[],dim)min是对矩阵求最小值。得到每行的最小值,用列向量形式输出。B=sum(A,dim)sum对列向量求和。[m,n]=size(X)求出矩阵的大小用m*n表示imwrite(d,‘A.jpg’);把d保存为文件名是A.jpg的图像文件自定义函数:functione=qiege(d);对指定区域进行切割。function[word,result]=getword(d);从车牌中分割出第n个字符。五、详细设计步骤1.提出总体设计方案。车辆牌照识别整个系统主要是由车牌定位和字符识别两部分组成,其中车牌定位又可以分为图像预处理及边缘提取模块和牌照的定位及分割模块;字符识别可以分为字符分割与特征提取和单个字符识别两个模块。为了用于牌照的分割和牌照字符的识别,原始图象应具有适当的亮度,较大的对比度和清晰可辩的牌照图象。但由于该系统的摄像部分工作于开放的户外环境,加之车辆牌照的整洁度、自然光照条件、拍摄时摄像机与牌照的矩离和角度以及车辆行驶速度等因素的影响,牌照图象可能出现模糊、歪斜和缺损等严重缺陷,因此需要对原始图象进行识别前的预处理。牌照的定位和分割是牌照识别系统的关键技术之一,其主要目的是在经图象预处理后的原始灰度图象中确定牌照的具体位置,并将包含牌照字符的一块子图象从整个图象中分割出来,供字符识别子系统识别之用,分割的准确与否直接关系到整个牌照字符识别系统的识别率。由于拍摄时的光照条件、牌照的整洁程度的影响,和摄像机的焦距调整、镜头的光学畸变所产生的噪声都会不同程度地造成牌照字符的边界模糊、细节不清、笔划断开或粗细不均,加上牌照上的污斑等缺陷,致使字符提取困难,进而影响字符识别的准确性。因此,需要对字符在识别之前再进行一次针对性的处理。车牌识别的最终目的就是对车牌上的文字进行识别。主要应用的为模板匹配方法。因为系统运行的过程中,主要进行的都是图像处理,在这个过程中要进行大量的数据处理,所以处理器和内存要求比较高,CPU要求主频在600HZ及以上,内存在128MB及以上。系统可以运行于Windows98、Windows2000或者WindowsXP操作系统下,程序调试时使用matlab。2.各模块的实现。一、预处理及边缘提取4图2预处理及边缘提取流程图1、图象的采集与转换考虑到现有牌照的字符与背景的颜色搭配一般有蓝底白字、黄底黑字、白底红字、绿底白字和黑底白字等几种,利用不同的色彩通道就可以将区域与背景明显地区分出来,例如,对蓝底白字这种最常见的牌照,采用蓝色B通道时牌照区域为一亮的矩形,而牌照字符在区域中并不呈现。因为蓝色(255,0,0)与白色(255,255,255)在B通道中并无区分,而在G、R通道或是灰度图象中并无此便利。同理对白底黑字的牌照可用R通道,绿底白字的牌照可以用G通道就可以明显呈现出牌照区域的位置,便于后续处理。原图、灰度图及其直方图见图2与图3。对于将彩色图象转换成灰度图象时,图象灰度值可由下面的公式计算:G=0.110B+0.588G+0.302R(1)G=3RGB(2)图3图42、边缘提取边缘是指图像局部亮度变化显著的部分,是图像风、纹理特征提取和形状特征提取等图像分析的重要基础。所以在此我们要对图像进行边缘检测。图象增强处理对图象牌照的可辩认度的改善和简化后续的牌照字符定位和分割的难度都是很有必要的。增强图象对比度度的方法输入车牌图象灰度校正平滑处理提取边缘5有:灰度线性变换、图象平滑处理等。(1)灰度校正由于牌照图象在拍摄时受到种种条件的限制和干扰,图象的灰度值往往与实际景物不完全匹配,这将直接影响到图象的后续处理。如果造成这种影响的原因主要是由于被摄物体的远近不同,使得图象中央区域和边缘区域的灰度失衡,或是由于摄像头在扫描时各点的灵敏度有较大的差异而产生图象灰度失真,或是由于曝光不足而使得图像的灰度变化范围很窄。这时就可以采用灰度校正的方法来处理,增强灰度的变化范围、丰富灰度层次,以达到增强图象的对比度和分辨率。我们发现车辆牌照图象的灰度取值范围大多局限在r=(50,200)之间,而且总体上灰度偏低,图象较暗。根据图象处理系统的条件,最好将灰度范围展开到s=(0,255)之间,为此我们对灰度值作如下的变换:s=T(r)r=[rmin,,rmax]使得S∈[Smin,Smax],其中,T为线性变换,图5灰度线性变换minr-maxrminrSmax-maxrSminrminr-maxrSmin-SmaxS(3)若r(50,200)、s(0,255)则:85r7.115050255-r150255S(4)图6灰度增强后的图像(2)平滑处理对于受噪声干扰严重的图象,由于噪声点多在频域中映射为高频分量,因此可以在通过低6通滤波器来滤除噪声,但实际中为了简化算法,也可以直接在空域中用求邻域平均值的方法来削弱噪声的影响,这种方法称为图象平滑处理。例如,某一象素点的邻域S有两种表示方法:8邻域和4邻域分别对应的邻域平均值为,图78-邻域、4-邻域模板sjijifMjig),(),(1),((5)其中,M为邻域中除中心象素点f(i,j)之外包括的其它象素总数,对于4邻域M=4,8邻域M=8。然而,邻域平均值的平滑处理会使得图象灰度急剧变化的地方,尤其是物体边缘区域和字符轮廓等部分产生模糊作用。为了克服这种平均化引起的图象模糊现象,我们给中心点象素值与其邻域平均值的差值设置一固定的阈值,只有大于该阈值的点才能替换为邻域平均值,而差值不大于阈值时,仍保留原来的值,从而减少由于平均化引起的图象模糊。图8平滑处理后的图像图像中车辆牌照是具有比较显著特征的一块图象区域,这此特征表现在:近似水平的矩形区域;其中字符串都是按水平方向排列的;在整体图象中的位置较为固定。正是由于牌照图象的这些特点,再经过适当的图象变换,它在整幅中可以明显地呈现出其边缘。边缘提取是较经典的算法,此处边缘的提取采用的是Roberts算子。图9未滤波直接提取出的边缘图10经灰度校正后提取的边缘图11经平滑处理后提取的边缘对比以上几幅图片,图8的边缘已经模糊掉了。图7中包含的噪声太多,图9未经滤波直接提取出的边缘图像最清晰,所包含的有用信息最多。分析这种情况产生的原因,归纳起来主要有以下方面:1、原始图像清晰度比较高,从而简化了预处理4325i,j167823i,j1472、图像的平滑处理会使图像的边缘信息受到损失,图像变得模糊3、图像的锐化可以增强图像中物体的边缘轮廓,但同时也使一些噪声得到了增强综上所述,结合MATLAB实验过程,得出不是每一种图像处理之初都适合滤波和边界增强。本次汽车车牌的识别,为了保存更多的有用信息,经过多次比较,选择图9作为后期处理的依据。二、牌照的定位和分割牌照的定位和分割是牌照识别系统的关键技术之一,其主要目的是在经图象预处理后的原始灰度图象中确定牌照的具体位置,并将包含牌照字符的一块子图象从整个图象中分割出来,供字符识别子系统识别之用,分割的准确与否直接关系到整个牌照字
本文标题:基于Matlab的车牌识别系统
链接地址:https://www.777doc.com/doc-5209392 .html