APP下载

基于改进YOLOv5的船舶目标检测算法

2023-07-13策,尹勇,王

关键词:尺度边界卷积

宋 策,尹 勇,王 鹏

(大连海事大学航海动态仿真和控制交通行业重点实验室,辽宁大连,116026)

0 引言

近年来,视频场景中的目标检测成为计算机视觉领域的研究热点。基于卷积神经网络的目标检测模型能够检测一幅图像中的多个目标,并判断目标的类别和位置。而在智能船技术发展过程中,将目标检测技术应用于对其他船舶信息的感知一直是研究者关注的问题之一。随着船舶工业的发展,海上目标形式更加多样,在智能船视频系统中需要对各类船舶目标实施更为迅速、精准、直观的检测,由此获取其他船舶的有关信息。根据不同的图像信息国内外研究者们提出了多种算法。杨一平等[1]通过传统的多视觉融合方法,使用局部熵以及连通域对船舶目标进行检测;石文豪等[2]利用不同的结构元素提取船舶边缘特征,从而提取船舶目标的细节;杨雪锋[3]提出了一种基于FAST角点检测、分类、以及区域生长的船舶目标检测方法,利用目标角点与海浪角点在强度及密集度上的不同对两者进行区分;Arshad等[4]对船舶背景图像首先使用形态学操作进行处理,然后对船舶的边缘使用Sobel算子进行检测,进而与其背景进行辨别,但对复杂纹理的情况处理效果不好,并且会产生较多噪点。

随着卷积神经网络在目标检测领域的逐步完善,许多研究者采用基于深度学习的算法来实现船舶目标的检测。Chang等[5]基于SAR图像评估了YOLOv2深度网络架构在各种场景下检测船只的性能,得出YOLOv2方法在接近实时的情况下,特别是在复杂的情况下,在精度和性能方面都优于现有技术,但检测速度较慢。赵文强等[6]通过在YOLOv3原型网络基础上进行网络尺度的扩展,利用K-means聚类算法得到更为精细化尺度下的先验框,在目标检测准确率、目标位置预测、模型检测效率方面有显著的表现。Zou[7]通过对SSD法进行改进,采用轻量级的MobilenetV2网络结构,满足了当前船舶监督中对船舶目标实施检测的要求。Tanveer等[8]使用了Faster R-CNN在SAR图像中对船舶进行了检测及计数,因为卷积层的简洁性提升了计算速度,具有较高的检测精确度。对于复杂海况下和近岸船舶目标,基于图像处理的传统船舶目标检测算法泛化性较差,检测难度大。而一些流行的卷积神经网络算法在船舶检测领域精确率、召回率等还有待提升,检测速度也难以达到实时检测的要求。为了建立高精度船载视频感知系统,本文提出一种基于改进YOLOv5的船舶目标检测算法,通过引入主干网络(Backbone)增加注意力机制SENet[9],对边界框选取进行抑制,使用Confluence替代非极大值抑制(non-maximum suppression,NMS),摆脱了边界框对置信度得分以及交并比(intersection over union,IoU)的依赖等技术对YOLOv5算法进行改进,以期提高检测精度。

1 基于YOLOv5的船舶目标检测算法

YOLOv5船舶目标检测算法首先通过主干神经网络提取输入图像在三个不同尺度上的特征,通过上采样层将深层特征与浅层特征融合,最后在三个尺度上进行检测,得到目标的分类结果以及位置信息。

1.1 YOLOv5网络结构

YOLOv5的网络结构分为Backbone,颈部提取特征(neck)和输出三部分,如图1所示。

在Backbone中,分辨率为640×640×3的输入图像通过Focus结构,经过切片运算,首先得到320×320×12特征图,然后经过32个卷积核的卷积运算,最后得到320×320×32 特征图。CBL模块是一个基本的卷积模块,CBL模块表示卷积层(Conv2D)+ 归一化层(BatchNormal)+ LeakyRELU。瓶颈层(BottleneckCSP)模块主要对特征图进行特征提取,从图像中提取丰富的信息,与其他大型卷积神经网络相比,BottleneckCSP结构可以减少卷积神经网络优化过程中的梯度信息重复,其参数量占整个网络参数量的大部分,通过调整BottleneckCSP模块的宽度和深度,可以得到YOLOv5s、YOLOv5m、YOLOv5l、YOLOv5x四种不同参数的型号。空间金字塔(spatial pyramid pooling,SPP)模块主要增加网络的感受野,获取不同尺度的特征。

