SAM 3:基于概念的分割 (Segment Anything with Concepts)
自 version 8.3.237 (PR #22897) 起,SAM 3 已完全集成到 Ultralytics 包中。请安装或升级到 pip install -U ultralytics 以使用所有 SAM 3 功能,包括基于文本的概念分割、图像示例提示和视频跟踪。

SAM 3 (Segment Anything Model 3) 是 Meta 发布的基础模型,用于 Promptable Concept Segmentation (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 在 Promptable Concept Segmentation 方面实现了 2× 性能提升,同时保持并改进了 SAM 2 在交互式 视觉分割 方面的能力。该模型擅长开放词汇分割,允许你使用简单的名词短语(例如“黄色校车”、“条纹猫”)或提供目标对象的示例图像来指定概念。这些能力与依赖精简 predict和track 工作流的生产就绪型流水线相辅相成。

什么是可提示概念分割 (PCS)?
PCS 任务将 概念提示 作为输入,并为 所有匹配的对象实例 返回具有唯一标识的分割掩码。概念提示可以是:
- 文本: 类似于 零样本学习
- 的简单名词短语,如“红苹果”或“戴帽子的那个人”图像示例
- : 围绕示例对象(正向或负向)的 BBox,用于快速泛化组合
: 同时使用文本和图像示例以实现精确控制这与传统的视觉提示(点、框、掩码)不同,后者仅分割单个特定对象实例,正如最初的 .
SAM 家族
| 指标 | 关键性能指标 |
|---|---|
| SAM 3 成就 | 47.0LVIS Zero-Shot Mask AP |
| (vs 前最佳 38.5, +22% 提升) | SA-Co Benchmark2× 优于 |
| 现有系统 | 推理速度 (H200 GPU)30 ms |
| 每张图像,包含 100+ 个检测到的对象 | 视频性能 |
| 约 5 个并发对象时接近实时 | MOSEv2 VOS Benchmark60.1 J&F |
| 交互式精修 | (+25.5% 优于 SAM 2.1, +17% 优于之前 SOTA)+18.6 CGF1 |
| 3 个示例提示后的提升 | 人类表现差距达到 88% |
SA-Co/Gold 估计下限有关生产中模型指标和权衡的背景信息,请参阅 和模型评估见解.
架构
YOLO 性能指标SAM 3 由一个 和检测器和一个 跟踪器组成,它们共享一个 Perception Encoder (PE) 视觉骨干网络。这种解耦设计避免了任务冲突,同时支持图像级检测和视频级跟踪,并提供与 Ultralytics 兼容的接口。和Python 使用方法.
核心组件
-
CLI 使用方法: 检测器基于 DETR 的架构
- ,用于图像级概念检测
- 用于名词短语提示的文本编码器
- 用于基于图像提示的示例编码器
- 融合编码器,用于调节提示上的图像特征新颖的 存在头 (presence head)
- ,将识别(“是什么”)与定位(“在哪里”)解耦
-
用于生成实例分割掩码的掩码头跟踪器SAM 2
- : 继承自
- 的基于内存的视频分割
- 提示编码器、掩码解码器、内存编码器用于跨帧存储对象外观的内存库时序消歧,通过诸如
-
Kalman filter 等技术在多对象设置中辅助

: 一种学习到的全局标记,用于预测目标概念是否存在于图像/帧中,通过将识别与定位分离来改善检测。
- SAM 3 模型架构图主要创新
- 解耦识别与定位: 存在头全局预测概念是否存在,而提议查询仅专注于定位,避免了目标冲突。
- 统一概念与视觉提示: 在单个模型中支持 PCS(概念提示)和 PVS(视觉提示,如 SAM 2 的点击/框)。
- 交互式示例优化: 你可以添加正向或负向图像示例来迭代优化结果,模型会泛化到相似对象,而不仅仅是纠正单个实例。时序消歧: 使用 masklet 检测分数和周期性重新提示来处理视频中的遮挡、拥挤场景和跟踪失败,与
实例分割和跟踪最佳实践保持一致。
SAM 3 是在 Segment Anything with Concepts (SA-Co) 上进行训练的,这是 Meta 迄今为止规模最大、种类最丰富的分割数据集,超越了 COCO和LVIS.
训练数据
| 数据集组件 | 描述 | 规模 |
|---|---|---|
| SA-Co/HQ | 来自 4 阶段数据引擎的高质量人工标注图像数据 | 520 万张图像,400 万个唯一名词短语 |
| SA-Co/SYN | 由 AI 在无需人工干预的情况下标记的合成数据集 | 3800 万个名词短语,14 亿个掩码 |
| SA-Co/EXT | 包含 15 个外部数据集,并补充了难负样本 | 视来源而定 |
| SA-Co/VIDEO | 带有时间跟踪的视频标注 | 52500 个视频,24800 个唯一名词短语 |
基准数据
该 SA-Co 评估基准 包含 214000 个唯一短语 覆盖 126000 张图像和视频,提供的概念比现有基准多出 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 验证器:经过微调的 多模态 LLM 以接近人类的表现验证掩码质量和穷尽性
- 主动挖掘:将人类精力集中在 AI 处理困难的失败案例上
- 本体驱动:利用基于 Wikidata 的大型本体来实现概念覆盖
安装
SAM 3 可在 Ultralytics version 8.3.237 及更高版本中使用。通过以下方式安装或升级:
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 = dict(
conf=0.25,
task="segment",
mode="predict",
model="sam3.pt",
half=True, # 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 = dict(conf=0.25, task="segment", mode="predict", model="sam3.pt", half=True, 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 for different concepts
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 = dict(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 = dict(conf=0.25, task="segment", mode="predict", model="sam3.pt", half=True)
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 = dict(conf=0.25, task="segment", mode="predict", imgsz=640, model="sam3.pt", half=True, 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 分割:
| 基准测试 (Benchmark) | 指标 | SAM 3 | 先前最佳 | 提升 |
|---|---|---|---|---|
| LVIS (zero-shot) | Mask AP | 47.0 | 38.5 | +22.1% |
| SA-Co/Gold | CGF1 | 65.0 | 34.3 (OWLv2) | +89.5% |
| COCO (zero-shot) | Box 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 数据集.
中进行快速实验
视频分割性能DAVIS 2017和YouTube-VOS:
| 基准测试 (Benchmark) | 指标 | SAM 3 | SAM 3 在视频基准测试(如 SAM 2.1 L)上相比 SAM 2 和之前的业内领先方案显示出显著提升 | 提升 |
|---|---|---|---|---|
| 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% |
少样本适应 (Few-Shot Adaptation)
SAM 3 擅长仅用少量示例即可适应新领域,这对于 以数据为中心的 AI 工作流非常重要:
| 基准测试 (Benchmark) | 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 通过分割所有实例提供精确计数,这是以下领域的一项常见需求:对象计数:
| 基准测试 (Benchmark) | 准确率 | 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 模型:
| 能力 | SAM 3 | SAM 2 | YOLO26n-seg |
|---|---|---|---|
| 概念分割 | ✅ 来自文本/样本的所有实例 | ❌ 不支持 | ❌ 不支持 |
| 视觉分割 | ✅ 单个实例 (SAM 2 兼容) | ✅ 单个实例 | ✅ 所有实例 |
| 零样本能力 | ✅ 开放词汇 | ✅ 几何提示 | ❌ 封闭集 |
| 交互式精修 | ✅ 样本 + 点击 | ✅ 仅限点击 | ❌ 不支持 |
| 视频追踪 | ✅ 带身份的多对象追踪 | ✅ 多对象 | ✅ 多对象 |
| LVIS Mask AP (零样本) | 47.0 | 不适用 | 不适用 |
| MOSEv2 J&F | 60.1 | 47.9 | 不适用 |
| 速度 (GPU, ms/im) | 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) | Parameters (M) | 速度 (GPU) (ms/im) |
|---|---|---|---|
| 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 with YOLOv8 backbone | 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)评估指标
SAM 3 引入了专为 PCS 任务设计的新指标,作为对诸如 F1 分数, precision分类recall.
分类门控 F1 (CGF1)
结合定位和分类的主要指标:
CGF1 = 100 × pmF1 × IL_MCC
其中:
- pmF1 (正向宏平均 F1):衡量正样本上的定位质量
- IL_MCC (图像级马修相关系数):衡量二分类准确度(“该概念是否存在?”)
为何使用这些指标?
传统的 AP 指标不考虑校准,导致模型在实践中难以使用。通过仅评估置信度高于 0.5 的预测,SAM 3 的指标强制要求良好的校准,并模拟交互式 predict和track 循环中的实际使用模式。
关键消融研究与见解
存在头 (Presence Head) 的影响
存在头将识别与定位解耦,提供了显著的改进:
| 配置 | 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 |
| 外部 + HQ | 51.8 | 0.71 | 73.2 |
| 全部三种 | 54.3 | 0.74 | 73.5 |
高质量的人工标注比单纯使用合成数据或外部数据能带来显著提升。关于数据质量实践的背景信息,请参见 数据收集与标注.
应用场景
SAM 3 的概念分割能力带来了新的用例:
- 内容审核:在媒体库中查找特定内容类型的所有实例
- 电子商务:分割目录图像中某类产品的所有实例,支持 auto-annotation
- 医学影像:识别特定组织类型或异常情况的所有出现位置
- 自动驾驶系统:按类别追踪交通标志、行人或车辆的所有实例
- 视频分析:计数并追踪所有穿着特定服装或执行特定动作的人
- 数据集标注:快速标注稀有对象类别的所有实例
- 科学研究:量化并分析所有符合特定标准的样本
SAM 3 Agent:扩展语言推理
SAM 3 可以与多模态大语言模型 (MLLM) 结合使用,以处理需要推理的复杂查询,这在精神上类似于像 OWLv2和T-Rex.
推理任务表现
| 基准测试 (Benchmark) | 指标 | 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 辅助,组合推理能力有限
- 稀有概念:对于训练数据中未充分表现的极端稀有或细粒度概念,性能可能会下降
引用
@inproceedings{sam3_2025,
title = {SAM 3: Segment Anything with Concepts},
author = {Anonymous authors},
booktitle = {Submitted to ICLR 2026},
year = {2025},
url = {https://openreview.net/forum?id=r35clVtGzw},
note = {Paper ID: 4183, under double-blind review}
}常见问题解答 (FAQ)
SAM 3 是什么时候发布的?
SAM 3 由 Meta 于 2025 年 11 月 20 日发布,并已完全集成到 Ultralytics 中。全面支持 version 8.3.237 (PR #22897。现已提供以下功能的完整支持:predict mode和追踪模式.
SAM 3 是否已集成到 Ultralytics 中?
是的!SAM 3 已完全集成到 Ultralytics Python 包中,包括概念分割、SAM 2 风格的视觉提示以及多对象视频追踪。SAM 3 还为 智能标注 功能提供支持,在 Ultralytics Platform 的选项 上,你可以通过几次点击来标注图像。
什么是可提示概念分割 (PCS)?
PCS 是 SAM 3 引入的一项新任务,用于分割图像或视频中 所有实例 的视觉概念。与针对特定对象实例的传统分割不同,PCS 会查找类别出现的所有位置。例如:
- 文本提示:“黄色校车” → 分割场景中所有的黄色校车
- 图像示例:围绕一只狗的框 → 分割图像中所有的狗
- : 围绕示例对象(正向或负向)的 BBox,用于快速泛化:“条纹猫” + 示例框 → 分割所有匹配该示例的条纹猫
SAM 3 与 SAM 2 有什么区别?
| 功能 | SAM 2 | SAM 3 |
|---|---|---|
| 任务 | 每个提示仅限单个对象 | 概念的所有实例 |
| 提示类型 | 点、框、掩码 | + 文本短语、图像示例 |
| 检测能力 | 需要外部检测器 | 内置开放词汇检测器 |
| 识别 | 仅基于几何 | 文本与视觉识别 |
| 架构 | 仅限追踪器 | 检测器 + 带有存在性检测头的追踪器 |
| 零样本性能 | 不适用(需要视觉提示) | 在 LVIS 上达到 47.0 AP,在 SA-Co 上性能提升 2 倍 |
| 交互式精修 | 仅限点击 | 点击 + 示例泛化 |
SAM 3 保持了与 SAM 2 视觉提示的向后兼容性,同时增加了基于概念的功能。
SAM 3 是使用哪些数据集训练的?
SAM 3 是在 Segment Anything with Concepts (SA-Co) 数据集上进行训练的:
训练数据:
- 520 万张图像SGD400 万个唯一名词短语 (SA-Co/HQ) - 高质量人工标注
- 5.25 万个视频SGD2.48 万个唯一名词短语 (SA-Co/VIDEO)
- 14 亿个合成掩码 覆盖 3800 万个名词短语 (SA-Co/SYN)
- 15 个外部数据集 通过难负样本 (hard negatives) 进行了增强 (SA-Co/EXT)
基准数据:
- 21.4 万个唯一概念 覆盖 12.6 万张图像/视频
- 50 倍 优于现有基准(例如 LVIS 拥有约 4000 个概念)
- SA-Co/Gold 上的三重标注,用于衡量人类性能边界
这种巨大的规模和多样性使 SAM 3 能够在开放词汇概念上实现卓越的零样本泛化。
SAM 3 在分割方面与 YOLO26 相比如何?
SAM 3 和 YOLO26 服务于不同的用例:
SAM 3 优势:
- 开放词汇:无需训练即可通过文本提示分割任何概念
- 零样本:可立即用于新类别
- 交互式:基于示例的细化可泛化到类似对象
- 基于概念:自动查找类别的所有实例
- 准确率:在 LVIS 零样本实例分割上达到 47.0 AP
YOLO26 优势:
- Speed:采用无 NMS 的端到端设计,推理速度快几个数量级
- 效率:模型小 539 倍(6.4MB 对比 3.45GB)
- 资源友好:可在边缘设备和移动设备上运行
- 实时:针对生产部署进行了优化
建议:
- 在处理长视频或大数据集时使用SAM 3 用于灵活的开放词汇分割,你需要找到由文本或示例描述的任何概念的所有实例
- 在处理长视频或大数据集时使用YOLO26 用于已知类别的高速生产部署
- 在处理长视频或大数据集时使用SAM 2 用于带有几何提示的交互式单对象分割
SAM 3 能处理复杂的语言查询吗?
SAM 3 专为简单名词短语设计(例如“红色苹果”、“戴帽子的男人”)。对于需要推理的复杂查询,请将 SAM 3 与 MLLM 结合使用,例如 SAM 3 Agent:
简单查询(原生 SAM 3):
- “黄色校车”
- “条纹猫”
- “戴红帽子的男人”
复杂查询(SAM 3 Agent 配合 MLLM):
- “坐着但没有拿着礼盒的人”
- “离镜头最近且没有项圈的狗”
- “比人手还大的红色物体”
SAM 3 Agent 实现了 76.0 gIoU 在 ReasonSeg 验证集上(对比之前的最佳值 65.0,提升 16.9%),通过将 SAM 3 的分割能力与 MLLM 的推理能力相结合。
SAM 3 的准确度与人类性能相比如何?
在具有三重人类标注的 SA-Co/Gold 基准测试中:
- 人类下界:74.2 CGF1(最保守的标注者)
- SAM 3 性能:65.0 CGF1
- 成就: 达到 达到人类下界估计值
- 人类上界:81.4 CGF1(最宽松的标注者)
SAM 3 在开放词汇概念分割上表现出接近人类水平的强劲性能,差距主要存在于模棱两可或主观概念上(例如“小窗户”、“舒适的房间”)。