改进YOLOv7的轻量化水下目标检测算法

2024-03-03 11:21辛世澳葛海波杨雨迪
计算机工程与应用 2024年3期
关键词:注意力卷积精度

辛世澳,葛海波,袁 昊,杨雨迪,姚 洋

西安邮电大学 电子工程学院,西安 710121

海洋是地球上最大的资源库,由于土地资源的过度开发和水下设备的快速发展,海洋勘探日益频繁[1]。为了支持这些勘探工作,要求相关水下设备必须执行各种水下任务,如目标定位、生物特征识别、考古等。在此背景下,水下目标检测技术发挥着至关重要的作用。然而,恶劣的海洋环境对人类并不友好,由于水下环境与陆地环境有很大的不同,水下目标检测面临着挑战。

现阶段水下目标检测主要面临两大挑战。首先,水下环境十分复杂,由于不同波长的光在水中的差异衰减以及浮游生物和水中悬浮颗粒对光的散射作用,使水下目标变得模糊,严重影响了目标的特征,给水下目标的特征提取带来了障碍。此外,水下目标通常附着在泥、沙和珊瑚礁上,互相遮挡,很难与背景区分开来,导致检测精度受到影响。其次,水下嵌入式设备的存储和计算能力有限,使得大型检测网络在水下环境中失效,人们正在积极追求配备高效、准确的目标检测算法的水下设备[2]。

近年来,由于深度学习在计算机视觉领域取得了巨大成功,基于卷积神经网络(CNN)的目标检测技术开始广泛应用于水下生物探测。基于深度学习的目标检测方法可以分为两阶段算法和单阶段算法[3]。在两阶段目标检测算法中,首先识别含有目标的候选区域,随后用于对目标进行分类和定位,代表算法有Fast RCNN(fast region-based CNN)[4]和Faster R-CNN(faster region-based CNN)[5]。尽管两阶段目标检测算法具有相对较高的检测精度,但对于水下目标检测来说相当耗时,不适合实时检测任务。与两阶段目标检测方法相比,单阶段算法没有区域建议网络,而是直接在输入图像上生成相应的预测框来检测目标,该类别中的代表性算法包括SSD(single shot multibox detector)[6]和YOLO(you only look once)[7]算法家族。因为直接预测分类和定位,所以单阶段目标检测算法消耗较少,适用于实时检测任务。目前,由于水下硬件设备的限制,水下目标检测任务大多仍以单阶段目标检测算法为主。

在以往基于深度学习的水下目标检测研究中,大多数研究主要集中在利用大型网络来提高检测精度,导致模型参数量多,检测速度慢。Zhang 等人[8]使用Mobile-Netv3作为YOLOv4的骨干特征提取网络来实现虾的检测和计数。Chen等人[9]使用Conv2Former作为YOLOv7网络的Neck组件,使网络能够获得更有价值的特征,并有效地融合它们,结果表明,该算法可以提高检测精度,在模糊和颜色偏差的情况下也表现出很好的鲁棒性。Li等人[10]通过在YOLOv5的Neck结构中嵌入三重注意机制提高了特征提取能力,并优化了检测头以捕获小尺寸物体。文献[11]提出一种改进YOLOv3-SPP的水下目标检测算法,增加了特征图层,引进了CIoU边框回归损失,解决了水下目标容易漏检、误检以及检测精度低一系列问题。尽管这些方案取得了一些成功,但它们没有考虑模型的可移植性,也不支持快速检测。海洋环境下目标检测技术的应用需要更好的实时性和轻量化性能,因此,研究一种检测精度高、模型尺寸小的轻量化水下目标检测算法极有必要。

基于上述背景,本文选择YOLO系列中的YOLOv7[12]模型进行改进,提出了YOLOv7-SDBB 网络模型,旨在提供一种精度与速度兼顾的多尺度轻量化水下目标检测方法,在实现模型轻量化的同时保证检测精度,促进水下目标检测算法的可移植性。本文的主要工作如下:

(1)采用ShuffleNetv2[13]网络的思想改进YOLOv7的骨干网络,大幅降低YOLOv7 模型参数量和计算量,获得更快的检测速度。

(2)将ELAN 和MPConv 模块中的标准卷积(CBS)替换为深度可分离卷积(DSC)[14],有效减少模型的参数量,实现YOLOv7的进一步轻量化。

(3)为了实现更好的特征融合,解决水下目标的漏检误检问题,采用BiFPN[15](bidirectional feature pyramid network)网络结构进行多尺度特征融合,可以有效地处理不同分辨率的图像,以较小的成本融合和增强不同尺度的特征,提高网络对模糊水下图像的整体检测性能,同时缓解因模型参数量减少而造成检测精度下降。

(4)针对采用BiFPN改进特征融合层引起的目标细节特征丢失的问题,将BiFormer动态注意力机制[16]嵌入到改进网络的Neck 层,以较少的计算量捕获更多的特征,更好地保留细节信息,有效地提高了模型对水下模糊目标和小目标的检测精度。

1 相关工作

1.1 YOLOv7模型

YOLOv7 是一种目前较先进的目标检测模型,于2022 年提出,它集成了结构重参数化[17]、正负样本分配策略和带有辅助头部的训练方法[18],实现了检测效率和精度之间的良好平衡。YOLOv7网络由输入(Input)、骨干网络(Backbone)、颈部网络(Neck)和头部网络(Head)四个不同的模块组成,网络结构如图1所示。

YOLOv7 的输入端采用自适应图像放缩和混合数据增强技术,并利用YOLOv5建立的自适应锚框计算方法,保证输入的各种图像缩放到统一大小,从而满足骨干网络对输入大小的要求。

骨干网络主要用于图像的特征提取,由CBS、ELAN和MPConv三部分组成。CBS模块由卷积、批归一化和SiLU激活函数组成,用来提取特征。ELAN模块是一种高效的网络结构,通过引导不同的特征组计算块学习更多样化的特征,保留了原有的梯度路径,增强了网络的学习能力。MPConv 模块是由MaxPool 和CBS 组成的两个分支结构,MaxPool 提取局部区域的最大值信息,CBS 提取局部区域的所有值信息,最后通过拼接操作融合从两个分支提取的特征,提高了网络的特征提取能力。

图像通过骨干网络进行特征提取,然后进入颈部进行特征融合。YOLOv7的颈部引入了SPPCPC空间金字塔池化模块,该模块扩展了感受野,实现了多尺度特征融合。此外,YOLOv5 使用的PAFPN(path aggregation feature pyramid network)结构在YOLOv7 中仍然被沿用,PAFPN架构通过将自下而上的特征提取与自上而下的特征融合相结合,提高了不同尺度上的目标识别能力。Neck层的ELAN-H模块是骨干网络中使用的ELAN模块的扩展,在ELAN模块的一个分支结构中添加了两个输出,用于以后的级联。

YOLOv7 的Head 层采用Rep 结构调整颈部网络输出特征的图像通道数,然后应用1×1 卷积对置信度、类别和锚框进行预测。Rep 结构的灵感来自RepVGG[17],引入了重新参数化卷积结构的思想,允许模型的结构在训练和推理过程中发生变化。

1.2 轻量级网络

近年来,CNN 在计算机视觉任务中表现出广阔的前景,被广泛应用于各种场景中。然而,由于存储空间和计算能力的限制,神经网络模型在移动和嵌入式设备上的应用仍然是一个巨大的挑战。在单图像超分辨率(single image super-resolution,SISR)任务研究中,Bian等人[19]提出了一种轻量有效的多通道聚合网络(MCAN),丰富了多尺度特征,大大降低了网络参数,缓解了模型在实际应用的部署困难问题。在目标检测任务中,通过网络剪枝、蒸馏等操作[20]为移动设备的部署提供了可行方案。以减少模型参数数量和计算复杂度为目标,同时保持精度的轻量级网络已成为水下目标检测领域的研究热点。针对目标检测任务,研究轻量级网络在一定程度上具有较大的实用价值。

1.3 注意力机制

注意力机制(attention mechanism)[21]是一种在计算机视觉和自然语言处理等领域中被广泛应用的技术,它模拟了人类的注意力机制,使网络能够有选择地关注输入中最重要或最相关的信息。在目标追踪任务中,Zhang等人[22]构建了一种新颖的通道和空间注意力引导的跟踪残差学习框架(CSART),利用自注意机制改进特征表示,实现了高性能追踪。在目标检测任务中,由于Swin Transformer的巨大成功,稀疏注意力机制在目标检测领域得到了普及[23]。稀疏注意力是一种注意力机制的变种,它通过引入局部窗口和位置编码机制,限制了每个位置的注意力范围,大大减少了计算量,在图像识别、目标检测和分割等复杂任务上具有更好的可扩展性。

