1. 引言
水下目标检测技术在现代海洋科学研究、海洋资源开发、生态环境保护及军事领域中扮演着至关重要的角色。例如,在水下机器人导航、海底地形测绘、海洋生物监测以及水下救援任务中,精确的目标检测能力是实现这些应用的基础。然而,由于水下环境的特殊性,光线传播受限、图像质量下降、光照不均匀、悬浮颗粒干扰以及多变的水下色彩等问题给目标检测带来了巨大的挑战。传统的目标检测方法,如基于人工特征的检测器,往往无法在这种复杂环境中取得令人满意的效果。
近年来,随着深度学习技术的迅猛发展,基于卷积神经网络的目标检测方法取得了显著的进展。其中,YOLO系列模型凭借其实时性和较高的检测精度,成为当前目标检测领域的代表性方法之一。然而,现有的YOLO模型主要针对常规场景设计,在面对水下复杂环境时,其性能可能受到限制。为了解决这一问题,研究者们逐渐关注如何对YOLO模型进行适应性改进,以提升其在水下环境中的检测效果。
本研究旨在探索并改进YOLOv7 [1]模型在水下目标检测中的应用表现。我们将YOLOv7作为基线模型,结合水下环境的特点,对模型的关键模块进行了优化,以增强模型在复杂背景中的目标检测能力。通过在水下目标检测数据集上的实验验证,我们的改进方法显示出显著的性能提升。
2. 相关工作
近年来,水下目标检测领域取得了显著进展,研究者们通过提出多种增强策略和改进模型来应对水下环境中的挑战。Lin [2]等人提出了一种名为RoIMix [2]的增强方法,该方法通过在不同图像之间进行交互,从中提取图案并将其混合在一起,以此来模拟重叠、遮挡和模糊对象的情况,从而构建了一个具有更好泛化能力的模型。Fan [3]等人提出了一种结合特征增强和锚点细化的水下检测框架,该框架采用复合连接主干来增强特征表示,并引入感受野增强模块以利用多尺度上下文特征,从而提高检测精度。Chen [4]等人提出了一种新颖的样本加权超网络(SWIPENET)和课程多类Adaboost (CMA)的鲁棒训练范例,以应对水下目标检测中的样本不均衡问题。Chang [5]等人将Cascade-RCNN和Deformable Convolution Network应用于水下目标检测,并探讨了不同尺寸图像下两种检测算法的表现。Li [6]等人提出了一种基于联合自监督去模糊和改进的空间变换网络的高精度水下目标检测模型,使用多任务学习架构将自监督去模糊子网络与检测子网络相结合,以输出更为清晰的特征。Song [7]等人提出了boosting R-CNN,两阶段水下探测器由三个关键组件组成:RetinaRPN区域提议网络、概率推理管道以及硬样本挖掘方法,以提高检测的准确性。Jain [8]等人引入了改进的BiSkFPN机制,使EfficientDet在对抗性噪声下具有更强的鲁棒性,Walia [9]等人则开发了一个包含不同水下环境的自定义数据集,并提出了一种有效的海洋碎片检测方法。Dai [10]等人提出了门控跨域协作网络(GCC-Net),通过实时UIE方法、跨域特征交互模块和门控特征融合模块来解决水下环境中的低可见度和低对比度问题。Dai [11]等人还提出了一种边缘引导的表示学习网络ERL-Net,通过边缘线索实现更具判别性的表示学习和特征聚合。Zhou [12]等人提出了调幅随机扰动和涡旋卷积网络AMSP-UOD,专为解决复杂水下环境中的非理想成像因素而设计。Fu [13]等人提出了残差特征转移模块(RFTM),以应对DFUI图像与水下图像间严重退化斑块的映射问题。Liu [14]等人提出了即插即用的水下联合图像增强模块(UnitModule),旨在通过无监督学习损失改善探测器的输入图像质量。
这些研究展示了在水下目标检测领域的多样化创新,涵盖了从数据增强、特征提取到模型架构优化的广泛领域,推动了水下目标检测技术的发展。
3. 方法
3.1. YOLO-Vortex整体框架
在水下目标检测任务中,由于环境复杂且噪声较多,检测模型不仅需要保持高精度,还需兼顾实时性。YOLO系列模型因其检测速度快、精度高而广受关注,它将目标检测任务转化为目标区域预测和类别预测的回归问题。与传统方法如Faster R-CNN [15]相比,YOLO将目标区域和类别预测集成在单一的神经网络中,大大提升了检测效率。YOLOv7进一步优化了该系列模型,通过高效层聚合网络(ELAN)、级联模型缩放策略以及卷积重参数化技术,在保持高效检测的同时显著提升了精度。基于YOLOv7在速度与精度上的平衡优势,本文选择其作为基线模型,并针对水下目标检测的数据噪声问题进行了改进,提出了基于YOLOv7的漩涡聚合水下目标检测网络YOLO-Vortex。
我们设计了一个漩涡聚合网络模块,用于扰乱噪声特征,同时结合空间注意力机制,帮助网络更好地关注重要特征并抑制无关噪声。YOLOv7主要由骨干网络、检测头和预测模块组成。输入模块对图像进行统一缩放,骨干网络通过CBS、Elan和MPConv层实现多尺度特征提取与增强;检测头采用基于PAFPN的结构,确保不同层次特征的有效融合;预测模块则通过RepConv结构进行最终目标的输出预测。我们将漩涡聚合网络模块分别嵌入到骨干网络的Elan模块和检测头的Elan-N模块中,得到了Vortex-Elan和Vortex-Elan-N模块。此外,考虑到采样过程中可能导致信息丢失的问题,我们设计了空间到深度池化模块(STD-MP),将空间特征转换为深度特征,有效解决了信息丢失的问题,并用STD-MP模块替换了YOLOv7中的MPConv模块。与此同时,本文还改进了损失函数,加速了模型的收敛速度。我们提出的水下目标检测网络YOLO-Vortex网络结构如图1所示。
Figure 1. YOLO-Vortex network structure
图1. YOLO-Vortex网络结构
3.2. 漩涡聚合网络模块(Vortex)
水下环境的复杂性源于各种规律性和非规律性的退化因素,如海洋生物活动、人类活动和洋流运动等,这些因素会生成不可预测的噪声模式,从而对模型在感知和建模水下退化场景时造成极大挑战。卷积及其变体在特征提取中起着关键作用,但在存在噪声干扰或复杂场景时,其效果往往受限。如何有效区分背景特征和目标对象特征,成为影响检测精度的主要难题。
为应对这些问题,我们设计了一种创新性的Vortex模块,以减轻噪声干扰,提升网络在水下环境中的适应性。我们的核心思路是在破坏噪声数据的同时,加入空间注意力机制来帮助网络更好地关注重要特征,抑制不相关的噪声。虽然随机打乱噪声特征能够有效破坏噪声数据,但有用特征也会因此受到影响,可能导致信息丢失。对此,我们通过在破坏噪声操作前引入空间注意力机制,有效地保留关键信息。为了克服传统卷积核在较大尺寸卷积时的参数共享问题,我们在注意力机制中采用了分组卷积,从而为大尺寸卷积核提供了更精确的注意力权重。该创新提升了模型在复杂水下环境中区分背景与目标特征的能力,显著增强了水下检测的准确性。
Figure 2. Vortex module structure
图2. Vortex模块结构
在图2中,我们展示了Vortex模块的完整结构。Vortex模块首先通过自定义的Attention模块进行特征提取,Attention模块通过空间注意力机制计算输入特征的加权分布,并结合感受野空间特征,生成增强的特征图。接着,如果处于训练阶段,Broken模块会对特征图进行随机扰动,通过打乱部分通道的顺序来增加特征的多样性。然后,扰动或未扰动的特征图会被分割成多个slice块,并对每个slice块进行卷积操作,卷积后的结果将其在通道维度进行拼接,然后通过批量归一化和激活函数处理,为了保证正确的特征语义信息的完整性,我们利用残差连接将原始关联特征X和得到的特征串联起来,得到最终的输出Fout,该方法可以更好地适应特征衰减和噪声的影响,从而在梯度优化器的指导下获得理想退化场景的完整、正确的特征。转换可以表示如下:
(1)
(2)
(3)
(4)
其中
表示将Fbrk分割成多个slice块,Attention是我们引入的空间注意力机制,Broken模块是我们的噪声扰动策略,为增强模型的鲁棒性与特征学习的多样性,Broken模块在训练期间通过在指定维度dim上对输入张量x进行随机打乱来增加特征多样性。具体过程如下:
随机生成一个排列张量perm,并通过以下公式得到最终的打乱索引:
(5)
(6)
其中,dim_len为待打乱维度的长度;group为将输入张量再指定维度上划分的组数;i表示每个组内的偏移量,用于确保各组的打乱索引正确。
使用上述索引对输入张量x进行打乱:
(7)
(8)
其中,x是输入张量,包含待处理的特征;indices是经过打乱后的索引,指定了如何重新排列x中的元素;y是打乱后的输出张量,dim表示在此维度上执行打乱操作。
最终,输出特征图y与输入形状相同,但其通道数据已通过随机索引打乱,从而为后续网络层提供了新的特征表示。这种随机打乱方法有效增强了模型对特征的学习能力,减小了因过拟合而导致的泛化能力下降,特别在处理噪声数据和复杂场景时显著提升了模型的鲁棒性和准确性。
Attention模块通过动态权重学习和感受野特征提取的结合,增强了模型在卷积过程中的空间感知能力。给定输入特征图
,其中B,C,H,W分别表示批次大小、通道数、高度和宽度。通过平均池化和逐点卷积操作生成动态权重图
,其中K是卷积核大小,
和
是下采样后的高度和宽度。
(9)
通过深度卷积操作,在输入特征图上生成感受野特征
:
(10)
Figure 3. Vortex-Elan and Vortex-Elan-N module structure
图3. Vortex-Elan和Vortex-Elan-N模块结构
感受野特征与动态权重进行逐元素相乘,得到加权特征
:
(11)
将加权特征
重排以匹配原始空间维度,并通过最终卷积层生成输出特征图
:
(12)
该过程通过动态调整每个空间位置的感受野,增强了模型的空间注意力,尤其在处理复杂场景时,能够提升特征提取的效果。
如图3所示,Vortex-Elan和Vortex-Elan-N模块整体结构和原始Elan和Elan-N模块相似,我们将Elan和Elan-N模块中的部分普通卷积模块替换为了我们设计的Vortex模块,提高了模型的抗噪声干扰能力。
3.3. 空间到深度池化模块(STD-MP)
在水下目标检测中,由于水下环境的复杂性,传统目标检测网络的下采样模块在处理低分辨率图像时往往存在信息丢失的问题,尤其是对噪声较为敏感,进而影响检测性能。YOLOv7中的下采样模块主要由最大池化和卷积组成,通过池化操作减少特征图的尺寸,并通过卷积层进行特征压缩。虽然该方式有效地降低了计算复杂度,但在处理低分辨率水下图像时,可能会丢失部分关键的细节特征,尤其是在处理噪声较大的图像时,检测效果会显著下降。
针对这一问题,我们提出了一种基于空间到深度卷积的下采样改进方法,旨在保留更多的空间信息并提升水下目标检测的精度。其核心思想是通过将空间信息转换为深度信息来保留更多的特征,从而提高对目标的检测能力,尤其是在处理水下图像噪声和模糊目标时。该方法的优势在于,通过空间到深度的转换,能够在不增加过多计算量的情况下保留更多的细节信息,特别是对低分辨率水下图像的模糊目标具有更好的识别能力。
Figure 4. SPDConv module structure
图4. SPDConv模块结构
受到SPDConv [16]模块的启发,我们将SPDConv模块应用于MPConv下分支中,用以替代原有的3 × 3卷积核。如图4所示,SPDConv模块通过将空间特征转换为深度特征,在特征图上每隔一个像素提取一个值,从而生成四个特征图,且不会丢失任何信息。随后,这些特征图在通道维度上进行拼接,使输出通道数量扩展至原来的4倍,之后对拼接后的特征图进行卷积操作,最终生成无信息丢失的二倍下采样特征图。我们将改进后的MPConv模块命名为空间到深度池化模块(STD-MP),如图5所示。
Figure 5. STD-MP module structure
图5. STD-MP模块结构
3.4. 损失函数
在计算机视觉领域,交并比(Intersection over Union, IoU)是一种常用的指标,用于衡量模型预测边界框与真实边界框之间的相似程度。IoU的值越高,表示预测结果与真实标签的吻合度越高,模型性能也越优秀。在模型训练过程中,IoU通常被用作边界框的损失函数,以帮助提升模型的表现。在YOLOv7中,采用了CioU [17]。作为边界框的损失函数。CIoU损失不仅结合了预测框与真实框之间的IoU,还综合考虑了二者中心点的距离以及宽高比的一致性。通过这样的多维度评估,模型能够更精准地优化边界框的位置,从而提升目标定位的准确性。CIoU的具体计算公式如下所示。
(13)
(14)
(15)
(16)
其中,
是一个惩罚项,用于对参数进行平衡;
表示长宽比度量函数,用于评估预测框与真实框在宽高比例上的一致性;(Wi,Hi)表示预测框与真实框重叠区域的宽度和高度;(w,h)和(wgt,hgt)分别代表预测框和真实框的宽度与高度;(x,y)和(xgt,ygt)分别为预测框和真实框的中心坐标;LIoU则为预测框与真实框的交并比。这些定义如图6所示。
Figure 6. IoU between the predicted box and the true box
图6. 预测框与真实框的IoU
尽管CIoU损失函数在设计上考虑了边界框的长宽比一致性,但在模型反向传播更新梯度的过程中,预测框的长宽w,h相对于
的梯度是一对相反数。这种特性会导致训练过程中w和h无法同时调整,从而限制了模型性能的提升。此外,根据公式(15),当预测框与真实框的长宽相同时,
的值为0,使惩罚项失效,这显然是不合理的;另外,在存在低质量样本的数据集中,CIoU的固定惩罚机制会使模型难以从这些样本中有效学习,从而对检测精度产生负面影响。
因此,本文采用WIoU [18]损失函数来替代CIoU损失。WIoU通过一种动态非单调聚焦的梯度增益分配策略,根据样本质量动态调整损失权重,减弱高质量样本的竞争优势,同时缓解低质量样本带来的不良梯度影响,从而提升模型的检测精度与鲁棒性。此外,WIoU基于距离度量引入了双层注意力机制,其计算公式如下所示:
(17)
(18)
其中,RWIoU为WIoU的距离度量函数;(Wg,Hg)分别表示最优包围框的长和宽;*表示分离操作,避免出现CIoU损失函数中预测框的长宽无法同时变化的情况,减少对模型训练时的干扰。
4. 实验
4.1. 数据集
在本研究中,我们采用了TrashCan [19]数据集中的TrashCan-Instance版本来对模型进行训练和验证。该数据集由日本海洋地球科学技术机构(JAMSTEC)管理,图像来源于J-ED [20]数据集。TrashCan-Instance数据集共包含7212张图像,其中6065张用于训练,1147张用于验证,涵盖22类目标物体,包括垃圾、ROV (遥控水下机器人)以及多种海洋动植物。数据集中的图像涵盖了各种水下场景,目标物体在不同程度的遮挡、模糊以及复杂的光照条件下均有分布。这些图片捕捉了水下环境中的高度不规则目标形态和复杂背景,主要用于识别水下的垃圾和其他废弃物。为了适应模型的输入需求,我们对图像进行了预处理,并将所有输入图像的大小调整为640 × 640。通过该数据集的训练,能够有效评估模型在不同水下场景下的性能,并确保其在水下目标检测任务中的泛化能力。
4.2. 实验环境及参数设置
实验环境配置如下:显存大小为16 GB,操作系统为Windows 10的64位专业版,深度学习框架使用PyTorch 1.11,CUDA版本为11.4,编程语言为Python 3.8。训练时,输入图片大小统一为640 × 640。实验超参数设置如表1所示。
Table 1. Experimental hyperparameter settings
表1. 实验超参数设置
参数 |
值 |
优化器 |
SGD |
初始学习率 |
0.01 |
权重衰减系数 |
0.0005 |
动量 |
0.937 |
batch_size |
16 |
epoch |
300 |
4.3. 实验评价指标
为了定量分析本文算法在水下目标检测中的性能,本实验采用平均精度(mean Average Precision, mAP)作为评价指标。mAP值为所有目标类别平均精度(AP)值的平均值,而AP则是通过计算精确率(Precision, P)和召回率(Recall, R)之间的PR曲线所围成的面积来得到的。PR曲线下的面积越大,表示模型的检测精度越高。其计算公式如下:
(19)
(20)
(21)
(22)
其中,TP表示真阳性,指模型将正样本正确预测为正样本;FP表示假阳性,指模型将负样本错误预测为正样本;FN表示假阴性,指模型将正样本错误预测为负样本;N为数据集中的类别数。
4.4. 与其他方法的比较
为了证明本文所提模型的优越性,我们采用了控制变量法进行对比实验,将本文模型与当前主流目标检测器在相同的实验环境和相同的数据集上进行了性能比较。在我们的数据集上训练200个epoch后,训练结果显示性能已经趋于稳定。因此,300个epoch足以完成训练过程。表2展示了不同模型在精确率(P)、召回率(R)、mAP以及平均检测时间上的对比结果,其中最佳结果已用粗体标出。
Table 2. Comparison of the detection effect of YOLO-Vortex with other models
表2. YOLO-Vortex与其他模型的检测效果比较
Model |
P (%) |
R (%) |
mAP@.5 |
Average Detection Time (ms) |
YOLOv5 |
73.5 |
65.8 |
66.5 |
12.7 |
YOLOv6 [21] |
73.1 |
66.3 |
66.5 |
21.94 |
YOLOv7 |
76 |
65 |
67.6 |
13.7 |
YOLOv8 |
73.5 |
64.4 |
69.4 |
12.9 |
YOLOv9 [22] |
74.5 |
64.2 |
69.5 |
26.8 |
YOLOv10 [23] |
74.9 |
61.7 |
65.3 |
19.3 |
YOLOv11 |
79.9 |
60.7 |
68.6 |
21.1 |
AMSP-UOD |
76.2 |
61.3 |
70.3 |
36.9 |
Ours |
78 |
65.5 |
71.8 |
25.6 |
对比结果显示,本文提出的模型不仅在检测精度上表现出色,同时也满足了实时检测的速度要求。YOLO-Vortex在精确率(P)、召回率(R)和平均精度(mAP)上分别达到了78%、65.5%和71.8%,显著优于原有算法。特别是在mAP方面,YOLO-Vortex相比原算法提升了4.2%,实现了显著的性能提升。整体来看,YOLO-Vortex在水下目标检测任务中,优于表2中的其他模型,在检测速度与精度之间取得了良好的平衡。
4.5. 不同类别的比较
如表3所示,YOLO-Vortex模型在多个类别上的性能均优于YOLOv7,尤其在平均精度mAP@.5和精确率P方面表现突出。例如,在目标类别“rov”上,YOLO-Vortex的mAP提高了1.6%,精确率P提高了0.8%,召回率R提高了10.3%。对于类别“trash_cup”,YOLO-Vortex的mAP高达0.973,显著优于YOLOv7的0.46,表明改进模型在小目标检测中表现更为卓越。
此外,YOLO-Vortex在平衡精确率与召回率方面具有更强的能力。例如,在类别“trash_branch”上,YOLO-Vortex的mAP达到0.832,高于YOLOv7的0.802。尽管如此,某些类别的精确率P仍有提升空间,例如“animal_crab”的P仅为0.156,但其mAP仍比YOLOv7高出0.088,说明改进模型在复杂背景下的鲁棒性有所增强。
总体而言,YOLO-Vortex凭借对特征噪声的有效抑制和重要特征的强化,在复杂水下场景中的检测能力显著优于YOLOv7。
4.6. 消融实验
为了验证各模块:漩涡聚合网络模块Vortex、STD-MP模块、WioU损失对最终检测性能的影响, 我们在TrashCan数据集上进行了消融实验,结果如表4所示,其中√表示使用该模块。
从表4中可以看出,当基准模型YOLOv7的Elan和Elan-N模块被替换为我们提出的Vortex-Elan和Vortex-Elan-N模块后,mAP从67.6%提升至69.1%,这主要得益于Vortex模块能够在水下噪声环境中更有效地提取目标特征,从而提高检测精度。随后,将MP模块替换为STD-MP模块后,mAP从69.1%进一步提升到71.3%,这是因为STD-MP模块解决了网络在下采样过程中信息丢失的问题,进一步提升了检测效果。最后,引入WIoU损失函数后,mAP提升至71.8%。
Table 3. Comparison of different categories
表3. 不同类别的比较
分类 |
YOLO-Vortex |
YOLOv7 |
P (%) |
R (%) |
mAP@.5 |
P (%) |
R (%) |
mAP@.5 |
rov |
0.914 |
0.96 |
0.943 |
0.906 |
0.857 |
0.927 |
plant |
0.68 |
0.559 |
0.638 |
0.546 |
0.565 |
0.579 |
animal_fish |
0.78 |
0.458 |
0.598 |
0.768 |
0.498 |
0.584 |
animal_starfish |
0.888 |
0.699 |
0.752 |
0.902 |
0.747 |
0.789 |
animal_shells |
0.527 |
0.525 |
0.509 |
0.445 |
0.541 |
0.49 |
animal_crab |
0.156 |
0.429 |
0.327 |
0.17 |
0.413 |
0.239 |
animal_eel |
0.658 |
0.643 |
0.623 |
0.611 |
0.635 |
0.585 |
animal_etc |
0.843 |
0.554 |
0.612 |
0.791 |
0.569 |
0.602 |
trash_clothing |
0.895 |
0.501 |
0.717 |
0.901 |
0.471 |
0.586 |
trash_pipe |
0.859 |
0.905 |
0.891 |
0.913 |
0.929 |
0.92 |
trash_bottle |
0.925 |
0.731 |
0.735 |
0.909 |
0.692 |
0.727 |
trash_bag |
0.78 |
0.646 |
0.71 |
0.772 |
0.657 |
0.694 |
trash_snack_wrapper |
0.873 |
0.412 |
0.421 |
0.915 |
0.412 |
0.421 |
trash_can |
0.988 |
0.853 |
0.92 |
0.948 |
0.849 |
0.897 |
trash_cup |
1 |
0.388 |
0.973 |
0.86 |
0.25 |
0.46 |
trash_container |
0.827 |
0.816 |
0.887 |
0.863 |
0.792 |
0.888 |
trash_unknown_instance |
0.748 |
0.685 |
0.696 |
0.745 |
0.698 |
0.701 |
trash_branch |
0.866 |
0.824 |
0.832 |
0.845 |
0.765 |
0.802 |
trash_wreckage |
0.878 |
1 |
0.978 |
0.892 |
1 |
0.966 |
trash_tarp |
0.625 |
0.484 |
0.516 |
0.672 |
0.548 |
0.559 |
trash_rope |
0.782 |
0.743 |
0.74 |
0.718 |
0.704 |
0.704 |
trash_net |
0.674 |
0.697 |
0.775 |
0.631 |
0.697 |
0.744 |
Table 4. Module ablation experiments
表4. 模块消融实验
YOLOv7 |
√ |
√ |
√ |
√ |
Vortex |
|
√ |
√ |
√ |
STD-MP |
|
|
√ |
√ |
WIoU |
|
|
|
√ |
mAP@.5 |
67.6 |
69.1 |
71.3 |
71.8 |
Average Detection Time (ms) |
13.7 |
24.0 |
22.7 |
25.6 |
4.7. 检测结果对比
为了直观分析本文改进算法的检测效果,选取两组具有代表性的水下图像,针对YOLOv7以及我们改进后的算法YOLO-Vortex进行对比,结果如图7所示。
Figure 7. Comparison of detection results: The first line is an example of a YOLO-Vortex detection result, and the second line is an example of a YOLOv7 detection result
图7. 检测结果比较:第一行为YOLO-Vortex检测结果示例,第二行为YOLOv7检测结果示例
5. 结论
本文提出了一种改进的YOLOv7水下目标检测算法,能够更加准确地检测水下目标。通过改进Elan模块、MP模块以及引入WIoU损失函数,增强了模型在噪声环境下对特征的提取能力。改进后的算法相比原YOLOv7,检测精度提升了4.2%。在未来的工作中,我们将专注于水下图像增强,以获取视觉质量更高的图像,进一步提升检测精度。同时,计划设计适用于水下实时检测的轻量化算法,以减少参数量和计算量,提升检测速度。
NOTES
*通讯作者。