APP下载

基于Ghost模块的改进YOLOv5目标检测算法

2023-02-07李宇翔田子建侯麟朔

现代电子技术 2023年3期
关键词:注意力卷积特征

李宇翔,王 帅,2,陈 伟,3,田子建,侯麟朔

(1.中国矿业大学(北京)机电与信息工程学院,北京 100083;2.内蒙古煤矿安全监察局 鄂尔多斯监察分局,内蒙古 鄂尔多斯 017000;3.中国矿业大学 计算机科学与技术学院,江苏 徐州 221116)

0 引言

目标检测是计算机视觉领域的基础任务之一,属于计算机视觉的分支,其广泛应用于人员监测、视频监控、智能交通等诸多领域[1]。目标检测技术是通过对图像或视频等进行特征提取,从中识别、定位待检测的目标。过去目标检测以传统算法为主,包括:AdaBoost算法框架、HOG特征和支持向量机等。相较于传统的人工特征检测方法,基于深度学习的检测方法能学习图像更深层的语义特征,特征表达能力更强,识别精度更高。

目标检测网络可分为二阶段网络和单阶段网络。二阶段网络首先提出备选区域,然后对备选区域进行分类以及回归,如:R-CNN系列[2-4]、RFCN[5]、Mask-RCNN[6]等。虽然该类算法准确度较高,但其检测速度过慢、实时性较差,难以应用于移动部署环境。单阶段检测网络能直接识别并标定目标位置,如:YOLO系列[7-9]、SSD[10]等,该类算法检测速度更快,可用于实时检测。

由于检测场景背景复杂、体积过小以及目标堆积遮挡等原因影响,小目标漏检、误检是目标检测中最常见的问题之一。长期以来,许多研究人员针对小目标检测提出了一系列的改进措施。文献[11]在SSD算法的基础上提出一种改进的I-Darknet53骨干网络,并融合了注意力机制,有效结合了不同通道之间的特征信息,提高了模型检测精度。文献[12]在YOLOv4中引入空洞卷积扩大感受野,有效提升了中小目标检测性能。文献[13]通过在YOLOv5骨干网络增加浅层特征图,丰富了目标的位置信息,并优化改进目标框回归公式。以上方法虽然提升了小目标的检测精度,但检测速度都有不同程度的下滑,FPS也有所下降。

针对小目标漏检、误检等问题,并兼顾检测精度与实时性,本文提出了基于YOLOv5的改进轻量化高效检测模型:

1)融合Coordinate Attention(CA)[14]注意力机制。在骨干网络中加入CA注意力机制,在关注通道间信息联系的同时,考虑了特征空间的位置信息,有效增强学习特征的表达能力,从而提高模型精度。

2)借鉴双向加权特征金字塔网络结构[15]替换路径聚合网络(Path Aggregation Network,PAN)。原PAN结构计算量较大,且未能很好地将浅层特征与深层特征融合。本文设计了不同的跨层加权连接结构用于特征融合,从而获得更丰富的语义信息。

3)引入Ghost模块[16]。在骨干网络中将Ghost模块嵌入到普通的Conv和C3卷积模块中,减少参数量,在略微降低精度的基础上确保了模型轻量化。

4)增加检测头。改进后获得了更丰富的深层语义信息,有效提高了检测精度。

1 改进的YOLOv5算法

1.1 CA注意力机制

为提升模型性能,大多轻量级网络引入了SE、CBAM等注意力模块。SE注意力机制是在通道上计算注意力分布,学习不同通道间的关系,但忽略了对特征图位置信息的学习;CBAM注意力机制则是聚焦于空间信息的聚合,但其缺乏对长期依赖关系的信息提取,效果未达到最优。基于此,本文引入坐标注意力机制(CA)来提升模型效果。CA模块不仅能有效获取不同通道间的信息,还考虑了特征空间的位置信息,通过精确的位置信息对通道关系和长距离依赖关系进行编码,解决了SE和CBAM模块的不足之处,有助于更精确地定位和识别目标。

通道注意力机制中采用全局池化编码,将全局信息转换成标量,会忽略掉大量重要的空间信息。针对此问题,CA注意力将全局池化操作优化为宽度方向和高度方向的两个1维方向的池化操作。CA注意力模块如图1所示。

图1 CA注意力模块

对于输入尺寸为C×H×W的特征图X,首先采用尺寸为(H,1)和(1,W)的池化核将输入特征图沿着宽度和高度两个维度进行全局平均池化,分别获得在水平方向特征zh,大小为C×1×H,以及垂直方向特征zw,大小为C×1×W。在通道c的输出分别为:

接着将得到的两个空间方向的特征图拼接在一起,采用尺寸大小为1×1的卷积核降维,并通过批量化处理以及Sigmoid函数进行非线性化操作:

