崔帅华,张杨丽珠,迟明路
(1.河南工学院 智能工程学院,河南 新乡 453003;2.河南工学院 理学部,河南 新乡 453003)
在复杂的交通场景中,尤其十字路口,一般都设置有交通信号灯:机动车前行指示信号灯简称“圆形灯”,方向指示信号灯简称“箭头灯”,倒计时交通信号灯简称“倒计时数字灯”。倒计时数字灯可以提供红灯变绿灯或绿灯变红灯的时间提示,因此,准确且快速的倒计时数字灯识别系统,可以在辅助驾驶和无人驾驶系统中提供很好的辅助作用,以减少交通事故的发生。
当前的辅助驾驶和无人驾驶交通信号灯识别方法,无论是基于图像处理、机器学习或深度学习,大多是以圆形灯和箭头灯为研究对象[1-7],较少针对倒计时数字灯。如刘珂琪等提出的基于图像增强的交通信号灯识别方法,先采用迭代法对原始图像进行处理,然后增强HSV色彩空间中V通道图像的亮度信息,再通过颜色阈值筛选出候选区域,最后通过计算候选区域面积、宽高比来实现交通信号灯的识别[8]。余泽东提出的基于otsu算法和Hu不变矩的交通信号灯识别方法,先对图像进行预处理、形态学操作和顶帽(top-hat)操作,以提升候选区域的亮度,然后采用otsu算法,设定自适应阈值选取,进行二值化处理,提取各区域轮廓的面积、周长、Hu不变矩筛选检测交通信号灯候选区域,最后利用交通信号灯HSV色彩空间中的H分量的分布差异,通过颜色直方图来判断信号灯的颜色[9]。邓天民等基于YOLOv5算法进行改进,通过简化主干网络中卷积层的数量来提高特征提取效率,并对残差组件进行密集连接和多层次跨连接,以增强网络特征融合能力,提升了算法对交通信号灯的检测与识别能力[10]。
在以上研究的基础上,本文提出基于YOLOv5、图像处理、OCR三者相结合的两种倒计时数字灯检测与识别方法。
本文所设计的基于“图像处理+OCR”的传统倒计时数字灯识别方法流程如图1所示,主要分为3步:
(1)图像预处理。
(2)字符分割(提取“倒计时数字”)。
(3)OCR识别倒计时数字。
图1 图像处理+OCR的数字灯识别算法流程
图像预处理主要是为了使图像中的交通信号灯感兴趣区域与图像背景形成较大反差,为倒计时数字灯的字符提取创造一个良好的分割环境,主要包括:图像尺寸归一化、图像反转变换、RGB色彩空间转HSV色彩空间、图像滤波处理等,这里介绍两个关键的图像预处理步骤:
1.1.1 图像反转
由于交通信号灯正常工作时处于强发光状态,而光具有发散性,容易在交通信号灯周围产生光晕现象。光晕会使交通信号灯整体形状出现变形,不利于后续倒计时数字的提取与识别,图像反转可利用交通信号灯发光能力强与背景反差大的特点,可有效处理光晕现象造成的不良影响。图像反转数学表达式如式(1)所示:
g’=255-g
(1)
式中,g表示原图像的像素值,g’表示反转后图像的像素值。
图像的反转就是将图像的亮色发光区域变暗,使图像的暗色区域变亮,图像反转前后的效果如图2所示。由图2可以看出, 图像反转将发光的交通信号灯区域都转变为黑色,将光感强度较弱的光晕变为红色,如此不仅使得交通信号灯的形状轮廓变得更加规整、凸显,而且可有效抑制光晕的影响,为后续的字符分割奠定了一个良好的基础。
(a)原图像 (b)反转后图像图2 图像反转处理效果
1.1.2 RGB转HSV色彩空间
通常使用相机等图像采集设备获取的图像一般为RGB格式彩色图像,但RGB图像易受光照影响,不利于图像区域的分割,而HSV色彩空间有色调(H)、饱和度(S)、亮度(V)三个通道,对光照敏感度低,可以更好地区分色彩饱和度不同的区域。交通信号灯在正常工作情况下是处于强发光、色彩饱和的状态,这里利用HSV颜色空间中的S通道将色彩饱和的交通信号灯的亮色区域凸显出来,对交通信号灯感兴趣区域进行区域分割。
首先RGB转HSV色彩空间原理依据的是公式2),将R、G、B的值分别除以255,使取值范围从0~255变为0~1。
(2)
然后依据公式(3)筛选出R’,G’,B’的最大值和最小值,求出二者之差。
(3)
最后分别依据弧度计算公式4),饱和度计算公式5),亮度计算公式(6)计算出H、S、V三通道的值。
(4)
(5)
V=Cmax
(6)
RGB转HSV效果如图3所示,其中彩色图像为原RGB图像,黑白图像是转化后HSV中的S通道图像。可以看出,无论是对于红色交通信号灯还是绿色交通信号灯,利用S通道都可以很好地将饱和度较强的交通信号灯亮色区域凸显出来,并使得图像其他非亮色区域变暗,非常有利于交通信号灯区域的分割与提取。
图3 HSV中的S通道图像
经过预处理后的图像已经为字符分割与提取打下了一个良好的基础,经过图像二值化、形态学滤波、连通域标记、圆形度特征筛选、高宽比特征筛选、区域面积筛选、排序等操作后,即可提取完整的倒计时数字,下面介绍字符分割与提取的重要步骤。
1.2.1 图像二值化
图像二值化是图像处理中常用的区域筛选方法,它利用目标和背景灰度值的差异将图像分为两个不同的层级。如图3所示,在图像预处理后的S通道图像中,倒计时数字呈现为亮色,背景呈现暗色,因此图像二值化可以很好地将交通信号灯感兴趣区域分割出来。如图4所示,经过对S通道图像进行图像二值化处理后,已经很好地将交通信号灯感兴趣区域分割出来,但同时也提取了一部分如车尾灯之类的噪声区域,由于车尾灯等发光体发光强度比起交通信号灯要弱很多,所以提取的噪声点比较零散。
图4 二值化处理后的S通道图像
1.2.2 形态学滤波
形态学操作主要包括膨胀、腐蚀、形态学开操作、形态学闭操作四类,在图像处理中常用作处理区域提取不完整或者区域连体等问题,同时也是滤波降噪的好方法。将二值化处理后的S通道图像先腐蚀后膨胀,如图5所示,经过腐蚀和膨胀操作,可直接将图像上小的噪声点腐蚀掉,并且可以使交通信号灯的边缘变得更加平滑。
图5 经过腐蚀与膨胀后的图像
1.2.3 连通域标记
连通域标记可以将经过阈值分割出来的整体区域再分割成一个个小的区域,以更好地实现字符分割,为倒计时数字的提取作铺垫。这里对腐蚀与膨胀操作后的图像再进行连通域标记,如图6所示,不同颜色的区域就是连通域分割的效果,已经很好地将倒计时数字灯、箭头灯、圆形灯及其他噪声点单独分割出来。
图6 经过连通域标记后的图像
1.2.4 字符提取
在不同十字路口,根据不同距离采集了500幅交通信号灯图像(含箭头灯、圆形灯、数字灯),最近约为10米,最远约为100米。如表1所示,分别对倒计时字符(0~9),圆形灯、箭头灯的高宽比、圆形度进行了统计,其中倒计时字符的高与宽之比(h/w)为1.53~4.83,圆形度为0.12~0.32;而箭头灯与圆形灯的高宽比(h/w)为0.68~1.12,圆形度为0.45~0.96,并且很多噪声点的圆形度相比倒计时数字更高,所以依据宽高比(大于1.5)和圆形度(小于0.35),就可将连通域标记后的绝大部分噪声区域滤除,筛选出倒计时字符。此时图像中剩下来的噪声一般都是一些毛刺噪声点,再经过形态学滤波操作,剩下来的噪声点的像素面积将更小,这里的像素面积指的是像素点的数量统计值,绝大多数噪声区域的像素点数一般都在100以内,而统计出来的大约50米以内的圆形灯、箭头灯、数字灯的像素点数都远在100以上,因此再根据像素面积筛选基本上可以完全滤除数字以外的其他噪声点。如图7所示,经过圆形度、高宽比和面积筛选后的连通域标记图像,已经滤除了噪声区域,并将完整的倒计时字符提取出来。
表1 交通信号灯特征统计表
图7 倒计时数字提取后的图像
本文选用的是基于Halcon的MLP工业数字OCR,如图8所示,将“图像处理+OCR”方法提取到的倒计时字符送入OCR,OCR准确识别了字符。但实验采用传统倒计时数字灯识别方法对500张倒计时数字灯图像对进行测试,仅准确识别了其中的310张,识别准确率为62%(每张图片识别时间花费约0.58秒),原因是当交通信号灯距离较远时(50米以外),交通信号灯像素点区域小,加上周围的车尾灯、LED广告牌光照等噪声干扰严重,导致噪声难以被滤除干净,以至于OCR识别过程中出现较多错误,但该方法对于50米以内距离较近的倒计时交通信号灯识别效果较好。
图8 图像处理+OCR识别后的图像展示
由于前面所设计的“图像处理+OCR”倒计时数字灯识别方法在交通信号灯距离较远时受噪声干扰太大,无法很好地提取到倒计时字符,所以本文在这种方法的基础上提出基于“YOLOv5+图像处理+OCR”的倒计时数字灯识别方法,具体流程如图9所示。
图9 YOLOv5+图像处理+OCR的倒计时数字灯识别流程
YOLOv5算法在COCO数据集上训练好的模型可以识别80个类别,包含“traffic light”这个类别,所以首先调入训练好的YOLOv5模型,并对模型最后输出层类别索引值进行调节,使模型只检测“traffic light”这一个类别。如图10(a)所示,YOLOv5模型在检测目标时生成三个预测框分别将箭头灯、圆形灯和倒计时数字灯框住,并根据公式(7)和公式(8)计算预测框坐标,可将交通信号灯感兴趣区域提取出来。
(7)
(8)
式中,(xl,yl)和(xr,yr) 分别表示预测框的左上角坐标和右下角坐标,(bx,by)表示预测框的中心坐标,(bw,bh)表示预测框的宽和高。依据此方法,YOLOv5模型提取到如图10(b)、(c)、(d)所示的三种交通信号灯ROI,但这里只需要倒计时数字灯ROI,所以要将YOLOv5模型提取到的箭头灯和圆形灯ROI滤除,依据图10中三种交通信号灯ROI尺寸属性可见,箭头灯与圆形灯ROI的高与宽之比(h/w)接近3,而倒计时数字灯ROI其高与宽之比接近于1(0.7 提取到倒计时数字灯ROI后,再按照上述基于“图像处理+OCR”的倒计时数字灯识别方法中的图像处理方式,对数字灯ROI进行图像反转、RGB转HSV色彩空间、S通道图像二值化、连通域标记、字符提取操作即可提取完整的倒计时字符,然后将提取到的字符送入OCR中进行识别,其识别效果如图11所示。由于该方法先提取数字灯的ROI,再提取ROI中的字符,这有效避免了许多噪声的影响,使得后续图像处理与OCR识别速度更快,效果更为稳定。经过对500张包含数字灯的图像进行测试,YOLOv5准确检测到数字灯ROI区域478张,且OCR准确识别了ROI中的倒计时数字,识别准确率达95.6%,每张图片识别时间花费约为0.10s,相比“图像处理+OCR”识别方法有很大的优势。 图11 基于YOLOv5+OCR的倒计时数字灯识别效果 本文提出了两种倒计时交通信号灯识别方法,第一种是基于“图像处理+OCR”的传统方法,该方法对近距离(50米以内)倒计时交通信号灯识别效果较好,但当距离较远时,由于噪声影响过大,识别精度一般。第二种是基于“YOLOv5+图像处理+OCR”的方法,该方法在第一种方法的基础上进行了改进,可有效筛选出倒计时数字灯的ROI,并滤除噪声影响,识别精度较高,在测试数据集上的识别准确率达95.6%。另外,第二种方法对于复杂场景中提取目标区域ROI提供了很好的思路。2.2 字符提取与OCR识别
3 总结