近年来,无论在民用领域还是在军用领域,无人船的战略地位都十分重要[1].无人船是自主性非常高的设备,自主航行能力是无人船的核心能力之一.无人船要想实现自主航行首先要能够感知周围的环境[2],这就要求能够识别船舶.应用于内河无人船电子瞭望系统中的目标检测模型也应该有侧重地提升性能,检测模型辅助无人船最大限度地规避风险.当无人船检测船舶时,漏检直接影响其后续的避障决策和航行规划等任务,所以目标检测模型要先降低漏检率,提升整体检测性能.目前对于船舶的检测主要有传统的检测方法和基于深度学习的检测方法.传统方法主要包括区域选择、特征提取和分类这三个步骤.使用人工设计的特征(如边缘、纹理和颜色等)都是浅层特征,对船舶的表征能力不强.现有的基于方向梯度直方图进行目标检测[3]及利用不变尺度特征变换来完成船舶检测[4]的算法,对于复杂环境没有很好的效果,且实时性低.基于深度学习的方法在目标检测领域的通用数据集上取得了最好的效果.这类算法主要分为两类[5]:一类是两阶段目标检测算法;另一类是单阶段目标检测算法.两阶段目标检测算法主要有R-CNN[6],Fast R-CNN[7]和Faster R-CNN[8],单阶段目标检测算法主要有SSD[9]和YOLO系列[10-13].两阶段检测算法由于要先生成候选区域,因此推理时间长,实时性差,基于回归的YOLO系列准确性好、实时性高.文献[14]通过改进YOLOv3算法实现了无人机的识别,文献[15]设计了双向特征融合结构提高小目标检测精度,文献[16]提出多尺度目标检测算法.本研究在YOLOv5算法的基础上,针对内河航道船舶的尺度特点,优化了锚框参数;为解决内河无人船目标识别的漏检问题,提出一种多尺度注意力模块——MSAM,将其取代原始算法通道维度直接拼接的操作,实现多层多尺度特征的融合;为进一步提高网络的特征融合能力,提出了注意力模块在三种不同位置的网络结构,对比分析了位置对模型检测性能的影响.1 YOLOv5算法YOLOv5模型参数少、占用内存空间小,更加适合在船舶设备上部署,其检测精度高、速度快的特点也适合内河航道无人船船舶识别的要求,本研究以YOLOv5s模型为基础进行改进.YOLOv5的结构按功能可分为Backbone(骨干网络)、Neck(特征融合网络)和Head(检测头).Backbone网络用来提取各尺度的特征,Neck部分进行融合,Head部分进行预测输出.YOLOv5基于锚框原理来检测目标.本研究共生成9个锚框,分为三组,三组锚框分配给Head的三个检测层,用来回归不同尺度船舶.图片输入经Backbone和Neck部分,在Head的三个不同尺度的检测层上输出目标的位置信息和类别信息.每一个检测层输出形状为(na,fw,fh,(nc+5))的张量,其中:na为该层用于回归的锚框数量;fw和fh分别为输出特征图的宽和高;nc+5为类别和位置信息,nc为类别数量,5为预测框的中心点坐标、宽高尺寸和置信度.特征图的每一个位置都有na个锚框来回归目标.网络输出的位置信息是相对于预先设定的锚框的偏移量,须要通过锚框将预测输出解码成预测框.2 算法改进2.1 锚框参数优化锚框参数不合理会导致训练时收敛慢,模型学习不到良好的参数,进而导致模型的推理精度和速度下降.原始锚框参数是利用COCO[17]数据集生成的,该数据集目标种类繁多,目标尺寸和宽高比变化范围大,船舶仅属于其中一类,这必然导致原始锚框不适用于内河航道船舶.内河船舶有较大的宽高比,应该使用宽高比较大的锚框来完成识别任务.本研究重新设定锚框参数,锚框的数量为9,分为三组.使用k-means算法对数据集的真实框聚类,找出最能反映数据集尺度的一组锚框.聚类出9个不同尺度的锚框:[49,13],[99,23],[178,26],[146,46],[253,43],[299,65],[469,49],[277,91],[502,86].前三个锚框分给小尺度特征图,中间三个锚框分给中尺度特征图,最后三个锚框分给大尺度特征图.YOLOv5对锚框的评价指标有三个,即BPR(最佳召回率)、AAT(最优锚框率)和IOU(交并比),BPR和AAT描述的是真实框的宽高与锚框宽高的符合程度,IOU描述锚框与真实框大小的符合程度.三个评价指标如表1所示,其中BPR提高了1.14%,AAT提高了48.88%,IOU提高了38.18%.由此可见:优化后锚框的宽高比更符合船舶数据集的形状,锚框与真实框的交并比也更高.对于本研究使用的船舶数据集,对目标的宽高分布进行分析,如图1所示,可以看到:优化的锚框宽高值更多分布在数据集的宽高值中,而原始的锚框宽高与数据集的宽高差距较大,宽高及比值偏离了真实框宽高的分布.10.13245/j.hust.230511.T001表1锚框参数优化前后指标对比BPRAATIOU优化前98.7829.4235.53优化后99.9278.3073.71%10.13245/j.hust.230511.F001图1数据集真实框和优化前后锚框宽高图2.2 MSAM模块原始的YOLOv5网络对于两个网络层的融合是采用简单的通道维度的拼接操作,直接对来自不同层次的特征图拼接会产生冗余特征,这些冗余特征对于目标检测是不利的.船舶的颜色、边缘和其他纹理特征会跟近岸建筑物有相似之处,增加了检测难度,这要求模型具有较高的特征提取能力,而仅仅提取浅层特征不足以检测船舶目标.简单地对不同特征图通道维度拼接得到的模型仍有提高的空间,故本研究引入注意力机制,让模型更加关注感兴趣的区域,从而提高模型的检测能力,减小漏检率.注意力机制能够指导神经网络更加专注于有目标的区域,提取更加具有代表性的特征.具有重大意义的注意力模块有SENet[18],BAM[19]和CBAM[20],这些模块都不同程度提高了模型性能.文献[21]可以融合两个尺度的特征,但没有注意力融合空间维度的特征.浅层网络具有丰富的细粒度信息,但缺少图像的全局特征;深层网络具有丰富的语义信息,但缺少表示目标位置的信息和细节信息.融合浅层的细粒度信息和深层的丰富语义信息能够提高模型的特征提取和融合能力,提高模型的检测准确性.本研究提出MSAM模块来增强模型的特征提取能力,提高检测性能.MSAM结构融合了两种尺度的特征图的特征,其模块结构如图2所示,图中右半部分的虚线框内即为CBAM模块的结构.图中:MaxPool为最大池化操作;AvgPool为平均池化操作;SharedMLP为共享多层感知机;Sigmoid为Sigmoid函数;Conv为二维卷积;Cat为拼接操作;⊕为元素相加;⊗为元素相乘;Fl为浅层特征图;Fh为深层特征图;Fa为CBAM模块的输出.10.13245/j.hust.230511.F002图2MSAM结构图初始特征融合使用两个特征图相加,输入为Fl和Fh,特征图相加之后进入CBAM,从通道和空间两个维度使用注意力机制,进行特征提纯.计算式为Fa=Ca(Fl⊕Fh),(1)式中Ca(·)表示CBAM模块的计算.Fa之后经过Sigmoid函数把特征映射到(0,1)之间,输入的特征图被赋予不同的权值,以实现特征的有效融合,MSAM输出的计算式为F=[Fl⊗σ(Fa);Fh⊗(1-σ(Fa))],(2)式中:σ(∙)为Sigmoid函数;[∙;∙]为Cat拼接操作;F为经过MSAM融合的输出特征图.2.3 MSAM-YOLOv5 网络结构YOLOv5的Neck部分有自顶向下和自底向上两个路径来融合特征,拼接操作就在不同层的融合处.本研究使用MSAM模块替换原处的拼接操作,得到MSAM-YOLOv5网络.拼接一共有四处,最优结果是替换原始网络的16,19和22这三处,MSAM-YOLOv5网络结构如图3(a)所示,模块前的序号代表模块索引,各模块的结构如图3(b)所示,图中:SiLU为激活函数;BN为批归一化操作;Add为相加操作;Up为上采样操作;C3_x中的x为该组件内Bottleneck的个数;Detect为检测层.10.13245/j.hust.230511.F003图3MSAM-YOLOv5网络结构及组件图3 实验验证及结果分析3.1 数据集与评价指标本研究选用SeaShips数据集[22],该数据集含有不同背景、不同光照、不同角度、不同天气和不同时间点的图片,图片上的船舶有不同程度重叠,图片复杂,内容丰富.包括六种常见的船舶类型,即矿砂船(ore carrier)、散装货船(bulk cargo carrier)、普通货船(general cargo ship)、集装箱船(container ship)、渔船(fishing boat)和客船(passenger ship),所有图片都是RGB三通道,均为1 920×1 080的尺寸.这个数据集覆盖了所有的图像变化可能,本研究随机选取1 000张图像构成训练集,125张图像构成测试集.为了精确评估模型的性能,本研究选取几个YOLO算法常用的评估指标:用P(精确率)、R(召回率)、AP(平均精度)和mAP(平均精度均值)来评估准确性;用FPS(帧率)来评估实时性.P反映模型正确分类的能力,其值是真正例的检测个数与检测为正例的个数之比,P高说明模型的误检率低;R反映模型全面检测目标的能力,其值为真正例的个数与真实值为正例的个数之比,R高说明模型的漏检率低;AP综合反映了模型的准确性,AP越高模型的识别能力越好,因AP值是P-R曲线的积分,故可根据IOU阈值的不同确定三个逐渐严格的AP指标,即AP0.5,AP0.75和AP0.5:0.95,分别表示IOU阈值为0.5和0.75的AP值及IOU阈值为0.50~0.95以0.05为间隔的AP平均值;mAP反映所有类别的检测精度,其值等于AP值的平均值,mAP对应于AP,也有mAP0.5,mAP0.75和mAP0.5:0.95之分.本实验都是在NVIDIA Jetson AGX Xavier(16 GB)的设备上进行,使用PyTorch,CUDA10.2.89,cuDNN8.0.0,操作系统为Ubuntu 18.04.5 LTS.实验迭代次数为300,模型输入尺寸为640×640,批大小为16,如无特殊说明其他参数使用默认值.数据集中图片的尺寸为1 920×1 080,模型的输入为640×640,须要变换尺寸.在训练阶段,首先对1 920×1 080的图片等比例缩放到640×360,缩放因子为640与宽高中最大值的比值;然后使用Mosaic增强技术,与另外三张图像拼合,不足的部分填充114,再将其缩放到640×640.在测试阶段,首先对1 920×1 080的图片等比例缩放到640×360,缩放因子为640与宽高中最大值的比值;然后填充114,得到640×640的尺寸.3.2 锚框参数优化和MSAM模块的消融实验为了验证两种因素的有效性,设计了消融实验,实验共有三组:原始YOLOv5,锚框参数使用原始值,没有引入MSAM模块,命名为v5s;在YOLOv5的16,19和22处替换为MSAM模块的网络,命名为v5s-M3;在第二组的基础上使用优化的锚框参数,命名为ac-M3,也即本研究提出的MSAM-YOLOv5模型.首先,对比v5s-M3和ac-M3两组实验,观察锚框优化对训练过程的影响.总体损失值包含边框损失、类别损失和置信度损失.使用原始锚框与使用重新设定锚框的四种损失值的曲线如图4所示,可以看出:ac-M3模型的边框损失更小,类别损失下降更快,但是置信度损失值比v5s-M3要大一点.优化后总体损失比优化前稍小,说明锚框优化对训练有积极作用.10.13245/j.hust.230511.F004图4使用原始锚框与使用重新设定锚框的四种损失值曲线然后从3.1节提出的指标评估模型,实验结果如表2所示.对比v5s和v5s-M3组实验可以看出:引入MSAM模块后,模型的精确率提高了0.83%,召回率提高了0.80%,其余四个指标分别提高了0.55%,降低了0.08%,降低了0.29%及提高了3.说明MSAM模块可以提高模型的检测精度,提高召回率,降低漏检率,同时提高检测速度.对比v5s-M3和ac-M3,除精确率下降了1.43%,其他指标分别提高了0.32%,0.36%,5.08%和2.36%,说明优化锚框提高了模型的召回率和整体检测精度.对比v5s和ac-M3,精确率下降了0.60%,召回率提高了1.12%,三个mAP指标分别提高了0.87%,5.00%和2.07%,FPS提高了3.这说明引入MSAM和优化锚框提高了召回率,降低了漏检率,整体精度mAP提高说明模型的整体检测能力提高了,FPS提高同时说明检测的速度提高了.10.13245/j.hust.230511.T002表2消融实验结果方法P/%R/%mAP0.5/%mAP0.75/%mAP0.5:0.95/%FPSv5s95.8097.1498.1785.7275.2041v5s-M396.6397.9498.7285.6474.9144ac-M3(本文)95.2098.2699.0490.7277.2744为进一步探究模型的性能,模型对每个类别的检测结果可以细致反映模型的检测性能,表3展示了不同模型对六类船舶的检测结果.可以看出:ac-M3对散装货船检测结果较好,AP0.5,AP0.75和AP0.5:0.95三个指标相比于原始YOLOv5都有提高,对于客船,三个指标相比于原始模型和只加入MSAM模块的模型都提高了,其中AP0.75提高最明显,比前两个提高了15.73%和15.78%,对于渔船,ac-M3的三个指标也都提高了,对于普通货船类船舶,ac-M3的检测结果也很好,三个指标较其他两个模型均有提高,对于矿砂船类船舶,ac-M3的AP指标比其他两个模型都有提高,但对于集装箱船类船舶,三个模型的AP0.5值相同,其他两个指标值,ac-M3比其他两个模型较低.整体而言,ac-M3的三个AP指标在散装货船、渔船、矿砂船、客船和普通货船表现很好,相比于v5s均有提高,模型对这五种船舶的检测结果比原始YOLOv5模型要好,而对于集装箱船船舶检测结果则不如其他类别好.10.13245/j.hust.230511.T003表3各模型对各类别船舶的检测结果方法指标矿砂船散装货船普通货船集装箱船渔船客船v5sAP0.595.7696.0599.5099.5098.7199.50AP0.7592.8788.2188.0688.4772.9383.77AP0.5:0.9570.4077.2179.9477.6368.1177.93v5s-M3AP0.596.6198.4399.5099.5098.7999.50AP0.7581.3791.1089.2587.0881.3083.72AP0.5:0.9568.2775.4380.1175.3669.3081.00ac-M3(本文)AP0.597.7999.0799.5099.5098.9099.50AP0.7593.0390.4296.5079.6785.1799.50AP0.5:0.9575.6880.3981.0774.2170.7681.50%3.3 不同注意力模块及MSAM位置的影响使用优化的锚框参数进行实验,探究不同注意力模块的影响,为此设计两组实验:一组为3.2节的ac-M3实验组;另一组为加入了CBAM注意力机制模块的网络,命名为ac-C3,CBAM的引入位置与ac-M3相同,在原始拼接操作后加入CBAM模块.为研究MSAM位置对模型的影响,设计三组实验:第一组命名为ac-M4,其Neck部分的四个位置均替换为MSAM;第二组命名为ac-M3,其Neck部分替换16,19和22这三个位置;第三组命名为ac-M1,其Neck部分仅替换12位置.实验结果如表4所示.10.13245/j.hust.230511.T004表4不同注意力模块的实验结果对比方法mAP0.5/%mAP0.75/%mAP0.5:0.95/%FPSac-C399.2085.5375.5745ac-M198.3588.5376.9344ac-M3(本文)99.0490.7277.2744ac-M498.5989.2075.8643IOU阈值越高,mAP值越高,模型的检测结果越好.从表4可以看出:ac-C3与ac-M3模型实时性几乎相同,引入CBAM的模型后的mAP0.5仅比ac-M3高0.16%,但其他指标分别低5.19%和1.70%.这两组实验证明了MSAM具有更好的特征提取能力,同时不降低检测速度.三种注意力模块的添加位置都对模型的性能有不同程度的积极影响,说明注意力模块的增加可以提高模型的特征提取能力.三种不同位置的引入方式,以ac-M3实验提升最高,在模型的准确性和实时性方面都是最优.3.4 模型的整体性能分析设计实验对比所提出的MSAM-YOLOv5(ac-M3实验组)与YOLOv3算法的检测性能,实验结果如表5所示,可以看出:YOLOv3在实时性上就与v5s和本文模型相差较大,无法满足无人船对检测速度的要求,而精度指标mAP的三个值都不如本文模型,这也验证了MSAM模块的引入提高了模型的检测精度和速度.10.13245/j.hust.230511.T005表5MSAM-YOLOv5与其他检测算法的对比方法mAP0.5/%mAP0.75/%mAP0.5:0.95/%FPSv5s98.1785.7275.2041YOLOv398.4583.4472.5215ac-M3(本文)99.0490.7277.2744图5对比了改进前后的效果,图中:左列为v5s(原始YOLOv5)的检测结果;右列为ac-M3(本文的MSAM-YOLOv5)的检测结果;矩形框为检测出的目标位置,边框右下角数值表示置信度,两个模型的类别检测均相同,图中未标出.图5中的第一行展示了两种算法对于小目标的检测结果,MSAM-YOLOv5的类别置信度更高,检测更准确;10.13245/j.hust.230511.F005图5部分检测结果对比图第二行展示了对于大目标的检测结果,置信度MSAM-YOLOv5最高;第三行展示了有薄雾情况下的多目标重叠的检测结果,YOLOv5检测的目标多于真实目标个数,存在误检,船舶重叠处仍检测成了目标,而MSAM-YOLOv5能够准确检测出目标,没有误检和漏检,置信度也都比原始算法高.从检测结果可以看出:MSAM-YOLOv5的检测更准确,能够在复杂条件下高质量完成船舶检测的任务.4 结语针对内河航道船舶识别中背景复杂、分布多样且检测困难而导致的无人船电子瞭望系统漏检的问题,本研究提出MSAM-YOLOv5算法,在YOLOv5的基础上引入了MSAM注意力模块,并优化了锚框参数.设计实验研究了锚框对训练过程的影响,验证了MSAM模块的有效性,并进一步分析了MSAM模块的引入位置对模型检测性能的影响.经实验验证表明:本研究所提的MSAM多尺度注意力模块可以融合浅层的细粒度信息和深层的语义信息,提高模型的特征融合能力.MSAM-YOLOv5能够实现多种场景的船舶检测任务,在检测的准确性和实时性方面达到了较好的平衡,模型的召回率高,船舶的查全性较好,整体准确度高,实时性好,有利于无人船的安全航行.今后的改进之处为:进一步减少复杂背景的干扰,提高各种类别的检测能力,同时提高模型检测的精确率.

使用Chrome浏览器效果最佳,继续浏览,你可能不会看到最佳的展示效果,

确定继续浏览么?

复制成功,请在其他浏览器进行阅读