APP下载

改进SSD的飞机遥感图像目标检测

2022-01-27王浩桐郭中华

液晶与显示 2022年1期
关键词:残差尺度卷积

王浩桐,郭中华,2*

(1.宁夏大学 物理与电子电气工程学院,宁夏 银川 750021;2.宁夏沙漠信息智能感知重点实验室,宁夏 银川 750021)

1 引 言

随着遥感技术的发展,遥感图像目标检测在军事和民用领域有着广泛应用,其中光学飞机遥感图像目标检测已经成为遥感领域的重要研究方向之一[1]。飞机遥感图像目标检测的核心任务是判断遥感图像中是否存在飞机目标并对其进行检测、特征提取、分类和定位。传统的遥感图像目标检测算法需要手工定义特征,如模板匹配或机器学习等方法[2]。此类方法定义的特征鲁棒性差,对尺度多变和背景复杂的遥感图像难以进行有效的目标检测。现今,得益于硬件GPU的高性能计算,基于深度学习的目标检测模型成为遥感图像领域的研究热点[3]。目前基于卷积神经网络[4](Convolutional Neural Network,CNN)的目标检测算法主要分为两类,一类是以Fast R-CNN[5]和Faster R-CNN[6]为代表的两阶段目标检测算法,另一类是以YOLO[7](YOU Only Look Once)和SSD[8]为代表的单阶段目标检测算法。

以上算法常用于检测日常生活中的通用物体,对尺度大小不一和背景复杂的遥感图像难以进行有效的飞机目标检测。如果直接将现有的深度学习目标检测算法应用到遥感影像上进行飞机目标检测,显然是不能得到等同于自然光学图像的检测精度。因此,对常用物体的目标检测算法进行改进,变得更加适合于遥感图像的目标检测算法已成为了近年来的热点问题之一[9]。文献[10-11]使用Faster-RCNN算法对遥感图像进行目标检测,该算法取得的检测精度较好,但检测效率偏低,基本不能满足实时检测的条件。文献[12-13]在使用SSD算法的基础上,结合特征金字塔网络[14](Feature pyramid networks,FPN)结构的优势,得到一种基于特征融合的遥感图像目标检测算法。该算法在满足实时检测条件的同时也一定程度上提高了遥感目标的检测精度,但是对于小尺度的飞机遥感目标来说,检测精度一般较差。对以上4篇目标检测文献的优缺点进行分析可知,高检测精度与实时检测往往不能同时兼顾,可能有如下两个原因:其一,飞机遥感图像经常存在场景复杂多变和目标尺度大小不一的情况。虽然使用了FPN进行多尺度特征融合,但是特征融合的程度并不能满足飞机遥感目标的高精度检测,还增加了网络的训练参数,降低了模型的检测效率。其二,在模型训练的过程中默认了所有特征图通道的重要程度都是一致的,缺少通道之间的关联性会导致算法最终的检测精度不够理想。

为实现飞机遥感目标的高精度检测,本文首先使用改进后的深度残差网络[15](Deep residual network,ResNet)替换了SSD算法的VGG[16](Visual geometry group)特征提取网络,用以提升算法对飞机遥感图像的特征提取能力。而后设计了一种新型特征金字塔网络用以实现不同层级的特征图之间的特征融合。本文设计的新型网络可以提高算法对不同尺度飞机目标的特征提取能力,对小尺度飞机目标的检测精度有较大的提升。同时本文还使用了注意力机制网络[17](Squeeze-and-excitation networks,SENet)和聚焦分类损失函数[18](Focal classification loss),用以提升网络学习的有效性,改进后的算法仅需较少的时间代价即可带来较高的检测精度提升。

2 预备工作

2.1 SSD目标检测网络

