1. 引言
随着科技的飞速进步,无人机因其独特的优势——体积小、成本低、灵活性高及操作简便,已在军事侦察、农业监测、灾害救援及交通监控等多个领域展现出广泛的应用前景。在这些应用场景中,无人机目标检测技术发挥着举足轻重的作用。然而,无人机航拍图像的特性,如目标尺度变化大、小目标数量多、目标重叠与遮挡等,为检测任务带来了前所未有的挑战[1]。
近年来,深度学习在目标检测领域取得了显著成就,形成了两阶段算法和单阶段算法两大分支。尽管两阶段算法,如Fast R-CNN [2]和Mask R-CNN [3],在检测精度上表现优异,但其高昂的计算成本和较慢的检测速度限制了其广泛应用。相对而言,单阶段算法,如SSD [4]、YOLOv5和YOLOv7 [5],凭借其检测速度快、实现难度低的特点,受到了更广泛的青睐。为进一步提升检测性能,研究者们进行了诸多尝试。例如,张徐[6]等人通过融入Swin Transformer模块,显著提升了YOLOv7在复杂背景下的目标特征提取能力;谭亮[7]等人则通过改进YOLOv5的颈部结构,使用SPD-Conv增强了网络的特征提取,从而提高了检测精度;陈卫彪[8]等人则采用深度可分离卷积,并针对小目标增加检测层,进一步提升了检测精度。
尽管上述研究在目标检测领域取得了显著进展,但在无人机航拍图像目标检测任务中,仍存在算法精度低且不易于部署在无人机上的关键问题。传统的目标检测算法在面对无人机航拍图像中的小尺寸、大尺度变化目标时,往往难以达到理想的检测效果。因此,本文致力于解决这些问题,提出了一种改进的YOLOv10算法。
具体而言,我们对YOLOv10算法进行了两方面的关键改进:首先,将C2f模块进行革新,通过结合递归门控卷积(gnConv)与c2f进行二次创新,得到C2f-GConv模块,该模块为无人机航拍图像目标检测算法带来了明显的性能提升,使得模型在保持高效计算的同时,能够更准确地检测和定位图像中的目标。其次,我们将骨干网络替换为EfficientFormerV2,该网络在保持与MobileNetV2相似的大小和速度的同时,实现了约4%的top-1精度提升,从而显著提高了模型的效率和性能。通过这些改进,我们的算法在无人机航拍图像目标检测任务中实现了明显的性能提升,为解决算法精度低及不易于部署在无人机上的问题提供了有效方案。
2. YOLOv10算法
YOLOv10算法是由清华大学研究团队最新提出的,它在YOLO系列中代表了重要的进展,解决了先前版本的关键限制,同时引入了创新特性以提升性能和效率。YOLOv10通过一系列架构和训练协议的优化,重点平衡了效率和准确度。它引入了一种新颖的方法,称为一致的双重分配,用于无需NMS [9]的训练,这在训练期间采用了一对多和一对一策略的组合,确保了训练与推理之间的一致性,在推理过程中无需进行非极大值抑制(NMS)。此外,YOLOv10还优化了模型架构的各个组成部分,以最小化计算开销同时提升性能,包括轻量级分类头、空间-通道解耦下采样和排序引导的模块设计等。
3. 改进YOLOv10n算法
为了解决航拍图像检测精度低的问题,本文以YOLOv10n为基线进行改进,分别为将C2f模块进行改进、替换骨干网络。改进的网络结构如图1所示。
Figure 1. Improved YOLOv10n algorithm network structure
图1. 改进YOLOv10n算法网络结构
3.1. C2f-GConv模块
在改进的YOLOv10n无人机航拍图像检测算法中,C2f模块是一个关键的创新点,它通过融合可变形卷积[10] (Deformable Convolution, DCN)和全局信息卷积[11] (Global Context Convolution, GConv)来增强模型对目标特征的捕获能力。这种改进的C2f模块不仅能够适应目标的形变和尺度变化,还能够融合全局上下文信息,从而提升检测精度。改进后的模块结构如图2所示。
Figure 2. C2f-GConv structure diagram
图2. C2f-GConv结构
C2f模块与GConv的融合
C2f模块的基本结构包括一系列的卷积层,这些卷积层通过可变形卷积来适应目标的几何变化。GConv则是一种新颖的卷积操作,它通过聚合全局上下文信息来增强局部特征的表达能力。
GConv的核心思想是将全局信息融入到局部特征中。给定输入特征图X,GConv的操作可以表示为:
其中,Y是输出特征图,f(X, K)表示标准的卷积操作,其中K是卷积核,g(X)是全局信息增强模块,它通过以下步骤实现:
1) 全局平均池化:计算整个特征图的平均值,得到全局特征G。
2) 全局特征转换:将全局特征G通过一个小型的全连接网络进行转换,得到增强的全局特征G'。
3) 特征融合:将转换后的全局特征G'广播到整个特征图,与原始特征图X进行逐元素相加。
融合到C2f模块
在C2f模块中,我们将GConv与可变形卷积相结合。首先,通过可变形卷积层捕获目标的几何变化,然后通过GConv层融合全局上下文信息。这种结构不仅能够适应目标的局部形变,还能够利用全局信息来增强特征的表达能力。
具体来说,C2f模块的输出O可以通过以下公式计算:
其中,DCN(X)表示通过可变形卷积处理后的特征图,GConv表示全局信息卷积操作。通过这种改进,C2f模块能够更有效地处理无人机航拍图像中的小目标和复杂背景,从而提高检测算法的整体性能。
3.2. 替换骨干Efficientformerv2
在最新的无人机航拍图像检测算法研究中,我们针对YOLOv10n的骨干网络进行了创新性的改进,引入了一种名为EfficientFormerV2 [11]的先进模块,以替代原有的C2f模块。这一改进旨在提升模型对小目标的检测能力,同时保持算法的高效性。
EfficientFormerV2模块的设计融合了轻量化的Transformer结构与高效的卷积机制,专注于提取无人机航拍图像中的细微特征。该模块首先通过一个轻量级的卷积层来捕获图像的初级特征,紧接着是一个创新的自注意力层,该层采用局部窗口化的自注意力机制,以降低计算复杂度并增强模型对局部特征的捕捉能力。
在自注意力层之后,EfficientFormerV2模块利用深度可分离卷积层进一步提炼特征,并通过ReLU激活函数[12]增强模型的非线性表达能力。为了实现多尺度特征的融合,我们在模块中集成了一种改进的特征金字塔网络(FPN) [13]结构。这种结构不仅优化了特征融合过程,还提升了模型对不同尺寸目标的检测性能。替换的骨干网络如图3所示。
Figure 3. Replaced EfficientFormerV2 backbone network
图3. 替换EfficientFormerV2骨干网络
通过引入EfficientFormerV2模块,改进后的YOLOv10n模型在保持高速检测的同时,显著增强了对小目标的检测精度。我们相信,这种改进将为无人机航拍图像检测技术的发展提供新的动力。
4. 实验结果与分析
4.1. 实验数据集
本文采用VisDrone2019数据集,该数据集由AISKYEYE团队发布。数据集收集自14个不同城市,涵盖了多种环境条件,包括城市和乡村景观、各种天气和照明条件。VisDrone2019数据集包括了6471张训练图像、548张验证图像以及1610张测试图像,共涵盖了10个不同的目标类别。
4.2. 实验设置
本实验在操作系统Windows10下进行,GPU为NVIDIA RTX 3090,24GB显存;CPU为Intel(R) Core i9 13900K,64G运行内存。深度学习框架Pytorch 2.1.2,CUDA11.8,Python3.8。模型输入图像大小为640 × 640,优化器选用SGD,动量设置为0.937,初始学习率为0.01,训练周期为400轮,批量大小设为16,其他训练参数采用官方推荐参数。
4.3. 评价指标
本文采用准确率P、召回率R和平均准确率mAP来表示检测精度,采用参数量、计算量和检测速度(FPS)来评价模型的复杂度和大小。
4.4. 消融实验
为了进一步分析验证每一个改进对航拍图像检测性能的有效性,本文进行一系列消融实验,以YOLOv10n为基准模型,每一个实验都不使用预训练权重,在相同的实验环境和参数下,分别在基准模型上替换Efficientformerv2骨干、改进C2f_GConv模块和组合改进。实验结果如表1所示。
Table 1. Ablation experiment
表1. 消融实验
方法 |
Efficientformerv2 |
C2f_GConv |
P (%) |
R (%) |
mAP50 (%) |
mAP50-95 (%) |
参数量 |
FPS |
1 |
× |
× |
45.9 |
34.8 |
34.8 |
20.1 |
2.3 × 106 |
155 |
2 |
√ |
× |
46.3 |
36.5 |
36.9 |
21.4 |
3.8 × 106 |
84.3 |
3 |
× |
√ |
47.0 |
35.3 |
35.8 |
21.2 |
1.7 × 106 |
135 |
4 |
√ |
√ |
49.6 |
37.1 |
38.0 |
21.9 |
3.0 × 106 |
90 |
由表1可知,方法2是替换Efficientformerv2骨干,精度得到了2.1个百分点的提升,参数量有所提升,Efficientformerv2使网络更好地学习小目标的特征,并与其它特征相融合,提高检测精度;方法3是将C2f模块与GConv的融合改进,mAP50提升了1个百分点的同时参数量减少,证明可变形卷积能有效捕获航拍图像中不规则目标的特征;方法4是加入了所有改进,相比基线模型,精度提升3.2个百分点,计算量有所增加。由此可以看出,参数量的增加主要是由于改进Efficientformerv2造成的,但是检测精度有了显著提高且FPS的值为90帧/s,仍能满足实时性的要求。消融实验证明每一个改进都能够提升检测精度,证明了改进的有效性。
4.5. 对比实验
为了进一步验证本文算法检测无人机航拍图像的有效性,将本文算法与目前主流的两阶段和单阶段算法进行表2所示对比。
Table 2. Comparison experiment
表2. 对比实验
算法 |
参数量 |
GFLOPs |
mAP50/% |
Faster-RCNN |
41.2 × 106 |
206.7 |
21.9 |
YOLOv5s |
7.0 × 106 |
15.8 |
34.2 |
YOLOv6n |
4.4 × 106 |
11.9 |
30.2 |
YOLOv7tiny |
6.0 × 106 |
13.3 |
34.0 |
YOLOv8n |
3.0 × 106 |
8.1 |
33.9 |
YOLOv8s |
11.1 × 106 |
28.7 |
39.2 |
YOLOv8m |
25.9 × 106 |
79.3 |
43.1 |
YOLOv8l |
43.6 × 106 |
165.4 |
47.0 |
YOLOv10n |
2.2 × 106 |
6.8 |
34.8 |
本文 |
4.6 × 106 |
11.3 |
38 |
从表2中可以看出,两阶段算法Faster-RCNN,在实时性方面表现不佳,参数量和计算量也都远远超过本文算法,检测精度比本文算法低了16.1个百分点。YOLOv5s算法的量级大于本文算法,但是其检测精度低仍然低于本文算法3.8个百分点,参数量比本文算法多出了2.4 × 106。YOLOv6n在参数量和计算量与本文算法接近,都易于在无人机上部署,但是YOLOv6n的检测精度远低于本文算法,对无人机图像的检测效果不理想。YOLOv7tiny与本文算法有很大不同,其结构中有较多的ELAN模块,检测精度低于本文算法4个百分点,参数量也高于本文算法。YOLOv8s的量级也高于本文算法,本文算法只用了很小的参数量和计算量就达到了与YOLOv8s十分接近的精度,只比YOLOv8s低了1.2个百分点,达到了39.1%。对比YOLOv8m和YOLOv8l,尽管这两个模型检测精度较高,分别达到了43.1%和47.0%,但参数量也分别达到了25.9 × 106和43.6 × 106,远远超出了本文算法的参数量,巨大的参数量和计算量会影响到实时性,不易于部署。综合分析,本文算法优于目前主流的检测算法,证明了其检测无人机航拍图像具有显著的优越性。
4.6. 检测效果分析
为了更直观的展示本文算法的有效性,图4为改进后的算法和基线模型在不同场景下的检测效果对比情况,左侧小图为本文算法的检测效果,右侧小图为YOLOv10n的检测效果。
在遮挡场景下,如图4(a)所示,本文算法能检测出被树木遮挡的汽车,右侧的基线模型出现了较为严重的漏检现象。在如图4(b)所示的昏暗场景下,基线模型出现漏检,本文算法可以检测出远处昏暗的摩托车。在密集场景下,本文算法仍可以检测出密集堆放的摩托和远处的汽车。在复杂背景下,基线模型依然出现漏检、错检的现象,本文算法成功识别出角落的汽车。综上所述,本文算法具有较好的检测性能。
(a) 遮挡场景
(b) 昏暗场景
(c) 小目标密集场景
Figure 4. Comparison of detection results
图4. 检测结果对比
5. 结束语
航拍图像目标检测技术对军事和民用领域具有重要意义。为改善无人机航拍图像中目标小、尺度变化、相互遮挡及背景复杂等因素造成的检测精度低、漏检的问题,在YOLOv10n的基础上进行改进。首先将C2f模块进行改进,利用递归门控卷积(gnConv)与c2f融合二次创新得到C2f-GConv,C2f-GConv为无人机航拍图像目标检测算法带来了明显的性能提升,使得模型在保持高效计算的同时,能够更准确地检测和定位图像中的目标。同时将骨干网络替换成Efficientformerv2,使得EfficientFormerV2在保持类似MobileNetV2大小和速度的同时,比MobileNetV2高约4%的top-1精度,明显提高了模型的效率和性能。在VisDrone2019数据集上,改进后的算法相较于YOLOv10n算法mAP50值提升了3.2%,并与目前主流算法相比综合性能较好,能够满足实时性和准确性的需求。下一步工作在保证精度的前提下轻量化模型,以便更好地部署在无人机上。