一、本文介绍
本文记录的是利用Mamba-YOLO
优化YOLOv11
的目标检测网络模型。Mamba-YOLO
模型是一种基于状态空间模型(SSM)的目标检测模型,旨在解决传统目标检测模型在处理复杂场景和长距离依赖关系时的局限性,是目前最新的发文热点。本文分成三个章节分别介绍Mamba-YOLO
模型结构中各个模块的设计结构和优势,本章讲解ODSSBlock模块
,并在文末配置Mamba-YOLOv11-B
网络结构。
专栏目录:YOLOv11改进目录一览 | 涉及卷积层、轻量化、注意力、损失函数、Backbone、SPPF、Neck、检测头等全方位改进
专栏地址:YOLOv11改进专栏——以发表论文的角度,快速准确的找到有效涨点的创新点!
Mamba YOLO:SSMs-Based YOLO For Object Detection
二、ODSSBlock 模块介绍
ODSSBlock
(Object Detection State Space Block)是Mamba - YOLO模型
中的核心模块,对于提升模型的目标检测能力起着关键作用。它主要负责对输入特征进行深度处理,以学习更丰富和有效的特征表示,从而提高模型对目标物体的检测精度。
2.1 设计结构
输入预处理:输入特征首先经过$1×1$卷积、批归一化和激活函数进行预处理。这一步骤有助于调整特征的维度、分布,并引入非线性激活,使网络能够学习到更复杂的特征关系。公式表示为:$$Z^{l - 2}=\hat{\Phi}(BN(Conv_{1×1}(Z^{l - 3})))$$其中$\hat{\Phi}$表示SiLU激活函数。
Layer Normalization与Residual Linking:借鉴Transformer Blocks的风格架构,采用
Layer Normalization
对特征进行归一化处理,以加速模型的训练和收敛。同时,引入残差连接(Residual Linking)
,使得模型在深度堆叠时能够保持信息的有效流动,避免梯度消失或爆炸问题,确保网络能够高效地学习深层次的特征表示。计算过程为:$$Z^{l - 1}=SS2D(LN(LS(Z^{l - 2})))+Z^{l - 2}$$SS2D操作:
SS2D
(2D - Selective - Scan)是ODSSBlock
中的重要操作,它主要包括扫描扩展(Scan Expansion)、S6块处理(S6 Block)和扫描合并(Scan Merge)三个步骤(如图所示)。- 扫描扩展:将输入图像扩展为一系列子图像,从对角线视角看,沿着四个对称方向(自上而下、自下而上、从左到右、从右到左)进行扫描,每个方向的扫描结果形成一个序列。这样的布局全面覆盖输入图像的所有区域,为后续特征提取提供丰富的多维信息基础,增强了图像特征多维捕获的效率和全面性。
- S6块处理:对扫描扩展得到的子图像进行特征提取操作,是
SS2D算法
中对图像子块进行特征提取的关键步骤。 - 扫描合并:将来自不同方向的经过
S6块
处理后的序列作为输入,将这些子图像序列合并在一起,形成与输入图像大小相同的输出图像,从而将不同方向提取的特征融合起来,实现从局部特征到全局特征的提取。
- LocalSpatial Block(LS Block):
LS Block
主要用于增强对局部特征的捕获能力。它对输入特征先进行深度可分离卷积
,以提取局部空间信息,降低计算成本和参数数量。接着通过$1×1$卷积
混合通道信息,使用非线性GELU激活函数
改变特征的通道数量而不改变空间维度,增强特征表示。最后将原始输入与处理后的特征通过残差连接
融合。公式为:$$F^{l}=Conv_{1×1}(\Phi(Conv_{1×1}(F^{l - 1})))\oplus F^{l - 2}$$其中$F^{l}$是输出特征,$\Phi$表示激活函数(GELU)。
ResGated Block(RG Block):
RG Block
旨在以较低的计算成本提高模型性能,通过引入门控机制和深度卷积残差连接,能够有效地捕捉像素级别的局部依赖关系,同时将全局依赖关系和特征传递到每个像素,使模型对图像中的细粒度特征更加敏感,增强模型的表达能力。它从输入创建两个分支,在每个分支上以$1×1$卷积实现全连接层操作。一个分支使用
深度可分离卷积
(DW - Conv)作为位置编码模块,并通过残差连接
回流梯度。采用非线性GeLU
作为激活函数,两个分支通过元素乘法合并,然后通过$1×1$卷积融合通道信息,最后与原始输入通过残差连接相加。输出特征$X^{l}$的计算公式为:$$X^{l}=Conv_{1×1}(X_{1}^{l - 1}\odot\Phi(DWConv_{3×3}(X_{2}^{l - 1})\oplus X_{2}^{l - 1}))\oplus X^{l - 2}$$其中$\odot$表示元素乘法,$\Phi$表示激活函数(GeLU)。
- 最终输出:经过上述一系列处理后,
ODSSBlock
通过残差连接
将处理后的特征与原始输入相加,得到最终的输出特征,公式为:$$Z^{l}=RG(LN(Z^{l - 1})) + Z^{l - 1}$$
2.2 优势
- 高效的特征处理:
ODSSBlock
通过一系列精心设计的操作,包括输入预处理
、Layer Normalization
、残差连接
、SS2D操作
以及LS Block
和RG Block
的协同工作,能够高效地处理输入特征。在保持深度堆叠的情况下,确保网络能够稳定训练,同时有效提取图像的局部和全局特征,为目标检测提供丰富的特征信息。 - 增强的局部特征捕获:
LS Block
通过深度可分离卷积和残差连接,在降低计算成本的同时增强了对局部空间信息的提取能力,提高了模型对不同尺度目标的检测能力,增强了模型对尺度变化的鲁棒性。 - 全局特征整合与表达:
RG Block
在捕获像素级别的局部依赖关系的同时,有效地整合了全局特征信息,增强了模型的表达能力,有助于提高模型对目标物体的定位和识别准确性。 - 多方向特征融合:
SS2D操作
这种多方向的特征融合方式使得模型能够更全面地理解图像中的目标物体及其上下文关系,提高了模型在复杂场景下的检测性能。
论文:https://arxiv.org/pdf/2406.05835
源码:https://github.com/HZAI-ZJNU/Mamba-YOLO
三、实现代码及YOLOv11修改步骤
模块完整介绍、个人总结、实现代码、模块改进、二次创新以及各模型添加步骤参考如下地址: