APP下载

基于注意力机制的改进YOLOv3与交通标志检测

2022-10-11鑫,代

现代计算机 2022年15期
关键词:交通标志注意力算法

梁 鑫,代 倩

(中南民族大学计算机科学学院,武汉 430074)

0 引言

交通标志检测系统作为智能交通系统中的重要一环,不仅能为驾驶员提供重要的路况信息以起到辅助驾驶的作用,而且在绘制高精度地图上能极大程度地减少人工标注,降低错误的发生。出于安全性考虑,交通标志检测速度和准确性有着严格的要求,在保证网络推理速度的前提下,交通标志的检测与识别必须达到高召回率和高精确率。传统的交通标志检测算法主要是基于颜色和形状的算法,以及基于SVM+HOG、Harr-like等人工设计特征的机器学习算法。然而,交通标志数据集在不同的国家通常有着很大的差异,因此人工设计特征往往会损失算法的鲁棒性。同时,上述传统机器学习算法还存在检测精度不足、检测速度慢等问题,难以应用到实际中。

随着计算机性能的提升,以神经网络为代表的深度学习模型在目标检测领域获得广泛应用。近年来,基于深度学习模型的算法被逐渐运 用 到 了 交 通 标 志 检 测 中。Arcos-García对Faster R-CNN等多个目标检测网络进行改进,并将其应用于交通标志检测。Zhu等使用全卷积网络(fully convolutional network,FCN)生成候选区域,缩小了交通标志的搜索范围,并产生更具判别力的候选框。Zhu等对OverFeat框架进行了修改,提出了一个同时兼顾检测和分类交通标志的网络。Li等提出一种新的感知生成对抗网络,该网络通过为小型交通标志生成超分辨率表达来提高检测性能。MR-CNN采用多尺度反卷积结构,将深层和浅层特征融合起来,融合后的特征图可以在一定程度上减少区域建议的数量,提高交通标志检测的效率。

上述工作大都通过提出多分辨率和多尺度的网络结构,再加上反卷积、特征融合等操作提升交通标志检测算法的性能,但仍然面临实时性不强、计算参数多的问题。YOLOv3作为一阶段检测算法,将输入图像的类别和检测目标的相应位置作为一项回归任务,在输出层一次性预测完成,大大缩短了检测时间,满足实际应用场景的需求。同时,YOLOv3借助特征金字塔(feature pyramid networks,FPN)的思想,将不同层次的特征融合,实现对大、中、小目标的预测,有效地提高了检测效果。尽管YOLOv3的检测精度和速度都取得了巨大的进步,但其对小目标的检测性能仍然不理想。

现有针对交通标志检测的YOLOv3改进算法主要以改进基础网络结构,融合多尺度特征为主。然而,大多数改进的网络结构都会造成计算量增大,内存消耗量增大的问题,不适于实际应用。同时,融合特征的过程往往会导致信息丢失,造成部分精确率下降。为解决现有改进策略的不足,本文以YOLOv3算法为基础,将通道注意力(channel attention,CA)和轻量级的子空间注意力(subspace attention,SA)相结合,形成了YOLOv3-HA(YOLOv3-based hybrid attention)算法。通过赋予特征图在通道和空间上的注意力权重,增加对有用特征的关注度,同时抑制当前任务中的无效特征。实验表明,该算法在YOLOv3的基础上以少量的检测耗时为代价,能获得良好的检测精度,实现了检测速度和精度的平衡。

本文的主要工作如下:

(1)对SENet(Squeeze-and-Excitation Net)中的特征压缩方法进行改进,令压缩后的特征更能代表小目标特征中的通道信息,使SENet更加适应交通标志检测任务;

(2)引入一种轻量级的子空间注意力模块,该模块能对每个特征图子空间推导出不同注意图,以细化小目标特征,使网络能获得更加细粒度的特征信息。并将其与通道注意力结合,补充特征图中的空间信息;

(3)使用K-Means++算法代替YOLOv3中原始K-Means算法,对数据集中的标注框进行聚类,获得聚类效果较好的锚框参数。