得到特征图f,其大小为C r×1×(W+H),其中r为压缩因子。然后沿着水平和垂直方向将f分解为两个方向上的张量,通过1×1卷积核升维以匹配通道数。采用Sigmoid激活函数处理后分别得到高度和宽度方向的注意力权重,操作如下所示:

最后,将得到的注意力权重通过乘法与原始特征图X(i,j)进行加权计算,便得到带有注意力权重的特征图Yc(i,j):

如图2所示,在骨干网络中引入CA模块来增强模型提取位置信息和特征表达能力。

图2 改进后骨干网络

1.2 加权跨层特征融合模块的设计

YOLOv5颈部层采用PAN结构,该结构逐层连接存在贡献较小的融合冗余信息,使得计算量过大;并且在融合不同的输入特征时直接进行拼接,没有考虑到不同的输入特征具有不同的尺度,且不同尺度的跨层特征图通常对融合输出特征的贡献不均等。基于此,本文借鉴双向加权特征金字塔网络,设计了加权跨层特征融合网络(Weighted Cross-Layer Feature Fusion Network,WCL-FFN)替 换原PAN结构,如图3所示。

图3 加权跨层特征融合网络

本文特征融合结构改进点如下:

1)加深特征金字塔深度,并增加检测头匹配。高层特征图的感受野较大,其包含的语义信息更加丰富。将低层位置特征信息与高层语义信息相融合,更有利于小目标的识别与检测。

2)删除不必要节点并增加跨层连接。没有参与特征融合的节点,对于融合不同特征的特征网络的贡献较小,将网络中只有一条输入边的节点删除,简化了特征融合网络,有效减少了模型计算量。对于同一尺寸的特征图,增加两条额外的跨层连接,如图3虚线所示。这能在略微增加计算量的情况下融合更多的特征信息,提高网络检测精度。

3)加权特征融合。引入可学习的权重来学习不同输入特征的重要性,类似于注意力机制;这能使模型减少次要特征的权重,侧重于更重要、更关键特征的学习。计算公式如下:

式中:Ii表示输入特征图;wi是该输入特征图可学习的权重系数;ε=10-4,可避免训练过程中数值不稳定。以加权跨层特征网络的第4层的两个融合特征为例,具体计算过程如下:

式中:Conv表示对输入特征图进行卷积、BN以及激活操作;Resize表示对输入特征图进行上采样或下采样操作,使其与待融合特征图尺寸匹配。

1.3 Ghost模块轻量化

在引入注意力机制和双向加权特征金字塔网络后,虽然检测精度得到了较大提升,但网络的参数和计算量有一定增加,影响模型的检测速度。为降低模型体积,采用轻量化模块优化骨干网络。

轻量级网络MobileNet提出的Depthwise以及ShuffleNet中的shuffle操作都是基于1×1卷积降维升维来减少计算量,在训练网络过程中仍存在特征冗余,占用大量内存。Ghost模块可以从廉价的线性变换、组合操作中生成更多的特征图,并且这些特征图可以充分表达特征信息。基于此,本文采用Ghost模块及其组合模块替代原有卷积操作。Ghost模块如图4所示,其中图4a)为普通卷积操作,图4b)为Ghost卷积模块。

图4 卷积对比图

Ghost模块分两步操作:首先,采用普通卷积计算,得到通道数较少的特征图;然后,利用线性操作得到更多的特征图,将输出结果与恒等映射在通道方向上拼接,得到输出特征图。

假设输入特征图数据为h·w·c,n维卷积核尺寸为k×k,卷积输出为h′·w′·n,则在普通卷积过程中,计算量为n·h′·w′·c·k·k。

假设,在Ghost模块的线性操作中有1个恒等映射和m·(s-1)=n/s·s·(s-1)个线性运算,且每个线性运算的平均核大小等于d×d,则用Ghost模块替换普通卷积的理论加速比为:

由上述计算可知,在相同操作下,Ghost模块相比普通卷积计算量减少了s倍。基于此,本文以Ghost模块为基础构建了G-Conv、G-BottleNeck、G-C3模块替代原算法的相关卷积模块。G-Conv系列模块如图5所示。在瓶颈结构中加入DW卷积模块进一步减少模型计算量,并将新构建的G-BottleNeck模块替换原瓶颈结构组成G-C3模块。基于上述改进,本文提出的YOLOv5-CBGhost如图6所示。

图5 G-Conv系列模块

图6 YOLOv5-CBGhost结构图

2 实验与结果分析

2.1 数据集选取

本文选用VOC 07+12公共数据集进行实验。训练集选用VOC 07+12的训练数据集,共16 551张图片;测试集选用VOC07的测试数据集,共4 952张图片;输入图片尺寸统一为640×640。

2.2 实验环境与参数配置

本文所有实验均在Ubuntu 18.04上进行,采用的深度学习框架为Pytorch 1.18.0,参数环境:CUDA版本为11.4,CPU为Inter Core Processor x4,GPU为NVIDIA GeForce RTX 2070 SUPER,显存为8 GB,编译语言为Python 3.6。

