结合有色点对搜索和区域统计特征的车牌定位算法分析
2016-04-13周彬彬周之平贾杰
周彬彬++周之平++贾杰
摘要:为了提高车牌检测系统中车牌定位的效率,文章利用HSV和RGB双重颜色模型对蓝白像素点建立定性描述模型,基于该模型提出一种结合蓝白有色点对搜索和区域统计特征信息的车牌定位方法。该方法首先通过搜索有色点对并结合角点和车牌纹理等特征确定车牌的粗略区域,然后利用垂直/水平投影、霍夫直线检测以及颜色提取方法实现车牌精确定位。测试结果表明,针对复杂环境和不同光照条件下的车牌,新方法能够实现车牌的快速精确定位。
关键词:车牌定位;有色点对;区域统计特征
车牌识别是智能交通系统的重要组成部分,而车牌定位作为车牌识别的关键步骤之一,直接影响着车牌识别系统的性能。由于光照、视点和距离、背景的复杂性等因素的影响使得车牌定位准确率不高。因此,如何找到一种方法能够实现在不同环境下车牌的快速、精确定位是研究的重点。目前的车牌定位算法可分为:基于边缘信息的定位方法、基于Hough变换的定位方法和基于颜色特征的定位方法。
文献通过统计边缘密度信息和车牌字符分布进行精确定位,该方法需要提取字符特征并对字符进行识别,其实现复杂性较高。文献结合车牌形状及其在Hough空间的特征,通过Hough反变换重建车牌区域,若不能提取到明显的车牌直线边框,则无法定位。文献把输入的RGB图转换到HSV空间上,利用车牌区域的固定底色特征及纹理特征定位车牌,算法中涉及的车牌底色的颜色选择环节有待改进。文献通过选取适当的颜色模型提取车牌,该模型不能适应于不同颜色明亮程度和不同环境下的车牌。
为此,本文在文献的研究基础上提出一种改进的车牌定位算法。该方法对文中的RGB颜色空间中的蓝白像素点描述方法进行改进,通过搜索RGB和HSV两个颜色空间中满足一致性约束的像素来确定车牌字符的边缘像素点,最后利用车牌区域的纹理特征,结合连通域分析、角点/直线特征检测以及水平垂直投影方法进行车牌精确定位。
1 有色点对搜索方法改进
文献以蓝底白字的车牌为例,利用车牌区域为蓝色背景和白色字符的特征,通过搜索有色点对确定车牌内的白色字符区域。其中像素点对(A,B)的有色点对定义为:A点,其左侧为蓝色像素点,右侧为白色像素点;B点,其左侧为白色像素点,右侧为蓝色像素点。对于点A(或者B)裉据其颜色分量Cr,CR,Cb,通过如下模糊判断来确定所属颜色:
(l)当满足Cb>f1*Cr,g且Cb>T1时,即认为该像素点为蓝色点。
(2)当某一点的颜色满足i Cr,g,b
通过对大量的车牌图像进行测试发现,上述关于蓝白像素点的定义不够准确,例如对于浅蓝色的车牌,因为大多数白色字符周围的蓝色点Cb/Cg∈(1.2,1.4),f1取为1.4时只能得到很少的字符像素,如图l(d)所示。此外,对于颜色鲜艳的蓝色车牌,由于受到蓝色背景的色差影响,f2取为0.4也无法实现定位,如图1 (e)所示。统计分析表明,车牌图像中的白色字符Cb/s取值为《0.4,0.45)。若减小f1或增大f2,可以有效检测出图l(a)和图l(b)中的有色点对,但对于淡蓝色车牌(见图1(c》,会将蓝色的车牌背景误判为白色,导致字符搜索不出来或产生粘连(见图l(f))。
选择不同颜色鲜艳程度、不同光照强度下车牌作为测试图像,统计分析其HSV三个通道的分布规律,从而给出蓝白像素点的判定规则。
规则1:HSV颜色空间蓝白点判定规则
(1)若h∈(95,130),S∈[51,255],V∈[25,255],则判定该像素点为蓝色点。
(2)若h∈(10,163),S∈(O,120],V∈[70, 255],则判定该像素点为白色点。
同理,通过统计分析的方法得出RGB颜色空间上蓝白像素点的定义规则。
规则2:RGB颜色空间蓝白点判定规则
(l)若Cb√Cr>1.20,Cb/Cg>1.1O时判定该像素点为蓝色点。
(2)若Cr/s<0.43.Cg/S<0.4时则判定该像素点为白色点。 但是在HSV颜色模型中,对s∈[51,120]的像素进行颜色界定时存在模糊性,而通过大量的对比分析发现,同一张车牌图像中大多数蓝色点的s分量要大于白色点,如图2所示。为此,利用规则1来判断白色点时,不仅要求s分量满足s≤120,而且还应小于邻域内蓝色点的s分量。
综合上述判定规则,给出蓝白点的判定条件:
(l)对于二值边缘图像中的边缘点P,其在HSV图像中各分量满足hp∈(95,130).sp∈[51,255],vp∈[25.255],并且RGB彩色图像中对应像素满足
时,则判定P为蓝色像素点。
(2)对于二值边缘图像中的边缘点B,其在HSV图像中各分量满足hB∈(10,163),sB∈(0,120],vB∈[70,255],并且RGB彩色图像中对应像素满足 时,同时SB小于邻域内蓝色像素的s分量时,则判定像素点B为白色像素。
针对图1(a)~(c),采用新的判定条件进行有色点对搜索的效果如图l(g)~(i)所示。与文献的方法相比,它提供了车牌区域更为丰富的信息,有利于后续的车牌定位。
2 车牌定位算法
2.1 车牌区域的粗定位
经过有色点对搜索后的图像中会包含一些干扰的黑色区域,因此可先利用形态学运算消除干扰区域,并对相距较近的区域进行合并。然后对于候选连通域,采用车牌区域的纹理特征,如宽高比、车牌区域的面积和质心以及黑白像素跳变的平均次数,提取包含车牌的区域。
但是,如果车身背景是蓝色,车牌区域和车身区域可能会粘连在一起,导致无法定位。为此,首先提取区域的Harris角点特征,然后对角点所限定的矩形区域进行逐一测试,判断该区域内是否含有车牌纹理特征进而确定车牌所在的区域。其实现过程如下所述:
算法A1:车牌区域粗定位算法
(b)车牌“京AOOOOI”
Stepl:首先对图像进行腐蚀和膨胀运算以消除干扰区域,再进行连通分量标记,并构造各个连通域的最小矩形包围盒 。转Step2。
Step2:判断ri是否仅包含单个连通成分。若是,记 ,转Step6;否则,选择面积最大的连通域 ,记为 ,转Step3。
Step3:分别统计 中黑白像素的面积 和 。如果 ,则判定其不包含大量的干扰区域,转Step6;否则,转Step4。
Step4:对连通域 检测Harris角点,并根据坐标值对角点排序(先按横坐标升序再按纵坐标降序排列),记作 。转Step5。
Step5:对于角点 ,确定其右下角的所有角点 。利用纹理特征判断由 和 构成的矩形是否包含车牌区域。如果包含车牌区域,表明找到车牌区域,退出循环;否则, ,判断下一个点是否满足。当k=n,且未找到时, ,继续上述搜索过程,直至找到一个包含车牌区域的矩形为止。
Step6:利用车牌纹理特征直接判断候选区域。
对蓝色车身的车牌图像进行连通域分析,车牌区域粗定位的过程如图3所示,其中图3(b)~(d)对应于包含车牌的连通域(为了便于显示,对局部图像进行了放大)。
2.2 车牌区域精定位
为提高后续字符分割精度和识别效率,提取粗定位区域中的边缘特征,并根据像素跳变次数和彩色图上白色点数目确定字符区的水平和垂直边界,以实现车牌的精确定位。
2.2.1 水平方向精定位
Hough直线变换可以检测到位于车框和字符的邻近区域内的一些直线段,可利用这些线段来确定车牌字符区的上下边界,如图4所示。
可引入如图5所示的坐标系,外面的矩形框表示车牌粗定位区域。通过提取那些与区域Rl(和R2)交集不为空的直线段并根据像素跳变次数来确定车牌字符的上下边界,具体过程如下:
算法A2:车牌区域水平边界定位算法
Stepl:选择与区域Rl交集不为空的直线段(如图5中l1,l2),将其存入集合S1中;同样选择与区域R2交集不为空的直线段(如图5中l3,l4),将其存入集合S2中。转Step2。
Step2:根据直线段中点y坐标分别对集合S1和S2中元素进行降序和升序排列。记, 。转Step3。
Step3:选择 中的第i个元素(i初始值为1) 进行测试。在二值图像上作通过 两个端点P1,p2的水平线并统计线上像素跳变次数n1,n2。转Step4。
Step4:先判断n1是否小于阈值τ2。若是,则取P的y坐标作为上边界U,转Step6;否则,转Step5。
Step5:判断ψ2是否小于阈值τ2。若是,则取p2的y坐标作为上边界U,转Step6;否则,选择下一个元素,转Step3。
Step6:同理对集合S2中元素按照Step3-Step6过程确定下边界B。记录(U'B)作为水平方向上下边界。
针对图4中的3幅图像,水平边界的精确定位效果如图6所示。
2.2.2 垂直方向精定位
对应于图6所示的定位结果,可抽取到其有色点对图像,如图7所示。
当粗定位区域的有色点对图包含较完整的车牌字符时(见图7(a)),利用水平投影法可实现字符左右边界的精确定位。但是,若首末字符与车牌左右边框间隙很小或发生粘连,通过有色点对搜索无法得到完整的首末字符时(见图7(c)),会导致定位失败。结合白色像素点定义和水平精定位所确定的区域,可从原始图像中提取白色像素图,如图8所示。比较图7和图8发现:(l)白色像素图包含了完整车牌字符的信息。(2)有色点对图像的首字符一般在白色边框的右边,末字符一般在白色边框的左边。
为此,首先在有色点对图上通过水平投影得到一个包含部分字符区域的初始边界,再对照车牌白色像素图,结合水平投影方法和水平区间延伸检测来实现左右边界的精确定位。具体算法实现如下所述。
算法A3:车牌区域垂直边界定位算法
Stepl:在有色点对图上从第一列开始,按从左到右方向依次扫描,搜索白色像素数nww>τ4的首列。并记录其列索引col left。转Step2。
Step2:在白色点图上从第col left开始,按从右到左方向依次扫描,搜索白色像素点数目mw>τ5的首列j1。记录左边界L=j1。转Step3。
Step3:在有色点对图上从最后一列开始,按从右到左方向依次扫描,搜索白色像素数nww>τ4的首列。并记录其列索引col right。转Step4。
Step4:从白色点图中第col right列开始,按从左到右方向依次扫描,搜索白色像素点数目mw>τ5的首列j2。记录右边界R=j2。
一旦确定了车牌字符的上下边界(U,B)和左右边界(L,R),则可从原始图像中提取对应区域的车牌字符图像,效果如图9所示。
3 实验结果及分析
为了验证算法性能,选取不同尺寸、光照和颜色明亮程度的276张车牌进行测试。统计结果表1不同背景环境和光照条件下的部分测试结果表明,文献定位成功率为88.3%,本文算法的定位成功率为94.2%,相比之下本文方法在定位准确率上有了较大提高。表1列出了部分实验测试结果,其中样例1是底色为浅蓝色的车牌,样例2是颜色较为鲜艳的车牌,样例3是傍晚时刻拍摄的车牌,样例4是车身为蓝色的车牌。从表l可以看出,新算法能够适用于不同环境下采集到的不同质量的车牌图像,因而具有较强的鲁棒性。
4 结语
为了提高复杂环境下车牌定位的效率,本文提出一种基于有色点对搜索和区域统计特征的车牌定位算法。该方法将HSV和RGB双重颜色空间与边缘图像相结合对蓝白颜色点进行定性描述,增强了有色点对搜索的效率;利用角点特征进行局部区域纹理匹配,消除了车身颜色对定位的影响;通过水平/垂直边界精确定位,有效地界定了车牌字符区域。测试结果表明,针对复杂环境和不同光照条件下的车牌图像,该方法能够实现快速、精确定位。而如何将该算法推广到不同类型的车牌,使其更具有一般性,将是下一步研究的内容。