车牌识别系统毕业设计

上传人:沈*** 文档编号:41494577 上传时间:2021-11-20 格式:DOC 页数:39 大小:4.86MB
收藏 版权申诉 举报 下载
车牌识别系统毕业设计_第1页
第1页 / 共39页
车牌识别系统毕业设计_第2页
第2页 / 共39页
车牌识别系统毕业设计_第3页
第3页 / 共39页
资源描述:

《车牌识别系统毕业设计》由会员分享,可在线阅读,更多相关《车牌识别系统毕业设计(39页珍藏版)》请在装配图网上搜索。

1、武汉理工大学毕业设计(论文)摘要车牌识别系统是智能交通系统中不可或缺的核心组成部分。是图像处理和模式识别技术研究的热点,应用也越来越普遍。本次毕业设计所研究的车牌识别系统可广泛应用于交通监控、公路收费、停车收费、汽车防盗、违章管理中。汽车牌照识别系统涉及的核心技术主要包括汽车牌照定位、汽车牌照分割和汽车牌照字符识别技术。本文对这些技术及所涉及的算法做了详细的论述,并对部分算法做了改进。汽车牌照定位:在本次设计的系统中对车牌定位的算法包括三个过程,即颜色识别、形状识别、纹理识别。先通过颜色识别来初步确定车牌的所在区域,再结合车牌的形状特征以及纹理特征精确定位。汽车牌照字符分割:分割算法就是以识别

2、汽车牌照内字符间存在的间距为依据进行分割,得到单个的字符。汽车牌照字符识别:本文通过使用模板匹配法,将待识别字符经分割归一化成模板字体的大小,将它输入字符识别模块进行匹配,从而识别出车牌中的汉字,字母以及数字。关键词:车牌识别;汽车牌照定位;字符分割;字符识别AbstractLicense plate recognition system is an integral part of the core component of the Intelligent Transportation Systems. It is a research hotspot of image processing

3、 and pattern recognition techniques, applications are increasingly common. The graduation project of the license plate recognition system can be widely used in traffic monitoring, highway fees, parking fees, car alarm, illegal management.Car license plate recognition system involved in core technolo

4、gies include the vehicle license positioning, car license segmentation and vehicle license plate character recognition technology. Of these technologies and algorithms are discussed in detail, and improvements have been made part of the algorithm.License plate location: license plate location algori

5、thm in the design of the system includes three processes that color recognition, shape recognition, texture recognition. First color recognition to determine the license plate area, combined with the shape feature and texture feature of the license plate precise positioning.License plate character s

6、egmentation: segmentation algorithm is based on the spacing between characters identify vehicle license segmentation, a single character.License plate character recognition: This article by using the template matching method will be to identify the characters split normalized to the template font si

7、ze, enter it in the character recognition module to match, in order to identify the license plate characters, letters and numbers.KeyWords: license plate recognition; license plate location; character segmentation; character recognition1绪论1.1课题背景及意义汽车号牌是国家车辆管理法规定的具有统一式样的带有注册登记编码的号码牌,是识别车辆身份的标识。为此,我国

8、交管部门对汽车车牌的管理非常重视,并制定了一套严格的管理法规。对车牌的制作、安装、维护都要求由制定部门统一进行管理。在此基础上,研制出一种能在公共场合迅速准确的对车牌进行自动识别的系统,那将是一件非常有意义的工作,并将极大地提高汽车的安全管理水平及管理效率。本次毕业设计就是基于此种目的,进行汽车牌照自动识别技术的设计与实现。该技术可广泛应用于交通监控、公路收费、停车收费、汽车防盗、违章管理中。车牌识别系统是智能交通系统中不可或缺的核心组成部分。是图像处理和模式识别技术研究的热点,应用也越来越普遍。智能交通系统为解决当前紧迫的交通问题提供了关键的技术,其中汽车牌照识别是智能交通系统中最关键技术之

9、一,已广泛应用于各级公路和城市交通管理,具有巨大的经济价值和现实意义。一般的说,人工智能的发展分近期很远期两个目标。近期目标是人工智能逐步接近并达到人脑的智力水平。远期目标是人工智能的智力水平得到进一步提高,再反过来辅助人脑,或者作为一种工具来延伸并增强人脑的智力水平。如为人脑提供智力眼、智力耳等具有分析能力的智力器官。 目前,人工智能的技术水平仍处于实现近期目标的较低阶段。其中,关于声音、文字、图像等信息的识别能力就远远没有达到人脑的识别水平。而这一识别能力的提高主要依靠人工智能的模式识别技术水平的提高。本次毕业设计关于汽车牌照识别技术的研究则是人工智能与模式识别技术领域的一个典型应用研究。

