FPN特征提取的光学遥感图像船舶检测
2021-11-14牛瑞欣赵正健张时源
牛瑞欣,赵正健,张时源,党 杰,杜 璐
(中电太极(集团)有限公司 西安研发中心,陕西 西安 710065)
0 引言
地球观测卫星遥感技术作为近年来发展迅猛的高科技技术之一,利用卫星上搭载的可见光、红外和微波等传感器,收集地球表面和近地空间的电磁辐射数据,逐渐成为各国探测识别地球资源和环境信息的重要手段[1-2]。遥感图像的目标识别技术如今也被大量应用于资源调查与监测、气象灾害预测、海洋勘探和作战指挥等领域,该技术已经成为图像处理和目标识别等领域的热门研究方向。
随着高分辨率卫星的快速发展和高分辨率遥感图像数据的急剧增加,基于手工特征构建的传统目标检测算法难以高效处理大数据时代下的遥感图像,近年来兴起的深度学习方法凭借其能自主学习目标特征的优势,通过对低层的特征提取及组合,形成抽象的高层特征表示,简化了图像特征提取的过程,并且具有很好的自适应性。
在海面目标检测任务中,Liu等人[3]结合了顶帽变换(Top-hat Transform,THT)图像预处理技术和卷积神经网络(Convolutional Neural Networks,CNN)模型的方法,来检测和判别遥感图像中的船只。Gallego等人[4]采用了迁移学习的方法,设计了一个CNN模型,并在模型的最后一层使用了k最邻近 (k-Nearest-Neighbors,kNN)算法取代softmax激活函数作为分类器。ETTEN等人提出了一个YOLT(You Only Look Twice)[4]检测模型,来提高对于小目标的检测表现,并针对不同的目标物体(如飞机和机场)设计了不同尺度大小的检测器。Nie等人[6]使用了迁移学习的方法,来提高对检测遥感图像中的船只的准确性。而Wei等人[7]提出的检测算法完全舍弃锚框机制,并在模型的损失函数中引入了2个系数来缓解正负样本的不均衡分布造成的权重差异。基于深度学习的目标检测方法已经被广泛应用在人脸识别、行人检测等领域中。
然而遥感卫星拍摄的图像中(如舰船等),占据像素点较少,外形狭长且分布密集,检测难度高于普通图像的目标检测任务。而很多基于CNN的检测方法,最终根据置信度去除冗余检测结果时,难以区分相邻紧密排列的船只,导致漏检的情况发生,从而使准确率降低。
针对小目标的检测方法,建立图像特征金字塔(Feature Pyramid Network,FPN)[8]是非常有效的检测手段。Kang等人[9]的舰船检测模型,采用了FPN模型的思路对合成孔径雷达(Synthetic Aperture Radar,SAR)遥感图像进行特征提取得到融合的特征图来提高检测准确度。Deng等人[10]在原金字塔模型的基础上,建立利用底层高分辨率的特征图,为了实现扩展特征金字塔设计了一个特征纹理迁移模块 (Feature Texture Transfer,FTT),用来生成中间特征。同时利用一个前景背景平衡损失函数来加强网络学习正像素点的能力,专门针对小物体目标进行方法优化。而在2019年提出的神经架构搜索 (Neural Architecture Search,NAS)[11],同样采用了FPN的特征融合策略,将融合后的特征图作为控制器的采样依据,有效提升了检测推理性能。
本文提出的基于FPN模型的金字塔式特征提取方法的检测模型,能够有效利用不同尺度特征图中船只的信息,结合可旋转的候选框检测器的设计,能够提高多尺度目标检测的准确率,尤其是小目标的检测,较好地缓解难以预测在图像中密集排列的物体位置的问题。
1 基于深度学习的目标检测
早在1986年Rumelhart等人[12]提出了多层感知机的反向传播(Back Propagation,BP)算法。2006 年,Hinton等人[13]提出基于多层神经网络的深度学习概念,开启了深度研究的热潮。CNN以及它的改进模型在图像识别领域的应用十分广泛,而基于锚框(Anchor Box)检测机制的提出,则大大提升了CNN模型的性能。
1.1 两阶段检测模型的方法
2012年Hinton等人[13]提出了一个CNN模型,并第一次将其应用在图像分类和目标位置获取任务上。它的改进模型R-CNN[14],采用选择性搜索算法取代滑窗算法,首先对输入图像进行卷积操作并提出一系列的候选区域提议(Region Proposal),然后在这些目标候选区使用神经网络进行特征提取操作。最后将特征数据输入每个类别的支持向量机(Supported Vector Machine,SVM)分类器进行判别。而Fast R-CNN模型[15]的提出,采取的思路是先将原始图像做一次特征提取,然后在提取出的特征图上再提出候选区域,大大减少了对原始图像的重复运算。并且Fast R-CNN模型还将R-CNN中的独立的SVM分类器替换成了softmax激活函数,将其融合入网络,由此可以得到带有类别概率和边界框位置坐标输出的、端到端的模型。
1.2 多层特征提取模型FPN
Faster R-CNN等模型算法采用多尺度特征融合的方式做预测,然而对于图像底层的特征利用率不高。结构为金字塔状的FPN模型,能够有效利用图像的底层特征。通常情况下,低层的特征语义信息比较少,但是目标位置准确;高层特征的语义信息比较丰富,但是目标位置比较粗略。因此,多利用底层的特征有助于更准确地预测图像中的小目标物体。
FPN模型金字塔状的网络结构包含自下而上(上采样)、自上而下(下采样)的工作流以及横向连接的设计。模型的输入为一个任意尺寸大小的图像,输出为多等级的相应比例特征图,相同尺寸特征图的层被列为同一个阶段,将每个阶段的最后一层的输出作为参考特征图。横向连接的设计对上采样和自底向上生成的相同大小的特征图进行加和,所有阶段的输出构造出一个金字塔形,并且能够对各个层的特征图进行预测。所以基于FPN模型的预测是在不同特征层独立进行的,能够充分利用不同尺度下图像特征。
1.3 带有锚框机制的检测方法
锚框是指预设一组不同尺度不同位置的固定参考框,覆盖几乎所有位置和尺度,每个参考框负责检测与其交并比大于阈值的目标,锚框机制将目标检测任务转换为“该固定参考框中有没有认识的目标,这个目标框偏离参考框多远”的问题,该机制可以加速模型的检测。而在Faster R-CNN模型中提出的候选区域算法网络(Region Proposal Network,RPN)[16]则可以降低提出候选区域的计算量,RPN是一个小型的神经网络模型,采用滑动窗的方法提取特征,训练后可以直接根据输入图像提出候选区域提议。由于RPN模型可以和Fast R-CNN模型共享网络层进行训练,可以有效提升模型的运行速度。
2 提出的目标检测模型
本实验采用了两阶段的模型检测思路,结合多层特征提取的方法,并设计一系列倾斜的锚框来框选待检测目标船舶,相比于传统的CNN模型,可以有效提高遥感图像上船舶目标的检测准确率。
在网络结构设计方面,实验采取FPN模型的金字塔式的特征提取融合方法,并在各特征图层中设计了不同形状和大小的锚框来定位图像中的潜在目标。然后根据RPN候选区域提出模型,重新定义锚框矩形的表征,使其作为可旋转的先验框[17]进行目标检测,接着对锚框进行分析得到倾斜的位置提议。每个倾斜的位置提议可以通过结构中的兴趣区域(Region of Interests,RoI)排列层得到一个固定长度的向量来保护完整的特征信息,最后采用Faster R-CNN的预测模块来对该向量进行位置回归和分类回归得到检测结果,检测模型的具体方法如图1所示。
图1 实验方法流程示意Fig.1 Schematic diagram of experimental method workflow
2.1 基于FPN的特征提取
实验选用ResNet残差网络作为FPN的基本网络。在自下而上的网络中,选择具有较强语义特征的{C2,C3,C4,C5}这4层的特征图。在自上而下的网络中采用了上采样和横向连接的方式构建了特征金字塔{P2,P3,P4,P5},构建原理如图 2所示。
左侧为图像的特征提取过程,相对于原始图像的步长设置为{4,8,16,32},右侧的上采样过程对每层的特征图都使用大小为1×1,步长为1的卷积核来降维,使其与下层的特征图保持相同的维度,最后在融合的特征图上使用3×3的卷积,消除上采样的混叠效应,得到最终的特征图{P2,P3,P4,P5},同时设定所有的特征图的通道数为256。
图2 构建特征金字塔Fig.2 Constructing feature pyramid
2.2可旋转的锚框
可旋转的锚框的位置坐标可以用{xc,yc,w,h,θ}这5个参数表示,并根据图像中船只的外形特征,设计了锚框在每层特征图中的尺度、锚的长宽比,以及锚框旋转的角度等参数,使其能适应不同的应用场景,如图3所示。
图3 可旋转的锚框Fig.3 Rotatable anchor
考虑到船舶目标大小在数据集图像中的分布,选取部分数据图像进行待检测目标分析,统计出大部分船只目标在图像中的排列方式的数据,将检测锚框的角度参数设置为{15°,30°,45°,60°,75°,90°}几组,同时考虑目标的外形特征,量取不同船只的船身长宽比,设置了{1∶5,5∶1,1∶7,7∶1,1∶9,9∶1}这几组。对于提取出的每层特征图{P2,P3,P4,P5},借鉴原FPN检测模型中对比实验的超参设置,设定为固定大小的像素数,分别为{32,64,128,256}。该参数设置并不针对某个特定数据集而设置,不同的特征图像素参数设置对检测结果影响较小(文献[16]将不同的参数设置组合在PASCAL VOC 2007数据集上进行了对比实验,只产生2%的准确率差值)。
由上述参数设置可知,每张特征图会产生36个不同长宽比和角度锚框,共144个输出送入回归层进行位置回归和分类。在常见的两阶段检测框架中,常使用RoI Pooling方法,根据预选框位置坐标,在特征图中将相对应的区域池化为固定尺寸的特征图。后续进行包围框回归计算时,通常会得到浮点数,但是池化操作后的特征图需要固定的尺寸,此时得到的候选框位置与回归结果便有了偏差。该方法在待测目标为小目标的情况下,往往造成预测结果的不准确。
为了缓解两阶段检测模型固有的2次量化造成的区域不匹配的问题,本实验采用了RoI Align[18]的方法,取消量化操作,使用双线性内插的方法获得坐标为浮点数的像素点上的图像数值,从而将整个特征聚集过程转化为一个连续的操作,来提升模型的准确性。RoI Align算法示意如图 4所示,外层虚线框为提取的特征图,实线框为感兴趣区域RoI,每个RoI区域划分为4个格子,每个格子中有4个样本点,RoI Align算法根据周围特征图上的边界点,采用内插法计算出每个样本点的位置,整个计算过程不涉及任何的量化操作,由此减少误差的产生。
图4 RoI Align算法示意Fig.4 Schematic diagram of RoI Align algorithm
2.3 采用的数据
实验采用的数据为可见光遥感图像,选取带有船舶目标的不同场景下的图像,并将其切割成为1 024 pixel×1 024 pixel的1 500张样本,图像样本如图 5所示。
图5 标注图像样本Fig.5 Image samples with annotations
对原始遥感图像标注了图像内船舶的标签和其边界框四边顶点的位置坐标,标注数据格式与VOC2017数据集保持一致,目标坐标标注如图 6所示,{x0,y0,x1,y1,x2,y2,x3,y4}为单个待检测目标的4个顶点的位置坐标。
图6 图像样本中待检测物体的位置数据标注Fig.6 Position data annotations of the object to be detected in the image sample
由于数据样本较小,本实验采用了迁移学习的策略,在相似数据集上训练出的预训练参数[19]的基础上优化了锚框的设计,并在本文的数据集上进行了训练。
3 实验结果及分析
选取不同场景下的图像,共364张测试图像样本进行模型验证,检测目标1 516个,进行模型的验证,测试结果显示Precision值为75.77%。
评价指标采用Precision值,具体定义为:
式中,TP为预测值和真实值相同,预测值为正样本,真实值为正样本;FP为预测值和真实值不同,预测值为正样本,真实值为负样本。
结合实验结果数据,实验检测效果较优的结果主要分布在如图 7和图 8所示的场景中,待检测目标为在样本图像中均匀排列且长宽比相似的船舶。
(a) 预测值
(b) 真实值图7 离岸样本Fig.7 Offshore detection samples
(a) 预测值
(b) 真实值图8 近岸样本Fig.8 Inshore detection samples
然而在近岸样本中会出现长宽比接近模型预设锚框参数的矩形物体容易被误检为船舶的情况,如屋顶、码头以及集装箱等,如图 9所示。
(a) 预测值
(b) 真实值图9 误检样本Fig.9 False detection samples
对误检的样本分析可以得出,同一场景中,对具有不同尺度大小和长宽比船舶的检测有较大的挑战性。如何将岸边的屋顶、集装箱等外形与尺度大小与近岸的船只相似的目标区分来,是模型需要进一步改进的地方。
4 结束语
遥感图像为顶视视角,图像中的目标往往很小,很难做到对目标的精确定位。小目标的精确检测需要在神经网络的多个层上进行目标预测,往往需要大量的训练和测试才能达到一定的检测准确率。本文结合了FPN的特征提取模型和Faster R-CNN的目标预测模块,设计了可旋转的检测锚框来提高模型的检测准确性,并通过实验证明遥感图像中小目标检测依赖于锚框的参数设置。
随着目标检测算法研究的深入,需要面对的困难与挑战也逐渐增多,模型的准确度提升但是随之运行速度降低,或者模型对于不同尺度目标的检测准确率差异较大等。如何在模型精度和模型运行效率之间做出权衡,是深度学习在目标检测与识别领域遇到的困难之一。
基于对历年的模型性能分析,深度学习模型在遥感图像目标检测领域可能会有以下发展趋势:
① 融合基于Faster R-CNN和SSD模型(Single-shot Detection)[20]检测思路的检测方法:YOLO(You Only Look Once)[21]算法的提出者指出,Fast R-CNN和YOLO网络的模型,可以利用YOLO来消除Fast R-CNN模型的背景误测,而对于每个Fast R-CNN模型检测到的边界框,都使用YOLO来检查是否有相似的检测边界框出现,这样的模型可以取得高于二者各自的检测性能。
② 实现软硬件协同加速计算:基于两阶段的检测模型相比一阶段检测模型有更高的检测准确度,但是由于模型较为复杂,运行速度较慢。近年来发展较快的并行计算FPGA板卡,不需要操作系统作为支撑,在并行计算加速方面有很大的优势。未来可以对复杂模型的算法进行划分,将费时的卷积操作放在FPGA中进行加速,提高运行效率,则基于两阶段的检测模型可以充分利用软硬件的协同,实现精准度和运行速度的双赢。
③ 实现目标的细粒度分类检测:在船只的分类任务上,目前大部分文献中的深度神经网络算法都只能对图像中的目标做出是否为船只的判断,并不能对其做出更为具体的预测,如判定其为载货船、邮轮或者大型军舰等。通过结合船舶自动识别系统 (Automatic Identification System,AIS)的实时数据,可以获得更加详细的船舶信息,如船只的类型以及船的航行方向等,来辅助模型进行预测。