一、本文介绍
本文记录的是基于MobileOne的YOLOv11骨干网络改进方法研究。MobileOne的基础模块通过重参数化,==降低了模型在推理过程中的参数量和计算量,降低推理延迟,提高内存访问效率==。在将其替换YOLOv11的骨干网络后,实现模型轻量化。
模型 | 参数量 | 计算量 | 推理速度 |
---|---|---|---|
YOLOv11m | 20.0M | 67.6GFLOPs | 3.5ms |
Improved | 12.0M | 33.7GFLOPs | 2.1ms |
专栏目录:YOLOv11改进目录一览 | 涉及卷积层、轻量化、注意力、损失函数、Backbone、SPPF、Neck、检测头等全方位改进
专栏地址:YOLOv11改进专栏——以发表论文的角度,快速准确的找到有效涨点的创新点!
MobileOne Block
是MobileOne
架构中的基本模块。
二、MobileOne Block原理
2.1. 结构原理
基于MobileNetV1:以MobileNetV1的块(3x3深度卷积后跟1x1点卷积)为基础。
引入可重参数化跳过连接和分支:引入了可重参数化的跳跃连接以及复制该结构的分支,同时还引入了多个的过参数化分支。
根据文档内容,MobileOne Block的结构在训练时和推理时有所不同,具体步骤如下:
2.2 MobileOne Block训练步骤
- 输入特征图首先经过一个基于MobileNet - V1的基本块,包括3x3深度卷积和1x1点卷积。
- 然后,引入可重参数化跳跃连接(reparameterizable skip connection),该连接带有批归一化(batchnorm)。
- 同时,引入分支来复制上述结构,这些分支具有不同的超参数k(trivial over - parameterization factor),k的取值范围为1到5,通过实验来调整以获得最佳性能。
- 此时,模块具有分支结构。
2.3 MobileOne Block推理步骤
- 通过重参数化过程移除训练时的分支。
- 卷积和批归一化操作被折叠到一个单一的卷积层中,具体来说,对于卷积层,其权重W和偏置b通过对各分支相应参数进行求和计算得到;对于跳过连接的批归一化,被折叠到一个具有1x1恒等核的卷积层中,并通过填充K - 1个零来实现。
- 此时,模型具有简单的前馈结构,没有任何分支或跳跃连接,从而降低了内存访问成本。
综上所述,特征图在经过MobileOne Block
时,经历了训练时的分支处理和推理时的重参数化以简化结构的步骤,以在保证性能的同时降低延迟和内存消耗。
2.4 优势
- 提高准确性:通过引入可重参数化分支和琐碎的过参数化分支,提高性能,优化损失。
- 降低内存访问成本:在推理时,
MobileOne模型
没有任何分支,这是通过重参数化过程实现的,从而降低了内存访问成本。 - 有利于模型扩展:模型的这种结构和参数化方式使其能够更好地扩展模型参数,与其他多分支架构(如MobileNetV2、EfficientNets等)相比,能够在不产生显著延迟成本的情况下增加参数数量,从而使模型能够更好地泛化到其他计算机视觉任务。
论文:https://arxiv.org/abs/2206.04040
源码:https://github.com/apple/ml-mobileone
三、实现代码及YOLOv11修改步骤
模块完整介绍、个人总结、实现代码、模块改进、二次创新以及各模型添加步骤参考如下地址: