时间:2024-05-04
秦溧矫
(西南交通大学计算机与人工智能学院,成都 611756)
我国内河航运体系发达,是全国经济社会发展的重要支撑。水上交通参与者数量大,但参与者安全意识不足,超载、超速,大船、小船量级差别大,发生事故可能造成严重后果,因而需要提前对船只进行判断、监测以便进行决策和指挥,及早预防事故发生[1]。现有的系统建设成本高、监控范围有限、有效信息提取困难,不能满足行业需求。
船舶检测是一种目标检测任务,目前基于深度学习的目标检测算法主要分为两大类,一是基于候选区域的两阶段目标检测器,优势在于识别与定位准确性高,其中主流的如Faster R-CNN[2];二是单阶段的目标检测器,优势在于识别推理速度快,其中主流的如YOLO[3]系列、SSD[4]。
相比于普遍的目标检测,船舶检测具有尺度更大的难点。尺度问题可以从两方面进行分析,一是物理层面,相比于交通场景下的小轿车与大货车、车与人的尺度大小差异,航道场景下的大货船与小渔船在尺度跨度上大得多,模型检测更困难;二是视角层面,内河航道错综复杂,监控视角多变,即使同类型船舶的尺度变化也极大。一般的目标检测算法、小目标检测算法都只针对普通大小物体以及均为小目标的场景,目前检测算法没有针对如内河航道场景跨尺度极大的问题提出解决方案。因此在船舶检测中需要额外关注超大目标、超小目标,模型应具备跨尺度检测的能力。
针对上述问题,基于YOLOv5s 模型提出了一种改进的YOLO-CsShip(YOLO Cross-scale Ship)船舶检测算法。针对超小目标,通过在骨干网络低层引入自适应空间并行卷积模块[5],多尺度感受野自适应地提取特征,捕获多尺度局部上下文信息。针对超大目标,在骨干网络高层引入卷积自注意力混合模块[6],卷积与自注意力通过共享相同的操作方式形成混合模块,有效提取图像中大目标特征。目前公开的数据集场景单一、尺度变化不大,因此本文自制了内河航道船舶数据集InlandShips。和YOLOv5s相比,改进的YOLO-CsShip 船舶检测算法在满足检测速度的要求下,在公开的两个数据集SeaShips[7]、McShips[8]及本文提出的InlandShips上明显提升船舶检测的平均精度,有效检测出超小、超大的目标,具备良好的跨尺度检测能力。
目前,两阶段、单阶段目标检测器均应用在船舶检测的研究中。Wang 等[9]在Faster R-CNN上,通过增加一个侧路径融合网络融合高层与低层特征加强特征提取能力。Gao等[10]将YOLOv4作为基本框架,引入阈值注意力模块抑制复杂背景与噪声的不利影响,嵌入通道注意力模块到改进的BiFPN中作为特征金字塔网络融合特征。
目前的船舶检测方法将通用目标检测任务进行改进,针对船舶自身特点做了一定优化,但是检测能力仍有不足。对于场景复杂,尺度变化大的内河航道场景数据,特别是针对近河道的超大型船舶,并未提出针对性解决方案。
小目标检测是目标检测的一个研究方向,目前有许多专门针对小目标检测的方法。Li等[11]在SSD 的基础上,提出轻量级的特征融合模块,提高了SSD 的小物体检测性能。Benjumea 等[12]提出YOLO-Z 专用于小目标检测,该方法在YOLOv5的基础上引入ResNet50替换骨干网络,将颈部替换为FPN并使用更高分辨率的特征图进行特征融合输出,以特定检测小目标。
小目标检测方法多样,在特定的小目标数据集上取得优异的检测效果,然而此类方法目的都只在于提升小目标的检测能力。对于内河航道船舶检测中常规尺度、超大尺度的目标,应该保留更大的感受野,便于定位大目标。
因此本文兼顾超小目标与超大目标,形成了一个跨尺度检测性能表现优异,在模型参数、计算速度上也应满足实际场景部署的检测模型YOLO-CsShip。该方法通过自适应空间并行卷积模块增强浅层特征提取能力,丰富空间信息,提高小目标检测精度,通过卷积自注意力混合模块扩大感受范围,提升超大目标检测能力,具备跨尺度船舶检测能力。
YOLOv5s 由Backbone、Neck、Head 三部分组成。基于YOLOv5s 改进的YOLO-CsShip 模型结构如图1 所示。在Backbone 中,首先低层由自适应空间并行卷积模块(ASPConv)[5]提取小目标的细节空间特征信息,接着使用三组Conv 结合C3 结构提取一般目标的特征信息,最后在骨干网络高层,使用卷积自注意力混合模块(ACmix)[6]进一步提取超大目标的特征信息。通过骨干网络提取的信息来自不同网络级别,并且同时具备超小目标和超大目标的丰富空间特征信息。最后通过Neck融合各层特征,Head输出结果。
图1 YOLO-CsShip架构
内河航道场景下存在全局视角摄像头,远岸处船舶像素占比小,因此需要额外关注小目标船舶检测。此前的专注于小目标检测方式通常都会以更长的推断时间、可能检测到的大目标对象为代价[12],并不适用于内河航道场景下的船舶检测。
神经网络浅层具有丰富的空间信息,因此在Backbone低层使用自适应空间并行卷积模块,使模型自适应学习原始图像中目标的空间信息,有效提高网络捕获小目标的建模能力。该模块的并行卷积运算可以捕获多尺度局部上下文信息,在不影响大目标的特征提取的同时提升小目标特征提取能力。
如图2 所示,在自适应空间并行卷积模块中,首先将输入的特征图X0进行一次Conv 操作,Conv 模块由Conv2d、BatchNorm2d、SiLu 组成,然后将特征图X分割为两个部分X1和X2,其计算如公式(1)。对X1进行Conv 操作及Conv2d 操作;对X2进行Conv2d 操作,对变换后的X1与X2进行合并,再与X相加得到X3,计算如公式(2),目标的多尺度局部上下文信息被自适应融合在不同大小的感受野中,有效构建目标对象与环境的空间信息,获得有利于小目标检测的空间信息,最后将得到的X3进行下采样得到指定分辨率的特征图,并执行进一步特征提取得到输出X4,计算如公式(3)。
其中:chunk 表示分割操作,⊕表示Concat 操作,d表示下采样。
图2 自适应空间并行卷积示意图
船舶目标中存在着大量的超大目标,从类型上看,存在货船等大型船舶,从视角上看,存在距离摄像头极近的超大船舶。上述情况的船舶目标在图片中像素占比极大,模型无法有效获取完整的有效特征信息,导致漏检或错检为其它类别,因此增强大目标的特征提取十分有必要。
YOLOv5s 网络高层用于提取大目标特征的模块使用传统卷积操作,而传统卷积操作提取特征存在一定的局限,卷积滤波器权重聚合的局部感受野形成的内在特征增加了归纳偏置。相比于卷积,自注意力模块对相关像素对之间的相似度函数动态计算权重,该方式能使注意力模块自适应地聚焦于不同区域并捕获更多的信息特征。因此本文在Backbone 网络高层使用卷积自注意力混合模块以加强大目标特征提取能力。
如图3 所示,该模块首先使用一个特征学习模块,执行1*1的卷积投影输入特征映射,得到一个丰富的特征集,接着按照自注意力和卷积两种不同模式对中间特征进行重用与聚合,通过此方式使得网络高层提取大目标特征时具备卷积和自注意力两个模块的优点,并且有效避免了两次执行高复杂度的投影操作。
图3 卷积自注意力混合模块示意图
目前公开的内河船舶数据集较少,本文实验的数据集包含两个开源数据集、一个自制数据集。
其中Shao 等[7]提出的SeaShips 数据集包含31455 张图片,公开7000 张图片(SeaShips7000)用于本文实验,共6个类别,分别为矿砂船、散货船、普通货船、集装箱船、渔船、客船。Zheng等[8]提出的McShips数据集包含14709张图片,其中公开McShips-lite 含7996 张图片用于本文实验,分为2个类别,军用船与民用船。
分析上述两个船舶数据集,数据简单且具有以下特征:背景简单,船舶角度、尺度变化均不大。由于训练的模型检测能力有限,并不符合实际场景下变化多样的情况。本文自制了一个内河船舶数据集,数据来源于10 个摄像头下不同角度尺度的监控视频,数据集命名为InlandShips,数据实例如图4 所示。该数据集共包含5238 张图片,以8∶1∶1 划分为训练集、验证集、测试集。
本文以在目标检测中常用的精度P(precision)、召回率R(recall)、mAP@0.5 和mAP@0.5:0.95 作为指标,对模型性能进行评估。各指标计算过程见公式(4)~公式(6):
其中:TP表示真实框被预测出的检测框数量;FP表示预测框与真实框不匹配的框;FN表示没有检测出来的真实框;N代表类别,AP表示P以R为权重的加权平均,mAP中的“m”表示对所有类别对应的AP求均值。mAP@0.5 是IoU阈值为0.5 情况下的均值平均精度,mAP@0.5:0.95为IoU为0.5~0.95 下每隔0.05 计算的均值平均精度的平均值。
图4 InlandShips数据示例
本文在Ubuntu18.04 操作系统、PyTorch 框架下训练所有模型。采用两个NVIDIA GeForce 2080 RTX TI 的GPU,运行环境为CUDA 11.4,Python3.7。
以YOLOv5s 模型为基准模型,对上述改进方法进行对比实验、分析。以3.1 小节所述评价指标分别评估了SeaShips7000,McShips-lite,InlandShips 数据集上YOLOv5s 及YOLO-CsShip模型的性能。训练阶段,输入网络的大小为640 × 640,批量大小为8。采用SGD 优化器,初始学习率为0.01,学习率衰减系数为0.1,动量为0.937。考虑到InlandShips 数据集图片数量有限,使用随机水平翻转、缩放、雾化,添加高斯噪声,更改明亮度等数据增强方式。结果如表1所示。
实验数据表明,与YOLOv5s 模型相比,YOLO-CsShip在参数量、模型大小上有所增大,但在精度、召回率、mAP上都有所提升,mAP@0.5在公开数据集SeaShips7000、McShips-lite 上分别提升了2.4、2.6个百分点。在本文提出的数据集InlandShips 上,提升了4.6 个百分点,最终达到86.9%检测准确率。
SeaShips7000中相邻编号的图片存在大量的类似场景,视角单一,船舶尺度变化小,使用YOLO-CsShip算法能针对渔船、远距离小目标提升检测性能。McShips-lite数据集中军用船、民用船尺度差别大,但拍摄视角单一,YOLO-CsShip算法跨尺度检测能力强,能有效提升检测精度。本文提出的InlandShips视角多样,船舶尺度跨度大,YOLO-CsShip算法针对其中存在的超大目标以及部分小目标都有很好的检测能力。
图5~图7 是YOLOv5s 和YOLO-CsShip 算法在InlandShips 数据集上检测结果对比。对于每一组图片,左侧为YOLOv5s 模型检测的结果,右侧为YOLO-CsShip 模型检测的结果。如图5所示,在全局视角下,YOLO-CsShip 在检测小目标能力上有所提升,改善了小目标漏检的问题。如图6 所示,在局部视角下,YOLO-CsShip 有效检测出超大目标船舶,对于漏检及遮挡目标检测亦有所改善,如图7所示。
表1 不同数据集在基准模型、改进模型上的对比
图5 小目标船舶漏检改进对比图
图6 大目标船舶漏检改进对比图
图7 大目标船舶遮挡漏检改进对比图
为验证本文改进算法的有效性,本节在InlandShips 数据集上进行自适应空间并行卷积模块、卷积自注意力混合模块的消融实验。结果如表2所示,自适应空间并行卷积模块在YOLOv5s模型的基础上mAP@0.5提升了2.3个百分点,精度提升5个百分点。这证明了自适应空间并行卷积模块在一定程度上可以提升目标,特别是小目标特征的空间表达能力,缓解特征在往网络深层时的信息衰减与丢失,从而提高小目标的检测能力。添加卷积自注意力混合模块后,mAP@0.5 提升了2.9 个百分点,精度提升4.1 个百分点,召回率提升0.9 个百分点。卷积自注意力混合模块通过卷积与自注意力结合,在特征提取网络高层有效提取大目标全局特征,InlandShips 数据集中大目标占比大,因此该模块能有效提升检测精度。结合两种改进以及数据增强等方式,YOLO-CsShip 模型的精度提升4.6个百分点,召回率提升1.9个百分点,mAP@0.5提升4.6 个百分点,mAP@0.5:0.95 提升4.5 个百分点。充分说明YOLO-CsShip 模型多种改进模块及数据增强等是有效的改进方式。
表2 各模块在InlandShips数据集上的消融实验结果
针对内河航道场景下船舶检测的跨尺度检测难点,自制场景丰富的InlandShips 数据集,提出基于YOLOv5s 的YOLO-CsShip 检测算法,该算法具备跨尺度的检测能力,能有效检测出内河航道场景下各船舶目标。YOLO-CsShip 算法通过改进网络浅层,引入自适应空间并行卷积模块捕获多尺度局部上下文信息,提升小目标检测能力。通过在网络深层引入卷积自注意力混合模块加强大目标特征提取能力。在公开的SeaShips7000、McShips-lite 数据集及本文自制的InlandShips 数据集上实验证实,提出的YOLO-CsShip 算法具备良好的跨尺度检测能力,有效改善全局场景下小目标,超大船舶目标检测漏检、错检问题。在InlandShips 数据集上mAP@0.5 提升4.6%。该研究可用于内河航道场景下的监测系统中,实时监控船舶运行情况,及时反映航行中存在的安全隐患,对实现航道船舶安全运行的智能化监测发挥重要作用。
我们致力于保护作者版权,注重分享,被刊用文章因无法核实真实出处,未能及时与作者取得联系,或有版权异议的,请联系管理员,我们会立即处理! 部分文章是来自各大过期杂志,内容仅供学习参考,不准确地方联系删除处理!