2 改进YOLOv7的水下目标检测算法

尽管YOLOv7是一种先进的目标检测方法,而且在大多数应用场景下已被证明是非常成功的,但是将其直接应用在实际水下探测中仍需要考虑两个问题:首先,水下环境复杂,干扰物体多,水下目标的漏检和误检情况经常发生;其次,由于水下环境的特殊性,往往需要复杂的算法模型来实现高精度目标检测,算法参数量大、计算复杂度高,难以部署在水下移动设备上。针对上述问题,本文基于YOLOv7对骨干网络和特征融合网络进行了重新设计,提出了能够保持检测精度和检测速度均衡的网络结构,改进后网络结构如图2所示。

图2 改进的YOLOv7网络结构Fig.2 Improved YOLOv7 network structure

2.1 基于ShuffleNetv2的骨干网络改进

在YOLOv7 中,骨干网络是基于CSPDarknet53 架构的,这是一种双分支结构,共包含50 层卷积层,具有较强的特征提取能力,但参数量较多,严重影响了检测速度。本文使用ShuffleNetv2 改进YOLOv7 的骨干网络,降低模型参数量和计算量,来获得更优的速度和更低的延迟。具体而言,将骨干网络中的CBS 模块用ShuffleNetv2 模块替换,与传统的CBS 模块相比,ShuffleNetv2 模块通过逐通道组卷积和通道混洗操作,将计算复杂度转移到廉价的操作上,在一定程度上减少了计算资源的需求,特别适合于在资源受限的设备上运行。

ShuffleNetv2是一种适用于移动终端的轻量级网络结构,核心思想是将输入特征图在通道维度进行划分,并使得不同分块之间可以进行信息交流,在速度和准确性之间具有良好的平衡。图3显示了ShuffleNetv2的基本单元。当步长为1 时,ShuffleNetv2 进行通道分割操作,将输入特征图划分为两个分支,左分支不进行任何处理,右分支包含两个普通卷积和一个深度可分离卷积(DWConv)。这两个分支进行Concat操作以融合特征,之后,网络使用通道混洗来重新组织拼接的输出,以确保上述两个分支之间的信息交换。当步长为2 时,ShuffleNetv2 同样将特征图输入划分为两个分支,两个分支都使用DWConv来减少特征图的高度和宽度,从而减少网络的FLOPs。在输出两个分支之后,执行Concat操作以增加网络宽度,进行通道混洗以实现不同信道之间的信息交换。

图3 ShuffleNetv2基本单元Fig.3 Basic unit of ShuffleNetv2

2.2 ELAN和MPConv改进模块

采用ShuffleNetv2 改进骨干网络后,YOLOv7 模型的参数量仍然很多,参数主要集中在1×1和3×3标准卷积上。标准卷积网络计算使用权重矩阵来实现空间维度特征和信道维度特征的联合映射,代价是计算复杂度高、内存开销大、权重系数多。为了进一步降低模型的参数量,提高模型检测效率,设计了D-ELAN、D-ELAN-H和D-MPConv 模块,将ELAN 和MPConv 中的标准卷积替换为深度可分离卷积,使网络在保证原有信息传递的情况下,减少一定的浮点运算量及模型参数,如图4所示。

图4 D-ELAN模块、D-ELAN-H模块和D-MPConv模块Fig.4 D-ELAN module,D-ELAN-H module and D-MPConv module

深度可分离卷积是一种卷积神经网络中常用的卷积操作,将传统的卷积操作分解为两个步骤,首先进行深度卷积,然后进行逐点卷积,这个分解过程可以大幅度减少参数的数量。假设输入特征图尺寸为DK×DK,卷积核尺寸为DF×DF,M为输入通道数,N为输出通道数。对于标准卷积,参数计算量为:

对于深度可分离卷积而言,计算分成两个过程,参数计算量为:

DSC模块的计算量与标准卷积计算量的比率为:

从公式(3)看出,DSC 模块的计算量低于标准卷积的计算量。因此,利用深度可分卷积重建ELAN 和MPConv 模块,可以有效降低模型参数量,提升模型推理速度。

2.3 基于BiFPN的特征融合网络

改进后的YOLOv7 模型的参数量和计算量大幅度下降,能够有效及实时地检测目标物体,但不可避免会损失一定的精度。同时,水下设备在运动过程中,检测物体的大小实时变化,背景干扰较多,存在大量不同尺度的物体需要进行检测,这使得它们容易被遗漏和错误检测。YOLOv7的颈部由特征金字塔网络结构PANet[24]组成,旨在融合输入的不同尺度特征。尽管PANet在特征融合过程中平等对待不同尺度的输入特征,但实际上,不同尺度输入对最终输出的贡献是不同的,由于水下多尺度目标较多,导致原始模型检测精度较低。基于此,为了实现更高水平的特征融合,加强多尺度目标特征的融合和传递,引入加权双向特征金字塔结构(BiFPN)改进原来的特征融合网络。改进后网络的融合可以适应不同的输入特征,挖掘水下目标的深层信息,减少因水下环境复杂造成的漏检和误检,提高模型的检测精度。

与PANet相比,BiFPN网络在处理路径中加强了更高层次的特征融合,将每个双向路径(自上而下和自下而上)处理为一个特征网络层,并在同一层中多次重复这一过程。此外,由于不同的输入特征具有不同的分辨率,BiFPN 引入了训练权重,将额外的权重添加到每个输入,以调整不同输入对输出特征图的贡献,实现特征层的深度融合[25]。同时,BiFPN在同一层中的原始输入和输出节点之间添加了一个额外的特征分支,这不会过多地增加计算成本,并且还可以允许集成更多的特征。BiFPN 和PANet 的网络结构如图5 所示,在BiFPN 结构图中,图中的P3~P7 代表了不同级别的融合特征,蓝色部分是自上而下的路径,传达语义高级特征的信息;红色部分是自下而上的路径,传达低级特征的位置信息;紫色部分是输入点和输出点位于同一层时的附加路径,以融合更多功能。

图5 PANet结构和BiFPN结构Fig.5 PANet structure and BiFPN structure

BiFPN的基本思想是添加了跨尺度连接,在牺牲小幅检测速度的前提下使模型能够更好地对不同大小的特征进行融合。本文借鉴BiFPN的思想,在特征融合部分添加了1 条跨尺度连接线,实现了跨层连接,提升了模型的检测性能。

2.4 融合BiFormer注意力机制

BiFPN的引入通过改善特征融合来提高检测精度,但在实践中,特征融合不是完美的,融合后的特征会丢失一些重要的细节信息,影响检测精度[26]。注意力机制的引入可以有效改善这一问题,注意力机制通过计算特征之间的相似性或相关性,并给予不同特征适当的权重,使改进后网络保留具有关键信息的特征。同时,注意力机制与特征融合网络的融合也可以改善水下生物由于容易堆积,互相遮挡而造成的漏检和误检。本文选择将BiFormer注意力机制添加到改进的特征融合部分,该注意力机制根据输入图像的特征自适应地调整注意力权重,从而可以给予不同位置或特征不同级别的注意力,以引导网络在不同尺度上更多地关注与水下目标相关的特征信息,同时保持了轻量级,不会给模型带来显著的计算负担。

BiFormer 是Transforme[27]模型的一个变体,它在原始Transformer 模型中引入了动态注意机制,通过双层路由实现更灵活的内容感知计算分配,使模型具有动态查询感知的稀疏性。BiFormer 动态注意机制的结构图如图6所示,BiFormer的过程可以分为三个步骤:首先,输入一个特征图,将其划分为几个区域,通过线性映射获得查询、键和值张量。其次,利用邻接矩阵构造有向图,找到对应的参与关系不同的键值对。最后,使用从一个区域到另一个区域的路由索引矩阵,应用细粒度的令牌到令牌关注。BiFormer 动态注意力机制通过在第一个k相关窗口中收集键值对并使用稀疏性操作直接跳过最不相关区域的计算来节省参数和计算,由于该模块基于稀疏采样而非下采样,它可以更好地保留细粒度的细节[16]。

图6 BiFormer模块Fig.6 BiFormer module

在采用BiFPN 改进的网络中,体型相似、互相遮挡的水下生物的信息部分丢失,影响了特征信息融合,从而导致部分目标被遗漏。通过添加BiFormer 动态注意机制,减弱了背景干扰,在保持高效检测前提下,捕获更多的特征,提高了检测精度。

Q、K、V是为了在粗糙区域级别上获得最相关的键值对,以便只保留一小部分路由区域,然后在这些路由区域的联合中应用细粒度令牌对令牌关注(Kg,Vg)。

其中,Kg、Vg为收集到的键值张量,Ir表示第i行包含第i个区域的前K个最相关区域的索引,K表示在前K个相关窗口中收集键值对。

3 实验设计与结果分析

3.1 实验细节

3.1.1 实验环境与参数设置

硬件环境采用RTX 3090 显卡,8 GB 显存,处理器为Intel®Core™i9-12700KF@3.61 GHz。软件环境为Windows 11 操作系统,开发环境为PyTorch 1.12.0,CUDA 11.6,Python 版本为3.9.0。训练时采用SGD 优化器对模型进行优化,动量设置为0.937,迭代批次为16,初始学习率设为0.01,权重衰减设为0.000 5,输入图像分辨率为640×640,共训练300个周期。

3.1.2 数据集

实验数据集为2020 年全国水下机器人专业比赛(URPC)数据集,包含四种不同海洋生物的水下光学图像,如图7所示,分别是海参“holothurian”、扇贝“scallop”、海胆“echinus”和海星“starfish”。在数据集中有较少的海草样本,为避免训练数据可能不足以捕捉到该类别的多样性和复杂性从而影响检测精度的情况,本文对数据集进行处理,将海草相关样本从数据集中剔除,仅保留6 450张有效图像。所有样本图像按照PASAL VOC2007样本集的格式进行处理和存储,为了保持数据分布的一致性,将数据集随机分为训练集和测试集,比例为7∶3。训练集包含4 515张图像,测试集包含1 935张图像。

图7 URPC2020数据集Fig.7 URPC2020 dataset

3.1.3 模型评价指标

本文从检测精度和精测速度两方面出发使用精确率(precision,P)、召回率(recall,R)、平均精度(average precision,AP)、平均精度均值(mean average precision,mAP)、帧率(FPS)、浮点运算次数(GFLOPs)和参数量(params)七个指标来准确客观地评价模型的性能。mAP表示所有类别的平均AP,其值越大表示模型越好,识别目标的精度越高,计算公式如式(6)所示。AP 是PR曲线下面积的标量表示,线下面积越大,表示识别精度越好,计算公式如式(7)所示。精确率和召回率评价指标公式如式(8)、(9)所示。

其中,TP表示模型正确预测的正样本数,FP表示模型预测的实际上是负样本的正样本数。FN表示模型预测的阳性样本数为负。r表示该类的召回率,c表示所有类的数量,AP(i)表示第i类的平均精度。

FPS表示模型每秒处理的帧数,反映了模型推理的速度,该值越大,说明模型的推理速度越快,模型性能越好。FLOPs是浮点运算量,衡量模型的复杂度。Params是模型中参数的总和,用于评估模型的大小。

3.2 实验结果分析

3.2.1 实验结果

为验证本文改进算法的有效性,保证各项参数指标不变的情况下,在URPC2020 数据集上分别对原YOLOv7算法和改进后算法进行训练,以显示改进算法的性能,训练结果分别如图8所示。

图8 改进前后模型训练结果对比Fig.8 Comparison of training results before and after algorithm improvement

经图8中数据比较可以看出,改进后的YOLOv7算法对各个目标类别的检测效率都有所提高,mAP 值由83.2%提高到85.9%,提升2.7 个百分点。其中海参AP值从74.9%升至77.9%,提升3 个百分点;海胆AP 值从90.8%增长到91.8%,提升1 个百分点;扇贝AP 值从78.5%增长到84.0%,提升5.5个百分点;海星AP值提升至89.9%,增长了1.3个百分点。

引入混淆矩阵来评估模型的检测情况,混淆矩阵的每一列表示每个类别的预测比例,每一行表示各自类别在数据中的真实比例,如图9所示。对图9进行分析,四类目标都得到了正确的预测,预测类别“海参”“海胆”“扇贝”和“海星”的准确率分别为78%、92%、81%和88%,表明该模型具有较高的检测准确率。

图9 YOLOv7-SDBB混淆矩阵Fig.9 Confusion matrix of YOLOv7-SDBB

为了进一步验证YOLOv7-SDBB 模型在水下目标检测中的性能,选取FPS、FLOPs 和Params 指标比较YOLOv7 和改进模型,结果如表1 所示。由表1 可知,YOLOv7算法的FPS值为65.9,参数量为3.65×107,点运算量为105.1 GFLOPs,说明YOLOv7 算法对多类别水下目标检测参数量和计算量保持较好,但检测速度有待提高;相较于YOLOv7 算法,改进模型参数量和计算量得到了优化,分别减少了2.03×107和41.7 GFLOPs,FPS值提升至100.9,推理速度显著提升。以上可以得出,改进后算法对于水下目标检测具有更为可观的检测效率,保证了精度与速度的有效平衡,是一种不错的轻量网络设计方案,在边缘终端设备部署上有较高应用价值。

表1 检测速度对比Table 1 Comparison of detection speeds

3.2.2 融合注意力机制比较

为了进一步探究注意力机制改进的有效性,对添加的注意力机制进行消融实验,包括BiFormer、SE[28]、ECA[29]、CA[30]、CBAM[31]和ACMix注意力机制[32],对比分析不同注意力机制给模型检测效果带来的影响,训练过程中采用相同参数,在URPC2020 数据集上进行实验,结果如表2所示。

表2 注意力机制消融实验结果Table 2 Results of attention mechanism ablation experiments

SE 是一种典型的通道注意力机制的实现方法,它专注于获得输入特征层在通道上的增强权重,而忽略了目标空间位置的权重信息。ECA 也是通道注意力机制的一种实现形式,通过获得跨通道信息来获得每个特征层的增强权重。尽管它具有更好的跨通道信息,但忽略了目标的空间信息。CA注意力机制将位置信息嵌入到通道注意力中,将通道注意力分解为两个特征编码过程,分别对两个空间方向的特征进行聚合,得到融合通道信息和空间信息的权重。CBAM 结合了信道注意机制和空间注意机制,分别处理信道权重和空间权重,既关注信道信息,又关注空间信息。ACmix注意力模块由卷积注意力和自注意力两个模块并行构建,两个分支的输出在合并之后,全局特征与局部特征得到了平衡的考虑,增强了网络对微小目标的识别能力。

实验数据表明,与YOLOv7 相比,分别添加SE、ECA 和CA 注意力机制的模型检测准确率下降了4.7、0.6 和0.3 个百分点,模型的参数量小幅增加,检测速度也有下降,表明这三种注意力机制在该数据集上表现较差。YOLOv7-BF为引入BiFPN后的网络,与之相比,在YOLOv7-BF 上添加CBAM 和ACMix 注意力机制的模型准确率分别提高了0.2和0.4个百分点,但检测速度下降过多,模型计算量与参数量显著增加。相较于原始模型,添加Biformer 注意力机制的模型mAP 值提升了1.2个百分点,检测精度明显提升,同时模型计算量下降了5.9 GFLOPs。模型参数量增加了4.0×106,但对模型整体复杂度几乎无影响。在YOLOv7-BF 的Neck 层融入BiFormer,检测精度比添加CBAM 和ACMix 注意力的模型提升更多,参数量和计算量也远小于二者,更能满足应水下移动设备对轻量化的要求。这表明BiFormer注意力机制在一定程度上压缩了模型的计算量,同时使网络更好地提取目标区域的细节特征,解决了BiFPN造成的细节特征丢失和水下目标的误检漏检问题,提升了检测精度。总之,BiFormer的嵌入不仅可以提升模型的检测速度,实现较轻量的模型,也可以有效提升模型的检测精度。

3.2.3 消融实验

为了评估改进模块的具体性能,使用YOLOv7作为基准模型,在URPC2020数据集上通过添加不同的模块来验证模型的性能,为了公平比较,环境及参数设置均保持统一。实验结果如表3所示。