SSD是一种端对端的单阶段目标检测算法,该算法在检测效率和检测精度上有着较好的平衡性。除此之外,该算法的优势主要有3个方面:其一,采用多种尺度特征进行目标检测。Conv4_3、FC7 层在原图上的感受野较小,主要用于检测较小目标物体,而 Conv8_2、Conv9_ 2、Conv10_2、Conv11_2 在原图上的感受野较大主要用来检测较大目标物体;其二,设置不同高宽比例的锚框用以更好地匹配目标;其三,多种数据增强的方法使得算法对输入不同大小和不同形状的目标具有更好的鲁棒性。本文以输入尺寸为300×300的SSD网络为例,如图1所示。

图1 SSD300网络结构图

2.2 特征金字塔网络

特征金字塔网络是一种将不同层级的特征图通过自上而下的方式进行特征信息融合的网络。本文所提到的原始FPN是以SSD的骨架网络输出的6个特征图为基础进行融合的结果。不同层级的特征图融合的优势在于弥补了特征层之间的语义差距。特征金字塔网络结构如图2所示。0.5×和2×分别表示特征图下采样(缩小)2倍和特征图上采样(扩大)2倍,特征金字塔网络结构如图2所示。

图2 特征金字塔网络

3 改进的SSD目标检测算法

3.1 骨架网络的替换

ResNet是一种用于特征提取的卷积神经网络。因为其具有高效性和实用性广泛用于计算机视觉目标检测领域。以往的特征提取网络经常会面临网络层数过深而导致性能退化的问题。ResNet的不同之处在于提出了残差结构来解决网络退化的问题,残差结构如图3(a)所示。

图3 残差结构

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

F(x)=H(x)-x.

(1)

与原始特征H(x)相比,深度残差网络更容易学习到残差特征F(x)。在理想状态下,当F(x)为0时,ResNet仅仅只是完成了恒等映射的任务,网络的学习能力不会因层数的增多而下降。实际上F(x)并不会等于0或者一直等于0,残差结构总会通过输入学习到新的特征,网络的学习性能自然会更好[19]。ResNet101与VGG16两种特征提取网络以Faster-RCNN作为目标检测算法的成绩如表1所示[15]。

表1 使用Faster R-CNN 的两种特征提取网络在PASCAL VOC 2007/2012数据集上进行目标检测(mAP)

本文改进后的残差结构如图3(b)所示,相比于原残差结构增加了批量归一化(Batch Normalization, BN)[20]和Leaky-relu[21]。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结构如图4(a)所示,Blockx(x:2,3,4,5,6)由图3(b)组成。当输入尺寸为300×300×3时,Conv5_x的特征输出层尺寸和SSD算法的第2个特征输出层尺寸不一致,故删除ResNet50网络里Conv4_x之后的层结构,额外设计了5个输出特征图Feature map(2~6)。在每次缩小输出特征图尺寸前使用1×1的卷积核重新聚合前层的特征信息并调整通道数,之后再次用3×3的卷积核进行输出特征图尺寸的缩小,循环此操作达到多尺度输出特征图的结果。

(a)Conv4_x层

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

3.2 新型特征金字塔网络

本文提出了一种新型特征金字塔网络,如图5(a)所示。该网络除却FPN经典的自上向下的卷积网络以外,还有S模块与Conv Moudule 1模块两个部分组成。

(a)改进后的SSD网络结构图

(1)S模块(特征感受野增强模块+注意力机制模块)

特征感受野增强模块如图5(b)虚线左侧所示,该模块由并行卷积核和短路连接两部分组成。在并行卷积核的部分中,在使用3×3,5×5,Maxpool卷积核进行不同尺度目标的特征感受野增强之前,首先使用1×1卷积核进行通道数的减少,这样的操作减少了网络的训练参数,变相地提高了网络的效率。另外,空洞卷积的好处不仅在于可以学到更多的特征信息,还可以增大飞机目标的感受野。不同的空洞率还附带有下采样的效果,使网络学习到的特征信息更加丰富[22]。并行卷积核的输出与短路连接的1×1直连卷积核连接,进行通道之间的拼接特征融合(Connection)。将特征感受野增强模块添加到不同层级的特征图之间,不仅可以提升特征图对飞机目标的感受野,还可以增强网络对小尺度飞机目标的检测能力。

