基于图像处理的交通灯识别*
2021-12-24陈蓉,罗山
陈 蓉,罗 山
(攀枝花学院智能制造学院,四川 攀枝花 617000)
0 引言
交通信号灯识别系统最关键的环节是定位和识别。文献[1]利用简单的图像处理方法来提取驾驶场景中的交通灯候选区域,然后提出了 DA-Faster R-CNN算法对候选区域中的交通灯进一步检测识别。文献[2]在各种颜色空间中利用信号灯的颜色先进行分割得到感兴趣区域,然后再通过信号灯所特有的形状特征等进行进一步的判定。文献[3]利用MATLAB先将雾化不清的图像采用暗通道先验去雾改进算法进行预处理,将处理后的图像转化成HSV图像,利用HSV图像特性进行颜色识别,并利用MATLAB平台进行验证。这些算法较复杂,运算量大。
依据交通灯图像的特征,本文通过Sobel边缘检测算法提取图像边缘;然后采用数学形态学的膨胀腐蚀操作进行处理,填充小孔、移除小目标,进行区域填充,从而完成交通灯的定位;最后利用HSV色彩空间的颜色特性,进行交通灯定位区域的色彩增强和识别。
1 边缘检测
Sobel边缘检测算子是像素图像边缘检测中最重要的算子之一,此运算符包含两组3×3矩阵,它们是横向和纵向的。基本原理是将其与图像进行卷积,得到横向和纵向亮度差的近似值,即可分别得出横向及纵向的亮度差分近似值。Sobel边缘检测算法[4]相对简单,实际应用效率高于Canny边缘检测效率,虽然边缘检测不如Canny准确,但在很多实际应用中,Sobel边缘是首选,特别是对于高效率的要求,而精细的纹理不是很在意。
该算子使用两个3×3的矩阵算子分别和原始图片进行卷积,分别得到横向Gx和纵向Gy的梯度值,如果梯度值大于某一个阈值,则认为该点为边缘点。如果以A代表原始图像,Gx及Gy分别代表横向及纵向梯度值,如式1所示:
(1)
图像的每一个像素点的梯度值大小为:
(2)
定义一个阈值Gmax(这里定义Gmax=150),如果G比Gmax大则可以认为该点是一个边缘点,则设置这个点为白色,否则该点为黑色。这样就得到了边缘检测的图像,结果如图1所示,图1(a)为原图像,图1(b)为边缘图像。
图1 边缘检测结果
2 交通灯定位
由于采集的图像往往含有较多的干扰信息,如行人、车辆以及其他路标等,在光线暗的时候也会存在许多噪点,为了排除车辆的车灯、建筑透出的灯等细杂质以及噪声物体的干扰,对交通灯图像进行数学形态学处理以消除噪声。基本的形态学处理的公式如下[5],其中A为原图像,B为结构元素。
1) 腐蚀运算AΘB=∩{A-b|b∈B}
2) 膨胀运算A⊕B=∪{A+b|b∈B}
3) 开运算AοB=(AΘB)⊕B
4) 闭运算A·B=(A⊕B)ΘB
首先将图像先进行腐蚀后再膨胀处理。腐蚀操作可以消除物体的边缘点,其他细小干扰会被认为是边缘点,会整个被删除;然后再进行膨胀操作,处理后留下的较为大的物体会恢复到原来大小,小物体则被清除了。
然后采用形态学进行区域分析,对腐蚀膨胀处理后的图像进行区域填充,填补小孔洞,移除小目标,从而获得表示信号灯框位置的连通区域,如图2所示。最后用矩形框标注出定位的交通信号灯。
图2 信号灯框位置的连通区域
3 颜色识别
根据交通灯的结构可知,交通灯矩形框中的三个颜色,由上而下分别是红灯、黄灯、绿灯,因此每个定位所得到的黑色矩形框中只会有一种色彩信息,干扰少,易识别。利用HSV颜色空间的特性,将图像从RGB空间转换到HSV空间处理,以识别信号灯颜色状态。RGB空间转换到HSV空间的步骤[6]为:
1) RGB图像归一化:
(3)
2) RGB转换为HSV:
(4)
3) 色调计算:
(5)
4) 饱和度计算:
(6)
5) 明度计算:
V=Cmax
(7)
RGB转换为HSV颜色表如表1所示。
表1 RGB转换为HSV
根据表1的颜色值的对应关系,将定位后灯框区域转换成HSV颜色空间并只保留红色(或者绿色)的通道,再对信号灯的颜色状态进行判断,并标记在原图上,得到识别结果。图3是识别绿色信号灯的结果。
图3 颜色识别
4 实验结果与分析
为了检验算法的有效性与实用性,采集了不同场景、不同地区各时段的交通灯图像进行实验,采用Matlab软件进行仿真,部分实验结果如图4所示,用矩形框及“红色”、“绿色”的英文单词表示识别出的颜色状态。在实验过程中,发现在天气暗的时候二值图像存在许多杂点,呈现出无规则的形状,且相邻图像块之间界限不明显。对于上述存在的问题,本文利用腐蚀、膨胀、开闭运算等形态学处理,并利用该方法通过大量实验以选择合适的结构元素及大小对图像进行优化处理。
图4 交通信号灯识别结果
从图4可以看出,该方法对白天、夜晚、阴天、不同光照等情况下的信号灯识别效果良好,均能准确判别出颜色状态。采用不同的数据集进行测试可以很好地验证算法的准确性,获得高的识别率,同时运算量小。
5 结束语
为减小识别算法的运算量,提出一种结合数学形态学与HSV颜色空间的交通信号灯识别方法。该方法首先将图像转换成灰度图像,减少颜色通道便于后续算法的计算,然后对转换后的图像进行边缘检测,对边缘图像进行形态学处理,以消除小目标并填补孔洞,随后再进行膨胀腐蚀操作以获得连通区域。对定位后的图像去掉不闭合的面,得到交通信号灯框的面,选中对应区域转换到HSV空间,直接去掉多余背景,确定出符合红色和绿色条件的区域,计算红色和绿色的区域面积,最后得到交通信号灯的颜色状态。该方法具有算法简单、运算量小、识别准确率高的特点。但对于非常复杂的场景,会出现识别矩形框大,识别不准确的现象,还需要进一步研发出更优的算法,以获得更精确的识别结果。