一、本文介绍
本文记录的是基于MobileNet V3的RT-DETR目标检测轻量化改进方法研究。MobileNet V3
的模型结构是通过==网络搜索==得来的,其中的基础模块结合了MobileNet V1
的深度可分离卷积、MobileNet V2
的线性瓶颈和倒置残差结构以及MnasNet
中基于挤压和激励的轻量级注意力模块,使模型在性能、效率和灵活性方面都具有显著的优势。
本文在替换骨干网络中配置了原论文中的small
和large
2种模型,以满足不同的需求。
模型 | 参数量 | 计算量 | 推理速度 |
---|---|---|---|
rtdetr-lm | 32.8M | 108.0GFLOPs | 11.6ms |
Improved | 19.4M | 61.3GFLOPs | 10.6ms |
专栏目录:RT-DETR改进目录一览 | 涉及卷积层、轻量化、注意力、损失函数、Backbone、SPPF、Neck、检测头等全方位改进
专栏地址:RT-DETR改进专栏——以发表论文的角度,快速准确的找到有效涨点的创新点!
二、MoblieNet V3设计原理
MobileNet V3
是基于一系列互补的搜索技术和新颖的架构设计而提出的新一代神经网络模型,其设计的原理和优势主要包括以下几个方面:
2.1 原理
2.1.1 网络搜索
- 平台感知的NAS(Platform - Aware NAS):用于搜索全局网络结构,通过优化每个网络块来实现。对于大型移动模型,复用了
MnasNet - A1
的结构,并在此基础上应用NetAdapt
和其他优化。对于小型移动模型,观察到原奖励设计未针对其优化,因此调整了权重因子w,重新进行架构搜索以找到初始种子模型。 - NetAdapt:用于逐层搜索过滤器的数量,是对平台感知的NAS的补充。它从平台感知的NAS找到的种子网络架构开始,通过生成新的提案并根据某些指标选择最佳提案,逐步微调单个层,直到达到目标延迟。在选择提案时,修改了算法以最小化延迟变化和准确率变化的比率。
2.1.2 网络改进
- 重新设计昂贵层:对网络末尾和开头的一些昂贵层进行修改。对于末尾的层,将产生最终特征的层移动到最终平均池化之后,以降低延迟并保持高维特征,同时去除了之前瓶颈层中的投影和过滤层,进一步降低计算复杂度。对于初始的滤波器层,实验发现使用hard swish非线性函数并将滤波器数量减少到16时,能在保持准确率的同时减少延迟和计算量。
- 非线性函数:引入了名为
h-swish
的非线性函数,它是swish
非线性函数的改进版本,计算更快且更有利于量化。通过将sigmoid函数
替换为分段线性的hard版本(如h - swish [x] = x * ReLU6(x + 3) / 6),并在网络的后半部分使用h-swish
,减少了计算成本,同时在准确率上与原始版本没有明显差异。 - 大的挤压 - 激励(Large squeeze - and - excite):将挤压 - 激励瓶颈的大小固定为扩展层通道数的1 / 4,在增加少量参数的情况下提高了准确率,且没有明显的延迟成本。
2.1.3 高效的移动构建块
结合了MobileNet V1
的深度可分离卷积、MobileNet V2
的线性瓶颈和倒置残差结构以及MnasNet
中基于挤压和激励的轻量级注意力模块,同时升级了这些层,使用修改后的swish非线性函数以提高效率。
2.2 优势
MobileNet V3
通过网络搜索和改进,结合了多种技术的优势,在性能、效率和灵活性方面都具有显著的优势,适用于移动设备上的各种计算机视觉任务。并且定义了MobileNetV3 - Large
和MobileNetV3 - Small
两个模型,分别针对高资源和低资源使用场景,可根据不同需求进行选择和应用。
论文:https://arxiv.org/abs/1905.02244.pdf
源码:https://github.com/d-li14/mobilenetv3.pytorch
三、实现代码及RT-DETR修改步骤
模块完整介绍、个人总结、实现代码、模块改进、二次创新以及各模型添加步骤参考如下地址: