论文 · arXiv 2304.02643
Segment Anything
三句话总结
- 🎯 分割未见过的视觉概念,无需任务特定微调即可适应多样化的下游分割任务。
- 🔧 提出了可提示分割任务、配备均摊实时掩码解码器的 Segment Anything Model (SAM),以及三阶段数据引擎。
- 📈 在 SA-1B(涵盖 1100 万张图像的 11 亿掩码)上训练,SAM 可零样本迁移至边缘检测、目标候选区域生成和实例分割,在 23 个数据集中的 16 个上超越交互式基线。
摘要
我们介绍了 Segment Anything (SA) 项目:一项用于图像分割的新任务、新模型和新数据集。通过在数据收集循环中使用高效模型,我们构建了迄今为止最大的分割数据集,在 1100 万张经授权且注重隐私的图像上标注了超过 10 亿个掩码。该模型经过设计与训练以支持可提示性(promptable),因此能够零样本迁移到新的图像分布和任务中。我们在大量任务上评估了其能力,发现其零样本性能令人印象深刻——通常与以往的完全监督结果具有竞争力,甚至更优。我们在 https://segment-anything.com 开源了 Segment Anything Model (SAM) 以及包含 10 亿掩码和 1100 万图像的对应数据集 (SA-1B),以促进计算机视觉基础模型的研究。
英文原文摘要
We introduce the Segment Anything (SA) project: a new task, model, and dataset for image segmentation. Using our efficient model in a data collection loop, we built the largest segmentation dataset to date (by far), with over 1 billion masks on 11M licensed and privacy respecting images. The model is designed and trained to be promptable, so it can transfer zero-shot to new image distributions and tasks. We evaluate its capabilities on numerous tasks and find that its zero-shot performance is impressive -- often competitive with or even superior to prior fully supervised results. We are releasing the Segment Anything Model (SAM) and corresponding dataset (SA-1B) of 1B masks and 11M images at https://segment-anything.com to foster research into foundation models for computer vision.
论文解读
问题与动机
在网络规模数据上预训练的基础模型彻底改变了 NLP 和视觉-语言对齐领域(例如 CLIP),但通用计算机视觉仍然缺乏能够在多样化分割任务中实现广泛零样本泛化的基础系统。与网络级图像-文本语料库相比,现有的图像分割数据集规模较小,且传统的分割架构通常绑定于固定的语义类别或专门的交互式设置。
为了构建用于分割的视觉基础模型,作者同时解决了三个核心要素:
- 任务(Task):何种目标能够实现通用的零样本迁移?
- 模型(Model):何种架构能够在实时支持灵活提示的同时解决内在的视觉歧义?
- 数据(Data):在互联网数据缺乏密集掩码标注的情况下,如何获取网络规模的分割掩码?
核心理念
- 可提示分割任务(Promptable Segmentation Task):模型必须在给定任意提示(如前景/背景点、边界框、密集掩码或自由格式文本)时返回有效的分割掩码。当提示具有歧义(例如衬衫上的单个点)时,模型必须输出多个合理的分层掩码(子部件、部件、整体)。
- 非对称均摊架构(SAM):计算量繁重的图像编码器对每张图像仅运行一次以生成嵌入,而轻量级提示编码器和两层 Transformer 解码器在 Web 浏览器中的 CPU 上约 内即可完成提示评估。
- 飞轮数据引擎(Data Engine):三阶段标注流水线:
- 辅助人工(Assisted-manual):SAM 在浏览器中协助标注员,将每个掩码的标注时间从 34 秒缩短至 14 秒(收集了 430 万个掩码)。
- 半自动(Semi-automatic):SAM 检测高置信度掩码以引导标注员处理未标注、较不显著的目标(额外收集了 590 万个掩码)。
- 全自动(Fully automatic):在均匀的 点网格及放大的图像切片上提示 SAM,生成了 SA-1B 中的 11 亿个掩码。
方法
模型架构
SAM 包含三个组件:
- 图像编码器(Image Encoder):采用 MAE 预训练的 Vision Transformer(默认 ViT-H/16),适配了窗口注意力与四个全局注意力块,处理 输入以生成具有 256 通道的 嵌入。
- 提示编码器(Prompt Encoder):
- 稀疏提示:点和边界框通过位置编码与可学习类型嵌入相加映射为 256 维向量。自由格式文本使用 CLIP 的文本编码器编码。
- 密集提示:输入掩码(分辨率低 )通过步长为 2 的 卷积下采样,并与图像嵌入逐元素相加。
- 掩码解码器(Mask Decoder):经过修改的两层 Transformer 解码器。它通过交替进行的提示自注意力和双向交叉注意力(tokens-to-image 和 image-to-tokens)更新提示 token 与图像嵌入。图像特征通过转置卷积进行 上采样,MLP 将输出 token 投影生成动态线性分类器,并逐点应用于上采样后的特征。
歧义感知输出与损失函数
单个提示通常描述多个嵌套结构。SAM 通过同时预测 3 个掩码及其对应的估计 IoU 分数来解决歧义。在训练期间,反向传播仅应用于候选预测中的最小损失: 辅助头最小化预测 IoU 与真实 IoU 之间的均方误差: 当提供多个提示时,SAM 使用第四个专用输出 token 输出单个明确无歧义的掩码。
实验结果
- 点到掩码零样本迁移(Zero-Shot Point-to-Mask Transfer):在 23 个多样化的分割数据集上(包括第一视角、水下、航拍和显微图像),仅使用单中心点提示时,SAM 在 23 个数据集中的 16 个上优于 RITM(IoU 增益最高达 )。当通过 oracle 选择器从 SAM 的 3 个预测中消除歧义时,SAM 在全部 23 个数据集上均优于 RITM。人工质量评估一致给予 SAM 显著更高的评分(10 分制下处于 7 到 9 分之间)。
- 零样本边缘检测(BSDS500):使用 网格配合 Sobel 滤波和边缘 NMS 进行零样本评估,SAM 取得了 0.768 的 ODS 和 0.928 的 R50,性能可与有监督模型如 HED(ODS 0.788,R50 0.923)相媲美。
- 零样本目标候选生成(LVIS v1):SAM 在无类别监督的情况下获得 59.3 的 AR@1000,在中等目标(81.6 对 80.8)、大目标(86.9 对 87.0)和罕见类别(65.8 对 58.3)上超越了全监督的 ViTDet-H 基线。
- 零样本实例分割:当使用 ViTDet 边界框提示时,SAM 在 COCO 上达到 46.5 AP,在 LVIS 上达到 44.7 AP。在人工评估中,标注员一致认为 SAM 掩码比全监督 ViTDet 的输出更干净、质量更高。
局限性与待探索问题
- 精细结构与极致缩放:相比于显式放大局部切片的高算力交互式方法,SAM 可能会遗漏超精细结构或产生细小的断开部件。
- 全流程延迟:虽然提示解码具备实时性(),但运行繁重的 ViT-H 图像编码器尚无法做到实时。
- 语义理解:SAM 输出与类别无关的掩码;在没有可组合的外部分类器的情况下,它不原生提供语义或全景类别标签。
- 文本到掩码提示:与几何提示相比,零样本对齐 CLIP 的文本提示流水线仍处于初步阶段且相对敏感。
关键术语
- promptable segmentation task (可提示分割任务)
- 定义在给定任意输入提示(如点、边界框、掩码或文本)时输出有效分割掩码的目标任务。
- SAM
- Segment Anything Model;由重型 ViT 图像编码器、提示编码器和均摊实时轻量级掩码解码器组成的视觉模型。
- SA-1B
- Segment Anything 1-Billion 数据集,包含跨越 1100 万张高分辨率、注重隐私保护的图像的超 11 亿个自动生成的掩码。
- data engine (数据引擎)
- 用于将掩码标注扩展至网络规模的三阶段人在回路(model-in-the-loop)框架(辅助人工、半自动和全自动)。
- ambiguity-aware modeling (歧义感知建模)
- 一种设计策略,其中解码器针对单个提示输出 3 个分层掩码及其预测 IoU,且仅对最低损失预测计算训练梯度。
- amortized real-time inference (均摊实时推理)
- 每张图像仅计算一次重型图像嵌入,使后续基于提示条件的掩码解码能够在 CPU 上约 50ms 内完成执行。
- zero-shot transfer (零样本迁移)
- 通过提示工程在下游任务和未见过的图像分布上评估预训练的可提示模型,无需微调权重。
- stable mask filtering (稳定性掩码过滤)
- 一种质量过滤机制,用于筛选出以 与 对 logit 概率图进行阈值化时二值形状变化极小的掩码。
常见问题
当单个点可能代表多个目标时,SAM 如何处理歧义?
SAM 同时输出三个掩码(通常分别代表子部件、部件和整体)以及预测的 IoU 置信度分数。在训练期间,它仅从误差最低的预测中反向传播损失。
SA-1B 中的 11 亿个掩码是人工标注的吗?
不是,SA-1B 中发布的 99.1% 的掩码是在 1100 万张图像上通过均匀点网格提示 SAM 完全自动生成的,并经过了置信度和稳定性的严格过滤。
SAM 能否根据文本描述分割图像?
可以,作为探索性的概念验证。SAM 在训练时通过将掩码的 CLIP 图像嵌入作为提示 token 输入进行训练,从而允许在推理时使用来自 CLIP 文本编码器的文本嵌入来提示 SAM。
如果人类对 SAM 掩码的评分高于 ViTDet,为什么 SAM 在 COCO 上的掩码 AP 低于 ViTDet?
有监督模型会拟合 COCO 真实标注中存在的数据集特定多边形偏差、边界平滑伪影和非模态(amodal)惯例,而零样本 SAM 输出符合人类感知的清晰模态视觉边界,但这在与带有偏差的标注比对时会遭受 IoU 惩罚。
本页解读由 AI 根据论文生成,可能有错误;细节请以原文为准。