1. 引言
遥感在民生建设、城市规划、国防安全等方面都有重要的用途 [1] 。由于拍摄方式特殊,采用俯瞰形式,因此遥感目标存在密集排列、尺寸差大等特点 [2] [3] [4] 。近年来,随着卫星航拍技术的快速发展,遥感图像的处理与应用成为研究的热点 [5] [6] [7] 。
目标检测 [8] 作为计算机视觉的一项基本任务,旨在识别图片或者视频中人们感兴趣的物体。当前,基于遥感图像的目标检测算法大致可以分为三类:一是基于传统的检测,主要包含有两个阶段:1) 训练,2) 预测。较为经典的算法有尺度不变特征变换(SIFT) [9] 、方向梯度直方图(HOG) [10] ,形变部件模型(DPM) [11] 等。该方法提取特征存在着不充分、模型泛化能力差等问题,因此导致检测的精度不高。二是基于深度学习的检测,按实现方式差异可分为两类:一是二阶段法,通过候选区域实现遥感图像物体检测,较为经典的方法为R-CNN [12] [13] [14] 系列,优点在于检测速度快;二是一阶段算法,通过回归分析来实现检测,较为经典的方法有YOLO系列 [15] [16] [17] [18] ,SSD系列 [19] ,其优势在于检测精度高。三是基于Transformer [20] 的端到端的检测,Transformer最初运用在自然语言处理中与卷积神经网络带给模型复杂的结构不同,因此在图像处理领域也取得了不错的成果。
当前,基于Transformer的遥感图像目标检测已经成为研究热点。近年来,许多学者提出了使用Transformer进行遥感图像目标检测的方法。使得模型在准确率、稳定性等方面都有所提升,对于实际问题具有重要的意义。Ding J [21] 等提出的ROI Transformer,主要是运用旋转感兴趣区域来提取特征,并将提取到的特征和Transformer结合,以此来实现旋转目标检测任务。Yang X [22] 等提出了R3Det通过使用从粗粒度到细粒度的逐步回归的方法来快速和准确的检测目标。O2DETR [23] 是DETR [24] 在遥感检测领域的首次尝试,通过引入深度可分离卷积,以此来替代注意力机制实现检测任务。
同时查找相关资料表明基于Transformer的目标检测还存在着一些挑战,其中较为经典的有模型复杂度高、计算资源要求大等。针对这些问题,本文选择DETR模型,在此基础上进行了改进,主要工作是将主干网进行替换,并在其bottlenet层引入SENet [25] ,随后将GIOU损失更换为更加稳定的CIOU (Complete-IOU) [26] ,通过上述方法来达到提高遥感目标检测准确度的目的,使得其在该领域内具有更为实际的意义。
2. DETR模型
DETR [24] 是将Transformer [20] 初次引入到目标检测领域,它是Transformer进入目标检测领域的开山之作。模型结构由三部分组成:backbone、Transformer、检测头。
观察图1可知:
首先,输入图像,由Resnet-50实现特征提取,并且融入位置编码信息,通过上述操作得到模型的输入;
其次,提取的特征图送入Transformer结构,在这里,值得一提的是解码器位置的输入是由两个部分组成,一个其有前面的编码器得到的结果,另外一个则是object queries;
最后,经过上述两个步骤之后,得到包含图像特征信息的特征向量,之后经过FFN获得最终的预测结果。FFN本质上是一个感知机,由3层网络结构构成,其中使用的激活函数为ReLU。在检测的最后阶段,每个对象查询都需要使用该方式来得出物体的预测框和类别,这里的预测框由三个值构成,即目标的中心点以及宽和高。
DETR模型的损失在预测对象和真实对象之间产生了最佳的二分匹配,然后优化特定对象(边界框)的损失。其主要分为以下几个步骤:
1) 检测框和真实框的匹配代价
(1)
其中y表示对象的真实集,
表示N个预测的集合,
表示的是真实值yi和索引为σi之间的预测成本。其定义如下所示:
(2)
公式(2)中1是一个符号,后面括号内容为真时取值为1,否则取值为0;i、ci和bi分别表示真实框中的第i个元素、类别和边界框,后面两个分别记为bboci;σ(i)是某个组合中真实框第i个元素对应预测框中的索引;
和
分别表示预测框中第σ(i)个probs和bbox,分别记为probsσ(i)和bboxσ(i)。其中Lbox的计算表达式如下:
(3)
公式(3)中λiou和λL1分别为GIOU损失和L1损失的权重系数,Liou是GIOU损失函数,LL1是L1损失函数。
2) 计算我们的损失函数,表示为:
(4)
其中
为公式(1)中计算所得到的最优分配。
3. 改进DETR算法
本文将DETR应用到遥感检测领域,在原始模型的基础上进行了改进,首先将主干网用resnet101替换原始的resnet50,其次在主干网中的bottlenet层中引入SENet (Squeeze-and-Excitation Networks) [25] ,随后将GIOU损失更换为更加稳定的CIOU (Complete-IOU, CIOU) [26] ,使其更加适用于本文的目标任务。
3.1. 引入SENet
SENet (Squeeze-and-Excitation Networks) [25] 是由Hu等人所提出的注意力模块。它将通道和空间注意力有机结合,形成一个复杂的网络结果,其具体的结构如图2所示 [25] 。
SENet注意力机制处理全局信息是通过挤压和激励两种方式来进行的,具体操作所运用公式如下:
(5)
(6)
(7)
式子(5~7)比较详细的解释了SENet的具体过程,换言之,即输入图像,通过挤压、激励输出图像尺度的过程,式子中的
代表了图像的高宽,
代表u的第c个通道的第
个元素。
SENet很通用,可以非常简单、容易的和现有的网络进行结合,它利用二维全局池化计算出通道信息特征图,以较低的计算成本实现了性能的提升;并且它不改变原始模型的结构。将其引入到比较典型的主干网络—残差网络,使得模型最终的精确性得到较好的优化。
下图3就是将SENet注意力机制引入到残差网络中的结构示意图。

Figure 3. SENet in residual network
图3. 残差网络中的SENet
3.2. 损失函数设计
针对GIOU损失存在的稳定性较差的问题,我们引入了CLOU Loss [26] ,将DETR模型中的损失优化为CIOU loss与L1 loss的结合,它考虑了目标框之间的完整交叉,并通过修正因子的方式,使得当目标框有重叠甚至是有包含时,我们的回归更加快速和准确。
本文引入的CIOU损失能从一个好的边界框损失的三要素进行考虑,即分别从重叠面积、中心点距离和纵横比。通过对其充分考虑,不仅在一定程度上解决了GIOU损失所存在的问题–当预测框和真实标签包含是,我们的损失会退化为IOU的情况;而且它相较于GIOU有着很好的收敛性。
CIOU损失的定义如下:
(8)
(9)
(10)
上述式中的ρ指预测框和真实框中心点的距离,q表二者之间的最小闭包区域的对角线的长度,其中的v表纵横比参数。
4. 实验与结果分析
4.1. 数据集
本次实验选用DOTA数据集 [27] ,DOTA_V1.0的图像来自于Google Earth,其中一些由JL – 1卫星拍摄,其余由中国资源卫星数据和应用中心的GF – 2卫星拍摄。它包含2806幅图像,包含15个类别,共计188,282个实例。其中15个类别分别为飞机(Plane, PL),直升机(Helicopter, HC),游泳池(Swimming Pool, SP),环形车道(Roundabout, RA),港口(Harbor, HA),篮球场(Basketball Court, BC),足球场(Soccer Ball Field, SBF),网球场(Tennis Court, TC),田径场(Ground Track Field, GTF),棒球场(Baseball Diamond, BD),储油罐(Storage Tank, ST),桥梁(Bridge, BR),船舶(Ship, SH),小型车辆(Small Vehicle, SV),大型车辆(Large Vehicle, LV),然后将图片按照3:1:2划分为训练集、验证集、测试集。
4.1.1. 数据预处理
因所采用的数据集是公开的,图片尺寸比较大,若直接把它输入到模型中进行训练,存在显存问题,使得计算资源不能承担。所以我们需对图片数据进行处理,采用官方给出的DOTA配套数据处理工具DOTA devkit_master进行处理,首先利用DOTA.py来加载原始图片并绘制出目标边框;其次使用ImgSplit.py将数据切分为1024 × 1024的图像块。
4.1.2. 数据转换
由于DETR所支持的数据集格式为COCO、VOC格式,因此我们需要将DOTA数据标签的TXT文本转换为COCO格式,DOTA的数据集格式如图4所示。
观察图4可知,该数据包含五类,其中image source表图片来源Google Earth,GF-2 and JL-1 satellite,第二个值gsd相当于比例尺,第三个值8个坐标值
,任意四边形的四个顶点的坐标顶点按顺时针顺序排列,第一个点为起点,第四个值表示的是实例类别,最后一个值表示该实例是否难以检测(1表示困难,0表示不困难)。
4.2. 实验评价指标和条件
本实验运用的评价指标为召回率(Recall)、精确率(Precision)、均值平均精确率(mAP, mean Average Precision)。相关计算公式为:
(11)
(12)
(13)
(14)
上述公式中,TP和TN分别表示为识别正确的正、负样本的个数; FN和FP分别表示为识别错误的正、负样本的个数。
本文使用在coco2017数据集上提前训练好的模型,首先基于迁移学习加载预训练,然后在此基础上进行训练。实验所需环境和参数如表1所示。
4.3. 结果分析
本文将改进之后的DETR算法命名为S-C-DETR,和DETR在相同的训练环境下分别训练200轮次,检测的结果如表2所示。

