前脚fast SAM刚发完,后脚mobile SAM就发了 ,之前的论文笔记中我一直就认为fast SAM其实应该算是yolo的扩展工作,和原生的SAM架构相去甚远,而且在简介上直接就对(gong)比(ji)了FastSAM,今天就来看看这篇mobile SAM。
1.介绍
1.1 动机
SAM流水线计算繁重的原因在于巨大的图像编码器,这项工作中研究了资源受限移动设备的轻量级SAM
1.2 挑战 & 解决方案
- 挑战:SAM重新训练的优化难度主要来自于图像编码器和掩模解码器的耦合优化。
- 解决方案:提出将图像编码器和掩码解码器的优化解耦
首先将知识从默认图像编码器ViT-H提取到一个微小的ViT。
之后,我们可以微调原始SAM中的掩码解码器(可选的),以更好地与提取的图像编码器对齐。
2.mobile SAM
2.1 缓解耦合蒸馏
为了缓解耦合蒸馏的优化问题:
(1)半耦合蒸馏:复制和冻结的掩码解码器优化图像编码器(如右图)
编码器提示的选择是随机的,这使得掩码解码器可变,从而增加了优化难度。
(2)解耦蒸馏:直接从原始SAM中的ViT-H中蒸馏小的图像编码器(如左图)
可以采用简单的MSE损失,不需要像SAM原论文中一样使用focal loss和dice loss来进行掩模预测。
解耦蒸馏效果确实比半耦合蒸馏不仅减少了运算资源,还提高了性能。
2.2 掩码解码器微调
从学生图像编码器生成的图像编码可以足够接近原始教师编码器的图像编码,这使得在第二阶段中对组合解码器的微调是可选的。
2.3 对比FastSAM
3.代码
3.1 模型代码
因为mobile SAM是在SAM的基础上更换了将编码器更换为轻量级的TinyViT,基本模型架构没有太大变化。
3.2 训练代码
等待训练代码....