EfficientSAM: Leveraged Masked Image Pretraining for Efficient Segment Anything 浅浅析

文章目录

  • prologue
  • paper
  • Distillation
  • feel

prologue

为什么会看到这篇paper,当时paper刚放出来没有很关系,粗看MAE+SAM,当时心想呵又是一个蹭SAM热点的。没想到今天机器之心公众号上了推送,那就得来蹭一波热点啊。
这标题真不错,挺吸引人,“小模型也可以「分割一切」,Meta改进SAM,参数仅为原版5%”,震惊!!!

paper

直入主题,先放图

EfficientSAM: Leveraged Masked Image Pretraining for Efficient Segment Anything 浅浅析_第1张图片

上半部分,MAE但是加了一个分支,SAM image Encoder VIT-H 这个是原版SAM的Encoder,确实参数量太大,所有这篇文章做的就是用一个轻量的encoder来替换掉他。那要怎么做呢,答案就是知识蒸馏,蒸馏很多方法但我并不熟,从paper

EfficientSAM: Leveraged Masked Image Pretraining for Efficient Segment Anything 浅浅析_第2张图片

这里来看可以拿中间特征来做。把原来大的vit学到的知识蒸馏到小一些模型里面去,可以有多小呢。答案是5M.

EfficientSAM: Leveraged Masked Image Pretraining for Efficient Segment Anything 浅浅析_第3张图片

请注意这里的5M并不是说整个模型,那是必然不可能的(除非以后科技爆炸了),这里的5M包括包括标题所说的,只是Image Encoder部分。Masked Decoder部分还是很大的。

Distillation

具体是怎么蒸馏呢?用MAE。

EfficientSAM: Leveraged Masked Image Pretraining for Efficient Segment Anything 浅浅析_第4张图片

输入的图片走上面SAM原版 Encoder部分就是知识所在地。要让小的Encoder去学,走下面先对图片做mask然后过小的encoder,对未被mask的部分做编码,然后把mask的和没被mask的一起送到decoder做还原,这里还加了一个线性投影用来和SAM Encoder做对其,然后用重建loss,就训起来了。训成以后这个小的Encoder会用来替换sam原来的大encoder。

关于Cross attention decoder和linear projection 部分没什么好说的,大家可以自己看一下。EfficientSAM: Leveraged Masked Image Pretraining for Efficient Segment Anything 浅浅析_第5张图片
LOSS部分对着看就行
EfficientSAM: Leveraged Masked Image Pretraining for Efficient Segment Anything 浅浅析_第6张图片
主要就是这个,找一找每个符号什么意思
EfficientSAM: Leveraged Masked Image Pretraining for Efficient Segment Anything 浅浅析_第7张图片
后面的实验我就没看了。

feel

说一下个人感受吧,首先就是标题党,真是震惊!这些公众号的标题总是很吸引眼球,但对于这类问题他们是滞后的,在arxiv上挂出来一周左右的paper会被以某种令人震惊的形式提出来,但当时看到并没什么感触,可能是自己不那么敏感?

其次,最直观的我的第一印象,这蒸馏完点都下去了,放出来的图还会比原版SAM的效果好,着实令人震惊,效果好点还掉了???我不理解,所以好看的图必然是挑出来的,都是常规操作,具体效果怎么样还是得自己上手试过才心里有数。

最后,还是很有意义的工作,怎么能在尽可能保留原版大的模型性能的同时兼顾效果,是一个永恒的命题。

与君共勉

你可能感兴趣的:(深度学习)