1 YOLOv3-HA算法

针对目标检测对小目标检测性能不佳的问题,本文提出一种基于YOLOv3的YOLOv3-HA算法,将通道注意力和子空间注意力两种注意力模块进行融合,并嵌入到YOLOv3残差结构。近年来,诸多学者采用注意力机制来引导卷积神经网络去学习关注重要特征并抑制干扰特征。文献[13]提出了一种通道注意力模块SENet,该模块能被方便地集成到现有目标检测网络中,且在仅增加少量的计算参数的情况下便能有效提高网络模型精度。本文对此模块进行改进,同时为了补充全局特征之间的位置信息,引入一种轻量级的子空间注意力模块,对每个特征图子空间推导出不同注意图,以细化小目标特征,使网络能获得更加细粒度的特征信息。

YOLOv3网络可以简化为FPN形式,分为自底向上的特征提取网络DarkNet-53和自上而下的多尺度检测网络,如图(1)上半部分。DBL是YOLOv3中的基本单元,由卷积层、批标准化(batch normalization,BN)和Leaky relu激活函数构成。Resn代表n个残差结构,每个残差结构由两个DBL模块串联而成。为了使网络能够更加关注通道和空间中的有效信息,本文在残差结构中嵌入通道注意力(CA)模块和子空间注意力(SA)模块,形成了混合注意力(HA)模块。图1 Residual部分是引入混合注意力后的残差模块。

图1 YOLOv3网络简化结构与改进的残差模块

2 混合注意力模块

2.1 通道注意力模块

基于通道注意力的SENet采用了全局平均池化进行特征压缩,在图像分类任务获得了良好的效果。然而在图像分类任务中,目标对象占特征图的比例一般较大,通道特征的平均值能比较好地说明该通道的信息。但对于交通标志这样的小目标检测,待检测物体在特征图上只占据一小块区域。同时,目标检测的原图像通常包含数量占比较多的干扰物体,这些物体单体特征信息贡献虽然较小但总体特征信息贡献却很大。因此,在交通标志检测任务中,仅对特征进行空间维度的平均池化不能很好地表示目标的网络响应,每个通道的响应极值也应当考虑进来。

本文根据交通标志检测特征中含有大量干扰信息的特点,将全局最大池化与全局平均池化结合,使不同层级的特征有区分度,有效地抑制干扰特征。本文针对小目标检测进行改进后的通道注意力模块结构如图2所示。

图2 改进后的通道注意力模块结构

设输入特征为F,、和依次代表F的高度、宽度和通道数,输出的通道特征为F。输入与输出之间的关系如式(1)、式(2)所示:

式(1)中代表Sigmoid激活函数,MLP代表多层感知机,GAvgPool代表全局平均池化,GMaxPool表示全局最大池化。式(2)中大小为××的输入特征F经过两种全局池化,进行特征压缩并相加,得到1×1×的压缩特征。压缩特征经过SENet中的多层感知机结构激活后得到通道注意力权重M。最后M在式(2)中与F进行逐元素相乘,完成对输入特征在通道上的加权,得到与F相同大小与维度的输出特征F

SENet中的多层感知机结构如图3所示。输入特征F在经过特征压缩后得到1×1×的特征向量。特征向量经过两个全连接层后分别完成降维和升维,最后由Sigmoid函数激活得到通道注意力权重M

图3 多层感知机结构

2.2 子空间注意力模块

多尺度特征学习有助于神经网络理解图像的背景,尤其是在多对象环境中能够提高网络的表达能力。为了更好地检测交通标志中的细节特征,本文引入了一种支持多尺度特征学习的子空间注意力。

其将特征映射划分为多个阶段(特征图子空间),并且为每个子空间推理出不同的注意力特征图以支持多尺度特征表达。同时,在生成注意力特征图时采用逐点卷积和逐通道卷积,减少了计算参数。

