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.1 检查点支持图像预测。
概述#
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.1#
Meta 于 2026 年 3 月 27 日发布的 SAM 3.1 是 SAM 3 的新检查点,新增了 Object Multiplex,这是一种用于多对象视频跟踪的共享内存方法。SAM 3.1 不再独立处理每个跟踪对象,而是将对象分组成固定容量的桶并联合处理;Meta 报告称,在单块 H100 GPU 上跟踪 128 个对象时,速度可提升 ~7 倍。图像检测器和交互式点提示头仍采用 SAM 3 架构。
| 基准测试 | 指标 | SAM 3 | SAM 3.1 |
|---|---|---|---|
| SA-Co/VEval SA-V(测试集) | cgF1 | 30.3 | 30.5 |
| SA-Co/VEval YT-Temporal-1B(测试集) | cgF1 | 50.8 | 52.9 |
| SA-Co/VEval SmartGlasses(测试集) | cgF1 | 36.4 | 36.3 |
| MOSEv1(验证集) | J&F | 78.4 | 79.6 |
| DAVIS17(验证集) | J&F | 92.2 | 92.7 |
| SA-V(测试集) | J&F | 84.4 | 85.1 |
| YTVOS19(验证集) | G | 89.7 | 89.3 |
| MOSEv2(验证集) | J&Ḟ | 60.3 | 62.3 |
Ultralytics 会将 SAM 3.1 检查点(sam3.1_multiplex.pt)加载到 SAM 3 图像预测器中:SAM("sam3.1_multiplex.pt") 用于点提示和框提示,SAM3SemanticPredictor 用于文本提示和示例提示。目前尚不支持 Object Multiplex 视频跟踪,因此请继续将 sam3.pt 与 SAM3VideoPredictor 和 SAM3VideoSemanticPredictor 配合使用。
架构#
SAM 3 由检测器和跟踪器组成,二者共用一个 Perception Encoder (PE) 视觉主干网络。这种解耦设计避免了任务冲突,同时支持图像级检测和视频级跟踪,并提供兼容 Ultralytics Python 用法和 CLI 用法的接口。
核心组件#
-
检测器:基于 DETR 的架构,用于图像级概念检测
- 用于名词短语提示的文本编码器
- 用于基于图像提示的示例编码器
- 用于根据提示对图像特征进行条件化的融合编码器
- 新颖的存在性预测头,将识别(“是什么”)与定位(“在哪里”)解耦
- 用于生成实例分割掩码的掩码头
-
跟踪器:继承自 SAM 2的基于记忆的视频分割
- 提示编码器、掩码解码器、记忆编码器
- 用于跨帧存储对象外观信息的记忆库
- 在多对象场景中,借助卡尔曼滤波器等技术进行时序消歧
-
存在性令牌:一个学习得到的全局令牌,用于预测目标概念是否出现在图像/帧中;通过将识别与定位分离来提升检测效果。

