news 2026/5/7 8:10:20

SAM 3: 用概念分割万物!与SAM 2和YOLO 对比

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
SAM 3: 用概念分割万物!与SAM 2和YOLO 对比

SAM 3(Segment Anything Model 3) 是 Meta 发布的用于可提示概念分割 (PCS)的基础模型。在 SAM2的基础上,SAM 3 引入了一项全新的能力:detect、segment 和 track 通过文本提示、图像示例或两者指定的所有实例。与之前每个提示分割单个对象的 SAM 版本不同,SAM 3 可以在图像或视频中找到并 segment 概念的每一次出现,这与现代 实例分割中的开放词汇目标保持一致。

SAM 3 现已完全集成到ultralytics包,提供对概念 segment 的原生支持,支持文本提示、图像示例提示以及视频 track 功能。

概述

SAM 3 在可提示概念分割方面比现有系统实现了2 倍的性能提升,同时保持并改进了 SAM 2 在交互式 视觉分割方面的能力。该模型擅长开放词汇分割,允许用户使用简单的名词短语(例如,“黄色校车”、“条纹猫”)或提供目标对象的示例图像来指定概念。这些功能补充了依赖于简化 预测 和 跟踪工作流的生产就绪管道。

可提示概念分割 (PCS) 是什么?

PCS 任务将一个concept prompt作为输入,并返回所有匹配对象实例的具有唯一标识的 segmentation masks。concept prompt 可以是:

  • 文本:简单的名词短语,如“红苹果”或“戴帽子的人”,类似于 零样本学习
  • 图像示例:围绕示例对象(正或负)的边界框,用于快速泛化
  • 组合:文本和图像示例相结合,实现精确控制

这与传统的视觉提示(点、框、掩码)不同,传统视觉提示仅分割单个特定对象实例,这由最初的SAM系列推广开来。

关键性能指标

架构

SAM 3 由一个共享感知编码器 (PE) 视觉骨干网络的检测器跟踪器组成。这种解耦设计避免了任务冲突,同时实现了图像级 detect 和视频级 track,并提供与 Ultralytics Python用法和 CLI用法兼容的接口。

核心组件

SA-Co数据集

SAM 3 在Segment Anything with Concepts (SA-Co)上进行训练,这是 Meta 迄今为止最大、最多样化的分割数据集,超越了诸如 COCO和 LVIS 等常见基准。

训练数据

  • 检测器:基于DETR的架构,用于图像级概念检测。

    • 用于名词短语提示的文本编码器
    • 用于基于图像提示的范例编码器
    • 融合编码器,根据提示条件化图像特征
    • 新颖的存在头,将识别(“是什么”)与定位(“在哪里”)解耦
    • 用于生成实例分割掩码的Mask头
  • 跟踪器:继承自 SAM2的基于内存的视频分割

    • 提示编码器、掩码解码器、记忆编码器
    • 用于存储跨帧对象外观的内存库
    • 在多目标场景中,借助卡尔曼滤波等技术实现时间消歧
  • 存在令牌:一个学习到的全局令牌,用于预测目标概念是否存在于图像/帧中,通过将识别与定位分离来改进检测。

    主要创新

  • 解耦识别与定位:存在头部全局预测概念存在,而提议查询仅关注定位,从而避免了冲突的目标。
  • 统一的概念和视觉提示: 在单个模型中同时支持PCS(概念提示)和PVS(视觉提示,如SAM 2的点击/框)。
  • 交互式示例 refinement:用户可以添加正面或负面图像示例以迭代地 refinement 结果,模型会泛化到相似对象,而不仅仅是修正单个实例。
  • 时序消歧:利用 masklet 检测分数和周期性重新提示来处理视频中的遮挡、拥挤场景和 track 失败,与实例分割和track最佳实践保持一致。

✅SAM系列+科研学术大礼包无偿获取

✅1v1就.业/技.术.指.导+人工智能六大方向学习路线

✅学.术.论.文.辅.导/Kaggle带队/项.目/专.利.辅.导

这份【2026年最新人工智能六大方向学习路线

从基础入门→科研写作→项目实战→就业进阶带你从 0 逆袭技术大佬!

精选资料包:【一】 人工智能六大方向学习路线

【二】AI基础/深度学习/机器学习/NLP/Pytorch/CV等AI教程

【三】人工智能电子书合集【OpenCV系列书、西瓜书、花书等】

【四】李飞飞+吴恩达+李宏毅等大神合集

【五】自动驾驶+知识图谱+推荐系统等专题资.料

【六】AI交叉学科顶级论文及科研写作工具模板等

基准数据

TheSA-Co评估基准包含21.4万个独特短语,涵盖12.6万张图像和视频,提供了比现有基准多50倍以上的概念。它包括:

SA-Co/Gold:7个领域,经过三重标注以衡量人类性能极限SA-Co/Silver:10个领域,单次人工标注SA-Co/BronzeSA-Co/Bio:9个适用于概念分割的现有数据集SA-Co/VEval:包含3个领域(SA-V、YT-Temporal-1B、SmartGlasses)的视频基准

数据引擎创新

SAM 3 的可扩展人机协作数据引擎通过以下方式实现了2 倍的标注吞吐量

  • AI 注释器:基于lama的模型提出各种名词短语,包括硬负例
  • AI 验证器:经过微调的多模态LLM以接近人类的性能验证掩码质量和详尽性
  • 主动挖掘:将人类精力集中在 AI 难以处理的具有挑战性的失败案例上
  • 本体驱动:利用基于Wikidata的大型本体进行概念覆盖

安装

SAM 3 在 Ultralytics8.3.237 版本及更高版本中可用。通过以下方式安装或升级:

pip install -U ultralytics

如何使用 SAM 3:概念 segment 中的多功能性

SAM 3 通过不同的预测器接口,同时支持可提示概念分割 (PCS) 和可提示视觉分割 (PVS) 任务:

支持的任务和模型

概念分割示例

使用文本提示进行segment

基于文本的概念分割

使用文本描述查找并 segment 概念的所有实例。文本提示需要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"])
使用图像范例进行segment

基于图像样本的分割

使用边界框作为视觉提示来查找所有相似实例。这还需要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]])
基于特征的推理以提高效率

重用图像特征进行多重查询

提取图像特征一次,并将其重复用于多个segmentation查询,以提高效率。

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)

视频概念 segment

使用边界框跨视频跟踪概念

结合视觉提示的视频跟踪

使用边界框提示在视频帧中检测和跟踪目标实例。

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 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")带有视觉提示(点/框/掩码)将进行segment仅特定对象在该位置,就像 SAM 2 一样。进行分割某个概念的所有实例,使用SAM3SemanticPredictor带有文本或示例提示,如上所示。

性能基准

图像分割

SAM 3 在多个基准测试中取得了最先进的结果,包括 LVIS 和 COCO for segmentation 等真实世界数据集:

视频 segment 性能

SAM 3 在 DAVIS 2017 和 YouTube-VOS 等视频基准测试中,相较于 SAM 2 和此前最先进的技术,展现出显著改进:

小样本适应

SAM 3 擅长以最少示例适应新领域,这与 以数据为中心的 AI 工作流密切相关:

交互式细化效果

SAM 3 的基于概念的示例提示比视觉提示收敛速度快得多:

对象计数准确性

SAM 3 通过分割所有实例提供准确的计数,这是 目标计数 中的常见需求:

SAM 3 vs SAM 2 vs YOLO 对比

在此,我们将SAM 与SAM 及YOLO26模型的功能进行比较:

在NVIDIA PRO 6000 上进行的性能测试,使用torch==2.9.1ultralytics==8.4.19.

要点

  • SAM 3:最适合开放词汇概念分割,通过文本或示例提示查找概念的所有实例
  • SAM 2:最适合在图像和视频中使用几何提示进行交互式单目标分割
  • YOLO26:最适合实时、高速分割任务,支持NMS端到端推理,可导出多种格式,适用于GPU、CPU和边缘设备部署

SAM 与 YOLO 的比较

将SAM 、SAM 、SAM、MobileSAM 和FastSAM Ultralytics YOLO 模型(YOLOv8、YOLO11、YOLO26)在模型大小、参数数量和GPU 进行对比:

本次比较展示了SAM变体和YOLO分割模型在模型尺寸和速度上的显著差异。尽管SAM提供了独特的自动分割能力,但YOLO模型,特别是YOLOv8n-seg、YOLO11n-seg和YOLO26n-seg,则显著更小、更快且计算效率更高。

测试在配备 96GB 显存的 NVIDIA RTX PRO 6000 上运行,使用torch==2.9.1ultralytics==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 分数、精确度 和 召回率 等熟悉度量。

