1. 做了什么?
把SAM变成了更计算高效、参数更少的EfficientSAM。
2. 具体怎么做的?
2.1 模型结构
从模型结构上来看:把SAM中的Image Encoder由ViT-H变成ViT-Small/Tiny。
下面是SAM的结构,可以看到Image Encoder很庞大,这也是SAM推理低效的原因。
图片来源:Sagment Anything
EfficientSAM的结构就是image encoder更加轻量化的SAM:
2.2. 如何训练Efficient SAM?
再进一步:lightweight image encoder如何训练?
具体framework如下:
可以看到分为两个阶段:预训练阶段(stage-1)和微调阶段(stage-2)
stage-1:(训练数据集为ImageNet-1K)
- Masked Auto Encoder(MAE)的掩码学习训练策略;
- 知识蒸馏,让EfficientSAM的lightweight image encoder去学习SAM的image encoder的latent feature。
stage-2:(训练数据集为SA-1B)
使用SA-1B在Segment Anything上微调。
3. 个人看法
EfficientSAM本质在做这么一件事:通过知识蒸馏,将SAM中的Image Encoder由ViT-H变为ViT-Tiny/Small,进而减少计算量和参数量。