YOLOv5还在特征金字塔网络(feature pyramid networks,FPN)结构的基础上增加了一个自底向上的特征金字塔结构。通过这种组合操作,FPN结构自上而下传递鲁棒语义特征,特征金字塔自下而上传递鲁棒定位特征[10]。聚合不同特征层的输出,提高网络的检测能力,以应对不同尺度目标。在图的最后,输出分类结果和对象坐标[11]。

1.2 SENet网络结构

本文的网络结构在YOLOv5的基础上进行了一定改进,调整了部分参数,并在Backbone部分的BottleneckCSP模块之后引入了压缩激励结构SENet。注意力机制的引入,对于输入的每条特征通道有着不同的重要性,通过全连接层(FC)进行学习,从而得到来自不同特征通道空间维度为H×W×C的权重。SENet增加了模型的复杂度和计算负担,但这样关键特征的提取能力得以提升,并能有效地抑制无用的特征。图2为修改后的Backbone。

2 基于Confluence的输出端

在检测过程中,由于需要检测不同种类的船舶,且船舶之间存在结构及大小的差异(如散货船、集装箱船、渔船、邮轮,等),因此需要使用YOLOv5从多个尺度进行检测。Backbone中深卷积层在分类任务中能够获取图像深层次的细节,而浅卷积层在对象位置回归任务中更优,对外观细节明显的对象进行检测时较为适用,因此在预测时,会先将主干网络产生的三个尺度的特征图通过FPN和像素聚合网络(pixel aggregation network,PAN)结构通过拼接(concat)层操作融合起来,这样能更好地获得目标的位置信息、分类信息和不同尺度物体的特征。

YOLOv5在输入图像的尺寸为640×640时,输入检测网络特征图的大小为20×20,40×40,80×80。较深的20×20特征图负责预测外观特征较为明显的目标,而较浅80×80的特征图负责预测外观特征较为模糊的目标。随后采用了Confluence方法[12],替代YOLOv5中原本所采用的加权NMS,该方法不依赖于置信度得分来选择最佳边界框,也不依赖IoU来消除误检。其通过使用加权曼哈顿距离来选择最接近群集中其他所有边界框的边界框,并删除具有高度融合的相邻框。

Confluence是一个两阶段的算法,它保留了最优边界框,并消除了假阳性。第一阶段使用置信加权曼哈顿距离对相邻边界框进行计算,来评估边界框的一致性。第二阶段涉及移除所有与保留的边界框在同一边界框簇中的其他框,首先通过加权曼哈顿距离M衡量两个边界框的重叠程度,得到O值,如图3所示,其计算公式为

(1)

随后通过考虑置信分数c和与之竞争的边界框的O值来评估给定边界框的最优性,利用公式W(u,v,m,n)=O(u,v,m,n)/c计算其置信度得分,可以得到加权接近性W。

3 实验结果及分析

3.1 实验数据集

随着计算机视觉的迅速发展,目前在可见光图像的船舶目标检测领域中公开的并被广泛使用的数据集逐渐增多,其中包括新加坡海事数据集、VAIS数据集以及Seaships数据集等。本文使用Seaships数据集[13]公开的部分数据集,其中Seaships数据集包括7000张图片,分辨率为1920×1080;使用VOC数据集的格式,其中包括散货船、矿砂船、集装箱船、渔船等不同船型。将Seaships中5040张图像用于训练,700张图像用于测试。

3.2 实验平台训练设置