在传统FPN结构中,对于同级特征图部分仅通过简单线性叠加方式进行特征融合,而注意力机制可对特征图内部不同位置特征施以差异性权重值,有选择性地激活任务相关区域,抑制次要信息以提升模型效果[23]。为此,本文设计带有SENet的FPN结构模块,其具体操作模块如图5(b)虚线右侧所示。首先通过全局平均池化得到每个通道上的均值,使二维的特征通道变成一个具有全局感受野的实数。而后通过一个FC(全连接层)将特征维度降低到输入的1/16(R=16),经过 ReLu 激活后,再通过一个 FC 层升回到原来的维度。这样的操作比直接用一个 FC 层更具有优势:(1)可以具有更多的非线性且更好地拟合通道间复杂的相关性;(2)极大地减少了参数量和计算量。降维和升维操作之后再通过一个Sigmoid激活函数得到归一化的权重,最后通过一个Scale的操作将归一化后的权重加权到每个通道的特征上。

(2)Conv Module 1

结构为自顶向下的FPN是为了解决高低阶特征图中语义与位置信息间的矛盾,实现对高低阶不同尺度特征有效融合。但是传统的FPN仅含有自顶向下的结构,没有自下而上的结构,换言之就是低阶特征图含有高阶特征图的特征信息,而高阶特征图中不含有低阶特征图的特征信息。为了使高阶特征图包含经过S模块增强后的低阶特征信息,本文设计了Conv Moudule 1模块。将通过此模块处理后的特征信息与高阶特征图(Feature map 3,Feature map 4,Feature map 5)相加得到新的深层特征图,保证不同阶数的特征图含有特征信息的完整性。其中Maxpool层池化后的宽和高等于与之相加特征图的宽和高。1×1卷积核是为了调整通道数,同时也为了减少卷积操作需要的训练参数。3×3卷积核的卷积模式为“same”,即不改变特征图的尺寸大小。BN和Leaky-ReLU的引入使得Conv Module 1具有一定的非线性和加快网络收敛速度的特性。Conv Module 1具体如图5(a)虚线框内的结构所示。

3.3 改进SSD的损失函数

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

L(x,c,p,l,g)=

(2)

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

Lloc(x,l,g)=

(3)

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

(4)

4 实验与结果分析

4.1 数据集与实验环境

本文采用西北工业大学开源的遥感图像数据集NWPU VHR-10[24]进行飞机遥感图像目标检测实验,数据集包含尺寸大小不同的图片并且按照7∶3的比例来随机划分训练集和验证集。依据数据集对目标面积大小划分的标准(Small object: area < 322;Medium object: 322< area < 962;Big object: area > 962)对采集的光学遥感数据集进行划分,由于一些飞机在小分辨率的情况下只有极少的像素个数,已很难通过人眼确定是否为飞机,因此,仅对像素个数超过6个的目标进行划分。图6为本文数据集的样本示例,面积类型从左到右分别为Small object,Medium object,Big object。

图6 本文数据集的样本示例

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

4.2 评价标准

(5)

(6)

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

4.3 实验结果分析

为了初步评估改进SSD算法的性能,本文选取了验证集中3张具有代表性的图片,并使用几种经典目标检测算法和改进后的算法进行横向结果比较。比较结果如图7所示,其中3张具有代表性的图片如图7(a)所示。第一张图片是飞机遥感目标存在于复杂环境背景下的情况;第二张图片是同时含有复杂环境背景和飞机遥感目标密集分布的情况;第三张图片是同时含有飞机遥感目标密集分布和飞机遥感目标尺度极小的情况。