分类门控F1 (CGF1)

结合定位和分类的主要指标是:

CGF1 = 100 × pmF1 × IL_MCC

其中:

  • pmF1(正向宏F1):衡量正样本上的定位质量
  • IL_MCC(图像级马修斯相关系数):衡量二元分类准确性(“概念是否存在?”)

为什么选择这些指标?

传统的 AP 指标不考虑校准,使得模型在实践中难以使用。通过仅评估置信度高于 0.5 的预测,SAM 3 的指标强制执行良好的校准,并模拟交互式 predict 和 track 循环中的实际使用模式。

关键消融实验和见解

存在头的影响

存在头将识别与定位解耦,提供了显著改进:

存在头提供了+5.7 CGF1 的提升(+9.9%),主要提高了识别能力 (IL_MCC +6.5%)。

难例负样本的影响

难负样本对于开放词汇识别至关重要,将 IL_MCC 提高了54.5%(0.44 → 0.68)。

训练数据扩展

高质量人工标注相比单独使用合成数据或外部数据,能带来显著提升

应用

SAM 3 的概念分割能力开辟了新的应用场景:

  • 内容审核:在媒体库中查找所有特定内容类型的实例
  • 电子商务:在目录图像中分割特定类型的所有产品,支持自动标注。
  • 医学成像:识别特定组织类型或异常的所有出现
  • 自主系统:按类别 track 交通标志、行人或车辆的所有实例
  • 视频分析:计数并 track 所有穿着特定服装或执行动作的人
  • 数据集标注:快速标注稀有目标类别的所有实例
  • 科学研究:量化并分析所有符合特定标准的样本

SAM 3 代理:扩展语言推理

SAM 3 可以与多模态大型语言模型 (MLLM) 结合,以处理需要推理的复杂查询,其理念类似于 OWLv2 和 T-Rex 等开放词汇系统。

在推理任务上的性能

复杂查询示例

SAM 3 代理可以处理需要推理的查询:

  • “坐着但没有拿着礼品盒的人”
  • “离相机最近的没有戴项圈的狗”
  • “比人的手大的红色物体”

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} }

常见问题

SAM 3 是何时发布的?

