一种基于YSC颜色识别的车辆牌照图像定位方法
2023-09-02李俊峰
宋 超,李俊峰
(1.襄阳职业技术学院 汽车工程学院,湖北 襄阳 441050;2.湖北火爆机器人科技有限公司,湖北 襄阳 441000)
一、问题分析
随着汽车保有量的提高,在交通道路、小区及停车场门禁系统中,大量使用了车辆牌照识别技术。目前,主要通过图像识别的方式,由静止的摄像头获取车牌图像,对车牌图像进行定位,并识别车牌号码。但车辆在行驶过程中,其前置摄像头检测前方车辆的牌照时,由于受到环境因素的影响,定位和识别有很大的难度。[1~2]本文介绍了一种基于YSC颜色识别的车辆牌照定位方法,可以在汽车行驶过程中定位前方车辆牌照。
二、YSC彩色控件
YUV表示电视信号彩色坐标系统。YUV彩色电视信号传输时,将R、G、B变换为亮度信号和色度信号。PAL制式将R、G、B三色信号改组成Y、U、V信号,其中Y信号表示亮度,U、V表示色差信号。[3~4]在YUV彩色空间中,若知U和V,则可求出复数U+jV的模S和幅角C:
其中,S称为色饱和度,表示颜色的深浅;C称为色调,表示颜色的种类。用S和C表示色度,更便于人对颜色的感知。
现列出几种标准纯色的YSC值,如表1所示。
表1 几种标准纯色的YSC值
为了便于颜色识别,将上表的色度分量用矢量的形式绘于U-V坐标系中,称为彩色矢量图,如图1。色饱和度S=0的颜色是灰色的,其色调值无意义;亮度值Y=0的颜色是黑色的,Y=1的颜色是白色的,其色调值也无意义。在实际颜色识别中,要根据三基色R、G、B计算Y、S、C,由C确定的颜色种类,可以通过彩色矢量图定性得出。
图1 彩色矢量图
三、颜色评价函数
实际成像中的牌照,组成底色像素的YSC值并非严格一致,而是分布在YSC空间的一个较小的区域内,对字符色也是如此。[5]为了有效地进行分割,针对国内主要使用的蓝底白字的汽车牌照,本文提出了一种评价牌照颜色特征的评价函数,其定义如下。
(一)定义1 评价牌照底色特征的评价函数(蓝色评价)
定义1.1 设评价色调与牌照底色贴近程度的函数为正态分布函数:
这是一个高斯分布函数,其中C为被评价像素的色调,C0为牌照底色的主色调,由样板统计确定。α为尺度参数,控制色调的分布范围。
图2是eC的曲线,C偏离C0越远,eC的值越小。a越大,分布范围越宽。
图2 底色色调评价函数曲线
定义1.2 设评价色饱和度与牌照底色贴近程度的函数为:
其中S为被评价像素的色饱和度,b为尺度参数,控制色饱和度的分布范围。eS的曲线如图3所示。可以看到,S越大eS也越大,说明颜色越深,越贴近牌照底色。
图3 底色色饱和度评价函数曲线
定义1.3 设评价亮度与牌照底色贴近程度的函数为:
其中Y为被评价像素的亮度,c为尺度参数,控制亮度的分布范围。eY的曲线如图4所示。可见,Y越大eY也越大。因为牌照底色不能太暗,故eY为单调升。
图4 底色亮度评价函数曲线
定义1.4 牌照底色综合贴近程度的函数为:
e=eC×eS×eY
即用Y、S、C三个分量同时评价一个像素是否贴近牌照底色。该函数的值域为[0,1),其值越大,贴近度越高。
(二)定义2 定义评价牌照字符色特征的评价函数(白色评价)
定义2.1 设评价色饱和度与牌照字符色贴近程度的函数为:
其中S为被评价像素的色饱和度,d为尺度参数,控制色饱和度的分布范围。wS的曲线如图5所示,为单调降函数。S越小wS越大,说明颜色越浅,越贴近牌照字符色。
图5 字符色饱和度评价函数曲线
定义2.2 设评价亮度与牌照字符色贴近程度的函数为:
其中Y为被评价像素的亮度,f为尺度参数,控制亮度的分布范围。wY的曲线如图6所示。可见,Y越大wY也越大。因为牌照字符色为较亮的白色,故wY为单调升。
图6 亮度评价函数曲线
定义2.3 牌照字符色综合贴近程度的函数为:
w=wS×wY
即用Y、S、C三个分量同时评价一个像素是否贴近牌照字符色。该函数的值域为[0,1),其值越大,贴近度越高。
(三)定义3 定义评价牌照颜色特征的评价函数
函数为:p=e-w
p的值域为[-1,1],适当选择参数C0,a,b,c,d,f,能使牌照底色的p值接近1,字符色的p值接近-1,而其它颜色的p值在0附近。尤其是色饱和度不高的颜色,p<0。为加强抗干扰性能,可在p<0时,令p= 0。
图7是对一幅车辆图像中有代表性的行y1、y2进行牌照颜色评价的结果。对于24位色的车牌图像,由样板统计确定的颜色评价函数各参数值如下:
图7 对某幅图像中的2行进行评价的结果
C0= 324°,a= 30,b= 30,c= 10,d= 30,f= 10
可以看到,对于y1行,虽然背景复杂,但Py1(x)的值基本为0;而对于y2行,Py2(x)的值在牌照区大幅度变化。当穿越背景和字符时,Py2(x)的值在[0,1]之间急剧跳跃,对检测牌照区域极为有利。通过使用颜色评价函数对图像的各像素点进行颜色评价,可以较好地获取到牌照的候选区。
四、牌照区域的粗分割
尽管颜色评价函数能有效地排除背景色的干扰,但在背景中仍可能存在少数符合牌照背景色的区域。对牌照区域进行粗分割的目的,就是要将用评价函数评价出来的区域作进一步筛选,尽可能保留真正的牌照区域,删除非牌照区域。牌照区域的重要特征是由字符笔画形成的纹理,判别一个区域是否为牌照区域,可以检测字符笔画边缘的分布情况。字符笔画的边缘对应评价函数的跳变沿,可以通过求评价函数梯度得到:
g(x)=p(x+2)+p(x+1)-p(x-1)-p(x-2)
根据牌照字符笔画边缘的分布情况,本文采用了栅格划分的方法来实现牌照区域的粗分割。
(一)栅格划分与击中
对于一幅图像,可以令行距和列距分别为6和16个像素点来划分栅格。然后,对图像进行逐行扫描,求出每行评价函数的梯度波形gy(x)。若gy(x)峰值的绝对值(包括正峰和负峰)大于指定的阈值t,则对应的像素位置称为击中点。击中点落在哪个栅格中就将哪个栅格的值增1。
栅格击中算法:
定义二维数组G[x][y],全部赋以初值0。
对于图像中的各行y,重复如下过程:
计算gy(x)的值;
搜索gy(x)的峰点位置xp;
若gy(xp)的绝对值大于t,则将G[xp][y]加1。
被击中的栅格大多数落在牌照候选区上,如图8所示(被击中的栅格标有“*”符号)。
图8 被击中的栅格
(二)基于连通栅格区的牌照粗分割
若干个被击中的栅格在空间位置上构成连通的栅格区域。连通栅格区覆盖了牌照区,但也可能不全是牌照区。通常,非牌照区域一般不会同时构成牌照的纹理和尺度规模,这就是采用栅格划分的方法对牌照区域进行粗分割的依据。实现步骤如下。
步骤1 尽可能排除不可靠的被击中栅格。不可靠的被击中栅格是指被击中次数较少的栅格,因为它在满足牌照区域的纹理特征上不够充分。算法如下:
选定阈值TG;
对全部被击中的栅格:若G[x][y]大于阈值TG,则令G[x][y]= 1;
否则令G[x][y]= 0。
图9是经过阈值TG= 2筛选的栅格,对比图9可知,一些不可靠的栅格被删除。
图9 不可靠的栅格被删除
步骤2 对栅格连通区的形状进行修整,使之接近牌照的矩形形状,并希望当牌照达到3×2栅格或以上时能被检测出来。因此,在栅格连通区中,若子区域达到3×2规模,则应予接收。实际中,可能存在接近此规模的栅格子连通区,例如,3×2区域中有5格属于栅格连通区,在这种情况也应予接收。算法如下:
对于栅格连通区中的全部栅格G[x][y]:若以G[x][y]为左上角的3×2区域中有5格或以上属于栅格连通区,则保留此3×2区域;
否则删除此3×2区域。
步骤3 采用连通区遍历算法,得到包围保留下来的栅格连通区的最小矩形,记为S(x1,y1,x2,y2)。连通区遍历一般针对像素点构成的连通区进行。本文借用了遍历像素点连通区的算法,从形式上将栅格当作像素点处理。经过步骤2,将保留下来的栅格值设为“1”,并将其视为“1像素”。其余栅格值为“0”,将其视为“0像素”。为了在遍历的同时获得包围“1”栅格连通区的最小矩形,采取如下算法:
先找到一个“1”栅格,设其坐标为(x0,y0),作为种子栅格;
令S(x1,y1,x2,y2)=S(x0,y0,x0,y0);
考察种子栅格的8邻栅格,若为“1”则压入堆栈;
从堆栈中弹出一栅格,设其坐标为(xi,yi);
若xi<x1,则令x1=xi;
若xi>x2,则令x2=xi;
若yi<y1,则令y1=yi;
若yi>y2,则令y2=yi;
若栈空,结束;
否则,将(xi,yi)作为种子栅格,转到第3段。
算法结束后,得到的S(x1,y1,x2,y2)即为包围“1”栅格连通区的最小矩形。然后将S(x1,y1,x2,y2)的左右均扩大1栅格,并记为S'(x1,y1,x2,y2),目的是使牌照的左右边可靠地含于S'(x1,y1,x2,y2)中。结果如图10所示。
图10 栅格连通区遍历算法获得的包围“1”栅格连通区的矩形区域
五、牌照区域的精定位
通过以上方法,可得到包含牌照左右边界的矩形区域S'(x1,y1,x2,y2)。为了精确地获取牌照的左右边界,还需要在S'(x1,y1,x2,y2)中对牌照左右边进行精定位。
(一)牌照底色区域的分割
对于汽车牌照,其各个尺度参数中宽度是最大的。而牌照底色区域的宽度基本能表达牌照的宽度,且面积较大,比较好提取。这里再次利用颜色评价函数的值,对S'(x1,y1,x2,y2)中的像素点进行分割。通过样本试验,发现取评价函数最大值的50%,即0.5作为分割阈值效果最好,算法如下:
取分割阈值T为0.5;
对S'(x1,y1,x2,y2)中的所有像素点,重复如下过程:
得到该点的颜色评价函数值;
如果评价函数的值>0.5,则将该像素点确定为牌照底色点;
否则,该像素点不是牌照底色点。
图11为再次利用颜色评价函数分割牌照底色区域的结果。
图11 用评价函数分割牌照底色区域的结果
(二)干扰区域的排除
在图12中,为了找到牌照底色的左右边界,还需要排除干扰造成的孤立小区域。分析干扰形成的原因,可知具有如下特征。
图12 搜索牌照底色的左右边界
第一,干扰区域覆盖的像素点接近牌照底色,其评价函数值高于0.5,但其评价函数的平均值比牌照区域的平均值要小。
第二,干扰区域的面积一般较小。因为干扰区域一般落在S'(x1,y1,x2,y2)中的扩大部分,不会超过1格的宽度。
第三,由于牌照边缘的存在,干扰与牌照底色区域一般不会连通。
通过对上述特征的分析,可采用以下算法搜索牌照底色的左右边界。
1.搜索左边界。
for(x=x1+(x1+x2)/3;x>x1;x--)
若从y1到y2未遇到分割出来的点,break;
令x为左边界,记为xL。
2.搜索右边界。
for(x=x2-(x1+x2)/3;x>x1;x--)
若从y1到y2未遇到分割出来的点,break;
令x为右边界,记为xR。
其中,x1、y1、x2、y2如图12所示。
由图可见,排除少数由干扰造成的孤立小区域后,分割出来区域的左、右边即为牌照的左、右边。
六、结论
根据YSC颜色识别的车辆牌照定位方法,对实际道路采集的前车视频图像进行试验,均能有效的提取车牌。