APP下载

锚框策略匹配的SSD飞机遥感图像目标检测

2022-11-15王浩桐郭中华

计算机与生活 2022年11期
关键词:尺度样本飞机

王浩桐,郭中华,2+

1.宁夏大学 物理与电子电气工程学院,银川750021

2.宁夏大学 沙漠信息智能感知重点实验室,银川750021

目标检测是计算机视觉领域的基本任务之一,其中飞机遥感图像目标检测具有重要的研究价值和应用价值。在军用领域,实时检测敌方飞机位置能够使我军时刻掌握敌军飞机的动态;在民用领域,实时检测地面飞机的位置信息对交通及物资调用等具有重要意义。因此,如何在复杂背景条件下的遥感图像中实现对飞机目标高精度实时检测成为了极具挑战的课题[1]。

飞机遥感图像目标检测的核心任务是判断遥感图像中是否存在飞机目标并对其进行检测、特征提取、分类和定位。由于遥感观测平台存在一定的特殊性,导致飞机遥感图像时常会包含复杂的地物背景,同时飞机遥感目标的尺寸、类型、姿态也往往具有不确定性。在飞机目标检测领域,传统的飞机目标检测算法,如边缘提取法和圆周频率滤波法,检测结果极易受到人工设计部分的干扰且检测过程过于繁琐,并不适用于遥感图像的飞机目标检测[2]。现今,得益于硬件GPU的高性能计算,基于深度学习的目标检测模型被广泛应用于遥感图像领域。基于卷积神经网络(convolutional neural network,CNN)[3]的目标检测算法主要分为两类:一类是双阶段目标检测算法,如Fast R-CNN[4]、Faster R-CNN[5]等;另一类是单阶段目标检测算法,如YOLO(you only look once)[6]、SSD(single shot multibox detector)[7]等。但以上算法常用于检测日常生活中的通用物体,对尺度大小不一和背景复杂的遥感图像难以进行有效的飞机目标检测。如果直接将现有的深度学习目标检测算法应用到遥感影像上进行飞机目标检测,显然不能取得与自然光学图像下相同的检测精度。基于此,大量学者对以上深度学习目标检测算法进行改进,将其运用于遥感影像中的飞机检测[8]。文献[9]采用改进锚框宽高比的方法来更加贴合遥感飞机的实际尺寸,虽然这种方式可以一定程度上提高锚框匹配到真实目标的概率,但是忽略了不同检测层之间锚框铺设密度不同的问题。由于飞机遥感图像存在密集和小尺度的现象存在,锚框铺设密度的不同会导致不同尺度的锚框匹配到真实目标的数量差距较大,同时也不利于对小尺度目标的检测。文献[10]采用锚框与真实目标的交并比大于阈值的方式来判定是否为正样本,此种方法和SSD 算法中的锚框匹配策略是一致的,但这种匹配策略会容易发生不同尺度锚框匹配到真实目标的数量差距过大的情况。数量差距过大会不利于网络的有效训练,导致检测精度降低。

针对以上问题并结合SSD 算法的特点,本文提出了一种改进的SSD 目标检测算法(anchor match design single shot multibox detector,AMDSSD)。本文的主要工作包括以下三点:(1)用改进以后的深度残差网络(deep residual network,ResNet)[11]替换SSD算法中的VGG(visual geometry group)[12]特征提取网络,并且额外增加一个包含两种尺度的特征层用以对极小尺度遥感目标的检测[13]。(2)结合飞机遥感图像的特点,重新设计SSD算法中的锚框尺度、锚框比例。而后对特征层进行锚框尺度密集化操作,使得每一个特征层的锚框铺设密度基本一致。(3)在正负锚框样本的判别过程中重新设计锚框匹配策略,使得不同尺度正样本锚框数量趋向于总体正样本平均值。一定程度上用以解决不同尺度正样本锚框数分布不均匀的问题。

1 SSD目标检测算法