10、这必将有助于推动人工智能及模式识别技术的发展。1.2国内外研究现状针对汽车牌照自动识别系统的研究,国外起步较早,20世纪80年代就有大量相关研究,取得的成果也比较多。在20世纪80年代,英国就完成了“实时车牌检测系统的”研究和开发。日本在对车牌图像的获取方面也做了不少的研究,并为系统产业化做了不少贡献。 如今,车牌识别系统的研究技术在国外已经比较成熟,例如匈牙利的Adaptive Recognitiong公司,新加坡的Optasia公司研制开发的VLPRS,以色列的Hi-Tech公司研制开发的See/Car System。这些产品能够适应多个国家的车牌,但是由于我国车牌形状大小不一,颜色多种多

11、样以及还包括汉字的特点,所以这些产品不太适合我国的情况。国内在90年代也开始了自己的车牌识别系统研究,做的较好的是中科院自动化研究所开发的“汉王眼”。它采用了光学滤波和红外照明来削弱可见光对系统不可控制的影响,以及汽车灯光,恶劣天气的影响。除此之外,西安交通大学的图像处理与识别研究室、华南理工大学、浙江大学以及上海交通大学的计算机科学与工程系都做过关于车牌识别系统研究。1.3车牌识别系统的技术方案汽车牌照识别技术主要分为3部分:汽车牌照定位、汽车牌照分割、汽车牌照字符识别。其中技术难点在于如何从复杂的背景中块数准确的定位。(1)汽车牌照定位的研究国外的汽车牌照和国内的汽车牌照差别很大,因而在这

12、方面的算法也不尽相同。国外汽车牌照多为长方形的,少数为正方形的,车号多为单排的,少数为双排的,因此,国外的车牌识别算法比较复杂。其中较理想的定位算法多采用纯粹的数学形态学方法。该算法比较实用,但对汽车牌照字符笔画宽度有要求。一般要求汽车和图像采集设备的距离在一定范围之内,这样就使得算法有一定的局限性。国外还有基于神经网络的方法、基于边缘特征的方法、基于彩色特征的方法等。国内汽车牌照定位的算法也比较丰富,具体有基于彩色图像信息的算法,基于灰度聚类的算法,基于纹理特征的算法,基于边缘检测的算法。(2)汽车牌照字符分割的研究汽车牌照字符分割的算法比较简单,其中比较成熟的算法有针对汽车牌照区域进行纵向

13、投影,投影区将形成明显的波峰波谷区,然后根据投影区的波峰波谷进行汽车牌照内字符的准确分割。(3)汽车牌照字符识别的研究目前常用的对于车牌字符识别的方法有基于神经网络的方法和基于模板匹配的方法。前者具有较强的容错能力,但需提取大量特征,识别速度较慢,很难满足实时性要求。后者具有较快的识别速度,尤其对二值图像识别速度更快,能很好的满足实时性的要求,应用比较多。1.4论文的主要工作本次毕业设计论文通过运用数字图像处理和模式识别的技术来实现对汽车牌照的自动识别。其中对汽车牌照的定位做了深入的研究,以及汽车牌照字符的分割,汽车牌照字符的识别。毕业设计的主要工作如下:1、查找及阅读有关车牌识别技术研究的文

14、献资料,对汽车牌照自动识别系统研究的国内外现状,背景及意义进行了分析和阐述。对汽车牌照自动识别系统的关键技术及技术难点进行了分析和对比。2、对采集来的车牌图片进行预处理,提高车牌定位的准确度。包括图像的灰度化,二值化,去噪等。3、汽车牌照自动识别系统的关键及难点在于车牌的定位,本文通过颜色识别,形状识别以及纹理识别相结合来实现车牌的定位。充分利用了车牌区域所具有的特征,并且很符合人识别汽车牌照的过程,具有较强的可行性。4、汽车牌照自动识别系统的另外两个技术为字符分割和字符识别。本文采用汽车牌照区域纵向灰度投影的方式进行字符区域的识别和分割。再将分割出来的字符通过模板匹配的方法进行字符识别。5、

15、总结与展望。对本次毕业设计所做的工作进行一个总结归纳,以及本次设计还需改进的地方。本文先实现了车牌定位,再对车牌中的字符分割和字符识别,因此本系统由四大部分组成,车辆图像的预处理、车牌区域的定位、车牌字符识别的预处理、车牌字符的识别,系统详细流程图见图1。开始 输入彩色汽车牌照图片车辆图像的预处理边缘检测将彩色车辆图像灰度化二值化车牌区域定位汽车牌照字符分割车牌字符的识别输出字符识别结果结束图1 系统流程图2汽车牌照区域粗定位由于图像处理的计算量和信息量非常大,为了提高计算速度和减少中间存储空间。以前的处理思路是尽量将彩色图像转换成较简单的灰白图像来处理,甚至再转换成更简单的黑白二值图像来处理

16、。但是这样就抛弃了大量有用的信息。随着计算机性能的提高,应尽量使用更复杂的彩色图像进行处理,以求得准确度的大幅提高。本系统中汽车牌照区域的粗定位,就是通过对彩色颜色的识别来初步确定汽车牌照的所在区域。这一过程可分为四个部分:有色点对搜索,字符区填充,汽车牌照区复现,汽车牌照区粗定位。对于蓝底白字的汽车牌照,其颜色特征是夹杂少量白色区域的蓝色区域。所以,有色点对可以定义为:A点,其左方为蓝色,右方为白色;B点,左方为白色,右方为蓝色;A点距B点应在一定的范围之内。这样的有色点对(A,B)间的区域就可认为是汽车牌照内的白色字符区,而其所在的位置也相应就是夹杂少量白色区域的蓝色汽车牌照区所在的位置。