表3 消融实验结果对比Table 3 Comparison of ablation experimental results

Exp.1为原始YOLOv7算法的实验结果,作为后9组实验的对比基准,检测精度为83.2%,FPS为65.9,参数量为3.65×107,GFLOPs 为105.1。Exp.2 使用ShuffleNetv2模块替换主干中的CBS模块后,模型参数、GFLOPs和检测mAP 值分别降低了1.2×107、17.6 和0.8 个百分点,检测速度增加了11.7。说明ShuffleNet v2网络的引入,可以减少一定的参数量和计算量,提升检测速度,但牺牲了一部分精度。Exp.3 将网络中的ELAN、ELAN-H 和MPconv 替换为D-ELAN、D-ELAN-H、D-MPConv,由于引入了深度可分离卷积,计算量为原模型的72.02%,模型参数量仅为原模型的61.3%,均大幅度下降。同时,由于参数量和计算量的下降,推理速度也有一定提高,FPS提升了25.2。对比Exp.1和Exp.4的数据,模型的平均检测精度提高了1.9 个百分点,表明用加权双向特征金字塔网络改进网络的特征融合层,可以在不同的层级上融合多尺度的特征信息,从而更好地捕捉目标在不同尺度上的表现,减少误检漏检,使模型的整体性能更加优越。Exp.5在Neck层引入了BiFormer注意力机制,允许更灵活地计算分配,以较少的计算量捕获更多的特征,检测速度小幅提升;检测精度提高了1.2 个百分点,改进的网络可以更早地关注图像中的水下生物信息,过滤掉背景信息,使生成的特征图信息更加丰富,提高了模型的表示能力。Exp.6 在同时引入DSC 和Shuffle-Netv2模块后,在模型参数量、计算量和检测速度方面均表现最佳,但平均精度均值会有下降,仅为82.2%。Exp.7在使用BiFPN改进的Neck层嵌入BiFormer模块,通过两者的共同作用,模型更加关注检测目标的特征信息,减少细节信息丢失,最大限度利用特征信息,使模型的整体精度显著提高,相比原模型增长了2.5 个百分点。Exp.10 为本文改进算法,相比于Exp.8 和Exp.9 的数据,将四个模块融合在一个网络后,参数量和计算量虽小幅增加但检测精度提升至85.9%。与YOLOv7 相比,FPS升至100.9且模型的参数量和计算量显著减少,表明虽然通过引入深度可分离卷积和ShuffleNetv2网络提高检测速度会导致检测精度下降,但是通过BiFPN和BiFormer注意力机制改进特征融合部分,可以将检测精度恢复至改进前甚至进一步提高。综上所述,本文提出的YOLOv7-SDBB 网络,在提升平均检测精度的同时,提高了模型计算速度,减少耗时,提高了检测实时性,有效地平衡了精度和轻量化,为部署在水下终端设备提供了可行性。

3.3 不同模型性能对比

YOLO-SDBB 算法在复杂的水下场景中具有良好的检测能力和更快的检测速度,为了进一步验证提出模型的性能,将本文算法与Faster-RCNN、SSD、YOLOv5s[33]、FCOS[34]、YOLOX[35]、Underwater-YCC[9]等几种水下目标检测主流算法进行对比,在同一数据集上,采用相同的训练方法进行网络模型训练,对比结果如表4所示。

表4 不同目标检测算法结果Table 4 Results of different target detection algorithms

从表4 可以看出,SSD、Faster-RCNN 的检测精度相对较低,这是因为SSD在检测过程中需要在多个尺度上单独预测物体的位置和类别,这可能导致一些目标被遗漏或错误分类,而在Faster RCNN 中,候选框的尺度受到限制,很难检测具有不同尺度和长宽比的目标。与单阶段的全卷积、无锚框检测器FCOS 相比较,YOLOv7-SDBB 的平均检测精度高出13.5 个百分点,FPS 提升至100.9,具有良好的精度与效率。YOLOv5s 和YOLOv7-tiny是工业上应用最广泛的单阶段目标检测算法,和二者相比,虽然YOLOv7-SDBB模型的参数量和计算量都较高,但是100.9的检测速度仍能满足实时检测的要求,同时模型检测的准确率远高于二者。同样的,与取消锚框的轻量级模型YOLOX 相比,YOLOv7-SDBB 的mAP值提高了6.7 个百分点,虽然模型参数量和计算量增加了,但保证了不错的检测速度,取得了检测精度和检测速度之间的平衡。此外,本文改进的算法在检测速度和检测精度方面均优于原始网络YOLOv7。文献[11]和Underwater-YCC[9]算法目前在水下目标检测场景表现出较大优势,检测精度较高但检测速度过低,实时性太差,不适合部署在水下设备。本文算法检测速度远高于二者且检测精度也有小幅提升,体现了本算法具有更好的性能,展现了在水下目标检测的优势。

