本博文简单介绍了SAM、FastSAM与MobileSAM,主要关注于TextPrompt功能的使用。从性能上看MobileSAM是最实用的,但其没有提供TextPrompt功能,故而参考FastSAM中的实现,在MobileSAM中嵌入TextPrompt类。并将TextPrompt能力嵌入到MobileSAM官方项目提供的gradio.py部署代码中,实现效果如下图所示,由于FastSAM全景实列分割比MobileSAM略差,故MobileSAM的text prompt分割效果比FastSAM要好很多。
1、 SAM系列模型介绍
1.1 SAM
SAM项目代码:https://github.com/facebookresearch/segment-anything
SAM是一个项目体系,而非某个网络模型。其核心是对数据的利用,对模型输入输出格式的调整。其网络模型均依赖VIT模型,其结构体系为提示分割模型(与普通语义分割模型多了提示这一层)。SAM参考NLP,认为其具备强大的下游泛化能力是因为提示输入,其认为分割任务的提示输入为点、推荐框、mask和文本(对于文本输入的理解使用CLIP编码器),通过给定提示输