周雪珂 刘 畅 周 滨①
①(中国科学院大学 北京 100049)
②(中国科学院空天信息创新研究院 北京 100190)
合成孔径雷达 (Synthetic Aperture Radar,SAR) 作为一种主动式微波成像传感器,利用脉冲压缩技术改善距离分辨率,利用合成孔径原理改善方位分辨率,具有全天时、全天候进行高分辨率雷达成像观测能力[1,2]。SAR成像技术的日益成熟,对SAR图像中船舶目标检测的实时性和准确性也有了更高的要求[3]。
传统的SAR船舶检测方法一般采用多个步骤,从图像预处理,海陆分割,再到候选区域提取,最后进行目标检测和鉴别[4]。然而这种方法往往针对不同的场景问题就需要设计具体的解决方案,具有泛化性差的问题,检测精度也较差。
近些年,深度学习技术以其强大的特征表达能力和自主的学习能力在各个领域都得到了广泛的应用。基于深度学习的目标检测方法具有很多的优点[5]。深度学习算法充分体现了端到端的检测思想,整个过程几乎不需要人为干预和人为假设。因其适应性好,基于深度学习的目标检测算法针对光学图像、SAR图像,或者针对飞机、车辆、船舶等不同目标只通过变更样本重新训练即可,不需要修改网络结构和构建新特征。而且其适应性强,深度学习技术在进行船舶检测时不用区分远海近岸目标,网络可以自主学习目标的深度特征。
2014年,Girshick等人[6]开创性地提出一种基于区域的卷积神经网络方法(Region-based CNN features,R-CNN),实现了在对目标检测的同时进行识别。此算法在该领域引起了广泛的关注,也涌现了很多有效的改进算法,比如Fast R-CNN[7],Faster R-CNN[8],YOLO (You Only Look Once)[9],SSD (Single Shot multibox Detector)[10]。Fast RCNN在R-CNN的基础上通过固定单一尺寸的卷积特征图进行网格划分和池化,提高了计算速度。Faster R-CNN进一步引入区域建议网络(Region Proposal Network,RPN),通过RPN与Fast R-CNN共享特征提取网络,并进行位置回归,以提高目标检测的精度与速率。与R-CNN这些双阶段检测器不同,Redmon等人[9]提出了一种单阶段目标检测算法,称为YOLO,该算法将检测问题简化为分类回归,提升了检测速度,但也降低了检测的精准性。在此基础上,Liu等人[10]结合了Faster R-CNN的锚点机制与YOLO的回归思想,提出了SSD目标检测算法,虽然在准确度上有所提升,但对小目标的检测效果仍然较差。
鉴于Faster R-CNN的高检测准确度,不少学者已将其应用到SAR图像船舶检测中。李健伟等人[11]基于Faster R-CNN,结合将候选区域提取的二值化赋范梯度方法,采用级联卷积神经网络以增加模型复杂度换取检测精度的提升。2021年,李广帅等人[12]基于Faster R-CNN通过设计不同尺寸卷积核增强对浅层特征的提取,但依旧是从增加特征提取网络的卷积层数量出发,增加模型复杂度。Wang等人[13]通过在网络中引入软阈值注意模块抑制SAR船舶图像中的海杂波噪声与陆地背景,实验验证了其有效性与可行性。同时,基于检测速度的提升,Zhang等人[14]进行了深入的研究。2019年,Zhang等人[15]提出基于深度可分离卷积神经网络的检测算法,有效提升了检测速度,但检测精度有所损耗。之后,该团队又提出了一些轻量型网络[16,17],能够较好地权衡检测精度与检测速度,并且具有良好的迁移能力。
复杂场景下的SAR图像目标检测,提升检测精度和检测速度,降低模型训练代价,仍是目前大多数算法亟需解决的问题。本文基于Faster R-CNN算法进行优化。首先,在卷积神经网络部分引入通道注意力模型(Channel Attention,CA)进行通道间特征的关系校准,使网络更加关注有效信息,抑制无关信息,提升检测精度。其次,结合基于神经架构搜索(Neural Architecture Search,NAS)[18]算法的特征金字塔(Feature Pyramid Networks,FPN)[19]模块,在FPN生成的不同组合特征空间实现特征图的自动跨层连接,获取具有更丰富语义信息的特征图,以提升检测性能,同时在结合FPN后,适当减少了特征维度,从而减少前后向传播的运算量,以降低训练时间,保证实时检测。另外,在Faster R-CNN中,为了获取固定尺寸的特征向量,感兴趣区域池化层进行了两次量化操作,导致获取的候选框位置发生了偏移,对小目标检测影响极大。本文借鉴2017年He等人[20]提出的Mask R-CNN中通过双线性差值填充回归得到的浮点数位置像素的方法,使得低层特征图向上映射时没有位置误差,从而提升小目标检测效果。在检测时利用非极大值软抑制(Soft-Non Maximum Suppression,soft-NMS)[21]算法以改善非极大值抑制(NMS)的性能,提高复杂背景下停靠在一起的密集船舶检测精度。
Faster R-CNN算法检测流程如图1所示,首先基于特征提取网络获取输入图像的特征图,然后通过RPN生成候选区域框,再使用感兴趣区域池化(Region of Interest Pooling,RoI Pooling),从特征图中获得固定长度的各个候选区域的特征向量,最后对固定尺寸的特征向量进行分类得分与边界框位置回归。
图1 Faster R-CNN结构图Fig.1 The frame structure of Faster R-CNN
Faster R-CNN的特征提取网络通常采用卷积神经网络(Convolutional Neural Network,CNN),常见的特征网络有LeNet,AlexNet,VGG,Google-Net,ResNet,DenseNet等。其中ResNet通过引入3层残差模块(如图2所示),解决了神经网络中一味增加网络层数导致的“退化问题”。其中,Resnet50具有较好的特征提取能力,并且网络层数与参数量也较少。因此,本文采用Resnet50作为Faster R-CNN的主干网络。
图2 Resnet50的残差结构Fig.2 The residual structure of Resnet50
RPN主要是通过滑窗操作、中间层映射和两个全连接层进行分类回归来实现候选区域生成的。
如图3所示,首先选择3×3的滑动窗口在共享特征的最后一层特征图上进行滑动,每个滑动窗口区域通过中间层映射成一个特征向量,为每个滑窗区域的中心点生成k个不同尺寸和边长的锚框。该特征向量经过分类和回归分别输出每个滑动窗口的前背景概率值和回归后的锚框位置坐标信息。在RPN中,每个滑窗产生k个候选区域,回归层则会生成4k个位置坐标信息,分类层会生成2k个前背景得分信息。最后,RPN根据回归计算出的修正值对每个锚框的长、宽和中心进行修正,修正后的候选区域再经过非极大值抑制筛选出输出得分靠前的前N个区域作为目标检测网络的输入。
图3 区域建议网络结构Fig.3 The structure of region proposal network
RPN网络在生成候选区域框的时候有两个任务,一个是判断锚点产生的候选框是否为目标的二分类任务,另一个是对该候选框进行边框回归的回归任务。故RPN训练时的总体损失函数是分类损失Lcls和回归损失Lreg的加权和,表达式为
分类损失函数为
其中,i表示第i个锚点,当锚点为正样本时,表示锚框被预测为目标的概率。
回归损失函数为
其中,
ti=ftx,ty,tw,thg表示预测的边界框的4个位置参数坐标;ti表示正样本对应的真值边界框的坐标向量。其中,(x,y,w,h)为边界框的中心坐标,宽,高。变量x,xa和x*分别用于预测框、锚框和真值边界框。
在解决复杂背景下的SAR图像船舶目标检测任务时,上述Faster R-CNN模型存在检测精度较低且算法复杂度高、训练代价大的问题,导致其模型应用能力受限,针对此问题,本文提出了一种改进的Faster R-CNN模型。其网络结构如图4所示,主要在以下3方面改进:
图4 本文算法网络结构Fig.4 The network structure of the algorithm in this paper
(1) 为了提高小目标检测性能,解决Faster R-CNN在感兴趣区域池化过程中两次量化带来的候选框位置偏差问题,借鉴Mask R-CNN[20]中的RoI Align方法,使用双线性内插的方法获得坐标为浮点数的像素点上的图像数值。
(2) 为了提高检测的准确度,在卷积神经网络中加入通道注意力模块,对不同通道间的特征关系进行校准,提升网络的特征提取能力。
(3) 为了高效地利用不同尺度的特征图,基于神经架构搜索算法,改进特征金字塔结构,使网络可以自动跨不同特征层进行特征融合。
Faster R-CNN通过RoI Pooling将RPN生成的候选区域统一到固定尺寸,然后经过一个全连接层得到RoI特征向量。通过模型回归得到的候选区域的位置往往是一个非整数像素值,为了得到池化后尺寸固定的特征图,在RoI Pooling中存在两次量化的过程,经过这两次量化,产生的候选框就会和开始回归出来的位置坐标产生一定的误差,这个误差值会影响检测的准确度,尤其是在进行小目标检测时。
本文在感兴趣区域池化部分引入Mask R-CNN中提出的RoI Align方法,具体操作如图5所示。首先保持候选区域的浮点数位置坐标,然后将其划分为k×k个单元,单元边界也不做量化处理,最后对每个单元进行四等分找到其中心点,通过双线性内插计算出这4个位置的坐标,再进行最大池化。该方法通过将RoI Pooling中两次量化转换成一个连续的过程,解决了Faster R-CNN中的位置偏差问题。
图5 RoI Align的实现原理Fig.5 Implementation principle of RoI Align
为了使模型更关注具有有效信息的通道特征,抑制无关特征,实现通道间特征关系的校准,本文在Faster R-CNN的特征提取网络部分引入了CA机制。
CA算法借鉴SENet模型[22]的网络结构,如图6(a)所示,假设输入为通道数为C的H W的特征图,首先对特征图进行压缩(Squeeze)操作,将特征图作为输入,对应图6(b)中的全局平均池化(Global Pooling)操作,将不同通道上整个空间特征编码聚合,得到一个经过全局压缩的C11的特征向量;然后对全局特征进行激发(Excitation)操作,对应图6(b)可以看到,通过两个全连接层对通道间的相关性进行简单建模,提取各个通道间的关系,再经过Sigmoid激活函数获得归一化权重值;最后在原始特征图的基础上进行重加权(Scale)操作,也就是图6(b)中的Scale操作,通过对原始特征图乘以对应通道的权重值,得到新的特征图。SE_Resnet将原始特征图与新特征图进行叠加,得到最终的特征信息,即在Resnet中的残差模块引入图6(b)所示的CA结构。
图6 通道注意力模块结构Fig.6 The structure of channel attention module
本文选择结合通道注意力的Resnet50作为特征提取网络的主干网络,表1列出了特征提取网络的相关参数。
表1 以Resnet50作为主干网络的特征提取网络参数Tab.1 The network parameters extraction with Resnet50 as the backbone network feature
Faster R-CNN进行目标检测,利用顶层特征图进行后续目标分类与回归处理。顶层特征是卷积神经网络多次下采样得到的,具有比较丰富的语义信息,但是对细节的损失较大,而由于SAR图像成像范围较大,船舶目标相对较小,具有的像素信息也较少,在下采样的过程中极易丢失,从而导致漏检。为了解决这一问题,本文引入特征金字塔模块。为能准确快速地找到一种跨尺度连接的最优特征组合结构,本文使用了一种改进的特征金字塔结构(NAS-FPN)。NAS-FPN借助神经架构搜索算法的优势,在FPN生成的不同组合特征空间中,发现一种高性能架构,实现特征的自动跨层连接。
NAS-FPN主要利用强化学习的思想,使用循环神经网络(Recurrent Neural Network,RNN)作为控制器,利用网络模型在特征搜索空间中的准确度作为奖励进行交互,产生特征的组合行为,得到最优的模型架构。如图7所示,控制器对具有不同架构的子网络进行采样获取概率P,子网络模型将训练过程中的检测准确度R作为奖励信号反向传播更新控制器,通过不断迭代实验,控制器学习如何获取更好的组合架构,随着训练模型的逐渐收敛,得到最终的实验参数,也就是最优的组合方式。
图7 NAS-FPN强化学习算法Fig.7 Reinforcement learning for NAS-FPN
NAS-FPN通过上述的预处理任务训练一个简单的子网络模型,只需选择10个epoch,并且使用10层Resnet网络进行训练。经过预训练任务得到的组合结构如图8所示,从图中可以看到,此时的特征组合包括红色自底向上和蓝色自顶向下的特征组合方式,充分融合了不同尺度的特征图信息。
图8 FPN组合结构Fig.8 The combination structure of FPN
当通过上述方式选定特征组合后,本文采用Resnet50作为主干网络,提取了{C1,C2,C3,C4,C5} 5层特征,由于C1,C2占用内存较大,故将其移除,然后对C5进行下采样得到C6和C7层,选取{C3,C4,C5,C6,C7}构成特征金字塔。然后经过NAS-FPN得到{P3,P4,P5,P6,P7}。NASFPN通过特征融合单元(Feature Mergeing Cell,FMC)对网络提取的特征图进行重新融合,得到新的不同尺度的特征图,然后作为目标检测子网络的输入。如图9,首先从特征图集合中选取两幅特征图C3,C5作为FMC的输入,同时选取特征图C4作为FMC输出特征图的分辨率,这里的C3,C4,C5都是通过预处理任务选定的;然后针对输入的两幅特征图从Binary中选择所需的融合操作。这里Binary操作主要有两种选择,第1种如图10(a)所示,当输入的两特征图分辨率一致时,直接进行求和操作;第2种如图10(b)所示,当输入的两特征图分辨率不一致时,低层特征进行最大池化,并通过sigmoid激活函数,与高层特征元素乘,结果再与低层特征相加得到最终的输出;最后将新的融合特征图增加到开始的特征图集合中。
图9 NAS-FPN结构图Fig.9 The frame structure of NAS-FPN
图10 融合操作Fig.10 Binary operation
图11(a)–图11(e)是NAS-FPN中不同层输出特征图的热力图,这里选取了P3–P7层的特征。图11(f)–图11(g)为热力图叠加在原图上的效果图,从图11(f)可以看出,最终送入RPN中的特征图在保留原始信息的基础上,已经充分融合了各个尺度的特征信息,实现了对目标的精确定位。
图11 NAS-FPN热力图结果Fig.11 The heatmaps of NAS-FPN
本次实验使用的是SAR船舶检测数据集(SAR Ship Detection Dataset,SSDD)[5],该数据集是国内外公开的首个专门用于SAR图像船舶目标检测的数据集,共有1160个图像和2456个船舶。该数据集参考PASCAL VOC数据集的制作方式,数据包括RadarSat-2、TerraSAR-X和Sentinel-1传感器,HH,HV,VV和VH4种极化方式,分辨率为1~15 m,在大片海域和近岸地区都有船舶目标。
基于深度学习的SAR船舶检测算法的日渐成熟,近些年多位学者提出用于模型训练的高分辨率SAR船舶检测数据集[23,24,25]。为了验证本文所提出的网络结构泛化性,增加高分辨率SAR图像数据集(High-Resolution SAR Images Dataset,HRSID)[24]进行实验验证,该数据集共包含5064张高分辨率SAR图像和16951个船舶目标,参考COCO数据集的构建过程,包括不同极化方式和不同背景的船舶目标,分辨率为0.5 m,1.0 m,3.0 m。
实验的硬件配置采用Intel Core i7处理器,6 G B 内部存储器,GPU处理器为NVIDIA GTX1660Ti;实验平台为Ubuntu16.04;软件环境是Python 3.6,Anaconda 3,CUDA10.0,Cudnn7.6。实验基于pytorch1.3实现卷积神经网络模型,其中模型的特征提取网络都是在Resnet50上进行预训练的,主要参数包括最大迭代次数、候选区域锚框尺寸与数量、学习率、优化器和soft-NMS的阈值。
本文采用精度均值(Average Precision,AP)、训练时间(Time)、每秒帧数(Frame Per Second,FPS)、运算浮点数(FLOPs)和参数量(parameters)作为算法的评价指标。
(1) 精度均值
AP为准确率P和召回率R在[0,1]范围内绘制的曲线pr与坐标轴所围成的面积。其表达式为
其中,准确率(Precision,P)是指在所有正样本中,被正确识别为正样本的比例。表达式为
召回率(Recall,R)是预测的样本数中,被正确识别为正样本的?比例。表达式为
其中,TP代表真正例,FN代表假反例,FP代表假正例。
(2) 训练时间
Time代表模型训练过程中,平均每一次迭代所需的时间,可以表示为
其中,n为模型训练至收敛的迭代次数,ti代表训练第i次迭代所需要的时间。
(3) 每秒帧数
FPS代表检测速度的快慢,可以表示为
其中,N为对测试集的样本数量,T为对测试集进行检测所需要的时间。
(4) 浮点运算次数
FLOPs用来评估前向运算时的计算量,计算量越大,说明网络越复杂。
(5) 参数量
Parameters代表网络中的参数数量,在神经网络中一般指训练模型时需要学习的权重和偏置值。
首先在基础实验上进行多次调参,以获得最佳实验结果。最终的实验参数设置如下:最大迭代次数为8000,锚框尺度设置为{4,8,16,32,64},比例为{0.5 :1 :2},学习率采用线性增加策略,初始的500次迭代中学习率逐渐增加,初始学习率设置为0.005,优化器选择的是随机梯度下降法,soft-NMS的交并比阈值为0.5,最小得分阈值为0.05。当模型训练逐渐收敛时,会提前终止迭代。
为了更好地评估本文所提出的改进算法在SAR图像船舶目标的检测性能,实验基于SSDD数据集定量分析了该优化算法。从表2可以发现,从检测精度上看,Faster R-CNN在SSDD上的AP值为85.4%,首先模型在感兴趣区域池化模块使用RoI Align时,AP提升了1.8%,通过添加CA模块,获取不同通道间特征图的相关性,使得AP在Faster R-CNN基础上提升了2.8%,通过添加NAS-FPN模块获取不同尺度的特征图信息,使得AP在Faster R-CNN的基础上提升了2.6%,本文算法结合CA与NAS-FPN模型,将AP相较基础模型提升了4.0%,取得了较好的检测结果;从训练时间上看,Faster R-CNN在SSDD上达到0.667 s/iter,本文算法在Faster R-CNN的基础上添加了通道注意力模块,增加了训练时间,但是通过结合NAS-FPN模块,移除了占内存较大的C1和C2层特征,并且将之前送入RPN的1024维的通道数减少到256维,降低了模型的复杂度与训练时间。故本文算法相较基础Faster R-CNN仍具有极大的检测精度优势,同时检测速度提升了7.9 FPS,达到10.7 FPS,完全能够满足海上船舶实时检测的应用需求。
表2 基于Faster R-CNN的优化算法对比Tab.2 Comparison of optimization algorithms based on Faster R-CNN
为了进一步验证本文算法的目标检测能力,基于SSDD与HRSID数据集,表3将本文算法与SSD[10],Cascade R-CNN[26]和PANet[27]等算法进行了性能对比。图12展示了不同算法在两数据集上的P-R曲线图。实验证明,本文算法虽然在检测速度上和模型参数上存在一些劣势。但不论在SSDD还是在HRSID数据集上,本文算法的检测精度都是最高的。
图12 不同算法的P-R曲线对比Fig.12 The P-R curve of different methods
表3 不同检测算法的性能对比Tab.3 Comparison of different detection algorithms
除上述在检测精度方面的优势外,本文算法对各种复杂场景下船舶目标的检测适应能力更强。图13–图15分别从SSDD中选择了3种不同场景下的SAR船舶图像进行对比,包括小目标船舶、近岸船舶和密集停靠船舶,这里设置得分阈值为0.8,即认为在测试中,如果检测到的船舶目标和标记的矩形框的重叠部分达到标记矩形框的80% 以上,则认为是成功检测。
对比图13可以发现本文算法在小目标检测中的检测效果明显更优,在Faster R-CNN中,由于模型检测精度低,对船舶目标的得分不够准确,在固定得分阈值下,当得分结果不够精确时,针对一例船舶目标就会存在多个矩形标记框,如图13(c)中的虚警情况;当船舶目标的边缘轮廓较弱时,模型打分结果过低,就会导致漏检。相同的参数设置下,本文算法因为其检测精度的提升,完全消除了虚警现象,漏警也得到了明显的改善,遗漏目标也主要是因为船舶目标的边缘较弱,提取的特征进行回归时的得分低于阈值,未成功检测,对于这一类弱目标的检测,也会在今后的研究中重点关注;与SSD算法相比,SSD算法对小目标检测效果极差,在图13中未检测出一例船舶目标;通过对比PANet与Cascade R-CNN发现,Cascade R-CNN在小目标检测上的效果较差,在Cascade R-CNN中,特征金字塔主要包括自上而下的单向融合,PANet中增加了自下而上的二次融合结构,而本文算法使用了NAS-FPN,增加了更复杂的双向特征融合,能够有效抑制噪声提取目标,目前的检测结果是最好的,检测率为100%,召回率为88.2%,虚警率为0。这说明本文算法对小目标检测相较当前大多数网络来说效果更优。
图13 小目标船舶图像的检测算法对比Fig.13 Comparison of detection algorithms for small target
对比图14中复杂背景下的近岸船舶目标检测结果,本文算法由于多尺度特征融合,增强了不同尺度船舶特征的提取,同时结合了通道注意力模型对不同通道间特征关系进行校准,使得近岸船舶不需要海陆分割等手段,就可以准确提取目标特征并成功检测目标,在图14中本文算法的检测率达到100%,召回率为100%,虚警率为0。对比PANet和Cascade R-CNN网络,检测结果保持一致,但Faster R-CNN和SSD算法由于检测精度较低,均漏检了图中的小目标船舶。这说明了本文算法对复杂背景下近岸的SAR图像船舶检测效果也更好。
图14 近岸船舶图像的检测算法对比Fig.14 Comparison of detection algorithms for inshore ship
对比图15中复杂背景下的密集停靠船舶目标检测结果,对比算法均出现多个漏警,而本文算法则高效地检测出了其中大部分的漏警,检测率达到100%,召回率为85.7%,虚警率为0。从漏警目标可以看出对于近邻停靠的船舶,当其停靠角度有差异时,就可以正确检测,但是,当停靠在一起的船舶完全平行时,就会将其检测成一例目标,针对这一情况在后续研究中考虑使用平衡场景学习机制(Balance Scene Learning Mechanism,BSLM)[28]提升近岸复杂场景下的船舶检测精度。目前实验结果对比表明本文算法对于密集停靠的船舶目标检测准确度仍然更高。
图15 密集停靠的船舶图像检测算法对比Fig.15 Comparison of detection algorithms for adjacent targets
表4基于SSDD数据集,将测试数据的船舶目标按照近岸与离岸船舶分为两类,分别统计其检测精度与召回率。
表4 不同检测算法基于SSDD在近岸与离岸场景下的性能对比Tab.4 Comparison of different detection algorithms in inshore and offshore scenes of SSDD
实验结果表明,不论是针对近岸船舶还是离岸船舶,本文的检测精度都是最高的。与SSD算法相比较,本文算法的提升主要体现在离岸船舶目标的检测,由于这类目标多数为小目标船舶导致SSD检测效果较差。与Cascade R-CNN,PANet相比,本文算法因结合更复杂的多尺度特征融合与通道关系校准模块,在近岸和离岸船舶检测中检测精度均得到有效地提升。
最后,本文选取了AIR-SARShip 1.0数据集[25]的图像进行模型结果测试。如图16所示,AIRSARShip 1.0数据为3000×3000的高分辨SAR图像,其中,使用蓝色矩形框在检测结果中标注目标位置。本文算法能够较好地检测出船舶目标,检测率为100%。这说明该模型对大场景下星载SAR图像的船舶检测也是有效的。
图16 本文算法在AIR-SARShip 1.0数据上的检测结果Fig.16 Detection result of this algorithm on AIR-SARShip 1.0
本文提出一种基于多尺度特征融合与通道关系校准的Faster R-CNN目标检测算法,将其用于SAR图像的船舶检测研究中。在两种船舶检测数据集上的检测结果均表明,相较原始Faster R-CNN,SSD,Cascade R-CNN与PANet,本文算法不论是针对不同尺度下的小目标船舶,复杂背景下的近岸船舶,还是近邻停靠的多船舶目标都具有更好的检测精度,各种复杂场景下的船舶目标检测适应性更强。在检测时间上,与原始Faster R-CNN相比,检测速度得到了大幅度提升,能够适应对各种检测实时性要求高的检测任务需求,例如实时海面监控、紧急海上救援以及军事部署任务等。