多尺度与复杂背景条件下的SAR图像船舶检测
2021-07-15刘畅朱卫纲
刘畅,朱卫纲
(航天工程大学,北京 101416)
0 引言
我国是海洋大国,具有辽阔的海域与丰富的海洋资源,及时准确地掌握船只目标的位置分布,对管理海洋交通、维护海洋权益等方面都具有重要意义。星载合成孔径雷达(synthetic aperture radar,SAR)是一种主动式微波成像雷达,具有全天时、全天候工作的能力,在军事侦察、海洋管理、地形勘测等众多领域都有广泛的应用。如何利用SAR图像快速准确地检测海洋船舶目标也成为了备受关注的研究课题。恒虚警率(constant false alarm rate,CFAR)算法[1]是检测SAR图像船舶目标的传统算法,通过建立海杂波的统计模型并确定虚警概率与阈值进行检测。但是由于SAR图像往往具有复杂的海杂波分布,难以用单一的统计模型来描述,因此CFAR算法的鲁棒性较差。
近年来,随着计算机技术与深度学习方法的迅速发展,基于卷积神经网络(convolutional neural network,CNN)的目标检测算法在精度与速度上取得了重大突破,开启了基于CNN的目标检测的热潮,并陆续出现了R-CNN[2]、Fast R-CNN[3]、Faster R-CNN[4]、R-FCN[5]、YOLO[6-7]、SSD[8]、RetinaNet[9]、EfficientDet[10]等众多检测算法。由于CNN的检测算法在光学图像目标检测中取得了卓越的效果,研究人员开始将CNN目标检测算法应用到SAR遥感图像的目标检测当中。然而SAR图像与光学图像相比,在包含信息、分辨率、成像机制方面都有较大区别。SAR图像数据通常为单通道复数据,分辨率较低,且存在较多的斑点噪声,其成像几何为斜距投影,容易产生叠掩、透视收缩、多路径假目标等几何畸变,因此相比于光学图像检测难度更大。
目前的检测算法主要解决多尺度检测问题与复杂场景下的虚警问题。对于多尺度检测问题,主要的解决方法是对不同尺度的特征进行融合,文献[11-13]在网络中引入特征金字塔(feature pyramid networks)结构融合不同尺度的特征,Jiao等[14]使用密集连接的方式进行多尺度融合。其他的多尺度融合结构还有PANet[15]、NAS-FPN[16]等。对于复杂场景下的检测问题,Kang等[17]提出结合上下文信息的方法,利用目标周围的背景信息提高检测结果,An等[18]采用倾斜的矩形框标记目标,能够更准确地标记复杂环境下分布密集的目标。
本文为了提高多尺度检测的能力,使用可训练的权重对不同尺度的特征图进行加权融合;为了减少在复杂环境下的虚警,利用提取的特征指导锚框的生成,减少了负样本锚框的数量,进而降低了虚警概率。本文使用三个SAR图像船舶目标公开数据集对网络进行训练与测试。分析结果表明,此算法相比其他检测方法具有更好的检测效果。
1 网络结构设计
1.1 特征提取网络
一般来说,特征提取网络的层数越深,能够提取的信息越多,特征也越丰富,但是随着网络的加深,容易产生梯度爆炸和梯度消失的问题。通过正则化初始化以及中间加入正则化层可以一定程度上解决这一问题,但也仅仅可以训练几十层的网络,如果训练更深的网络将产生退化问题,随着网络层数的增加,在训练集上的准确率将会趋于饱和甚至下降[19]。深度残差网络是一种特殊的卷积神经网络结构,通过在浅层网络的基础上叠加恒等映射层,构成残差块,可以有效地避免深度增加而导致的退化问题。ResNet101是一种深度残差网络,网络共包含33个残差块,每一个残差块包含3个卷积层,具有较强的特征提取能力。如图1所示,本文在ResNet101网络的基础上增加了Conv6和Conv7 2层卷积层,以进一步提取语义信息,最后将Conv3到Conv7层的特征图作为提取网络的输出,以便进一步进行特征融合。
图1 特征提取网络与残差结构
1.2 加权特征融合结构
由于海洋船舶的实际尺寸差异较大,SAR在不同工作模式下的分辨率也各不相同,因此检测网络需要满足多尺度检测的需求。
多尺度特征融合旨在聚合不同分辨率的特征,增强多尺度检测的能力。图2是几种不同的多尺度特征融合结构对比。
图2 不同的多尺度融合网络结构
图2(a)的FPN结构[20]以自上而下的方式将高层特征上采样与低层特征直接相加。这种方法存在的问题是:自顶向下的方式只传递了高层的语义特征,而对于低层定位信息没有传递;另一方面,将不同尺度的特征按照相同的比重直接相加,会造成低层特征的位置信息损失。
图2(b)的PANet(path aggregation network)结构在FPN的基础上增加了自下而上的路径,缩短了低层定位信息与顶层特征之间的信息路径。
图2(c)是NAS-FPN结构,使用神经架构搜索找出不规则特征的网络拓扑,使用强化学习训练控制器在给定的搜索空间中选择最佳的模型结构。
图2(d)是全连接融合的方式,这种方式虽然检测效果较好,但是极大地增加了网络的复杂度,由于过多地增加了训练参数,计算速度较慢。
为了在提高特征融合网络性能的同时尽可能地降低网络的复杂度,本文利用一种简单高效的加权双向特征金字塔网络BiFPN。如图3所示,BiFPN网络在PANet的基础上移除单输入节点,简化模型结构,并添加了横向捷径,是一种简单高效的特征融合结构。通过在模型中引入可学习的权重对输入特征加权融合,以学习不同输入特征的重要性,分配不同尺度特征的信息比重。
图3 本文的特征融合网络结构
本文使用快速正则化方法对节点的输入特征图进行加权,各特征融合节点的加权公式如式(1)所示。
(1)
式中:ωi≥0;ε是为了计算稳定性而设置的极小值,本文取值为1×10-4。
以图3中的Conv4层为例。
(2)
(3)
1.3 利用GA-RPN结构生成锚框
在基于CNN的目标检测中,锚框(anchor box)通常是根据检测任务的需求人为设计的一组框,用来作为分类与边框回归的基准。这种人为设定锚框的方式主要存在两点问题。一是检测效率太低。对于一张图像,往往需要生成几千个锚框,而图像中的正样本往往很少,过多的负样本锚框则会导致检测速度较慢。二是不合理的先验假设。生成锚框时,往往会依据先验知识人为设定锚框的宽高,而对于SAR图像船舶目标来说,目标的真实尺寸通常不固定且有较大差异,SAR在不同成像模式下的距离向和方位向分辨率也各不相同,因此人工设定锚框难以适应图像样本的尺寸分布。
基于上述两点问题,本文利用融合后的特征去指导锚框中心以及宽高的生成,这样可以大大减少负样本锚框的产生,且能够适应极端尺寸的目标。
本文在BiFPN的每一层输出特征图后都嵌入了GA-RPN(guided anchoring-RPN)结构[21]用于预测锚框,具体结构如图4所示。
图4 GA-RPN网络结构
GA-RPN可以分为两个子模块,分别是锚框生成模块和特征调整模块。
在锚框生成模块中,从两个分支分别预测特征图上每个像素所对应的图像感受野是目标的置信度,以及对应的宽和高(用2通道的特征图来表示)。当目标置信度大于特定的阈值时,则保留对应位置的宽高作为预测的锚框。显然,这种产生锚框的方式相比于滑窗的方法能够减少大量的负样本。
特征调整模块借鉴了可变形卷积(deformable convolution)[22]的思想,使用锚框生成模块产生的2通道宽高特征图预测可变形卷积的偏移量,然后利用预测的偏移量对原特征图进行3×3的可变形卷积,通过对特征图的修正,使之与生成的锚框精确匹配。
1.4 分类回归网络与损失函数
Bi-FPN的每一层特征分别经过GA模块后,产生不同尺度的锚框与修正后的特征图,并分别进行边界框回归与分类。
以其中一层特征图为例,分类与回归网络的结构如图5所示,其中W、H表示宽、高。
图5 分类与回归网络结构
由于检测网络与GA-RPN联合训练,损失函数中添加了生成锚框的损失函数,联合训练损失函数如式(4)所示。
L=λ1Lloc+λ2Lshape+Lcls+Lreg
(4)
式中:Lloc是锚框定位损失函数;Lshape为锚框形状损失函数;Lcls为检测分类损失函数,本文采用focal loss衡量分类损失;Lreg为检测的边框回归损失函数,本文采用CIoU衡量边框回归损失;λ1和λ2为平衡项,本文λ1=1,λ2=0.1。
对于锚框定位损失函数Lloc,将目标真实边界框G=(xg,yg,Wg,Hg)映射到特征图的尺度,特征图上的边界框为G′=(x′g,y′g,W′g,H′g)。对于中心落在G′中心区域的锚框,将其记为正样本;对于中心落在G′区域外的锚框,将其记为负样本;对其余中心落在G′区域边缘的锚框进行忽略。最后,利用focal loss损失函数训练锚框定位分支。
对于锚框形状损失函数Lshape,将锚框与真实边界框ground truth进行匹配,计算最大化IoU,作为衡量锚框形状预测效果的标准。其计算方法如式(5)所示。
(5)
式中:w和h表示预测的宽度和高度;wg和hg表示标签中真实框的宽度和高度;L1(·)表示平滑L1损失。
2 数据集构建与模型训练
基于上述的网络设计,本文通过实验比较了各项改进优化对检测准确率的提升效果。
2.1 实验数据集
本文使用的训练图像来自于表1中的三个SAR船舶目标数据集。
表1 本文使用的训练数据集
将数据集SSDD和SAR-Ship-Dataset中80%的样本作为本文实验的训练集与验证集,剩余20%的样本与数据集AIRSAR-Ship-2.0作为测试集。
图6 实验所用的数据集样本
由于数据集SAR-Ship-Dataset中的切片尺寸过小,为了在尺寸上与数据集SSDD保持基本的一致,在训练过程中,随机抽取四张数据集中256像素×256像素的图像进行拼接,拼接后的图像尺寸为512像素×512像素。在使数据集尺寸基本一致的同时,这种方法可以提高训练效率,并且能够使目标在图像中的位置更具有随机性。
2.2 实验平台与训练参数
实验在Windows10系统下,基于深度学习框架pytorch-1.6.0进行,并使用CUDA-10.1与CUDNN-7.6.5加速训练。计算机CPU为Intel Core i9-9820X,GPU为NVIDIA Titan V,显存大小为12 GB。
训练过程中,使用ResNet-101在ImageNet上的预训练模型对ResNet参数进行初始化,使网络能够较快地收敛,缩短训练时间。使用Adam作为训练的优化器,初始学习率设置为0.000 1,若训练三个epoch之后网络性能无法提升,则自动将学习率衰减为原来的一半。
3 检测结果与分析
3.1 算法评价准则
本文采用的算法衡量指标为精确率(precision)、召回率(recall)、F1值与mAP。若将得分阈值设为0.5,将区分正负样本的IoU阈值设为0.5,用TP表示正确预测的正样本数量、FP表示负样本被错误预测为正样本的数量、FN表示未检测出的正样本数量,则精确率如式(6)所示。
(6)
召回率如式(7)所示。
(7)
为了综合上述两种指标对检测结果进行评价,使用F1值作为检测的综合评价指标,其计算方法如式(8)所示。
(8)
对于mAP的计算,本文对网络的所有预测结果计算P-R曲线,以便更好地观察曲线的变化趋势,评价网络的检测效果。同时,以0.5为预测得分的阈值,仅对高于阈值的最终检测结果计算mAP,反映算法最终的检测效果。
3.2 特征融合网络的效果对比实验
为了检验本文提出的加权BiFPN特征融合网络的有效性,以RetinaNet检测算法为基础,以ResNet-101结构为特征提取网络,分别使用FPN、PANet以及加权BiFPN结构作为特征融合网络,在本文数据集中进行测试。实验结果如表2所示。本文方法在保持精确率基本不变的情况下,能够显著地提高检测召回率,相比于FPN结构召回率提高了4%。
表2 特征融合网络检测效果对比 %
3.3 锚框生成方法实验对比
通过比较BiFPN+预设密集锚框的方法与BiFPN+GA-RPN方法的实验结果,检验本文特征指导锚框生成方法的有效性。实验结果如表3所示。可以看出,本文方法相比于预设密集锚框的方法能够明显提高检测精确率,即降低了虚警率,同时检测的召回率也有一定限度的提高。图7是部分实验结果,其中第一行图像为传统预设密集锚框方法的检测结果,第二行为本文方法的实验结果,对比来看,在复杂场景下,本文方法产生的虚警更少。
表3 两种锚框生成方法效果对比 %
注:蓝色框表示漏检目标;黄色框表示虚警。图7 不同锚框生成方法的结构对比
3.4 整体网络结构改进效果
综合使用加权BiFPN结构与GA-RPN结构构建本文提出的算法。实验对比Faster R-CNN、SSD、YOLOv4以及本文算法在本文数据集上的检测效果,通过精确率、召回率、F1值以及mAP评估各检测算法的性能,如表4所示。最后,测试集在不同算法上的检测结果绘制P-R曲线,如图8所示。可以看出,本文算法的曲线下方面积最大,效果最好。图9是不同算法的检测图像对比,其中左侧第一列是对密集分布的小目标的检测结果。可以看出,本文方法拥有更低的漏检率。后三列是在复杂场景下的检测结果,可以看出,YOLOv4、SSD这类单阶段算法虚警率较高,且边框回归不准确,而本文采用的GA-RPN结构能够排除较多的负样本锚框,在港口等复杂场景下能够有效地排除干扰。
表4 本文算法与其他检测算法对比
图8 不同算法的P-R曲线对比
图9 不同算法的检测结果对比
4 结束语
传统的多尺度特征融合结构没有考虑融合比重以及底层位置信息流动的问题,本文针对这两点不足,利用基于加权融合的BiFPN结构作为特征融合网络。针对传统CNN检测方法预设密集分布的锚框从而影响检测效果的问题,本文使用提取的特征来指导锚框的生成,减少了较多的负样本锚框,在提高效率的同时具有更低的虚警率。目前的训练与检测实验都是在SAR图像切片上完成,拥有较好的检测效果,而对于一景完整的SAR图像,往往需要先对图像进行裁剪,之后逐一检测再拼接,这样的方法容易将目标裁剪到不同的图像上引起检测困难。因此,在未来的工作中,在进一步优化网络结构的同时应考虑对于整幅SAR图像的检测方法,以满足SAR图像目标的实际需求。