APP下载

基于FPGAN-SSD的遥感小目标检测

2022-05-12孙伟杰袁三男

电光与控制 2022年5期
关键词:损失像素卷积

孙伟杰,袁三男

(上海电力大学,上海 200000)

0 引言

遥感影像的目标检测技术广泛应用于军事、交通、环境、油气活动监测等领域,遥感是目前最为有效、安全的军事侦察手段。但目前大部分遥感检测任务是基于卫星或无人机进行的,因此,遥感目标往往尺寸小、方向错乱且成像质量受光照、阴影等环境影响,检测效果并不理想。

很多学者针对提升遥感目标检测精度展开研究,并提出一系列算法。文献[1]构建了一个基于形状的全局最小化活动轮廓模型(SGACM),但该模型只能用来提取遥感图像中飞机、油罐这样具有规则形状的目标,具有一定的局限性,难以进行扩展;文献[2]提出了一种结合稀疏编码和径向梯度变换(RGT)的特征提取方法来应对因目标小而导致检测效果差的情况,但只针对飞机这类特殊的“十”字型几何结构,且手工提取特征的参数设置依赖经验,不具有泛化性。传统基于机器学习的算法虽然针对性强、准确性高,但依赖专业知识,对不同的目标需要设计多个特征提取方法,且调参困难。

随着计算机视觉与深度学习的蓬勃发展,基于卷积神经网络的目标检测算法为遥感目标检测提供了新的研究视角。传统的目标检测算法主要分为以Fast R-CNN[3]和Faster R-CNN[4]等为代表的双阶段检测算法以及以YOLOv4[5]和SSD[6]等为代表的单阶段检测算法。这些方法都是基于卷积神经网络进行特征提取,而遥感图像中的小目标大多都是几十个像素甚至是几个像素,在经过多次卷积和池化操作后,大量的高层特征信息会被丢弃,因此对遥感图像中的小目标容易出现漏检和误检。

文献[7]对YOLOv3进行改进,加入多尺度融合,并提出了一种遥感图像飞机目标的实时检测算法,虽然检测速度明显提升,但对遥感小目标检测效果依旧不佳。近年来,生成对抗网络也被应用于遥感检测的任务。文献[8]基于深度残差网络构建EESRGAN算法,并设计边缘增强模块,生成遥感小目标的超分辨率图像,最后送入检测器网络进行检测。然而,单幅图像的平均检测时间约为7 s,难以满足实时检测的要求。

上述工作从不同的角度提升遥感小目标检测性能,但检测速度和精度的平衡还存在缺陷。本文提出基于改进特征金字塔及生成对抗网络融合的目标检测算法FPGAN-SSD。设计2个融合模块替换特征金字塔(FPN)[9]中的上采样结构,通过高层与低层网络的跳跃连接,充分利用上下文的语义信息,增强检测图像的特征信息,提升SSD算法的检测准确率。为减少模型复杂度并缩短检测时间,将ResNet50的基础层特征映射划分为两部分,并使用Octave Convolution(OctConv)[10]替代传统卷积,构建 Tiny-ResNet50网络。针对生成对抗网络容易出现模式坍塌及难以收敛等问题,引入相对判别器DRa[11],避免生成器陷入某一特定特征。此外,使用感知损失、内容损失及SSD算法的分类损失及回归损失对生成器进行约束。

1 算法原理分析

1.1 SSD算法模型

Single Shot MultiBox Detector(SSD)[4]是一个单阶段多尺度的检测算法,该算法结合了YOLO的回归思想,目标分类和定位任务可以一起通过网络前向传播,从而直接进行目标检测。与Faster R-CNN算法一样,SSD算法也采用了Anchor boxes机制,在特征图的各单元上设置了不同的先验框与目标检测框进行偏差计算。SSD算法中基础网络延用VGG-16[12]模型,将两个全连接层替换为conv6和conv7卷积层,并额外增加6个卷积层,用于对图像特征进一步提取。由此,SSD算法采用大小不同的特征图进行分类和回归任务,提升检测的准确率。

尽管SSD算法兼具了实时检测速度和较高的检测精度,但对遥感目标检测效果不佳。这是因为SSD算法的conv4_3卷积层一般用于检测小目标,但其作为浅层特征,感受野小且包含的语义信息少。而输入的遥感小目标具有轮廓模糊、特征信息少等问题,在conv4_3卷积层上的特征与空间信息丢失严重,导致漏检率高。

