基于字符包围盒特征参数的车牌定位分割研究
2015-09-19刘雄飞喻格英
刘雄飞,喻格英
(中南大学 物理与电子学院,湖南 长沙410083)
车牌识别系统中,车牌定位和字符分割的精确程度会直接影响到最终的检测结果。目前对车牌定位和字符分割的研究都是独立开来的。车牌定位目前常用的方法主要包括基于投影分割[1]、纹理检测、颜色特征检测[2]混合特征检测[3]以及基于神经网络[4]、小波分析[5]等几种算法。而字符分割有基于先验知识[6]、模板匹配[7]、连通域分析[8]以及机器视觉[9]等方法。可以发现,车牌定位与字符分割的算法关联性较小,这会使得整个车牌识别流程的时间变长,耗费更多的运算资源。本文提出一种基于字符包围盒特征参数的车牌字符定位分割算法,将车牌定位和字符分割的过程合二为一。该方法采用二维高斯-拉普拉斯算子对车牌图像进行平滑处理和边缘检测,对生成的二值图像进行连通区域分析(Connected Component Analysis,CCA)来标定相连区域,之后使用二维轴对齐包围盒(Aixs Aligned Bounding Box,AABB)来表征每个连通域,根据车牌字符的实际分布规律来筛选出车牌字符对应的包围盒,并使用包围盒中心点矫正车牌图像并分割车牌字符。
1 中国车牌的主要规格
中国常见的机动车车牌尺寸规格如图1 所示。由中国国家机动车车牌行业标准GA36—2007[10]可知,这种类型的车牌存在以下特征:
1)车牌的几何特征为矩形,长度与高度有固定的比值。
2)车牌内容包含7 个字符,这些字符在矩形框中基本水平均匀排列,拥有比较丰富的边缘信息。同时,这些字符具有相同的高度宽度比值且相互之间有一定的间隔。
3)车牌的底色和字符颜色存在较强的对比度。
本文根据我国主流车牌的以上规格特性,设计字符特性参数,在此基础上设计车牌识别算法。
图1 我国主流车牌的规格
2 预处理
由CCD 摄像机所采集到的车辆图像不可避免的会受到噪声的影响,因噪声而产生的误差会累计传递从而会严重影响到后续的边缘检测、特征提取和识别过程。CCD 摄像机的噪声通常被建模成独立于信号均匀分布的零均值高斯白噪声[11]。高斯滤波器对这类噪声具有良好的滤除效果。与此同时,本文的车牌字符提取方法要求检测到的边缘能良好的反应实际的字符轮廓,既不能增加太多的无关细节,又需要在各个方向上保持边缘的完整性。边缘检测常用的Canny 算子会给图像带来额外的无关细节[12],Sobel 算子不具备各向同性的性质,所得边缘有一定程度的断开,而拉普拉斯算子则能满足这些要求,但其对离散噪声点比较敏感[13],需要现对图像进行平滑滤波处理。基于以上分析,本文采用二维高斯-拉普拉斯算子对车辆图像进行边缘检测。
对图像进行高斯滤波一般采用二维离散高斯函数
式中:G(x,y)为经过高斯滤波之后图像;σ 表示高斯滤波器的宽度;k 为规范化系数。
采用拉普拉斯算子对高斯滤波后的图像进行边缘检测可表示为
对于离散的数字图像来说,通常可以使用一个近似于高斯拉普拉斯算子的离散高斯拉普拉斯模板对其进行边缘检测。本文使用式(3)所示高斯拉普拉斯模板对源图像进行卷积操作来识别图像边缘。
对比三种检测算子对车牌区域的检测结果,使用高斯拉普拉斯算子的结果如图2b 所示,在高斯滤波之后对同一图像进行Sobel 和Canny 边缘检测的结果如图2c 和2d 所示。可以看到,使用高斯拉普拉斯算子检测不会产生额外的细节,同时也能最大程度保证边缘的完整。
图2 边缘检测算子检测结果对比
3 字符定位
3.1 连通区域分析
考虑到一个字符的空间范围主要依靠边缘像素来标定,为了更快速准确地计算每一个字符的包围盒,本文采用8-邻域种子填充法(seed filling)搜索具有相同像素值的相邻区域。搜索算法如下:
1)考虑到车牌区域通常位于一幅车辆图片的下半部分,并且车牌区域的左右下三个方向都拥有相对更少的边缘信息,本文从二值图像的左下方开始,以先往右后往上的方向,向右上方扫描整幅图像,直到找到第一个值为1 的前景像素P1。
2)把P1 编号为1,然后从左下方开始扫描8 个相邻像素点,将其中所有像素值为1 的像素编号为1 并入栈。
3)弹出栈顶像素,扫描其8 个相邻像素点,将像素值为1且未编号的像素压入栈中,若8 邻域像素值均为0,则弹出栈中下一个像素并重复步骤(3),直到栈为空。此时所有标记为1 的像素点组成了1 号连通域。
4)重复步骤1)~3),搜索出2 ~n 号连通域。
3.2 AABB 包围盒建立与筛选
二维AABB 是一个矩形包围盒,其定义为包围一个连通域且四边与坐标轴平行的最小矩形。通常使用包围盒的左上顶点坐标(Xlu,Ylu)和右下顶点坐标(Xrd,Yrd)来表征其在平面坐标系中的具体位置。本文利用这两个坐标设计一组包围盒参数来筛选车牌字符所对应的包围盒。
定义包围盒的高度Height、宽度Length 分别为
则包围盒的宽高比为R=Length/Height。本文利用包围盒的中心点Mi 作为字符的定位点,其坐标可表示为
两个相邻包围盒M1、M2 之间的距离定义D 为
车牌字符区域的具体筛选流程如下:
1)车辆上正常安装的车牌都具有固定的宽高比,因此在清晰的车辆图像中,车牌上每一个字符的宽高比大都是相接近的。考虑到可能存在的噪声、车牌倾斜等影响宽高比的因素,本文预先设置宽高比的上下限,高度上限值和宽度下限值,遍历整幅图像并标记包围盒宽高比不在此区间内的连通域。若高宽比落在此区域中,则进一步比较高度值和宽度值并标记不符条件的连通域。扫描完成后将所有被标记的连通域内的像素值都置为0。这样可以滤除图片中大部分不属于车牌部分的干扰区域。
2)通过对多张车辆车牌图像分析发现,即使在车牌倾斜的情况下,字符包围盒的中心点高度坐标值仍然落在相邻包围盒的两顶点高度坐标值(Ylu,Yrd)之间,利用这一特性,结合字间距的大小规律可以对剩下的连通域做进一步的筛选。从左下方开始选择第一个连通域包围盒,以其中心点M1 为起始点,在y=Ylu1和y=Yrd1区间内向右搜索是否有其他包围盒的中心点落在此区间内。如果没有,则认为此连通域是孤立区域,将此连通域内所有像素值置0,并选择下一个中心点作为起始点继续搜索。如果有中心点M2 存在,继续检验M1 是否在M2 包围盒的高度区间内,并进一步对比两个包围盒的高度、宽度。只有满足两个中心点都在对方包围盒高度区间,并且包围盒的高度值、宽度值都比较接近这两个条件,才认为这两个包围盒相关,并计算包围盒距离D。否则将起始点退回到M1 并在M1 包围盒高度空间内继续搜索。
3)在步骤2)中M2 包围盒高度区间y=Ylu2和y=Yrd2内继续重复步骤(2)中搜索方式。当计算得到的若干个距离值满足上文所述的车牌字符间距关系时,提取对应的所有包围盒作为最终搜索到的车牌区域。
在实际车辆图像中,车牌的左右方以及下方通常都是颜色相同的平滑区域,这些区域包含的边缘信息较少。执行完步骤1)之后,这些区域中只包含很少量的包围盒。考虑到车牌定位的实时性要求,本文从左下方开始检测,只需花费少量时间即可检测出目标包围盒。将所有目标包围盒合并成一个大包围盒,其所对应的区域即为车牌区域。由于边缘检测会不可避免漏掉少量的边缘信息,造成靠近车牌两边的一部分字符信息没有被包含进来,因此需要将大包围盒扩展一个较小的比例,以保证提取到完整的车牌图像。
使用本方法对图3a 所示车辆进行检测,检测到的字符连通域如图3b 所示,最终检测到的车牌图像如图3c 所示。
4 倾斜矫正与字符分割
由于摄像机拍摄角度等原因,车牌图像可能会出现一定倾斜角,这会对后续字符分割和识别造成影响。使用Hough变换矫正倾斜图像存在运算量大的缺点,而使用首尾字符包围盒中心点连线来检测倾斜角度的方法简单快速,但若首尾任一字符的中心点过度偏移于实际位置,则会使检结果产生较大偏差。因此,使用最小二乘法将每个字符包围盒的中心点拟合成一次函数y=ax+b 的形式,则车牌倾斜角度为式中,a 为拟合得到直线的斜率。若α 为负,则将车牌图像逆时针旋转角度|α|,反之则顺时针旋转α。
图3 车牌区域定位结果
以图3 为例,图3b 中7 个字符包围盒的中心点分别为(166,365),(177,365),(191.5,364.5),(202,364.5),(212,363.5),(223,363.5),(233,363)。经过最小二乘法拟合得到的结果为y=-0.031 6x+370.491 7。进一步求解得到车牌的倾角为α=arctan ( -0. )031 6 =-1.81°。以第四个字符中心点为原点将车牌图像逆时针旋转1.81°,得到如图4 所示的图像。
4 倾斜矫正后的车牌图像
旋转图像的同时计算包围盒中心点的新位置。假设第i个字符包围盒中心点位置为,若以第四个字符中心点为原点,则其坐标可表示为,其离原点的距离为,旋转α 角度后其新位置坐标可表示为
图5 字符分割结果
5 实验结果与分析
车牌图像的质量会受到角度倾斜、车牌污损、曝光过度等因素影响。但只要车牌部分的边缘信息足够完整,本文算法就可以有效地检测车牌区域分割车牌字符。本文对不同条件下所拍摄的200 张样本图像进行实验,定位结果如表1 所示。
表1 车牌定位结果
由表1 可知,本文算法对大部分车辆车牌图像都有良好的定位和分割效果。能定位到车牌图像就能准确分割图像中的每一个字符。这是因为本文算法中车牌的定位也是通过预先检测车牌字符包围盒的方法实现的,如果能准确检测到车牌字符的包围盒,就可以顺利实现后续的定位和分割操作。本文算法对具有复杂纹理信息的图像也有良好的检测效果。而在夜间进行检测也能取得很不错的效果,这是因为车牌具有良好的反光特性,在夜间被灯光照射的车牌往往拥有更明显的边缘信息。不同条件下车牌检测结果如图6 所示。
图6 不同条件下车牌检测结果
过曝、曝光不足或者车牌发生较明显的污损等因素会造成车辆图像模糊从而丢失边缘信息,漏检的那一部分图像就是属于这种类型。
6 结论
1)本文提出基于CCA 和AAB 包围盒的车牌字符定位分割算法,使用连通域分析和AAB 包围盒来标定和表征图像中的连通区域,并根据车牌字符的实际分布规律来筛选出属于车牌区域的连通域,使用包围盒中心点定位矫正车牌图像并进行字符分割。
2)仿真实验结果表明,本算法对不同条件下的车牌图像具有良好的检测和分割效果,成功率达到93.5%。
3)此外,本算法基于同一种参数即可实现车牌定位和字符检测,在实际应用中,这可以有效简化系统流程设计,提高了检测效率。
[1]SU J R,MA Z.Car license plate location based on the density and projection[C]//第三届中国智能计算大会论文集.济南:中国运筹学会智能计算分会,2009:409-412.
[2]李强,汪洋,李伟博,等. 基于蓝色车牌背景的车牌精确定位实现方法[J].电视技术,2011,35(15):4-6.
[3]赵兵,鲁敏,匡纲要,等. 基于混合特征的车牌定位算法[J].计算机工程与设计,2008,28(23):5668-5670.
[4]ZHAO W,GAO M Y,HE Z W.Character recognition based on improved BP neural network[C]//Proc.2013 Third International Conference on Instrumentation,Measurement,Computer,Communication and Control(IMCCC).[S.l.]:IEEE Press,2013:754-757.
[5]WANG Y R,LIN W H,HORNG S J. A sliding window technique for efficient license plate localization based on discrete wavelet transform[J]. Expert Systems with Applications,2011,38(4):3142-3146.
[6]方兴林,方云楼.一种基于先验知识约束的车牌字符分割新算法[J].重庆工商大学学报:自然科学版,2012,29(8):42-46.
[7]甘玲,林小晶.基于连通域提取的车牌字符分割算法[J].计算机仿真,2011,28(4):336-339.
[8]张金林,胡宏健,方虎生,等. 基于字符连通域特征的车牌定位方法[J].电视技术,2012,36(7):140-142.
[9]林川,吴正茂,覃金飞. 基于机器视觉的分级车牌字符识别方法[J].电视技术,2014,38(11):198-201.
[10]中华人民共和国公安部. GA36—2007 中华人民共和国机动车号牌[S].2007.
[11]郭彩虹,陈卫钢.一种噪声方差自适应的连续消除方法[J].计算机工程与应用,2010,46(7):208-212.
[12]冈萨雷斯. 数字图像处理(MATLAB 版)[M]. 电子工业出版社,2009.
[13]朱媛媛,杨文杰. 噪声对拉普拉斯算子边界检测影响的分析[J].北京印刷学院学报,2013,21(6):38-41.