MobileSAM的个人理解

【FASTER SEGMENT ANYTHING: TOWARDS LIGHTWEIGHT SAM FOR MOBILE APPLICATIONS】

本篇文章是个人看文献的一些总结和个人的想法,都是个人看过文章之后的理解,不保证一定是对的,如果我的理解有错,欢迎纠正。

(2023.7.1)

MobileSAM的动机

原始的SAM模型由于其庞大的图像编码器不适合计算资源受限的移动设备。为了让SAM更加轻量化,文章提出了MobileSAM以便在移动设备上运行

不同预训练的ViT对模型参数数量的影响:

原始SAM中默认的图像编码器是基于ViT-H的,参数超过600M非常重量级,不适合在移动设备上使用。因此在计算资源受限的移动设备上使用SAM的关键在于将重型图像编码器替换为轻量级图像编码器,并保留原SAM的所有功能和特性。

几种不同的蒸馏策略

为了实现轻量化的SAM,文章提出了几种不同的蒸馏策略:

耦合蒸馏(Coupled distillation)

直接按照原始SAM的训练过程,重新训练一个具有较小图像编码器的SAM

但是由于这种方法是从头训练整个模型,所以这种方法会耗费大量计算资源,因此不太现实。

半耦合蒸馏(semi-coupled distillation)

半耦合蒸馏中掩码解码器固定不变只优化较小的图像编码器。 这样虽然减少了计算资源,但是由于掩码解码器固定优化的过程仍然具有挑战

解耦蒸馏(decoupled distillation)

直接从原始SAM的ViT-H编码器中蒸馏出一个较小的图像编码器不依赖于掩码解码器的协同优化

使用次方法得到的掩码足够接近原本SAM的掩码,因此后面的mask decoder部分的微调是属于可选择的。

实验部分

文章通过训练和推理来比较了耦合蒸馏和解耦蒸馏。结果发现解耦蒸馏在训练效率和性能保持方面都表现优异

半耦合蒸馏中掩码解码器固定不变,由于需要优化较小的图像编码器,其优化难度较高,并且因为掩码解码器未经过优化无法充分利用较小图像编码器生成的嵌入,导致性能提升有限

通过解耦蒸馏方法,MobileSAM实现了显著的模型轻量化,同时保持了与原始 SAM 相当的性能

使用mIoU评估分割掩码的准确性。

训练计算对MobileSAM性能影响的消融实验

FastSAM比较推理速度和性能

暂无评论

发送评论 编辑评论


				
|´・ω・)ノ
ヾ(≧∇≦*)ゝ
(☆ω☆)
(╯‵□′)╯︵┴─┴
 ̄﹃ ̄
(/ω\)
∠( ᐛ 」∠)_
(๑•̀ㅁ•́ฅ)
→_→
୧(๑•̀⌄•́๑)૭
٩(ˊᗜˋ*)و
(ノ°ο°)ノ
(´இ皿இ`)
⌇●﹏●⌇
(ฅ´ω`ฅ)
(╯°A°)╯︵○○○
φ( ̄∇ ̄o)
ヾ(´・ ・`。)ノ"
( ง ᵒ̌皿ᵒ̌)ง⁼³₌₃
(ó﹏ò。)
Σ(っ °Д °;)っ
( ,,´・ω・)ノ"(´っω・`。)
╮(╯▽╰)╭
o(*////▽////*)q
>﹏<
( ๑´•ω•) "(ㆆᴗㆆ)
😂
😀
😅
😊
🙂
🙃
😌
😍
😘
😜
😝
😏
😒
🙄
😳
😡
😔
😫
😱
😭
💩
👻
🙌
🖕
👍
👫
👬
👭
🌚
🌝
🙈
💊
😶
🙏
🍦
🍉
😣
Source: github.com/k4yt3x/flowerhd
颜文字
Emoji
小恐龙
花!
上一篇
下一篇