喻清挺,喻维超,喻国平
(1.南昌大学 信息工程学院,南昌 330031;2.国家电网南昌供电公司,南昌 330077)
交通标志检测是自动驾驶和辅助驾驶的重要组成部分,交通标志中含有速度限制、路面状况等信息,是安全驾驶的重要一步,因此,对交通标志进行研究具有重要的理论和现实意义。研究人员已经提出多种交通标志检测方法,在深度学习模型提出以前,交通标志检测方法[1-3]大体分为基于交通标志颜色形状的视觉信息方法[4-5]、基于特征提取和机器学习的识别方法[6-8]等。
自从AlexNet[9]在ImageNet 大赛夺冠后,多种深度学习模型被提出并应用于交通标志检测任务。文献[10]设计一种端到端的全卷积神经网络,其在Tsinghua-Tencent 100K 数据集检测中表现出强大的鲁棒性。文献[11]对Faster R-CNN[12]中的区域建议网络(RPN)接收域进行修改,使模型能够更好地适应交通标志这种小目标。文献[13]通过使用多个1×1 的卷积核,在降低模型计算复杂度的同时提高了检测的实时性。文献[14]提出一种基于多尺度区域的卷积神经网络,其在RPN 中融入上下文信息,能准确检测出较小的交通标志。
由于模型结构设计存在差异,导致各种目标检测模型的侧重点不同:一阶检测器(如YOLO[15]、SSD[16]等)检测速度快,但对交通标志这种小目标并不敏感,精度较低,容易产生误判;二阶检测器(如Faster R-CNN、FPN[17]等)精度高,但速度较慢,对于交通场景这种变化较快的情况,无法及时将信息传递给汽车。为此,本文基于区域全卷积网络(R-FCN)[18]框架提出一种改进的交通标志检测算法。通过对R-FCN 模型的特征提取网络进行简化,以在不影响准确率的情况下提高模型检测速度。引入K-means 聚类算法、在线困难样本挖掘(OHEM)策略和可变形卷积技术,从而提高模型检测精度。
R-FCN 算法由经典Faster R-CNN 算法演变而来,两者同为二阶段检测器。R-FCN 算法先通过特征提取网络提取图像特征并输出特征图,再经过区域建议网络在输出的特征图上提取感兴趣区域(RoI)。
R-FCN 与Faster R-CNN 在RPN 之前的步骤相同,两者最大的不同在于对RoI 的分类与回归。Faster R-CNN 通过一组全连接层完成目标分类和回归,每个被RPN 提取出来的RoI 都需要经过全连接层进行计算,这将消耗大量的时间;R-FCN 通过额外添加的2 组卷积,得到2 张分别为类别和位置的得分图,从而对目标进行预测,即将全连接层替换成卷积层进行分类和回归计算,这在一定程度上加快了检测速度。R-FCN 检测框架如图1 所示。
图1 R-FCN 检测框架Fig.1 R-FCN detection framework
传统的卷积操作通常基于3×3、5×5 等形状规则的卷积核进行特征提取,然而这种方式具有一定的局限性,只能提取规则区域内的特征,无法根据物体的形状提取到更细致的特征。可变形卷积[19]具有学习空间几何形变的能力,可以更好地适应不同空间。可变形卷积可以根据目标的形状进行卷积位置调整,使卷积的区域更符合物体形状特征,具体实现过程为:增加一组2N(N为卷积核大小)个卷积核,产生尺寸与输入特征图相同、通道数为2N的特征图,称为偏置域(offset field),从offset field 上可得到每个像素点的偏置矩阵(offsets)。可变形卷积结构如图2 所示。
图2 可变形卷积结构Fig.2 Deformable convolution structure
传统卷积的计算方式是与特征图进行固定区域的卷积计算,对于特征图上的每个点位置p0,计算方式如下:
其中:x为输入特征图;y为输出特征图;p0为卷积计算点;R表示预采样偏移,假设使用3×3 卷积核,则R={(-1,-1),(-1,0),…,(0,1),(1,1)};pn为R中位置的枚举。
可变形卷积将学习到的偏置矩阵offsets 与预采样偏移R相加,得到新的采样偏移量,则输入特征图上每个点P0进行可变形卷积的表达式如下:
其中:Δpn为偏置矩阵offsets 对应于常规卷积网络的偏移量。
R-FCN 通过残差网络(ResNet)对图片进行特征提取,ResNet[20]被广泛应用于分类、检测等任务。通过增加跳线连接,ResNet 能够缓解梯度消失和梯度爆炸问题,ResNet 结构如图3 所示。假设在不增加残差前,网络需要学习的是H(x)=F(x),这样一个恒等映射在神经网络层数增加时将变得很难拟合;在加入残差结构后,神经网络学习的是H(x)=F(x)+x,即将恒等映射作为网络的一部分,则网络真正学习的是残差函F(x)=H(x)-x,这比原先的恒等映射更易拟合。
图3 ResNet 结构Fig.3 ResNet structure
本文使用经过预训练的ResNet101,在其conv4_x模块中融入可变形卷积,具体结构如图4 所示。在残差结构中加入额外的72 个256 维的卷积核,产生4 组offsets,通过这些offsets 的偏置量指引,对输入特征进行可变形卷积操作从而获得输出特征。
图4 可变形ResNet 结构Fig.4 Deformable ResNet structure
R-FCN 在位置敏感得分图上进行位置敏感RoI池化,位置敏感得分图实质上也是特征图,但其具有确切的含义。位置敏感RoI 池化会将RPN 层提取的RoI 分成k×k个子区域(bins),假设目标的总类别数为C,则位置敏感得分图的层数为k2(C+1),每一层分别代表某类物体的某个部位在整个图像中的响应值。位置敏感得分图的层数受目标种类数影响,当目标种类增加时,得分图的通道数也增加,这会带来大量参数,增加了检测时间,但是本文只有3 类交通标志的情况,适合进行R-FCN 位置敏感RoI 池化设计。
相比于原始的位置敏感RoI 池化,可变形位置敏感RoI 池化通过卷积在位置敏感得分图上产生一个额外的偏置域,这个偏置域的尺寸与得分图相同,通道数是得分图的两倍,对应于位置敏感得分图上每个点在X与Y方向的偏移量。可变形位置敏感RoI池化如图5所示。
将被RPN 提取出来的RoI 区域对应的offsets 加入可变形位置敏感RoI 池化中,计算公式如下:
其中:x为输入特征图;y为输出的RoI;bin为由RoI划分的子区域;nij是每个bin 区域中的像素数;p0为RoI 左上角的坐标;p为bin 区域内像数点的枚举;Δp为偏移量offset。
经过特征提取网络输出的特征图会在RPN 的作用下产生大量的候选区域(RoIs),这些RoIs 中正样本和负样本分布并不平衡,简单地设置正负比例将这些RoIs 送入后续分类与回归训练,模型将无法关注困难样本(预测时与真值标签误差较大的样本,这类样本常使得模型产生误判现象)。在线困难样本挖掘策略[21]会从这些RoIs 中筛选出困难样本并送入后续训练中,具体操作为:设置2 个相同的RoI 子网络,2 个子网络结构相同而功能不同,根据功能不同可将其分为只读子网络和可读可写子网络,只读子网络只负责前向计算,输出RoIs 的损失,然后将这些RoIs 的损失值从大到小排序,并通过非最大值抑制(NMS)算法挑选出前K个RoIs,将其送入可读可写子网络中进行参数反向传播,从而完成网络更新。
本文交通标志检测方法主要基于R-FCN 网络结构,为了加快检测速度,在基于ResNet101 的预训练模型上进行删减实验,最后只保留前25 层来实现图像特征提取,并将RoI 区域中bin 的个数从7×7 变为3×3。以上2 个措施有效提升了模型的检测速度,且并未因为参数减少而影响准确率。
上述措施虽然能提升模型检测速度,但是无法提高模型的准确率。为此,本文引入可变形卷积核和可变形位置敏感RoI 池化,总共使用2 个可变形卷积核,分别置于RPN 两侧,将可变形位置敏感RoI 池化层代替原始位置敏感RoI 池化层,改进后的网络结构如图6 所示。
图6 改进的R-FCN 网络结构Fig.6 Improved R-FCN network structure
本文实验采用德国交通标志检测数据集(German Traffic Sign Detection Benchmark,GTSDB)[22]。GTSDB发布于2013 年的国际神经网络会议(IJCNN2013),被用于当年的交通标志检测大赛。该数据集包含900 张高分辨率的道路交通图像,其中,训练集为600 张,测试集为300 张,图像大小均为800 像素×1 360 像素。图像中交通标志的数量为0~6 个,多为小目标,分辨率在16 像素×16 像素~128 像素×128 像素之间,形状大多数为三角形或圆形。GTSDB 中将43 种交通标志分为四大类,即禁令标志、指示标志、警告标志、其他标志。根据当年比赛的规定,本文只对前3 种标志进行检测,本文实验训练集总共包含666 个标志,测试集包含273 个标志。图7 所示为该数据集的部分图片及其检测结果。
图7 GTSDB 数据集部分样本及其检测结果Fig.7 Some samples of the GTSDB dataset and their detection results
通过对数据集进行分析可知,交通标志的面积远小于原R-FCN 的锚点框大小,使用原始的锚点将会使模型难以拟合那些过小的交通标志,因此,需要对交通标志数据集进行聚类分析。
K-means 聚类方法用欧氏距离定义损失函数,但在目标检测算法中更适合采用预测框和anchor box 的面积重叠度IOU 作为度量距离,则新的度量标准公式为:
其中:Bbox表示目标框尺寸;Ccentriod表示聚类中心框尺寸。通过改变聚类中心点的个数得到不同的平均IOU 值,结果如图8 所示。
图8 K-means 聚类折线Fig.8 K-means clustering polyline
从图8可以看出,当聚类个数为9时曲线逐渐平缓。此外,通过聚类可知交通标志长宽比的标注基本为1∶1。因此,本文选定9个锚点框,并且将锚点框具体大小设置为(22,22)、(27,27)、(32,32)、(36,36)、(40,40)、(46,46)、(56,56)、(70,70)、(100,100)。
本文实验平台设置:CPU 为Inter Core i7-8700,内存16 GB,GPU 为NVIDIA GeForce RTX 2070,显存8 GB,操作系统为Ubuntu 16.04,深度学习框架为MXNET。
实验采用ImageNet数据集上训练好的ResNet101,其参数不参与更新,总共训练15 个epoch,初始学习率为0.001,在训练10个epoch后将学习率调整为0.000 1。
本文采用目标检测中常见的AP50、AP75、AP这3个评价指标进行评测:AP50、AP75分别表示IOU(预测目标与实际目标的重叠比)大于0.5和大于0.75时正确检测出目标的概率;AP为IOU[0.5∶0.05∶0.95]共10个不同阈值下检测出目标的概率的平均值。使用上述3个指标能更好地体现可变形网络对交通标志的适应能力,使得评价更为全面。
为了选择适合本文的预训练模型,首先利用以ResNet101 和ResNet50 为特征提取网络的R-FCN 在原模型下进行实验,结果如表1 所示。
表1 特征提取网络ResNet101 与ResNet50 的对比Table 1 Comparison of feature extraction networks ResNet101 and ResNet50 %
ResNet101相比于ResNet50最大的区别是conv4_x模块多了51 层,但从表1 可以看出,这额外的51 层卷积层并没有使ResNet101相比ResNet50取得太大优势,两者的性能相差不大。因此,对于本文的3 类交通标志检测任务,选用总体偏优的ResNet101 作为特征提取网络,为了加快检测速度,将conv4_x 模块进行简化,只保留其前3层参数,即整个特征提取网络只剩下35层。不同层数网络的实验结果如表2 所示。
表2 不同层数网络的识别性能对比Table 2 Comparison of recognition performance of networks with different layers
从表2 可以看出,对特征提取网络ResNet101 进行层数删减,并没有对检测结果产生太大影响,对ResNet101 中conv4_x 模块的简化仅造成了微小的性能变化,说明前25 层提取出来的特征图已经包含足够的交通标志特征信息。
在获得简化的特征提取网络后,本文在简化模型上进行实验,通过聚类锚点,在模型中加入可变形卷积和可变形位置敏感ROI 池化,且训练过程中采用在线困难样本挖掘方法,实验结果如表3 所示。
表3 不同组合方法的性能对比结果Table 3 Performance comparison results of different combination methods
从表3 可以看出:第5 组实验的AP50准确率相对第1 组实验提升了1.4 个百分点,达到97.8%,而AP75准确率达到94.7%,即本文算法相比原算法提升了6 个百分点,总体AP 提升了将近9 个百分点;在检测时间方面,本文算法相较原始R-FCN(ResNet101)减少了60 ms,速度提升高于2倍。上述结果有效证明了本文保留前25 层网络进行实验的可行性以及K-means 聚类后锚点框的适应性。
交通标志信息标注采用人工标注方式,其标注框都是正方形,加入可变形卷积和可变形位置敏感RoI 池化,可以提取出更多关于交通标志形状的信息,更加符合交通标志圆形、三角形以及矩形的特征,使得在更严格的AP75和AP 评价指标下准确率明显提升。通过添加OHEM 技术,可以对困难样本进行训练,模型的准确率进一步提升。
在目标检测领域,研究人员已经提出众多优秀的目标检测模型,但这些模型都是在VOC、COCO 数据集上进行实验,这2 个数据集种类多、数据量大,模型为了适应数据集,其结构会设计得比较庞大。这些模型虽然可以直接用于交通标志分类检测,但其结构并不能完全契合交通标志检测数据集,因此,需要进行适应性改进。
表4所示为9种模型在本文数据集上的对比结果。其中:Faster R-CNN、R-FCN、FPN 的特征提取网络都为经过预训练的ResNet101,其参数不参与更新,训练与检测均为原尺寸;YOLO系列特征提取网络为DarkNet,尺寸则为608×608;CenterNet特征提取网络为DLA-34,尺寸为512×512;RetinaNet 和Cascade RCNN 的特征提取网络为ResNet50-FPN,尺寸为原尺寸。各模型的锚点框大小均未进行调整。
表4 9 种模型检测性能对比Table 4 Comparison of detection performance of nine models
从表4 可以看出:FPN 因为其多尺度的设计,AP 和AP75指标明显高于Faster R-CNN 与R-FCN 这种单尺度模型,证明通过多尺度图像特征金字塔可以有效检测出交通标志这种小目标,但FPN 使用的特征提取网络为ResNet101,速度较慢;本次实验中Cascade RCNN 选择参数较少的ResNet50,并在其上使用FPN 架构,使用了多尺度和多阈值的Cascade RCNN 的AP 指标取得最高值,达到77.2%,但AP50指标仅有95.5%,低于未改进的R-FCN;原始R-FCN 由于位置敏感得分图的设计,适合于交通标志这种有特定形状的目标,且本文交通标志只有3 类,位置敏感得分图层数少,这在一定程度上加快了检测速度,因此,原始R-FCN在速度与精度2个方面都取得了较好的结果;使用512 尺寸的CenterNet具有最快的速度,中心点的设计也契合交通标志这种对称物体,因此,其整体表现较好;使用原尺寸的RetinaNet 的AP 和AP75指标同样较高;YOLOv3 与YOLOv4[23]则在608 尺寸时和本文所提模型的检测速度接近,且YOLOv4的准确率明显高于YOLOv3,其AP50指标最接近本文模型,但AP75和AP 评价指标与本文模型有较大差距。综上,可变形卷积具有有效性,在速度接近的情况下,本文模型在更严格的评价指标上依然具有优势。
针对交通标志检测问题,原始R-FCN 模型能取得较好的准确率,但是速度较慢,难以满足实时性的要求。为此,本文通过模型简化、K-means 算法锚点框聚类,并将可变形卷积和可变形位置敏感RoI 池化加入到简化模型中,在训练过程中使用在线困难样本挖掘策略,从而有效检测交通标志信息。实验结果表明,该改进模型能够在提升检测速度的同时保证检测精度,且准确率高于Faster R-CNN、R-FCN等模型,其在精度与速度上取得了较好的平衡。后续将为模型选择如EfficientNet、Desnet 等更适合交通标志检测的特征提取网络,从而进一步提升模型的检测速度与精度。