为避免训练时模型震荡,使模型收敛效果更好,本文实验先采用warmup方法预热模型,即训练开始时采用较小的学习率训练,再经过几轮次训练后调整回设定的初始学习率。预热结束后,采用余弦退火算法将学习率调整至最终学习率。

2.3 实验评估标准及结果分析

为充分验证本文提出的三种改进策略的有效性,设置了消融实验与对比实验以探究改进方法对YOLOv5s的性能影响。评估指标包括参数量、权重大小、计算量(GFLOPS)、mAP以及单帧检测时间(FPS)等。mAP表示IOC阈值为0.5时的mAP,其计算公式如下:

式中:P为准确率;R为召回率;TP为真正例;FP为假正例;FN为假负例。

训练损失曲线如图7所示。对于三类损失曲线:定位、分类以及置信度损失,改进模型收敛速度更快。如图8所示,改进后模型mAP有一定程度的提升。

图7 训练损失曲线对比图

图8 验证集mAP对比图

为验证引入注意力机制、Ghost模块、WCL-FFN模块的有效性以及改进算法的性能提升,本文设置了消融实验用于评估不同模块在相同条件下对算法性能的影响,结果如表1所示。

表1 消融实验

由表1可知:相比于SE模块和CBAM模块,CA模块提升更为明显,达到了2.7%;在引入改进后的WCL-FFN时,mAP提升了5.5%,证明本文提出的特征融合结构更有利于目标的识别与检测,但参数量与计算量有一定程度的增加,而本文Ghost模块的引入能大幅降低网络复杂度。经实验,使用G-Conv系列模块替换后,参数量减少了48.3%,精度降低2.4%;与原算法对比,本文改进算法CBGhost计算量减少42.5%,mAP提升3.0%。

图9为YOLOv5s与加入不同注意力机制后的热力对比图,由图可知,CA注意力机制引入后,模型对待测目标关注度提升更大,对位置信息的捕捉更为精确,更有助于目标的定位和识别,从而提高模型精度。

图9 不同注意力机制热力对比图

为验证改进算法对小目标检测的性能提升,本文设置了小目标检测对比实验,结果如表2所示。改进后算法对小目标提升效果较大,除对瓶子的检测精度有所下降外,对其他四类目标均有一定程度提升,小目标类总体mAP提高了3.5%。

表2 小目标检测性能对比

图10展示了模型改进前后的检测效果对比。当鸟类较为密集时原算法出现了漏检与误检情况,部分鸟类未检测出且将贴近湖面的鸟类误检成船类,而CBGhost表现出较优良的检测性能,未出现漏检与误检情况;在背景环境复杂、检测目标密集且相互遮挡时,两类算法均出现漏检情况,但改进算法漏检数量明显少于原算法。可见,CBGhost算法能提取到更丰富的语义信息,在小目标检测上性能更优,检测精度更高。

图10 小目标检测对比图

为验证本文所提算法的有效性,将改进后算法与原YOLOv5s以及目前主流目标检测模型进行性能对比,对比结果如表3所示。由表3可知,YOLOv5-CBGhost在VOC测试数据集上达到81.8%的检测精度,较原YOLOv5s算法提高了3.0%,模型大小略微减少,FPS基本持平。表中轻量化模型虽然检测速度快,但精度较低;又如SSD、R-FCN等网络检测精度较高,但速度较慢,难以满足实时性需求。总体来说,本文提出的改进算法兼顾准确性与实时性,性能更加优越,能高效地满足实时性工业检测任务。

表3 主流算法性能对比

3 结语

本文提出一种兼顾准确性和实时性的改进算法YOLOv5-CBGhost。针对检测效果不佳,小目标检测存在漏检、误检的问题,引入CA注意力机制和改进WCS-FFN网络。CA注意力机制兼顾跨通道间特征信息和位置信息的获取,有助于网络更精确地定位和识别小目标;改进WCS-FFN结构有效融合了更多的多尺度特征信息,有助于模型学习更丰富的特征,提高目标检测精度。最后,在骨干网络引入Ghost模块使模型更加轻量化,以缓解引入CA模块和改进特征融合网络造成的实时性性能损失。实验结果证明,相比YOLOv5s,改进YOLOv5-CBGhost算法检测精度更高,有效缓解了小目标漏检、误检的问题,具有优秀的准确性和实时性。

猜你喜欢

注意力卷积特征
让注意力“飞”回来
基于3D-Winograd的快速卷积算法设计及FPGA实现
如何表达“特征”
从滤波器理解卷积
不忠诚的四个特征
基于傅里叶域卷积表示的目标跟踪算法
抓住特征巧观察
“扬眼”APP:让注意力“变现”
A Beautiful Way Of Looking At Things
一种基于卷积神经网络的性别识别方法