SSD 目标检测算法是Liu 等在2016 年提出的一种目标检测算法。这是一种端对端的单阶段目标检测算法,相比Faster R-CNN 其检测效率更高,相比YOLO 其检测精度更高。该算法的优势主要有三方面:其一,采用多种尺度特征进行目标检测。Conv4_3、FC7 层在原图上的感受野较小主要用于检测较小目标物体;而Conv8_2、Conv9_2、Conv10_2、Conv11_2在原图上的感受野较大主要用来检测较大目标物体。其二,设置不同高宽比例的锚框用于更好地匹配目标。其三,使用了多种数据增强的方法,包括水平翻转、裁剪、放大和缩小等。主要目的是为了使得该算法对输入的不同大小和不同形状的目标具有更好的鲁棒性。本文以输入尺寸为300×300 的SSD 网络为例,如图1所示。

图1 SSD算法网络结构图Fig.1 Framework diagram of SSD algorithm

2 改进的SSD目标检测算法(AMDSSD)

由于飞机遥感图像存在目标尺寸小且数目繁多的情况,给目标的分类与定位带来了挑战。在SSD算法中主要负责检测小型目标的是下采样倍数为8的Conv4_3层,一些尺度在8个像素左右的极小尺度目标受限于网络结构的原因基本不可能被检测到。同时SSD最初是被用来检测通用物体的目标检测算法,对于飞机这一固定的目标,原算法的一系列锚框设计体系显然已经不适合。最后,SSD算法中的锚框匹配策略容易发生不同尺度正样本锚框数量差距过大的情况,这是不利于网络整体训练的。

为解决以上问题,以SSD目标检测算法为基础,本文提出了一种用于飞机遥感图像的目标检测算法AMDSSD,该算法相比SSD算法有以下三个改进点,在增加少量训练参数的情况下,既可以提升算法的检测精度,又可以保留SSD算法的实时检测性。

2.1 骨架网络的替换

ResNet 是一种用于特征提取的卷积神经网络。因为其具有高效性和实用性广泛用于计算机视觉目标检测领域。从以往的经验来看,网络的深度对模型的性能至关重要,因此当模型更深时理论上可以取得更好的结果。研究表明,一味地追求网络深度,网络准确度会出现饱和,甚至出现下降,这种现象被称为网络退化。

ResNet 提出了残差结构来解决网络退化的问题,残差结构如图2(a)所示。

图2 残差结构Fig.2 Residual structure

在残差结构中,当输入为x时,其学习到的原始特征记为H(x),残差特征记为F(x),则网络学习到的残差特征可以表示为:

和原始特征H(x)相比,深度残差网络更容易学习到残差特征F(x),当F(x)为0 时,由残差结构组成的网络层仅仅只是做到了恒等映射,至少网络的性能不会因层数变深而下降。但实际上残差特征F(x)不会为0,残差结构会在输入特征基础上学习到新的特征,从而拥有更好的性能[14]。由文献[10]可知,ResNet101 与VGG16 两种特征提取网络以Faster R-CNN作为目标检测算法的成绩如表1所示。

表1 不同特征提取网络在PASCAL VOC 2007/2012上的检测结果Table 1 Test results of different feature extraction networks on PASCAL VOC 2007/2012

本文改进后的残差结构如图2(b)所示,相比原残差结构增加了批量归一化(batch normalization,BN)[15]和Leaky-ReLU[16]。BN的作用是为了对输出特征层进行归一化处理,加快网络的收敛速度,同时也能一定程度上解决梯度爆炸或者梯度消失导致网络无法训练的问题。ReLU 激活函数的特点是当输入小于0 时,输出结果恒为0。这样的结果会导致网络可能会丢失一部分特征信息,个别情况下会导致对应权重无法更新从而无法学习到有效的特征。而Leaky-ReLU 激活函数即使在输入小于0 时,仍然会有不为0的输出,使得模型能够持续更新权重和学习特征。

通过以上分析可知,ResNet 相比SSD 算法中的骨架网络(VGG16)有着更好的特征提取能力。在模型大小与计算量方面,ResNet50 在分类精度方面与ResNet101 相差不多的情况下,计算量远小于后者。因此在改进的过程中,首先将SSD 原本的骨架网络VGG16替换为网络层数相对更深且计算量相对较低的ResNet50。为了让ResNet50网络适合作为SSD算法的骨架网络,现对ResNet50网络进行部分调整,删除和添加一些层作为网络输出的特征层。

