一、本文介绍
本文记录的是基于RepVit的RT-DETR轻量化改进方法研究。RepVit
的网络结构借鉴ViT
的设计理念,通过分离的token mixe
和channel mixer
减少推理时的计算和内存成本,同时减少扩展比率并增加宽度,降低延迟,并通过加倍通道来弥补参数大幅减少的问题,提高了准确性。本文在替换骨干网络中配置了原论文中的repvit_m0_9
、repvit_m1_0
、repvit_m1_1
、repvit_m1_5
和repvit_m2_3
五种模型,以满足不同的需求。
模型 | 参数量 | 计算量 | 推理速度 |
---|---|---|---|
rtdetr-l | 32.8M | 108.0GFLOPs | 11.6ms |
Improved | 23.2M | 74.4GFLOPs | 11.5ms |
专栏目录:RT-DETR改进目录一览 | 涉及卷积层、轻量化、注意力、损失函数、Backbone、SPPF、Neck、检测头等全方位改进
专栏地址:RT-DETR改进专栏——以发表论文的角度,快速准确的找到有效涨点的创新点!
二、RepVit结构详解
2.1 出发点
在计算机视觉领域,设计轻量化模型对于在资源受限的移动设备上实现视觉模型的部署至关重要。近年来,轻量级Vision Transformers(ViTs)在移动设备上表现出优越性能和较低延迟,但ViTs和轻量级Convolutional Neural Networks(CNNs)在块结构、宏观和微观设计上存在显著差异未被充分研究。本研究从ViT视角重新审视轻量级CNNs的高效设计,旨在为移动设备探索更优的模型架构,因此提出了RepViT模型
。
2.2 原理
2.2.1 借鉴ViT的设计理念
- 块设计(Block design)
- 分离token mixer和channel mixer:轻量级ViTs的块结构包含分离的token mixer和channel mixer这一重要设计特征。研究发现ViTs的有效性主要源于其通用的token mixer和channel mixer架构(MetaFormer架构)。在MobileNetV3 - L中,原始块设计使token mixer和channel mixer耦合,通过
移动DW卷积
和可选的挤压 - 激励(SE)层
,成功分离两者,并采用结构重新参数化技术增强模型学习,减少了推理时的计算和内存成本,降低了延迟,命名为RepViT块
。 - 减少扩展比率并增加宽度:在ViTs中,通道混合器的扩展比率通常较大,消耗大量计算资源。而在
RepViT块
中,将所有阶段的通道混合器扩展比率设置为2,降低了延迟,并通过在每个阶段加倍通道来弥补参数大幅减少的问题,提高了准确性。
- 分离token mixer和channel mixer:轻量级ViTs的块结构包含分离的token mixer和channel mixer这一重要设计特征。研究发现ViTs的有效性主要源于其通用的token mixer和channel mixer架构(MetaFormer架构)。在MobileNetV3 - L中,原始块设计使token mixer和channel mixer耦合,通过
2.2.2 宏观设计(Macro design)
- 早期卷积用于stem:ViTs通常使用patchify操作作为stem,容易导致优化性欠佳和对训练配方敏感。而MobileNetV3 - L采用复杂的stem,存在延迟瓶颈且限制了表示能力。研究采用早期卷积方式,即堆叠两个步长为2的3×3卷积作为stem,减少了延迟,提高了准确性。
- 更深的下采样层:ViTs通过单独的补丁合并层实现空间下采样,有利于增加网络深度和减少信息损失。而MobileNetV3 - L仅通过倒置瓶颈块实现下采样,可能缺乏足够网络深度。研究采用DW卷积和1×1卷积进行空间下采样并调制通道维度,还前置一个
RepViT块
进一步加深下采样层,并放置一个FFN模块记忆更多潜在信息,提高了准确性,同时降低了延迟。 - 简单分类器:轻量级ViTs的分类器通常由全局平均池化层和线性层组成,对延迟友好。而MobileNetV3 - L采用复杂分类器,增加了延迟负担。考虑到
RepViT块
设计后最后阶段有更多通道,研究采用简单分类器替代,虽有一定精度下降,但降低了延迟。 - 整体阶段比率:调整不同阶段的块数量比例,采用1:1:7:1的阶段比率并增加网络深度,提高了准确性,同时降低了延迟。
2.2.3 微观设计(Micro design)
- 内核大小选择:CNNs的性能和延迟受卷积核大小影响。虽然大内核卷积可展示性能增益,但对移动设备不友好。MobileNetV3 - L主要使用3×3卷积,研究在所有模块中优先使用3×3卷积,维持了准确性,同时降低了延迟。
- 挤压 - 激励(SE)层放置:
SE层
可弥补卷积的局限性,但在MobileNetV3 - L中某些块使用SE层存在问题。研究设计了一种跨块使用SE层的策略,即每个阶段的第1、3、5等块使用SE层,以最小的延迟增加获得最大的精度提升。
2.3 结构
RepViT模型
是一个全新的纯轻量级CNN家族,其结构基于ViT - like MetaFormer结构,完全由重新参数化卷积组成。它具有多个变体,如RepViT - M0.9/M1.0/M1.1/M1.5/M2.3等,不同变体通过每个阶段的通道数量和块数量来区分。
2.4 优势
- 性能优越
- 在ImageNet - 1K上进行图像分类实验时,
RepViT
在不同模型大小下均达到了最先进的性能。
- 在ImageNet - 1K上进行图像分类实验时,
例如RepViT - M1.0`在iPhone 12上以1.0 ms的延迟实现了超过80%的top - 1准确率,这是轻量级模型首次达到该水平。在不使用知识蒸馏的情况下,也能显著优于其他竞争模型。
- 延迟较低
RepViT
在各种视觉任务中展现出良好的延迟性能。例如在对象检测和实例分割任务中,在相似模型大小下,RepViT - M1.1相比EfficientFormer - L1 backbone具有更小的延迟;在语义分割任务中,RepViT - M1.5相比EfficientFormerV2 - S2具有近50%的延迟降低,同时具有更好的性能。
- 适用于移动设备
RepViT
的设计充分考虑了移动设备的资源受限特性,通过借鉴ViT的高效架构设计,对轻量级CNN进行优化,使其在移动设备上具有良好的性能和延迟表现,为移动设备上的视觉任务提供了更优的模型选择。论文:https://arxiv.org/pdf/2307.09283
源码:https://github.com/THU-MIG/RepViT
三、实现代码及RT-DETR修改步骤
模块完整介绍、个人总结、实现代码、模块改进、二次创新以及各模型添加步骤参考如下地址: