随着我国城市规模的急剧扩大,对智能交通系统(ITS)的需求越来越迫切。车牌照自动识别技术广泛应用于闯红灯车辆监控、停车场管理、电子收费系统等领域。完整的车牌识别系统一般分为3部分:车牌定位、字符分割和字符识别,其中车牌定位技术是整个车牌识别系统的核心,直接影响整个识别系统的速度和准确率。
目前已有的车牌定位算法众多,包括边缘检测、数学形态学、小波分析、投影法、颜色特征提取和神经网络等。基于边缘检测、数学形态学及小波分析的方法,定位较准确,但在背景信息复杂或车牌上方有引擎散热孔的图像中容易产生错误定位。而投影法速度较快,很难区分车牌文字与车灯区域,因而准确率低。基于颜色特征和神经网络的方法定位准确,但是运算速度慢,并且受天气、光照及车牌磨损等情况
的影响较大。
由于以上各种单一方法的明显局限性,提出了一种综合边缘检测、数学形态学、彩色特征和投影法的算法,通过质心排序去除了引擎散热孔及其他边缘丰富区域的干扰,并通过谷值分析补全车牌区域。实验结果表明该方法克服了以往各种定位方法的缺点,既提高了定位的准确性,也保证了定位的实时性和鲁棒性。
1 车牌识别的粗定位
1.1 边缘检测及数学形态学处理
由于彩色的车牌中富含的信息量太大,干扰强,故不适合做直接分析。因此,往往将彩色的RGB图像转成灰度图再进行处理。待定位的车牌区域含有较多字符,边缘量丰富。而车身背景中的边缘量较少,并不密集。因此,可以用边缘检测的方法对灰度图做预处理。
由于边缘是图像上灰度变化较为剧烈的地方,在灰度突变处进行微分则会得到突起值,因此,在数学上可用灰度的导数来表示边缘。而在实际应用中往往采用的是边缘检测算子,通常使用的边缘检测算子有:Sobel算子、Prewitt算子、Roberts算子和Canny算子等。本实验采用的是Sobel算子,对水平边缘分量和垂直边缘分量同时进行检测。
数学形态学的基本思想是利用“结构元素”来收集图像信息。结构元素可被当成探针,当探针在图像中移动时,便可考察图像各部分之间的相互关系,从而了解图像的结构特征。其算法为:
1)先进行数学形态学闭运算:其可简单定义为先膨胀再腐蚀。闭运算一般会将狭窄的缺口连接起来形成细长的弯口,并填充比结构元素小的洞。这样便可以连接邻近物体,在不明显改变物体面积的情况下起到平滑边界的作用。
闭运算定义为:
实验结构如图1、图2所示。
2)再进行数学形态学开运算,可简单定义为先腐蚀再膨胀。开运算后完全删除了不能包含结构元素的对象区域,平滑了对象轮廓,断开了狭窄的连接,去掉了细小突出部分。
开运算定义为:
实验结构如图3所示。
1.2 待选区域的质心定位及颜色判断
对待选区域的传统处理方法有多种,其中包括面积排序,长宽比排序和颜色识别。
1)面积排序 由于无法保证车牌区域的边缘分量最丰富。当车体上图案较多,或车灯纹理较为明显时,对定位准确率的干扰很大。
2)长宽比排序数学形态学处理后,常常引入了较多符合车牌长宽比特性的区域。而且当车牌角度出现偏差时,长宽比判定的准确率明显下降。
3)颜色识别 在多数情况下可以识别车牌,但是当车体上有较为丰富的图案且颜色与车牌颜色相近时,颜色识别的准确率便大大下滑。
对于绝大多数汽车来说,车牌基本位于车辆的最底部,而车牌下部不像车身那样拥有大量文字或图案,给识别带来干扰,它形式较为单一,这给识别带来极大方便。同时,地面因为样式单一,干扰量更是微小。因此,可采用对候选区域进行自下而上检测的方式。
然而,还需注意的是,车灯往往与车牌区域平行,其边缘量也很丰富,故其干扰相对较大。考虑到车灯多数为红色,白色或透明,和车牌颜色相差较大,因此可以用颜色识别来区分车牌区域和车灯区域。故本实验采用质心检测与颜色识别相结合的方法。先对待选区域质心的纵坐标进行排序,并由图像最底部向上进行检测。
首先,将候选区域内各像素点由RGB模型转为HSV模型,即色度(Hue)、饱和度(Saturation)和强度(Value)。由于直接转成HSV模型后,均匀量化的结果导致量化数据量巨大。而在车牌识别中只需要对特定的几种颜色进行识别,不需要将各种颜色详细区分开来,量化过细反而会造成颜色判断的歧义,导致结果失真。因此,可采用非均匀量化的方法来减少量化级别,提高计算效率。同时,非均匀量化还可将相似的颜色归为同一颜色,大大减小了算法的复杂度。将色度分为16个等级,饱和度和强度各分3个等级。其算法过程为:
1)对候选区域各个像素点的H、S、V值进行统计;
2)找到H、S、V 3个变量的最大值点H_max、S_max、V_max,这几个特征值便能代表整个区域的颜色特征信息;
3)颜色判断的算法为
实验结果证明,该算法识别准确率比传统算法高,能对车身有大量图案干扰的车辆进行准确识别。质心位置检测可以排除颜色与车牌相近的车身图案、标志的干扰。颜色识别则可以排除位于车牌附近车灯、保险杠等干扰。
2 车牌识别的细定位
2.1 竖直投影处理
在粗定位的候选区域里,常会存在错误和误差。错误大多是因为在车牌下部还附带有文字广告,警示语等。而误差的产生大多是由于图像清晰度低或曝光不足等因素导致的车牌识别中字符间断裂等情况。
为解决此类问题,采用竖直分量投影的方法。选取能包含待选区域且与原图像等宽的最小区域的灰度图,利用以下公式将相邻2个像素点两两进行相减再求和,即可求得该列上边缘信息的变化情况。
将每一列的投影值均计算出来后,即可作出候选区域的投影图,如图4,5,6,7所示。
由投影图可以看出,有字符的区域有明显峰值,而字符之间均为谷值。通过该峰谷的交替变换,即可判断字符的位置和数量。
2.2 基于字符间隔的细定位
在实际操作过程中,有时选区域是由其他字符组成,如广告或字符图案,其特征与车牌特征过于相似,导致一般方法很难将其区分开来。此时,可采用谷值数量检测的方法判断字符数目来区分车牌与字符图案。另外由于图像曝光等原因,导致字符处出现断裂,使车牌区域变成两个候选区域。因此,在最终输出时往往只能输出车牌的一部分,而不是全部。为了解决字符断裂的问题,采用谷值跟踪技术。即由质心点分别向左右两侧检测谷值处,并统计谷值的个数。对于普通车牌,即7个字符,应有6个谷值点。当检测到确实为6个谷值点时,则找到车牌,当检测谷值点小于6个时,放宽阈值,继续检测,直到谷值点为6个为止。具体操作过程为:
1)找到投影图像的峰值peak,并将整个投影图像二值化。即:
IMG height=180 alt="" src="http://www.eeworld.com.cn/uploadfile/qrs/uploadfile/201110/20111026104605735.jpg" width=200 border=0>
这样便可得到二值化的投影图如图8所示。
2)由质心处分别向两边进行检测。1值作为起点,当检测到下个点也为1时,再继续检测下个点;当检测到下个点为0时,num_zero=num_zero+1,再继续检测下len个点,若len个点中有一个为1,则把这个点当作起点继续检测。若len个点均为0,则最后的1值处即为车牌的端点处。
3)若num_zero=6,则车牌区域完整,跳出循环。若num_zero<6,放宽阈值len_new=1.2*len,再进行检测。直到len_new=2*len时,若还未跳出循环,则说明该区域不是车牌区域,转入上层循环,查找下一候选区域。
结果表明,在该细定位的算法下,车牌识别较为准确,只有少数车牌出现字符断裂的情况。出现断裂的车牌图像是因为车牌尾字符为数字1,在做差分投影时,其显示为谷值,故漏检一位字符。针对此种情况,将最终定位的车牌边缘值与初始候选区域的边缘值相比较,若投影后的边缘值小于候选区域1个字符长度以上,则认为其尾字符在差分投影中被减掉,可将其补上。最终输出车牌图像如图9所示:
3 实验结果
实验所采用的图像为640×480像素256级灰度图像,其中车牌包括小型民用车牌照(蓝底白字)、大型民用车牌照(黄底黑字)、军用牌照(白底黑字)。图像中车牌所占的大小比例各异,背景不同,其中部分车辆车身有明显的字符图案和粘贴的警示语。在集中检测的80幅图中正确检测了77幅,漏检1幅。误检2幅。漏检图像由于车牌掉色过于严重,导致最后几位字符无法检测;而误检的两幅图是因为车牌底部有颜色、字符均与车牌相近的广告语,无法将其与车牌区分开来。该问题可以在车牌定位之后的字符识别环节中可以得到解决。
4 结论
本文提出的算法综合了质心检测排序,颜色判别和投影法字符跟踪检测的方法。该算法通过质心检测排序的方法解决了车身上部文字花纹和广告语、警示语对车牌识别的干扰:通过颜色识别排除了类似车灯区域等有着高边缘特性区域对车牌区域的干扰;而投影法字符跟踪检测算法解决了在精确车牌字符定位中字符断裂、缺损等情况的发生。该算法定位检测准确率高,且抗干扰能力强,在实际应用过程中是可行有效的。