1. 引言
目标检测是计算机视觉领域的重要任务之一,也是自动驾驶领域的重要技术之一。随着城市化进程的加速和科技的进步,交通环境变得越来越复杂,基于深度学习的多目标检测技术也面临着诸多挑战,例如,如何有效处理光照变化、遮挡和动态背景等问题,如何在保证精度的同时提高检测速度,如何处理不同类型目标物的检测等 [1] [2] 。
目标检测算法一般可分为两类:以R-CNN为代表的二阶段(two-stage)检测方法和以YOLO系列为代表的一阶段(one-stage)检测方法。两阶段方法在数据特征提取后先生成区域提取(Region Proposal)网络,再进行样本的分类与定位回归,代表性算法有区域卷积神经网络(Region based Convolutional Neural Network, R-CNN) [3] 、快速区域卷积神经网络(Fast Region based Convolutional Neural Network, Fast R-CNN) [4] 、更快的区域卷积神经网络(Faster Region based Convolutional Neural Network, Faster RCNN) [5] 。一阶段检测方法从最开始的提取特征到最后预测类别和边界框回归信息,是一个整体的过程,代表性算法有SSD系列算法 [6] 和YOLO系列算法 [7] 。文章 [8] 为了充分利用可见光图像和红外图像的优点,提出了一种图像融合的目标检测算法,通过优化和重新设计YOLOv2算法,提高了其在嵌入式平台上的性能。文章 [9] 设计了一种新的自我关注机制,将查询向量和周围环形区域的关键向量分开计算,提高了旋翼无人机数据集上的检测精度。文章 [10] 提出了一种注意尺度序列融合机制(ASF),采用尺度序列特征融合(SSFF)模块来增强网络的多尺度信息提取能力,并使用三重特征编码器(TPE)模块来融合不同尺度的特征图。
本文针对复杂交通环境下的多目标检测问题,将注意尺度序列融合机制(ASF)融入到YOLOv8算法中,以增强网络对多个不同种类不同尺度的目标的检测能力,另外引入Inner-IoU机制 [11] ,通过辅助边框计算IoU损失,进一步提高算法的检测精度。
2. 本文总体方案
2.1. 总体网络结构
本文提出了一种基于改进yolov8的多目标检测算法ASF-YOLv8,该算法模型主要包括三大模块:主干特征提取模块(Backbone)、特征加强模块(Neck)、检测模块(Detect)三个部分构成,如图1所示。
在图1所示的ASF-YOLOv8算法网络结构图中,Conv、C2f、SPPF、Concat和Detect模块的操作流程和YOLOv8一样,在此本文不做过多说明。SSFF-YOLOv8算法的主干特征提取模块Backbone仍然沿用了YOLOv8的CSPDarkNet结构;特征加强模块(Neck)则进行了重新设计,主要是在Neck部分加入了TFE、SSFF和CPAM模块,其中TFE模块的操作流程如图2所示,SSFF和CPAM模块在2.2节和2.3节详细说明;检测模块(Detect)采用了和YOLOv8一样的三个解耦检测头,分别用来检测大目标、中目标和小目标。

Figure 1. Network structure of the proposed algorithm
图1. 本文所提算法的网络结构
TFE模块的结构如图2所示,它的主要作用是为了将大、中、小三个尺度的特征图信息进行融合。大尺度的特征图large依次经过卷积Conv模块、下采样DownSampling模块和卷积Conv模块后在Concat模块与另外两个支路融合,其中DownSampling模块采用两类下采样方式:最大池化Maxpooling和平均池化Avgpooling。中尺度的特征图则经过一个卷积Conv模块直接融合,小尺度的特征图依次经过卷积Conv模块、上采样UpSampling模块和卷积Conv模块后进行融合,其中上采样方式为最近邻插值方法。TFE模块通过将不同尺度的特征图信息进行融合,能够改善网络对不同尺寸目标的识别检测能力,尤其是提高对小目标信息的提取能力。
2.2. 尺度序列特征融合模块(SSFF)
SSFF模块的结构如图3所示,它的主要作用是将多个尺度图像的全局或高级语义信息进行融合。SSFF模块有三个输入,分别对于大、中、小尺度的特征图,三个特征图经过前期的处理后达到相同的尺寸,在Stack模块进行堆叠,之后进入3D Conv模块进行3d卷积操作,然后经过BN模块归一化、SiLU模块函数激活后得到输出。SSFF模块通过对三个尺度的特征图进行融合,增强了网络的多尺度信息提取能力。
2.3. 通道和注意力模块(CPAM)
CPAM模块的结构如图4所示,它包括两部分网络结构信道注意力网络Channel attention networks和位置注意力网络Position attention networks。CPAM模块有两个输入Input1和Input2,其中Input1来自TFE模块的输出,Input2来自SSFF模块的输出。
信道注意力网络Channel attention networks首先对每个信道采用全局平均池化Avgpooling,然后经过1d的卷积Conv1D模块和激活函数Sigmoid模块,最后与没经过Conv1D和Sigmoid模块的支路相乘。信道注意力网络可以增强信道之间的相互作用信息。位置注意力网络Position attention networks将信道注意力网络的输出和Input2进行合并作为输入,之后分成两个支路进行处理(Pw和Ph支路,其中Pw支路提取网络的宽度信息,Ph支路提取网络的高度信息),先通过平均池化Avgpooling,然后进入Concat模块进行拼接,之后经过卷积Conv模块,在Split模块进行信道又分离成两条支路,经过激活函数Sigmoid模块后和Position attention networks的输入相乘,得到每个支路的输出,两个支路输出再相乘得到Position attention networks的输出Output。
2.4. 损失函数Inner-IoU
现有的基于IoU的边框回归仍聚焦在通过加入新的损失项来加速收敛,忽视IoU损失项其自身的限制。尽管理论上IoU损失能够有效描述边框回归状态,在实际应用中,它无法根据不同检测器与检测任务进行自我调整,不具有很强的泛化性。在本文中,采用Inner-IoU替换YOLOv8算法中的普通IoU,Inner-IoU使用不同尺度的辅助边框计算损失,能够有效加速边框回归过程,引入尺度因子ratio控制辅助边框的尺度大小用于计算损失。
如图5所示,B和
分别代表锚框和GT框。GT框和Inner GT框的中心点用(
,
)表示,而锚框和Inner锚框的中心点用(
,
)。GT框和Inner GT框的宽度和高度分别用
和
表示,而锚框和Inner锚框的宽度和高度分别用
和
表示。尺度因子“ratio”取值范围为[0.5, 1.5]。Inner-IoU的计算公式如下所示:

Figure 5. Schematic diagram of Inner-IoU
图5. Inner-IoU示意图
(1)
(2)
(3)
(4)
(5)
(6)
(7)
3. 仿真实验与结果分析
3.1. 实验数据集
VisDrone数据集是一个基于无人机视角拍摄的复杂交通场景数据集,如图6所示。该数据集包括10个类别:行人、人群、自行车、汽车、货车、卡车、三轮车、遮阳三轮车、公共汽车和摩托车,同时还包括了许多有用的场景信息,例如天气、地形和时间等。该数据集包括6471张训练集图片、548张验证集图片、1610张测试集图片。
3.2. 仿真实验
通过仿真实验来验证本文算法的性能,具体的实验参数如表1所示。
本文所提算法的训练过程如图7所示,在训练过程中可以看到,随着跌到次数epoch的增加,分类损失clc_loss、预测框损失box_loss和分布特征损失dlf_loss都在不断降低,而预测精度precision、召回率recall和全类平均正确率mAP都在不断上升,最后达到收敛。

Figure 7. Training procedure of the proposed algorithm
图7. 本文所提算法的训练过程
为了验证本文所提算法的性能,我们做了消融实验,在相同的实验条件和参数下,分别对比验证了YOLOv8、ASF + YOLOv8和ASF + YOLOv8 + Inner-IoU的性能,实验结果如图8所示。从图8中可以看到,ASF机制让YOLOv8算法的性能提高了1.1% (mAP50: 34.2%~35.3%),而Inner-IoU机制让ASF + YOLOv8算法的性能提高了0.3% (mAP50: 35.3%~35.6%),因此本文所提算法的性能相比YOLOv8算法提升了1.4%。

(a) YOLOv8
(b) ASF + YOLOv8
(c) ASF + YOLOv8 + Inner-IoU
Figure 8. Algorithm Performance Comparison (mAP50)
图8. 算法性能对比(mAP50)
图9显示的是本文所提算法在测试集上的一些测试情况,从图9中可以看到本文所提算法能够准确地识别行人、人群、自行车、汽车、货车等不同种类的事物,而且在不同场景(白天、夜晚、公路、停车场等)下都能准确识别,对于一些比较密集的小目标群也能有较好的分辨和识别能力。

Figure 9. Testing situation of the proposed algorithm
图9. 本文所提算法的测试情况
4. 结论
本文提出了一种基于改进YOLOv8的目标检测算法ASF-YOLOv8,主要用于解决复杂交通场景下的多目标识别问题。首先,在YOLOv8的基础架构上,加入一种注意尺度序列融合机制(Attentional Scale Sequence Fusion, ASF),该机制能够对不同尺度的特征图进行融合,从而获得更好的图像特征,提取出更丰富、更准确的特征信息。然后,对损失函数进行改进,引入Inner-IoU,通过辅助边框计算IoU损失,进一步提高算法的检测精度。实验结果表明,在VisDrone数据集上,本文所提算法比YOLOv8算法的平均精度mAP50提升了1.4%,该算法在复杂交通环境下具有更高的检测精度。
基金项目
省级科研平台项目资助(黔科合平台人才-CXTD [2021] 008)。