17、最后,再用图像形态学的方法对这些有色点对进行开运算,就可以复现完整的汽车牌照区域。2.1有色点对搜索从有色点对的定义可知,有色点对一定在汽车图像中的物体边缘区。而一幅图像的物体边缘区一般只占整幅图像的5%。而且,由于数据量较大,利用彩色图像所面临的最大问题就是如何解决运算速度与运算精度的矛盾。如果先对图像进行边缘检测,再在检测区中进行有色点对的搜索,这无疑可及大的减少计算量,提高计算效率和速度,正好也可以有效的解决运算速度和运算精度的矛盾。这样,有色点对搜索可以分成两个阶段:边缘检测和点对搜索。(1)灰度化因为边缘检测算法是基于灰色图像的,因而需要对彩色图片进行灰度化处理。在RGB颜色模型中,

18、如果R=G=B,则颜色(R,G,B)表示一种黑白颜色,R=G=B的值称为灰度值。灰度化就是使彩色的R,G,B分量值相等的过程。由于R,G,B的取值范围是0-255,所以灰度级有256级,即灰度图像只能表示256种颜色(灰度)。灰度化处理的方法主要有3种:最大值法,使R,G,B的值等于这3个值中最大的一个,即R=G=B=max(R,G,B);平均值法,利用R,G,B的值求出平均值,即R=G=B=(R+G+B)/3;加权平均值法,根据重要性或其他指标给R,G,B赋予不同的权值,并使R,G,B的值加权平均,即R=G=B=()/3,式中,分别为R,G,B的权值。,取不同的值时,加权平均法就会形成不同的

19、灰度图像。由于人眼对绿色的敏感度最高,对红色的敏感度次之,对蓝色的敏感度最差,因此使将得到较合理的灰度图像。实验证明,当=0.30,=0.59,=0.11时,能得到最合理的灰度图像。本次设计也采用这种方法实现图像的灰度化处理。汽车牌照图片以及灰度化之后的图片如下所示。图2 汽车牌照图像图3 汽车牌照灰度化图像(2)边缘检测在本次设计中,边缘检测的目的是解决在何处进行有色点对搜索的问题。确定图像中的物体边界的一种方法是先检测每个像素和其直接领域的状态,以决定该像素是否确实处于一个物体的边界上。具有这种特性的像素被标为边缘点。当图像中各个像素的灰度级用来反映各像素符合边缘像素要求的程度时,这种图像

20、被称为边缘图像或边缘。边缘大多存在于图像中的背景与物体之间、基元与基元之间、物体与物体之间。比较好的的边缘提取方法是考察图像的每个像素点在某个领域内灰度的变化,利用边缘邻域的一阶或二阶方向导数变化规律检测边缘。其中比较常用的几种边缘检测算子有如下几种: Roberts边缘检测算子Roberts边缘检测算子是一种利用局部差分算子寻找边缘的算子,它由如下计算公式给出: (1) 其中是具有整数像素坐标的输入图像值,平方根运算使该处理类似于人类视觉系统中发生的过程。Roberts算子边缘定位准确,但是对噪声敏感,适用于边缘明显而且噪声较少的图像分割。 Prewitt边缘检测算子Prewitt边缘检测算

21、子对噪声有抑止作用,抑止噪声的原理是通过像素平均。如图3所示的两个卷积核形成了Prewitt边缘算子,图像中的每个点都要这两个核做卷积,取最大值作为输出,运算结果是一幅边缘幅度图像。 , 图4 Prewitt边缘检测算子 Sobel边缘检测算子如图4所示的两个卷积核形成了Sobel边缘检测算子。和利用Prewitt算子的方法一样,图像中的每个点都用这两个核进行卷积。这两个卷积核分别用来计算水平和垂直方向的梯度。一个核对垂直的边缘响应最大,另一个对水平边缘响应最大。两个卷积的最大值作为该点的输出,运算结果也得到一幅边缘幅度图像。 , 图5 Sobel边缘检测算子 Krisch边缘检测算子Kris

22、ch边缘算子则具有8个卷积核。图像中的每个点都用这8个掩模进行卷积,每个掩模都对某个特定边缘方向作出最大的响应,所有8个方向中的最大值作为边缘图像的输出。最大响应掩模的序号构成了边缘方向的编码。 Laplacian边缘检测算子Laplacian 算子是对二维函数进行运算的二阶导数算子。它定义算式如下: (2)(3) 写成模板格式就是:同样,可以简化为:由和可形成4邻域和8邻域内的无方向性算子:Laplcian4邻域算子:Laplcian8邻域算子:由于Laplacian 算子是一个二阶导数,它将在边缘处产生一个陡峭的零交叉,它是一个线性的、移不变的算子,它的传递函数在频率域空间的原点为零。La

23、placian 算子对噪声很敏感,一般先进行平滑滤波,再进行二阶微分。经过对比,本文所选取的是Prewitt边缘检测算子。经过Prewitt边缘检测算子后的车牌图像如下图图5所示。图6 车牌边缘提取图片(3)二值化经过边缘检测后,汽车牌照图像信息大大减少。但是剩下的信息中仍然存在着0-255共256个灰度级分布。而经过二值化处理后,汽车图像的物体边缘点理论上又会缩小50%。这又大幅度的提高了有色点对搜索的速度。图像的二值化处理就是将图像上的点的灰度置为0或255,即将整个图像呈现出显著的黑白效果。在车牌自动识别系统中,对图像二值处理的关键是要确定适当的阈值,以便使字符与背景能分割出来,并且二值

24、化后的图像必须要具备良好的保形性,不会丢掉有用的信息,不会产生额外的空缺等。同时,车牌自动识别系统要求处理成本低、速度高、信息量大,采用二值图像进行处理,能有效的提高处理效率。二值化后的图像如图6所示。图7 车牌边缘二值化图像(4)点对搜索由于颜色判断属于模糊判断,为了适应大多数情况,提高算法的精确度,这里进行如下定义:设某一点的红绿蓝色分量分别为。当某一点的颜色满足,并且时,即认为该点为蓝色点。其中=1.4,=20。当某一点的颜色满足,并且+时即认为该点为白色点。其中,=0.4,=200,=+。假设汽车图像由M行N列点阵集组成,p(i,j)为点阵集中第i行j列彩色点值。而有色点对个数为n,各

25、有色点对的坐标为(xk,y1k),(xk,y2k) k=1,2,n。有色点对搜索步骤如下:步骤1:从i=0,j=1,开始搜索,有色点对个数为n=0,如图6车牌边缘二值化图像中p(0,1)=1,则分别判断图1汽车牌照图像中p(0,0)和p(0,2)的颜色。步骤2:若p(0,0)为蓝色而p(0,2)为白色,则认为p(0,2)为疑似有色点对的起始值。记下坐标值xn=0,y1n=1,j=j+1,转至步骤4。若不满足上述条件,则转至步骤3。步骤3:继续判断p(i,j)是否为疑似有色点对的起始值。若是记下坐标值xn=i,y1n=j,j=j+1,转至步骤4,继续搜索该疑似有色点对的终止值。若不是,则j=j+

26、1,i=i+1,重复步骤3。当i=M-1,j=N-1时,认为本图片不含汽车牌照区域,转至步骤5。步骤4:j=j+1,判断p(i,j-1)是否为白色而p(i,j+1)是否为蓝色。如果是,则认为找到该疑似有色点对的终止值,并成功找到一个有色点对,记下坐标值xn=i,y2n=j,而该有色点对的坐标为(xn,y1n),(xn,y2n),且n=n+1,转至步骤3,继续寻找下一个有色点对。若不是,重复本步骤,并记下重复次数。当重复的次数超过一个阈值T,则认为该疑似点不是有色点对的起始点,取消终止点的搜索。返回步骤3。步骤5:退出有色点对搜索程序。2.2字符区填充字符区填充目的是将汽车牌照内的字符重点显现出

27、来,以作为汽车牌照区复现的依据。其具体做法如下所示:针对所有找到的有色点对,(xk,y1k),(xk,y2k) k=1,2,n。将起始点与终止点之间用pixel=0的黑色点连接起来。其效果就是将字符区用黑色直线填充起来。汽车牌照字符区搜索填充结果图如图7所示。图8 汽车牌照字符区搜索填充结果图2.3汽车牌照区域的复现通过对汽车牌照字符的识别和填充,在汽车图像中的汽车牌照区域已经形成了比较密集的黑色区域,但是这些黑色区很不规则,也没有完全覆盖整个汽车牌照区域,还不能直接用于汽车牌照定位。为此,本系统采用图像形态学对该黑色区进行处理。形态学一般指生物学中研究动物和植物结构的一个分支。近年来人们用数

28、学形态学表示以形态为基础对图像进行分析的数学工具。它的基本思想是用具有一定形态的结构元素,去度量和提取图像中的对应形状,以达到对图像分析和识别的目的。一般认为数学形态学的基本运算有4个:膨胀、腐蚀、开启和闭合。(1)膨胀膨胀的运算符为,A用B来膨胀写作AB,其定义为:,上式表明用B膨胀A的过程是,先对B做关于原点的反射,再将反射后的图像平移x,这里A与B反射后的图像的交集不为空集。换句话说,用B来膨胀A得到的集合是的位移与A中至少有一个非零的元素相交时B的原点位置的集合。故上式可改写为:可借助卷积的概念来理解膨胀操作。如果将B看做一个卷积模板,膨胀就是先对B做关于原点的反射,再将反射后的图像连

29、续地在A上移动而实现的。(2)腐蚀腐蚀的运算符为,A用B来腐蚀写作AB,其定义为:。上式表明A用B腐蚀的结果是所有x的集合,其中B平移x后仍在A中。换句话说,用B来腐蚀A得到的集合是B完全包含于A中时B的原点位置的集合。通过上式可以帮助人们借助相关概念来理解腐蚀操作。(3)原点不包含在结构元素中时的膨胀和腐蚀以上讨论时都假设原点包含在结构元素中(即原点属于结构元素)。此时对膨胀运算来说,总有。对腐蚀运算来说,总有。当原点不包含在结构元素中时,对膨胀运算来说只有一种可能,即。但对腐蚀运算来说,如果原点不包含在结构元素中,则有两种可能,或者是,或者是。(4)开启(Open)和闭合(Close)膨胀

30、和腐蚀并不是互为逆运算,所以它们可以级联结合使用。例如,可以先对图像进行腐蚀然后膨胀其结果,或先对图像进行膨胀然后腐蚀其结果(这里使用同一个结构元素)。前一种运算称为开启,后一种运算称为闭合。开启的运算符为“”,A用B来开启写作,其定义为:。闭合运算符为“”,A用B来闭合写作,其定义式为:。开启和闭合不受原点是否在结构元素之中的影响。开启和闭合运算都可以除去比结构元素小的特定图像细节,同时保证不产生全局的几何失真。开启运算可以把比结构元素小的突刺滤掉,切断细长搭接而起到分离的作用。闭合运算可以把比结构元素小的缺口或孔填充上,搭接短的间断而起到连通作用。在本文中,用形态学开运算(open),。运

31、算式中,目标为X,结构元素为S。本系统,结构元素选用为33的矩形块。先用S对X进行腐蚀处理,黑色点将腐蚀周围的白色点,并和附近的黑色点融合成黑色区。当腐蚀的次数足够大时,所有的黑色点可以最终增长融合为一个密封的黑色区。本系统中腐蚀的次数取为12次。腐蚀后,由于黑色区外沿也将随之扩大,为了保证黑色区域不超过汽车牌照区域,再进行12次腐蚀的逆运算,即膨胀,把最终的黑色区缩为实际汽车牌照区大小。经过形态学处理后的汽车牌照图如图8所示。图9 汽车牌照有色点对形态学处理2.4汽车牌照区粗定位粗定位的工作就是在形态学开运算处理完毕的图像中寻找封闭的黑色区。由于汽车牌照一般安装在汽车车体下部,所以寻找过程在

32、图像中由下而上进行。这一过程分为3步,即横坐标第一次定位,纵坐标粗定位和横坐标第二次定位。假设汽车图像由M行N列点阵集组成,p(i,j)为点阵集中第i行j列点值。则横坐标(x1,x2)第一次定位的过程如下所示:步骤1:设j=0,计算第j列黑色点个数,是否超过阈值。是则x1=j,转至步骤2;不是则j=j+1,若j=N-1,则未找到汽车牌照,转至步骤3,否则重复本步骤。步骤2:j=j+1,计算第j列黑色点个数,是否超过阈值。是则x2=j,若j=N-1,转至步骤3,否则重复本步骤。步骤3:退出程序。纵坐标(y1,y2)定位的过程如下所示:步骤1:设i=M-1,计算第i行x1-x2间连续黑色点个数,并

33、判断是否超过阈值。是则y1=i,转至步骤2;不是则i=i-1。若i=0,则未找到汽车牌照,转至步骤3,否则重复本步骤。步骤2:i=i-1,计算第i行x1-x2间连续黑色点个数,并判断是否超过阈值。是则y2=i,若i=0,则转至步骤3,否则重复本步骤。步骤3:退出程序。横坐标(x1,x2)第二次定位的过程如下所示:步骤1:设j=x1,计算第j列y1-y2间连续黑色点个数,并判断是否超过阈值。是则x1=j,转至步骤2;不是则j=j+1。若j=x2,则未找到汽车牌照,转至步骤3,否则重复本步骤。步骤2:j=j+1,计算第j列y1-y2间连续黑色点个数,并判断是否超过阈值。是则x2=j,若j=x2,则

34、转至步骤3,否则重复本步骤。步骤3:退出程序。上述,可根据汽车牌照的大小预设,但。最后,得到汽车牌照区域4个顶点坐标(x1,y1),(x1,y2),(x2,y1)和(x2,y2)。3汽车牌照区域精定位汽车牌照区域粗定位完毕后,该汽车牌照区域是否为真,还需要进一步甄别。有时,可能会找到多个疑似汽车牌照区域,这就需要进行排查。由此,粗定位后还需要进一步精定位。精定位过程由两部分组成,即形状识别和纹理识别。3.1汽车牌照区形状识别一般,汽车牌照区域应在汽车图像的最下方,所以甄别顺序是由下而上。若一旦甄别出来某一个疑似汽车牌照区域为真,则可以直接退出汽车牌照定位环节,转入汽车牌照分割及字符识别环节,以

