舰船科学技术  2024, Vol. 46 Issue (6): 144-149    DOI: 10.3404/j.issn.1672-7649.2024.06.025   PDF    
基于改进Cascade R-CNN算法的船舶目标检测方法
杨镇宇, 石刘     
中国舰船研究院,北京 100192
摘要: 为了解决实际场景下船舶目标检测精度低的问题,本文在Cascade R-CNN算法的基础上,提出一种船舶目标检测方法Boat R-CNN。Boat R-CNN使用带自注意力机制的Swin-Transformer Tiny网络提取图像特征,使用Soft-NMS非极大值抑制方法提升候选框过滤精度,使用Smooth_L1损失函数加速模型收敛并减少梯度爆炸情况,使用CIOU边界框回归损失提高候选框回归质量,并针对船舶目标的形状特征优化锚框的长宽比,提高锚框的生成质量。实验结果表明,Boat R-CNN算法的精度相比原版Cascade R-CNN算法提高了21.8%,相比主流Faster R-CNN算法提高了30.3%,有效提升了实际场景下的船舶目标检测精度。
关键词: 船舶     目标检测     深度学习     Cascade R-CNN     Swin Transformer    
Boat object detection method based on improved Cascade R-CNN algorithm
YANG Zhen-yu, SHI Liu     
China Ship Research and Development Academy, Beijing 100192, China
Abstract: To address the issue of low accuracy in boat object detection in real-world scenarios, this paper improves upon the Cascade R-CNN algorithm and proposes a boat object detection method called Boat R-CNN. Boat R-CNN utilizes the Swin-Transformer Tiny network with a self-attention mechanism to extract image features, employs Soft-NMS for non-maximum suppression to enhance the filtering precision of candidate bounding boxes, uses the Smooth_L1 loss function to accelerate model convergence and reduce gradient explosion, and utilizes CIOU bounding box regression loss to improve the quality of candidate box regression. Furthermore, the aspect ratio of anchor boxes is optimized for the shape characteristics of boat objects, improving the quality of anchor box generation. Experimental results have shown that the Boat R-CNN algorithm has increased accuracy by 21.8% compared to the original Cascade R-CNN algorithm and 30.3% compared to the mainstream Faster R-CNN algorithm. Boat R-CNN effectively improves the accuracy of boat object detection in real-world scenarios.
Key words: boat     object detection     deep learning     Cascade R-CNN     Swin Transformer    
0 引 言

随着全球贸易和海上活动的不断增长,船舶目标检测已成为一项至关重要的技术。在军用领域,船舶目标检测技术能提高海上侦察能力、监测潜在敌方船舶并为战术规划提供有力支持;在民用领域,船舶目标检测技术能为海洋监管、渔业管理、船舶导航以及海上搜救等方面提供高效解决方案。

近年来,深度学习技术的发展推动了目标检测领域的进步,卷积神经网络(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所示。

图 1 Boat R-CNN整体结构图 Fig. 1 The overall structure of boat R-CNN

在进行目标检测时,首先输入一张图片,由主干网络提取图像特征,颈部网络对输出特征进行融合,融合后的特征交给检测头检测。检测头的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所示。

图 2 自注意力机制计算流程 Fig. 2 The computing process of self-attention

1)对H×W×C的输入特征图x使用1×1卷积运算进行特征映射,得到查询单元Q、键单元K和值单元V

2)用查询单元Q分别对每个键单元$ {K}_{i} $做点积运算,得到相关性$ {S}_{i} $,拼接得到相关性矩阵。

3)使用softmax对相关性矩阵做归一化处理,由式(1)计算权重矩阵$ {a}_{i} $

4)将注意力权重矩阵A与值单元$ {V}_{i} $拼成的矩阵V相乘,得到自注意力矩阵Z

