«上一篇
文章快速检索     高级检索
下一篇»
  应用科技  2021, Vol. 48 Issue (5): 16-22  DOI: 10.11991/yykj.202012028
0

引用本文  

杨志钢, 黎明, 李泳江. 基于multi-FPN的遥感目标检测方法[J]. 应用科技, 2021, 48(5): 16-22. DOI: 10.11991/yykj.202012028.
YANG Zhigang, LI Ming, LI Yongjiang. An object detection method of remote sensing image based on multi-FPN[J]. Applied Science and Technology, 2021, 48(5): 16-22. DOI: 10.11991/yykj.202012028.

基金项目

航空科学基金项目(201801P6002)

通信作者

黎明,E-mail:985652780@qq.com

作者简介

杨志钢,男,讲师,博士;
黎明,男,硕士研究生

文章历史

收稿日期:2020-12-31
网络出版日期:2021-08-26
基于multi-FPN的遥感目标检测方法
杨志钢, 黎明, 李泳江    
哈尔滨工程大学 信息与通信工程学院,黑龙江 哈尔滨 150001
摘要:遥感图像的目标检测一直是计算机视觉领域中重要的任务之一,遥感图像中的目标大多具有尺度多样、排布密集、背景复杂等特点,给特征提取带来了很大的困难,进而影响检测的性能。为了解决此问题,本文提出了一种基于多重特征金字塔网络(multi-FPN)的遥感图像目标检测方法,该方法采用残差网络作为主干网络,在特征金字塔网络(FPN)的基础上加入跨层连接结构,改变上采样金字塔的输出层级,进一步地增强了特征的传播和重用;同时,采用双线性插值法替代原本的最邻近插值法,使得特征上采样效果更好。通过实验表明,该方法检测性能良好,在公开遥感图像数据集NWPU VHR-10上平均检测精度达到91.92%。
关键词遥感图像    目标检测    特征金字塔网络    双线性插值    多重特征金字塔网络    计算机视觉    主干网络    特征采样    
An object detection method of remote sensing image based on multi-FPN
YANG Zhigang, LI Ming, LI Yongjiang    
College of Information and Communication Engineering, Harbin Engineering University, Harbin 150001, China
Abstract: In the field of computer vision, object detection of remote sensing images has always been one of the important tasks. Objects in remote sensing images are mostly characterized by diverse scales, dense arrangement and complex background, etc. which bring great difficulties to the accurate extraction of features and thus affect the detection results. To solve this problem, an object detection method of remote sensing image based on multi-feature pyramid network(multi-FPN) is proposed in this paper. The residual network is adopted as the backbone network, and a cross-layer connection structure is added into the feature pyramid network(FPN) to improve the output level of the upsampling pyramid, so that the propagation and reuse of features can be enhanced. Furthermore, bilinear interpolation is used to replace the original nearest neighbor interpolation, bringing better feature upsampling effect. The experimental results show that the proposed method has good detection performance and that its average detection precision reaches 91.92% on the remote sensing public dataset set NWPU VHR-10.
Keywords: remote sensing image    object detection    feature pyramid network    bilinear interpolation    multi-FPN    computer vision    backbone network    feature sampling    

遥感技术的不断发展使得从遥感图像中对特定目标进行检测的需求与日俱增。相比于传统手工提取特征的方法,深度学习方法利用卷积神经网络(convolutional neural networks,CNN)自动学习图像特征,通过不断迭代训练大量的数据样本,挖掘其中的有效信息[1],以此规避传统目标检测方法中的缺点,能够有效提高目标检测的精度和速度。

