Mamba-YOLO:Mamba 主干网络适合处理更复杂的数据和场景 + Apache-2.0 开源可商用
提出背景
论文:Mamba YOLO: SSMs-Based YOLO For Object Detection
代码:https://github.com/HZAI-ZJNU/Mamba-YOLO
根据两个图的数据,可以得出总体性能排名如下(由高到低):
- Mamba YOLO-L
- Mamba YOLO-B
- Mamba YOLO-T
- YOLOv8
- YOLOv6
- YOLOX
- Gold YOLO
- PPYOLO
- YOLOv5
Mamba YOLO系列总体表现最优,尤其是L型和B型,表现出明显的领先优势。
其他系列如YOLOv6和YOLOv8也表现出竞争力,但整体上Mamba YOLO系列更胜一筹。
- 技术背景与动机:
- 深度学习尤其是在计算机视觉领域已取得显著进展,YOLO系列作为实时目标检测的里程碑,不断融入新技术以增强模型性能。
- 尽管引入Transformer结构增强了模型的全局建模能力,但其高计算复杂度仍是一个挑战。
- 最新的研究探索使用SSM来解决长距离依赖问题,并通过其线性时间复杂度优势减轻计算负担。
- Mamba-YOLO的创新:
- 引入了状态空间模型(SSM),有效减轻了自注意力机制的二次复杂性带来的计算负担。
- Mamba-YOLO不仅优化了SSM的基础,还针对目标检测任务进行了特定的适配。
- 设计了LSBlock和RGBlock模块,这些模块可以更精确地捕捉图像的局部依赖性,显著增强了模型的鲁棒性。
ODSSBlock:用于目标检测的SSM结构,针对具有更大像素的图像输入。
LSBlock:专为处理图像通道特征设计,改善SSM在通道表达能力上的不足。
RGBlock:在SSM的输出后进一步解码,使用点乘的高维表达来提高通道间的相关性。
Mamba YOLO 的架构图
- 左侧部分(ODMamba Backbone):展示了模型的主干网络,包括“Simple Stem”和多个ODSSBlock模块,以及“Vision Clue Merge”模块,这些模块用于处理输入图像并逐步提取和合并特征。
- 中间部分(PAFPN):展示了特征金字塔网络的配置,包括多个ODSSBlock模块,结合上采样(U)和下采样(C)操作以及卷积层,用于融合和细化不同尺度的特征。
- 右侧部分(Head):展示了目标检测头部的结构,其中包括用于小、中、大尺寸目标检测的不同层。
1. ODMamba Backbone
- 任务:检测城市街道视频中的车辆和行人。
- 输入:一段视频帧,显示街道上的多个车辆和行人。
- 处理过程:
- Simple Stem:首先,输入的视频帧通过Simple Stem模块进行预处理。这一步包括使用带有较大步长的卷积层来减少图像的空间尺寸,从而减轻后续处理的计算负担,同时初步提取图像特征。
- ODSSBlocks:接下来,处理后的特征图通过一系列ODSSBlock进行深层特征提取。这些模块利用状态空间模型技术,能够有效地捕获不同层次的特征,并处理图像中的时间动态信息,对于移动的车辆和行人尤其重要。
- Vision Clue Merge:此后,Vision Clue Merge模块将这些特征进行进一步的融合和优化,确保从不同层次提取的特征能够有效结合,增强对小目标(如远处行人)和大目标(如近处车辆)的检测能力。
作用:ODMamba Backbone是模型的主干网络,负责处理输入图像并提取初步的特征。它是特征提取的基础部分,用于生成足够的信息供后续模块进一步处理。
作用:Simple Stem是ODMamba Backbone的一部分,通常包含几个卷积层,用于对输入图像进行初步的处理,如缩放和基本特征提取。这一模块帮助减少输入数据的维度,从而为后续的更深层次特征提取减轻负担。
作用:ODSSBlocks(Optimized Deep State Space Blocks)是一系列高级特征提取块,使用状态空间模型来捕获和处理图像特征。这些块设计用来深入提取图像中的复杂特征,包括但不限于形状、纹理和动态变化,有助于模型在后续步骤中更好地执行分类和定位。
2. PAFPN(Pyramid Attention Feature Pyramid Network)
- 细化过程:
- 特征金字塔网络通过ODSSBlock提供的特征进行多尺度处理。在这一阶段,特征图通过结合上采样(U)和下采样(C)操作,以及额外的卷积处理,实现特征的空间分辨率调整和细化。
- 通过这样的配置,模型能够同时处理高分辨率的大尺度特征和低分辨率的小尺度特征,对于同时出现在画面中的大小不一的车辆和行人,可以更准确地识别和分类。
作用:PAFPN(Pyramid Attention Feature Pyramid Network)是一个特征金字塔网络,主要用于融合和细化来自不同尺度的特征。它通过上采样和下采样结合额外的卷积层,增强模型对于各种尺度物体的检测能力,尤其是在多尺度目标检测任务中非常有效。
3. Head(检测头部)
- 最终检测:
- 经过PAFPN处理后的特征图送入检测头部。这里,模型根据特征图的不同尺寸设置了三种不同的检测层,分别负责小、中、大尺寸的目标检测。
- 每个检测层都使用特定配置的卷积层来确定目标的精确位置、大小和类别。例如,大尺寸层能够识别靠近摄像机的大车辆,小尺寸层则能够检测到远处的小行人。
作用:Head是模型的最后部分,负责最终的目标检测任务。这包括使用特定的卷积层来预测每个对象的边界框位置、大小和类别。通常,Head会设置不同尺度的检测层,以处理从小到大的各种对象,确保模型可以广泛地适应不同的目标尺寸和场景。
核心组件
在Mamba YOLO的架构中,核心组件如SS2D结构、ODSSBlock、Local Spatial Block (LS Block)、和Residual Gated Block (RG Block)与高级组成部分如ODMamba Backbone、Simple Stem、ODSSBlocks、Vision Clue Merge、PAFPN和Head之间存在直接的层级和功能关系。这些核心组件和高级组件共同构成了Mamba YOLO的复杂架构,每个部分都专注于完成特定的功能,以实现高效和精确的目标检测。
(a) SS2D结构
- 作用:SS2D结构通过线性层、层归一化、扫描操作、激活函数和深度可分离卷积处理和转换输入特征,为更高级的特征提取打下基础。
- 类比:SS2D结构可以类比为一个精密的预处理厨房机器,它负责初步处理原料(输入特征),通过不同的操作(如切割、搅拌等,对应线性层、层归一化、扫描操作等)预备好食材,为后续的烹饪步骤做准备。
(b) ODSSBlock架构
- 作用:ODSSBlock利用SS2D块和LS块综合处理图像特征,并通过残差连接实现特征的连贯和增强,确保信息在模型深层中的有效传递和利用。
- 类比:ODSSBlock可以类比为一个多功能食品加工中心,它综合使用多种厨房设备(SS2D块和LS块)来混合、增强和优化食材,通过一个连贯的过程(残差连接)确保最终的食物口味和质感的一致性和提升。
© Local Spatial Block (LS Block)
- 作用:LS Block通过深度可分离卷积专注于精确提取局部特征,并通过批量归一化和激活函数进一步优化这些特征,增强模型对细节的捕捉能力。
- LS Block可以比作是一个细致的装饰师,专注于用小刀工(深度可分离卷积)精确雕刻细节,比如雕花或细切,然后通过调味(批量归一化和激活函数)来增强食物的风味和外观。
(d) Residual Gated Block (RG Block)
- 作用:RG Block结合传统卷积和深度可分离卷积,并使用残差门控技术来精细调整和增强特征,优化特征的表达并提高模型的学习效率和性能。
- RG Block可以被视为一个高级调味师,他使用高级调料和烹饪技巧(卷积和深度可分离卷积)来完善菜肴,使用特殊技术(残差门控技术)来调整菜肴的味道,确保每一份菜肴都达到最优味觉平衡和口感。
1. SS2D结构
- 关系:SS2D结构是ODSSBlock的一部分,用于在ODSSBlocks中处理和提取特征。
SS2D模块通过其线性层、层归一化、扫描操作等,负责初步的特征转换和增强,这些特征随后在ODSSBlocks中进一步处理。
2. ODSSBlock
- 关系:ODSSBlock是ODMamba Backbone中的主要组成部分,它包括多个SS2D模块和LS模块,这些模块共同工作以深入提取和处理图像特征。
ODSSBlocks构成了主干网络的核心,负责深层次的特征提取。
3. Local Spatial Block (LS Block)
- 关系:LS Block是ODSSBlock中的一个组成部分,用于局部特征的处理和优化。
在ODSSBlocks中,LS Block通过深度可分离卷积和批量归一化处理具体的局部空间特征,帮助模型更好地理解图像的细节。
4. Residual Gated Block (RG Block)
- 关系:RG Block同样是ODSSBlock的一部分,它使用残差连接和门控机制来进一步细化和增强由SS2D和LS Block提取的特征。
这一块的设计使得特征流在模型中更加稳定和有效。
Mamba-YOLO vs YOLOX 技术对比
-
算法架构:
- Mamba-YOLO 引入了状态空间模型(SSM)来优化长距离依赖的处理,降低了自注意力机制中的计算复杂度。这种方法通过线性时间复杂度处理,使得模型可以更高效地处理大规模数据。
- YOLOX 则采用了Anchor-free设计,简化了之前YOLO系列中使用的锚点框架,通过这种方式减少了模型训练和推理过程中的计算量,提升了运行效率。
-
核心技术:
- Mamba-YOLO 的核心在于其使用的SSM,它通过将时间序列建模的方法应用于视觉特征,允许模型捕捉时间上的依赖关系,这在处理视频流数据时尤为重要。
- YOLOX 则重点利用了简化的网络结构和改进的训练技术,如使用CIOU loss和采用了更强大的数据增强策略,如mosaic augmentation,这提高了模型在各种尺度和环境下的鲁棒性。
-
计算效率:
- Mamba-YOLO 通过SSM减少了因注意力机制带来的高计算成本,尤其是在模型需要处理的特征数量非常多的情况下,这种设计显著提升了处理速度和效率。
- YOLOX 通过去除锚点系统,减少了网络需要预测的边界框数量,同时简化了网络的输出层设计,从而提高了整体的计算效率和推理速度。
-
实现复杂度:
- Mamba-YOLO 因引入了更多的新技术和复杂的算法框架,如SSM和专门的块结构(LSBlock和RGBlock等),使得其实现相对复杂,可能需要更多的调优和专业知识来优化其性能。
- YOLOX 相较之下,由于其结构上的简化和标准化,更易于实现和部署,适合快速开发和应用于各种不同的硬件和场景中。
通过这样的技术对比,我们可以看出Mamba-YOLO在处理复杂数据和场景时更具优势,而YOLOX在需要快速、高效的目标检测任务中更为适用。