1.2 生成对抗网络

生成对抗网络GAN由GOODFELLOW等[13]于2014年提出,其网络结构由生成器Generator[13]和判别器Discriminator[13]组成。将生成器伪造的图像送入判别器中进行判断,再将结果反馈回生成器中进行网络优化,同时在生成器中加入随机噪声,使得生成的图像具有多样性。

目前卷积神经网络的每次卷积操作只能覆盖像素点周围很小的一块邻域,而且不能建立特征信息间的联系。为此,大部分GAN都有共同的缺点,即难以对包含多种类别的图像捕捉其结构、纹理、细节等高频信息,因此无法清晰地分辨图像类别。

2 FPGAN-SSD检测算法

针对SSD算法对遥感小目标检测精度不高的缺点,提出一种基于改进特征金字塔及生成对抗网络的端到端检测算法,定义为FPGAN-SSD。该算法主要分为两个部分:一是基于改进特征金字塔的生成对抗网络FPGAN;二是目标检测算法SSD。FPGAN为SSD算法提供高清的图像及丰富的细节特征,改进遥感目标由于分辨率低、特征模糊等导致漏检率高的缺点。

2.1 Tiny-ResNet50

生成器网络采用以ResNet50作为主干网络的特征金字塔结构,利用其多尺度特征融合的特点丰富语义信息,建立图像的全局联系。然而,ResNet50网络层数多,与生成对抗网络结合后,检测速度大大降低,不能满足实时检测的要求,故本文引入OctConv替换普通卷积,并借鉴CSPNet重新构建Tiny-ResNet50。网络结构如图1所示。

图1 Tiny-ResNet50结构Fig.1 Structure of Tiny-ResNet50

OctConv将卷积核分为高低频两部分。用高、低频特征张量来存储和处理空间分辨率较低且空间变化较慢的特征图,从而降低了内存和计算成本。因此,基于OctConv,BN层及ReLU激活函数重新设计OCBR块。为提升精度,将ResNet的Input Stem部分替换为3个3×3的OCBR块。

网络中,梯度信息重复推理会导致计算量过大,因此,借鉴CSPNet的构建,先把原始ResNet50中的Identity Block作为一个UNIT,然后与OCBR模块进行合并组成一个OCSP模块。在减少了计算量的同时保证了准确率。其中,OCSPx表示UNIT的个数,s表示步长,C3,C4,C5为经过多次卷积操作后得到的3个不同尺度的特征图。

2.2 改进的特征金字塔网络

传统特征金字塔结构通常采用1×1卷积及上采样实现特征信息的跨通道交互及融合,改变通道维数及特征尺寸的同时,也会丢失部分信息。且高层特征只包含单一尺度的特征信息,需要更大的感受野来获得更多的语义信息。

针对以上缺陷,本文设计了子像素跳接融合(Sub-pixel Shortcut Fusion,SSCF)模块以及子像素上下文特征融合(Sub-pixel Context Feature Fusion,SCFF)模块两个组件。在具有丰富通道信息的高层特征图中引入SSCF,使用子像素卷积替代线性上采样和1×1卷积,减少信息损失。同时,在最高层特征图上构建SCFF模块,提取和集成不同的上下文信息。

2.2.1 子像素跳接融合

高层特征图C4及C5包含丰富的语义信息,若采用1×1卷积来降低通道维度会导致信息严重丢失,故本文引入子像素跳接融合的方法。不同于一般的线性上采样,子像素卷积Sub-Pixel Convolution[14]通过对通道尺寸进行变换来增加宽度和高度。考虑到C4及C5分别有1024及2048个通道,因此,在不扩充通道尺寸的情况下直接进行子像素卷积。SSCF结构见图2。

图2 SSCF整体结构Fig.2 Overall structure of SSCF

如图2所示,SSCF可以看作是C5到M4和C4到M3的2个额外的连接。SSCF替代线性上采样和1×1通道融合,充分利用高层特征图丰富的通道信息,增强了特征金字塔的表示能力。

融合后输出的特征图的数学表达式为

(1)

2.2.2 子像素上下文特征融合

本文采用了集成映射框架,并引入子像素上下文特征融合模块(SCFF),在特征图C5上利用更多的上下文信息和更大的感受野。最后将提取的上下文特征融合到集成特征图I(Integrated Feature Map I)中。SCFF结构见图3。