目前遥感图像领域中的目标检测方法大多是由通用目标检测方法改进而成的,大体分为2类:两阶段检测方法和单阶段检测方法。前者的代表是R-CNN及其延伸[2-5],它们通过主干网络对图像提取特征后,先生成锚点和对象建议,再对建议进一步地分类、回归和优化边界框;后者的代表是YOLO系列[6-8]、SSD[9]和RetinaNet[10],它们不再生成区域建议,而是直接从特征图预测边界框并区分具体类别。这些方法虽然在通用数据集上取得了很好的成绩,但直接应用于遥感图像时往往效果不佳,原因在于遥感图像目标多数具有尺度多样、排布密集、背景复杂等特点,这些方法当中的主干网络[11-14]很难在这样的环境中准确提取特征,致使学习到错误的分类和回归信息。Lin等[15]提出FPN用以解决目标特征难以分辨的问题,通过在主干网络中构建由上到下的特征金字塔和横向连接结构增强多尺度特征的传播,大幅提升了检测精度。随后研究人员在此基础上做了一些改进[16-19]以适应遥感图像目标检测的特点,但这些改进方法普遍是对单一类别目标进行检测,且在场景复杂或目标较为密集时检测性能有所下降。

基于此背景,本文提出一种基于multi-FPN的遥感图像目标检测方法。首先,该方法使用残差网络ResNet-50作为主干网络,在FPN横向连接的基础上加入跨层连接结构,进一步地加强特征的融合和重用;其次,改变上采样金字塔的输出层级,采用{P3,P4,P5,P6,P7}层级输出多尺度特征图,有利于特征的传播;最后,特征金字塔的上采样过程采用了双线性插值法替代原来的最邻近插值法,使得特征缩放后的误差更小,预测框坐标的回归更准确。

1 方法

基于multi-FPN的遥感图像目标检测方法的总体框架如图1所示。主要由特征提取网络和两阶段检测网络2部分组成。具体来说,经过预处理的图片首先输入进特征提取网络中,通过主干网络和multi-FPN可以为每个输入图像生成多尺度特征融合的特征图;然后从区域提案网络(region proposal network,RPN)中获得轮流提案,为下一阶段提供高质量的区域提案;最后,在二次检测阶段利用2个全连接层( fully connected layer,fc)对提案进行位置回归和类别预测,得到最终结果。

Download:
图 1 基于multi-FPN的方法总体框架
1.1 特征提取网络 1.1.1 主干网络

深度CNN的出现使得图像分类和目标检测取得了一系列突破,网络将从低到高层的特征和检测器以端到端的方式进行融合,并通过特征网络层的加深来取得更好的检测效果。目标检测中基于深度CNN的主干网络是用来提取特征的结构,本文选择采用残差网络ResNet-50作为主干网络,利用多组残差单元,在提取特征的同时有效避免了梯度爆炸或梯度消失的发生。原始的ResNet-50在图像分类时可以实现1 000种目标类别细分,但应用于目标检测后要根据数据集的类别进行输出项调整。比如本文在NWPU VHR-10数据集上进行实验,共有10类待检目标,所以主干网络的输出节点数设置为11,即10个前景目标和1个背景类别。

1.1.2 FPN

目标检测中的主干网络虽然可以利用卷积操作有效提取特征,但在原始图像经过CNN下采样一定倍数后,有一些小像素物体会在最后一层特征图上消失,导致后续检测网络无法检测出该目标,除此之外,还会遇到同一目标尺度有大有小、特征难以准确学习等情况。为了能让大尺寸物体和小尺寸物体的特征都被有效提取并输入进检测网络中,研究人员在主干网络的基础上,增加了FPN的结构,如图2所示。FPN包括3部分:下采样金字塔、上采样金字塔和横向连接。具体而言,下采样金字塔由ResNet-50网络的部分结构组成,每层最后一个残差结构的特征激活输出表示为{C2,C3,C4,C5}。上采样金字塔可以有效结合低、中、高层不同尺度的特征,方法是对高阶特征图进行多次上采样,同时将该特征横向连接至对应下采样金字塔中的前一层特征,二者进行相加操作,使高层特征得到加强。图2中以P4为例展示了横向连接的细节,可以看到上采样金字塔中的P5特征做步长为2的最邻近上采样,同时对应下采样金字塔中的C4层特征经过1×1的卷积,使其和后一层的特征图通道数保持相同,然后与上采样后的特征图像素加合,并使用3×3的卷积层消除上采样的混叠效应。P6是P5进行一次最大池化产生的层,随着训练次数的增加不断迭代融合,直到生成精细化的特征图。

