Segment Anything(SAM):一个可提示模型,十亿掩码
Meta AI 的 SAM 把分割重构为可提示任务,并配套 SA-1B 数据集(1100 万图像、11 亿掩码),让单一模型零样本迁移到新对象与新分布。
快速答案
Segment Anything(SAM)是一个由提示驱动的分割模型——给它一个点、一个框或一张粗掩码,它就返回对象掩码。论文真正的分量在数据:SA-1B 在 1100 万张获授权图像上提供超过 11 亿个掩码,是迄今为止规模最大的分割数据集。正是这个量级,让单一模型能够零样本迁移到新的图像分布和任务上,效果常常与此前的全监督方法相当,甚至更好。
把分割重构成可提示任务
真正的创新是这次重构。在 SAM 之前,分割模型只为固定类别或某一种标注风格训练,超出范围就失效。SAM 把基础语言模型的「提示」思路搬到像素上:任务不再是「把每个像素归到 N 个类别之一」,而是「给定任意提示,返回一张有效掩码」。点、框、粗掩码都算提示;当提示本身有歧义时(点在衬衫上,可能指衬衫、指这个人、也可能指整群人),模型会一次给出几张合理掩码,而不是强行猜一个。正是这种「承认歧义」的设计,让它能当交互工具用,而不只是刷榜的数字。
结构上它做了拆分,让提示这一步保持低成本:重量级的 ViT 图像编码器对每张图只跑一次,随后轻量的提示编码器和掩码解码器在毫秒级把每个提示变成掩码。同一张图可以反复提示而无需重新编码——这正是标注工具里「点哪分哪」能做到即时响应的关键。
SA-1B 背后的数据引擎
十亿级掩码不可能纯靠手工标注,所以撑起整篇论文的贡献其实是数据引擎:一个三阶段循环,让模型和数据集互相滚雪球。第一阶段,标注员在模型辅助下标掩码;模型变强后开始预填掩码,人只需修正错误;最后阶段模型全自动运行,自己提出掩码并经质量过滤。最终得到 SA-1B——1100 万图像、11 亿掩码,且后期主要由自动生成主导。这些掩码是「类别无关」的(不带类别标签),这恰恰是模型学会泛化地理解「什么是一个对象」、而非死记一套分类体系的原因。
关键结果
- SA-1B 在 1100 万张获授权、注重隐私的图像上提供超过 11 亿个掩码,规模远超此前任何分割数据集。
- 图像编码器是重量级 ViT,但提示编码器和掩码解码器足够轻,图像编码一次后即可实时出掩码。
- 零样本迁移是核心结论:论文报告 SAM 在大量任务上的零样本表现亮眼,常常与此前全监督结果相当甚至更好,且无需针对任务再训练。
- 面对歧义,模型对每个提示预测多张带置信度的掩码,而不是被迫给唯一答案。
一句直白判断:SAM 的长久价值是这套数据集和可提示范式,而不是某一项 SOTA 精度。它是一个强大、通用的「掩码提议器」,是别的系统往上搭的底座。
局限与存疑
SAM 只做分割,不做理解。它给出掩码,却不知道对象的类别、身份、用途,也不知道分割它在安全上是否要紧。论文与后续应用暴露出真实短板:细小结构与纤薄物体、低对比度或透明区域、以及强域偏移(医学影像、卫星、显微)下掩码会明显退化,需要领域专门调优。它是静态图像模型——没有原生视频或时间一致性,这正是后续 SAM 2 直接针对的方向。最大的图像编码器开销不小,所谓「实时」指的是提示阶段,而非受限硬件上那一次性的编码。如果你要的是开箱即用、带语义标签的分割,单靠 SAM 是用错了工具——上面还得接一个分类器。
常见问题
一句话说清 Segment Anything(SAM)是什么?
SAM 是 Meta AI 的可提示分割模型:给定点、框或掩码提示,它返回有效对象掩码,并能零样本迁移到未训练过的图像和任务上。
SA-1B 数据集是什么?
SA-1B 是随 SAM 发布的数据集:在 1100 万张获授权、注重隐私的图像上提供超过 11 亿个掩码,由「模型在环」的数据引擎构建、后期以自动生成为主,是迄今规模最大的分割数据集。
SAM 知道自己在分割什么对象吗?
不知道。SAM 产出的是「类别无关」掩码——它勾出对象像素,但不赋予类别、身份或标签。想知道分出来的是什么,需要在它上面再接一个模型。
Segment Anything 在哪些场景仍然吃力?
SAM 在纤薄或细小结构、透明与低对比度区域、以及医学或卫星这类分布外领域上会变弱,并且没有原生视频或时间一致性处理。
SAM 比全监督分割模型更好吗?
在零样本迁移上,论文报告 SAM 常与此前全监督结果相当甚至更好;但对一个数据充足的固定标注任务,专门训练的全监督模型仍可能胜出。
SAM 真正押注的不是排行榜分数,而是:十亿级掩码的数据引擎加上可提示接口,能把分割变成可复用的基础原件。原文见:arXiv:2304.02643。