SAM 3 由 Meta 于2025 年 11 月 20 日发布,并自版本 8.3.237(PR #22897) 起已完全集成到 Ultralytics 中。现已全面支持 预测模式和 track 模式。

SAM 3 是否已集成到 Ultralytics 中?

没错!SAM 已完全集成到Ultralytics Python ,涵盖概念分割、SAM 视觉提示以及多目标视频跟踪功能。SAM 还为Ultralytics 智能标注功能提供支持,您只需点击几下即可对图像进行标注。

可提示概念分割 (PCS) 是什么?

PCS 是 SAM 3 中引入的一项新任务,它用于 segment 图像或视频中视觉概念的所有实例。与针对特定对象实例的传统 segment 不同,PCS 能够找到某个类别的所有出现。例如:

  • 文本提示:“黄色校车” → 分割场景中所有黄色校车
  • 图像示例:框选一只狗 → segment图像中所有狗
  • 组合:“条纹猫” + 示例框 → segment 所有与示例匹配的条纹猫

SAM 3与SAM 2有何不同?

SAM 3 保持与 SAM 2 视觉提示的向后兼容性,同时增加了基于概念的功能。

SAM 3使用哪些数据集进行训练?

SAM 3 在Segment Anything with Concepts (SA-Co)数据集上进行训练:

训练数据

  • 520 万张图像,包含400 万个独特的名词短语(SA-Co/HQ) - 高质量人工标注
  • 5.25 万个视频,包含2.48 万个独特的名词短语(SA-Co/VIDEO)
  • 1.4B 合成遮罩遍及38M 名词短语(SA-Co/SYN)
  • 15 个外部数据集使用难分辨的负样本进行了丰富 (SA-Co/EXT)

基准数据

  • 214K 独特概念遍及126K 图像/视频
  • 比现有基准多 50 倍的概念(例如,LVIS 有约 4K 个概念)
  • 对 SA-Co/Gold 进行三重标注,以衡量人类性能边界

这种大规模和多样性使得 SAM 3 能够实现跨越开放词汇概念的卓越零样本泛化能力。

在分割任务中,SAM 与 YOLO26 相比表现如何?

SAM 和 YOLO26 适用于不同的应用场景:

SAM 3 优势

  • 开放词汇:通过文本提示分割任何概念,无需训练
  • 零样本:立即适用于新类别
  • 交互式:基于示例的 refinement 泛化到相似对象
  • 基于概念:自动查找某个类别的所有实例
  • 精度:LVIS 零样本实例分割的 47.0 AP

YOLO26 的优势

  • 速度:采用NMS端到端设计,推理速度提升数个数量级
  • 效率:模型体积缩小了539倍(6.4MB 对比 3.45GB)
  • 资源友好型:可在边缘设备和移动设备上运行
  • 实时:针对生产部署进行了优化

推荐

  • 使用SAM 3进行灵活的开放词汇segmentation,您需要找到由文本或示例描述的概念的所有实例
  • 在已知类别的高速生产部署场景中,请使用YOLO26
  • 使用SAM 2进行交互式单目标segmentation,并结合几何提示

SAM 3能处理复杂的语言查询吗?

SAM 3 专为简单名词短语设计(例如,“红苹果”,“戴帽子的人”)。对于需要推理的复杂查询,将 SAM 3 与 MLLM 结合作为SAM 3 Agent

简单查询 (原生SAM 3):

  • “黄色校车”
  • “条纹猫”
  • “戴着红帽子的人”

复杂查询(带MLLM的SAM 3 Agent)

  • “坐着但没有拿着礼品盒的人”
  • “离相机最近的没有项圈的狗”
  • “比人的手大的红色物体”

SAM 3 代理通过将 SAM 3 的分割与 MLLM 推理能力相结合,在 ReasonSeg 验证中实现了76.0 GIoU(而之前的最佳成绩为 65.0,提高了 16.9%)。

SAM 3 与人类表现相比,准确度如何?

在 SA-Co/Gold 基准测试中,采用三重人工标注:

  • 人工下限:74.2 CGF1(最保守的标注者)
  • SAM 3 性能:65.0 CGF1
  • 成就:估计人类下限的88%
  • 人类上限:81.4 CGF1(最宽松的标注者)

SAM 3 在开放词汇概念分割方面取得了接近人类水平的强大性能,差距主要体现在模糊或主观概念(例如,“小窗户”、“舒适的房间”)上。

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/4/10 10:02:14

如何快速掌握MouseClick:跨平台鼠标连点器完整指南

如何快速掌握MouseClick:跨平台鼠标连点器完整指南 【免费下载链接】MouseClick 🖱️ MouseClick 🖱️ 是一款功能强大的鼠标连点器和管理工具,采用 QT Widget 开发 ,具备跨平台兼容性 。软件界面美观 ,操作…

作者头像 李华
网站建设 2026/4/10 10:00:01

Spring源码的解析

大家在spring框架中都知道加注解,还有ioc容器,还有一开始就会加载配置类,然后自动创建对象放入ioc中,这些是怎么完成的呢?下面我们来自己定义一下spring:先来创建主启动类:package com.code.liy…

作者头像 李华
网站建设 2026/4/10 9:58:46

OpenClaw夜间值守方案:Kimi-VL-A3B-Thinking监控告警自动化

OpenClaw夜间值守方案:Kimi-VL-A3B-Thinking监控告警自动化 1. 为什么需要夜间自动化监控? 凌晨3点的服务器告警短信,可能是每个运维人员最不想收到的"礼物"。去年我负责的一个项目就曾因为半夜的磁盘爆满问题,导致次…

作者头像 李华
网站建设 2026/4/10 9:58:21

查老板查企业:合法避坑指南+高效工具推荐

查老板查企业,最核心的需求是合法、高效地获取关联信息和风险情况,避免踩坑。我之前合作项目时吃过亏,后来发现用风鸟企业查询平台能一站式解决这些问题——它不仅数据源合规,还能查多节点关联关系和AI智能解读风险。接下来我会分…

作者头像 李华
网站建设 2026/4/10 9:57:50

Dify大模型应用开发平台实战:从Prompt工程到生产级AI工作流蛹

一、什么是requests? requests 是一个用于发送HTTP请求的 Python 库。 它可以帮助你: 轻松发送GET、POST、PUT、DELETE等请求 处理Cookie、会话等复杂性 自动解压缩内容 处理国际化域名和URL 二、应用场景 requests 广泛应用于以下实际场景: …

作者头像 李华