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] 设计了一种新的自我关注机制,将查询向量和周围环形区域的关键向量分开计算,提高了旋翼无人机数据集上的检测精度。为了更好地完成无人机航拍图像多目标检测,近几年来的主流方法大多都是基于YOLO系列算法来实现的。在文献 [10] 中,研究者对YOLOv5算法进行了优化,将原有的CIoU替换为Focal EIoU,此举显著提升了模型的收敛速度和回归精确度。而文献 [11] 则专注于提升无人机航拍图像中小目标物体的检测效果。通过在YOLOv7网络中加入SPPFS金字塔池化模块、优化损失函数以及引入CBAM注意力机制等手段,该网络对小目标物体的检测精度得到了显著提升。然而,这样的改进也导致了网络结构的复杂化。在文献 [12] 中,同样为了提高对小目标物体的检测能力,研究者对YOLOv7网络进行了改进,增加了专门用于小目标检测的网络层,并引入了注意力机制。这些措施确实提高了网络的检测精度,但相应地也增加了网络的复杂度,提高了所需的参数量,并增加了网络层数。
由于YOLO系列算法的快速发展,YOLOv8算法在目标检测领域已经展现出强大的性能,因此针对无人机航拍图像的多目标检测问题,本文在YOLOv8的算法基础上进行改进,将注意尺度序列融合机制(ASF) [13] 融入到YOLOv8算法中,以增强网络对多个不同种类不同尺度的目标的检测能力,另外引入Wise-IoU机制 [14] ,通过自适应调整权重系数,进一步提高算法的检测精度。
2. 本文总体方案
2.1. 总体网络结构
本文提出了一种基于改进yolov8的多目标检测算法ASF-YOLv8,该算法模型主要包括三大模块:主干特征提取模块(Backbone)、特征加强模块(Neck)、检测模块(Detect)三个部分构成,如图1所示。

Figure 1. Network structure of the proposed algorithm
图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一样的三个解耦检测头,分别用来检测大目标、中目标和小目标。
本文所做改进重点在Neck部分:
(1) 本文在TFE模块前增加了Conv模块,该模块的一个作用是加强特征信息的融合度,第二个作用是通过调整Conv模块的参数使TFE模块的三个输入能够达到尺度统一,方便后续处理;
(2) 本文用C2f + Conv模块代替ASF算法里的CSP模块,主要原因是CSP模块里面用的是C3结构(YOLOv5算法用的),本文用C2f结构代替C3模块,可以增加网络性能,提高估计精度,另外后续可以继续改进C2f模块,增加了网络的灵活性;
(3) 本文的CPAM模块的输出直接进入检测层(即Head部分的最上面的Detect),不再向下面两层传递信息,而在ASF算法里面CPAM模块的输出信息还会继续向下面两层传输,参与Head部门的下面两个Detect。本文的这种改进降低了网络的复杂度,大大降低了运算量,而且还能保持相对高的精度。这样改动的主要原因是CPAM模块的输出原本就是通过下面两层信息不断上采样之后与最上层信息融合的,因此最下面两层检测再通过CPAM模块得到有效的信息量就比较少。
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. 损失函数Wise-IoU
Wise-IoU参数示意图如图5所示,Wise-IoU共有三个版本,即Wise-IoUv1、Wise-IoUv2、Wise-IoUv3,不同版本适用的场景各有不同,本文使用 Wise-IoUv1 (简写为WIoUv1)损失函数替代原YOLOv8模型所使用的IoU,以平衡不同质量图像的模型训练结果,获得更准确的检测结果。

