采用Ranking Saliency算法改进的交通标志检测方法
2019-08-13周永霞
蔡 凯,周永霞
(中国计量大学 信息工程学院,浙江 杭州 310018)
由于无人驾驶的蓬勃发展,车载辅助系统是近年来研究的热点。其核心的步骤之一便是如何能够快速、准确地理解前方道路的信息。在这之中,由于交通标志所含有的有效信息最多,因此对交通标志的快速检测与识别是驾驶辅助系统的关键[1-2]。
近年来,国内外的学者对交通标志的检测与识别有诸多研究。在传统算法中,一方面,通过交通标志的颜色进行检测,KAMADA H等人[3]提出了根据特定的RGB颜色分量的强度与RGB的强度之和的颜色比的方法。ESCALERA A等人[4]也提出了一种通过RGB相关性阈值进行分割的方法。MIURA J[5]提出基于YUV的方法,ARNOUI P[6]提出通过HIS彩色空间进行检测的方法;另一方面,通过交通标志的形状进行检测。MALDONADO-BASCON S[7],LIU H[8]提出了基于径向对称的算法。MATHIAS M等人[9]分别将现有的部分交通标志检测算法在德国交通标志数据集和比利时交通标志数据集进行性能评估。
随着深度学习的发展,业界普遍认为深度学习在图像方面的表现是优于某些传统方法的。尤其在目标检测方面取得了巨大的进展,通过诸多学者的不懈努力,提出了SPPNet[10],Fast R-CNN[11],Faster R-CNN[12],YOLO[13]和SSD[14]等诸多目标检测算法。使得基于卷积网络的目标检测算法在检测速度和检测精度上都有了大幅度的提高。JIN J Q等[15]提出了使用铰链损失随机梯度下降的优化神经网络的方法。QIAN R等[16]提出了一种基于区域的深度卷积神经网络的方法。
在数据集方面,交通标志的公开数据集数目远远落后于计算机视觉其他领域的数据集数目。其中,比较知名的数据集有德国交通标志检测基准数据集(GTSDB)、德国交通标志识别数据集(GTSRB)等,但以上数据集均来自国外,交通标志的类型和形状与我国的交通标志有一定的差异。随着我国对无人驾驶的重视,由清华大学与腾讯共同合作收集了Tsinghua-Tencent 100K数据集[17]。
本文通过对比不同检测算法的检测时间和检测召回率,采用了检测召回率与速度最优的YOLO V3算法。但是,该算法在检测目标框的精度上不太理想,因此本文结合Ranking Saliency算法[18],对检测得到的位置进行二次修正。通过实验可知,结合后的算法能够有效提高检测目标框的交并比(Intersection-over-Union, IoU)。
1 算法分析
1.1 目标检测
随着深度学习的发展,目标检测在计算机视觉上取得了巨大的成功。主要的目标检测算法有Faster R-CNN,YOLO以及SSD。本文分别通过检测时间、检测召回率对比分析不同算法的性能,从而确定本实验所需模型。
1.1.1 目标检测算法
目标检测算法分为两类,一类是基于候选区域的目标检测算法,另一类则是单级式目标检测算法。
基于候选区域的目标检测算法主要代表有R-CNN,Fast R-CNN和Faster R-CNN。该类型算法的主要思想是首先通过选择性搜索产生整张图片中的若干个候选框,之后通过神经网络提取候选框的图像的特征,将得到的特征图传入训练好的神经网络中进行识别。由于选择性搜索法只能在CPU上运行且运行速度较慢,故算法的实时性不可避免就大打折扣。虽然Faster R-CNN通过使用候选区域网络代替了原本的选择性搜索方法,但本质上仍然需要先进行候选区域的选择。改进后的算法虽然使得最终的检测精度有所提高,但是仍不能满足实时性的要求。
单级式目标检测算法,主要代表有YOLO和SSD等。该类算法的主要思想是不再使用类似选择性搜索的方式先产生若干候选框,而是通过预先假设锚点,即预先假设预测框的大小。算法首先利用神经网络对图像进行特征学习,对特征图的每一个区域在滑窗的同时,进行不同锚点尺度的预测。这样会在滑动的同时预测出结果,从而提高算法的时间性能。
本文通过检测召回率以及对检测时间的评估,最终确定使用YOLO V3算法。
1.1.2 YOLO V3
在YOLO V1和YOLO V2之后,为了进一步提升模型的性能,算法优化了模型结构并且引入特征金字塔网络(FPN)[19]的思想,使得模型的性能和效率进一步加强。主要提升有以下几点。
其一,YOLO V3改善了前两个版本的特征提取器。使用DarkNet 53网络结构模型,模型主要由3×3和1×1的卷积核构成,并且借鉴了ResNet跳过连接的思想。除此之外,DarkNet 53相比与ResNet有更低的BFLOP(十亿次浮点数运算),但是能够以两倍的速度获得相同的分类精度。
其二,YOLO V3引入了特征金字塔网络的思想,这样使得算法在多尺度检测上有较好的表现,能够有效解决小目标检测的难题。YOLO V3分别预测三种不同尺度,并且在每个尺度中又设置有3个不同比例的锚框。特征金字塔网络分别对得到的不同尺度的图片构建两条路径。一条为使用卷积操作从下到上的特征提取路径,另一条则是由上到下重新构建高分辨率层的路径。
通过对Tsinghua-Tencent 100K数据集的分析,交通标志大部分为小目标,因此使用YOLO V3算法进行小目标的检测,可以取得其余目标检测算法如Faster R-CNN和SSD达不到的效果,具体的实验结果参考本文2.3节。但是,YOLO V3算法在定位精度上却有所偏差。
1.2 检测框的修正
由于上文提到的YOLO V3在检测框的定位上不准确,会使得在后续的分类上损失精度。因此,如何提高定位的精度是提升分类精度的关键。本文提高定位精度的主要思想是在通过YOLO V3目标检测算法检测出初始的检测框之后,通过进一步的算法结合,修正所得的检测框,从而提高检测框的定位精度。
1.2.1 Ranking Saliency算法
Ranking Saliency算法通过模拟人的视觉特点,提取图像中的显著区域。由于交通标志一般均为较醒目的颜色,算法选取自底向上基于数据驱动的注意力机制。主要思想是仅通过感知数据的驱动,将人的视点指导到场景中的显著区域。正因为交通标志会与周围环境有较强烈的反差,所以通过图像的颜色、亮度、边缘等特征表示,判断它与周围的差异,从而计算图像的显著性。算法的主要思想是根据公式(1)计算结点的显著性。
f*=(D-αW)-1y。
(1)
式(1)中,D表示图的度矩阵,W表示权重矩阵,y表示指示向量;当前结点是种子结点y取1,否则y取0。f*表示当前计算所得到的显著性值。通过式(1)计算每个结点的显著性从而得到排名分数。
Ranking Saliency算法主要通过边框大多为背景的先验信息,将前景的信息通过流行排序的方法加强,最后得到显著性物体。
最终选择使用Ranking Saliency算法对检测框进行二次修正,通过实验表明,算法能够有效提高检测位置的精度。
2 实验结果
2.1 数据集的选择
本实验采用清华大学与腾讯合作建立的Tsinghua-Tencent 100K数据集。其中,训练集共有6 105张,测试集共有3 071张。该数据的特点是高分辨率(2 048×2 048),并且采集的交通标志全部来源于中国的城市与乡村,具有较好的代表性。但是,此数据集的交通标志主要的特点为小尺寸的涵盖比很高。具体分布情况如表1。
表1 交通标志尺寸分布
由表1可知,对于2 048×2 048高分辨率的图像,交通标志的分布主要集中在160×160分辨率以下,可见小目标的含占比极高,这就对目标检测算法造成了很大的挑战,因为目标检测算法在小目标检测方面的表现并不理想。
2.2 实验环境
本实验在Linux环境下,使用4块Titan X显卡服务器进行训练。通过迁移学习的方法,首先取得在COCO数据集上预训练的权重,之后将得到的训练权重结合交通标志训练集进行再次进行30 000次训练,其中Dropout为0.8,Batch size为32,使用RMSprop优化器,初始学习率为0.004,Momentum中β为0.9。
2.3 目标检测算法对比
为验证不同目标检测算法在检测召回率以及检测时间中的表现。本文通过对比Faster R-CNN,SSD和YOLO等算法,在特征提取阶段分别结合现有的表现优秀的网络结构,如ResNet,Inception-Net与MobileNet等。最终不同检测模型在检测时间上的结果如表2。
表2 不同模型的检测速度对比
通过表2分析可得,在结合不同的网络模型下,YOLO V3和SSD有较高的实时性,处理一张图片的时间基本需要80 ms左右,但是,对于Faster R-CNN,模型的平均处理时间为200ms左右,其中更有Inception-ResNet V2模型,所耗时间达到了1 000 ms。对比可得,SSD和YOLO的速度基本上比Faster R-CNN快3倍左右,最多快12倍。因此,从实时性来看,SSD和YOLO V3更适合实时要求。
其次,本文对不同模型的检测召回率做了分析,分别统计了不同阈值情况下,各算法可以检测到的交通标志个数,具体情况如表3。表3中只体现每种算法结合不同模型时平均表现最好的情况。置信度阈值从0.5开始,因为一旦置信度低于0.5,则已经不能有效确保检测到的目标为交通标志。
表3 不同算法在不同阈值下的召回率
Table 3 Recall rate of different algorithms at different thresholds
检测算法与模型阈值召回率/%Faster R-CNN(InceptionV2)0.592.20.690.40.788.20.885.00.979.0YOLO V3(DarkNet 53)0.598.40.698.00.797.40.896.50.995.0SSD(MobileNet V2)0.583.70.681.90.777.40.872.30.963.8
通过分析表3可知,在不同阈值下,YOLO V3的检测召回率遥遥领先,比SSD平均高出20%,比Faster R-CNN高出10%,YOLO V3在小目标的检测上优势明显。因此,本文采用YOLO V3算法实现交通标志的检测。
2.4 检测框修正
由于速度的提升,检测框的定位精度受到了影响,部分检测框定位不准确如图1。为了解决该问题,本文提出结合Ranking Saliency算法对检测框进行二次修正。评价标准为IoU,公式如(2)。
(2)
式(2)中,Overlap表示真实框和检测框交集的面积,Union表示真实框和检测框并集的面积,IoU越接近1则表明目标检测的位置越准确。
图1 算法检测结果Figure 1 Algorithm detection result
通过分析可知,使用YOLO V3检测算法所得到的检测框有一定的误差,不能得到完整的交通标志,这样会对后续分类精度产生影响。因此,需要结合本文提出的Ranking Saliency算法对其进行二次修正。
本文分别计算了单使用YOLO V3算法得到的IoU和结合Ranking Saliency算法得到的IoU。具体情况如表4。去掉测试集中IoU大于0.7的图片,然后再进行目标检测,结果如表5。
表4 不同算法的IoU表现
表5 不同算法的IoU(<0.7)表现
由表4和表5可知,YOLO V3检测算法结合Ranking Saliency算法能够使得目标检测算法的精度进一步提高。由此可见,本文提出的算法有较好的效果,可有效的提高了检测精度。算法的效果如图2(a)~(e),其中(a)为YOLO V3算法检测得到的结果图,(b)为对检测得到的图的长宽进行20%的扩充后得到的图,(c)为对扩充后的图进行Ranking Saliency算法检测得到的结果图,(d)是经过对(c)进行阈值分割以及形态学操作后得到的图,(e)为最终分割得到的结果图。
图2 结合Ranking SaliencyFigure 2 Combined with Ranking Saliency
3 结 论
本文主要研究了不同目标检测算法结合不同的网络模型在交通标志检测方面的表现,最终,通过实时性以及检测召回率的评价标准,在Tsinghua-Tencent 100K数据集上YOLO V3取得了十分显著的效果。除此之外,为了解决检测框精度的问题提出结合Ranking Saliency算法,对YOLO V3的检测框进行了二次修正,目标检测的IoU提高了3%~9%。