智能网联汽车电子技术
上QQ阅读APP看书,第一时间看更新

1.2.3 交通信号灯识别

交通灯识别算法主要利用的是交通灯的色彩特征及形状特征。基于色彩特征的识别算法利用了交通灯发出3种特定色彩光的特点,其核心是选择某个色彩空间对交通灯的颜色进行描述以及选取合适的阈值进行分割。基于形状特征的算法利用的是交通灯及其附属物的形状信息。

综合考虑交通灯的色彩和形状特征,首先通过色彩特征查找候选区域,再通过形状特征对候选区域进行确认。由于RGB空间颜色与光照互相影响的特点,首先,使用独立描述色度通道的色调饱和度(Hue Saturation Intensity, HSI)颜色空间,从而更加准确地查找出交通灯候选区域;然后,利用交通灯在形状上的典型特征对候选区域进行确认;最后,进行模板匹配,从而完成交通灯的识别[6]

1. 颜色分割

交通信号灯的颜色特征无疑是其最凸显的特征。要对颜色进行分割,首先要了解颜色空间的概念。RGB颜色空间采用红、绿、蓝3种基色来显示彩色,其模型下的3个分量RGB相关性较高,因此受光照影响较大。光照条件的稍微变化,就会引起颜色点在空间中的较大位移,不利于颜色分割。HSI颜色空间是适合人类视觉特性的色彩模型。其中,H(Hue)分量表示的是色度信息;I(Intensity)分量表示的是光的强度;S(Saturation)分量表示的是颜色的饱和度。HSI空间模型HIS这3个分量之间的相关性较小,色调与亮度、阴影等无关,故可以利用色调H完成独立于亮度I的彩色区域分割。但它需要从RGB空间转化到HSI空间,转化公式如下:

式中

由于红色、黄色信号灯为发光二极管(Light Emitting Diode, LED)灯材质,呈现出的颜色与实际生活中的纯红色、纯黄色有一些差异。于是对数十幅交通灯图像通道进行红色、黄色H值的获取后,选定了红色、黄色的阈值。红色H值为0~18或335~360,黄色H值为10~55,饱和度S值均不小于0.3。

即,若0≤H≤18或335≤H≤360、S≥0.3,则该像素为红灯区域;若10≤H≤55和S≥0.3,则该像素为黄灯区域。

可以看出,在0≤H≤18和S≥0.3处,红色与黄色重叠。由于将黄色误判成红色对交通状况产生的影响较小,因此若像素位于该重叠区间时,则将其判断为红色。

绿色信号灯H值为159~201,饱和度S值不小于0.15。

即,若159≤H≤201和S≥0.15,则该像素为绿灯区域。

由于需要进行形状确认,所以在颜色分割部分将红、黄、绿三色一起提取出来。若将三色分别提取出来后再分别进行形状分割、确认,将会重复执行算法,运算速度慢。因此,算法将符合(0≤H≤18或335≤H≤360、S≥0.3)或(10≤H≤55和S≥0.3)或(159≤H≤201和S≥0.15)的像素提取出来。图1-12所示为试验图,要将试验图中的红、黄、绿3色都提取出来。

如图1-13所示,分割后的图像还有很多杂点,因此引入形态学运算。形态学开运算的作用是消除细小物体,在纤细处分离物体,可以去除图中的杂点。形态学闭运算的作用是填充物体内细小空洞,连接临近物体,因此可以将信号灯圆域内空洞填上。选取合适的阈值,对图像综合运用开运算和闭运算。

图1-12 试验图

图1-13 结果图

对图像进行上述处理后,以八向连通的方式连接候选区域中的像素点形成图像块。每个图像块都有很多属性,如面积、圆度、长宽比、饱和度及凹凸性等。图像块的属性可以帮助过滤掉一部分图像块,如圆度过低的图像块可以确定不是交通灯。圆度(俗称圆形度)是指一个图像块接近理论圆的程度,其计算公式如下:

式中,Metric为图像块的圆度;Area为图像块的面积;Perimeter为图像块的周长;pi为图像块的像素个数,算法中对图块边缘进行扫描可得到。由式(1-18)可得圆的Metric=1。

在实验中,使用圆度属性,设置比较宽松的阈值,选最低值为0.3。经过形态学操作和圆度过滤后,会消除大部分的杂点,如图1-14所示。

图1-14 颜色分割最终结果图

2. 形状分割

交通信号灯在形状上有个显著的特征,即被一个黑色矩形框所包围。根据信号灯设计规范,该矩形框有固定长宽比。可利用该特征,将交通灯范围提取出来。首先设定一个阈值,将低灰度区域提取出来。再利用颜色分割,将近似黑色的部分提取出来,此时可以粗分割。若满足下式(黑色的提取公式),则该像素为黑色:

式中,RGB分别为该像素在红、绿、蓝3通道的数值。

提取出近似黑色的区域后,以八向连通的方式连接候选区域中的像素点形成图像块。长宽比过大的图像块可以确定不是交通灯边框。但是,由于环境光照的变化、车辆与交通灯的距离及抖动等因素的影响,使得图像中交通灯的形状不断发生变化。因此,过滤操作使用的属性的多少以及阈值设置的严格程度,应由具体的行车环境决定。经过面积和长宽比分割后的图像如图1-15所示。

3. 颜色分割与形状分割相结合

现在有两张处理过的图,一张是颜色分割后图,一张是形状分割后图。形状分割图中图块外接矩形恰似信号灯黑色外边框,信号灯区域应该位于该外接矩形框内。利用该性质,找到形状分割后的图块最小外接矩形所框住的区域,在颜色分割图中的同个区域搜索,如果有大于一定面积的图块出现且不与外接矩形框交叉,则为红绿灯。此处,面积阈值设为10个像素。

用该方法能有效地将颜色分割图、形状分割图中多余图块去除,来精准定位交通信号灯的位置。颜色图搜索完毕后图像为待匹配图像,如图1-16所示。

图1-15 形状分割最终结果图

图1-16 颜色分割与形状分割结合搜索后结果

4. 模板匹配

交通场景图像中杂点很多,各类交通标志、汽车尾灯、广告牌灯,都可能会被分割成候选区,所以还需要进行模板匹配。同样利用交通灯被黑色矩形框所包围这个特点,设计3个模板代表3个色彩的交通灯。交通灯模板如图1-17所示。

图1-17 红灯、黄灯和绿灯的交通灯模板

由于交通灯在图像中的大小和位置会随汽车和交通灯的距离变化而发生变化。因此,在匹配之前需要选择适当的模板,确定模板的大小和待匹配图像中的匹配区域。每个图像块对应的模板取决于它的行心在矩形框中的位置,具体选择规则如下:

1)行心位于矩形框上部1/3范围,选择红色模板。

2)行心位于矩形框1/3~2/3范围,选择黄色模板。

3)行心位于矩形框下部1/3范围,选择绿色模板。

设计的模板图像的大小是固定的,而图像中交通灯的大小和距离、视角等因素有关,因此不能直接拿模板图像和原图像进行匹配。每个图像块都需要重新计算它所对应的模板的大小。由于图像块对应的是交通灯的发光区,因此图像块的面积(记为Targe)和模板中发光区的面积(记为Template)的比值,就是模板图像(记为STe)需要缩小或放大的倍数。那么,模板图像的大小应变为STe×Targe/Template。

计算待匹配区域和模板图像的匹配程度,匹配值大于某个阈值的图像块确认为交通灯。