一种基于先验知识约束的车牌字符分割新算法*
2012-05-26方兴林方云楼
方兴林,方云楼
(1.黄山学院经济管理学院,安徽黄山 245041;2.安徽医科大学卫生管理学院,合肥 230032)
1 概述
车牌识别(License Plate Recognition,LPR)是智能交通系统中的一个非常重要的研究课题,它涉及模式识别、计算机视觉以及数字图像处理等理论知识,可以广泛应用于高速公路不停车收费、大型停车场管理、智能小区车辆出入管理等众多领域。一般来说,一个完整的车牌识别系统包括4个主要部分,即图像采集、车牌定位、字符分隔和字符识别,主要从车牌识别的核心技术出发,重点研究车牌字符分割算法。
在准确定位车牌的前提条件下,字符分割结果的好坏直接决定了后续字符识别的精度。车牌字符分割的主要任务就是将定位后的车牌区域内的字符按顺序逐个分割出来,为后续字符识别步骤做准备。由于车牌图像大多采集于露天自然环境,受光照影响较大,再加上车牌自身灰尘污损等原因,目前很难找到一种通用的分割方法,常见的主要有垂直投影法[1]、模板匹配法[2]和连通域法[3,4]。垂直投影法即沿水平方向计算每一列属于车牌字符的像素数量,这样字符在水平方向的投影会在字符的间隙处取得局部最小值,因此字符的正确分割位置应在上述局部最小值附近。垂直投影法程序逻辑设计简单,运行时间短,易于实现,然而对车牌字符的粘连问题处理的不是很理想,在解决一些不连通的汉字时也存在显著不足。模板匹配法充分利用了车牌字符等宽、排列规则的特点,设计车牌字符串模板,通过模板匹配确定字符位置,该方法虽然具有较好的字符分割效果,但是这种方法比较复杂,导致处理时间较长,实时性差,此外如何设计匹配模板是一个难点。连通域法通过扫描目标像素的若干相邻像素后按照一定的准则确定目标像素和相邻像素之间的连通关系并进行标记,从而提取出各个分离的连通区域。连通域法对噪声、图像倾斜不敏感,适合识别有大量数目连通域的图像,因而得到广泛应用。然而传统的连通域法按照自上而下,从左到右的顺序开始扫描二值化后的车牌图像,当扫描到第一个白色像素点时,将该像素作为区域生长的种子点进行8方向或4方向的链码跟踪,并将跟踪的结果作为一个数组存放起来,连通域提取法需要遍历所有图像像素点,计算时间较长,难以满足实时系统的需求。
针对上述问题,在此充分利用中国现行通用车牌字符排列规律和几何特征,结合已知的先验知识,提出了一种改进的基于连通域的字符分割方法。基于对车牌字符和背景的先验知识的分析,改进了迭代求图像最佳分割阈值的算法,使得二值化后的车牌图像更清晰和精确;恰当地利用先验知识,对传统的连通域法进行适应性改进,使得字符分割更准确,对各种质量的车牌图像适应性更强。
2 算法原理
2.1 预处理
经过了车牌定位后所提取的车牌区域图像,往往由于图像采集设备的拍摄角度、光照等因素的影响,还不能直接进行字符分割,需要进行必要的分割前的预处理操作,预处理对于车牌字符分割及字符识别都非常重要,好的预处理算法可以有效提高正确率[5]。预处理操作主要涉及图像尺寸归一化、彩色图像的二值化以及去除车牌边框和铆钉等处理步骤。
2.1.1 尺寸归一化
由于拍摄时图像采集设备与车辆之间的距离、角度以及车辆自身体积大小的不同,再加上拍摄时车辆高速移动等原因,使得捕获的最终车牌图像的尺寸大小不一样,这给车牌字符分割带来了较大的不利影响。基于此,首先将车牌图像的尺寸归一化为160×40像素,实验证明,在此尺度上车牌图像字符分割的效果最好[6]。
2.1.2 二值化
二值化的目的是将车牌图像中的字符与背景分别用白色和黑色像素点来表示。虽然在车牌识别技术中将彩色车牌图像转换为黑白二值图像会丢失车牌部分色彩信息,但是对车牌中的字符信息几乎没有影响,而且二值图像处理的信息量远比彩色图像少,在不影响精度的前提下,极大地提高了处理速度。
字符图像二值化结果即字符的清晰程度取决于阈值的选取,当选取的阈值太小时,会造成字符粘连,然而当阈值选取太大时,会造成字符断裂。图像二值化阈值的获取方法很多,常用的有直方图法、最大类间方差法、共生矩阵法等。由于车牌不可避免的会受到噪声(污染、缺损、曝光不均等因素)的干扰,单一固定的阈值难以满足系统普适性的要求,因此采用迭代法动态的求取阈值。迭代法原理如下:
Step1:求出图像最小灰度值和最大灰度值,分别记为Vl和Vh,则初试阈值Th0:
Step2:根据阈值Th0将图像分割成前景图像和背景图像,分别求出两者的平均灰度值AVf和AVb:
式(1)中,V(i,j)是图像上(i,j)点的像素值,Nf和Nb分别是前景图像和背景图像的像素点总个数。
Step3:求出新阈值Thk:
如果Thk=Th0,则Thk即为最终阈值,迭代结束,否则转到Step2继续迭代。
传统的迭代求阈值法基于图像自身的图像灰度值的分布特点,进行多次迭代,使得最终的阈值是最优的,具有很强的稳定性和自适应性。然而最终的二值化阈值一般要经过多次迭代,计算量大,处理时间长,如果能加入一定的约束条件,减少迭代次数,将提高二值化的处理速度。基于此,依据先验知识,车牌中字符所占像素点的比例大约为20%[6,7],先将所有像素点的灰度值降序排序,Th0的取值为灰度值排在20%左右的灰度值,这样就避免的传统迭代法初始阈值Th0取值的盲目性,从而减少了不必要的迭代次数,缩短了二值化处理的时间,实验取得了较好的效果,如图1所示。
图1 车牌灰度图和二值化图
2.1.3 去除铆钉和边框
通过对二值化后的车牌图像进行数学形态学的开闭运算[8],将车牌上的铆钉和灰尘等面积较小的干扰因素去掉,通过水平和垂直投影操作[2],去除四周的边框。结果如图2所示。
图2 去除边框与铆钉后的效果图
2.2 车牌字符分割
对于任何一个标准的车牌,在理想状态下,车牌上除了第一个汉字之外,其他的6个字符(数字或字母)在车牌二值图像上的像素(此时为白色像素点)构成了一个独立的连通域,基于此先验知识的分析,只要得到每个连通域的行列起始和终止位置,并由此构成一个最小外接矩形区域,就能快速地实现字符分割。而对于第一个汉字,由于部分汉字的不连通性,如“皖”、“川”、“吉”等,会形成两个或多个连通域,对此汉字的处理,后文再做具体分析。
传统的基于连通域提取的车牌分割算法确定连通域行列起始位置需要自上而下纵向行遍历扫描二值化后的车牌图像像素点,找到属于字符的第一个像素点,以此为连通域起始点,按照区域生长算法完成字符区域的提取。该类算法虽能比较准确地分割出车牌字符,然后遍历整幅图像,计算量太大,难以满足实时性要求,后续有研究者对此类算法进行了改进,降低了计算量,缩短了处理时间[3],然而其改进原理终究还是局限于图像本身的像素信息,将传统的遍历邻域8个像素点降低为遍历邻域的3个像素点,因此处理时间缩短还是很有限。其实,车牌上的字符排列规律信息是已知的,如果能够充分利用字符的排列信息,将能够有助于快速定位字符,进而实现快速分割,正是基于这一点展开字符分割研究。
目前,我国现行的通用车牌标准格式:PiCi·X1X2X3X4X5,其中Pi是一个中文汉字,取值为各省、直辖市和自治区的简称;Ci是一个英文字母,代表着地级市的名称;X1、X2、X3、X4、X5是英文字母或阿拉伯数字,Ci和X1之间有一个实心小圆点。车牌字符总长度为409 mm,其中单个字符宽度为45 mm,高度为90 mm,Ci和X1之间间距为34 mm,其中间的小圆点宽度为12 mm,其他字符间间距为12 mm[5],车牌字符排列顺序如图3所示。
图3 车牌字符排列示意图
利用车牌字符固定宽度、间距的固定比例关系等先验知识为约束条件,采取如下步骤确定字符边界,提取单一的字符。
Step1:计算字符Ci的起始位置。经过了预处理之后,车牌图像上只单纯的剩下7个字符,经过了车牌尺寸归一化后,车牌变成了160×40像素大小,因此依据先验知识,可以计算出Ci起始位置的横坐标Xa。
自下而上遍历x=Xa这条垂直分割线上的像素点,找到第一个白色像素点,并以此白色像素点为起始点,按照区域生长算法寻找该字符完整连通域,从而分割出该字符。考虑到车牌区域定位以及预处理过程中的误差,为了能够准确找到字符起始像素点,设置阈值δ,使得垂直分割线x=Xa+δ,δ取值为2。
Step2:依据先验知识,按照Step1的原理依次算出X1、X2、X3、X4、X5是的起始位置,进而分割出后续的五个字符。
Step3:针对第一个中文汉字,考虑到部分汉字不连通性,不能按照Step1完成字符分割。然而经过了Step1和Step2之后,车牌图像上只剩下第一个汉字字符了,因此结合车牌字符排列规律和宽度先验知识,大致确定汉字所在区域,在该区域内合并所有的连通域,完成汉字字符的提取。
经过上述三个步骤后,最终字符分割的结果如图4所示。
图4 字符分割结果
3 结论
为了进一步缩短车牌字符分割的处理时间,在分析了现有的典型字符分割算法后,在此另辟蹊径,在充分分析车牌二值图像像素分布特征的基础上,加入车牌构造的先验知识,改进了传统的迭代二值化算法,大大减少了迭代次数,缩短了预处理时间,同时改进了传统的基于连通域的字符分割算法,无需遍历所有像素点就能够快速定位字符的起始列位置,大幅降低处理的时间。
[1]潘中杰,谭洪舟.模板匹配法和垂直投影法相结合的一种新的车牌字符分割方法[J].自动化与信息工程,2007,28(2):12-13
[2]孟涛.车牌识别关键技术的研究与实现[D].武汉:华中科技大学,2006
[3]甘玲,林小晶.基于连通域提取的车牌字符分割算法[J].计算机仿真,2011,28(4):336-339
[4]李芳,吴斌,张红英.基于快速8-连通域标记的视频字幕提取新算法[J].电视技术,2009,33(2):69-71
[5]张引,潘云鹤.面向车辆牌照字符识别的预处理算法[J].计算机应用研究,1999,16(7):85-87
[6]张云刚,张长水.利用Hough变换和先验知识的车牌字符分割算法[J].计算机学报,2004,27(1):130-135
[7]HEGT J,DELAHAYE R,KHAN N.A high performance license plate recognition system[J].In:Proceedings of IEEE International Conference on Systems,Man and Cybernetics,San Diego,California,1998:4357-4362
[8]宋晨光,叶海建.基于数学形态学的车牌字符分割算法[J].光电子技术与信息,2005,18(6):58-62