SAM 3 文字提示分割指南:848M 参数如何做到"说名字就找出所有同类"
【免费下载链接】sam3The 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.项目地址: https://gitcode.com/gh_mirrors/sam/sam3
SAM 3 是 Meta 开源的统一可提示分割模型,支持图像和视频,用一句"a red backpack"就能把画面里所有匹配的目标全部找出来并逐实例分割。仓库同时提供推理、微调代码和示例 notebook,适合想在"文字查对象"任务上拿到开箱即用方案的算法工程师。
输入一段文字,它内部走了哪几步
先看整体:图片和文字都是输入,检测器负责"找出在哪里",视频场景下再交给追踪器逐帧延续,最终输出掩码、边界框和置信度分数。
文字进入文本编码器变成向量,图像进入视觉编码器得到特征图,两者在解码阶段做交叉注意力,让模型既"看"也"读"。这是检测器(基于 DETR,即一种通过注意力迭代查询目标位置的检测网络)的条件输入。和 SAM 2 只认点、框、掩码这类几何提示不同,SAM 3 的查询可以是一句短语或一个示例对象,且会穷举画面中所有匹配实例——你查"players",场上每个人都会被切出来。
一个关键设计是presence token(存在性标志位)。它先回答"这个短语在画面里到底存不存在",再去细化位置,专门解决"a player in white"和"a player in red"这类语义相邻提示的混淆问题。
图像链路的代码入口在 sam3/model/sam3_image_processor.py;视频链路里,检测器只在起始帧定位一次,之后由继承自 SAM 2 的追踪器接管,靠记忆机制(memory,保存历史帧信息的缓存)跨帧传递身份,遮挡后能恢复,交互点选也可以中途修正。
亮点,以及为此付出的代价
- 检测-追踪解耦:检测器与追踪器共用视觉编码器但各自独立优化,官方说法是减少任务间干扰、更容易随数据扩展。好处是视频推理比"每帧重检测"轻得多;代价是首帧检测质量决定全程上限,检测漏了,追踪无从谈起。
- Object Multiplex(SAM 3.1 引入):原版视频流水线逐对象独立处理,计算量随目标数线性增长。3.1 把对象分组进固定容量的桶共享记忆一起算,官方报告单张 H100 上 128 个对象时约7 倍加速。机制细节见 sam3/model/video_tracking_multiplex.py。
- 数据引擎撑起来的规模:训练侧用自动标注引擎覆盖400 万+ 唯一概念,配套的SA-Co 基准含 27 万概念,比已有同类基准大 50 倍以上。规模是它泛化能力的来源,但也意味着复现实验的数据成本不低。
- 门槛:848M 参数需要 CUDA 12.6+ 的 GPU(PyTorch 2.7+、Python 3.12),checkpoint 托管在 Hugging Face 且需要先申请访问权限再
hf auth login下载——不是 clone 下来就能跑。
实际表现:离人工标注还有多远
图像侧,SA-Co/Gold 上模型与人工的差距最直观(cgF1 为官方指标,衡量"按概念找全实例"的查准查全):
| 模型 | SA-Co/Gold 分割 cgF1 | SA-Co/Gold 检测 AP |
|---|---|---|
| 人工标注上限 | 72.8 | 74.0 |
| OWLv2 | 24.6 | 24.5 |
| SAM 3 | 54.1 | 55.7 |
视频侧,在 YT-Temporal-1B 上 SAM 3 拿到 pHOTA 69.9,人工为 78.4,官方称图像任务达到人工水平(相对上限)的 75–80%。
但取舍同样写在数字里:3.1 的提速不是零成本的,VOS 七个基准中 MOSEv1 从 78.4 回落到 79.6 附近波动,官方也承认 SA-Co/VEval 上"结果好坏参半"(YT-Temporal-1B 提升 +2.1 cgF1)。跑评测脚本在 scripts/eval/,图像基准的标注协议见 scripts/eval/gold/README.md——Gold 子集由 3 名标注员独立标注,评测时取对模型最有利的一份。
最小上手路径
git clone https://gitcode.com/gh_mirrors/sam/sam3 && cd sam3 conda create -n sam3 python=3.12 && conda activate sam3 pip install torch==2.10.0 torchvision && pip install -e ".[notebooks]"然后在 Hugging Face 仓库申请 checkpoint 权限、登录,运行jupyter notebook examples/sam3_image_predictor_example.ipynb。核心 API 就三步:build_sam3_image_model()建模型、processor.set_image(image)传入图片、set_text_prompt(state, prompt)给出短语,返回的masks、boxes、scores即为结果。复杂短语(比如带修饰、需要多轮修正的查询)可以试examples/sam3_agent.ipynb,它把 SAM 3 包装成 LLM 可调用的工具链。
适合谁,什么时候别选它
如果你在做的正是开放词汇的"按文字找所有同类"——图像或视频,SAM 3 目前是该方向公开可用的少数完整实现之一,检测、分割、追踪、微调、评测一条链都有。反过来,如果只需要点一下分一个对象的经典 SAM 2 用法,或者目标在 128 个以上且没有 H100 级显卡,它的部署成本和追踪器架构就不划算了,传统专用检测器+轻量追踪的组合会更省心。
【免费下载链接】sam3The 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.项目地址: https://gitcode.com/gh_mirrors/sam/sam3
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考