为了更好地观察和比较YOLOv7-SDBB 算法的检测效果,选取了部分测试集图像进行测试,各算法检测结果如图10 所示,图中用红框标记了一部分漏检误检和检测精度较低目标物体。从检测效果来看,在图像模糊和目标过多的情况下,文献[11]算法的检测效果明显优于前7 种算法,与Underwater-YCC 的检测效果相当,但检测到的目标准确率普遍低于Underwater-YCC,也存在目标误判和漏检的情况。然而,当环境过于复杂时,Underwater-YCC 算法仍然存在错误检测和遗漏检测的问题,其中一些目标被Underwater-YCC 算法认为是背景,因为它们的目标特征不明显,也有目标相互遮挡的情况。然而,本文算法在这种情况下对目标具有更好的识别效果,对遮挡物体具有更好的检测能力,这是因为BiFormer 动态注意力机制和加权双向特征金字塔网络BiFPN的融合减少了特征融合过程中的信息损失,在一定程度上解决了水下场景中目标重叠和背景复杂给水下目标检测带来的困难。YOLOv7-SDBB 算法和Underwater-YCC算法相比,具有更少的误判和识别,检测精度更高,能够有效解决目标重叠、误检漏检等问题。综上所示,与其他主流算法相比,YOLOv7-SDBB 算法实现了最高的检测精度,同时保持了中等水平的检测和推理速度,在水下目标检测方面具有更好的性能,并在一定程度上解决了水下复杂环境下获取图像时存在图像模糊、背景复杂等现象导致的模型特征提取困难、目标漏检等问题。

图10 不同算法检测结果Fig.10 Detection results of different algorithms

4 结束语

目前水下目标检测算法的改进主要在于提高检测精度,导致模型参数量多,实时性差,难以部署在水下移动设备或嵌入式设备。为此,提出了一种兼顾精度和速度的轻量化水下目标检测算法。首先,采用轻量级网络ShuffleNetv2 改进YOLOv7 的骨干,减少模型参数量和计算量。其次,结合深度可分离卷积提出D-ELAN和D-MPConv 模块,进一步实现网络轻量化。最后,针对水下环境的复杂性,结合动态注意力机制BiFormer和加权双向特征金字塔网络BiFPN 改进网络的特征融合部分,增强不同层次的特征融合,减少目标信息丢失,一定程度上解决了水下场景中目标重叠和背景复杂给水下目标探测带来的困难。实验结果表明,所提出的YOLOv7-SDBB 的mAP 提高至85.9%,处理速度达到100.9 FPS,这表明本文方法在精度和速度方面有一定的优势,实现了水下目标检测速度和精度的良好平衡,在复杂水下环境下的性能优于目前最先进的目标检测模型。

本文提出的YOLOv7-SDBB 网络为解决水下生物探测研究中的困难提供了一种新的思路,实现了水下目标探测研究的高精度和实时性。然而,整个网络结构仍有很大的改进空间,水下目标检测技术的实时性和轻量化方面还有待进一步研究。在未来的工作中,将继续深入研究轻量化和加速方法在水下目标检测中的应用。

猜你喜欢
注意力卷积精度
让注意力“飞”回来
基于3D-Winograd的快速卷积算法设计及FPGA实现
从滤波器理解卷积
基于DSPIC33F微处理器的采集精度的提高
基于傅里叶域卷积表示的目标跟踪算法
“扬眼”APP:让注意力“变现”
A Beautiful Way Of Looking At Things
GPS/GLONASS/BDS组合PPP精度分析
改进的Goldschmidt双精度浮点除法器
一种基于卷积神经网络的性别识别方法