- Published on
Segment Anything Model 完全解析:从 SAM 1 到 SAM 2 再到 SAM 3 的论文解读与实战指南
- Authors

- Name
- Youngju Kim
- @fjvbn20031
- 1. 概述:Segment Anything Model 的演进
- 2. SAM 1: Segment Anything (2023)
- 3. SAM 2: Segment Anything in Images and Videos (2024)
- 4. SAM 3: Segment Anything with Concepts (2025)
- 5. 三个模型的综合比较
- 6. 实战应用场景
- 7. 学习路线图
- 8. 参考资料
- 小测验
1. 概述:Segment Anything Model 的演进
Segment Anything Model(SAM)是 Meta AI Research 发布的图像·视频分割领域 Foundation Model 系列。正如 GPT 在 NLP 领域确立了「提示」范式一样,SAM 为 Computer Vision 分割引入了名为 Promptable Segmentation 的新范式。
| 版本 | 发布时间 | 核心能力 | 论文 |
|---|---|---|---|
| SAM 1 | 2023.04(ICCV 2023) | 图像可提示分割 | Segment Anything |
| SAM 2 | 2024.08 | 图像 + 视频实时分割 | SAM 2: Segment Anything in Images and Videos |
| SAM 3 | 2025.11(ICLR 2026) | 概念感知(Concept-Aware)分割 | SAM 3: Segment Anything with Concepts |
用一句话概括三个模型的核心演进方向:
SAM 1:「分割哪里(Where)?」→ SAM 2:「视频里的哪里?」→ SAM 3:「分割什么(What)?」
2. SAM 1: Segment Anything (2023)
2.1 论文信息
- 标题:Segment Anything
- 作者:Alexander Kirillov、Eric Mintun、Nikhila Ravi、Hanzi Mao 等(Meta AI Research)
- 发表:2023 年 4 月(arXiv),被 ICCV 2023 收录
- 论文:arxiv.org/abs/2304.02643
- GitHub:github.com/facebookresearch/segment-anything
- 许可证:Apache 2.0
2.2 三大核心贡献
SAM 1 同时提出了三件事。
- 新任务 — Promptable Segmentation:给定点、框、掩码、文本等任意提示,返回一个有效的分割掩码
- 新模型 — SAM:执行基于提示的分割的 Foundation Model
- 新数据集 — SA-1B:从 1,100 万张图像中提取出 11 亿个 掩码,是史上规模最大的分割数据集
2.3 架构详解
SAM 的架构被拆分为三个组件。其核心设计原则是只运行一次较重的图像编码器,再实时反复调用轻量的提示编码器与掩码解码器。
┌─────────────────────────────────────────────────────────┐
│ SAM Architecture │
│ │
│ ┌──────────────┐ ┌────────────────┐ │
│ │ Image Encoder │ │ Prompt Encoder │ │
│ │ (ViT-H/L/B) │ │ (Point/Box/ │ │
│ │ MAE 预训练 │ │ Mask/Text) │ │
│ └──────┬───────┘ └───────┬────────┘ │
│ │ │ │
│ └─────────┬─────────┘ │
│ ▼ │
│ ┌────────────────┐ │
│ │ Mask Decoder │ │
│ │ (Transformer │ │
│ │ 2-layer) │──→ 3 个掩码 + IoU 分数 │
│ └────────────────┘ │
└─────────────────────────────────────────────────────────┘
Image Encoder(图像编码器)
| 变体 | 参数量 | 检查点大小 |
|---|---|---|
| ViT-B | 91M | ~375 MB |
| ViT-L | 308M | ~1.25 GB |
| ViT-H(默认) | 636M | ~2.56 GB |
- 基于 MAE(Masked Autoencoder)预训练的 Vision Transformer
- 输入分辨率:1024×1024
- 输出:64×64 图像嵌入(256 维)
- 每张图像只运行一次 → 之后按提示复用
Prompt Encoder(提示编码器)
稀疏提示(点、框、文本):
- 点/框 → 位置编码(Positional Encoding)+ 学习到的类型嵌入(前景点 vs 背景点)
- 文本 → 通过 CLIP 文本编码器处理
密集提示(掩码):
- 通过卷积层嵌入后,与图像嵌入做逐元素(Element-wise)相加
Mask Decoder(掩码解码器)
- 改进版 Transformer Decoder(2 层)
- 嵌入维度:256,MLP 内部维度:2048
- Ambiguity-Aware 输出:针对同一个提示,同时预测 3 个候选掩码
- Whole(整体)、Part(部分)、Sub-part(子部分)三个层级
- 每个掩码都附带一个 IoU 置信度分数
- 在 GPU 上每个提示推理耗时约 ~50ms → 可支持实时交互
2.4 SA-1B 数据集
| 项目 | 数值 |
|---|---|
| 图像数量 | 1,100 万张 |
| 掩码数量 | 11 亿个(平均每张图像约 100 个) |
| 自动生成比例 | 99.1% |
| 原始分辨率 | ~3300×4950 |
| 数据集大小 | ~5TB(图像)+ ~20GB(标注) |
Data Engine — 三阶段构建流程
Phase 1: Assisted-Manual Phase 2: Semi-Automatic Phase 3: Fully Automatic
───────────────────── ────────────────────── ──────────────────────
• SAM + 人工标注员 • SAM 自动提出掩码建议 • 自动生成 32×32 网格点
• 基于浏览器的工具 • 人工补充遗漏的物体 • NMS + 置信度过滤
• 12 万张图像 / 430 万掩码 • 18 万张图像 / 590 万掩码 • 11 亿掩码中的绝大部分
质量验证:对 500 张图像(约 50,000 个掩码)进行人工审核,结果 94% 的 IoU 超过 0.90
2.5 核心创新
Zero-Shot Transfer(零样本迁移):无需微调即可立即应用于新领域
- 边缘检测(BSDS500 ODS: 0.768)
- Object Proposal 生成(LVIS AR@1000: 59.3)
- 医学影像、卫星图像、水下摄影、显微图像等
基准测试表现:
- 在 23 个数据集的 Zero-Shot 评估中,16 个 超过了现有 SOTA(RITM)
- 在 Oracle 选择方式下,23 个全部 超过了 RITM
- 在种族、性别等人口统计学群体之间不存在性能差异(公平性验证)
2.6 安装与运行
# 安装
pip install git+https://github.com/facebookresearch/segment-anything.git
# 可选依赖
pip install opencv-python pycocotools matplotlib onnxruntime onnx
下载检查点:
| 模型 | 文件 |
|---|---|
| ViT-H(默认) | sam_vit_h_4b8939.pth |
| ViT-L | sam_vit_l_0b3195.pth |
| ViT-B | sam_vit_b_01ec64.pth |
基于提示的分割:
from segment_anything import SamPredictor, sam_model_registry
import numpy as np
# 加载模型
sam = sam_model_registry["vit_h"](checkpoint="sam_vit_h_4b8939.pth")
sam.to(device="cuda")
# 创建预测器
predictor = SamPredictor(sam)
# 设置图像(图像嵌入只计算一次)
predictor.set_image(image) # numpy array (H, W, 3) RGB
# 用点提示进行预测
masks, scores, logits = predictor.predict(
point_coords=np.array([[500, 375]]), # (N, 2) 坐标
point_labels=np.array([1]), # 1=前景, 0=背景
multimask_output=True, # 返回 3 个候选掩码
)
自动掩码生成(Segment Everything):
from segment_anything import SamAutomaticMaskGenerator, sam_model_registry
sam = sam_model_registry["vit_h"](checkpoint="sam_vit_h_4b8939.pth")
sam.to(device="cuda")
mask_generator = SamAutomaticMaskGenerator(sam)
masks = mask_generator.generate(image)
# 每个掩码包含:segmentation, area, bbox, predicted_iou, stability_score
3. SAM 2: Segment Anything in Images and Videos (2024)
3.1 论文信息
- 标题:SAM 2: Segment Anything in Images and Videos
- 作者:Nikhila Ravi、Valentin Gabeur、Yuan-Ting Hu 等 15 人(Meta AI Research)
- 发表:2024 年 8 月(arXiv),2024 年 10 月修订
- 论文:arxiv.org/abs/2408.00714
- GitHub:github.com/facebookresearch/sam2
- 项目主页:ai.meta.com/sam2
- 许可证:Apache 2.0
3.2 相较 SAM 1 的变化
SAM 2 的核心问题:「能否把只在图像上成立的分割扩展到视频?」
| 比较项 | SAM 1 | SAM 2 |
|---|---|---|
| 输入 | 单张图像 | 图像 + 视频 |
| 图像编码器 | ViT(MAE 预训练) | Hiera(层级式,MAE 预训练) |
| 时序建模 | 无 | Memory Attention 机制 |
| 推理速度 | 每个提示约 50ms | 在图像上快 6 倍 |
| Occlusion 处理 | 不支持 | Occlusion Head |
| 交互方式 | 在图像上给提示 | 在视频的任意帧上给提示 |
3.3 架构详解
┌────────────────────────────────────────────────────────────────────┐
│ SAM 2 Streaming Architecture │
│ │
│ 帧 t-2 帧 t-1 帧 t(当前) │
│ │ │ │ │
│ ▼ ▼ ▼ │
│ ┌──────┐ ┌──────┐ ┌──────────────┐ │
│ │Hiera │ │Hiera │ │ Hiera Image │ │
│ │Enc. │ │Enc. │ │ Encoder │ │
│ └──┬───┘ └──┬───┘ └──────┬───────┘ │
│ │ │ │ │
│ ▼ ▼ ▼ │
│ ┌──────────────────────────────────────────┐ │
│ │ Memory Bank │ │
│ │ ┌──────────────┐ ┌───────────────────┐ │ │
│ │ │ FIFO Queue │ │ Prompted Frames │ │ │
│ │ │ (最近 N 帧) │ │ (M 个提示帧) │ │ │
│ │ └──────────────┘ └───────────────────┘ │ │
│ │ ┌──────────────────────────────────────┐│ │
│ │ │ Object Pointers (256-dim) ││ │
│ │ └──────────────────────────────────────┘│ │
│ └──────────────────┬───────────────────────┘ │
│ ▼ │
│ ┌──────────────────────────────┐ ┌───────────────┐ │
│ │ Memory Attention Module │←──│Prompt Encoder │ │
│ │ (L Transformer Blocks: │ │(Point/Box/ │ │
│ │ Self-Attn + Cross-Attn) │ │ Mask) │ │
│ └──────────────┬───────────────┘ └───────────────┘ │
│ ▼ │
│ ┌──────────────────────────┐ │
│ │ Mask Decoder │──→ 掩码 + IoU + Occlusion 分数 │
│ │ (+ Skip Connections) │ │
│ └──────────────────────────┘ │
└────────────────────────────────────────────────────────────────────┘
Hiera 图像编码器
SAM 1 的 ViT 被替换为 Hiera(层级式 ViT)。
- Stage 3+4(stride 16, 32)→ 通过 FPN 融合 → 图像嵌入(Memory Attention 的输入)
- Stage 1+2(stride 4, 8)→ 通过 Skip Connection 接入掩码解码器的上采样层
- 使用 Windowed Absolute Positional Embedding
Memory 机制(核心创新)
Memory Encoder:每处理完一帧后,将该帧特征与预测掩码存入 Memory Bank(投影到 64 维)
Memory Bank 结构:
- FIFO Queue:最近 N 个非提示帧 → 维持时序上下文
- Prompted Frames:最多 M 个提示帧 → 保留用户引导信息
- Object Pointers:256 维向量 → 被追踪物体的高层语义信息
Memory Attention Module:L 个 Transformer 模块
- Self-Attention:作用于当前帧特征内部
- Cross-Attention:与 Memory Bank 中的历史帧特征、Object Pointer 进行交互
Occlusion Prediction Head
处理视频中物体被遮挡或移出画面的情形:
- 逐帧输出可见性分数
- 对被遮挡的物体 → 抑制噪声预测
- 重新出现时 → 通过 Memory Bank 立即重新识别
3.4 SA-V 数据集
| 项目 | 数值 |
|---|---|
| 视频数量 | 50,900 个 |
| 总时长 | ~196 小时 |
| 总帧数 | ~420 万 |
| Spatio-temporal Masklet | 642,600 个 |
| 掩码总数 | 3,550 万个 |
| 分辨率 | 240p ~ 4K(平均 1,401×1,037) |
| 平均时长 | ~14 秒 |
| 场景分布 | 室内 54%,室外 46% |
| 地理多样性 | 47 个国家 |
| 相较既有数据集 | 视频量 4.5 倍,标注量53 倍 |
Data Engine 三阶段:
| 阶段 | 方法 | 速度 | 产出量 |
|---|---|---|---|
| Phase 1 | SAM per Frame | 37.8 秒/帧 | 16K masklet |
| Phase 2 | SAM + SAM 2 Mask | 7.4 秒/帧(提速 5.1 倍) | 63.5K masklet |
| Phase 3 | Full SAM 2 | 最快 | 剩余全部 |
3.5 模型变体与性能
SAM 2.1(2024 年 9 月发布,最新推荐版本):
| 模型 | 参数量 | FPS (A100) | SA-V Test (J&F) | MOSE Val (J&F) |
|---|---|---|---|---|
| sam2.1_hiera_tiny | 38.9M | 91.2 | 76.5 | 71.8 |
| sam2.1_hiera_small | 46.0M | 84.8 | 76.6 | 73.5 |
| sam2.1_hiera_base_plus | 80.8M | 64.1 | 78.2 | 73.7 |
| sam2.1_hiera_large | 224.4M | 39.5 | 79.5 | 74.6 |
主要基准测试:
| 基准 | SAM 2 (J&F) | 相较既有 SOTA |
|---|---|---|
| MOSE val | 77.9% | +6.2% |
| DAVIS 2017 val | 90.7% | +2.6% |
- 图像分割:相较 SAM 1 快 6 倍,同时准确率也有提升
- 交互效率:达到同等质量所需的用户干预减少 3 倍
3.6 安装与运行
# 安装
git clone https://github.com/facebookresearch/sam2.git && cd sam2
pip install -e .
# 下载检查点
cd checkpoints && ./download_ckpts.sh && cd ..
图像分割:
import torch
from sam2.build_sam import build_sam2
from sam2.sam2_image_predictor import SAM2ImagePredictor
checkpoint = "./checkpoints/sam2.1_hiera_large.pt"
model_cfg = "configs/sam2.1/sam2.1_hiera_l.yaml"
predictor = SAM2ImagePredictor(build_sam2(model_cfg, checkpoint))
with torch.inference_mode(), torch.autocast("cuda", dtype=torch.bfloat16):
predictor.set_image(image)
masks, _, _ = predictor.predict(
point_coords=np.array([[500, 375]]),
point_labels=np.array([1]),
)
视频分割:
import torch
from sam2.build_sam import build_sam2_video_predictor
checkpoint = "./checkpoints/sam2.1_hiera_large.pt"
model_cfg = "configs/sam2.1/sam2.1_hiera_l.yaml"
predictor = build_sam2_video_predictor(model_cfg, checkpoint)
with torch.inference_mode(), torch.autocast("cuda", dtype=torch.bfloat16):
state = predictor.init_state(video_path)
# 为特定帧添加提示
frame_idx, object_ids, masks = predictor.add_new_points_or_box(
state, frame_idx=0, obj_id=1,
points=np.array([[500, 375]]),
labels=np.array([1]),
)
# 将提示传播到整个视频
for frame_idx, object_ids, masks in predictor.propagate_in_video(state):
# 处理每一帧的掩码
process_masks(frame_idx, masks)
Hugging Face 集成:
from sam2.sam2_image_predictor import SAM2ImagePredictor
predictor = SAM2ImagePredictor.from_pretrained("facebook/sam2-hiera-large")
from sam2.sam2_video_predictor import SAM2VideoPredictor
predictor = SAM2VideoPredictor.from_pretrained("facebook/sam2-hiera-large")
4. SAM 3: Segment Anything with Concepts (2025)
4.1 论文信息
- 标题:SAM 3: Segment Anything with Concepts
- 作者:Nicolas Carion、Laura Gustafson、Yuan-Ting Hu 等 35 人(Meta AI Research)
- 发表:2025 年 11 月 20 日(arXiv),被 ICLR 2026 收录
- 论文:arxiv.org/abs/2511.16719
- GitHub:github.com/facebookresearch/sam3
- 项目主页:ai.meta.com/sam3
- 许可证:Apache 2.0
4.2 范式转变:Where → What
SAM 1 与 SAM 2 依赖于指出「哪里」需要分割的几何提示(点、框)。SAM 3 提出了一个根本不同的问题:要分割「什么」?
SAM 1: 点/框 → 「把这个位置的物体分离出来」
SAM 2: 点/框 + 视频追踪 → 「在视频中跟踪这个物体」
SAM 3: 文本/图像示例 → 「找出符合这个概念的所有物体」
Promptable Concept Segmentation(PCS) — SAM 3 提出的新任务:
- 文本提示:自然语言名词短语(例如 "yellow school bus")
- 图像示例(Exemplar):视觉示例图像
- 组合提示:同时使用文本 + Exemplar
- 既有提示:点、框、掩码(向下兼容 SAM 2)
4.3 架构详解
总参数量:848M(约 3.4 GB)
┌───────────────────────────────────────────────────────────────────────┐
│ SAM 3 Architecture │
│ │
│ ┌────────────┐ ┌────────────┐ ┌──────────────────┐ │
│ │ Text │ │ Exemplar │ │ Visual Prompts │ │
│ │ Encoder │ │ Encoder │ │ (Point/Box/Mask) │ │
│ │ "school │ │ [图像] │ │ │ │
│ │ bus" │ │ │ │ │ │
│ └─────┬──────┘ └─────┬──────┘ └────────┬─────────┘ │
│ └────────────┬───┘ │ │
│ ▼ │ │
│ ┌──────────────────────────────┐ │ │
│ │ Meta Perception Encoder │ │ │
│ │ (Vision-Language 联合空间) │ │ │
│ └──────────────┬───────────────┘ │ │
│ │ │ │
│ ┌────────┴────────┐ │ │
│ ▼ ▼ │ │
│ ┌───────────┐ ┌─────────────────┐ │ │
│ │ Presence │ │ Fusion Encoder │ │ │
│ │ Head │ │ (条件特征) │ │ │
│ │ "有/无" │ └────────┬────────┘ │ │
│ └───────────┘ │ │ │
│ ▼ │ │
│ ┌──────────────────┐ │ │
│ │ DETR Detector │←────────┘ │
│ │ (基于 Transformer│ │
│ │ 的检测) │ │
│ └────────┬─────────┘ │
│ │ │
│ ▼ │
│ ┌──────────────────────────────────────┐ │
│ │ SAM 2-inspired Tracker │ │
│ │ (Memory Bank + 时序一致性) │ │
│ └──────────────────┬───────────────────┘ │
│ ▼ │
│ 掩码 + 框 + 分数 │
└───────────────────────────────────────────────────────────────────────┘
核心创新:Presence Head
Presence Head 是 SAM 3 最重要的架构创新。它把识别(Recognition)与定位(Localization)分离开来。
既有方式:检测器同时执行「查找」与「判断是否存在」→ 优化目标冲突
SAM 3: Presence Head 先判断「是否存在」→ 检测器只专注于「查找」
效果:
| 配置 | CGF1 |
|---|---|
| 无 Presence Head | 57.6 |
| 有 Presence Head | 63.3(+5.7, +9.9%) |
Decoupled Detector-Tracker 设计
与 SAM 2 的单体(monolithic)结构不同,SAM 3 把 Detection 和 Tracking 拆分为独立模块:
- 共享:骨干网络(Perception Encoder)
- 分离:解码器头部(检测 vs 追踪)
- 优点:减少任务间干扰,可独立扩展规模
训练流程(4 个阶段)
| 阶段 | 内容 |
|---|---|
| 1 | Perception Encoder 预训练 |
| 2 | Detector 预训练 |
| 3 | 用 SA-Co 数据对 Detector 做微调 |
| 4 | 冻结(frozen)骨干网络后训练 Tracker |
4.4 SA-Co 数据集
SAM 3 使用 SA-Co(Segment Anything with Concepts)——史上规模最大、种类最丰富的分割数据集——进行训练。
训练数据
| 子集 | 内容 |
|---|---|
| SA-Co/HQ | 520 万张高质量图像,400 万条独特名词短语,5,200 万个掩码 |
| SA-Co/SYN | 3,800 万条合成短语,14 亿个掩码(用于大规模预训练) |
| SA-Co/VIDEO | 52,500 个视频,24,800 个独特概念,467,000+ 个 masklet |
总本体规模:2,200 万个实体(17 个上级类别,72 个下级类别)
评估基准
| 基准 | 说明 |
|---|---|
| SA-Co/Gold | 7 个多轮复核图像子集(最高质量) |
| SA-Co/Silver | 10 个领域专属图像子集 |
| SA-Co/VEval | 3 个视频评估子集 |
- 214,000 条独特短语,126,000 张图像/视频 → 相较既有的 COCO/LVIS,概念多样性超出 50 倍
其他公开数据集
- SA-FARI:10,000+ 个野生动物红外相机视频(100+ 个物种标注)
- FathomNet:海洋图像的水下分割基准
4.5 性能基准
图像分割(Zero-Shot)
| 基准 | 指标 | SAM 3 | 既有最佳 | 提升幅度 |
|---|---|---|---|---|
| LVIS | Mask AP | 47.0 | 38.5 (T-Rex2) | +22.1% |
| COCO | Box AP | 53.5 | 52.2 | +2.5% |
| SA-Co/Gold | CGF1 | 65.0 | 34.3 | +89.5%(约 2 倍) |
| ODinW | vs T-Rex2 | - | - | +20.1 AP |
视频分割
| 基准 | SAM 3 (J&F) | SAM 2.1 Large | 提升幅度 |
|---|---|---|---|
| MOSEv2 | 60.1 | 47.9 | +25.5% |
| DAVIS 2017 | 92.0 | 90.7 | +1.4% |
| LVOSv2 | 88.2 | 79.6 | +10.8% |
Exemplar 使用效果
| 提示组合 | CGF1 | 相较仅文本的提升 |
|---|---|---|
| 仅文本 | 46.4 | - |
| 文本 + 1 个 Exemplar | 57.6 | +11.2 |
| 文本 + 3 个 Exemplar | 65.0 | +18.6 |
速度与效率
- 推理速度:在 H200 GPU 上每张图像约 ~30ms(含 100+ 个物体检测)
- 模型大小:848M 参数(约 3.4 GB)
- 可在 16GB 显存的 GPU 上运行
- 相较人类表现:在 SA-Co/Gold 上达到人类下限的 88%
4.6 安装与运行
官方仓库
# 创建环境
conda create -n sam3 python=3.12
conda activate sam3
# 安装 PyTorch
pip install torch==2.7.0 torchvision torchaudio \
--index-url https://download.pytorch.org/whl/cu126
# 安装 SAM 3
git clone https://github.com/facebookresearch/sam3.git
cd sam3
pip install -e .
# 可选:用于 notebook 或开发
pip install -e ".[notebooks]"
pip install -e ".[train,dev]"
图像分割(文本提示):
from PIL import Image
from sam3.model_builder import build_sam3_image_model
from sam3.model.sam3_image_processor import Sam3Processor
model = build_sam3_image_model()
processor = Sam3Processor(model)
image = Image.open("path/to/image.jpg")
# 用文本提示进行概念分割
inference_state = processor.set_image(image)
output = processor.set_text_prompt(
state=inference_state,
prompt="yellow school bus"
)
masks, boxes, scores = output["masks"], output["boxes"], output["scores"]
视频追踪:
from sam3.model_builder import build_sam3_video_predictor
video_predictor = build_sam3_video_predictor()
response = video_predictor.handle_request(
request=dict(
type="start_session",
resource_path="path/to/video.mp4"
)
)
Ultralytics 集成
pip install -U ultralytics
from ultralytics.models.sam import SAM3SemanticPredictor
overrides = dict(
conf=0.25, task="segment", mode="predict",
model="sam3.pt", half=True
)
predictor = SAM3SemanticPredictor(overrides=overrides)
predictor.set_image("path/to/image.jpg")
# 同时分割多个概念
results = predictor(text=["person", "bus", "glasses"])
5. 三个模型的综合比较
5.1 架构比较
| 项目 | SAM 1 | SAM 2 | SAM 3 |
|---|---|---|---|
| 图像编码器 | ViT (MAE) | Hiera (MAE) | Meta Perception Encoder |
| 参数量 | 636M (ViT-H) | 224.4M (Hiera-L) | 848M |
| 提示 | 点、框、掩码、文本 | 点、框、掩码 | 文本、Exemplar、点、框、掩码 |
| 时序建模 | 无 | Memory Attention | Memory + Tracker |
| 检测器 | 无 | 无 | 基于 DETR |
| Occlusion | 不支持 | Occlusion Head | Occlusion + Presence Head |
| 输出 | 掩码 + IoU | 掩码 + IoU + Occlusion | 掩码 + 框 + 分数 + 概念 |
5.2 数据集比较
| 项目 | SA-1B (SAM 1) | SA-V (SAM 2) | SA-Co (SAM 3) |
|---|---|---|---|
| 图像 | 1,100 万 | - | 520 万(HQ) |
| 视频 | - | 50,900 | 52,500 |
| 掩码 | 11 亿 | 3,550 万 | 14 亿以上(含 SYN) |
| 概念/标签 | 无(Class-Agnostic) | 无 | 2,200 万个实体 |
| 独特短语 | - | - | 400 万 |
5.3 性能演进
| 基准 | SAM 1 | SAM 2/2.1 | SAM 3 |
|---|---|---|---|
| DAVIS 2017 (J&F) | N/A | 90.7 | 92.0 |
| MOSE val (J&F) | N/A | 74.6 | 60.1(MOSEv2,不同基准) |
| 图像速度对比 | 基准 | 快 6 倍 | 约 30ms/图像 |
| Zero-Shot 能力 | 几何层面 | 几何 + 时序层面 | 概念层面 |
6. 实战应用场景
6.1 适合使用 SAM 1 的场景
- 需要在单张图像上进行快速分割时
- 构建交互式标注工具
- 需要简单集成到既有流水线时(生态最为成熟)
6.2 适合使用 SAM 2 的场景
- 需要视频物体追踪时
- 实时视频流分析
- Occlusion(遮挡)处理很关键的场景
- 图像分割也需要比 SAM 1 更快的速度时
6.3 适合使用 SAM 3 的场景
- 想用自然语言检索来分割时(「找出所有汽车」)
- Open-Vocabulary 物体检测 + 分割
- 基于视觉示例的 Few-Shot 分割
- 大规模图像/视频自动打标
6.4 实际部署案例(SAM 3)
- Instagram Edits 应用:对视频中特定人物/物体施加动态特效
- Facebook Marketplace「View in Room」:AR 家具摆放(SAM 3 + SAM 3D)
- 野生动物保护:基于 SA-FARI 数据集的红外相机监测
7. 学习路线图
深入理解并运用 SAM 系列的分阶段学习指南。
7.1 前置知识
| 顺序 | 主题 | 推荐资料 |
|---|---|---|
| 1 | Vision Transformer (ViT) | An Image is Worth 16x16 Words |
| 2 | MAE (Masked Autoencoder) | Masked Autoencoders Are Scalable Vision Learners |
| 3 | DETR | End-to-End Object Detection with Transformers |
| 4 | CLIP | Learning Transferable Visual Models |
| 5 | Hiera | Hiera: A Hierarchical Vision Transformer without the Bells-and-Whistles |
7.2 核心论文阅读顺序
1. SAM 1 论文(2023)→ 确立基础概念
↓
2. SAM 2 论文(2024)→ 理解视频扩展
↓
3. SAM 3 论文(2025)→ 理解概念感知
↓
4. 实践各 GitHub 仓库中的 notebook
7.3 实践推荐
| 阶段 | 实践内容 | 难度 |
|---|---|---|
| 1 | SAM 1 自动掩码生成(Colab notebook) | 简单 |
| 2 | SAM 2 视频追踪实践 | 中等 |
| 3 | SAM 3 文本提示分割 | 中等 |
| 4 | 构建 SAM + Grounding DINO 流水线 | 困难 |
| 5 | 自定义数据集 Fine-tuning | 困难 |
| 6 | ONNX/TensorRT 转换与 Edge 部署 | 高级 |
7.4 相关后续研究
| 模型 | 特点 | 论文 |
|---|---|---|
| EfficientSAM | 轻量化 SAM(SAMI 蒸馏) | arxiv.org/abs/2312.00863 |
| FastSAM | 基于 CNN 的实时 SAM | arxiv.org/abs/2306.12156 |
| MobileSAM | 移动端优化 SAM | arxiv.org/abs/2306.14289 |
| Grounded SAM | Grounding DINO + SAM | github.com/IDEA-Research/Grounded-Segment-Anything |
| SAM-HQ | 高质量掩码 SAM | arxiv.org/abs/2306.01567 |
| SAM 3D | 3D 物体/人体重建(Meta) | ai.meta.com/sam3 |
8. 参考资料
核心论文
- Kirillov, A., Mintun, E., Ravi, N., et al. (2023). "Segment Anything". ICCV 2023. arxiv.org/abs/2304.02643
- Ravi, N., Gabeur, V., Hu, Y.-T., et al. (2024). "SAM 2: Segment Anything in Images and Videos". arxiv.org/abs/2408.00714
- Carion, N., Gustafson, L., Hu, Y.-T., et al. (2025). "SAM 3: Segment Anything with Concepts". ICLR 2026. arxiv.org/abs/2511.16719
前置知识论文
- Dosovitskiy, A., et al. (2021). "An Image is Worth 16x16 Words: Transformers for Image Recognition at Scale". ICLR 2021. arxiv.org/abs/2010.11929
- He, K., et al. (2022). "Masked Autoencoders Are Scalable Vision Learners". CVPR 2022. arxiv.org/abs/2111.06377
- Carion, N., et al. (2020). "End-to-End Object Detection with Transformers (DETR)". ECCV 2020. arxiv.org/abs/2005.12872
- Radford, A., et al. (2021). "Learning Transferable Visual Models From Natural Language Supervision (CLIP)". ICML 2021. arxiv.org/abs/2103.00020
- Ryali, C., et al. (2023). "Hiera: A Hierarchical Vision Transformer without the Bells-and-Whistles". ICML 2023. arxiv.org/abs/2306.00989
GitHub 仓库
- github.com/facebookresearch/segment-anything — SAM 1
- github.com/facebookresearch/sam2 — SAM 2
- github.com/facebookresearch/sam3 — SAM 3
解读与教程
- Ultralytics SAM Documentation — docs.ultralytics.com/models/sam
- Ultralytics SAM 2 Documentation — docs.ultralytics.com/models/sam-2
- Ultralytics SAM 3 Documentation — docs.ultralytics.com/models/sam-3
- Encord Blog: Segment Anything Model Explained — encord.com/blog/segment-anything-model-explained
- Roboflow: What is SAM 3 — blog.roboflow.com/what-is-sam3
- Meta AI Blog: Introducing SAM 3 — ai.meta.com/blog/segment-anything-model-3
项目主页与数据集
- Meta AI SAM 2 Project — ai.meta.com/sam2
- Meta AI SAM 3 Project — ai.meta.com/sam3
- SA-1B Dataset — ai.meta.com/datasets/segment-anything
- SA-V Dataset — ai.meta.com/datasets/segment-anything-video
小测验
Q1:《Segment Anything Model 完全解析:从 SAM 1 到 SAM 2 再到 SAM 3 的论文解读与实战指南》一文的主要内容是什么?
全面梳理 Meta AI 的 Segment Anything Model(SAM)系列。从 SAM 1(图像可提示分割)、SAM 2(视频实时分割)到 SAM 3(概念感知分割),系统整理架构、数据集、核心创新、性能基准,以及安装与运行方法。
Q2:什么是「2. SAM 1: Segment Anything (2023)」?
2.1 论文信息 标题:Segment Anything 作者:Alexander Kirillov、Eric Mintun、Nikhila Ravi、Hanzi Mao
等(Meta AI Research)发表:2023 年 4 月(arXiv),被 ICCV 2023 收录 论文:arxiv.org/abs/2304.02643
GitHub:github.com/facebookresearch/segment-anything 许可证:Apache 2.0 2.2 三大核心贡献 SAM
1 同时提出了三件事。
Q3:请说明「3. SAM 2: Segment Anything in Images and Videos (2024)」的核心概念。
3.1 论文信息 标题:SAM 2: Segment Anything in Images and Videos 作者:Nikhila Ravi、Valentin Gabeur、Yuan-Ting Hu 等 15 人(Meta AI Research)发表:2024 年 8 月(arXiv),2024 年 10 月修订 论文:arxiv.org/abs/2408.00714 GitHub:github.com/facebookresearch/sam2 项目主页: ai.meta.com/sam2 许可证:Apache 2.0 3...
Q4:「4. SAM 3: Segment Anything with Concepts (2025)」的主要内容是什么?
4.1 论文信息 标题:SAM 3: Segment Anything with Concepts 作者:Nicolas Carion、Laura
Gustafson、Yuan-Ting Hu 等 35 人(Meta AI Research)发表:2025 年 11 月 20 日(arXiv),被 ICLR
2026 收录 论文:arxiv.org/abs/2511.16719 GitHub:github.com/facebookresearch/sam3 项目主页:
ai.meta.com/sam3 许可证:Apache 2.0...
Q5:「5. 三个模型的综合比较」是怎样进行的?
5.1 架构比较 5.2 数据集比较 5.3 性能演进