SAM
Kirillov 2023 · 论文
一句话总结 — Segment Anything:一个可提示分割基础模型,在来自1100万张图像的11亿个掩码上训练,能够零样本地根据点、框或掩码提示分割任意物体。
问题
分割研究曾被分割成一系列特定任务的模型——交互式、语义、实例、全景——每种都需要自己的标注数据集和训练流程,且都无法零样本迁移到新的图像分布或新任务。NLP已经证明,在可提示任务上以足够规模训练的基础模型可以泛化到它从未被明确训练过的任务。Segment Anything项目探讨了分割领域中对应的任务、模型和数据集应该是什么——问题在于掩码在互联网上并不天然大量存在,因此十亿规模的标注必须被人工制造出来。
方法与架构
该项目包含三个相互关联的组成部分:一个可提示分割任务(对任意提示——点、框、掩码,或探索性的自由文本——返回一个有效的掩码)、模型(SAM),以及产生SA-1B的数据引擎。
SAM包含三个模块,设计上使得开销最大的部分可以按图像摊销:
- 图像编码器:一个经MAE预训练的ViT-H/16(14×14窗口注意力,附带四个全局注意力模块),输入为1024×1024,产生一个16倍下采样的图像嵌入。在任何提示到来之前,每张图像只运行一次。
- 提示编码器:稀疏提示(点、框)被转换为位置编码,并与按类型学习的嵌入相加;文本通过现成的CLIP文本编码器处理;密集提示(掩码)通过卷积嵌入,并与图像嵌入逐元素相加。
- 掩码解码器:两个改进的Transformer解码器模块,带有提示自注意力和双向交叉注意力(提示到图像、图像到提示),随后对图像嵌入进行上采样,并用一个MLP将输出token映射为一个动态线性分类器,为每个位置的掩码前景概率打分。给定一个预先计算好的嵌入,提示编码器加解码器在网页浏览器中CPU上运行只需约50 ms——实现实时交互式提示。
歧义性:单次点击可以合理地指代整体/部分/子部分,因此SAM为每个提示预测3个输出掩码,并各自附带预测的IoU置信度;训练时只对三者中损失最小的那个做反向传播。掩码监督为focal loss和dice loss的线性组合,交互式设置通过对每个掩码模拟11轮提示采样来实现。
数据引擎(模型参与循环,三个阶段):(1)辅助人工——标注员在SAM参与循环的情况下点击标注,来自12万张图像的430万个掩码,随着模型被重新训练6次,每个掩码耗时从34秒降至14秒;(2)半自动——SAM预先填充有信心的掩码,标注员补充剩余部分,新增来自18万张图像的590万个掩码;(3)全自动——用32×32的点网格提示SAM,保留有信心(预测IoU高)且稳定(在和处对概率图取阈值得到相似掩码)的掩码,用NMS去重。将其应用于全部1100万张图像,得到SA-1B:11亿个掩码,约每张图像100个掩码,图像数量是Open Images的11倍,掩码数量是其400倍;发布的图像被下采样到最短边1500像素。
实验结果
- 在新的23个数据集组成的套件上进行单点零样本分割:SAM在23个数据集中的16个上超过了最强的交互式基线RITM(最多领先约47个IoU);若用oracle从其3个掩码中选最好的一个,则在全部23个数据集上都获胜。在一项人类研究中,SAM的掩码评分为7到9分(满分10分),一贯高于RITM——即便是在自动mIoU指标偏向RITM的数据集上也是如此。
- 零样本实例分割(用ViTDet-H的框作为提示):在COCO上mask AP为46.5,而全监督的ViTDet-H为51.0;在LVIS上为44.7对46.6——在没有任何COCO/LVIS掩码训练的情况下已相当接近,且被人类标注员评为更高质量(ViTDet利用了数据集特定的掩码偏差)。
- 在LVIS上的零样本物体提议:在中/大型物体以及稀有/常见物体上超过ViTDet-H,仅在小型和高频物体上落后。
- 在BSDS500上的零样本边缘检测:尽管从未针对边缘进行训练,仍能生成合理的边缘图;召回率(R50)较高,精度略低。
- 消融实验:仅在自动掩码上训练相比使用全部数据仅损失约0.5 mIoU;100万张图像(约占SA-1B的10%)几乎能媲美完整数据集;ViT-H明显优于ViT-B,但仅略微优于ViT-L。
- 论文指出的局限性:可能遗漏精细结构、对小组件产生幻觉,由于编码器较重,无法实现端到端实时;文本到掩码功能仍处于探索阶段。
对SLAM的意义
SAM为SLAM系统按需提供了类别无关的物体掩码——这正是开放词汇语义建图缺失的关键要素。与文本提示检测器搭配使用(Grounded SAM = Grounding DINO + SAM),它驱动了ConceptGraphs和Clio等3D场景图和开放词汇建图系统,并为动态物体移除提供了干净的掩码。它按图像摊销的设计(重编码器运行一次,廉价提示运行多次)与SLAM关键帧流水线相契合,其视频版后继者SAM 2还增加了SLAM在帧间实际需要的时间一致性。
相关条目
- SAM 2 — 带流式记忆的视频扩展版本
- Grounding DINO — 提供给SAM的文本提示框
- ConceptGraphs — 基于SAM掩码构建的开放词汇3D场景图
- Clio — 使用SAM风格掩码的任务驱动开放词汇建图
- ConceptFusion — 开放集多模态3D建图