1. 引言
随着遥感技术的日益发展,通过高分辨率航空卫星采集得到的遥感图像已经在遥感图像目标检测方向提供了良好的基础 [1] 。遥感技术最开始应用在军事方面,之后逐渐从军事发展到民用领域。在军事领域,遥感图像飞机检测主要应用于军事侦察、导弹预警、武器制导和军事测绘等领域;在民用领域,遥感图像飞机检测主要应用在机场飞机的调度和更高效地搜寻失联飞机等方面。
目标检测一直是计算机视觉领域中的重要的任务之一 [2] 。目标检测的具体任务就是在一张图片中确定目标对象的位置并且判断检测到的目标类别。传统的目标检测算法仅仅适用于背景信息简单、特征明显的情况,而在实际的应用中,待检测的目标存在背景信息复杂、目标尺度变化多样等问题,所以传统的目标检测算法已经难以适用于当前的实际需求。
近几年,深度学习领域已经取得了突破性的进展,深度学习的方法已经被广泛应用在计算机视觉领域。基于深度学习的目标检测算法可以同时提取同一物体不同尺寸的特征信息,对于背景复杂的目标也有更好的鲁棒性和泛化能力,更加适用于实际场景中。目前,基于深度学习的目标检测算法主要分为两大类:第一类是基于候选框的两阶段目标检测算法,第二类是基于回归问题的单阶段目标检测算法 [3] 。基于候选框的两阶段目标检测算法是由特定的算法生成一系列候选框,再通过卷积神经网络对目标进行分类,最后对边界框的位置进行精修,具有代表性的算法有R-CNN [4] 等一系列算法;基于回归问题的单阶段目标检测算法直接将目标边框定位问题转换为回归问题处理,直接对预测的目标物体进行回归,不用产生候选框,经典的算法有SSD [5] 和YOLO等系列算法。这两类算法有各自不同的优势,前者在检测精确度和定位精度上占优,但后者在检测速度上更具有优势。
2. 算法基本原理
在YOLOv5算法提出一年多后,2021年8月,来自旷视Zheng Ge等人提出高性能YOLOX [6] 检测算法。在过去两年里,由于目标检测的主要进展在无锚点(Anchor-free)检测器 [7] 、先进的标签分配策略和端到端的(NMS-free)检测器 [8] 等方面,但之前提出的YOLOv4、YOLOv5算法还是基于anchor的检测器,使用手工分配策略进行训练,没有集成这些新的技术。矿视的研究者们将这些新技术巧妙地集成在一起,使算法的性能得到提升。本文所采用的模型是YOLOX-L,YOLOX-L整体可以分为3部分,其中,Backbone部分采用主干特征提取网络CSPDarknet来进行浅层特征的提取,Neck部分即采用FPN + PAN模块进行深层特征提取,Prediction部分采用了三个解耦头对目标框进行预测,得到最终的检测结果。
YOLOX是一种端到端的单阶段目标检测算法,通过在网络中采用残差模块和多尺度的检测方法,在通用的公开数据集上有不错的检测效果。YOLOX算法主要针对通用数据集,通用数据集中的目标在整张图片中占比较大,背景信息简单,而遥感图像中存在飞机目标所占像素较少,特征信息不明显,目标排列紧密,背景信息复杂等问题,YOLOX算法不能很好地适用于遥感图像飞机目标检测。针对遥感图像飞机目标高精度检测的需要,本文在基于YOLOX算法的基础上,借鉴了两个方法进行改进,第一种方法是在残差网络的基础上加入通道注意力和空间注意力,可以使网络专注于学习图像中具体目标的结构而忽略背景图的内容细节,从而提高了目标检测的精度,第二种方法是把网络中的空间金字塔池化改进为空洞空间金字塔池化来融合多尺度上下文信息,提高感受野,增强同一物体不同尺寸的检测精度。基于以上两种方法,可以有效地改善背景信息复杂、目标尺寸小、特征不明显、多尺度等问题。
2.1. 残差模块
残差模块的结构如图1所示,残差网络可分为两个部分,对于某一特征图,特征图依次经过主干部分1 × 1卷积和3 × 3卷积,学习到图像的特征信息,残差边部分不做任何处理,直接将主干的输入与输出结合得到最终的结果。
残差网络的特点是容易优化,并且能够增加相当的深度来提高准确率,其内部的残差块使用了跳跃链接,缓解了在深度神经网络中增加深度带来的梯度消失的问题。
2.2. 空间金字塔池化(SPP)
空间金字塔池化(SPP) [9] 是由微软研究院的何凯明提出的,空间金字塔池化模块的结构如图2所示,SPP模块是由4个并行的分支构成,分别是kernel size为5 × 5,9 × 9,13 × 13的最大池化和一个跳跃连接,采用不同大小的池化核丰富了特征图的表达能力,有利于待检测图像中目标尺寸大小差异大的情况。
SPP的特点如下:
1) 不管输入尺寸多大,SPP可以产生固定大小的输出;
2) SPP可以使用同一图像不同尺寸作为输入,得到同样长度的池化特征;
3) 训练图像尺寸的多样性比单一尺寸的训练图像更容易使得网络收敛;
4) 解决了卷积神经网络对图像重复特征提取的问题,大大提高了产生候选框的速度,且节省了计算成本。