Table 2. Comparison of target detection algorithms
表2. 目标检测算法对比
观察表2可知,改进之后的算法相较于原始模型而言,其检测得到的平均精度提高了2.01%,通过实验表明改进方式有效。
4.4. 性能对比实验
为更加直观的显示出改进之后算法的优越性,将在相同环境中训练得到的改进前后的损失和MAP曲线,以及各个类别的准确率曲线。如图5所示。
(a)
(b)
(c)
Figure 5. Training loss, mAP change curve and AP of each category. (a) Loss variation curve; (b) mAP change curve; (c) AP by category
图5. 训练损失、mAP变化曲线及各类别的AP。(a) 损失变化曲线;(b) mAP变化曲线;(c) 各类别AP
观察图5(a)知道,在训练过程,模型的损失在前200轮迅速收敛,在200轮之后趋于稳定,没有出现过拟合和欠拟合现象,因此改进之后的训练效果较理想。在改进算法下,训练batch为2,初始学习为10-4,迭代次数为200轮,在200轮左右的时候,模型处于收敛状态,模型损失稳定在0.8左右,训练过程得到正常的收敛效果,且改进之后模型的收敛效果更优。
观察图5(b)知道,改进前后模型的mAP的变化趋势,在训练轮次到达200轮次时,我们改进之后的算法S-C-DETR的均值平均精度在阈值为0.5时到达了0.623,相较于改进之后的模型的平均精度0.582提升了0.2,证实了我们模型的改进有效。
根据图5(c)可以很直观的观察到模型S-C-DETR在DOTA数据集各个类别的准确率。
4.5. 目标检测算法对比实验
为了验证算法针对于遥感图像目标检测的性能,将本文提出的方法与目标的主流算法进行比较,所有算法都在相同环境下进行,检测结果表3所示。

Table 3. Comparison of mainstream algorithms for target detection
表3. 目标检测主流算法对比
根据表3可以知道,我们的模型S-C-DETR相较于比较经典的一阶段模型SSD和二阶段模型Faster R-CNN的平均均值精度有很大的提升。S-C-DETR模型相较于DETR模型精度提升了2%;相较于SSD提升个10%;除此之外和Faster R-CNN而言提升了20%。因此根据实验证明,模型S-C-DETR针对DOTA的各个类别以及模型的mAP值都有较大的提升,改进有效。
5. 总结
本文针对于遥感图像的目标检测问题,因遥感图像存在的检测难度大等方面的问题,所以本文提出了基于transformer的遥感图像目标检测算法,首先使用迁移学习的方式加载预训练模型,然后再将主干网用Resnet101进行替换,并且再替换后的主干网中引入SENet注意力机制,最后优化损失函数。经过实验表明,改进之后算法再精度方面有一定的提升,因此本文的研究方法在一定程度上为以后的遥感图像检测的研究奠定基础。
NOTES
*通讯作者。