在SSD 算法中有6 个尺度和通道数都不相同的输出特征层。为了与SSD算法的输出特征层相匹配,对于输入尺寸为300×300×3的ResNet50,对Conv4_x的第一个残差结构进行修改,将短路连接(shortcut connection)上的卷积核的步长由2修改为1,Conv4_x的输出就变成了38×38×1 024。将其作为SSD 算法中的第二个输出特征层(Feature map 2),与修改前的输出结果(38×38×512)相比,可以发现输出特征层的通道数增加了一倍,得益于残差结构的优点,输出特征层可以学习到的特征信息量变得更丰富,改进后的Conv4_x结构如图3(a)所示,BlockX(X:2、3、4、5、6)由图2(b)组成。当输入尺寸为300×300×3 时,Conv5_x 的特征输出层尺寸和SSD 算法的第三个特征输出层尺寸不一致,故删除ResNet50 网络里Conv4_x之后的层结构,额外设计了5个输出特征层Feature map(3~7)。在每次缩小输出特征层尺寸前使用1×1 的卷积核重新聚合前层的特征信息并调整通道数,之后用3×3 的卷积核缩小输出特征层的尺寸,循环此操作达到多尺度输出特征层的结果。在飞机遥感图像中时常会出现一些尺度极小的飞机目标,负责检测小型目标的Feature map 2层的下采样倍数为8,会导致一些极小目标无法被网络检测出来从而导致检测精度降低。例如面积为8×8 像素的飞机目标通过下采样倍数为8的网络时,目标的特征信息可能只会保留1到2个像素,想要在特征信息如此少的情况下进行目标检测无疑是很困难的。为了提高极小目标的特征信息提取量,额外添加一个下采样倍数为4的输出特征层(Feature map 1)用以检测极小的飞机目标。

Feature map(1~7)是改进后的残差模块与额外添加层的输出结果,因而可以在保证模型训练收敛的同时使特征提取网络具有更好的语义抽象能力。改进以后的ResNet50 如图3(b)所示,改进后的网络整体结构如图3(c)所示。

图3 ResNet50替换VGG16的网络结构图Fig.3 Network structure diagram after ResNet50 replaces VGG16

2.2 锚框体系的重新设计与锚框密集化

锚框尺度大小和比例是否合适直接影响着检测精度的高低,其中锚框尺度大小关联着各特征层实际感受野的大小。据文献[17]可知,在理论感受野的区域中并不是每一个像素都对输出单元有相同的贡献。实际上,理论感受野中的像素对输出单元的贡献是一个高斯分布,即感受野中心区域部分贡献较大,越往边缘贡献越小。文献[17]还使用了CamVid(Cambridge-driving labeled video database)数据集训练了一个用于分割任务的卷积模型,作者尝试从输出映射的中心像素向网络反向传播一个梯度,并将所有其他梯度设置为0,然后检查应用于输入层的梯度。这个模型包括4个下采样操作,每个操作的步长为2。由于这些下采样操作,输出是输入大小的1/16。对于该模型,顶层卷积层单元的理论感受野为505×505。在训练开始时有效感受野仅得到直径为100的一部分。然而在训练的过程中,有效感受野会有一定的增加,在训练的最后阶段有效感受野的直径达到了150,理论感受野的变化如图4所示。经过计算,有效感受野约占理论感受野的20%~30%。

图4 有效感受野变化示意图Fig.4 Schematic diagram of effective receptive field

鉴于理论感受野的每一个像素会有不同的输出贡献,为了使之输出贡献最大化,即神经元将有更多的路径来传播更加有效的信息。将从最后一层的中心像素的梯度传播回所有可能的路径,使得模型的梯度有更大的幅度。由以上内容分析可知,将锚框尺度大小设置为理论感受野大小的20%~30%,不仅有利于网络正向传播计算损失,还可以增大反向传播的梯度回传和加速损失函数快速收敛,从而间接提高网络的检测精度。

锚框的宽高比例关联着检测目标的实际尺寸,据文献[18]可知,常见不同型号的飞机长宽比约为0.6~1.6。除Feature map 1 以外,将锚框的宽高比设置为Feature map 1 识别的目标尺度极小,因此锚框宽高设置为比例仅为1。由于特征提取网络被更换为改进后的ResNet50,网络的各个特征层的理论感受野也发生了变化,理论感受野计算公式如式(2):

其中,lk-1为第k-1 层对应的理论感受野大小,fk为第k层的卷积核大小或者是池化层的池化尺寸大小。由式(2)可计算出特征提取网络被更换后的各特征层的理论感受野。而后根据各特测层的锚框尺度和下采样倍数可计算出锚框的铺设密度,这里用d表示锚框的铺设密度,c和p分别表示锚框尺度和下采样倍数(锚框铺设步长)。锚框的铺设密度计算公式如式(3):

经过式(2)和式(3)的计算可得到重新设计以后的锚框相关信息,如表2所示。

表2 锚框的相关信息Table 2 Information about anchor frame

由表2分析可知,负责检测小尺度目标的Feature map 1的铺设密度与其他各层存在明显差异,这种差异会导致不同尺度的锚框匹配到真实目标的数量差距较大,不利于对小尺度目标的检测。同时Feature map 1 锚框尺度为8 对应的铺设密度过低,造成该尺度的锚框匹配到正样本数量过少。为解决以上问题,本文受文献[19]的启发,在此基础上设计了一种锚框密集化的操作。该方法可以提高Feature map1锚框的铺设密度,能够让特征层上1个特征像素点关联多个锚框从而提高该尺度正样本锚框的数量。具体操作如图5所示,其中正六边形在原图上经过的每一个像素区域表示输出图像1 个特征像素点在原图上的理论感受野范围,示意图上的锚框仅代表锚框铺设的位置,不表示具体锚框大小。

图5 锚框密集化示意图Fig.5 Schematic diagram of anchor frame densification

通过对比锚框密集化前后的示意图可以发现,Feature map 1 上尺度大小为8 的锚框铺设密度增加了2 倍,由最开始的1 个特征像素点关联1 个锚框变化到关联4个锚框。另外,Feature map 7虽然锚框铺设密度低,但是该层是用来检测超大型目标的检测层,在实际的飞机遥感图像中很少会有数量多且体型特别大的飞机目标,因此不做锚框密集化操作,用以减少不必要的训练参数,提高网络的检测速度。

2.3 锚框的策略匹配

SSD 算法中采用锚框与真实目标的交并比大于阈值的方式来判定是否为正样本锚框,这种锚框匹配策略会容易发生不同尺度锚框匹配到真实目标的数量差距过大的情况,这种差距过大的情况不利于网络的有效训练。如图6所示,其中较大和较小的矩形框代表不同尺度的锚框。

图6 锚框策略匹配前的结果Fig.6 Results before anchor box strategy matching

如果锚框的铺设密度相等或者非常接近,那么每一种接近锚框尺度的飞机目标更容易被匹配到相应尺度的锚框,同时被匹配到的锚框数目基本一致。2.2 节已经对网络做了相应的密集化操作,因此满足上述条件。由图6可知,两张图片各自有且仅有两种尺度的飞机目标,每一个飞机目标被3个锚框成功匹配到。对于图6(a),较大尺度的飞机一共有3个正样本锚框,较小尺度的飞机一共有9 个正样本锚框。对于图6(b),较大尺度的飞机一共有3个正样本锚框,较小尺度的飞机一共有30个正样本锚框。不同尺度锚框匹配到真实目标数量差距的情况如图6所示。

这里用N代表正样本锚框的数量,L代表锚框尺度的种类,M代表锚框匹配到不同尺度目标数目的平均值,用D代表不同尺度正样本锚框数与M的差值,M的计算公式如下:

由式(4)计算及相关统计所得结果如表3所示。

表3 统计信息Table 3 Statistical information

由表3分析可知,图6(a)和图6(b)不同尺度的正样本锚框个数相差很大,即使和平均值M相比差距依然很大。假设训练集有1 000 张类似图6(b)正样本锚框数量差距很大的飞机遥感图像,经过统计,有30 000个较小尺度和3 000个较大尺度总计33 000个正样本锚框。极端情况下,模型的学习策略只需要返回一个用来学习较小尺度的正样本锚框的学习器,同时在这个过程中少学习甚至完全不学习较大尺度的正样本锚框,那么学习器就可以达到将近90%的检测精度。然而这种高检测精度的学习器往往没有价值,因为它只能对较小尺度的飞机目标进行目标检测。在现实情况中,飞机遥感图像中会存在多种尺度的飞机目标,并不是只存在较小尺度的飞机目标。因此在模型的训练过程中,如果时常发生类似于以上的这种情况,那么势必会造成模型的学习器更加偏向正样本锚框数较大的那一方,导致模型对多种尺度的飞机目标不能进行有效的学习,也降低了模型目标检测的鲁棒性。

为了解决以上问题,本文受文献[20]的启发,在此基础上提出了一种锚框的策略匹配方法,一定程度上使得正样本锚框的数量趋向于总体正样本锚框平均值,用以提高训练的有效性,增强模型目标检测的鲁棒性,具体方法如下。

相应尺度差值D为正值的正样本锚框数目不变,相应尺度差值D为负值的正样本锚框数目增加F。F的计算公式如下(如果F的计算结果不是整数,将F通过一个向上取整操作得到最终结果):

通过式(5)计算可得,图6(a)和图6(b)红色尺度的正样本锚框数分别需要增加3 个和5 个,在使用SSD算法的锚框匹配策略基础上(SSD算法中阈值为0.5),通过每次降低0.05的阈值循环来提高该尺度对应的正样本锚框数,直至大于或等于F+N(不同尺度)。经过锚框策略匹配后的结果如图7所示。

图7 锚框策略匹配后的结果Fig.7 Results after anchor box strategy matching

通过对比图6和图7可以发现,红色尺度的飞机目标明显被匹配到了更多的正样本锚框。经过增加后的正样本锚框数量为6 和8,明显更加趋向于总体正样本锚框数平均值6.0和16.5。

在实际情况中,不同尺度的正样本锚框数一般不会存在非常大的差距。类似图6(b)这样的个例在训练集中的占比其实是较低的。为了考虑更一般的情况,本文随机选取了500 张飞机遥感图像,统计了锚框策略匹配前后的平均值,如图8所示。

由图8(a)和表2 可知,飞机目标的尺寸是连续的,锚框的尺寸是非连续的。在锚框尺寸接近或者等于飞机目标尺寸时易被锚框匹配到。相反,在锚框尺寸远离飞机目标尺寸时不易被锚框匹配到。例如图8(a)蓝色实线的波峰段的附近正好就处在相应锚框尺度大小的附近,波谷段的情况则正好相反。对比图8(a)和图8(b)可以发现,蓝色实线的波谷段明显趋向于灰色虚线,说明了不同尺度的正样本锚框数更加趋向于总体正样本锚框数均值,也证明了锚框策略匹配在更一般的情况下也会有较好的表现。

图8 匹配前后的平均值Fig.8 Average value before and after matching

在模型的训练过程中,模型会将增加后的正样本锚框纳入到总体正样本锚框中。此时不同尺度的正样本锚框数的占比会更加均衡化,模型的学习器对待不同尺度的飞机目标的注意力也会更加平等,一定程度上提高了模型训练的有效性,增加了模型目标检测的鲁棒性,避免训练出高精度但是无意义的学习器。

2.4 AMDSSD算法的损失函数

针对模型训练过程中遥感图像正、负样本划分不平衡的问题,本文将使用聚焦分类损失函数(focal classification loss)[21]对模型进行优化训练,具体表示为:

式中,N表示与真实框相匹配的候选框的个数,x代表输入图像,c代表目标类别,p代表预测类别概率,l代表候选框,g代表真实的标签框,a为两者的权重。Lfl(x,c,p)和Lloc(x,l,g)分别为聚焦分类损失和边界框回归损失,其中Lloc(x,l,g)借鉴SSD 算法中的边界框回归函数,表示为:

式(6)中的Lfl(x,c,p)结合聚焦分类损失函数采用交叉熵计算损失,表示为:

3 实验与结果分析

3.1 数据集与实验环境

