[CVPR 2024] RepViT论文阅读笔记

针对RepViT和RepViT-SAM自己做的笔记,有错误不严谨之处请批评指正。

RepViT: Revisiting Mobile CNN From ViT Perspective

摘要

现状:近来关于轻量级ViT和轻量级CNN有许多针对二者结构联系研究上的研究,而二者间在板块架构,宏观,微观设计上的差异研究尚不充分。
作者创新:通过加入ViT的设计思想,从ViT的角度重新研究轻量级CNN,提出RepViT
结果:RepViT相比现有轻量级ViT和轻量级CNN都SOTA了(iPhone12实验),且引入SAM形成RepViT-SAM后,其相比现有方法推理速度大大加快

引言

轻量化的模型在资源受限的移动端设备上有较大需求,近年来有很多针对此情况设计的轻量级CNN。

ViT相较于CNN在资源充足的情况下性能往往更为优越,而在资源受限的移动设备上,ViT的模型性能会有所下降。为此,许多研究致力于设计轻量级的ViT,期望其性能超越轻量级CNN。

现有的一些针对移动设备的轻量ViT提高了计算速度,有些方案中将卷积层和ViT结合,另有些方法引入自注意力,维度一致等设计理念。相关实验说明轻量ViT在延迟,准确率上都超出了轻量CNN

尽管如此,轻量ViT依旧受到硬件,计算库资源的限制。对于高分辨率图像,相比CNN,ViT的处理时延更长。

轻量的ViT和轻量CNN展现出一定的结构相似度,例如它们都用卷积层学习空间局部特征表示。而当学习全局特征时,CNN通常扩大卷积核,ViT通常使用多头自注意力。但是,轻量Vit,CNN在板块结构上仍有差异,例如,ViT通常采用MetaFormer架构而CNN通常采用反转残差块。因此,作者思考,是否可以使用轻量ViT的架构来提高轻量CNN的性能。为此,作者重新从ViT的角度思考轻量CNN的设计。

为此,作者选用轻量级CNN的MobileNetV3-L作为基本模型,通过加入一系列ViT的架构设计,逐步形成新的轻量CNN,作者确定名称为RepViT。RepViT是一个与MetaFormer形状相似,但完全是重参数化卷积构成的网络。实验结果表明,针对移动设备,RepViT在图像分类,物体检测,示例分割,语义分割等任务上SOTA,且结合SAM的RepViT-SAM的延迟很低,且有较好的零样本迁移学习能力。

方法

总体流程 从MobileNetV3-L开始,对模型逐渐改变。
介绍评估指标,复现结果—>寻找最优架构 —>宏观结构元素—>每层的微观设计—>最终RepViT
评估指标 设备上延迟(更准确,更公平),实际操作时使用iPhone12,使用Gelu作为激活函数
训练参数 所有模型在ImageNet-1K上训练和评估,使用AdamW作为优化器和余弦学习率调度器,从头开始训练300轮。

架构设计

受轻量ViT影响,将语义混合器与通道混合器相分离(研究表明ViT的有效性来自于通用的语义混合器和通道混合器架构,而非来自于具体指定的语义混合器)

同时,最后的 1 × 1 1 \times 1 1×1 channel混合器的膨胀比例从4减少到2以降低参数量,同时通过增加网络宽度进行补救

宏观设计

主干 ViT主要使用图像块策略作为主干,类比CNN中,可以使用无重复的大卷积核进行大步长的卷积,但这会造成网络学习到的优化能力,敏感程度不标准。受此启发,作者使用小数量堆叠的 3 × 3 3 \times 3 3×3,步长2的卷积核作为主干,这在许多轻量ViT中被采用。具体采用了2个 3 × 3 3 \times 3 3×3早期卷积作为主干,滤波器个数分别设置为24和48,如图所示
在这里插入图片描述
深层下采样层 架构如下图所示,预先设计一个RepViTBlock进行下采样,通过DW后是一个 1 × 1 1 \times 1 1×1大小的点对点卷积,最后是一个FFN用于记忆潜在空间信息。
在这里插入图片描述
简单分类器
作者将图中左侧的MobileNetV3-l的分类器结构简化为右侧的结构,减少了其在移动端部署的资源压力
在这里插入图片描述
总体阶段比 阶段比指的就是上述不同阶段的板块数量的比例。作者采用了1:1:7:1和2:2:14:2两种。

微观设计

为了在移动设备上获得较好的性能,卷积核大小统一为3
Squeeze和excitation层的放置(该SE板块主要用于弥补卷积的数据驱动属性的不足):在每个阶段的第奇数个板块位置放置(每个地方都放置可能导致计算代价高)

总结,作者根据上述设计构建了RepViT,其架构如下图所示
在这里插入图片描述
设计架构过程中的实验性能和延迟表现如下表所示:

实验

图像分类 对不同参数量的RepViT进行延迟和准确率的评估, 分别在有知识蒸馏和无知识蒸馏的情况下进行实验,先是有知识蒸馏
在这里插入图片描述
接着是没有知识蒸馏的实验

RepViT-SAM SAM指的是Segment Anything Model,作者将SAM模型中的编码器替换为了RepViT,变成了RepViT-SAM模型,训练8轮。
测试延迟的实验证明RepViT-SAM的效果最佳

在边缘检测,实例分割,SegInW任务上的性能表现都很优越

下游任务

RepViT在目标检测,实例分割和语义分割上的表现
在这里插入图片描述
针对结构重参数化和SE层放置的消融实验

RepViT-SAM

摘要

现有的MobileSAM使用TinyViT替换SAM中的编码器,实现了计算要求的降低,但其仍受内存量大,计算开销大的限制。为此,作者将SAM中的编码器替换为RepViT形成RepViT-SAM,实验结果表明RepViT-SAM相比现有MobileSAM在延迟,准确率方面都SOTA,且零样本迁移学习能力也更强。

不同设备上的延迟对比

零样本边缘检测结果

零样本实例分割结果,野外基准分割结果

零样本视频物体/实例分割结果

零样本SOD,零样本异常检测结果

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值