Download:
图 2 FPN结构
1.1.3 multi-FPN

FPN是融合多层次信息的一种有效的多尺度方法,在通用目标检测任务中取得了不错的效果,但值得注意的是,遥感图像中的目标尺度差异过大,且复杂多变的背景会对前景目标特征的分辨产生较强的干扰,尤其是存在一些类目标的物体,比如海岸边的集装箱与停泊船只目标的特征相似,给特征提取工作带来了很大的困难。因此,通过FPN获得的特征信息可能不足以很好地区分这些目标。为了解决此问题,本章对特征金字塔的网络结构进行了优化,提出了跨层连接,改变了上采样金字塔的输出层级,进一步增强特征的传播和高、中、低层特征的融合,并使用双线性插值法替代原本的最邻近插值法,使得特征上采样效果更好,经过改进的FPN结构如图3所示。

Download:
图 3 multi-FPN结构

主干网络仍然选择ResNet-50,在下采样金字塔中,多层特征映射{C2,C3,C4,C5}保持不变,对应每个卷积块的最后一层,步长为{4、8、16、32}像素,C5是ResNet-50最顶层的输出,其通过一个1×1的卷积层,将通道数转为256,得到上采样金字塔的P5。P5层首先经过2次下采样,步长为2,分别得到P6、P7层;其次经过横向连接和跨层连接,依次得到P4、P3层;最后输出{P3,P4,P5,P6,P7}多层特征图。横向连接和跨层连接的细节如图3中所示。例如,为了得到P4,首先需要对C4使用1×1的卷积操作,以减少C4通道的数量;其次对之前的所有层(P7、P6、P5)进行双线性插值上采样,接着使用concat操作(数组间的相加)来合并它们,最后利用3×3的卷积以消除特征混叠,同时减少通道数量。通过层层迭代,输出了多尺度的特征图。通过实验发现,横向连接可以保证有效利用底层定位的细细节信息,跨层连接能够进一步加强多层次特征的融合,同时,更深的P6、P7卷积层可以获得更多的语义信息,有助于复杂环境下的目标特征获取。另外,FPN在上采样时使用了最邻近插值算法,过程如下:假设原始特征图像素大小为 $ {w}_{1}\times {h}_{1} $ ,上采样后像素大小为 $ {w}_{2}\times {h}_{2} $ ,上采样特征图中有1像素点 $ ({x}_{2},{y}_{2}) $ ,则对应于原始特征图上的像素点位置 $ ({x}_{1},{y}_{1}) $

$ f\left({x}_{1},{y}_{1}\right)=f({x}_{2}\times \frac{{w}_{1}}{{w}_{2}},{y}_{2}\times \frac{{h}_{1}}{{h}_{2}}) $

由于像素值 $ {x}_{1} $ $ {y}_{1} $ 必须为整数,所以计算中出现小数时需要四舍五入,这样会造成特征图像素的不连续性,且多次上采样后精度缺失严重。本文使用双线性插值算法对上采样过程进行改进,过程如下:假设想得到上采样图像像素点对应在原图中的位置P $ (x,y) $ ,离该位置最近的4个像素点值分别为Q11 $ ({x}_{1},{y}_{1}) $ Q12 $ ({x}_{2},{y}_{2}) $ Q22 $ ({x}_{3},{y}_{3}) $ Q21 $ ({x}_{4},{y}_{4}) $ ,如图4所示。

Download:
图 4 双线性插值算法示意

P的像素值与邻近像素点的距离相关,距离越近的点像素值影响越大,计算过程如下:

1)根据Q11 $ ({x}_{1},{y}_{1}) $ Q22 $ ({x}_{3},{y}_{3}) $ 的像素值计算得到R1 $ (x,{y}_{1}) $ 位置的像素值。

$ f\left({R}_{1}\right)\approx \frac{{x}_{2}-x}{{x}_{2}-{x}_{1}}f\left({Q}_{11}\right)+\frac{x-{x}_{1}}{{x}_{2}-{x}_{1}}f\left({Q}_{21}\right) $