为了评估本文提出的AMDSSD算法检测性能情况,采用两个不同的数据集进行飞机遥感图像实验,包括西北工业大学标注的航天遥感图像和谷歌卫星影像共计2 146 张。各数据集包含尺寸大小不同的图片并且按照7∶3 的比例来划分训练集和验证集。随机选取1 502张作为训练集,644张作为测试集,并根据Pascal VOC 2012 的格式进行标注。此外,依据数据集对目标大小划分的标准(Small object: area <322;322<Medium object:area <962;Big object:area >962)对采集的遥感数据进行划分,由于一些飞机在小分辨率的情况下只有极少的像素个数,已很难通过人眼确定是否为飞机,因此,仅对像素个数超过6 个的目标进行划分。图9为本文数据集的样本示例,从左到右面积类型分别为Small object、Medium object、Big object。

图9 本文数据集的样本示例Fig.9 Sample examples of dataset in this paper

本文的实验环境选用Pytorch 开源框架进行训练、测试,基于ubuntu16.04操作系统,CPU为Intel Core i9-9900K,3.60 GHz,显卡为NVIDIA GTX2080。编译环境为torch-1.6、torchvision-0.7,cuda10.1、python 3.6语言编程。

3.2 评价标准

对于飞机这单一种类的遥感图像,本文采用精度均值(average precision,AP)和每秒帧率(frames per second,FPS)作为算法的评价标准。可以根据准确率(Precision)和召回率(Recall)制成一条曲线,在0到1 范围内绘制的曲线与坐标之间的面积即为精度均值(AP),可表示为AP=∫01p(r)dr,准确率与召回率的定义式如下[22]:

式中,TP为正样本中的正例,FP为负样本中的正例,FN为负样本中的负例。此外,FPS 决定了算法的效率,其数值的大小反映了检测速度的快慢。

3.3 实验结果分析

为了初步评估改进后SSD 算法的性能,本文选取了测试集中三张具有代表性的图片,并使用几种经典目标检测算法和改进后的算法进行横向结果比较。比较结果如图10 所示,其中三张具有代表性的图片如图10(a)所示。第一张图片是不同于一般遥感图像光照的沙尘天气下的飞机目标;第二张图片是飞机密集分布且存在较小尺度的情况;第三张图片是同时包含飞机密集分布和极小尺度飞机遥感图像目标的情况。

根据图10 几种经典目标检测算法检测结果可知,对于图10(a)中的第一张图片,由于受到不同于一般遥感图像光照的影响,除了本文算法AMDSSD和Faster-RCNN+特征金字塔网络(feature pyramid networks,FPN[23])以外,YOLO v3[24]和SSD 算法均有不同程度漏检的情况发生。分析可知,这主要是由于算法的鲁棒性不够,导致检测结果容易受到光照、沙尘等因素的影响。对于图10(a)中的第二张图片,除AMDSSD 算法以外,其余算法都存在漏检的情况发生。分析可知,其余算法都是针对自然场景设计的目标检测算法,不能很好地应对遥感图像尺度小且密集的特点。而AMDSSD针对遥感飞机目标的特点设计了一套用于检测遥感飞机目标的锚框体系,使得该算法更适合于飞机目标的检测,从而一定程度上提升检测精度。对于图10(a)中的第三张图片,由于飞机遥感目标存在尺寸极小且密集的情况,包括本文算法在内,4种算法均不能正确检测出全部目标。显然,AMDSSD 算法虽然没有全部检测出飞机目标,但检测结果明显优于其他3 种算法。分析可知,AMDSSD 算法增加了一个用于检测极小尺寸的Feature map 1,该层用以解决下采样倍数过大导致特征层丢失了极小目标信息的问题,同时锚框的铺设密度相近和锚框的策略匹配方法可以一定程度上帮助网络更加有效地训练,提高目标检测的鲁棒性。

为了进一步评估改进后SSD 算法的性能,本文使用3.2 节的评价标准计算得到了该算法的检测精度与检测速度,并与另外几种经典的目标检测算法进行横向结果对比。对比结果如图11和表4所示。

表4 不同算法在飞机遥感图像上的AP和FPSTable 4 AP and FPS of different algorithms on aircraft remote sensing images

