成怡 张 宇 李宝全
(1.天津工业大学控制科学与工程学院,天津 300387;2.天津市电气装备智能控制重点实验室,天津 300387)
道路交通标志检测是自动驾驶系统和辅助驾驶系统的核心组成部分之一,交通标志在车辆驾驶中提供道路信息[1],指导车辆安全行驶。真实道路场景下对于交通标志的检测存在许多难点,比如交通标志尺度变化大、远距离小标志较难检测等,对交通标志识别产生一定的挑战。因此,在真实道路场景下准确快速识别交通标志,获取道路相关信息,对于自动驾驶和保障交通安全有重要指导意义。
随着深度学习以及计算机处理性能的不断提升,基于端到端的检测算法在交通标志检测中逐渐得到应用。郭璠等[2]针对小尺寸交通标志的误检问题,在通道和空间分别施加注意力机制,显著提升了YOLO v3[3]对小目标的检测精度。Wei L[4]等设计了一种二阶段网络进行交通标志检测,对多尺度特征图进行上采样后融合,利用提取的高语义融合特征图对目标中心点预测并回归尺寸信息。Han 等[5]用VGG16 作 为Faster R-CNN[6]的主干网络,减少模型推理时间,并利用OHEM[7]训练损失函数,提升交通标志检测精度。
基于卷积的目标检测网络根据预设锚框分为Anchor-based 算法和Anchor-free 算法。Anchorbased 算法针对被检测目标特征在候选区设置锚框,对特征图遍历实现目标检测。为了提高准确率,往往会引入大量无用的锚框,造成正负样本不平均。为了减少锚框的冗余,Anchor-free 算法逐渐得到应用,利用特征图关键点直接回归目标信息,无需依赖设计复杂的锚框,典型网络有Center-Net[8]、CornerNet[9]、FCOS[10]等。
CenterNet 由编码网络、解码网络以及检测网络组成,通过热力图关键点预测实现目标检测任务。编码网络对输入图像进行特征提取,生成高语义的特征图后传入解码网络,利用高斯核将输入图像转换为包含目标中心点信息的热力图,根据中心点回归目标宽高属性,然后通过检测网络进行预测。检测网络由三个分支组成,分别为中心点预测分支、中心点偏置分支以及目标尺寸分支。CenterNet 训练过程采用标准监督学习[11],不依赖复杂的解码方式以及NMS 等后处理操作,在保证推理速度的同时,精度优于大部分检测算法。本文以CenterNet网络为基础,提出一种改进的交通标志检测算法。
改进的算法结构如图1所示。在编码网络中采用PSConv[12]对ResNeSt50[13]进行结构改进,并作为主干特征提取网络。针对交通标志尺寸变化范围大的特点,对ASPP 选取适当的膨胀率,引入注意力机制优化输出特征,在解码网络中设计多尺度感受野模块。为减少解码过程的特征信息丢失,使用PSConv 根据特征信息通道数变化设计特征增强模块。
针对交通标志检测任务,本文采用ResNeSt50作为主干网络。ResNeSt 在ResNet[14]架构上引入Split-Attention,结构如图2 所示,采用分组卷积的思想优化模型性能,对于不同组的特征图分别施加注意力机制[15]。Split-Attention 由特征映射模块和分组注意力模块组成,对不同通道进行加权。输入特征图按照通道数被划分为K个基数组,引入超参数S将每个基数组重新划分为S个小特征组,因此输入特征图总分组数量为G=KS[16]。针对每个特征小组施加一系列映射变换后采用分组注意力对特征进一步处理。在每个基数组中,多个通道的输入特征经过全局池化后得到相应的权重[17]。本文在ResNeSt50 中引入多尺度卷积PSConv,采用3 个PSConv替换残差结构第一层的常规卷积,结合残差结构提取特征的方式,丰富浅层特征,使网络结构在具有相似计算复杂度的同时增强特征提取能力。
PSConv 在单个卷积核内实现对特征的多尺度提取,计算公式为
由式(1)和式(2)可以看出,PSConv 在卷积核中使用一系列不同的扩张因子,这些扩张因子根据输入输出通道周期性变化,从而对不同尺度的特征进行提取。在单个计算过程中对多尺度卷积融合,实现对卷积核更细粒度的利用。
自然场景下交通标志存在目标尺寸差异较大的问题,因此实现网络对不同尺度目标的特征提取能够提升检测精度。由于主干特征提取网络将输入图片经过四次下采样,导致生成的高分辨率特征图仅包含单一尺度的特征信息,本文采用ASPP[18]设计多尺度感受野模块,利用不同膨胀率的空洞卷积对输入特征并行采样,通过多个不同的尺度比例捕捉上下文信息,提高对不同尺度交通标志的检测性能,模块结构如图3所示。
ASPP 中空洞卷积膨胀率过大会导致输入特征稀疏[19],影响空间位置距离较远的卷积信息交互。因此选取适当的膨胀率能够赋予网络提取更准确的语义信息,提升交通标志小目标的检测性能。本文选取卷积膨胀率为(1,3,6,9),利用深层特征语义信息提升浅层特征对交通标志小目标的表征能力。为实现特征信息的有效提取,引入DCA[20]注意力机制优化多尺度感受野模块输出。对提取特征施加特征变换操作,并沿着通道维度和空间维度对特征图的形状自适应匹配,实现特征在ASPP 模块内部的连续传输,改善模型结构。
主干网络生成的特征图经过解码网络中转置卷积连续三次上采样,生成包含目标信息的热力图。在转置卷积上采样过程中,当卷积核尺寸无法被步长整除时,会导致部分特征重叠到其他位置的特征上[21],影响特征之间的位置关系,造成部分信息丢失,这种现象被称为“棋盘效应”[22]。为解决棋盘效应引起的特征信息丢失的问题,本文在解码过程设计了特征增强模块,结构如图4所示。
主干网络提取的特征图经过PSConv调整通道,提高网络局部信息相关性,卷积核的多尺度特性可以有效减少转置卷积在上采样产生的特征丢失。添加BN 层加快模型收敛速度,并采用ELU 激活函数增强上半部分的非线性表达。然后利用1 × 1 卷积捕捉通道关系,在调整通道后采用Mish 函数激活。Mish 函数图像如图5 所示,Mish 激活函数单调无上界的特性有利于稳定网络梯度,函数曲线光滑,具有良好的泛化能力[23]。
CenterNet 利用热力图关键点进行训练,中心点为p,经主干特征网络下采样后的中心点坐标为
其中,T为主干特征网络下采样倍数,即T=4。
热力图大量关键点中每个目标的中心点只有一个,非目标点过多。为了均衡热力图上的正负样本,对Focal Loss[24]改进并作为中心点损失函数,公式如下
主干特征提取网络输出的特征图分辨率变为原来的四分之一,特征图的一个像素点映射原始图像的4 × 4 区域,为修正下采样导致的偏移,设计中心点偏移损失函数,表达式为
利用尺寸损失函数对每个目标的尺寸进行回归,得到最终的目标信息,计算公式为
CenterNet 通过热力图关键点直接回归目标尺寸信息,为提高回归尺寸信息的准确性,本文采用GHM对尺寸损失函数改进,降低回归过程负梯度对尺寸信息的影响,平衡训练样本梯度,改进尺寸损失函数表达式为
CenterNet整体损失函数为
其中,λsize=0.1,λoff=1。
本文采用相机拍摄的白天与夜间交通标志图片作为本文数据集,为提升实现夜间检测效果,通过随机裁剪、镜像以及调整对比度等方法将1150张夜间数据集扩充至3450张。实验数据集由白天数据集6790张以及夜间数据集3450 张组成,数据集示例如图6 所示。训练集与验证集比例为8∶2,检测目标划分为指示标志(indication)、禁止标志(prohibition)、警告标志(warning)。实验环境为Ubuntu16.04,Pytorch1.4.0,Cuda10.1,GPU为2080 Ti,显存为11 G。
为了评估本文改进方法的性能,在本文数据集进行消融实验,以主干网络为ResNet50的CenterNet为基线模型,依次施加改进卷积结构的ResNeSt50,多尺度感受野模块、特征增强模块,模型训练初始学习率设置为1 × 10-5。选取准确率(Precision)与召回率(Recall)作为性能评价指标,三类目标的评价指标数据如表1所示。
表1 消融实验Tab.1 Ablation experiment
消融实验表明,本文采用的不同改进方法均对交通标志检测效果有较大提升,改进后算法在保证召回率的同时,提高了交通标志检测的准确率。
CenterNet 和本文改进的CenterNet 在测试集的检测效果如图7所示,图(a)是对白天交通标志的检测对比,图(b)是对夜间交通标志的检测对比,图(c)是对不同尺度的同一交通标志的检测对比。每组图片左边为CenterNet检测效果,右侧为改进的CenterNet检测效果。
由图(a)可以看出,改进后算法在白天环境下三类交通标志识别精度上均得到了提高。由图(b)可以看出,在夜间环境下改进后算法较原算法能够有效检测标志类型,避免交通标志的漏检。由图(c)可以看出,改进后算法对于同一目标不同尺度的交通标志具有较好的检测效果,多尺度感受野模块使得改进算法能够有效识别远距离小目标,提高检测精度,避免漏检。
为了验证本文改进算法效果,将YOLO v3、EfficientDet-D1、M2Det 在本文数据集训练,并将训练后算法与本文改进算法进行模型复杂度对比。初始学习率均设置为1 × 10-5,为保证模型收敛,均将训练轮次设置为200。如表2 所示,采用浮点运算量GFLOPS(Giga Floating-point Operations Per Second)、模型结构参数量作为模型复杂度对比指标。
表2 实验训练参数与模型复杂度对比Tab.2 Comparison of experimental training parameters and model complexity
为了进一步验证本文改进算法效果,选取平均精度AP、均值平均精度mAP以及检测速度FPS作为性能评价指标,结果见表3。从表3可以看出,改进后CenterNet相比原网络mAP提升了9.45%,改进后精度优于YOLO v3、EfficientDet-D1和M2Det,检测速度达到每秒91.09帧,较原算法检测速度每秒提高了6.32帧。
表3 几种算法性能对比Tab.3 Performance comparison of several algorithms
交通标志表明道路状况,为驾驶员提供相关信息,保证驾驶安全。针对真实场景交通标志尺度变化大导致检测困难的问题,设计多尺度感受野模块与特征增强模块,对CenterNet进行改进。实验结果表明,改进后算法精度达到92.61%,检测速度达到每秒91.09 帧,能够在自动驾驶中有效识别交通标志,提供道路相关信息。