2)根据Q12Q22的像素值计算得到R2 $ \left(x,{y}_{2}\right) $ 位置的像素值。

$ f\left({R}_{2}\right)\approx \frac{{x}_{2}-x}{{x}_{2}-{x}_{1}}f\left({Q}_{12}\right)+\frac{x-{x}_{1}}{{x}_{2}-{x}_{1}}f\left({Q}_{22}\right) $

3)由R1和R2的像素值计算得到最终结果P $ (x,y) $

$ f\left(P\right)\approx \frac{{y}_{2}-y}{{y}_{2}-{y}_{1}}f\left({R}_{1}\right)+\frac{y-{y}_{1}}{{y}_{2}-{y}_{1}}f\left({R}_{2}\right) $
1.2 两阶段检测网络

两阶段检测网络的结构和损失函数与Faster R-CNN模型相同,利用提取的特征对目标进行分类和定位。特征图首先输入进RPN中,在锚点的基础上做前景和背景的二分类、边界框回归以及后处理,得到建议特征图;其次将建议特征图输入RoI pooling层裁剪成固定大小;最后利用2个全连接层进行第2次检测,包括具体类别划分、边界框回归和后处理,得到最终的检测结果。

2 实验 2.1 数据集与实验条件

本文在公开光学遥感数据集NWPU VHR-10[20]上进行实验,该数据集总共800张超高分辨率光学遥感图像,每张像素大小约为800×1 000,包含从Google Earth和Vaihingen数据集中裁剪收集的篮球场、船只、飞机、储油罐、田径场、棒球场、车辆、网球场、桥梁、码头10类目标类别,由航拍图像判读专家手动注释成水平标注框加标签的形式,如(xmin,ymin,xmax,ymax,label)。本文实验使用其中的正样例图像集,每幅图像中至少存在1个待检测的目标,共计650张图,大约有3 775个标注目标,该数据集经图像增强后相比于同类水平标注数据集类别和目标数目都多,在遥感图像数据中具有代表性。本文实验中训练、测试所用到的硬件设备和开发环境如下:硬件设备:CPU: Intel(R) Xeon(R) Gold 6128 3.40 GHz;GPU: Nvidia Tesla P100 16 GB RAM;系统配置:Ubuntu 16.04, Anaconda 3-5.2, CUDA 9.0;开发环境:Python 3.6, Tensorflow 1.12, Keras 2.2.4。

2.2 参数设计与模型训练

本文方法使用的网络模型深度较深,而NWPU VHR-10中的正样例图像集仅包含650张图片,即使裁剪后数量依然不足。故本章实验使用了模型预训练和图像数据增强的策略。使用ImageNet分类预训练的Resnet-50模型初始化网络,再移植到数据量有限的NWPU VHR-10上进行微调,数据增强方面使用了随机图像翻转、随机剪裁、角度旋转、颜色抖动等操作。本文实验随机抽取图片划分训练集、验证集和测试集,比例为6∶2∶2。实验基于TensorFlow框架进行,为了加快训练、验证和测试的速度,采用TFRecord格式输入数据。实验参数方面,根据对NWPU VHR-10数据集中待检测目标的实际尺寸和宽高比率进行统计分析,设置RPN中{P2,P3,P4,P5,P6}的锚点框区域大小为{252,502,1002,2252,4002}像素,锚点框宽高比为{1,1/22,1/3,3,1/4,4,1/5,5}。

2.3 实验结果及分析

本文中的性能评估标准使用单一类别平均精度(average precision, AP)和各类别精度均值(mean average precision, mAP),能够相对客观地评价检测时所有类别的平均好坏程度,值越大,表示目标检测模型的性能越好,衡量速度采用的是测试1张图片所用的平均时间,这也是目标检测领域的通用标准。