图11 几种经典目标检测算法的PR曲线Fig.11 PR curves of several classic target detection algorithms

从表4 中的实验结果可以看出,本文所提出的AMDSSD 算法在精度均值(AP)的指标上优于YOLO、YOLO v2、YOLO v3、SSD 和DSSD 算法。从检测精度上看,当IOU=0.50 且area(面积类型)为all时,AMDSSD 算法相比SSD 算法提高了2.43 个百分点,相比YOLO、YOLO v2、YOLO v3、DSSD和Faster-RCNN+FPN分别提高了12.90个百分点、6.79个百分点、3.01 个百分点、1.60 个百分点和-0.20 个百分点。当IOU=0.50:0.95 且area=small 时,改进SSD 算法的精度均值为41.36%,较改进前提升了1.71个百分点,且改进后的SSD算法对小型目标的检测精度相比其他算法提升幅度较为明显,证明改进后的SSD 算法对小型目标检测较有优势。从检测速度上看,改进后SSD 的检测速度和改进前相比没有太大的变化,和其他单阶段目标检测算法相比仍然可以满足实时检测的需求。

此外,精度均值(AP)通常根据不同的IOU(intersection over union)阈值进行评估,IOU 阈值越高,对应的边框回归就越准确。图11为IOU=0.50和IOU=0.70 时各目标检测算法的PR 曲线(由于YOLO 和YOLO v2 检测精度较低,没有绘制在PR 曲线里)。从检测结果可以看出,本文改进的SSD算法Precision和Recall 两个性能指标均优于其他算法,即AMDSSD 算法对目标位置的回归能力优于其他算法。另外,本文算法和Faster-RCNN+FPN相比,精度均值(AP)虽有-0.20个百分点的差值,但是后者的检测速度明显慢于AMDSSD 算法,基本不能满足实时检测的需求。实验结果表明本文提出的AMDSSD算法可以在满足实时检测性的同时有效提高各种复杂背景下飞机遥感图像的目标检测精度。

3.4 消融实验

3.4.1 骨架网络替换的消融实验

为探究骨架网络替换对SSD算法检测结果(AP)产生的影响,本文分别设置两组模型对照:一组为SSD;二组为骨架网络被替换为ResNet50(改)的SSD,其余设置均与SSD模型相同。实验结果如表5所示,SSD+ResNet50 的对照组相比一组AP 值提升了0.62个百分点。

表5 骨架网络替换的消融实验结果Table 5 Ablation experiment results of skeleton network replacement

实验证明,骨架网络的替换有效地增强了模型特征提取能力。ResNet50(改)帮助模型更加有效学习飞机遥感图像的特征,一定程度上提升了网络对飞机遥感目标检测的精度均值。

3.4.2 锚框密集化与锚框策略匹配的消融实验

本文所改进的锚框密集化和锚框策略匹配是有利于AP 值提升的一种方法,为探究其如何对AP 值产生影响,本文分别设置3组模型对照:一组为SSD+ResNet50(改),二组为SSD+ResNet50(改)+锚框密集,三组为SSD+ResNet50(改)+锚框密集+锚框策略匹配,其余设置均与SSD模型相同。实验结果如表6所示,三组相比一组和二组AP值提升了1.79个百分点和0.57个百分点[27]。

表6 锚框密集化与锚框策略匹配的消融实验结果Table 6 Results of ablation experiments matching anchor frame densification and anchor frame strategy

本文中锚框密集化主要用来解决尺度极小的遥感目标正样本锚框数偏少的问题。实验证明,锚框密集化可以通过增加锚框铺设的密度来增加小尺度的锚框匹配到真实目标的数量,以此来提升模型对飞机遥感目标的AP值。锚框策略匹配通过式(5)来平衡不同尺度的正样本锚框数量,使之趋向于总体正样本锚框数,减少模型训练会偏向某一方的可能。实验证明,这种锚框策略匹配方法一定程度上增加了网络的鲁棒性,提升了对飞机遥感目标的AP值。

3.4.3 各改进对模型实时检测性的影响