Figure 2. Spatial pyramidal pooling structure
图2. 空间金字塔池化结构
3. 算法改进
3.1. 注意力模块
CBAM [10] 是一种轻量级的注意力模块,它包括两个注意力模块,分别为通道注意力模块和空间注意力模块,如图3和图4所示,它分别是在通道和空间维度上进行Attention。
通道注意力主要是压缩了输入的特征图空间层面的内容。通道注意力模块首先是将输入的特征图分别经过一个全局最大池化和一个全局平均池化,分别形成两个1 × 1 × C的权重向量;然后将得到的权重向量分别经过一个两层的多层感知机,从而映射为每个通道的权重;其次将映射后的权重进行相加,后边接sigmoid激活函数输出;最后将得到的通道权重1 × 1 × C和原特征图H × W × C按相应的通道进行相乘。
空间注意力主要是对通道注意力的补充,引入的作用是挖掘最有用的内容信息。空间注意力模块,特征图首先分别按通道经过最大池化和平均池化,得到两个H × W × 1的权重向量。通道数从H × W × C变为H × W × 1,是对同一特征点的所有通道进行池化;得到的两张特征图进行堆叠,形成H × W × 2的特征图空间权重;再经过一个卷积层,特征图的维度从H × W × 2变为H × W × 1,H × W × 1的特征图表示了特征图中每个点的重要性,数值越大重要程度越高;最后将得到的空间权重H × W × 1与原特征图H × W × C相乘。
3.2. 注意力残差模块
采用注意力模块 [11] ,可以使网络有效地关注图像的目标信息特征,充分地进行目标信息的提取,并且忽略不重要的背景信息,可以有效地提高网络分类精度的提升。因为一个标准的卷积具有一定的通道数,每个通道都可以自适应地提出某一特定特征。
本文中采用了残差模块与注意力模块相结合的方法组成注意力残差模块,形成了更深的网络结构,从而使网络的分类能力有所提升。如图5所示,特征图首先经过两个卷积进行特征提取,其次再经过两个注意力模块,最后将得到的特征与原输入图像相加。
3.3. 空洞空间金字塔池化模块
在遥感飞机图像的检测任务中,由于遥感飞机图像所处的背景信息复杂、曝光环境、目标尺寸小和飞机目标有不同的摆放角度等特点,因此在检测飞机的时候导致提取信息不充足,进而使遥感飞机目标的检测率下降。本文采用了ASPP [12] 模块来改进原有的SPP模块,ASPP其核心思想就是采用了空洞卷积来代替了SPP模块中的池化操作,采用空洞卷积有效避免了池化操作带来的局部信息与细节信息的消失,可以有效考虑全局信息。YOLOX模型中采用的是SPP模块,SPP模块采用了三个不同大小的池化核进行池化操作,SPP模块在进行池化操作的过程中虽然感受野扩大了,但是图像的分辨率不断下降,包含的信息越来越抽象,并且图像的局部信息与细节信息会逐渐消失。本论文引入的ASPP模块采用了不同扩张率的空洞卷积来代替池化操作,并且结合了全局平均池化,整合了全局空间信息,可以有效提取同一物体不同尺寸的特征信息。
空间金字塔池化模块(ASPP)如图6所示,ASPP模块分别将输入的特征经过5个不同的分支,第1个分支是经过一个1 × 1的卷积操作,目的是和原始输入特征的感受野保持一致,第2、第3和第4个支路分别经过不同的扩张率的空洞卷积,扩张率分别是6、12和18,并且卷积核为3 × 3,目的是进行特征提取,得到不同感受野的特征图来融合多尺度信息。第5个分支是为了获取全局特征,将特征做全局平均化池化后,最后经过1 × 1卷积和归一化处理,再进行上采样。YOLOX模型中采用ASPP模块后,模型可以学习到遥感飞机图像的不同尺寸大小的特征,更好地降低模型的漏检率。

