SAM 3:使用概念分割一切#

SAM 3(分割一切模型 3)是 Meta 发布的、用于可提示概念分割(PCS)的基础模型。在 SAM 2 的基础上,SAM 3 引入了一项全新能力:根据文本提示、图像示例或二者的组合,检测、分割和跟踪视觉概念的所有实例。不同于以往每个提示只能分割单个对象的 SAM 版本,SAM 3 能够在图像或视频的任意位置查找并分割概念的每一次出现,这与现代实例分割中的开放词汇目标一致。
Watch: How to Use Meta Segment Anything 3 with Ultralytics | Text-Prompt Segmentation on Images & Videos
SAM 3 已完全集成到 ultralytics 软件包中,为使用文本提示、图像样本提示和视频跟踪的概念分割提供原生支持。
概述#
SAM 3 在可提示概念分割方面的性能达到现有系统的 2 倍,同时保持并提升了 SAM 2 在交互式视觉分割方面的能力。该模型在开放词汇分割方面表现出色,允许你使用简单的名词短语(例如“黄色校车”“条纹猫”)指定概念,也可以提供目标对象的示例图像。这些能力可与依赖简化版 predict 和 track 工作流的生产就绪型流水线配合使用。

什么是可提示概念分割(PCS)?#
PCS 任务以概念提示作为输入,并返回带有唯一身份标识的分割掩码,覆盖所有匹配的对象实例。概念提示可以是:
- 文本:类似于零样本学习的简单名词短语,例如“红苹果”或“戴帽子的人”
- 图像示例:围绕示例对象(正例或负例)的边界框,用于快速泛化
- 组合:同时使用文本和图像示例,以实现精确控制
这不同于传统的视觉提示(点、框、掩码),后者只能分割单个特定对象实例,而最初的 SAM 系列正是以此广为人知。
关键性能指标#
| 指标 | SAM 3 成果 |
|---|---|
| LVIS 零样本掩码 AP | 47.0(相比此前最佳值 38.5,提高 22%) |
| SA-Co 基准测试 | 比现有系统提升 2 倍 |
| 推理速度(H200 GPU) | 每张图像 30 ms,可检测 100 个以上对象 |
| 视频性能 | 约同时处理 5 个对象时接近实时 |
| MOSEv2 VOS 基准测试 | 60.1 J&F(比 SAM 2.1 高 25.5%,比此前 SOTA 高 17%) |
| 交互式细化 | 使用 3 个示例提示后,CGF1 提升 +18.6 |
| 与人类性能的差距 | 达到 SA-Co/Gold 估计下限的 88% |
如需了解生产环境中的模型指标和权衡,请参阅模型评估洞察和 YOLO 性能指标。
架构#
SAM 3 由一个检测器和一个跟踪器组成,二者共享感知编码器(PE)视觉骨干网络。这种解耦设计避免了任务冲突,同时支持图像级检测和视频级跟踪,并提供与 Ultralytics Python 用法和 CLI 用法兼容的接口。
核心组件#
-
检测器:基于 DETR 的架构,用于图像级概念检测
- 用于名词短语提示的文本编码器
- 用于基于图像提示的示例编码器
- 用于根据提示调节图像特征的融合编码器
- 新型存在性头,将识别(“是什么”)与定位(“在哪里”)解耦
- 用于生成实例分割掩码的掩码头
-
跟踪器:继承自 SAM 2的基于记忆的视频分割
- 提示编码器、掩码解码器、记忆编码器
- 用于存储跨帧对象外观信息的记忆库
- 在多对象场景中,借助卡尔曼滤波器等技术进行时间消歧
-
存在性令牌:一种经过学习的全局令牌,用于预测目标概念是否存在于图像或帧中,通过将识别与定位分离来提升检测效果。

