文章详细介绍了 Meta 最新开源的 Segment Anything Model 3 (SAM 3),这是一个能够通过文本或点、框、掩码等视觉提示,对图像和视频中的开放词汇概念进行统一可提示分割的基础模型。该模型有效解决了传统图像分割模型难以处理预定义列表之外的精细概念的痛点。SAM 3 的核心创新在于其“可提示概念分割”能力,使其在 Meta 新构建的 SA-Co 基准测试中达到人类性能的 75%-80%,支持的概念数量远超现有基准。文章深入阐述了 SAM 3 的模型架构,该架构融合了 Meta Perception Encoder、DETR 和 SAM 2 的跟踪器模块。此外,文章还重点介绍了 Meta 如何通过一个创新的人工智能与人工标注闭环数据引擎,高效构建了包含超过 400 万个独特概念的大规模训练数据集。最后,文章提供了 SAM 3 的开源地址、详细的环境安装步骤和 Python 推理代码示例,极大地便利了开发者的快速上手和应用。

Meta正式发布并开源新一代Segment Anything Model 3(SAM 3),一个用于图像和视频中可提示分割的统一基础模型,能够通过文本提示或点、框、掩码等视觉提示来检测、分割和跟踪目标。
图像分割方向一直以来的难题是用户往往希望分割那些不在预定义列表中的概念,但传统模型通常只能分割特定目标。比如,现有模型可以轻松分割“人”这类常见对象,却难以处理如“红色条纹伞”这样更精细、更具体的视觉概念。
SAM 3 通过引入“可提示概念分割”能力,有效克服了这一局限:它能够根据文本提示或示例图像,自动识别并分割出所有符合该概念的实例。
SAM3跟踪一只毛发蓬松的金色寻回犬

SAM3跟踪穿白色球衣的球员

SAM 3 首次实现了对由简短文本短语或示例图像所定义的开放词汇概念的所有实例进行完整分割,能够处理数量远超以往的开放词汇提示。在Meta新构建的 SA-Co 基准测试中,该模型在包含 27 万个独特概念的数据集上达到了人类性能的 75%–80%,SAM3能支持的独特概念数量是现有基准的 50 倍以上。
开源地址:
ModelScope:
http://modelscope.cn/organization/facebook
GitHub:
01
模型架构:可提示概念分割
SAM 3 的模型架构延续并融合了 Meta 在人工智能领域的多项前沿成果。其中文本编码器与图像编码器均源自“Meta Perception Encoder”——这是Meta于今年四月开源的一个模型,它能构建更强大的计算机视觉系统,辅助用户完成图像识别、目标检测等日常任务。相较于此前使用的编码器,采用 Meta Perception Encoder 使模型性能实现了显著跃升。检测器组件基于 DETR 模型,这是首个将 Transformer 应用于目标检测的开创性工作。SAM 2 中所采用的记忆库与记忆编码器,则构成了当前跟踪器(Tracker)模块的基础。此外,还整合了多个开源组件,包括公开数据集、基准测试集和模型改进方法,以推动本项工作的持续进步。

02
基于人工智能与人工标注的新型数据引擎
为获取涵盖广泛类别与视觉领域的高质量标注图像,Meta构建了一个可扩展的数据引擎,将 SAM 3、人工标注员与 AI 模型整合为一个闭环系统,显著提升了标注效率:在处理“否定提示”(即图像/视频中不存在的概念)时,速度比纯人工快约 5 倍;即使在具有挑战性的细粒度领域,对于“肯定提示”,标注速度也比人工快 36%,通过这一人机协同系统,Meta构建一个包含超过400 万个独特概念的大规模、多样化训练数据集。

该引擎的流程如下:一个由 SAM 3 和基于 Llama 的图像字幕生成系统组成的 AI 管道,自动从海量图像和视频中挖掘内容,生成描述性字幕,解析为文本标签,并生成初始分割掩码(如上图中的“候选对象”)。
随后,人工标注员与 AI 标注员共同验证并修正这些候选结果,形成一个持续反馈的闭环机制——在快速扩展数据集覆盖范围的同时,不断优化数据质量。AI 标注员基于经过专门训练的 Llama 3.2v 模型,其在标注任务(如判断掩码质量是否达标、是否完整覆盖了图像中某一概念的所有实例)上的准确率,已达到甚至超越人类标注员水平。
03
基准测试数据集
为评估模型在大词汇量下的检测与分割能力,我们构建了全新的基准测试——Segment Anything with Concepts(SA-Co),专门用于图像与视频中的可提示概念分割。与以往基准相比,SA-Co 要求模型识别的语义概念数量大幅增加。SA-Co 数据集也开源,支持研究复现,并推动开放视觉分割领域的持续创新。

04
模型推理
环境安装:
# 1、创建新的conda环境conda create -n sam3 python=3.12conda deactivateconda activate sam3# 2、安装pytorch-cudapip install torch==2.7.0 torchvision torchaudio --index-url https://download.pytorch.org/whl/cu126# 3、克隆仓库并安装git clone https://github.com/facebookresearch/sam3.gitcd sam3pip install -e .# 3、安装额外的依赖# 跑notebook的examplepip install -e ".[notebooks]"# 开发环境pip install -e ".[train,dev]"
模型下载:
modelscope download --model facebook/sam3 --local_dir checkpoints
推理脚本:
import torch#################################### For Image ####################################from PIL import Imagefrom sam3.model_builder import build_sam3_image_modelfrom sam3.model.sam3_image_processor import Sam3Processor# Load the modelmodel = build_sam3_image_model()processor = Sam3Processor(model)# Load an imageimage = Image.open("<YOUR_IMAGE_PATH.jpg>")inference_state = processor.set_image(image)# Prompt the model with textoutput = processor.set_text_prompt(state=inference_state, prompt="<YOUR_TEXT_PROMPT>")# Get the masks, bounding boxes, and scoresmasks, boxes, scores = output["masks"], output["boxes"], output["scores"]#################################### For Video ####################################from sam3.model_builder import build_sam3_video_predictorvideo_predictor = build_sam3_video_predictor()video_path = "<YOUR_VIDEO_PATH>" # a JPEG folder or an MP4 video file# Start a sessionresponse = video_predictor.handle_request(request=dict(type="start_session",resource_path=video_path,))response = video_predictor.handle_request(request=dict(type="add_prompt",session_id=response["session_id"],frame_index=0, # Arbitrary frame indextext="<YOUR_TEXT_PROMPT>",))output = response["outputs"]
04
更多案例
点击阅读原文,即可跳转模型链接~