假设∈R是经通道注意力模块加权后的特征图,其中为输入通道的数量,、是特征图的空间维度。为了在特征图中获取跨通道的依赖关系,将划分为个互斥的组[,,…,…F],其中每个组含有个特征图,如图4所示。

图4 子空间注意力模块结构

将定义为其中一组中间特征图,并进行如下操作:

与SENet类似,子空间注意力在卷积后采用最大池化操作以突出显示局部区域信息,获取空间信息。但在激活阶段,子空间注意力利用不同特征图子空间的线性关系来整合跨通道间的信息,相比于使用多层感知机激活,这种方法大大减少了网络的计算参数。

3 实验结果与分析

3.1 数据集与实验环境

实验数据集采用我国的基于真实场景的交通标志公开数据集TT100K,其包含的交通标志种类多样,场景丰富。与GTSDB和LISA(laboratory for intelligent and safe automobiles)相比,TT100K中的交通标志数目更多,分类更加细致。最重要的是,TT100K中的交通标志主要是小目标,更符合现实环境中的交通标志。它由6105张训练图像和3071张测试图像组成,图像的分辨率为2048×2048。实验中的训练集和测试集均采用默认分配的训练图像和测试图像。实验环境配置如表1所示。

表1 实验环境配置

3.2 评价指标

实验采用精确率(Precision)、召回率(Recall)、mAP(Mean Average Precision)以及每幅图像的检测耗时作为模型的综合评价指标。相关计算公式见式(6)~式(8)。

式(6)、式(7)中,代表正样本中被预测为正样本的数量;代表正样本中被预测为负样本的数量;代表负样本中被预测为正样本的数量。预测结果和由交并比(intersection over union,IoU)决定,它的计算方式是预测边框和真实边框的交集与并集的比值。当IoU大于设定阈值时,记为;反之记为。

mAP表示各类别的平均准确率均值,可以更好地衡量多召回率下的模型检测精度。由式(8)求得:

其中代表检测类别总数,()表示当前类别的精确率-召回率曲线。

3.3 锚框参数设定

锚框(anchor box)最早起源于Faster R-CNN,锚框作为真实框的先验,在大多数目标检测算法中起着重要的作用。锚框机制主要是解决一张图片中的物体具有不同尺度和宽高比的问题,锚框机制采用多个不同大小和比例的矩形锚框对检测物体进行预测,降低了模型的学习难度。

在原始YOLOv3中,选定锚框参数是基于COCO数据集采用K-Means算法确定,这些锚框并不适用于本文的交通标志数据集,而且K-Means算法存在着初始点敏感的问题。因此,本文对TT100K数据集使用K-Means++算法重新进行聚类操作,得到新的锚框尺寸大小为:(14,16),(17,19),(18,23),(21,21),(22,25),(27,29),(32,38),(51,56),(86,96)。新的锚框宽高比更符合交通标志数据集特点,将原始锚框与使用K-Means++生成的锚框分别在TT100K数据集中进行训练和测试,实验结果见表2。

表2 聚类算法对比实验结果

3.4 模型训练

本文实验采用深度学习框架Tensorflow和Keras实现网络模型。使用随机梯度下降优化算法更新网络参数,初始学习率lr设置为1×10,动量Momentum=0.9,权值衰减weight decay设置为5×10。每个batch随机选取16个训练样本,训练500个epoch后停止。训练的损失函数曲线如图5所示。网络模型损失在10个epoch内迅速下降,在100个epoch后缓慢下降并在400个epoch后趋于平稳,算法达到收敛。

图5 损失函数曲线

3.5 实验及结果分析

本节首先对通道注意力机制中的特征压缩方式进行对比实验,验证不同的特征压缩方式对YOLOv3检测算法的改善效果。然后通过消融实验,验证CA和SA两种注意力机制是否都对检测结果起到积极影响。通过检测效果的对比分析,直观地展示HA对交通标志检测的影响。最后,对比本文提出的YOLOv3-HA算法与其他主流目标检测算法在TT100 K数据集上的检测性能。