35、提高系统整体识别速度。按照我国交通管理部门的规定,汽车牌照宽度为440mm,高度为140mm,宽高比为3.14。汽车牌照中字符宽度为45mm,高度为90mm,宽高比为0.5。那么,疑似汽车牌照区的形状满足式(4):3/3.5 (4)则就可以认为通过形状识别的要求。否则疑似汽车牌照区域为假。另外,考虑汽车图像中的汽车牌照可能由于摄取角度不同而发生形变,故式(4)可修正为如下: 2.5/4 (5)形状识别环节通过后,即可进行纹理识别环节。3.2汽车牌照区纹理识别汽车牌照区域纹理识别主要依据是汽车牌照区内存在7个类字符区,从而在纹理上存在高频的灰度变化特征。为了提高识别速度,应选用黑白二值图,因为其

36、比256阶灰度图或彩色图进行字符纹理识别更合适,为此,本系统选用图7所示的图像进行识别。算法如下:(a) 设;(b) 在行,从+到-搜索黑白值交替的次数,记为;(c),从+到-搜索黑白值交替的次数,记为;(d)重复步骤(c),得到,(i=2,3, );(e)若2050,i=0,1, ,则认为通过纹理识别要求,疑似汽车牌照区域为真。否则,疑似汽车牌照区域为假。 汽车牌照定位结果图如图9所示:图10汽车牌照定位3.3汽车牌照倾斜校正由于汽车图像的摄制角度问题可能导致摄取的汽车牌照发生倾斜,这对后续的汽车牌照字符分割和字符识别都将造成困难,因此需要对汽车图像进行校正,这里可通过图像旋转进行校正。常用

37、的汽车牌照旋转算法是先通过图像预处理寻找汽车牌照边框。一旦找到汽车牌照边框,就可以计算出汽车牌照倾斜的角度,并对图像进行旋转。常用的算法是Hough变换算法。(1)Hough变换Hough变换是利用图像全局特性而将边缘像素连接起来组成区域封闭边界的一种方法。Hough变换是将平面坐标用极坐标来表示,如直线方程表示为:,使得-平面的任意一直线的Hough变换是-空间量化成许多小方格,根据每一个(,)点代入的量化值,算出各个值(经量化),落在某个小方格内,此小方格计数加1,统计所有点后,则有大的计数值的小方格对应于共线点,其(,)可作为直线拟合参数。Hough变换算法虽然是寻找图像中直线的经典算法

38、,但其计算精度并不是很高。另外,汽车牌照图像由于天气、背景、光线、拍摄角度以及本身亏损等原因,汽车牌照边框经常不是很清晰和连续。如果仅靠寻找汽车牌照边框所形成的直线来判定汽车牌照倾斜角度的话,并不是很可靠。为此,还应寻找精度更高的识别算法。(2)形态学变换考虑到汽车牌照内字符本身也含有汽车牌照倾斜角度的信息,而其,汽车牌照定位算法中也已找到并复现了汽车牌照字符图像。由此,本文采用一种形态学的算法来确定汽车牌照倾斜角度。图9所示即为在汽车牌照定位过程中找到并复现的汽车牌照字符图像。可见,汽车牌照内字符和汽车牌照发生了相一致的倾斜。在此基础上,进行形态学开运算(Open): (6)式中,目标位,结

39、构元素为。这里结构元素为一个33的矩形。先用S对X进行腐蚀处理,黑色点将腐蚀周围的白色点,并和附近的黑色点融合成黑色区。当腐蚀的次数足够大时,所有的黑色点可以最终增长融合为一个密封的黑色区。本系统中腐蚀的次数取为10次。腐蚀后,由于黑色区外沿也将随之扩大,为了保证黑色区域不超过汽车牌照区域,再进行10次腐蚀的逆运算,即膨胀,把最终的黑色区缩为实际汽车牌照区大小。(3)倾斜角度计算在汽车牌照倾斜角度中,由于高低角很小,故可以忽略不计 ,但水平角需要准确得到。由于汽车牌照内字符都是标准字符,因而,在形态学变换完毕后,形成的矩形区比较规整。为此,本文采用如下算法:(a) 对汽车牌照矩形区在水平方向上

40、进行选择,只取全部的(1/6,5/6)一段进行分析,以避免受到矩形区两侧形变的干扰。(b) 在纵向进行统计学均值处理,即求得各列的黑色像素点的统计均值。(c) 将各列的均值连成一条直线。(d) 计算该条直线的斜率,即可得到矩形区的水平倾斜角。通过计算,得到汽车牌照倾斜角度为7.31度。将图1经过几何变换中的旋转后,得到的汽车牌照图像如图10所示。图11汽车牌照倾斜校正对校正后的彩色汽车牌照进行灰度化和有色点对搜索,其结果图如图11和图12所示。图12 校正后汽车牌照灰度化图图13 校正后汽车牌照有色点对搜索对校正后的汽车牌照灰度化图像(图11)和校正后的汽车牌照有色点对搜索图像(图12)进行汽

41、车牌照再定位,定位算法如前面粗定位一样。然后根据汽车牌照定位结果进行汽车牌照提取。汽车牌照再定位图像和车牌提取图像如图13和14所示。图14 汽车牌照再定位图像图15 汽车牌照提取图像4汽车牌照字符分割汽车牌照分割的目的是把汽车牌照内的7个字符彼此分割开来,以用于字符识别。分割算法比较简单,即以识别汽车牌照内字符间存在的距离为依据进行分割。在汽车牌照旋转前,这个距离不是垂直可查的,因而难以准确确定。但是,旋转校正后,字符间的距离就很容易确定了。由于字符分割及后面的字符识别都是基于二值图像的。因此,在分割前,还需对汽车牌照区进行图像阈值处理。4.1汽车牌照二值化对图14所示汽车牌照提取图像进行二

42、值化处理,以突出汽车牌照字符。汽车牌照字符区域中,灰度分布呈明显的双峰形态,而且双峰所对应的字符前景和背景具有明显的灰度差别,因此,这里的二值化阈值采用整个汽车牌照区域的灰度均值。汽车牌照二值化图像如图15所示。图16 汽车牌照二值化图像4.2去除边框为防止汽车牌照的边框对字符提取构成干扰,这里通过横向和纵向投影的方式去除边框。去除边框的代码如下:int pixels=0,curpixels=0,yy1,yy2,xx1,xx2,flag=0;yy1=0;yy2=size.cy-1;for(j=0;jm_pImgData+j)=255) curpixels+;pixels=curpixels;f

43、or(i=1;isize.cy/2;i+)curpixels=0;for(j=0;jm_pImgData+i*lineByte+j)=255) curpixels+;if(flag=0)if(curpixelspixels)pixels=curpixels;if(pixels-curpixels0.5*pixels)flag=1;pixels=curpixels;elseif(curpixels0.5*curpixels)yy1=i;flag=0;flag=0;for(j=0;jm_pImgData+(size.cy-1)*lineByte+j)=255) curpixels+;pixels=

44、curpixels;for(i=size.cy-2;isize.cy/2;i-)curpixels=0;for(j=0;jm_pImgData+i*lineByte+j)=255) curpixels+;if(flag=0)if(curpixelspixels)pixels=curpixels;if(pixels-curpixels0.5*pixels)flag=1;pixels=curpixels;elseif(curpixels0.5*curpixels)yy2=i;flag=0;flag=0;for(i=yy1;im_pImgData+i*lineByte)=255) curpixels

45、+;pixels=curpixels;for(j=1;jsize.cx/10;j+)curpixels=0;for(i=yy1;im_pImgData+i*lineByte+j)=255) curpixels+;if(flag=0)if(curpixelspixels)pixels=curpixels;if(pixels-curpixels0.5*pixels)flag=1;pixels=curpixels;elseif(curpixels0.5*curpixels)xx1=j;flag=0;xx2=size.cx-1;/建立一个新视图,显示去除边框结果pFrame-SendMessage(W

46、M_COMMAND, ID_FILE_NEW);CDemo1View* pView1=(CDemo1View*)pFrame-MDIGetActive()-GetActiveView();CDemo1Doc* pDocNew1=pView1-GetDocument();ImageDib *dibNew1=pDocNew1-GetPDib();pView1-OnInitialUpdate();pDocNew1-SetModifiedFlag(TRUE);pDocNew1-UpdateAllViews(pView1);size.cx=xx2-xx1+1;size.cy=yy2-yy1+1;int

47、lineByte1=(size.cx+3)/4*4;unsigned char *pDib_imgdata1=new BYTE size.cy*lineByte1;for(i=0;isize.cx;i+)for(j=0;jm_pImgData+(yy1+j)*lineByte+i+xx1);dibNew1-ReplaceDib(size,pDib-m_nBitCount,pDib-m_lpColorTable,pDib_imgdata1);汽车牌照去除边框的结果图如图16所示。图17 汽车牌照去除边框4.3字符分割字符分割可以采用汽车牌照区域纵向灰度投影的方式进行字符区域的识别和分割实现。字符

48、分割的代码如下所示:int char_x17,char_x27,char_xx17,char_xx27,k=0,char_width,char_gap;yy1=0;yy2=size.cy;xx1=0;xx2=size.cx;flag=0;lineByte=(size.cx+3)/4*4;curpixels=0;char_x1k=0;for(i=0;im_pImgData+i*lineByte)=255) curpixels+;pixels=curpixels;for(j=1;jsize.cx;j+)curpixels=0;for(i=0;im_pImgData+i*lineByte+j)=25

49、5) curpixels+;if(flag=0)if(curpixelspixels)pixels=curpixels;if(curpixels3)char_x2k=j;flag=1;pixels=curpixels;k+;if(k=7) break;elseif(curpixels3)char_x1k=j;flag=0;char_gap=char_x11-char_x20;for(i=2;i7;i+)if(char_x1i-char_x2i-1char_gap) char_gap=char_x1i-char_x2i-1;char_width=char_gap+char_x20-char_x1

