基于遗传优化与深度学习的交通信号灯检测*

2019-09-04 03:06郭宇昂陈超义李克强
汽车工程 2019年8期
关键词:光斑信号灯分类

熊 辉,郭宇昂,陈超义,许 庆,李克强

(清华大学车辆与运载学院,汽车安全与节能国家重点实验室,北京 100084)

前言

信号灯检测研究是先进驾驶辅助系统的重要组成部分,在传统汽车过渡到自动驾驶汽车的过程中,起着不可或缺的作用。因此,信号灯检测的研究受到了国内外学者的广泛关注[1-2]。20世纪90年代初期的信号灯检测只能通过固定位置的相机拍摄信号灯,并借助背景差分算法完成检测功能。随着技术的发展,现在的研究主要针对基于车载相机的动态信号灯检测,设计特征提取器和分类器,本文中也是基于车载相机的信号灯检测进行研究。

在基于车载视觉的信号灯检测研究中,传统的信号灯检测方法主要围绕着颜色信息和边缘形状等人工设计特征[3],包含梯度方向直方图特征(HOG)[4],局部二值模式(LBP)[5]和类 Haar特征(Haar-like)[6],并利用 SVM[6]或 AdaBoost[7]等分类器进行分类。Jang等人[8]先基于形态学运算获取信号灯连通区域,再利用提取HOG特征和SVM分类。文献[9]中基于模糊逻辑聚类进行颜色分割,使用标记区的密度和外部邻接区域的密度进行判别,并采用高斯分布验证边框内的像素是否满足交通灯要求。虽然这些特性能够很好地定位到信号灯,但也容易将尾灯、树叶等背景误判为信号灯。随着软硬件的快速发展,深度神经网络展示出强大的通用物体检测性能[10-11]。

Weber等[12]基于简单的卷积网络 ConvNets[13]和全连接网络FCN[14]设计的DeepTLR网络来检测和分类信号灯。文献[15]中采用实时性较好的YOLO模型用于信号灯检测,但召回率性能有待进一步提高。

上述信号灯方法使用了SVM或Adaboost等传统的机器学习方法和YOLO等深度学习方法,在特定场景下有较好的识别性能,但还存在以下改进空间:通用深度学习检测算法不适合信号灯这类小物体检测;由信号灯种类变化带来的滑动窗口遍历搜索的问题没有得到较好的解决;误识别率较高,识别性能和实时性能的平衡难度大。因此,本文中提出基于遗传优化算法和深度学习模型的交通信号灯检测方法,可快速准确地识别交通路口的红绿信号灯。在已公开LISA交通信号灯[3]上进行的对比试验说明,该方法能有效识别并清楚区分不同类别的信号灯。

1 方法概述

本文中所提出的交通信号灯检测方法可以分为两部分:基于遗传算法的信号灯候选区域生成和基于深度网络模型的信号灯检测方法。本文中研究重点为第一部分,由信号灯共用特征区域提取、候选区域参数采样和候选区域参数优化3部分组成。提出方法的系统架构示意图如图1所示。

图1 提出的信号灯检测方法的架构示意图

该方法首先借鉴图像特征区域提取的思想,设计了针对所有信号灯光斑区域的共有特征区域提取方法,在保证低漏检率的原则下,快速搜索交通信号灯可能存在的位置;接着在检测到的共有区域周围,利用重要性采样方法,对目标候选区域参数进行初始化;再基于遗传算法对候选区域参数进行优化,保障信号灯目标的定位精度;最终将生成的目标候选区域送入深度卷积神经网络,过滤掉分值较低的误检的候选区域,即背景区域,同时获得候选区域的分类和定位结果,从而实现交通信号灯目标的快速定位和准确分类。

2 基于遗传算法的信号灯候选区域优化

2.1 信号灯共用特征区域提取

针对交通信号灯,考虑不同种类信号灯所共有的特征,从而判断当前场景中是否存在交通信号灯。通过搜索这一共有特征,可快速定位可能包含目标的信号灯矩形面板区域。不同种类的交通信号灯都包含了“光斑”这一显著元素,如图2所示,它具有较高的相似性和较强的分辨力,即相同类别间的方差较小,不同类别内的方差较大,便于从当前图像帧背景中有效地辨别出交通信号灯,因此可以通过搜索信号灯光斑区域来确定可能出现信号灯的区域。

图2 信号灯共有特征区域定义

定义信号灯共有特征区域为信号灯的光斑区域,为后续扩展信号灯整个矩形面板(包围框)的候选区域做准备。如图2所示,展示不同种类信号灯共有特征区域(H/3的正方形)和高度为H的整个面板区域的位置关系示意图。若只存在一个信号灯,则光斑区域和面板区域的高度比例为1∶1。

该共有特征区域是位于信号灯上部或下部的正方形区域,正方形边长与信号灯宽度近似相等且均约等于信号灯高度的1/3。