对于基于深度学习的目标检测算法,绝大部分都是由卷积层和全连接层组成。卷积层通常占据了算法实时检测性的主导位置,因为卷积层往往是网络中最耗时的部分,当然还有全连接层(全连接层可以看成特殊的卷积层)。很多时候,卷积层和全连接层的计算时间会占用80%到95%的网格总体计算时间,因此本文着重从卷积层的参数量来分析各改进对模型实时检测性的影响。

本文改进后的算法较改进前一共有三个改进点,分别是骨架网络的替换、锚框密集化和锚框的策略匹配。其中锚框的策略匹配并没有增加额外的卷积层,因此对模型的检测速度基本不会有影响。

在骨架网络的替换中,改进后的ResNet50 和改进之前相比,额外增加的卷积层主要来自图3(b)虚线框内添加的结构。经过计算,SSD算法中的骨架网络(VGG16)具有26 102 468 个参数,改进后的Res-Net50具有18 342 744个参数。得益于残差结构的优势,后者的参数量不仅明显少于前者,还有着更好的语义抽象能力和特征提取能力。显然在模型的特征提取阶段,骨架网络的替换有助于提高模型的检测速度。

对比图1和图3(c)可以发现,模型预测阶段的输入由6 个特征层变为7 个特征层,其余部分没有变化,因此该阶段额外增加的卷积层参数主要集中在新添加的特征层上(Feature map 1)。该层在特征提取阶段也有额外的卷积层参数,但是数量占比太小基本不会影响模型的检测速度,因此着重分析Feature map 1在模型预测阶段对检测速度的影响。

Feature map 1 是尺寸75×75,下采样倍数为4 的特征层。在2.2 节中,本文对Feature map 1 上尺度大小为8的锚框铺设密度增加了2倍。经过计算,该层需要生成28 125 个锚框和增加230 400 个卷积层参数。对于生成的每一个锚框,模型都会通过相应的卷积层来计算出预测结果,Feature map 1的加入势必会增加模型卷积层的参数量和计算量,从而影响模型的检测速度。从实验结果来看,改进后与改进前相比FPS有一定的降低,这样的实验结果与以上的分析是符合的。虽然FPS有降低,但是在检测精度和检测速度方面有着更好的平衡性,与其他单阶段目标检测算法相比仍然可以满足实时检测的需求。

3.5 飞机遥感目标检测结果

在不同场景下且area=all,AMDSSD 算法对遥感图像数据集的部分检测结果如图12 所示,在复杂背景、光照不同、小尺度且密集分布的遥感目标、背景污染、极小尺度且密集和曝光背景的情况下,该算法均可以精确地检测出相关的目标物体,证明了本文改进后的AMDSSD可以在不同场景下且面积类型为all的条件下均有较好的检测效果。

图12 AMDSSD在不同场景下的部分检测结果Fig.12 Some test results of AMDSSD in different scenarios

4 结束语

本文提出了一种基于SSD的锚框尺度密集化和锚框策略匹配目标检测算法(AMDSSD),旨在增加少量训练参数且保留算法实时检测性的情况下提高算法对复杂场景下多尺度遥感图像目标检测的精度。改进后的算法使用改进以后的ResNet50作为特征提取网络,并且额外增加一个包含两种尺度的特征层用以提升对小尺度目标的检测效果。结合飞机遥感图像的特点,重新设计了一套适用于飞机遥感图像的锚框体系,在此基础上还增加了锚框铺设密集化和锚框策略匹配的方法。从实验结果来看,改进后的SSD对不同场景下不同面积类型的飞机遥感目标均有较好的检测效果,证明了改进后的算法在检测精度和鲁棒性上要优于SSD算法。对比其他几种经典的目标检测算法,改进后的算法在检测精度和检测速度方面有着更好的平衡性。在以后的研究学习中,希望进一步提高目标检测精度的同时依然可以保留算法的实时检测性,力求得到一种高精度且高效率的目标检测算法。

猜你喜欢

尺度样本飞机
飞机失踪
用样本估计总体复习点拨
财产的五大尺度和五重应对
“拼座飞机”迎风飞扬
规划·样本
乘坐飞机
随机微分方程的样本Lyapunov二次型估计
神奇飞机变变变
宇宙的尺度
9