关键创新#
- 识别与定位解耦:存在性头在全局范围内预测概念是否存在,而候选查询仅关注定位,从而避免目标冲突。
- 统一概念提示与视觉提示:在单个模型中同时支持 PCS(概念提示)和 PVS(类似 SAM 2 点击/框的视觉提示)。
- 交互式示例细化:你可以添加正例或负例图像示例,以迭代细化结果;模型会泛化到相似对象,而不仅仅是纠正单个实例。
- 时间消歧:使用掩码片段检测分数和定期重新提示来处理视频中的遮挡、拥挤场景和跟踪失败,与实例分割和跟踪的最佳实践一致。
SA-Co 数据集#
SAM 3 使用**分割一切与概念(SA-Co)**数据集进行训练。这是 Meta 迄今规模最大、最多样化的分割数据集,扩展了 COCO 和 LVIS 等常见基准的范围。
训练数据#
| 数据集组件 | 描述 | 规模 |
|---|---|---|
| SA-Co/HQ | 来自四阶段数据引擎的高质量人工标注图像数据 | 520 万张图像,400 万个唯一名词短语 |
| SA-Co/SYN | 由 AI 标注、无需人工参与的合成数据集 | 3800 万个名词短语,14 亿个掩码 |
| SA-Co/EXT | 使用困难负例扩展的 15 个外部数据集 | 因来源而异 |
| SA-Co/VIDEO | 带有时间跟踪标注的视频 | 5.25 万个视频,2.48 万个唯一名词短语 |
基准数据#
SA-Co 评估基准包含 12.6 万张图像和视频中的 21.4 万个唯一短语,概念数量超过现有基准的 50 倍。它包括:
- SA-Co/Gold:7 个领域,经过三重标注,用于衡量人类性能上限
- SA-Co/Silver:10 个领域,单次人工标注
- SA-Co/Bronze 和 SA-Co/Bio:适用于概念分割的 9 个现有数据集
- SA-Co/VEval:包含 3 个领域的视频基准(SA-V、YT-Temporal-1B、SmartGlasses)
数据引擎创新#
SAM 3 的可扩展人工与模型协同数据引擎通过以下方式实现2 倍标注吞吐量:
- AI 标注器:基于 Llama 的模型提出多样化名词短语,包括困难负例
- AI 验证器:经过微调的多模态 LLMs以接近人类的性能验证掩码质量和完备性
- 主动挖掘:将人力集中于 AI 难以处理的挑战性失败案例
- 本体驱动:利用以 Wikidata 为基础的大型本体来覆盖概念
安装#
安装或升级 ultralytics 软件包:
pip install -U ultralytics与其他 Ultralytics 模型不同,SAM 3 权重(sam3.pt)不会自动下载。你必须先在 Hugging Face 上的 SAM 3 模型页面申请模型权重访问权限,获批后再从该页面下载 sam3.pt。将下载的 sam3.pt 文件放入工作目录,或在加载模型时指定完整路径。
如果你在预测期间遇到上述错误,说明安装了错误的 clip 包。运行以下命令安装正确的 clip 包:
pip uninstall clip -y
pip install git+https://github.com/ultralytics/CLIP.git如何使用 SAM 3:概念分割的多功能性#
SAM 3 通过不同的预测器接口同时支持可提示概念分割(PCS)和可提示视觉分割(PVS)任务:
支持的任务和模型#
| 任务类型 | 提示类型 | 输出 |
|---|---|---|
| 概念分割(PCS) | 文本(名词短语)、图像示例 | 与概念匹配的所有实例 |
| 视觉分割(PVS) | 点、框、掩码 | 单个对象实例(SAM 2 风格) |
| 交互式细化 | 迭代添加/移除示例或点击 | 经过细化且精度更高的分割 |
概念分割示例#
使用文本提示进行分割#
使用文本描述查找并分割概念的所有实例。文本提示需要 SAM3SemanticPredictor 接口。
from ultralytics.models.sam import SAM3SemanticPredictor
# Initialize predictor with configuration
overrides = {
"conf": 0.25,
"task": "segment",
"mode": "predict",
"model": "sam3.pt",
"quantize": 16, # Use FP16 for faster inference
"save": True,
}
predictor = SAM3SemanticPredictor(overrides=overrides)
# Set image once for multiple queries
predictor.set_image("path/to/image.jpg")
# Query with multiple text prompts
results = predictor(text=["person", "bus", "glasses"])
# Works with descriptive phrases
results = predictor(text=["person with red cloth", "person with blue cloth"])
# Query with a single concept
results = predictor(text=["a person"])使用图像示例进行分割#
使用边界框作为视觉提示,查找所有相似实例。这同样需要 SAM3SemanticPredictor 进行基于概念的匹配。
from ultralytics.models.sam import SAM3SemanticPredictor
# Initialize predictor
overrides = {"conf": 0.25, "task": "segment", "mode": "predict", "model": "sam3.pt", "quantize": 16, "save": True}
predictor = SAM3SemanticPredictor(overrides=overrides)
# Set image
predictor.set_image("path/to/image.jpg")
# Provide bounding box examples to segment similar objects
results = predictor(bboxes=[[480.0, 290.0, 590.0, 650.0]])
# Multiple bounding boxes as exemplars of the same visual concept
results = predictor(bboxes=[[539, 599, 589, 639], [343, 267, 499, 662]])基于特征的高效推理#
只提取一次图像特征,并将其重复用于多个分割查询,以提高效率。
import cv2
from ultralytics.models.sam import SAM3SemanticPredictor
from ultralytics.utils.plotting import Annotator, colors
# Initialize predictors
overrides = {"conf": 0.50, "task": "segment", "mode": "predict", "model": "sam3.pt", "verbose": False}
predictor = SAM3SemanticPredictor(overrides=overrides)
predictor2 = SAM3SemanticPredictor(overrides=overrides)
# Extract features from the first predictor
source = "path/to/image.jpg"
predictor.set_image(source)
src_shape = cv2.imread(source).shape[:2]
# Setup second predictor and reuse features
predictor2.setup_model()
# Perform inference using shared features with text prompt
masks, boxes = predictor2.inference_features(predictor.features, src_shape=src_shape, text=["person"])
# Perform inference using shared features with bounding box prompt
masks, boxes = predictor2.inference_features(predictor.features, src_shape=src_shape, bboxes=[[439, 437, 524, 709]])
# Visualize results
if masks is not None:
masks, boxes = masks.cpu().numpy(), boxes.cpu().numpy()
im = cv2.imread(source)
annotator = Annotator(im, pil=False)
annotator.masks(masks, [colors(x, True) for x in range(len(masks))])
cv2.imshow("result", annotator.result())
cv2.waitKey(0)视频概念分割#
使用边界框跨视频跟踪概念#
使用边界框提示检测并跟踪视频帧中的目标实例。
from ultralytics.models.sam import SAM3VideoPredictor
# Create video predictor
overrides = {"conf": 0.25, "task": "segment", "mode": "predict", "model": "sam3.pt", "quantize": 16}
predictor = SAM3VideoPredictor(overrides=overrides)
# Track objects using bounding box prompts
results = predictor(source="path/to/video.mp4", bboxes=[[706.5, 442.5, 905.25, 555], [598, 635, 725, 750]], stream=True)
# Process and display results
for r in results:
r.show() # Display frame with segmentation masks使用文本提示跟踪概念#
跨视频帧跟踪文本指定概念的所有实例。
from ultralytics.models.sam import SAM3VideoSemanticPredictor
# Initialize semantic video predictor
overrides = {
"conf": 0.25,
"task": "segment",
"mode": "predict",
"imgsz": 640,
"model": "sam3.pt",
"quantize": 16,
"save": True,
}
predictor = SAM3VideoSemanticPredictor(overrides=overrides)
# Track concepts using text prompts
results = predictor(source="path/to/video.mp4", text=["person", "bicycle"], stream=True)
# Process results
for r in results:
r.show() # Display frame with tracked objects
# Alternative: Track with bounding box prompts
results = predictor(
source="path/to/video.mp4",
bboxes=[[864, 383, 975, 620], [705, 229, 782, 402]],
labels=[1, 1], # Positive labels
stream=True,
)视觉提示(SAM 2 兼容性)#
SAM 3 完全向后兼容 SAM 2 的视觉提示功能,可用于单目标分割:
基础 SAM 接口的行为与 SAM 2 完全一致,只分割视觉提示(点、框或掩码)所指示的特定区域。
from ultralytics import SAM
model = SAM("sam3.pt")
# Single point prompt - segments object at specific location
results = model.predict(source="path/to/image.jpg", points=[900, 370], labels=[1])
results[0].show()
# Multiple points - segments single object with multiple point hints
results = model.predict(source="path/to/image.jpg", points=[[400, 370], [900, 370]], labels=[1, 1])
# Box prompt - segments object within bounding box
results = model.predict(source="path/to/image.jpg", bboxes=[100, 150, 300, 400])
results[0].show()使用带有视觉提示(点/框/掩码)的 SAM("sam3.pt") 时,只会分割该位置的特定目标,与 SAM 2 一样。要分割概念的所有实例,请使用 SAM3SemanticPredictor 搭配文本或示例提示,如上所示。
性能基准测试#
图像分割#
SAM 3 在多个基准测试中取得了最先进的结果,包括 LVIS 和用于分割的 COCO 等真实世界数据集:
| 基准 | 指标 | SAM 3 | 此前最佳 | 提升 |
|---|---|---|---|---|
| LVIS(零样本) | 掩码 AP | 47.0 | 38.5 | +22.1% |
| SA-Co/Gold | CGF1 | 65.0 | 34.3 (OWLv2) | +89.5% |
| COCO(零样本) | 框 AP | 53.5 | 52.2 (T-Rex2) | +2.5% |
| ADE-847(语义分割) | mIoU | 14.7 | 9.2 (APE-D) | +59.8% |
| PascalConcept-59 | mIoU | 59.4 | 58.5 (APE-D) | +1.5% |
| Cityscapes(语义分割) | mIoU | 65.1 | 44.2 (APE-D) | +47.3% |
在 Ultralytics 数据集 中探索数据集选项,快速开展实验。
视频分割性能#
SAM 3 在 DAVIS 2017 和 YouTube-VOS 等视频基准测试中,相较于 SAM 2 和此前的最先进方法取得了显著提升:
| 基准 | 指标 | SAM 3 | SAM 2.1 L | 提升 |
|---|---|---|---|---|
| MOSEv2 | J&F | 60.1 | 47.9 | +25.5% |
| DAVIS 2017 | J&F | 92.0 | 90.7 | +1.4% |
| LVOSv2 | J&F | 88.2 | 79.6 | +10.8% |
| SA-V | J&F | 84.6 | 78.4 | +7.9% |
| YTVOS19 | J&F | 89.6 | 89.3 | +0.3% |
少样本适应#
SAM 3 只需少量示例即可出色地适应新领域,这对以数据为中心的 AI 工作流非常重要:
| 基准 | 0-shot AP | 10-shot AP | 此前最佳(10-shot) |
|---|---|---|---|
| ODinW13 | 59.9 | 71.6 | 67.9 (gDino1.5-Pro) |
| RF100-VL | 14.3 | 35.7 | 33.7 (gDino-T) |
交互式细化效果#
SAM 3 基于示例的概念提示比视觉提示收敛快得多:
| 添加的提示 | CGF1 分数 | 相对于仅文本的提升 | 相对于 PVS 基线的提升 |
|---|---|---|---|
| 仅文本 | 46.4 | 基线 | 基线 |
| +1 个示例 | 57.6 | +11.2 | +6.7 |
| +2 个示例 | 62.2 | +15.8 | +9.7 |
| +3 个示例 | 65.0 | +18.6 | +11.2 |
| +4 个示例 | 65.7 | +19.3 | +11.5(平台期) |
目标计数准确率#
SAM 3 通过分割所有实例来提供准确的计数,这也是目标计数中的常见需求:
| 基准 | 准确率 | MAE | 相对于最佳 MLLM |
|---|---|---|---|
| CountBench | 95.6% | 0.11 | 92.4% (Gemini 2.5) |
| PixMo-Count | 87.3% | 0.22 | 88.8% (Molmo-72B) |
SAM 3、SAM 2 与 YOLO 对比#
这里将 SAM 3 的能力与 SAM 2 和 YOLO26 模型进行比较。若要使用同类提示进行实时开放词汇检测和分割,请参阅 YOLOE:
| 能力 | SAM 3 | SAM 2 | YOLO26n-seg |
|---|---|---|---|
| 概念分割 | ✅ 根据文本/示例分割所有实例 | ❌ 不支持 | ❌ 不支持 |
| 视觉分割 | ✅ 单个实例(兼容 SAM 2) | ✅ 单个实例 | ✅ 所有实例 |
| 零样本能力 | ✅ 开放词汇 | ✅ 几何提示 | ❌ 封闭集 |
| 交互式细化 | ✅ 示例 + 点击 | ✅ 仅点击 | ❌ 不支持 |
| 视频跟踪 | ✅ 具有身份标识的多目标 | ✅ 多目标 | ✅ 多目标 |
| LVIS Mask AP(零样本) | 47.0 | 不适用 | 不适用 |
| MOSEv2 J&F | 60.1 | 47.9 | 不适用 |
| 速度(GPU,毫秒/图像) | 2921 | 857 | 8.4 |
| 模型大小 | 3.45 GB | 162 MB(基础版) | 6.4 MB |
速度在 NVIDIA RTX PRO 6000 上进行基准测试,使用 torch==2.9.1 和 ultralytics==8.4.19。
主要结论:
- SAM 3:最适合开放词汇概念分割,使用文本或示例提示查找某个概念的所有实例
- SAM 2:最适合在图像和视频中使用几何提示进行交互式单目标分割
- YOLO26:最适合实时、高速分割,支持可选的无 NMS 端到端推理,可导出为多种格式以部署在 GPU、CPU 和边缘设备上
SAM 与 YOLO 的对比#
从模型大小、参数量和 GPU 推理速度方面,对比 SAM 3、SAM 2、SAM、MobileSAM 和 FastSAM 与 Ultralytics YOLO 分割模型(YOLOv8、YOLO11、YOLO26):
| 模型 | 大小 (MB) | 参数量 (M) | 速度(GPU) (毫秒/图像) |
|---|---|---|---|
| Meta SAM-b | 375 | 93.7 | 1306 |
| Meta SAM2-b | 162 | 80.8 | 857 |
| Meta SAM2-t | 78.1 | 38.9 | 668 |
| Meta SAM3 | 3450 | 473.6 | 2921 |
| MobileSAM | 40.7 | 10.1 | 605 |
| 使用 YOLOv8 主干网络的 FastSAM-s | 23.7 | 11.8 | 55.9 |
| Ultralytics YOLOv8n-seg | 6.7(小 515 倍) | 3.4(少 139.1 倍) | 17.4(快 167 倍) |
| Ultralytics YOLO11n-seg | 5.9(小 585 倍) | 2.9(少 163.1 倍) | 12.6(快 231 倍) |
| Ultralytics YOLO26n-seg | 6.4(小 539 倍) | 2.7(少 175.2 倍) | 8.4(快 347 倍) |
此比较展示了 SAM 各变体与 YOLO 分割模型在模型大小和速度方面的显著差异。SAM 虽然提供了独特的自动分割能力,但 YOLO 模型,尤其是 YOLOv8n-seg、YOLO11n-seg 和 YOLO26n-seg,明显更小、更快且计算效率更高。
测试在配备 96GB VRAM 的 NVIDIA RTX PRO 6000 上运行,使用 torch==2.9.1 和 ultralytics==8.4.19。如需复现此测试:
from ultralytics import ASSETS, SAM, YOLO, FastSAM
# Profile SAM3, SAM2-t, SAM2-b, SAM-b, MobileSAM
for file in ["sam_b.pt", "sam2_b.pt", "sam2_t.pt", "mobile_sam.pt", "sam3.pt"]:
model = SAM(file)
model.info()
model(ASSETS)
# Profile FastSAM-s
model = FastSAM("FastSAM-s.pt")
model.info()
model(ASSETS)
# Profile YOLO models
for file_name in ["yolov8n-seg.pt", "yolo11n-seg.pt", "yolo26n-seg.pt"]:
model = YOLO(file_name)
model.info()
model(ASSETS, nms=False) # YOLO26 NMS-free head; no-op for YOLOv8/YOLO11评估指标#
SAM 3 引入了为 PCS 任务设计的新指标,同时补充了熟悉的 F1 分数、精确率和召回率等度量。
分类门控 F1(CGF1)#
结合定位和分类的主要指标:
CGF1 = 100 × pmF1 × IL_MCC
其中:
- pmF1(正类宏平均 F1):衡量正样本上的定位质量
- IL_MCC(图像级 Matthews 相关系数):衡量二元分类准确率(“概念是否存在?”)
为什么需要这些指标?#
传统 AP 指标不考虑校准,因此模型难以在实践中使用。SAM 3 的指标仅评估置信度高于 0.5 的预测,从而强制要求良好的校准,并模拟交互式 predict 和 track 循环中的真实使用模式。
关键消融实验与洞察#
存在性头的影响#
存在性头将识别与定位解耦,从而带来显著提升:
| 配置 | CGF1 | IL_MCC | pmF1 |
|---|---|---|---|
| 无存在性头 | 57.6 | 0.77 | 74.7 |
| 有存在性头 | 63.3 | 0.82 | 77.1 |
存在性头带来了 +5.7 CGF1 的提升(+9.9%),主要改善了识别能力(IL_MCC +6.5%)。
困难负样本的影响#
| 困难负样本/图像 | CGF1 | IL_MCC | pmF1 |
|---|---|---|---|
| 0 | 31.8 | 0.44 | 70.2 |
| 5 | 44.8 | 0.62 | 71.9 |
| 30 | 49.2 | 0.68 | 72.3 |
困难负样本对于开放词汇识别至关重要,可将 IL_MCC 提高 54.5%(0.44 → 0.68)。
训练数据扩展#
| 数据来源 | CGF1 | IL_MCC | pmF1 |
|---|---|---|---|
| 仅外部数据 | 30.9 | 0.46 | 66.3 |
| 外部数据 + 合成数据 | 39.7 | 0.57 | 70.6 |
| 外部数据 + 高质量数据 | 51.8 | 0.71 | 73.2 |
| 全部三者 | 54.3 | 0.74 | 73.5 |
高质量人工标注相比仅使用合成数据或外部数据可带来显著提升。有关数据质量实践的背景信息,请参阅数据收集与标注。
应用#
SAM 3 的概念分割能力支持新的使用场景:
- 内容审核:在媒体库中查找特定内容类型的所有实例
- 电子商务:在目录图像中分割某一类型的所有产品,支持自动标注
- 医学影像:识别特定组织类型或异常的所有出现位置
- 自主系统:按类别跟踪所有交通标志、行人或车辆实例
- 视频分析:统计并跟踪所有穿着特定服装或执行特定动作的人员
- 数据集标注:快速标注稀有目标类别的所有实例
- 科学研究:量化并分析所有符合特定标准的样本
SAM 3 Agent:扩展语言推理#
SAM 3 可以与多模态大语言模型(MLLMs)结合,以处理需要推理的复杂查询,其理念类似于 OWLv2 和 T-Rex 等开放词汇系统。
推理任务上的性能#
| 基准 | 指标 | SAM 3 Agent(Gemini 2.5 Pro) | 此前最佳 |
|---|---|---|---|
| ReasonSeg(验证集) | gIoU | 76.0 | 65.0(SoTA) |
| ReasonSeg(测试集) | gIoU | 73.8 | 61.3(SoTA) |
| OmniLabel(验证集) | AP | 46.7 | 36.5(REAL) |
| RefCOCO+ | Acc | 91.2 | 89.3(LISA) |
复杂查询示例#
SAM 3 Agent 可以处理需要推理的查询:
- “坐下但没有手拿礼盒的人”
- “离镜头最近且没有戴项圈的狗”
- “比这个人的手更大的红色物体”
MLLM 向 SAM 3 提出简单的名词短语查询,分析返回的掩码,并不断迭代直到满意为止。
限制#
尽管 SAM 3 代表了重大进步,但它仍存在一些限制:
- 短语复杂度:最适合简单的名词短语;较长的指代表达式或复杂推理可能需要集成 MLLM
- 歧义处理:某些概念本质上仍然存在歧义(例如,“小窗户”“舒适的房间”)
- 计算要求:比 YOLO 等专用检测模型更大、更慢
- 词汇范围:专注于原子视觉概念;没有 MLLM 协助时,组合推理能力有限
- 罕见概念:对于训练数据中代表性不足的极罕见或细粒度概念,性能可能下降
引用#
@misc{carion2025sam3,
title = {SAM 3: Segment Anything with Concepts},
author = {Nicolas Carion and Laura Gustafson and Yuan-Ting Hu and Shoubhik Debnath and Ronghang Hu and Didac Suris and Chaitanya Ryali and Kalyan Vasudev Alwala and Haitham Khedr and Andrew Huang and Jie Lei and Tengyu Ma and Baishan Guo and Arpit Kalla and Markus Marks and Joseph Greer and Meng Wang and Peize Sun and Roman R{\"a}dle and Triantafyllos Afouras and Effrosyni Mavroudi and Katherine Xu and Tsung-Han Wu and Yu Zhou and Liliane Momeni and Rishi Hazra and Shuangrui Ding and Sagar Vaze and Francois Porcher and Feng Li and Siyuan Li and Aishwarya Kamath and Ho Kei Cheng and Piotr Doll{\'a}r and Nikhila Ravi and Kate Saenko and Pengchuan Zhang and Christoph Feichtenhofer},
year = {2025},
eprint = {2511.16719},
archivePrefix = {arXiv},
primaryClass = {cs.CV},
url = {https://arxiv.org/abs/2511.16719}
}常见问题#
是的!SAM 3 已完全集成到 Ultralytics Python 软件包中,包括概念分割、SAM 2 风格的视觉提示和多目标视频跟踪。SAM 3 还为 Ultralytics Platform 上的智能标注功能提供支持,让你只需点击几下即可标注图像。
特性 SAM 2 SAM 3 任务 每个提示对应单个对象 概念的所有实例 提示类型 点、框、掩码 + 文本短语、图像示例 检测能力 需要外部检测器 内置开放词汇检测器 识别 仅基于几何信息 文本和视觉识别 架构 仅跟踪器 带存在性检测头的检测器 + 跟踪器 零样本性能 不适用(需要视觉提示) 在 LVIS 上达到 47.0 AP,在 SA-Co 上性能提升 2 倍 交互式细化 仅点击 点击 + 示例泛化 SAM 3 保持了与 SAM 2 视觉提示的向后兼容性,同时增加了基于概念的能力。
SAM 3 使用 Segment Anything with Concepts(SA-Co) 数据集进行训练:
训练数据:
- 包含 520 万张图像 和 400 万个唯一名词短语(SA-Co/HQ)——高质量人工标注
- 包含 5.25 万个视频 和 2.48 万个唯一名词短语(SA-Co/VIDEO)
- 包含覆盖 3800 万个名词短语 的 14 亿个合成掩码(SA-Co/SYN)
- 包含 15 个外部数据集,并加入了困难负样本(SA-Co/EXT)
基准数据:
- 涵盖 12.6 万张图像/视频 中的 21.4 万个唯一概念
- 概念数量是现有基准的 50 倍(例如,LVIS 包含约 ~4K 个概念)
- 在 SA-Co/Gold 上进行三重标注,用于衡量人类性能上限和下限
如此庞大的规模和多样性,使 SAM 3 能够在开放词汇概念上实现卓越的零样本泛化能力。
SAM 3 和 YOLO26 面向不同的使用场景:
SAM 3 的优势:
- 开放词汇:无需训练即可通过文本提示分割任意概念
- 零样本:可立即处理新类别
- 交互式:基于示例的细化可泛化到相似对象
- 基于概念:自动找到某个类别的所有实例
- 准确率:在 LVIS 零样本实例分割上达到 47.0 AP
YOLO26 的优势:
- 速度:推理速度提升几个数量级,带有可选的无 NMS 端到端检测头
- 效率:模型大小缩小 539 倍(6.4MB 对比 3.45GB)
- 资源友好:可在边缘设备和移动设备上运行
- 实时:针对生产部署进行了优化
建议:
- 当你需要查找由文本或示例描述的概念的所有实例时,使用 SAM 3 进行灵活的开放词汇分割
- 当类别预先已知且需要高速生产部署时,使用 YOLO26
- 当需要使用几何提示进行交互式单对象分割时,使用 SAM 2
SAM 3 专为简单的名词短语而设计(例如,“红苹果”“戴帽子的人”)。对于需要推理的复杂查询,可将 SAM 3 与 MLLM 结合为 SAM 3 Agent:
简单查询(原生 SAM 3):
- “黄色校车”
- “条纹猫”
- “戴红帽子的人”
复杂查询(使用 MLLM 的 SAM 3 Agent):
- “坐着但没有拿礼品盒的人”
- “离镜头最近且没有戴项圈的狗”
- “比这个人的手更大的红色物体”
SAM 3 Agent 将 SAM 3 的分割能力与 MLLM 的推理能力相结合,在 ReasonSeg 验证集上达到 76.0 gIoU(此前最佳结果为 65.0,提升 16.9%)。
在采用三重人工标注的 SA-Co/Gold 基准上:
- 人类下限:74.2 CGF1(最保守的标注者)
- SAM 3 性能:65.0 CGF1
- 达成度:达到估计人类下限的 88%
- 人类上限:81.4 CGF1(最宽松的标注者)
SAM 3 在开放词汇概念分割上达到了接近人类水平的出色准确率,差距主要存在于具有歧义或主观性的概念上(例如,“小窗户”“舒适的房间”)。