近年来,船舶智能化研究不断取得突破,被公认为船舶未来发展的主要方向[1].智能船舶的重要功能是智能航行,即利用计算机技术和控制技术等对感知系统获得的信息进行分析和处理,对船舶航路和航速进行设计和优化,并能在开阔水域和狭窄水道等复杂环境条件下自动避碰,实现自主航行[2].水面可见光图像的目标检测是智能航行的关键技术之一,该技术分为传统方法和深度学习方法两大类.传统方法须要建立特征工程,实时性较低,泛化性能较差.文献[3]首次将卷积神经网络用于图像视觉任务,较传统方法提升明显.文献[4]设计了一个共享卷积提取特征的Faster RCNN算法,在检测海上舰船目标中达到了较高精度.文献[5]提出一种水面可见光图像的强语义特征提取结构,结合深度学习检测算法,在实海域水面图像目标检测上效果较好.在深度学习方法中,YOLO算法[6]结构清晰、实时性高,应用最为广泛.文献[7]将其用于水面目标检测,取得了优于传统算法的效果.YOLO V3[8]是该算法的第三代,兼顾了精度和实时性.文献[9]改进YOLO V3的骨干网络,并将其应用在无人船水面目标检测上,取得了高实时性和高精度的检测效果.对于YOLO算法的应用,现有研究只关心总体障碍物的识别精度,忽视了小尺度障碍物的精度.由于船舶惯性较大,因此对于远处小尺度障碍物的检测能提高船舶反应时间,增加航行安全性.在船舶编队航行和通过狭窄航道等场景中,船舶的感知依赖近处大尺度障碍物的检测,因此智能船舶的目标检测算法应当具有较好的多尺度检测性能.为提高多尺度检测能力,文献[10]设计了多特征图策略,由于大尺寸特征图由浅层网络输出,语义信息较弱,因此多特征图策略在小尺度目标上效果不佳.文献[11]提出了特征金字塔策略,即先对骨干网络最后一层输出的特征图连续上采样,再与同尺度的中间特征图进行通道拼接,特征金字塔策略效果在包括YOLO V3等算法中得到了验证.文献[12]提出一种自适应特征融合策略,通过可学习参数将特征金字塔各层不同尺度的特征图进行自适应融合,各特征图根据目标尺度进行上采样或下采样调整尺寸,并通过可学习参数控制权重,再进行通道上的融合得到最终用于检测的特征图.YOLO作为单阶段目标检测算法,存在样本分布不平衡问题,即负样本多于正样本,易分类样本多于难分类样本[13].样本不平衡问题会抑制网络对于正样本和难分类样本的特征学习,干扰网络训练.针对YOLO V3算法在船舶智能航行应用上的缺陷,本研究提出一种多尺度目标检测算法,以YOLO V3为基准,新增自适应特征融合模块增强多尺度检测能力,引入权重因子和调制系数设计新的损失函数优化样本分布,提升训练效率,并最终在水面图像仿真实验中验证了算法的有效性.1 YOLO算法原理首先,YOLO的骨干网络对输入图片进行多次的卷积-池化操作,提取特征,生成特征图;然后,将特征图划分为S×S个网格,每个网格负责检测中心点落入其网格区域内的目标,通过网格内的特征进行分类获得网格内目标的类别置信度向量,并固定生成B个边界框;最后,将全图得到的S×S×B个边界框通过边界框置信度进行阈值筛选.在水面图像数据集上,YOLO V3对小目标的检测精度较差,小目标的精度远小于中大目标的精度,在小中大目标上的检测精度分别为39.6%,66.8%和76.8%.在计算机视觉领域中,也存在YOLO V3难以检测小目标的现象,在公开数据集COCO (common objects in context)[14]上,YOLO V3在小、中、大目标上的检测精度分别为18.3%,35.4%和41.9%,小目标的平均精度远小于中大目标的平均精度.2 多尺度目标检测算法2.1 网络结构本研究设计了一种多尺度目标检测算法,其网络结构如图1所示,图中:DBL单元由卷积、批归一化和激活函数组成;残差体由补零、DBL单元和三个残差单元组成;残差单元由两个DBL单元堆叠,并增加恒等映射;f1~f4为特征金字塔四层特征图;y1~y4为自适应特征融合后的四层特征图;S1×S1~S4×S4为四种尺寸大小.10.13245/j.hust.210509.F001图1多尺度检测算法网络结构图多尺度检测算法的骨干网络由多个残差体组成,具有较强的特征提取能力.特征金字塔共四层:第一层由骨干网络最后一层经DBL单元和卷积获得;第二、三、四层由骨干网络的倒数第二、三层和特征金字塔上一层经过DBL单元和上采样后通道拼接,再经过DBL单元和卷积获得.为提高算法的多尺度检测能力,多尺度检测算法在特征金字塔后增加自适应特征融合模块,融合后的四层特征图尺寸不变.对于y1~y4,利用检测器对其进行检测输出,得到最终的检测结果,检测器原理与YOLO检测器原理相同.以y1层为例,自适应特征融合模块的结构如图2所示,图中f1'~f4'为下采样后的特征图.在自适应特征融合过程中,首先通过下采样对前一层特征图尺度归一化,然后通过可学习神经元进行自适应加权,最后通道相加,得到y1层.特征融合过程遵循的融合公式为yl=αx1→l+βx2→l+γx3→l+δx4→l,(1)式中:yl为自适应特征融合后的第l层特征图所有参数;x1→l,x2→l,x3→l和x4→l为输入特征图所有参数;αl,βl,γl和δl为第l层可学习融合参数.10.13245/j.hust.210509.F002图2自适应特征融合模块结构示意图神经网络的参数更新依赖梯度计算,以f1~f4中某一层特征图所有参数xl为例,通过计算偏导数获得其梯度为∂J∂xl=∂J∂y1∂y1∂x1→l∂x1→l∂xl+∂J∂y2∂y2∂x2→l∂x2→l∂xl+∂J∂y3∂y3∂x3→l∂x3→l∂xl+∂J∂y4∂y4∂x4→l∂x4→l∂xl, (2)式中:J为中间梯度;y1,y2,y3和y4分别为y1~y4层所有参数;∂x1→1∂x1,∂x2→1∂x1,∂x3→1∂x1和∂x4→1∂x1为相应的尺度变换,近似看作1.由式(1)可将式(2)简化为∂J∂xl=∂J∂y1α+∂J∂y2β+∂J∂y3γ+∂J∂y4δ.对于特征金字塔策略,可看作为α,β,γ和δ取值均为1,由于特征图尺寸对检测的影响,可能存在部分目标仅在某层特征图上被检测,而在其余层特征图上难以被检测的情况.给予所有特征图同样权重会对梯度计算造成干扰,掩盖检测出目标特征图的贡献,影响梯度更新的方向.而通过自适应更新α,β,γ和δ,能提高已检测目标的特征图对梯度更新的贡献,优化梯度更新的方向,使最终用于检测的各尺度特征图拥有各尺度目标的强语义信息.2.2 损失函数YOLO算法的检测器会产生大量的边界框,这些边界框会检出虚假目标,从而产生大量负样本,负样本大部分是易分类的,但过多的负样本会占据损失函数较多的权重,干扰模型的参数训练.YOLO检测器采用的分类损失函数为交叉熵损失函数Lc,即Lc=-log pt,式中pt为分类概率,当分类正确时取为1,当分类错误时取为1与分类置信度之差值.在交叉熵损失函数中,负样本与正样本权重相同,但两者数量上的差距让负样本的权重远大于正样本,对于易分类样本,其数量过多,导致pt较小的难分类样本权重较低.针对上述样本分布不平衡问题,本研究改进了交叉熵损失函数,改进后的交叉熵损失函数为Lf=αt(1-pt)γlog pt,式中:αt为权重因子,对于正样本,αt为α,对于负样本,αt为1-α,取α为0.25,即正样本权重为负样本权重的三倍;γ为调制系数,取为2.对于易分类样本,(1-pt)γ较小,对于难分类样本,(1-pt)γ较大,增加难分类样本权重.因此多尺度目标检测算法的总损失函数为      Lt=λc∑i=0S×S∑j=0BIijo(2-wihi)[(xi-x̂i)2+(yi-ŷi)2]+λc∑i=0S×S∑j=0BIijo(2-wihi)[(wi-ŵi)2+(hi-ĥi)2]-   ∑i=0S×S∑j=0BIijoLf-λn∑i=0S×S∑j=0BIijnLf-∑i=0S×SIijo∑CLf,式中:λc和λn为对应权重;wi和hi分别为边界框的宽、高;xi和yi分别为边界框中心点横、纵坐标值;ŵi和ĥi分别为真实框的宽、高;x̂i和ŷi分别为真实框中心点横、纵坐标值;当目标存在时Iijo取为1,否则取为0;Iijn取值情况与Iijo相反;C为目标类别.正样本可提供较多的有用特征,负样本几乎不包含目标像素,提供无用特征可界定特征空间范围,通过权重因子αt的正负平衡使网络习得特征在合理空间中.难分类样本包含较多噪声,有助于提高检测算法的泛化能力,通过调制系数γ提高难分类样本权重,缓解模型训练中的过拟合现象.3 对比实验与结果分析3.1 实验准备本研究团队依据国内船舶分类标准建立了大型船舶数据库,并从数据库中取10个船舶类别3 000张尺寸为720×480像素的水面可见光图像,其中2 700张作为训练集,300张作为测试集,按照公开数据集COCO提出的标准划分目标尺度,数据集概况如表1所示.10.13245/j.hust.210509.T001表1水面图像数据集目标分布目标尺度目标数量占比/%小目标3469.5中目标63017.3大目标2 72074.6为验证算法通用性,在公开数据集VOC2012 (visual object classes)上也进行了仿真实验.软件平台统一为Ubuntu16.04,PyTorch0.4,硬件平台统一为Intel(R) Core(TM) i7-10700K CPU@3.80 GHz处理器,16 GB内存和GeForce GTX 2080 Ti显卡.各网络模型的骨干网络初始权重均为公开的预训练权重,训练过程中的学习率及优化算法配置相同.多尺度检测算法中S1,S2,S3和S4参数分别选为13,26,39和52.3.2 评价指标目标检测的评价指标分为实时性指标和精确性指标.实时性指标选取的是模型每秒处理的图片数量,即帧率,帧率越大,模型实时性越好.精确性指标选取的是平均精度,平均精度越大说明模型在该数据集上的精度越高,设Ps,Pm和Pl分别表示小目标、中目标和大目标的精度.3.3 多尺度目标检测实验为验证本研究所提出的多尺度目标检测结构的效果,在公开数据集VOC上进行实验,以YOLO V3为基准,YOLO V3*为增加自适应特征融合后的YOLO算法,实验结果如表2所示.10.13245/j.hust.210509.T002表2VOC数据集多尺度检测结果算法PsPmPlYOLO V336.668.877.3YOLO V3*48.774.179.2%本研究提出的多尺度检测结构对于小目标精度提升明显,提升了33.1%,对于中大目标的精度也有一定的提升,分别提升了7.7%和2.5%,缓解了YOLO V3在多尺度目标上检测的精度不平衡性.为进一步验证其改进效果,本研究将其应用于水面图像数据集上,且效果也得到了验证,如表3所示.10.13245/j.hust.210509.T003表3水面图像数据集多尺度检测结果算法PsPmPlYOLO V339.666.876.8YOLO V3*49.073.178.4%3.4 损失函数对比实验为验证本研究设计的损失函数对于模型训练效果的提升,以YOLO V3为基准,YOLO V3+使用新损失函数,在VOC数据集和水面图像数据集上进行实验,结果如表4和表5所示.在水面图像数据集训练过程中得到的损失曲线如图3所示,图中:L为损失;E为迭代周期.由图3可知:使用新损失函数的YOLO V3算法在精度上较基准有一定的提升,且提升较为均衡,各尺度目标精度的提升均在1%~2%之间.10.13245/j.hust.210509.T004表4VOC数据集损失函数对比实验结果算法PsPmPlYOLO V336.668.877.3YOLO V3+37.369.878.7%10.13245/j.hust.210509.T005表5水面图像数据集损失函数对比实验结果算法PsPmPlYOLO V339.666.876.8YOLO V3+40.367.778.1%10.13245/j.hust.210509.F003图3水面数据集损失曲线从训练过程中损失的变化可知:新损失函数在迭代过程中数值下降更为迅速,达到收敛所需的迭代周期减少,且收敛后的数值更小.3.5 整体改进实验为探究多尺度检测算法相对YOLO V3在整体性能上的提升,以YOLO V3为基准,以YOLO V3**为本研究提出的多尺度目标检测算法进行实验,实验结果如表6和表7所示.10.13245/j.hust.210509.T006表6VOC数据集整体改进实验结果算法PsPmPlYOLO V336.668.877.3YOLO V3**49.275.881.6%10.13245/j.hust.210509.T007表7水面图像数据集整体改进实验结果算法PsPmPlYOLO V339.666.876.8YOLO V3**52.874.880.3%由表6和表7可知:多尺度目标检测算法对于YOLO V3算法精度效果提升明显,小目标效果明显,精度提升了34%左右,中、大目标的精度也有一定的提升,分别提升了10%和6%左右,缓解了YOLO V3算法对于多尺度目标检测精度上的不平衡性,对各尺度目标的检测均有较好的精度.为更直观地展现出自适应特征融合模块在多尺度目标检测算法中的作用,本研究对特征金字塔输出的特征图和经过自适应特征融合后的特征图进行了可视化,部分可视化结果如图4所示.从图4可以直观看出:经过自适应特征融合后的特征图具有更强的语义信息,目标位置处与周围环境的差异更大,更有利于检测器对目标的检测.10.13245/j.hust.210509.F004图4特征图可视化图5展示了部分检测效果图,左侧为多尺度检测算法,右侧为经典YOLO V3算法,红色方框为检测算法输出的边界框.可以直观看出多尺度检测算法在中小尺度目标的检测效果上优于YOLO V3算法.10.13245/j.hust.210509.F005图5部分检测效果图3.6 实时性和参数量分析各算法在参数量和实时性的差异如表8所示,由表8可知:新损失函数并不影响模型的实时性,增加多尺度特征融合结构后的算法参数量增加不超过7%,检测时间增加不超过5%,本研究提出的多尺度目标检测算法能满足工程要求.10.13245/j.hust.210509.T008表8各算法实时性与参数量算法参数量/106水面图像实时性/(帧•s-1)VOC实时性/(帧•s-1)YOLO V361.9531.535.0YOLO V3*YOLO V3+YOLO V3**65.3261.9565.3229.131.529.133.035.033.04 结语本研究基于YOLO V3设计了一种多尺度目标检测算法,算法新增自适应特征融合模块,可提高多尺度检测能力,改进损失函数,缓解了训练过程中的样本不均衡问题,提高了训练效率,使算法在各尺度目标上均具有一定的精度提升.通过仿真实验,多尺度检测算法的有效性得到了验证,能在未来船舶智能航行中获取更加丰富的环境信息,为智能船舶的发展提供技术支持.

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

确定继续浏览么?

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