定义好信号灯的共有特征区域后,在保障低漏检率的原则下,对比ACF算法[15]后,选择使用颜色阈值分割、图像形态学处理(膨胀,腐蚀)和连通域提取算法来快速检测信号灯的区域,存在的误识别可以通过后续分类步骤过滤。受摄像机性能和实际场景的约束,颜色阈值分割得到的结果并不能很好地刻画信号灯光斑的形态,因此需要使用形态学处理方法,对图像进行腐蚀和膨胀。经过形态学处理后,信号灯光斑就拥有了较明显的辨识度。此时可通过连通域提取的方法找出图像中可能存在的信号灯的共有特征区域——光斑,如图3所示,过滤面积阈值为16个像素。信号灯光斑的标记框具有一定的几何特征,例如光斑的标记框长宽比接近1∶1,光斑标记框的面积通常大于某一固定值。根据这些特征,可以对提取到的标记框做进一步筛选,减少无效标记框的数量。

图3 共有特征提取示意图(无漏检)

2.2 候选区域参数采样

信号灯候选区域由信号灯光斑通过映射模型生成。信号灯候选区域需要能充分覆盖信号灯真实位置,因此一个信号灯光斑需要对应生成多个信号灯候选区域。图4所示为检测到的信号灯光斑与生成的多个信号灯候选区域之间的关系示意图。其中白色虚线表示检测到的信号灯光斑,白色实线B1~B5表示由光斑生成的多个信号灯候选区域,可以看到众多的信号灯候选区域中,B1能很好覆盖了信号灯区域。因此后续信号灯候选区域优化的目标是:生成至少一个类似B1这样与真实目标重叠率高的候选区域。

图4 信号灯共有特征区域与候选区域关系示意图

式中:c为矩形目标框的中心点;lx,ly,lw,lh分别为检测到的信号灯光斑与信号灯真值框之间的中心点横坐标、中心点纵坐标、宽度和高度的映射参数。

根据式(1)可得4个映射参数的计算公式为

信号灯候选区域生成算法的一个关键点在于生成的目标候选区域框尽可能覆盖所有可能存在信号灯的区域,这就要求参数既要有代表性,又要分布广泛、覆盖面大,根据式(2)计算获得的 lx,ly,lw,lh4个映射参数的分布图如图5所示。常见的采样方法有蒙特卡洛采样、均匀采样和重要性采样。图6为不同采样方法对比结果。由图可知,相比于均匀采样法,重要性采样法的样本更多集中在高概率区域;相比于蒙特卡洛采样法,重要性采样法的样本分布更加广泛,更具有多样性。故采用重要性采样进行映射参数的初始化采样。

图 5 lx,ly,l w,l h参数分布图

2.3 候选区域参数优化

基于重要性采样得到的映射参数的初始化采样结果,采用遗传算法对重要性采样得到的参数进行迭代优化,进一步提高候选区域的召回率,这有助于在后续的检测过程中保障交通信号灯这一前景目标的低漏检率,从而提高检测精度。

图6 不同采样方法结果分布

表1为遗传优化算法用于候选区域参数优化。将使用重要性采样得到的初始参数看作初始种群。种群中的每个个体是一组待优化参数pi,变量个数为4N,为减少异常数据和运行速率,每组变量有效取值范围为图5参数分布图中99.5%区域(两条虚线间);由于适应函数用来表示种群的好坏,因此将当前种群生成的信号灯包围框与信号灯真值框的重叠率看作适应函数值。在计算适应度时,先保留重叠率大于50%的包围框,并求出与每个真值框有最大重叠率值的包围框,再将所筛选的包围框的重叠率值求平均,作为个体的适应度。

表1 遗传算法用于候选区域参数优化

根据个体的适应度,采用轮盘赌的方式选择适合的个体,并利用MATLAB软件自带优化工具包中的gaoptimset和ga函数进行迭代进化:采用上面介绍的初始种群、变量范围、选择函数和适应度函数,以及默认的交叉函数和变异函数;遗传优化的结束条件为到达200次的最大进化次数或连续超过50次迭代没有进化。

通过使用遗传算法对参数初始值进行优化,重叠率阈值为0.5时,在公开数据集的测试集上达到了91.8%的召回率(文献[15]中YOLO_V3_1模型的最高召回率为88.91%),直观地验证了遗传算法对信号灯候选区域优化的有效性。算法生成的信号灯包围框位置更加精准,为后续信号灯分类奠定了良好的基础。

3 基于深度网络模型的信号灯分类

设计一种基于深度网络模型的信号灯分类算法,该算法参考已有研究成果[16]中的Fast RCNN融合框架,通过更改其网络结构,使其更适合应用于信号灯分类。该算法的输入为原始图像和基于遗传优化算法生成的信号灯候选区域位置,输出为各信号灯候选区域的位置信息和类别标签。