由图7几种目标检测算法检测结果可知,对于图7(a)中的第一张图片,除了文本改进的算法以外,其他目标检测算法均有不同程度的漏检法以外,其他目标检测算法均有不同程度的漏检和误检发生。对于图7(a)中的第二张图片,只有YOLO v3算法出现了误检的情况,其余3种算法检测结果基本一致,即都能正确识别出全部飞机目标。对于图7(a)中的第三张图片,由于飞机遥感目标存在尺寸极小且密集的情况,包括本文算法在内,4种算法均不能正确检测出全部目标。但是改进后的算法虽然没有全部检测出飞机目标,但检测结果明显要优于其他3种算法。对以上不同算法检测结果的差异分析可知,造成误检和漏检的主要原因是特征图之间缺少相应的联系,即浅层网络缺少深层网络重要的语义信息,深层网络缺少浅层网络丰富的细节信息。除此之外,特征图不同通道间的重要程度也缺少定量的权重系数。改进后的SSD算法综合考虑了各个特征图之间的关联性,设计了S模块和Conv Module 1模块。使得各层级的特征图携带更加完整的特征信息以便可以较好地识别出复杂环境背景下尺度大小不一的飞机遥感目标。另外,注意力机制网络SENet可以帮助网络学习特征图不同通道间的重要程度,在一定程度上提高算法的检测精度。

以上3张飞机遥感图片的检测结果多为极端条件下的检测结果,例如飞机遥感目标尺度极小且密集分布的极端条件。在更为实际的情况中,飞机遥感目标并不是只存在于极端条件中,对于生活中较容易接触到的典型场景也是飞机遥感目标检测的主要用地。本文列举了4种生活中含有飞机遥感目标的典型场景并进行相关的飞机目标检测实验。典型场景分别是民用机场(图8(a))、包含住宅区背景的民用机场(图8(b))、机场跑道(图8(c))和包含其他交通工具背景(图8(d))的场景。改进后的SSD在各个典型场景下的检测结果如图8所示。

图8 典型场景下的检测结果

场景2和场景4具有较为复杂的地面背景,可以简单归类为极端条件中的复杂背景一类。场景2、场景3和场景4具有尺度较小和较为密集分布的特点,可以简单归类为极端条件中的密集分布和极小尺度一类。改进后的算法从不同特征层的特征信息的完整性的角度出发,增加了特征层彼此的关联性,一定程度上增加了飞机目标检测的鲁棒性。由图8的检测结果分析可知,改进后的算法不仅适用于极端条件下的飞机遥感目标的检测,对贴近生活中的典型场景也具有较好的检测效果。

为了进一步评估改进SSD算法的性能,本文使用4.2节的评价标准计算得到了该算法的检测精度与检测速度,并与其他几种目标检测算法进行横向结果对比[26]。对比结果如表2和图9所示。

从表2的实验结果中可以分析到,本文提出的改进后的SSD算法在精度均值(AP)的指标上优于YOLO、YOLO v2、YOLO v3、SSD、DSSD和Faster-RCNN+FPN算法。从检测精度上看,当IOU=0.5且area为all时(all为包含所有面积类型的目标),改进后的SSD算法相比于SSD算法提高了3.73%,相比于Faster-RCNN+FPN、YOLO、YOLO v2、YOLO v3和DSSD分别提高了1.10%,14.23%,8.09%,4.31%,1.87%。当IOU=0.5∶0.95且area=small时,改进后的SSD算法的精度均值为44.58%,较改进前提升了4.93%。显然,改进后的SSD算法对小型目标的检测精度相比于其他算法提升幅度更为明显,证明改进后的SSD算法对小型目标检测更具有优势。从检测速度上看,改进SSD的检测速度和改进前相比基本没有太大的变化,和其他单阶段目标检测算法相比仍然可以满足实时检测的需求[27]。

表2 检测精度和检测速度

