随着全球贸易和海上活动的不断增长,船舶目标检测已成为一项至关重要的技术。在军用领域,船舶目标检测技术能提高海上侦察能力、监测潜在敌方船舶并为战术规划提供有力支持;在民用领域,船舶目标检测技术能为海洋监管、渔业管理、船舶导航以及海上搜救等方面提供高效解决方案。
近年来,深度学习技术的发展推动了目标检测领域的进步,卷积神经网络(CNN)相比传统的人工计算在图像特征提取上具有明显优势[1]。当前在船舶目标检测领域,主流算法为基于CNN的Faster R-CNN算法[2-3],在图像中只有一艘船的简单场景下已取得了很好的检测效果。Cascade R-CNN[4]在Faster R-CNN的基础上加入级联结构,进一步提高了以CNN为骨干网络的目标检测算法性能。然而,ResNet50[5]等CNN网络通过局部感知域来捕捉图像的空间结构,这既会限制模型在更大范围内捕捉上下文信息,也会使模型缺乏注意力机制[6],无法有效区分图像中的关键特征和干扰信息。在实际场景下,一张图像中含有多个船舶目标,由于船舶目标在尺寸、形状和方向上具有多样性,以及复杂的海洋背景和光照条件的干扰[7],导致原始Cascade R-CNN方法在船舶目标检测任务上仍存在不足。为了充分发挥Cascade R-CNN在船舶目标检测中的潜力,本文提出的Boat R-CNN方法在原始Cascade R-CNN算法的基础上,使用自带注意力机制的Swin Transformer[8]网络替换原CNN骨干网络使网络能自适应地关注船舶目标的关键特征;使用Soft-NMS替代NMS提升候选框过滤精度;使用Smooth_L1损失函数加速模型收敛并减少梯度爆炸情况;使用CIOU边界框回归损失提高候选框回归质量;基于船舶目标特殊的形状特征,针对性设置对应的锚框长宽比,提高锚框与船舶目标的契合程度。
1 Boat R-CNN模型结构本文提出的Boat R-CNN模型与带有FPN[9]结构的Cascade R-CNN模型结构相似,由主干网络(backbone)、颈部网络(neck)和检测头(head)等3个部分构成。其中,检测头(head)部分又可进一步划分为区域生成网络(RPN)、感兴趣区域池化(ROI-Pooling)、检测器(由Softmax分类器与边框回归器组成)等部分,整体结构如图1所示。
在进行目标检测时,首先输入一张图片,由主干网络提取图像特征,颈部网络对输出特征进行融合,融合后的特征交给检测头检测。检测头的RPN网络会生成大量锚框,通过Softmax分类器判断锚框内是否为正样本,并通过边框回归器进行修正,得到目标候选框;然后,在特征图上投影RPN生成的候选框得到对应的特征矩阵,通过ROI池化层统一为固定尺寸的特征图。最后,通过全连接层将特征图展平,并利用级联检测器识别目标类别,得到最终检测结果。级联检测器的IoU阈值分别为[0.5,0.6,0.7],每个检测器都对前一个检测器的输出进行进一步修正,在多次修正中可消除IoU阈值对检测精度的影响,逐步提高模型的检测性能。
2 Boat R-CNN改进点 2.1 骨干网络改进本文采用Swin-T(Swin-Transformer Tiny)网络替代原始ResNet50网络作为Boat R-CNN的骨干网络。Swin-T网络的参数量及浮点运算次数都与ResNet50网络十分接近,这使得Boat R-CNN可在参数量无明显增加的情况下,有效提高船舶目标检测的精度。
Swin-T是一种带有自注意力机制的网络,它可引导模型聚焦图像中的关键信息,并减少无关背景信息的干扰。自注意力机制通过查询单元Q(query)、键单元K(key)和值单元V(value)对输入信息内部各个特征的重要性进行分析,计算流程如图2所示。
1)对H×W×C的输入特征图x使用1×1卷积运算进行特征映射,得到查询单元Q、键单元K和值单元V。
2)用查询单元Q分别对每个键单元
3)使用softmax对相关性矩阵做归一化处理,由式(1)计算权重矩阵
4)将注意力权重矩阵A与值单元
${a}_{i}^{\left(t\right)}={f}_{att}({h}^{t-1},{v}_{i}) ,$ | (1) |
$A={\mathrm{softmax}}\left(x\right),$ | (2) |
$ Z=A\times V 。$ | (3) |
Swin-T的整体结构如图3所示。它结合了CNN的分层思路,通过Patch Partition层、Linear Embedding层和Patch Merging层对图像特征进行下采样,然后通过Swin-Transformer Block提取图像特征,最终生成4个不同尺度的特征图。这使得Swin-T网络兼具CNN的多尺度特性和ViT[10]的全局自注意力机制,特征提取能力相比原始ResNet50网络具有明显优势。
NMS(非极大值抑制)方法通常根据类别分数判断候选框的有效性,只保留得分最高的候选框。然而,在很多情况下,IoU与类别分数并无强相关性,且当多个船舶目标相互重叠时,检测算法会同时输出多个IoU值很高的候选框,但传统的NMS算法会将这些重叠度高的候选框视为同一个目标,导致算法只能检测出一个目标,造成漏检。
为了解决这些问题,Boat R-CNN使用了高斯形式的非极大值抑制方法Soft-NMS代替传统NMS算法。与NMS不同的是,对于和最高得分候选框的IoU大于阈值的框,Soft-NMS不会直接删除,而是通过降低置信度来抑制它,抑制的程度与得分最高框的IoU值成正比。高斯函数的Soft-NMS表达式如下:
$ {S}_{i}={S}_{i}{e}^{-\frac{IoU(M,{b}_{i})}{\sigma }}\text{,}\forall {b}_{i}\notin D。$ | (4) |
式中:M为最高得分框,
在原始Cascade RCNN的rpn_head中,bbox_loss一般使用L1或L2损失函数计算。
L1损失函数为真实值与预测值之间所有误差的绝对值之和,其表达式为:
$ {L}_{1}\left(x\right)=\sum _{i=1}^{n}{|Y}_{i}-f\left({x}_{i}\right)|。$ | (5) |
L2损失函数为真实值与预测值之间所有误差的平方和,其表达式为:
$ {L}_{2}\left(x\right)=\sum _{i=1}^{n}{{(Y}_{i}-f\left({x}_{i}\right))}^{2}。$ | (6) |
L1损失函数对损失值
Boat R-CNN算法对该部分损失函数进行改进,使用Smooth_L1损失函数替代原有损失函数,其公式为:
$ {Smooth\_L}_{1}\left(x\right)=\left\{\begin{aligned} & 0.5{x}^{2},\left|x\right| < 1,\\ & \left|x\right|-0.5,{\mathrm{others}} 。\end{aligned}\right. $ | (7) |
Smooth_L1采用了分段函数的形式,巧妙地结合了L1损失函数和L2损失函数的优点,同时解决了二者各自的不足,使网络既能在训练时快速收敛到最优值,又消除了梯度爆炸的影响。
2.4 边框回归损失函数改进在原始Cascade RCNN的roi_head中,bbox_loss采用GIoU损失函数计算:
$ GIoU=IoU-\frac{C-(A\cup B)}{C},$ | (8) |
$ GIoULoss=1-GIoU。$ | (9) |
式中:A为预测框,B为真实框,C为能同时包含A、B两框的最小框。IoU为A、B两框的交并比,即:
$ IoU=\frac{A\cap B}{A\cup B} 。$ | (10) |
GIoU很好解决了IoU函数对A、B两框的距离不敏感、IoU值为0时没有梯度回传,无法训练的问题;但在实际场景的船舶目标检测中,会出现A、B两框其中一个框包含另一个框的情况,如图4所示。此时,GIoU会退化成IoU,图中2种情形下的GIoU值完全相等,无法分辨其优劣。
Boat R-CNN算法中将GIoU损失函数改进为CIoU损失函数:
$ CIoU=\frac{{\rho }^{2}(A,B)}{{c}^{2}}+\alpha v,$ | (11) |
$ CIoULoss=1-CIoU。$ | (12) |
式中:
$ \alpha =\frac{v}{\left(1-IoU\right)+v},$ | (13) |
$ v=\frac{4}{{{\text{π}} }^{2}}{({\mathrm{arctan}}\frac{{w}^{gt}}{{h}^{gt}}-{\mathrm{arctan}}\frac{w}{h})}^{2}。$ | (14) |
CIoU使用中心点距离和对角线长度的比值作为惩罚项,在A、B两框距离较远时优势尤为明显。此时C框很大,而GIoU Loss的值与C框边长的平方成正比,会导致GIoU的Loss值也很大,难以进行优化;而此时CIoU Loss的值与C框边长成正比,相比GIoU Loss会有更高的效率,收敛速度更快。
在A、B两框中一个框包含另一个框时,CIoU损失函数中的
原始的Cascade RCNN是一种面向所有类别的通用目标检测器,为了尽可能兼容所有类别的目标,原始算法的锚框生成器统一使用[0.5,1.0,2.0]的高宽比生成锚框。然而,这种方法生成的锚框并没充分考虑船舶目标本身的尺寸特征,存在大量低质量锚框,在船舶目标检测中很容易导致锚框无法框住完整船舶目标,影响检测精度;且锚框中包含大量无效区域,会增大回归任务的负荷,影响检测速度。
为了探究船舶目标的形状特征,本文统计了PASCAL VOC 2012和MS COCO 2017数据集中全部12247个类别为“船”的目标信息,并统计了它们的高宽比,如图5所示。
可知,在PASCAL VOC 2012和MS COCO 2017数据集中,绝大部分船舶图像的形状为“宽>高”,即“高宽比<1”;而通用目标检测器2/3的锚框关注点都在“高宽比≥1”的目标上,在船舶目标检测中锚框利用率很低。且存在大量高宽比<0.5的船舶目标,这部分目标很难被通用目标检测器高宽比[0.5,1.0,2.0]的锚框精准框住,尤其对“高宽比<0.3”的长型船舶目标检测效率更低。
基于上述统计数据,Boat R-CNN改进了锚框生成器,将生成锚框的高宽比调整为[0.25,0.5,1.5],修改前后的锚框形状如图6所示。调整后,高宽比0.25和0.5的锚框可很好地覆盖绝大部分船舶目标,同时使用高宽比1.5的锚框来保证少部分“高宽比>1”的帆船目标和船舶正面视角的检测能力。
本文实验的硬件与软件环境如表1所示。
模型训练使用迁移学习策略,从mmdetection提供的预训练权重中加载可用权重,采用SGD(随机梯度下降)优化器训练。设置批数据大小batch_size=2,初始学习率lr=0.01,动量值momentum=0.9,权重衰减参数weight_decay=0.0001,使用GPU单卡进行训练。
3.2 实验数据集目前在船舶目标检测领域,尚无已成为国际标准的公开数据集。为保证数据集的质量和实验数据的可靠性,本文从通用目标检测领域的权威数据集PASCAL VOC 2012和MS COCO 2017中提取了全部3695张包含类别为“船”的目标图像,提取后的数据集命名为COCO_VOC_Boat数据集。COCO_VOC_Boat按7∶3比例划分训练集和验证集,得到包含2587张图像的训练集和包含1108张图像的验证集,所有船舶目标的标注信息均来源于国际标准数据集的官方标注。COCO_VOC_Boat数据集的部分图像,如图7所示。数据集中包括了实际场景中光照变化、遮挡及小目标等各种复杂情景,可有效评估船舶目标检测模型的性能。
图8展示了改进后的Boat R-CNN模型的部分检测结果。实验结果表明,Boat R-CNN模型可准确检测出实际场景下的绝大多数船舶目标,在光照条件变化、烟雾笼罩、照片模糊的情况下也能较为准确地分辨出船舶目标,这很大程度上归功于Swin-T骨干网络的自注意力机制和强大的特征提取能力;在船舶目标距离存在重叠时,改进的GIoU损失函数也能更准确地区分不同目标。
为了进一步评估Boat R-CNN算法,验证上述改进方法的有效性,本文分别使用带有FPN结构的主流Faster R-CNN算法、原始Cascade R-CNN算法和改进后的Boat R-CNN算法在COCO_VOC_Boat数据集上进行检测,采用MS COCO的国际规范指标进行性能评估,得到的结果如表2所示。
由表可知,无论是原始Cascade R-CNN算法,还是改进的Boat R-CNN算法,其精度都优于当前主流的Faster R-CNN算法。这是由于他们都采用了级联检测器结构,每一级检测器会修正其前一级检测器的输出,在多次修正中消除了IoU阈值的影响,提高了模型的检测性能。而改进后的Boat R-CNN算法应用自注意力机制减少了背景和环境噪声的干扰,发挥了Swin-T网络在特征提取能力上的优势,使用Soft-NMS、Smooth_L1和CIOU等多种策略提高了候选框质量,并在锚框的形状上更好地适应了船舶目标。其在COCO_VOC_Boat数据集上的精度提升幅度更加明显,相比原始Cascade R-CNN算法提高了21.8%的精度,相比主流Faster R-CNN算法提高了30.3%的精度,有效解决了实际场景下船舶目标检测精度低的问题。
4 结 语本文提出一种基于改进Cascade R-CNN算法的船舶目标检测方法,使用带自注意力机制的Swin-T网络作为骨干网络,在模型参数量无显著增加的情况下提高了模型的特征提取能力和实际场景下抗噪声干扰能力;使用Soft-NMS非极大值抑制方法和CIOU边界框回归损失函数增强了模型在船舶目标重合度较高时的检测精度,使用Smooth_L1损失函数加速模型收敛并减少梯度爆炸情况,并根据船舶目标的形状特征设置了更高质量的锚框。实验结果表明,本文的改进方法Boat R-CNN相比原始Cascade R-CNN算法提高了21.8%的精度,相比主流Faster R-CNN算法提高了30.3%的精度,有效提高了模型的船舶目标检测精度。
[1] |
陈科圻, 朱志亮, 邓小明, 等. 多尺度目标检测的深度学习研究综述[J]. 软件学报, 2021, 32(4): 1201. |
[2] |
王瑶, 胥辉旗, 姜义, 等. 基于深度学习的舰船目标检测技术发展综述[J]. 飞航导弹, 2021, 6(2): 76−81.
|
[3] |
REN S, HE K, GIRSHICK R, et al. Faster r-cnn: Towards real-time object detection with region proposal networks[C]// In: Proceeding of the Neural Information Processing Systems, 2015: 91−99.
|
[4] |
CAI Z, VASCONCELOs N. Cascade R-CNN: delving into high quality object detection[C]// IEEE/CVE Comference on Computer Vision and Pattern Recognition, 2018.
|
[5] |
HE K, ZHANG X, REN S, et al. Deep residual learning for image recognition[C]// IEEE Conference on Computer Vision and Pattern Recognition, IEEE, 2016.
|
[6] |
VASWANI A, SHAZEER N, PARMAR N, et al. Attention is all you need[J]. Comell Uiversity Library’s arXiv.org, 2017.
|
[7] |
袁明新, 张丽民, 朱友帅, 等. 基于深度学习方法的海上舰船目标检测[J]. 舰船科学技术, 2019, 41(1): 111. |
[8] |
LIU Z, LIN Y, CAO Y, et al. Swin transformer: hierarchical vision transformer using shifted windows[OL]. Chinese Software Developer Network, 2021: 2103.14030.
|
[9] |
LIN TY, DOLLÁR P, GIRSHICK R, et al. Feature pyramid networks for object detection[C]// Proceeding. of the Computer Vision and Pattern Recognition. 2017: 2117−2125.
|
[10] |
DOSOVITSKIY A, BEYER L, KOLESNIKOV A, et al. An image is worth 16×16 words: transformers for image recognition at scale[C]// International Conference on Learning Representations, 2021.
|