本文做了一系列的对比实验,以验证multi-FPN方法的有效性。表1总结了所用方法在不同结构组合下的检测结果,主要关注评价的是横向连接、跨层连接、不同的输出层级以及上采样的方式所带来的影响。表2中结构统一采用ResNet-50作为主干网络,检测网络部分相同。可以看到FPN的检测精度约为86.61%,测试单张图片的时间为0.32 s。当FPN去掉横向连接结构时,如组合1去掉了1×1的卷积侧连接,这种仅靠多次上、下采样输出的特征图尽管仍然具有很强的语义信息,但位置信息变得不再精确,mAP较FPN下降了约12 %,由此看出,主干网络的各层通过横向连接连接到自顶向下的特征金字塔,可以传递出更精确的特征位置。组合2与组合1对比以及组合3与FPN的对比,可以看到跨层连接结构对最终检测精度的提高幅度约为2%,说明使用跨层连接有助于多尺度目标特征进一步地重用和传播。组合4改变了特征图的输出层级,mAP较组合3上升了约1%,可见CNN的更深层可以获得更多的语义信息,有助于遥感图像中复杂环境下的目标特征获取。组合5使用了双线性插值算法替代了原来的最近邻插值算法,精度上升了约2%,且检测速度没有明显变化,故选择组合5作为本文最终改进的遥感图像目标检测方法。

表 1 本文方法在不同结构组合下的检测结果
表 2 不同方法检测性能对比

表2显示了不同方法在NWPU VHR-10数据集上的性能对比。本文实验对比了NWPU VHR-10数据集的基准方法RICNN以及具有代表性的检测方法Faster R-CNN、YOLO v2和SSD,从表2可以看到,本文方法在大部分类别上面都达到了最高精度,mAP达到91.92%,由此证明基于multi-FPN的目标检测方法在遥感图像中表现优异。相比于同样使用ResNet-50做主干网络的Faster R-CNN,本方法在车辆、船只、储油罐等尺寸较小的目标上AP有了不小的提升,说明multi-FPN策略有效提升了小目标的检测精度;对于码头、篮球场、网球场等相对较大的目标精度也有所提升,表明了更深的卷积层输出对目标检测的重要性。

图5以热力图的形式显示了multi-FPN的各层输出特征图{P3,P4,P5,P6,P7},可以看到,对于示例图中复杂背景下的船只小目标,较低层的P4特征图能够很好地区分出礁石、海浪和船只特征的不同,以此层作为两阶段检测网络的输入,对于检测精度的提升较为明显。图6展示了测试集中的部分检测结果示例。

Download:
图 5 multi-FPN输出特征图示例
Download:
图 6 测试集部分检测结果示例
3 结论

本文主要从特征提取的角度对目标检测方法进行了研究,提出了一种基于multi-FPN的遥感图像目标检测方法。一方面,在FPN网络模型的基础上加入跨层连接结构,通过改变由上到下金字塔的输出层级,保证了面对遥感图像复杂背景的环境下依然能够有效地提取出目标特征,进一步地增强了特征的融合和传播;另一方面,采用双线性插值法替代原本的最邻近插值法,减少特征上采样的失真,进而提升了检测精度。结构和方法对比实验结果表明,本方法在检测精度上超越了目前普遍在用的目标检测方法,在公开遥感图像数据集NWPU VHR-10上mAP达到91.92%。