50、0+1;char_xx10=char_x10-char_gap/2;char_xx20=min(char_x20+max(char_gap,char_width-char_x20+char_x10)/2-1,char_x11);for(i=1;iSendMessage(WM_COMMAND, ID_FILE_NEW);CDemo1View* pView2=(CDemo1View*)pFrame-MDIGetActive()-GetActiveView();CDemo1Doc* pDocNew2=pView2-GetDocument();ImageDib *dibNew2=pDocNew2-Ge

51、tPDib();pView2-OnInitialUpdate();pDocNew2-SetModifiedFlag(TRUE);pDocNew2-UpdateAllViews(pView2);CSize size1;size1.cx=char_xx26-char_xx10+1;size1.cy=size.cy;int lineByte2=(size1.cx+3)/4*4;unsigned char *pDib_imgdata2=new BYTE size1.cy*lineByte2;for(i=0;isize1.cx;i+)for(j=0;j=0&i+char_xx10m_pImgData+j

52、*lineByte1+i+char_xx10);else*(pDib_imgdata2+j*lineByte2+i)=0;dibNew2-ReplaceDib(size1,pDib-m_nBitCount,pDib-m_lpColorTable,pDib_imgdata2);for(j=0;jm_pImgData+j*lineByte2+char_xx20-char_xx10)=255;for(i=1;i6;i+)for(j=0;jm_pImgData+j*lineByte2+char_xx1i-char_xx10)=255;*(dibNew2-m_pImgData+j*lineByte2+c

53、har_xx2i-char_xx10)=255;for(j=0;jm_pImgData+j*lineByte2+char_xx16-char_xx10)=255;汽车牌照字符分割后的结果如图17所示。图18 汽车牌照字符分割结果图5汽车牌照字符识别我国汽车牌照内从左到右共7个字符,其标准如下:(a) 汽车牌照内的字符采用全国统一标准字体;(b) 汽车牌照制作中字符大小及比例严格遵循国家标准;(c) 汽车牌照采用的字符集具体规定为,第一个字符集包括省市简称和甲、乙、丙、丁、警等汉字字符元素;第2个字符集包含26个英文字母,第3个字符为英文字母或阿拉伯数字,其余4个字符为阿拉伯数字。由此,汽车牌照

54、每次识别最大的样本集合也只有第3个字符的36个字符元素。在本文中,采用了相对简单一些的模板匹配法。在正式进行字符识别前首先需要做一些预处理工作。预处理工作的最终目标就是将各个分割字符处理为统一规格的点阵组合,以用于模板匹配算法进行字符识别。预处理分为规范化和细化两个部分。5.1字符图像规范化因为不同的汽车图像中的汽车牌照大小不一,导致分割后的字符的大小也相差很大,因此,预处理的第一步就需要进行汽车牌照分割字符图像的规范化,即字符图像的规格化和归一化。首先,把分割字符规格成固定像素大小的点阵信息。本文中设定的固定点阵大小为2040个像素点。转换算法如下:(1)将分割字符均匀分成2040个子区域,

55、并计算每个子区域所含像素点个数S;(2)针对每个区域统计黑色点的个数,i=1,2,,N,N为区域个数;(3)=/S,i=1,2,N,如果T,则=1,否则,=0,阈值T一般设为0.5;(4)如果=1,相应的转换结果区域像素点位黑色,否则为白色。字符图像规格化之后,还需进一步进行字符归一化处理,即将字符区的中心校正为0。字符区的重心()的求取公式如下: (7)式中,()为第i个像素点的坐标值。为第i个像素点值且0,1。N为像素点个数,这里为2040=800。重心()得到后,做相应的平移变换即可将字符区的重心校正为0。分割字符归一化结果图如图18所示。图19 字符归一化结果图5.2字符图像细化字符图

56、像规范化后,字符图像仍存在字符笔画宽度等冗余信息。如果不去除,将极大地影响用模板匹配法进行字符识别的可靠性。而图像细化处理则能极大地消除字符图像中的这些冗余信息。细化算法适合于输入图像为0和1的二值图像。像素值为1的区域是需要细化的部分,像素为0的区域是背景。图像细化算法很多,最经典的有以下两种。(1)Hilditch细化算法Hilditch细化算法如下:一幅图像中的一个33区域,设p为被检测的像素,f(p)为像素p的灰度值,其中p位于中心,为p的8领域像素,如图19所示。 图20 细化点定义设集合I表示需要细化的像素子集;集合N=g|g-m0表示背景像素子集,集合R=-m表示在第m次减薄时,I中被减掉的像素。图像细化的减薄条件为:;,其中,这里为 : (8),式中。,式中,这里为: (9) ,其中,这里为: (10),i为3或5,式中表示对的第i个领域像素。(2)HIT/MISS细化算法HIT/MISS 运算是一种基于形态学的细化算法,由于在细化的同时可以保持字符图像的拓扑结构,因而更适合于本文所设计的系统。其转换算法如下:(

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

copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


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