在原始的Fast R-CNN中目标的候选区域是通过选择性搜索(selective search,SS)[11]方法得到的。为了更好适应交通信号灯目标的特性,本文中使用上述介绍的信号灯目标候选区域方法代替SS提取的候选区域,然后使用VGG16的深度卷积基础网络来计算特征图,如图7所示;再定位各候选区域在特征图上对应的位置,并使用池化层将其转换为尺度相同的特征图;最后使用全连接层将尺度一致的特征图拉伸成一列表示特征向量,采用Softmax回归分类器进行目标分类,输出包围框和目标分类的结果。

图7 基于深度卷积神经网络的分类结果图

4 试验结果分析

为验证提出的交通信号灯检测方法的性能,使用公开的LISA信号灯数据库训练并测试提出的方法。该数据集是由加州大学建立并公开的应用于智能车辆视觉研究的信号灯数据集,标记有信号灯的真值框和信号灯光斑的真值框,箭头均为左转方向。本实验不考虑黄灯,即本实验将信号灯分为4类:红色圆形信号灯、红色箭头形信号灯、绿色圆形信号灯和绿色箭头形信号灯。

为对比候选区域的性能,采用通用标准[16]的召回率 重叠率曲线(Recall-IoU曲线)进行候选区域性能的评价,对比了不同参数设置下的结果。提出的方法名称“IP-FUSION-0.2-40_union”中,IP表示信号灯共用特征区域提取方法,FUSION表示融合了HSV颜色空间,0.2表示候选区域参数初始化采样时共有特征区域和真值框的匹配阈值,40表示遗传优化中一个共有特征区域对应候选区域的个数。图8为不同候选区域生成方法的对比。由图可知,该方法平均召回率为0.630,比基准算法提高了26%。

图8 候选区域生成方法对比

为对比分类的效果,采用精度 召回率曲线(PR曲线)进行分类结果的评价[15],选择的基准算法为文献[16]和文献[17]中的最佳分类器ACF方法。对比结果如图9所示,区域越靠近右上方性能越佳。右上方的曲线为本文中提出方法对红色圆形信号灯、红色箭头形信号灯、绿色圆形信号灯和绿色箭头形信号灯识别的单独性能曲线,左下方的曲线为不同参数设置下ACF方法对信号灯识别的整体性能曲线。与ACF方法对比,本文中提出的方法在相同的召回率下,有更高的精度,从而验证了该方法的有效性。

图9 本文中方法与不同设置的ACF方法性能对比

5 结论

针对传统目标识别和现有深度学习方法用于交通信号灯检测的缺陷,就小尺寸物体召回率效果不佳、复杂场景下目标误检漏检频繁、识别性能和实时性能的平衡难度大等挑战性问题,综合考虑了传统方法和深度学习方法的优缺点,设计了结合遗传优化算法及深度学习的目标检测框架。

围绕不同形状的交通信号灯具有的共有特征区域,设计了基于遗传优化的候选区域生成方法,由于生成的信号灯候选区域包含了信号灯背板的特征,因此避免了只考虑信号灯光斑所造成的误识别问题,提高了信号灯检测算法的准确度。接着,结合基于Fast R-CNN深度学习框架设计的网络模型,通过修改网络结构,使其更适合应用于信号灯这类小物体的分类,实现了信号灯的准确定位和分类。通过在公开交通信号灯数据库上的实验对比分析可知,本文中融合遗传优化和深度学习的信号灯检测方法的有效性是可以保证的,结论如下。

(1)设计了一种保障召回率的交通信号灯共有特征区域提取算法。由于不同种类的信号灯都具有光斑且光斑具有明显的颜色特征,将信号灯光斑视为共有特征区域,并使用基于颜色阈值分割、图像形态学处理和连通域提取算法的方法可以快速搜索各光斑在图像中的位置,保障了较高的召回率。

(2)提出了一种适用于交通信号灯的基于遗传优化的候选区域生成算法。首先,利用遗传算法优化映射参数,扩展光斑区域,使其生成可以覆盖整个信号灯的区域。生成的信号灯候选区域包含了信号灯背板的特征,避免了只考虑信号灯光斑所造成的误识别问题,提高了信号灯检测算法的准确度;再设计一种结合遗传优化的信号灯分类算法,常用的深度卷积神经网络不适合应用于信号灯这类小物体,基于Fast R-CNN检测算法框架,通过修改网络结构,融入遗传优化生成的候选区域,使其更适合于交通信号灯这类小物体的分类。

猜你喜欢
光斑信号灯分类
有趣的光斑
主角光环
有趣的光斑
夏末物语
信号灯为什么选这三个颜色?
按需分类
教你一招:数的分类
说说分类那些事
交通信号灯
给塑料分分类吧