图3 SCFF结构Fig.3 Structure of SCFF

如图3所示,SCFF主要通过3个尺度进行上下文特征融合。假设输入特征图C5的尺寸为2H×2W×8C,输出的集成特征图Ⅰ的尺寸为4H×4W×C,其中,通道C的大小为256。SCFF包含以下4个操作:1)采用3×3卷积提取C5的局部信息,并采用子像素卷积进行双尺度上采样;2)通过3×3最大池化将输入特征降采样为H×W,并采用1×1卷积层扩展信道维数,接着采用子像素卷积进行4倍上采样;3)在C5上对全局上下文信息进行全局平均池化,将1×1×8C的全局特征压缩到1×1×C,接着将压缩后的全局特征扩展为4H×4W×C;4)通过元素求和将3个特征图融合到集成特征图I中。通过扩展3个尺度的特征表示,SCFF有效地融合局部信息和全局上下文信息,扩大了C5的感受野,提高了集成特征图I的表征能力。

2.3 模块融合

将上述特征金字塔网络,Tiny-ResNet50,GAN及SSD算法进行融合,得到FPGAN-SSD结构如图4所示。

图4 FPGAN-SSD结构Fig.4 Structure of FPGAN-SSD

由图4可以看出,遥感图像首先以16为系数进行降采样生成低分辨率图像(LR),再送入Tiny-ResNet50网络中进行特征提取,得到3个有效特征图C3,C4,C5;然后对上层特征图C5,C4及C4,C3两两进行子像素跳接融合,减少通道压缩所带来的信息丢失;并将最高层特征图C5进行子像素上下文特征融合,改善了高低层融合过程中的信息衰减;接着由判别器网络计算生成的超分辨率图像(ISR)与原图像之间的偏差,通过损失函数对生成器模型进行调整;最后通过SSD算法进行目标检测。

2.4 损失函数

针对原始GAN难以收敛的问题,本文引入相对判别器DRa,当生成图像的预测概率上升时,真实图像的预测概率下降,从而达到平衡。生成器和相对判别器的对抗损失函数分别表示为

(2)

(3)

式中:IHR和ISR分别表示真实的高分辨率图像和生成的超分辨率图像;log(·)表示对数损失函数;DRa=sigmoid(C(IHR)-C(ISR)),通过Sigmoid激活函数产生0或1的判别结果,即当真实图像和超分辨率图像很接近时,Sigmoid输出为1,判断为真。

除此之外,本文还采用了感知损失和内容损失。由于网络层数多,激活后的特征很稀疏,监督能力差,因此采用激活前的特征值来计算感知损失,即

(4)

式中:rfea是预训练的Tiny-ResNet 50网络在激活前的特征值;G(ILR)和IHR分别表示高分辨率图像和真实图像。

为保证生成器所生成的超分辨率图像与原始图像在内容上不会有太大的偏差,引入内容损失,即

L1=ELR||
G(LLR)-IHR||
1。

(5)

除上述损失外,还需通过目标检测网络的损失反馈给生成器并做出调整,从而提高超分辨率图像的质量。目标检测算法SSD的损失主要包括分类损失(Lcls_SSD)及回归损失(Lreg_SSD),即