Figure 5. Schematic diagram of Wise-IoU
图5. Wise-IoU示意图
WIoUvl的计算公式如下所示:
(1)
(2)
其中,
和
为锚框的中心点坐标,
和
表示目标框的中心点坐标,
和
表示最小包围框的宽和高,
为惩罚项。为了防止
产生阻碍收敛的梯度,将
和
从计算图中分离(公式2中上标 * 表示此操作)。
3. 仿真实验与结果分析
3.1. 实验数据集
VisDrone数据集是一个基于无人机视角拍摄的复杂交通场景数据集,如图6所示。该数据集包括10个类别:行人、人群、自行车、汽车、货车、卡车、三轮车、遮阳三轮车、公共汽车和摩托车,同时还包括了许多有用的场景信息,例如天气、地形和时间等。该数据集包括6471张训练集图片、548张验证集图片、1610张测试集图片。
3.2. 仿真实验
通过仿真实验来验证本文算法的性能,具体的实验参数如表1所示。
本文所提算法的训练过程如图7所示,在训练过程中可以看到,随着跌到次数epoch的增加,分类损失clc_loss、预测框损失box_loss和分布特征损失dlf_loss都在不断降低,而预测精度precision、召回率recall和全类平均正确率mAP都在不断上升,最后达到收敛。在训练过程中,每训练一个epoch后都会获得一个参数模型,然后用该参数模型在验证集上进行验证,从图7的第二排前3个小图中可以看到:预测框损失box_los不断降低并收敛在0.7左右,分类损失clc_loss不断降低并收敛在1.15左右,分布特征损失dlf_loss不断降低也收敛在1.15左右。算法的精度指标:精度precision达到47%左右,召回率recall达到35%左右,mAP50和mAP50-95分别达到35%和20%左右。

Figure 7. Training procedure of the proposed algorithm
图7. 本文所提算法的训练过程
为了验证本文所提算法的性能,我们做了消融实验,在相同的实验条件和参数下,分别对比验证了YOLOv8、ASF + YOLOv8和ASF + YOLOv8 + WIoUv1的性能,实验结果如图8所示。从图8中可以看到,ASF机制让YOLOv8算法的性能提高了1.1% (mAP50:34.2%→35.3%),而Wise-IoU机制让ASF + YOLOv8算法的性能提高了0.9%(mAP50:35.3%→36.2%),因此本文所提算法的性能相比YOLOv8算法提升了2.0%。另外观察这10类不同目标的检测精度,本文算法与YOLOv8算法进行对比后发现,在pedestrian:行人、people:人、bicycle:自行车这几类目标的检测精度提升较多,说明本文算法在密集型小目标的检测能力方面更为突出。
图9显示的是本文所提算法在测试集上的一些测试情况,从图9中可以看到本文所提算法能够准确地识别行人、人群、自行车、汽车、货车等不同种类的事物,而且在不同场景(白天、夜晚、公路、足球场等)下都能准确识别,对于一些比较密集的小目标群也能有较好的分辨和识别能力。图9右上角图片展示了本文算法对密集型小目标的检测能力,图9左下角图片展示了本文算法在夜景下的检测能力。

(a) YOLOv8
(b) ASF + YOLOv8
(c) ASF + YOLOv8 + WIoUv1
Figure 8. Algorithm performance comparison (mAP50)
图8. 算法性能对比(mAP50)

Figure 9. Testing situation of the proposed algorithm
图9. 本文所提算法的测试情况
4. 结论
本文提出了一种基于改进YOLOv8的目标检测算法ASF-WIoU-YOLOv8,主要用于解决无人机航拍图像中的多目标检测问题。首先,在YOLOv8的基础架构上,加入一种注意尺度序列融合机制(Attentional Scale Sequence Fusion-ASF),该机制能够对不同尺度的特征图进行融合,从而获得更好的图像特征,提取出更丰富、更准确的特征信息。然后,对损失函数进行改进,引入Wise-IoU机制,该机制通过自适应地调整权重系数提高目标检测的灵活性和鲁棒性,从而进一步提高算法的检测精度。实验结果表明,在VisDrone数据集上,本文所提算法比YOLOv8算法的平均精度mAP50提升了2.0%,该算法在无人机航拍图像上具有更高的检测精度。
基金项目
省级科研平台项目资助(黔科合平台人才-CXTD[2021]008)。