图9为IOU=0.5和IOU=0.7时各目标检测算法的PR曲线。从检测结果可以看出,改进后的SSD算法在准确率和召回率两个性能指标均优于其他算法,对于边界框的回归自然就越准确。

(a)几种经典目标检测算法的PR曲线(IOU=0.5)

5 消融实验与目标检测结果

5.1 新型FPN的消融实验

为探究新型FPN与原始FPN对AP值的影响,本文设置SSD、SSD+FPN以及SSD+FPN(新型)3组实验来探究其影响。其余设置均与SSD算法相同。实验结果如表3所示,3组相比于一组和二组AP值提升了2.62%,1.83%。

表3 新型特征金字塔消融实验结果

实验证明新型特征金字塔网络通过特征融合和注意力机制的方式有效弥补了不同特征图之间的信息空缺并选择性地激活和抑制特征图通道间的主要次要信息。既增强了低阶特征图的语义,也丰富了高阶特征图的细节,又对特征图内部不同位置特征施以差异性权重值,有效提升了改进后的算法对飞机遥感目标的检测精度[31]。

5.2 骨架网络替换和聚焦分类损失函数的消融实验

为探究骨架网络替换和聚焦分类损失函数对AP值的影响,本文分别设3组模型对照,一组为SSD+FPN(新型),二组为SSD+FPN(新型)+ Focal classification loss,三组为SSD+FPN(新型)+ Focal classification loss + ResNet50(改进后)。其余设置均与SSD算法相同。实验结果如表4所示,第三组相比于一组和二组AP值提升了1.09%和0.86%。

表4 骨架网络替换与损失函数的消融实验结果

实验证明,使用改进后的ResNet50作为算法的骨架网络相比SDD算法中的VGG16网络有着更好的特征提取能力。聚焦分类损失函数在一定程度上解决了网络训练时正负样本不均衡的问题,对检测精度的提高有一定的作用。

5.3 目标检测结果

改进后的SSD算法对飞机遥感图像数据集的部分检测结果如图10所示,在复杂背景(图10(a))、小尺度且密集分布的遥感目标(图10(b))、极小尺度且密集(图10(c))和曝光背景(图10(d))的情况下,该算法均可以精确检测出相关的目标物体,证明了改进后的SSD在不同环境背景且目标面积类型为all时均有较好的检测效果。

6 结 论

对于SSD算法在飞机遥感图像领域目标检测效果不佳的问题,本文对SSD算法做出了一定的改进。使用改进后的ResNet50作为算法的骨架网络,与改进前的骨架网络相比有着更加优秀的特征提取能力。设计了新型特征金字塔网络,该网络用于不同特征图之间的特征融合,增加了特征图之间的相互联系,保证了不同特征图上含有特征信息的完整性。还使用了注意力机制监督网络的学习,在一定程度上提高了算法在复杂环境背景下进行飞机遥感目标检测的检测精度。使用了Focal classification loss作为改进后算法的损失函数,与改进前的损失函数相比,Focal classification loss 更加注重解决分类问题中数据类别不平衡以及判别难易程度差别的问题。

从实验结果来看,改进后的SSD对不同场景下且面积类型不同的飞机遥感目标的AP值为92.45%,FPS为35.6。证明了改进后的算法在检测精度上要优于SSD算法,对比其他几种经典的目标检测算法,改进后的算法在检测精度和检测速度方面有着更好的平衡性。

猜你喜欢

残差尺度卷积
基于残差-注意力和LSTM的心律失常心拍分类方法研究
基于双向GRU与残差拟合的车辆跟驰建模
基于3D-Winograd的快速卷积算法设计及FPGA实现
基于残差学习的自适应无人机目标跟踪算法
财产的五大尺度和五重应对
卷积神经网络的分析与设计
基于深度卷积的残差三生网络研究与应用
从滤波器理解卷积
基于傅里叶域卷积表示的目标跟踪算法
宇宙的尺度