对于通道注意力机制的特征压缩方法的选择,本文将对比全局最大池化(GlobalMaxPooling,GMP)、全局平均池化(GlobalAveragePooling,GAP)、全局最大池化与全局平均池化相加(GMP+GAP)共三种方法。分别将这三种方法用于YOLOv3网络之中,采用相同的训练和测试方法,得到在TT100K数据集上的精确率和召回率,结果如表3所示。

表3 特征压缩方法对比

由表3可以看出,通道注意力进行特征压缩时,全局最大池化优于全局平均池化,而将两种池化相加时检测结果最好,较全局最大池化的精确率和召回率分别提升了0.3%和0.5%。由此可说明,将通道特征进行全局最大池化和全局平均池化再相加的方式更能突出通道维度的特征信息,对小目标检测任务的适应性更强。

为了探究改进通道注意力和子空间注意力对模型的影响,本文进行多次消融实验。分别将改进的通道注意力机制和子空间注意力机制嵌入到YOLOv3网络的残差结构中,在相同实验条件下与原始YOLOv3网络进行性能对比,得到的实验结果如表4所示。

表4 注意力机制消融实验结果

由表4可以得出,原始YOLOv3网络的检测性能不佳,精确率和召回率分别为74.8%和81.9%。而融合两种注意力机制后的YOLOv3-HA网络性能有了明显提升,精确率和召回率分别提升了21.9%和12.8%。而将CA和SA分别应用于YOLOv3网络之后,网络模型的检测性能也有着不同程度的提高。由此消融实验可以说明,两种注意力模块都对模型性能有着积极的影响,减少了网络的漏检和误检情况,且对精确率的影响更加明显。

为直观地说明改进算法有着更好的检测性能,从TT100K数据集中选取3张图片分别用YOLOv3算法和YOLOv3-HA进行检测,并标出了误检和漏检情况,具体检测效果如图6所示。

由于背景中的广告牌干扰,图6(a)中YOLOv3算法出现了误检;对于小目标对象,原始YOLOv3算法也存在着不同程度的误检和漏检。而YOLOv3-HA算法则准确地检测出所有的交通标志,且预测分数明显高于原始YOLOv3算法。综上所述,改进后的算法有着更加优秀的交通标志检测性能。

图6 检测效果对比

表5给出了YOLOv3-HA算法与YOLOv3、Faster R-CNN、SSD等算法在TT100K数据集上的检测性能对比。可以看出,尽管本文的改进算法获得的mAP低于二阶段检测算法Faster RCNN,但在检测速度上本文算法有着明显的优势。YOLOv5s在YOLOv3的基础上大大减少了网络参数,在检测速度上有了提升,但其在小目标物体上检测性能仍然不够理想。尽管YOLOv3-HA嵌入了混合注意力模块使得网络参数增多,但其仍具有良好的实时性,同时相比于原YOLOv3算法mAP有了较大的提升。综合来看,本文改进的YOLOv3算法在精度和实时性方面实现了良好的平衡。

表5 TT100K数据集上对比实验结果

4 结语

针对现有目标检测算法对小目标检测存在精确度低、耗时长的问题,本文提出了一种基于YOLOv3的改进算法YOLOv3-HA。在YOLOv3的残差结构中引入了改进的通道注意力模块和子空间注意力模块,分别在通道维度和空间维度对特征进行注意力加权,提高了对小目标的检测性能,同时尽可能地减少了计算参数。实验结果表明,改进后的YOLOv3算法在TT100K数据集上检测平均准确率达到81.0%,较原始算法有了明显的提升。由于引入注意力模块使得模型的计算量增多,检测耗时有了些许增加。因此,下一步工作将考虑保证精确性的前提下,进一步精简网络模型,减少网络参数。

猜你喜欢

交通标志注意力算法
让注意力“飞”回来
交通安全伴我行
Travellng thg World Full—time for Rree
学习算法的“三种境界”
算法框图的补全
算法初步知识盘点
A Beautiful Way Of Looking At Things
交通标志小课堂
我们欢迎你!
阅读理解两则