基于深度学习的多尺度导弹发射井目标检测*
2021-11-25孟曦婷计璐艳赵永超杨炜暾
孟曦婷,计璐艳,赵永超,杨炜暾
(中国科学院空天信息创新研究院 中国科学院空间信息处理与应用系统技术重点实验室,北京 100094; 中国科学院大学,北京 100049)
遥感图像目标检测是遥感领域研究的热点问题之一,在军事侦察、地质勘探、城市建设等多个领域发挥着重要作用。军事目标检测是遥感图像目标检测的一个重要分支。在军事目标中,导弹发射井[1-3]作为导弹发射阵地的主要样式,是重要的军事目标之一。发射井目标检测的研究可以在军事侦察和战略部署等方面为国防项目提供帮助与支持。发射井目标检测任务具有以下2个特点:1)样本数量少,没有已标注的可用于研究的数据集;2)发射井在不同分辨率的遥感图像中呈现多尺度的特性。目前针对发射井目标检测方面的相关研究甚少,研究如何针对导弹发射井进行检测具有重要意义。
针对上述问题,本文提出导弹发射井目标检测研究方法。首先,构建首个发射井目标检测数据集,实现从无到有的突破,可以为后续相关领域的研究提供支持。其次,设计一个适用于多尺度发射井目标检测任务的检测模型,有效解决了导弹发射井目标检测问题,检测效果良好。最后,在公开遥感数据集上对模型进行测试,证明该方法在其他遥感图像场景同样适用。
1 研究现状
传统的目标检测算法是通过滑动窗口遍历整幅图像,从而获取目标可能存在的区域,然后对这些区域进行特征提取,常见的图像手工设计特征有尺度不变特征变换(scale-invariant feature transform,SIFT)[4]、方向梯度直方图(histogram of oriented gradient,HOG)[5]、局部二值模式(local binary pattern,LBP)[6]和Haar-like[7]等特征,最后使用分类器对这些提取的窗口特征进行分类,判断是否含有目标并得到目标的类别,常见的分类器有支持向量机(support vector machine,SVM)[8]、Adaboost[9]等。目前随着遥感技术的发展,不同场景下的高分辨率遥感图像不断涌现,传统目标检测算法受限于其对先验知识和数据本身特征的依赖,并不适用于该场景下的目标检测任务。
深度神经网络能够从海量的数据中自动学习特征,在自然场景目标检测任务中,典型的基于深度学习的算法[10-16]取得了优异的检测效果。R-CNN(region-convolutional neural networks)[10]提出双阶段检测网络并取得了突破性进展,此后双阶段检测模型成为目标检测任务的重要方法。在R-CNN的基础上,Fast R-CNN[12]、Faster R-CNN[17]和R-FCN(region-based fully convolutional networks)[15]等基于区域生成的双阶段检测模型不断涌现,这些算法在降低网络计算复杂度的同时提升了检测精度。为了提升多尺度目标检测的效果,特征金字塔网络(feature pyramid networks,FPN)[18]在Faster R-CNN模型的基础上提出融合多尺度特征图的思想,充分利用各个分辨率下的特征信息。SSD(single shot multibox detector)[13]和YOLO(you only look once)[19]是典型的单阶段目标检测算法,其思想是基于回归的检测方法,极大地提高了算法的检测速度。Cascade R-CNN[20]是典型的多阶段检测模型,它采用多阶段迭代回归的思想逐步提高候选区域的质量,有效地提升了检测效果。
由于深度神经网络在自然场景目标检测任务中的出色表现,学者们开始将其应用于遥感图像目标检测任务中。R-P-Faster R-CNN[21]在小数据集上实现了令人满意的检测效果。Xu等[22]将可变形卷积层[23]与R-FCN结合进一步提高了检测精度。Ren等[24]采用自顶向下和横向连接的方式生成一张高分辨率高质量的特征图,进一步提高了可变形Faster R-CNN模型的性能。
在目前已经发表的论文中,还没有学者针对导弹发射井目标检测进行研究,因此本文的研究方向新颖且具有重要意义。
2 研究区域及数据
2.1 研究区域
本文研究的目标是导弹发射井,研究区域为北美中部,用于构建数据集的发射井目标均位于此区域内,目标图像来自于Google Earth。由于Google Earth中的图像是不同分辨率下的遥感图像,所以发射井目标在图像中呈现多尺度特性。
2.2 数据
由于发射井目标的数量较少,目前没有可用于研究的数据集,因此在设计检测算法之前,构建有效的能够用于发射井目标检测的数据集至关重要。本文以来自Google Earth公开遥感图像平台的数据为基础进行数据集的构建。原始数据共有178个发射井目标,原始图像大小为1 280像素×720像素,具有RGB 3个通道,发射井形态主要有2种:突显和半淹没。在构建数据集的过程中,本文充分满足了数据集的多样性、充分性和鲁棒性3个条件。主要构建步骤如下:
步骤1针对目标的尺度多样性,获取数据集原始图像。对于相同的区域,在不同分辨率条件下,Google Earth中获取的图像有所不同,这导致发射井目标在图像中尺度大小存在差异。为了适应不同分辨率下的发射井检测任务,本文分别在Google Earth上获取5个不同分辨率下的发射井目标图像。发射井的实际尺寸约为24.5 m×21 m(由于发射井形状不规则,这里采用的是建筑体外接矩形的尺寸),如图1(a)分别展示了原始数据集中5个尺度下的图像样例,表1中对每个尺度下发射井的大小及图像分辨率做了详细说明,其中尺度6的图像仅在预测时使用。随着图像分辨率的降低,发射井目标的尺寸逐渐减小,Google Earth不同分辨率下的图像中,发射井目标呈现多尺度特性。本文通过采集不同分辨率下的发射井目标图像,保证了数据集中目标的尺度多样性。
图1 数据集典型样本Fig.1 Typical samples of the dataset
步骤2数据集预处理。获取178个发射井目标在5个不同分辨率下的图像后,从中随机选取150个发射井作为训练样本,其余样本用于最终评估算法的有效性。然后,对训练样本的所有图像进行人工标注,这里采用的标注策略与VOC2007数据集[25]的标注方式相同。同时,为了降低检测网络的计算复杂度,将原始图像统一裁剪为800×800,重叠率为200像素。
表1 各尺度发射井尺寸及图像分辨率说明Table 1 The wells’ scale and the images’ resolution
步骤3为保证数据集目标的形态多样性,本文进行一系列数据增强操作。在实际采集遥感图像时,传感器成像时的角度和方位有所变化,因此导弹发射井在图像中的方向和角度会存在差异。在构建数据集的过程中,需要充分考虑到目标角度和方位的多样性。针对目标的形态多样性,本文主要对原始数据集进行了一系列数据增强操作,增强方式包括水平翻转、上下翻转、顺时针旋转45°/135°和逆时针旋转45°/135°,图1(b)展示了部分增强后样本。通过以上数据增强操作,数据集中发射井目标的形态多样性得到保证。
步骤4通过目标填充的方法保证数据集的背景复杂性。众所周知,背景纷繁复杂是遥感图像的重要特点之一。从Google Earth上获取的发射井目标图像背景较为单一,在实际检测过程中遥感图像的背景较复杂,而且可能存在一些相似的负样本。为了使算法能够在复杂背景下检测发射井,并且有效区分出相似的负样本,需要增加数据集背景的复杂性和多样性。为了增加数据集的鲁棒性,采用一种叫做目标填充的方式。这种方法的主要思想是将发射井目标裁剪下来,填充到目标较多背景较复杂的遥感图像中去,通过对这样的数据集进行训练,提高网络在复杂背景下的鲁棒性,降低网络在复杂场景下将非目标检测为发射井目标的概率,即降低虚警率,图1(b)展示了目标填充后的图像。
最终,本文构建出完整的用于发射井目标检测任务的数据集,数据集中共10 000张图像,该数据集满足多样性、充分性和鲁棒性3个条件。
3 研究方法
本文在Cascade R-CNN[20]模型的基础上进行改进,提出改进的多阶段检测算法,图2展示了该算法的整体结构。在生成候选区域阶段,通过改变FPN中特征图的融合方式,使得网络能够在训练中根据发射井目标特性,自动学习出特征融合的方式。在精检测阶段,模型通过特征图的堆叠充分利用上下文信息,并采用级联多阶段检测的方法降低发射井目标检测的虚警率。
图2 整体网络结构Fig.2 The structure of the proposed network
3.1 多尺度特征融合网络
在不同分辨率的遥感图像中,导弹发射井目标的尺度差异较大,在检测发射井的过程中,需要充分考虑到各个尺度发射井的检测效果。
特征融合 在神经网络中,随着网络层次的加深,特征图的分辨率逐渐降低、语义信息不断增强。浅层特征图包含更准确的位置信息,深层特征图包含更丰富的语义信息。同时,高分辨率的特征图感受野较小,适合小尺寸目标检测,低分辨率的特征图感受野较大,适合大尺寸目标的检测。FPN采用将浅层特征图和深层特征图结合的思想,它通过特征融合的方式提升了多尺度目标检测的效果。
融合方式 FPN通过横向连接,将自下而上和自上而下网络中相同尺度的特征图进行融合。深层的特征图经过最近邻上采样后得到分辨率较高的特征图,随后该特征图通过逐像素相加的方式与自下而上网络中相同分辨率的特征图进行融合。我们都知道,深层特征图中包含的位置信息较弱,采用最近邻上采样的方式得到的特征图中位置信息仍然存在较大偏差。FPN采用逐像素相加的方式,并没有根据自下而上网络中特征图中的目标特征进行位置信息的矫正。同时,这种融合方式的普适性较差,网络无法根据不同目标特征学习到最好的融合方法。以上因素均会导致检测结果中的位置信息不准确。
基于以上分析,本文在FPN的基础上改进特征融合方式,设计了特征融合模块(feature fusion module,FFM),图2详细展示了FFM的特征融合方式。首先,自下而上网络中的特征图经过一个1×1卷积层后,与经过上采样后相同分辨率的特征图堆叠。然后,堆叠得到的特征图通过一个3×3卷积层进行特征融合,得到一个包含多尺度目标信息的特征图。FFM采用3×3卷积层完成特征融合操作,由于卷积层的权重可在网络训练过程中自动学习得到,所以这种融合方式可以根据目标特征学习到最好的融合方式。相比于逐像素相加的方式,本文设计的FFM更具有可优化性和普适性。
遥感图像中存在许多形状大小与发射井较为相似的目标,除改进特征融合方式,本文也重新调整了锚框的设置方式。在图2的网络中,为充分覆盖不同状态下的导弹发射井目标,在{F2,F3,F4,F5,F6}上预定义尺寸为{32×32,64×64,128×128,256×256,512×512}的锚框,每个锚框长宽比设置为{1/6,1/4,1/2,1,2/1,4,6}。实际检测时,由于传感器的方位角度会有所不同,图像中发射井的形状大小可能会有变化,本文的锚框设置方式可以尽可能保证更多的真实目标边框被分类为正样本。在生成候选区域阶段,本文采用与FPN相同的锚框分类策略,即当IoU>0.7时,将候选区域判定为正样本,当IoU<0.3时,将候选区域判定为背景。
3.2 多阶段级联检测
在生成候选区域阶段,本文通过特征融合的方式得到各个尺度下的特征图。在精检测阶段,需要在特征图上剪裁对应的候选区域进行更精细的分类和回归。FPN网络是将候选区域通过某种策略分配到各个尺度的特征图中,然后分别在{F2,F3,F4,F5}裁剪相应尺度下的候选区域。FPN剪裁候选区域的方式只利用了单个分辨率的特征图信息,然而特征图中的上下文信息对于目标的定位至关重要,充分利用多尺度特征图的目标信息可以使定位更准确。正如3.1节中分析的,深层特征图具有较大的感受野,能够提供粗略的信息来确定目标是否在视野中,浅层特征图则有更小的感受野以及更加细节的特征,使得神经网络能够更加细致地定位目标,这与人眼在定位图像中物体时的原理相同。
基于以上讨论,本文在精检测阶段结合各个分辨率下的特征图,充分利用目标的上下文信息,具体网络结构如图2中检测网络部分所示。具体地,先将{F3,F4,F5}上采样至F2大小(F2的尺寸为200×200,相对于输入图像的步长为4),然后将{F2,F3,F4,F5}堆叠成特征图Dconcat,Dconcat中富含丰富的上下文信息,所有的候选区域都在Dconcat中裁剪特征(Dconcat尺寸为200×200)。为了保证检测网络的计算速度,在训练阶段非极大抑制(non-maximum suppression,NMS)选取分数高的12 000个回归框,保留2 000个作为候选区域,在测试阶段NMS选取分数最高的10 000个回归框并保留300个。在精检测阶段,多阶段级联检测网络的网络结构及IoU阈值的设置方法均采用与Cascade R-CNN相同的方式。
3.3 损失函数
通过级联检测的方式,复杂的检测任务可以分解为一系列更简单的检测阶段,前一个阶段的输出被视为下一阶段的输入。通俗地讲,第i阶段的损失函数可以表示为
(1)
(2)
其中调和参数α1,…,αN均设置为1。本文中采用与Cascade R-CNN相同的三阶段级联网络结构,所以N=3。
4 实验
本文在深度学习框架Pytorch上展开实验,并使用预训练模型ResNet-50[27]初始化网络。共训练70 000次迭代,初始学习率设为0.001,经过25 000次迭代后学习率下降为0.000 1,经过65 000次迭代后学习率下降为0.000 01。训练时网络使用随机梯度下降法对参数进行优化,动量设置为0.9,权重衰减率设置为0.001。训练集、验证集和测试集的分割比例为60%、20%和20%。
4.1 消融实验
4.1.1 模型
(二)有助于提高课堂教学效率。心理学研究表明,根据学习者的学习状态,学习可分为“被动学习”与“主动学习”两类。在被动学习的状态下,学习者往往缺乏学习的兴趣、意义、效率和效果,他们只有学习的压力而没有学习的动力,只有学习的苦恼而没有学习的快乐,而学生在主动学习状态下所产生的学习效率则截然不同。面对同样的“学习量”,主动学习者的学习时间短,学习质量高,精神面貌也好。
基准模型 本文针对发射井的目标检测模型是在Cascade R-CNN的基础上改进得到的,因此选择Cascade R-CNN作为消融实验的基准模型,为保证实验的公平性和准确性,实验参数设置保持严格一致。本文衡量模型性能的评价指标为平均准确率(mAP)。
FFM的作用 正如本文在3.1节中讨论的,FFM使得网络可以在训练过程中自动学习特征图的融合方式,根据发射井的目标特征信息学习到最佳的融合方式。本文将FFM的融合方式与逐像素相加的融合方式做了对比实验,结果如表2所示。采用FFM模块的融合方式后,检测算法整体的mAP提升0.004% mAP,结果为96.029% mAP。虽然采用FFM模块后整体检测的mAP提升不明显,但其仍在一定程度上发挥了积极的作用,这得益于它可优化可学习的特点。
表2 算法消融实验结果Table 2 Results of ablation experiments of algorithms
融合上下文信息的作用 在精检测阶段,为了充分利用特征图中上下文信息,将多个分辨率的特征图进行堆叠,然后进行后续检测阶段的操作。为了验证堆叠特征图的作用,将算法与FPN的策略做了对比实验。实验结果表明,相比于从各尺度特征图中分别剪裁候选区域的策略,添加特征图堆叠操作后,检测算法mAP提升1.320% mAP,这得益于对上下文信息的充分利用。
4.1.2 数据集
本文构建了首个用于导弹发射井目标检测的数据集,主要采用数据增强的方式来满足数据集的多样性、充分性和鲁棒性。数据增强方式主要包括常规增强方式(翻转、旋转)和目标填充方式2种,本文对数据增强过程做了对比实验。原始数据集经过预处理后的大小为1 526张图像,进行常规增强方式后数据集大小为6 289张图像,目标填充后数据集大小为10 000张图像。为保证实验公平性,每次实验采用的训练模型及参数设置均相同,训练集、验证集和测试集的分割比例为60%、20%和20%。
表3中展示了数据集消融实验的对比实验结果,从表中结果可以看出在未进行数据增强操作时,检测的mAP较低,原因是深度学习模型需要在大量标签数据下进行训练,未进行扩充的数据集无法训练出性能好的模型。当在进行常规增强操作后的数据集上训练模型时,算法检测性能明显提升,整体提升41.93% mAP,这得益于数据集多样性的提高。
表3 数据集消融实验结果Table 3 Results of ablation experiments of dataset
从对比实验结果看出,添加了目标填充的增强方式后,在发射井目标检测任务中,检测性能有所下降。这是因为添加了目标填充的图像后,数据集复杂性更高,算法在复杂场景下检测出发射井的难度更大。但是本文采用目标填充的方式,目的是要在模型训练过程中使得算法更加鲁棒,以便提高在实际复杂场景中检测时的性能,在构建数据集的过程中,这一操作是十分必要的。
4.2 发射井检测结果
表4 多尺度检测召回率结果Table 4 The results of multi-scale detection recall
图3展示了本文提出的算法和Cascade R-CNN的漏检情况对比样例。图3(a)和3(b)分别是本文的算法在尺度5和尺度6下的检测结果与Cascade R-CNN在相应尺度下检测结果的对比,可以看出对于相同的目标,Cascade R-CNN存在漏检,本文的算法可以检测出来。同时发现,对于小尺度半淹没的发射井目标,本文的算法也存在漏检,如图3(c),推测这是因为数据集中半淹没形态的发射井样本较少,未得到充分的训练。在Google Earth中不同分辨率下的图像代表了发射井的不同尺度,实验表明,当分辨率高于1.20 m时,本文的算法可以较准确地检测出发射井目标。
图3 多尺度检测结果对比图Fig.3 Comparison of multi-scale detection results
多状态 对不同状态下的发射井进行检测实验,结果如图4。发射井有突显和半淹没2种常见形态,在一定尺度下,本文模型可以有效地检测出这2种形态的发射井目标。同时,在某些情况下只有部分发射井结构存在于图片中,对于这种截断的情况,本文的算法也可以有效地检测出来,这为算法的实际可落地性提供了佐证。
图4 多状态发射井检测结果Fig.4 Multi-state well buildings detection results
鲁棒性 实验对算法的鲁棒性进行了测试。将发射井目标截取出来,填充到复杂背景的遥感图像中,本文的算法能够将复杂背景下的发射井目标检测出来,并且不存在将非目标误检为发射井的情况,这表明本文的算法适用于复杂背景下的检测任务,可以有效应用于实际检测任务中。
4.3 对比实验
4.3.1 算法对比
本文将算法与几种主流的目标检测算法进行了对比实验,表5展示各个算法的检测精度和速度,实验时输入图像分辨率均为800×800。除主流的自然场景目标检测方法外,还与ICN[28]算法进行对比,ICN是针对遥感图像提出的多尺度目标检测算法。从实验结果看出,本文算法的检测结果超过ICN 0.14% mAP。在检测精度方面超出Cascade R-CNN 1.32% mAP,最终检测结果为97.35% mAP。在检测速度方面,虽然比其他典型的目标检测算法速度慢,但与Cascade R-CNN的检测速度几乎相同。因此,本文的算法在保证检测速度的同时,提高了Cascade R-CNN的检测效果,并超过目前大部分主流算法,有效解决了发射井目标检测问题。
表5 检测算法对比结果Table 5 The results of different algorithms
4.3.2 多类别检测性能评估
为测试算法的鲁棒性,在DOTA[29]遥感数据集上测试了算法的性能。DOTA遥感数据集是一个大型公开的遥感数据集,包含2 806张航拍图像,这些图像来自于不同的传感器和平台,主要来自于Google Earth,还有一些来自于高分二号等卫星的数据。DOTA数据集的目标包含各种各样的规模、位置、形状,共15个类别,188 282个实例。
在实验过程中,分别将图3网络中的特征图C2、F2和Dconcat提取出来,进行可视化分析,结果在图9(b)~9(d)中展示出来。本文采用特征图的热力图进行可视化分析,热力图反映了特征图中像素值的大小,由于不同的特征图数据分布情况不同,热力图的响应度大小会有所差异。同时,由于F2和Dconcat是多个特征图加和所得,其热力图存在负值情况。观察图5中不同特征图中的响应差异,可以发现相比于C2和F2,多尺度特征图堆叠后得到的特征图Dconcat中具有更突出的特征信息,语义信息更强。这也进一步证明了,充分利用上下文信息,有助于突出目标特征信息。
图5 特征图可视化Fig.5 Feature map visualization
本文在DOTA数据集上测试算法性能,主要目的是检验算法在多类别目标和复杂场景下的鲁棒性,不希望其将非发射井目标误判为发射井。同时,为了展现算法的优越性,我们也对Cascade R-CNN算法做了相同的实验。本文在推理预测时在DOTA数据集上进行实验。Cascade R-CNN算法进行推理时,存在误检的情况,图6展示出其误检的目标情况,而本文提出的模型不存在任何误检的情况。究其原因,是因为Cascade R-CNN算法在提取候选区域时没有融合上下文目标的信息,对于目标特征的提取不够充分,导致存在误检的情况。本文的算法具有较高的鲁棒性,不仅在构建的发射井数据集上实现了较高的准确率,而且在复杂场景下也表现良好。
5 总结
本文针对多尺度导弹发射井目标检测问题提出有效的解决方法。在数据层面,建立了首个用于导弹发射井目标检测任务的数据集,在该数据集上可进行检测模型的有效训练。同时,该数据集可为后续相关领域的研究提供支持。在算法层面,设计了适用于多尺度发射井目标检测的模型,有效地解决了发射井检测问题,检测结果超过目前经典算法。