${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网络具有明显优势。

图 3 Swin-Transformer Tiny骨干网络结构图 Fig. 3 The structure of Swin-Transformer Tiny backbone
2.2 非极大值抑制方法改进

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为最高得分框,$ {b}_{i} $为待检测框,$ \sigma $为常数(取0.5);$ {S}_{i} $$ {b}_{i} $的置信度,D为存放最终候选框的集合。显然,当交并比IoU越大时,惩罚力度越大,置信度$ {S}_{i} $的值越小;当交并比IoU大小为0时,不予惩罚。使用高斯形式的Soft-NMS替代NMS,可使最终得到的候选框更加精准,进而提高复杂场景下的船舶目标检测性能。

2.3 RPN网络损失函数改进

在原始Cascade RCNN的rpn_head中,bbox_loss一般使用L1L2损失函数计算。

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损失函数对损失值$ {x}_{i} $的导数为常数,若使用L1函数训练,在训练后期,当$ {x}_{i} $值很小且学习率不变时,会导致网络在最优值附近震荡,无法收敛到最佳效果;若使用L2函数训练,但其梯度会随当前点与最优值之间距离的增大而增大,若当前值距离最优值较远,训练时容易出现梯度爆炸的问题。

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为能同时包含AB两框的最小框。IoUAB两框的交并比,即:

$ IoU=\frac{A\cap B}{A\cup B} 。$ (10)

GIoU很好解决了IoU函数对AB两框的距离不敏感、IoU值为0时没有梯度回传,无法训练的问题;但在实际场景的船舶目标检测中,会出现AB两框其中一个框包含另一个框的情况,如图4所示。此时,GIoU会退化成IoU,图中2种情形下的GIoU值完全相等,无法分辨其优劣。

图 4 GIoU损失函数失效的一种场景 Fig. 4 A condition where the GIoU loss fails to work

Boat R-CNN算法中将GIoU损失函数改进为CIoU损失函数:

$ CIoU=\frac{{\rho }^{2}(A,B)}{{c}^{2}}+\alpha v,$ (11)
$ CIoULoss=1-CIoU。$ (12)

式中:$ \rho (A,B) $A框与B框中心点坐标之间的欧几里得距离,c为同时包含AB两框的最小框C的对角线长度,$ \alpha $为权重函数,$ v $用来度量宽高比的一致性:

$ \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使用中心点距离和对角线长度的比值作为惩罚项,在AB两框距离较远时优势尤为明显。此时C框很大,而GIoU Loss的值与C框边长的平方成正比,会导致GIoULoss值也很大,难以进行优化;而此时CIoU Loss的值与C框边长成正比,相比GIoU Loss会有更高的效率,收敛速度更快。

AB两框中一个框包含另一个框时,CIoU损失函数中的$ \rho (A,B) $项可对两框相对位置做出很好的度量,使得Loss值可进一步优化;即使AB两框中心点重合,与宽高比有关的$ \alpha v $项也能继续对预测框进行调优,解决了GIoU Loss在上述2种情况下无法继续训练优化的问题。

2.5 锚框形状改进

原始的Cascade RCNN是一种面向所有类别的通用目标检测器,为了尽可能兼容所有类别的目标,原始算法的锚框生成器统一使用[0.5,1.0,2.0]的高宽比生成锚框。然而,这种方法生成的锚框并没充分考虑船舶目标本身的尺寸特征,存在大量低质量锚框,在船舶目标检测中很容易导致锚框无法框住完整船舶目标,影响检测精度;且锚框中包含大量无效区域,会增大回归任务的负荷,影响检测速度。

为了探究船舶目标的形状特征,本文统计了PASCAL VOC 2012和MS COCO 2017数据集中全部12247个类别为“船”的目标信息,并统计了它们的高宽比,如图5所示。

图 5 VOC 2012和COCO 2017数据集中全部12247个船舶目标的高宽比统计 Fig. 5 The aspect ratio statistics for all 12247 boat targets in VOC 2012 and COCO 2017 datasets

可知,在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”的帆船目标和船舶正面视角的检测能力。

图 6 改进前后的锚框形状对比 Fig. 6 The comparison of anchor shapes before and after adjustment
3 实验与结果分析 3.1 实验环境与参数设置

本文实验的硬件与软件环境如表1所示。

表 1 船舶目标检测实验环境 Tab.1 The experimental environment of boat object detection

模型训练使用迁移学习策略,从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所示。数据集中包括了实际场景中光照变化、遮挡及小目标等各种复杂情景,可有效评估船舶目标检测模型的性能。

图 7 COCO_VOC_Boat数据集的部分图像展示 Fig. 7 Partial image of COCO_VOC_boat dataset
3.3 实验结果展示

图8展示了改进后的Boat R-CNN模型的部分检测结果。实验结果表明,Boat R-CNN模型可准确检测出实际场景下的绝大多数船舶目标,在光照条件变化、烟雾笼罩、照片模糊的情况下也能较为准确地分辨出船舶目标,这很大程度上归功于Swin-T骨干网络的自注意力机制和强大的特征提取能力;在船舶目标距离存在重叠时,改进的GIoU损失函数也能更准确地区分不同目标。

图 8 Boat R-CNN船舶目标检测效果 Fig. 8 The performance of boat R-CNN ship object detection

为了进一步评估Boat R-CNN算法,验证上述改进方法的有效性,本文分别使用带有FPN结构的主流Faster R-CNN算法、原始Cascade R-CNN算法和改进后的Boat R-CNN算法在COCO_VOC_Boat数据集上进行检测,采用MS COCO的国际规范指标进行性能评估,得到的结果如表2所示。

表 2 算法在COCO_VOC_Boat数据集上的检测精度对比 Tab.2 The comparison of detection accuracy of algorithms on COCO_VOC_Boat dataset

由表可知,无论是原始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.