李 烨,顾晨峰
(上海理工大学 光电信息与计算机工程学院,上海 200093)
交通标志检测系统是辅助驾驶和自动驾驶关键技术的重要组成部分,它利用视觉处理技术从采集到的交通图像中检测出交通标志,并结合其它实时路况信息,对驾驶中的车辆做出安全预警提示,从而提高行车的安全性.但是,在自然环境下的交通标志检测存在很多不确定性因素影响,如远处小且稠密的交通标志,恶劣的天气、相似物的干扰以及光照变化等,对实时地交通标志检测造成了很大的干扰.如何提高对小目标的检测能力及在复杂自然环境检测的鲁棒性具有重要的研究意义.
近年来,深度学习迅速发展,其中卷积神经网络(Convolutional Neural Network,CNN)在目标检测领域取得了可观的成果[1].基于深度学习的目标检测算法主要分为源于R-CNN[2]的一系列两阶段算法和源于YOLO[3]的一系列一阶段算法,代表性的两阶段算法有Fast R-CNN[4]、Faster R-CNN[5]、SPPnet[6]等,一阶段算法有YOLOv2[7]、YOLOv3[8]、SSD[9]、YOLOv4[10]等.这些方法一般是基于锚框的,其原理是通过对预设定的初始锚框进行回归,实现对目标的精准定位.近年来,一种无锚框的一阶段算法正在兴起,如CenterNet[11],CornerNet[12]等,这些算法通过对目标点的检测来生成框,在精度上的表现也十分不错.
目前已有很多学者将目标检测算法应用于交通标志检测中.Zuo[13]等采用Faster R-CNN来对交通标志进行检测.Xiong[14]等提出了一种基于深度CNN并采用区域提议网络[15]的交通标志检测算法.Zhang等[16]在YOLOv2的基础上,根据交通标志的特性,对网络进行裁剪来降低计算复杂度,同时将输入图像划分为小网格,以获得更精细的特征图,保证对交通标志小目标的检测效果.
虽然现有的深度学习方法在常规交通标志检测任务上已取得了一定的成果,但是在面对复杂的自然环境时仍存在局限性,主要原因有两个方面:一是自然环境下的交通标志受到颜色退化、物体遮挡、光照变化以及恶劣天气的影响;二是为确保行车过程的安全,需要提前对远处小尺度的交通标志目标做出实时检测[17].因此在构建检测网络时,既要保证网络对受到环境干扰的弱目标特征的强表征能力,又要防止小目标在经过深层次网络特征提取时丢失细节信息,而且要兼顾检测的实时性.
针对上述问题,提出一种基于注意力机制的多尺度小目标交通标志检测方法(Attention based Multi-scale Small Target Traffic Sign Detection,AMST-TSD).首先构建一种新型特征提取网络,改善小目标细节特征信息在网络传输过程中丢失的问题.同时,设计一种基于空间注意力机制的倒金字塔结构,利用高分辨特征图增强低分辨率特征图显著性区域的检测性能.所提方法在满足实时性的情况下,不仅提高了小尺度交通标志的检测性能,而且对复杂自然环境下的交通标志检测更具鲁棒性.
本文基于YOLOv3框架进行网络架构设计,如图 1所示,网络结构主要由带有反卷积级联结构的特征提取网络(CSPDarknet with DeConvolution,DC-CSPDarknet)及基于注意力机制的倒金字塔结构(Attention based Inverted Feature Pyramid Network,A-IFPN)组成.其中,CSP_Res为跨阶段局部残差模块,Dowmsample为两倍下采样操作,Nonlinear mapping由卷积层conv和非线性激活函数LReLU组成,DBL相较于Nonlinear mapping多了一个批归一化层(Batch Normalization,BN).
图1 基于注意力机制的多尺度小目标交通标志检测方法Fig.1 Detection method based on attention mechanism for small traffic signs
通常情况下更深的卷积神经网络能够挖掘图像中更高级的抽象语义特征,提升网络精度,但随着网络的加深,网络的计算量也大幅提高,导致模型训练困难,并降低了实时性.YOLOv3设计Darknet53的原因是,在精度相差不多的情况下,Darknet53的网络参数比Resnet-101[18]要少得多,计算效率更高.CSPNet[19]也是针对网络计算效率提出的,它能获取更丰富的梯度融合信息,解决深层次网络带来的计算瓶颈,同时可大幅节省计算内存的消耗,并提升网络的精度.其主要原理是将网络结构中复杂卷积模块的梯度信息单独整合起来,通过截断梯度流的方式防止过多重复的梯度信息;没有经过残差块的部分也被单独进行了整合;在更新权重梯度信息时,两部分不包含对方的重复梯度信息,因此可以让网络更容易学习到目标的特征.CSPNet可以和各种特征提取网络相结合,CSPDarknet53就是将CSPNet的思想应用到了Darknet53中.
但是,简单地在YOLOv3的框架下应用CSPDarknet53,对于检测交通标志[20]这样的小目标而言仍然存在问题.YOLOv3是基于图像栅格作为单元进行检测,当输入图像分辨率为416×416时,经过网络的下采样输出的最小分辨率特征图大小仅为13×13,其每个像素点对应的视野为32×32图像patch.通常交通标志在图像中所占的尺寸并不是很大,经过下采样之后在13×13特征图上所占空间非常小甚至消失掉,很难通过这个特征图被检出.另一方面,如图 2中所示,网络下采样后输出的最大特征图分辨率为52×52,其1个像素点所对应的视野为8×8图像patch,这样,对于尺寸非常小的交通标志,经下采样后在此特征图上所占空间也非常小甚至消失掉,而且一个栅格内的多个交通标志可能映射到同一个区域,导致小目标漏检.
图2 交通标志栅格图Fig.2 Raster map of traffic signs
针对以上两个问题,如图 3所示,对CSPDarknet53做改进.首先,裁剪CSPDarknet53中最后一个跨阶段局部残差块(CSPNet with Residual block,CSP_Res),因为其输出的13×13的特征图中很少有交通标志被检出.而且,即使被检出,由于一个目标同时在两个不同尺度的特征图中被检出时,虽然更深层网络所提取特征的信息表征能力更好,因而可能拥有更高的置信度,但其位置信息反而存在更大的偏差,这样网络选择高置信度目标框会造成检测精度下降.其次,将CSPDarknet53的最后一个CSP_Res结构生成的特征图通过反卷积上采样成高分辨率特征图,并采取concat方式将其与各CSP_Res模块输出的浅层特征图相融合,使网络输出的特征图具有更丰富的特征信息.而且,为了更好地利用浅层特征图的信息,对各CSP_Res模块输出的特征图采用1×1的卷积核及LReLU激活函数进行非线性映射,一方面调整特征图的维数,另一方面自适应地提取特征融合所需的细节信息.改进后的特征提取网络在输入分辨率为416×416时,输出特征图的分辨率分别为104×104,52×52和26×26,相比CSPDarknet53提高了一倍,可以直接提升对小目标的检测性能.最后,为了更好地获取的小目标细节信息,在第二个CSP_Res结构中增加两个残差单元,提升高分辨率特征图对小目标细节信息的非线性映射能力.
图3 特征提取网络:(a)CSPDarknet53;(b)DC-CSPDarknetFig.3 Feature extraction network:(a)CSPDarknet53;(b)DC-CSPDarknet
对于交通标志检测,由于受到自然环境下各种因素的干扰,交通标志的特征受到削弱,当经过深层特征提取网络的卷积运算后,可能导致特征丢失,未能被表征.对于小目标的检测而言这一问题更为突出.YOLOv3采用了特征金字塔网络结构(Feature Pyramid Network,FPN)[21]来改善小目标的检测效果,利用特征提取网络3个不同阶段的特征图进行自顶向下的特征融合.通常,目标检测网络深层较低分辨率的特征图包含了更多的语义特征信息,而浅层高分辨率的特征图则包含了更多的目标位置信息.FPN使得浅层特征图中融入更多高层特征图中的高阶语义特征,增强了浅层特征图对目标特征的表达能力.
对于目标检测任务而言,具有目标强表达能力的特征图应当包含经过足够深网络提取到的语义特征和丰富的细节信息.虽然DC-CSPDarknet将浅层网络的细节特征与反卷积后的深层语义特征图在对应尺度上进行了融合,但并未将浅层网络的特征充分融合到每一个输出特征图中,即分辨率较小的输出特征图中并不包含浅层网络的细节信息.为此,引入PANet[22]中自底向上的方式对特征信息进行融合,与之不同的是,这里采用concat而非相加融合.如图 4所示,高分辨率特征图通过2倍下采样后,与前一层的低分辨率特征图进行concat融合.
图4 倒金字塔注意力结构Fig.4 Attention mechanism with inverted pyramid structure
由于低分辨率特征图中的细节信息在经过较深的卷积运算后可能丢失,而高分辨率特征图相比而言具有更丰的目标特征信息,对弱特征目标有更好的表征能力,因此,针对反卷积特征图进一步引入空间注意力[23]机制,利用高分辨率特征图生成的注意系数图自适应加强低分辨率特征图目标区域的显著性[24],以提高目标检测网络的检测性能.如图 4所示,特征图A在经过一系列的卷积特征映射之后,通过下采样将分辨率缩小为原来的一半,得到与特征图B相同大小的特征图D,然后将D通过1×1的卷积核压缩特征图的通道,经过sigmoid激活函数进行非线性映射后生成注意力系数图,并与低分辨率特征图相乘,生成具有局部区域显著特征的特征图E.该结构可表达为:
(1)
式中:FD(3×3)表示步长为2、卷积核大小为3×3的下采样操作,F1×1表示步长为1、卷积核大小为1×1的卷积操作,δ为sigmoid激活函数,FC为concat操作.
实验环境为Ubuntu16.04操作系统,CPU为Intel Xeon E5_2660 v3,GPU为NVIDIA TESLA V100,显存为16GB.深度学习框架采用Tensorflow,并使用GPU进行训练与测试.
数据集为自采及网络爬取的自然环境下的道路交通标志,包括不同时段和天气环境下的高速公路、市区街道、郊野道路等各种道路场景.数据集共包含19000张图片,其中16000张作为训练集,3000张为测试集,图像分辨率为1920×1080.
对于3个预测特征图,每一个对应3种尺度的锚框,一共9个锚框.锚框参数的设置对网络精度有很大的影响,合适的锚框参数应尽量匹配待检测的目标尺度的大小.为此,对训练集采用k-means算法基于交并比(Intersection over Union,IoU)距离进行聚类,来确定锚框的参数,高的IoU值表示预测框与真实边界框具有更好的贴合度,有利于更准确地预测目标边框.
采用多尺度训练的策略,将训练样本下采样到不同的分辨率,即352、416、480、544、608,增强网络对不同尺度目标检测的性能.利用Adam梯度下降优化器进行优化,衰减系数为0.0005,batch_size设为6,训练初始阶段学习率为0.0001,训练30个epoch,第2个阶段学习率调整为0.000001,训练20个epoch.每经过一个epoch的训练后,对测试集进行一次预测,获得的测试集损失如图5所示,其中测试图片的分辨率为544.在初始训练阶段,测试集上的损失收敛较快,稳定到2.1左右,第2阶段在更小的学习率上训练,测试集的损失进一步收敛到1.75左右.从测试集损失值收敛情况来看,AMST-TSD对自然环境下的交通标志检测比较理想.
图5 训练阶段模型在测试集上的损失Fig.5 Loss of the training model on the test set
3.4.1 AMST-TSD有效性分析
为了验证AMST-TSD各模块对复杂自然环境下的交通标志的检测性能,进行如下实验:1)对比Darknet53与CSPDarknet53的性能;2)评估改进后的特征提取网络DC-CSPDarknet对小目标检测的性能;3)评估倒金字塔结构中注意力机制的性能.采用在不同IoU的精度值(Average Precision,AP)进行评估,高的AP意味着对网络检测的目标框越严格.
表1 AMST-TSD有效性分析实验Table 1 Experimental analysis on effectiveness of AMST-TSD
实验结果如表1所示,其中MST-TSD区别于AMST-TSD之处在于未采用注意力机制.
对比表1中第1、3行数据可见,对于同一分辨率图像,在不同的IoU阈值下,YOLOv3采用CSPDarknet53都优于Darknet53,获得了不同程度的精度提升.CSPNet通过对梯度流分流的操作,使其在不同网络路径进行传播,在训练阶段实现了更丰富的梯度信息组合,更好地拟合目标特征.
从第1、4行数据可以看出,与YOLOv3相比,MST-TSD的检测性能有了大幅度的提高.当IoU为0.5时,AP提升了3.2%;随着IoU取值的提高,AP提升更加明显,当IoU为0.8时,AP提升了约15%.
由于输出特征图的大小对目标检测的精度有直接影响,MST-TSD通过对特征提取网络进行结构优化来增大输出特征图的分辨率.相比CSPDarknet53,DC-CSPDarknet不仅使得输出特征图的分辨率增大了一倍,而且通过反卷积自适应级联结构融合了浅层细节信息与深层语义特征,因此MST-TSD对于目标的检出率和定位精度都有了大幅的提升.
对比第1、第2行数据可以看到,输入分辨率为608时相比544精度有了大幅度的提高.MST-TSD正是通过特征提取网络结构的优化来调整输出特征图的分辨率,优化后的特征提取网络DC-CSPDarknet相比CSPDarknet53,不仅输出特征图分辨率增大了一倍,而且通过反卷积自适应级联获得了更丰富的目标细节信息,因此目标的检出率和定位精度上都有了大幅的提升.
对比第4、第5行数据可知,空间注意力机制的设计带来了精度提升.空间注意力模块嵌入在倒金字塔结构中,增强了倒金字塔结构中不同分辨率特征图之间的特征信息流,高分辨率特征图生成的显著性系数图能引导低分辨率特征图对受到干扰的弱特征目标的检出,因而获得了更高的目标检测精度.
由第6行数据可见,当输入尺度为608时AMST-TSD的精度进一步上升,当IoU为0.5时,AP值达到了95.26%,对交通标志有很高的检出率.当IoU为0.7时,AP也达了87.53%,说明目标的定位效果也较准确.因此AMST-TSD对于自然场景下的交通标志检测效果非常好.
综上,AMST-TSD检测性能的提升得益于CSPNet思想的引入、特征提取网络的结构优化、以及基于注意力机制的倒金字塔特征融合结构设计.
为了进一步验证本文算法在实际场景下交通标志检测的有效性,随机挑选出在自然环境下拍摄的交通场景图像进行测试,对改进后的算法与YOLOv3进行可视化对比分析,实验结果如图6所示,为了直观地展示试验结果,我们对图中目标检测区域在右下角做了放大处理.其中图6中(a)(c)是AMST-TSD在实际场景下的交通标志检测结果,图6中(b)(d)是YOLOv3的检测结果.对比可以发现,AMST-TSD在小尺度目标的检测性能上有了很大地提高,而YOLOv3存在较多的漏检情况,而且检出的小目标边框与真实目标的位置偏差较大,目标的置信度值也偏低.对比图6中(a)和(b),可以看到YOLOv3对于远处小尺度的模糊目标存在漏检的情况,而AMST-TSD能够较好地检测出来,说明改进后的算法对小尺度模糊目标的检测也具有很好的鲁棒性.在图6中(c)和图6(d)中,暗场景下的交通标志受到周围复杂背景所干扰,弱化了交通标志的特征,具有一定的检测难度.YOLOv3对于暗场景下交通标志的检测表现的有些不足,出现了漏检,而AMST-TSD可以很好地把暗场景下的交通标志检测出来,表现了更好的泛化性能.
图6 AMST-TSD和YOLOv3的可视化对比Fig.6 Visual comparison between the improved algorithm and YOLOv3
3.4.2 与典型目标检测算法对比
将AMST-TSD与典型的目标检测算法进行实验对比,包括YOLOv3、Faster R-CNN、SSD和RetinaNet[25].采用AP50、AP75、帧率(Frames Per Second,FPS)作为评价指标来评估各算法的检测精度和检测速度,通常,AP50和AP75分别是对算法目标检出能力和定位精度的有效评估.
从表2的实验结果可以看到,当IoU为0.5时,在对比算法中YOLOv3的AP值最高,为90.17%,而AMST-TSD则达到了93.96%,高出约3.8%;当IoU为0.75时,AMST-TSD取得了72.72%的检测精度,相比对比方法中AP最高的Faster R-CNN高出9.9%左右.
表2 不同算法的自然环境交通标志检测实验对比Table 2 Contrast experiment of different algorithms for detecting traffic signs in natural environment
虽然AMST-TSD特征提取网络中反卷积级联特征融合增加了网络的复杂性,但由于裁剪了特征提取网络中最后一个跨阶段局部残差块,以及特征提取网络中引入的CSPNet可以提高网络中计算单元的利用率,提高推理速度.经实验证明在检测速度上,可以看到AMST-TSD的FPS值略逊于YOLOv3,但仍比其它算法有优势,同时本文算法在精度上具有明显的优势,是一个有效的交通标志目标检测算法.
在实际场景应用中,若行车速度在80km/h,即约22m/s.实验中,在PC上推理效率达到24FPS,因此可以有效的在行车过程中实现对交通标志的检测.另外考虑到实际应用场景的有限计算资源,因此检测速率会受到一定的影响.但实际行车的制动距离约为30m,AMST-TSD可以有效检测到100m以外的小尺度交通标志.综和考虑,本文算法可以有效地应用在实际场景的交通标志检测中.
另外从测试集中选取4张不同场景的图像进行效果展示,图7-图10分别给出了密集小尺度目标、目标受遮挡、雨天及夜晚4种场景下AMST-TSD的检测效果,可以看到AMST-TSD都表现出了良好的鲁棒性.
针对现有目标检测算法对于自然环境下的交通标志检测精度不高的问题,提出了一种基于注意力机制的多尺度小目标交通标志检测方法.选用CSPDarknet53作为特征提取网络,通过分析交通标志的尺度特点,优化了网络的结构,并采用反卷积自适应级联的方式将浅层网络的细节信息融合到深层的语义特征图中.设计了基于注意力机制的倒金字塔模型,利用高分辨率特征图中的丰富特征信息生成显著性系数与低分辨率特征图相乘,突出低分辨率特征图中的局部重点区域,显著提高了算法的检测性能,并保持了实时性.有效地解决了自然环境下交通标志检测受到遮挡及恶劣天气等影响的问题.实验结果表明,AMST-TSD对不同自然场景下的交通标志都具有较好的泛化性能,适用于自然环境下的交通标志的检测.