关键创新#
- 解耦识别与定位:存在性预测头全局预测概念是否存在,而候选查询只专注于定位,从而避免目标冲突。
- 统一概念提示与视觉提示:单个模型同时支持 PCS(概念提示)和 PVS(类似 SAM 2 点击/框选的视觉提示)。
- 交互式示例优化:用户可以添加正向或负向图像示例,逐步优化结果;模型会泛化到相似对象,而非只修正单个实例。
- 时序消歧:使用 masklet 检测分数和定期重新提示,处理视频中的遮挡、拥挤场景和跟踪失败,符合实例分割与跟踪的最佳实践。
SA-Co 数据集#
SAM 3 基于 Segment Anything with Concepts(概念任意分割,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 评估基准包含 21.4 万个不同短语,覆盖 12.6 万张图像和视频,概念数量超过现有基准的 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 验证器:经过微调的多模态大语言模型以接近人类的表现验证掩码质量和完整性
- 主动挖掘:将人工精力集中在 AI 难以处理的疑难失败案例上
- 本体驱动:利用以 Wikidata 为基础的大型本体,覆盖各类概念
安装#
安装或升级 ultralytics 软件包:
pip install -U ultralytics与其他 Ultralytics 模型不同,SAM 3 权重(sam3.pt)不会自动下载。你必须先在 Hugging Face 上的 SAM 3 模型页面申请模型权重的访问权限,获批后再从该页面下载 sam3.pt。将下载的 sam3.pt 文件放入工作目录,或在加载模型时指定完整路径。
SAM 3.1 权重(sam3.1_multiplex.pt)也采用相同的访问限制,可在 SAM 3.1 模型页面申请访问权限。对于下面图像示例中使用 sam3.pt 的任何位置,都可以传入 sam3.1_multiplex.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
# 使用配置初始化预测器
overrides = {
"conf": 0.25,
"task": "segment",
"mode": "predict",
"model": "sam3.pt",
"quantize": 16, # 使用 FP16 加快推理速度
"save": True,
}
predictor = SAM3SemanticPredictor(overrides=overrides)
# 设置一次图像以执行多次查询
predictor.set_image("path/to/image.jpg")
# 使用多个文本提示进行查询
results = predictor(text=["person", "bus", "glasses"])
# 支持描述性短语
results = predictor(text=["person with red cloth", "person with blue cloth"])
# 使用单个概念进行查询
results = predictor(text=["a person"])使用图像示例进行分割#
使用边界框作为视觉提示,查找所有相似实例。基于概念的匹配也需要使用 SAM3SemanticPredictor。
from ultralytics.models.sam import SAM3SemanticPredictor
# 初始化预测器
overrides = {"conf": 0.25, "task": "segment", "mode": "predict", "model": "sam3.pt", "quantize": 16, "save": True}
predictor = SAM3SemanticPredictor(overrides=overrides)
# 设置图像
predictor.set_image("path/to/image.jpg")
# 提供边界框示例以分割相似对象
results = predictor(bboxes=[[480.0, 290.0, 590.0, 650.0]])
# 使用多个边界框作为同一视觉概念的示例
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
# 初始化预测器
overrides = {"conf": 0.50, "task": "segment", "mode": "predict", "model": "sam3.pt", "verbose": False}
predictor = SAM3SemanticPredictor(overrides=overrides)
predictor2 = SAM3SemanticPredictor(overrides=overrides)
# 从第一个预测器提取特征
source = "path/to/image.jpg"
predictor.set_image(source)
src_shape = cv2.imread(source).shape[:2]
# 设置第二个预测器并重复使用特征
predictor2.setup_model()
# 使用共享特征和文本提示执行推理
masks, boxes = predictor2.inference_features(predictor.features, src_shape=src_shape, text=["person"])
# 使用共享特征和边界框提示执行推理
masks, boxes = predictor2.inference_features(predictor.features, src_shape=src_shape, bboxes=[[439, 437, 524, 709]])
# 可视化结果
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
# 创建视频预测器
overrides = {"conf": 0.25, "task": "segment", "mode": "predict", "model": "sam3.pt", "quantize": 16}
predictor = SAM3VideoPredictor(overrides=overrides)
# 使用边界框提示跟踪对象
results = predictor(source="path/to/video.mp4", bboxes=[[706.5, 442.5, 905.25, 555], [598, 635, 725, 750]], stream=True)
# 处理并显示结果
for r in results:
r.show() # 显示带有分割掩码的帧使用文本提示跟踪概念#
跨视频帧跟踪文本指定概念的所有实例。
from ultralytics.models.sam import SAM3VideoSemanticPredictor
# 初始化语义视频预测器
overrides = {
"conf": 0.25,
"task": "segment",
"mode": "predict",
"imgsz": 640,
"model": "sam3.pt",
"quantize": 16,
"save": True,
}
predictor = SAM3VideoSemanticPredictor(overrides=overrides)
# 使用文本提示跟踪概念
results = predictor(source="path/to/video.mp4", text=["person", "bicycle"], stream=True)
# 处理结果
for r in results:
r.show() # 显示包含跟踪对象的帧
# 替代方案:使用边界框提示进行跟踪
results = predictor(
source="path/to/video.mp4",
bboxes=[[864, 383, 975, 620], [705, 229, 782, 402]],
labels=[1, 1], # 正向标签
stream=True,
)视觉提示(兼容 SAM 2)#
SAM 3 完全向后兼容 SAM 2 的视觉提示,可用于单对象分割:
基础的 SAM 接口与 SAM 2 的行为完全相同,只分割视觉提示(点、框或掩码)指定的区域。
from ultralytics import SAM
model = SAM("sam3.pt")
# 单点提示——分割指定位置的对象
results = model.predict(source="path/to/image.jpg", points=[900, 370], labels=[1])
results[0].show()
# 多个点——使用多个点提示分割单个对象
results = model.predict(source="path/to/image.jpg", points=[[400, 370], [900, 370]], labels=[1, 1])
# 框提示——分割边界框内的对象
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 工作流:
| 基准测试 | 零样本 AP | 10 样本 AP | 此前最佳结果(10 样本) |
|---|---|---|---|
| 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 掩码 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 对比#
比较 SAM 3、SAM 2、SAM、MobileSAM 和 FastSAM,以及 Ultralytics YOLO 分割模型(YOLOv8、YOLO11、YOLO26)的大小、参数量和 GPU 推理速度:
| 模型 | 大小 (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 |
| FastSAM-s 使用 YOLOv8 骨干网络 | 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 显存的 NVIDIA RTX PRO 6000 上运行,使用 torch==2.9.1 和 ultralytics==8.4.19。如需复现此测试:
from ultralytics import ASSETS, SAM, YOLO, FastSAM
# 分析 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)
# 分析 FastSAM-s
model = FastSAM("FastSAM-s.pt")
model.info()
model(ASSETS)
# 分析 YOLO 模型
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 头;对 YOLOv8/YOLO11 不执行任何操作评估指标#
SAM 3 引入了专为 PCS 任务设计的新指标,并与熟悉的 F1 分数、精确率和召回率等指标互为补充。
分类门控 F1(CGF1)#
结合定位与分类的主要指标:
CGF1 = 100 × pmF1 × IL_MCC
其中:
- pmF1(正类宏平均 F1):衡量正样本上的定位质量
- IL_MCC(图像级 Matthews 相关系数):衡量二元分类准确率(“是否存在该概念?”)
为什么使用这些指标?#
传统 AP 指标未考虑校准,因此模型在实际应用中难以使用。通过仅评估置信度高于 0.5 的预测,SAM 3 的指标促使模型实现良好校准,并模拟交互式 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 可以与多模态大语言模型(MLLM)结合,以处理需要推理的复杂查询,其思路类似于 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 和 SAM 3.1 还为 Ultralytics Platform 上的智能标注功能提供支持;其中 SAM 3.1 是默认模型,你只需点击几下即可标注图像。
支持图像预测。对于本页图像示例中使用
sam3.pt的位置,请改用sam3.1_multiplex.pt:点和框提示使用SAM("sam3.1_multiplex.pt"),文本和示例提示使用SAM3SemanticPredictor。目前尚不支持 Object Multiplex 视频跟踪,因此视频预测器仍请使用sam3.pt。Meta 的基准测试请参阅 SAM 3.1。特性 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)
- 14 亿个合成掩码,涵盖 3800 万个名词短语(SA-Co/SYN)
- 15 个外部数据集,经困难负样本增强(SA-Co/EXT)
基准数据:
- 21.4 万个不同概念,涵盖 12.6 万张图像/段视频
- 概念数量是现有基准的 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 在开放词汇概念分割方面表现出色,准确度接近人类水平;差距主要体现在有歧义或主观性较强的概念上(例如,“小窗户”“舒适的房间”)。