实验平台在Windows10系统上进行,开源深度学习框架Pytorch1.6通过CUDA对GPU加速进行训练,实验平台使用了一块NVIDIA RTX2060显卡,显存为6 GB。为了减少过拟合的风险,使用广义交并比(generalized intersection over union,GIoU)作为损失函数,将网络的Backbone部分作为分类网络,在VOC训练集上进行预训练,得到初始的权重,并使用Adam优化算法,通过动量和自适应学习率来加快收敛速度。此外,训练集采用Mosaic数据增强的策略,随机使用4张图片,随机缩放,再随机分布进行拼接,大大丰富了检测数据集,特别是随机缩放增加了很多小目标,让网络的鲁棒性更好。

3.3 实验结果评价指标

为了对检测结果进行分析评价,需要引入如下指标:NP为被正确检测的各类船舶数量;ND为被检测为各类船舶的数量;NT为被标记为各类船舶的数量[14]。当本文所使用的Confluence中检测框与正确目标的曼哈顿距离阈值超参数设置为0.45,当超过阈值时认为正确检测出了目标。

预测的精确率P=NP/ND;召回率R=NP/ND;考虑P以及R的综合指标F1=2×P×R/(P+R)。

3.4 实验结果分析

3.4.1 不同网络参数下YOLOv5的检测性能比较

比较YOLOv5在网络宽度与深度不同时网络的检测精度、模型参数的大小,结果如表1所示。

表1 不同网络模型大小的YOLOv5网络性能Tab.1 YOLOv5 network performance with different network model sizes

从表1中可以看出,增加宽度与深度在一定程度上对网络的性能带来了部分提升,但提升结果并不明显,而且需要以牺牲模型大小为代价,因此最终选择了参数量较少,更容易在船载设备部署的YOLOv5s轻量化版本,并在此基础上对模型进行了改进 。

3.4.2 与不同深度学习目标检测算法比较

为了验证本文算法的性能,在相同数据集上与其他检测算法进行了比较,结果如表2所示。从表2可以看出,本文改进的YOLOv5s网络采用了SENet作为注意力机制添加到Backbone中,提升了原版YOLOv5s目标检测精确率,随后使用了Confluence检测框筛选方法,使网络不依赖IoU的情况下从三个尺度进行检测,同时小幅度提升了检测精确率,模型参数大小也基本不变,具有轻量化优点,硬件实现较为容易。检测能力已达到较高水平,且相比SSD网络[16]拥有更好的检测性能。SSD300因为输入图像分辨率并不高,并且多尺度检测的方法并不占据优势,所以检测精度并没有很好的表现。但由于主干网络使用了VGG16,所以模型参数量也较大。本文相比原版YOLOv5s,虽然牺牲了一部分速度,但提高了检测精度,达到与两阶段的目标检测算法Faster R-CNN[17]相接近的水准,基本能实现目标实时检测。图4为不同检测算法的部分检测结果。其中:1)表示识别标签为Ore carrier;2)表示识别标签为General cargo ship和Bulk cargo carrier;3)识别标签为General cargo ship和Fishing ship。从图4可看出,改进后的YOLOv5s网络在船舶之间距离较近时,边界框对船舶轮廓的识别更为准确,没有同其他检测模型一样出现边界框交叉的情况,同时在检测渔船等目标时,没有出现误检或漏检的现象。

表2 不同深度学习检测算法比较Tab.2 Comparison of different deep learning detection algorithms

4 结论

本文提出了一种新的卷积神经网络结构,用于检测可见光视频影像中的船舶目标。该网络结构主要基于YOLOv融合了SENet压缩激励结构,对输出端使用Confluence方法进行改进,使网络能够不依赖IoU也可以检测出多尺度的目标特征。在可见光视频影像中的船舶目标检测任务中,本文算法相比同类检测算法有着较高的准确度,并且模型参数量较小,便于在船载视频设备上实现。

猜你喜欢

尺度边界卷积
拓展阅读的边界
基于3D-Winograd的快速卷积算法设计及FPGA实现
财产的五大尺度和五重应对
从滤波器理解卷积
论中立的帮助行为之可罚边界
基于傅里叶域卷积表示的目标跟踪算法
宇宙的尺度
9
“伪翻译”:“翻译”之边界行走者
一种基于卷积神经网络的性别识别方法