Loading...

文章背景图

SAM 2:Meta 出品的图像与视频可提示分割基础模型|部署与使用全指南

2026-11-02
0
- 字
- 分钟
|

图1 SAM 2 架构示意图(Meta FAIR)

SAM 2:Meta 出品的图像与视频可提示分割基础模型|部署与使用全指南

项目仓库: https://github.com/facebookresearch/sam2

论文:SAM 2: Segment Anything in Images and Videos · 维护方:Meta AI FAIR · 语言:Python ≥ 3.10 · 框架:PyTorch ≥ 2.5.1 · 数据集:SA-V(最大视频分割数据集) · 最新版本:SAM 2.1


1 项目简介

SAM 2 是 SAM(Segment Anything)的继任者:把图像分割基础模型扩展到视频。它采用带流式内存的 Transformer 架构,可实时处理视频,在一帧上点一下/框一下对象,模型自动在整个视频中追踪该对象的掩码。Meta 用模型在环的数据引擎采集了 SA-V 数据集(迄今最大视频分割数据集)。

1.1 核心信息一览

项目项 内容
项目名称 SAM 2
仓库地址 github.com/facebookresearch/sam2
项目主页 ai.meta.com/sam2
在线 Demo sam2.metademolab.com
数据集 SA-V
最新版本 SAM 2.1(2024-09-30)
权重 hiera_tiny/small/base_plus/large 四档

1.2 适用场景

  • 视频对象分割与追踪(VOS)。
  • 图像自动掩码生成(兼容 SAM)。
  • 作为下游视频编辑、抠图、分析的前置模块。

1.3 能力边界(官方口径)

  • 需 Python ≥ 3.10、PyTorch ≥ 2.5.1。
  • 安装需 nvcc 编译自定义 CUDA 内核;编译失败可忽略,仅部分后处理功能受限。
  • Windows 强烈建议用 WSL。

2 功能特性

  • 图像 + 视频统一:图像视为单帧视频。
  • 流式内存 Transformer:实时视频处理。
  • 多对象追踪:SAM2VideoPredictor 支持独立每对象推理,可在追踪开始后再加新对象。
  • torch.compile 加速:vos_optimized=True 开启全模型编译。
  • SAM 2.1 权重:更优的改进检查点。
  • 训练/微调代码:training/README.md。
  • Web Demo 前后端:demo/README.md。

3 官方界面预览

在线 Demo:sam2.metademolab.com。

4 官方跳转链接汇总

类别 链接 说明
仓库 github.com/facebookresearch/sam2 源码
项目主页 ai.meta.com/sam2 论文与示例
数据集 SA-V 11M 视频掩码
安装 FAQ INSTALL.md 常见问题

5 前置要求与服务器配置

5.1 软件前提

  • Python ≥ 3.10。
  • PyTorch ≥ 2.5.1、torchvision ≥ 0.20.1。
  • CUDA toolkit(与 PyTorch CUDA 版本匹配,含 nvcc)。
  • 可选:jupyter、matplotlib(示例 Notebook)。

5.2 硬件建议

GPU 推理;模型四档从 tiny 到 large,显存需求从几 GB 到十几 GB。

6 方式一:pip 安装与图像/视频预测

git clone https://github.com/facebookresearch/sam2.git
cd sam2

pip install -e .
# 可选:Notebook 依赖
pip install -e ".[notebooks]"

# 下载权重
cd checkpoints && ./download_ckpts.sh && cd ..

6.1 图像预测

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(<your_image>)
    masks, _, _ = predictor.predict(<input_prompts>)

6.2 视频预测

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(<your_video>)
    frame_idx, object_ids, masks = predictor.add_new_points_or_box(state, <your_prompts>)
    for frame_idx, object_ids, masks in predictor.propagate_in_video(state):
        ...

7 模型权重

权重 配置
sam2.1_hiera_tiny.pt configs/sam2.1/sam2.1_hiera_t.yaml
sam2.1_hiera_small.pt configs/sam2.1/sam2.1_hiera_s.yaml
sam2.1_hiera_base_plus.pt configs/sam2.1/sam2.1_hiera_b+.yaml
sam2.1_hiera_large.pt configs/sam2.1/sam2.1_hiera_l.yaml

8 常用参数

参数 说明
vos_optimized=True 开启 torch.compile 加速 VOS
dtype=torch.bfloat16 半精度推理

9 常用运维命令

nvidia-smi
ls -lh checkpoints/

10 常见故障排查

  • CUDA 扩展编译失败:可忽略,不影响大多数结果;后处理功能可能受限。
  • PyTorch 版本过低:安装命令会自动升级到 ≥2.5.1。
  • Windows 安装问题:用 WSL。
  • 想升级到 SAM 2.1:先 pip uninstall SAM-2,再 git pull && pip install -e .。

11 风险与合规说明

  • 模型遵循仓库 LICENSE;商用前需核对。
  • SA-V 数据集下载即接受其研究许可。
  • 输出掩码版权由使用者承担;视频追踪不得用于侵权监控。

本文基于官方 README 整理,仅供学习与部署参考;以仓库最新说明为准。

评论交流

文章目录