facebookresearch/sam3

The repository provides code for running inference and finetuning with the Meta Segment Anything Model 3 (SAM 3), links for downloading the trained model checkpoints, and example notebooks that show how to use the model.

SAM 3 是什么?

SAM 3(带概念的分割一切)是 Meta 的最新「基础模型」,用于图像和视频的可提示分割。它在早期的 分割一切 模型(SAM 1/2)基础上进行了扩展,增加了通过简短文本短语或少量示例块描述,分割任意开放词汇概念的所有实例的能力。实际上,您可以向模型输入如 “所有红色汽车”“戴帽子的人” 这样的提示,它将为场景中所有匹配的对象返回掩码、边界框和置信度分数,适用于静态图像和视频流。


为什么重要

  • 开放词汇分割 – SAM 3 可以理解 数十万个名词短语(SA‑CO 基准测试包含 27 万个独特概念),远超旧检测器的封闭类别范围。
  • 统一的图像 + 视频流水线 – 单一模型包含一个 DETR 风格的检测器(文本条件化)和一个 SAM 2 风格的 Transformer 跟踪器,因此您可以使用相同的权重进行单图像推理、交互式优化或多帧视频跟踪。
  • 可扩展的数据引擎 – 团队自动标注了超过 400 万个独特概念,创建了迄今为止最大的高质量开放词汇分割数据集,推动了模型的出色性能(在新 SA‑CO 基准测试中达到人类水平的约 75–80%)。
  • 存在性标记与解耦设计 – 特殊标记帮助模型区分非常相似的提示(例如 “穿白色衣服的球员”“穿红色衣服的球员”),检测器-跟踪器的分离设计减少了任务干扰,使 848M 参数模型能够高效扩展。

快速入门(代码示例)

# 图像示例 – 文本提示
from sam3.model_builder import build_sam3_image_model
from sam3.model.sam3_image_processor import Sam3Processor

model = build_sam3_image_model()          # 加载默认检查点(需要 HF 访问权限)
processor = Sam3Processor(model)
processor.set_image("my_photo.jpg")
out = processor.set_text_prompt(state=processor.state, prompt="all dogs")
# out 包含掩码、边界框、分数
# 视频示例 – 开始会话并添加提示
from sam3.model_builder import build_sam3_video_predictor

vid = build_sam3_video_predictor()
resp = vid.handle_request({"type": "start_session", "resource_path": "my_video.mp4"})
sess = resp["session_id"]
resp = vid.handle_request({
    "type": "add_prompt",
    "session_id": sess,
    "frame_index": 0,
    "text": "people playing soccer"
})
outputs = resp["outputs"]  # 每帧的掩码、边界框、分数

该仓库附带 Jupyter 笔记本,逐步演示这些步骤、批量推理,甚至一个SAM 3 Agent,可串联多个提示以解决更复杂的查询。


核心组件

组件 作用
检测器 DETR 风格,基于文本、几何和示例块条件化。查找与提示匹配的对象。
跟踪器 重用 SAM 2 的 Transformer 编码器-解码器,跨视频帧传播掩码并支持交互式优化。
存在性标记 帮助模型区分非常相似的文本提示。
视觉编码器 检测器和跟踪器共享的骨干网络,使模型大小保持在 848M 参数。

基准测试与性能

任务 指标(越高越好) SAM 3 人类
图像实例分割(SA‑Co/Gold) cgF1 54.1 72.8
图像框检测(LVIS) AP 48.5
视频分割(SA‑V test) cgF1 30.3 53.1
视频跟踪(SA‑V pHOTA) pHOTA 58.0 70.5

这些数字表明,SAM 3 正在缩小与人类性能的差距,同时支持远超以往的词汇量。


如何获取模型

  1. 在 Meta 的 Hugging Face 仓库(facebook/sam3)中请求检查点的访问权限。
  2. 使用 hf auth login 进行认证(或设置 HF_TOKEN)。
  3. 安装包(参见 安装 部分),运行示例。

谁开发了它?

来自 Meta 超智能实验室(核心贡献者、实习生和项目负责人)的大型跨学科团队共同完成了论文、代码、数据引擎和基准测试的开发。README 列出了超过 40 名贡献者,涵盖研究、工程和产品领域。


许可与贡献

代码以 SAM 许可证(Meta 自定义许可证)发布。欢迎通过常规的拉取请求流程进行贡献;详情请参阅 CONTRIBUTING.md 和行为准则。


TL;DR

  • SAM 3 = 一个单一模型,能够用简短文本短语或少量视觉示例描述的任何内容进行 检测、分割和跟踪
  • 支持 图像和视频,支持 开放词汇提示(数十万个概念)。
  • 配备一个 大规模自动标注数据集新的存在性标记架构SA‑CO 基准测试的最先进结果
  • 在 Hugging Face 上请求访问后,通过 pip install -e . 安装,使用提供的笔记本开始实验。

相关

  • 项目
  • 项目
  • 项目
  • 项目
  • 项目