Figure 6. Spatial pyramid pooling module
图6. 空间金字塔池化模块
4. 实验
4.1. 实验与分析
4.1.1. 实验平台
本次实验所使用的配置如下:操作系统为Ubuntu 16.04,利用2块v100 GPU进行训练,开发平台为pycharm,开发语言为python,深度学习框架为pytorch。
4.1.2. 实验数据集
本实验采用了RSOD [13] 和UCAS-AOD [14] 两种数据集中包含飞机遥感图像作为数据集。RSOD数据集是武汉大学公开的,UCAS-AOD数据集是由中国科学院大学提出的遥感图像数据集。
数据集的特点(见图7):图片比较模糊、目标尺寸差异大、小目标多、目标和背景特征相似等特点。

Figure 7. Characteristics of the dataset
图7. 数据集的特点
4.1.3. 实验的评价指标
本实验是用平均正确率(AP)、F1 Score、精确度(Precision)和召回率(Recall)四个评价指标来评价该模型的性能。在目标检测算法模型中平均正确率是用来评价单一种类的指标。平均正确率(AP)是用精确度和召回率来评判算法模型的准确度,采用PR曲线下的面积来表示AP值。
所用公式如下列所示:
(1)
(2)
(3)
(4)
其中,TP (True Positive)为真正类,表示一个实例本来是正例并且被判断为正类;FP (False Positive)为假正类,表示一个实例本来是负例但被误判为正类;FN (False Negative)为假负例,表示一个实例本来为正例但被误判为负例。
4.1.4. 消融性实验对比
为了展现算法的检测性能,本论文在相同的实验环境下对YOLOX算法进行改进,分别用YOLOX的算法在RSOD数据集和UCAS-AOD数据集上加入了CBAM模块和ASPP模块,实验分别从四个指标来评判算法的性能。实验结果如表1和表2所示。
从上边两个表的数据可以看到,论文中加入的两个模块对YOLOX算法检测飞机遥感图像的性能有明显的提升。在RSOD数据集上最终改进后的精度相比原YOLOX算法增加了0.3%,召回率增加了3.04%,AP值增加了1.17%,F1-Score增加了0.02。在UCAS-AOD数据集上最终改进后的精度相比原YOLOX算法增加了0.57%,召回率增加了1.73%,AP值增加了1.57%,F1-Score增加了0.01。
如图8所示,是精度–召回率曲线图对比。从曲线图中的数值可以对比出,在两个数据集上AP值分别提高了1.17%、1.57%。

Table 1. Comparison of Aircraft ablation experiments in the RSOD dataset
表1. RSOD数据集中的Aircraft消融实验对比

Table 2. Comparison of Plane ablation experiments in the UCAS-AOD dataset
表2. UCAS-AOD数据集中的Plane消融实验对比
YOLOX算法、YOLOX + CBAM算法和YOLOX + CBAM + ASPP算法在测试集上的检测结果如图3所示。由于飞机遥感图像目标尺寸差异大、小目标多、背景信息特征相似并出现在曝光环境下,从而 [15] 造成误判、漏检等情况的出现,如图9所示是YOLOX、YOLOX + CBAM和YOLOX + CBAM + ASPP算法测试对比,本文所提出的方法对YOLOX算法有明显的改进。对照组1在YOLOX原算法中存在着误检和漏检的情况;对照组的目标尺寸比较小,在检测时由于特征信息不充足,导致原算法的检测结果存在着漏检的情况,改进后的算法在小目标上的检测效果有所提升;对照组3的飞机目标处在曝光的环境下,背景信息和飞机目标的特征信息极为相似,导致原算法在曝光环境下的检测效果极差,在改进后的算法中检测结果有所提升。

Figure 8. Comparison of precision-recall graphs
图8. 精度–召回率曲线图对比

Figure 9. YOLOX YOLOX + CBAM and YOLOX + CBAM + ASPP algorithm test comparison
图9. YOLOX YOLOX + CBAM和YOLOX + CBAM + ASPP算法测试对比
5. 结论
本文是以遥感图像中飞机目标尺寸小、背景信息复杂、多尺度等问题进行研究,提出了基于YOLOX的改进算法。本文在原有的YOLOX算法框架中加入CBAM注意力机制模块,可以有效地提高小目标检测的精度,同时对背景信息复杂的图片可以更多关注目标信息,抑制其他无用的背景信息。本文采用空洞空间金字塔池化不仅可以有效地融合多尺度的上下文信息而且可以增大感受野。
本文所提出的改进方法在RSOD数据集上的检测效果有不错的效果,为了证明所改进算法的有效性和鲁棒性,在UCAS-AOD数据集上进行了验证,同样,检测效果也得到了提高。
基金项目
项目批准号:62266045,项目名称:工业人工智能中跨媒体协同深度安全态势感知理论和应用研究。
NOTES
*通讯作者。