参考文献
[1] 李金洪. 深度学习之Tensorflow入门、原理与进阶实战[M]. 北京: 机械工业出版社, 2018. (0)
[2] GIRSHICK R, DONAHUE J, DARRELL T, et al. Rich feature hierarchies for accurate object detection and semantic segmentation[C]//2014 IEEE Conference on Computer Vision and Pattern Recognition. Columbus, USA, 2014: 580-587. (0)
[3] HE Kaiming, ZHANG Xiangyu, REN Shaoqing, et al. Spatial pyramid pooling in deep convolutional networks for visual recognition[J]. IEEE transactions on pattern analysis and machine intelligence, 2015, 37(9): 1904-1916. DOI:10.1109/TPAMI.2015.2389824 (0)
[4] GIRSHICK R. Fast R-CNN[C]//2015 IEEE International Conference on Computer Vision (ICCV). Santiago, Chile, 2015: 1440-1448. (0)
[5] REN Shaoqing, HE Kaiming, GIRSHICK R, et al. Faster R-CNN: towards real-time object detection with region proposal networks[J]. IEEE transactions on pattern analysis and machine intelligence, 2017, 39(6): 1137-1149. DOI:10.1109/TPAMI.2016.2577031 (0)
[6] REDMON J, DIVVALA S, GIRSHICK R, et al. You only look once: unified, real-time object detection[C]//2016 IEEE Conference on Computer Vision and Pattern Recognition (CVPR). Las Vegas, USA, 2016: 779-788. (0)
[7] REDMON J, FARHADI A. YOLO9000: better, faster, stronger[C]//2017 IEEE Conference on Computer Vision and Pattern Recognition (CVPR). Honolulu, USA, 2017: 6517–6525. (0)
[8] REDMON J, FARHADI A. YOLOv3: an incremental improvement[J]. arXiv preprints arXiv: 1804.02767, 2018. (0)
[9] LIU W, ANGUELOV D, ERHAN D, et al. SSD: single shot MultiBox detector[C]//European Conference on Computer Vision. Amsterdam, Netherlands, 2016: 21–37. (0)
[10] LIN T Y, GOYAL P, GIRSHICK R, et al. Focal loss for dense object detection[J]. IEEE transactions on pattern analysis and machine intelligence, 2020, 42(2): 318-327. DOI:10.1109/TPAMI.2018.2858826 (0)
[11] SIMONYAN K, ZISSERMAN A. Very deep convolutional networks for large-scale image recognition[J]. arXiv preprint arXiv: 1409.1556, 2014. (0)
[12] IOFFE S, SZEGEDY C. Batch normalization: accelerating deep network training by reducing internal covariate shift[J]. arXiv preprint arXiv: 1502.03167, 2015. (0)
[13] SZEGEDY C, VANHOUCKE V, IOFFE S, et al. Rethinking the inception architecture for computer vision[C]//Proceedings of the 2016 IEEE Conference on Computer Vision and Pattern Recognition (CVPR). Las Vegas, USA, 2016: 2818–2826. (0)
[14] HE Kaiming, ZHANG Xiangyu, REN Shaoqing, et al. Deep Residual Learning for Image Recognition[C]//2016 IEEE Conference on Computer Vision and Pattern Recognition (CVPR). Las Vegas, USA, 2016: 770–778. (0)
[15] LIN T Y, DOLLÁR P, GIRSHICK R, et al. Feature pyramid networks for object detection[C]//Proceedings of the 2017 IEEE Conference on Computer Vision and Pattern Recognition (CVPR). Honolulu, USA, 2017: 936–944. (0)
[16] LIU Ying, CUI Hongyuan, KUANG Zheng, et al. Ship detection and classification on optical remote sensing images using deep learning[C]//The 4th Annual International Conference on Information Technology and Applications (ITA 2017). Guangzhou, China, 2017, 12: 05012. (0)
[17] SOMMER L W, SCHUCHERT T, BEYERER J. Fast deep vehicle detection in aerial images[C]//2017 IEEE Winter Conference on Applications of Computer Vision (WACV). Santa Rosa, USA, 2017: 311–319. (0)
[18] GUO Wei, YAND Wen, ZHANG Haijian, et al. Geospatial object detection in high resolution satellite images based on multi-scale convolutional neural network[J]. Remote sensing, 2018, 10(1): 131. DOI:10.3390/rs10010131 (0)
[19] WANG E K, LI Yueping, NIE Zhe, et al. Deep fusion feature based object detection method for high resolution optical remote sensing images[J]. Applied sciences, 2019, 9(6): 1130. DOI:10.3390/app9061130 (0)
[20] CHENG Gong, ZHOU Peicheng, HAN Junwei. Learning rotation-invariant convolutional neural networks for object detection in VHR optical remote sensing images[J]. IEEE transactions on geoscience and remote sensing, 2016, 54(12): 7405-7415. DOI:10.1109/TGRS.2016.2601622 (0)