Lcls_SSD=EILR[-log(softmax(Dcls_SSD(G(ILR)))]

(6)

Lreg_SSD=EILR[smoothL1(Dreg_SSD(G(ILR)))]

(7)

式中:softmax是置信度误差损失;smoothL1是位置误差损失;Dcls_SSD及Dreg_SSD分别代表了SSD算法的分类器和回归器。

综上所述,网络的总损失主要由生成器网络、判别器网络及目标检测网络的损失3部分组成,其表达式为

(8)

式中,λ,η及α均为调整系数,通过调整参数以达到模型最优的结果。

3 实验

3.1 实验设置

本文算法所使用的实验环境:硬件环境配置是显卡GTX2080,处理器为i7-9700K,运行内存64 GiB。

实验使用的数据集为COCO2017数据集、UCAS-AOD航空遥感图像数据集及HRSC2016遥感舰船公开数据集。首先训练FPGAN网络直到收敛,接着根据生成的超分辨率图像及FPGAN的权重训练FPGAN-SSD网络,通过SSD算法的分类和回归损失对生成器网络进一步调整。在训练过程中,将学习率设置为0.000 1,并且每50次迭代后将学习率减半,批量大小(Batch_size)设置为8。

3.2 实验结果及对比

为评价算法的实验结果,对比本文算法与目前主流的检测算法在COCO2017数据集及UCAS-AOD,HRSC2016数据集共同组成的遥感数据集上的结果。本文采用平均准确率 (mAP),即各个类别AP的平均值来评价算法的性能[15]。首先计算查准率与召回率,即

(9)

(10)

式中:PT表示预测为正样本,且实际也为正样本的个数;PF表示预测为正样本,而实际却为负样本的个数;NF表示预测为负样本,实际却为正样本的个数。

接着计算mAP为

(11)

式中:P(R)为查准率;RRecall为召回率;m为类别数目。

此外,为评判检测速度,采用每秒帧率(Frame Per Second),即每秒检测图片的数量作为评价标准。

3.2.1 COCO2017数据集实验结果及对比

COCO2017数据集包含80个类别,数据量庞大且小目标多,适合对本文算法性能进行验证。客观评价如表1所示,加粗数据表示指标最高。

表1 COCO2017数据集检测结果比较Table 1 Comparison of detection results of COCO2017 data set

由表1可知,目前的主流算法对小目标检测效果都不理想。其中,SSD算法的mAP为27.8%,但对小目标检测时,mAP仅为10.9%。这是因为小目标像素低,在多层提取过程中容易丢失特征,而本文算法构建的FPGAN-SSD算法将小目标特征进行超分辨率重建再送入SSD检测,显著提升了准确率,mAP达到27.8%。相较于Cascade R-CNN及SNIP等多阶段算法准确率也有所提升,在检测速度上相较SSD算法略有下降,但仍优于双阶段及多阶段检测算法。检测速度不佳的原因是COCO2017数据集上单幅图像目标多,重建耗费的时间长。

3.2.2 遥感数据集的实验结果及对比

UCAS-AOD数据集共910幅图片,包含飞机和汽车两个类别,且含有背景负样本。HRSC2016数据集共1070幅图片,目标类别为舰船,分辨率从0.4 m到2 m不等。两个数据集的共同特点是分辨率低及目标受光照、环境影响大,因此将两个数据集进行整合,共同训练。客观评价如表2所示,其中,指标最高的数据加粗表示。

表2 遥感数据集检测结果比较Table 2 Comparison of detection results of remote sensing data set

从结果来看,基于FPGAN-SSD算法的平均准确率(mAP)达到81.7%,较SSD算法提高了35.04%,较DSSD513提升了4.48%,是所有算法里准确率最高的。虽然每秒的检测图片数量只有13幅左右,不如SSD算法快,但能基本满足实时性要求。且检测精度的提升足以说明改进后的方法效果更好。

主观评价如图5所示。

图5 遥感数据集检测结果对比Fig.5 Comparison of detection results of remote sensing data set

由图5可知,在遥感图像中,一些飞机及舰船等目标体积小、模糊程度严重,若直接采用SSD算法进行检测会产生漏检。可见,SSD算法对遥感图像中的小目标检测效果不佳,而通过本文算法可以将目标特征增强,使检测精度大大提升。

4 结束语

本文提出了一种基于FPGAN-SSD的遥感小目标检测算法。通过设计独特的SSCF及SCFF结构,改进原有的图像特征金字塔,并结合Tiny-ResNet作为生成器的主干网络。实验结果表明,通过超分辨率重建后的图像具有清晰的轮廓和细节特征,改善了遥感小目标模糊、特征信息少、受光照影响大等缺点,检测精度大大提升。尽管与SSD算法相比,检测时间有所增加,但仍能保证实时的要求,且在遥感数据集上的mAP达到了81.7%。下一步将考虑对网络结构进行剪枝,减少模型参数量,应用于机载等移动端平台。另一方面,扩大数据库范围,实现对遥感目标的精准识别。

猜你喜欢

损失像素卷积
赵运哲作品
像素前线之“幻影”2000
少问一句,损失千金
基于3D-Winograd的快速卷积算法设计及FPGA实现
胖胖损失了多少元
“像素”仙人掌
从滤波器理解卷积
玉米抽穗前倒伏怎么办?怎么减少损失?
基于傅里叶域卷积表示的目标跟踪算法
高像素不是全部