SAM 2 (Segment Anything ):图像与视频通用分割模型

本文翻译整理自:https://github.com/facebookresearch/sam2

文章目录


一、关于 SAM 2


Segment Anything Model 2 (SAM 2) 是一个基础模型,旨在解决图像和视频中的可提示视觉分割问题。

将单帧图像视为视频的特殊形式,从而将 SAM 的能力扩展到视频领域。该模型采用简单的 Transformer 架构,并引入流式内存机制以实现实时视频处理。

构建了一个"模型在环"数据引擎,通过用户交互持续优化模型和数据,最终收集了迄今为止最大的视频分割数据集 SA-V

基于该数据集训练的 SAM 2 在广泛的任务和视觉领域都展现出强大性能。



相关链接资源



关键功能特性

1、统一图像与视频分割 :通过将图像视为单帧视频,实现统一处理框架

2、实时视频处理 :采用流式内存的 Transformer 架构,支持实时推理

3、多目标跟踪 :支持视频中多个对象的独立推理与跟踪

4、模型优化 :支持 torch.compile 全模型编译,显著提升推理速度

5、大规模数据集:基于 SA-V 数据集(当前最大视频分割数据集)训练


二、最新更新


1、2024-12-11 更新

  • 支持全模型 torch.compile 编译,通过设置 vos_optimized=True 可显著提升视频对象分割(VOS)推理速度
  • 更新 SAM2VideoPredictor 实现,支持多目标跟踪中独立的对象推理
  • 详情查看:<RELEASE_NOTES.md>

2、2024-09-30 更新

  • 发布 SAM 2.1 系列改进模型检查点(详见模型描述
  • 开放训练与微调代码:<training/README.md>
  • 发布网页版 Demo 代码:<demo/README.md>

三、安装指南


系统要求

  • Python ≥ 3.10
  • PyTorch ≥ 2.5.1 和 torchvision ≥ 0.20.1

安装步骤

bash 复制代码
git clone https://github.com/facebookresearch/sam2.git && cd sam2
pip install -e .

Windows 用户注意

强烈建议使用 WSL 配合 Ubuntu 环境安装。


额外依赖(运行示例笔记本)

bash 复制代码
pip install -e ".[notebooks]"

安装注意事项

1、推荐使用 Anaconda 创建新 Python 环境

2、需安装匹配 PyTorch 版本的 CUDA 工具包

3、若出现 Failed to build the SAM 2 CUDA extension 警告可忽略(仅影响部分后处理功能)

4、更多问题参考:INSTALL.md


四、快速入门


1、下载模型检查点

下载所有检查点:

bash 复制代码
cd checkpoints && ./download_ckpts.sh && cd ..

或单独下载:


2、图像分割示例

python 复制代码
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>)

更多图像用例参考:


3、视频分割示例

python 复制代码
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):
        ...

视频用例详情参考:video_predictor_example.ipynb


五、从 Hugging Face 加载


1、图像预测

python 复制代码
from sam2.sam2_image_predictor import SAM2ImagePredictor
predictor = SAM2ImagePredictor.from_pretrained("facebook/sam2-hiera-large")

2、视频预测

python 复制代码
from sam2.sam2_video_predictor import SAM2VideoPredictor
predictor = SAM2VideoPredictor.from_pretrained("facebook/sam2-hiera-large")

六、模型描述


1、SAM 2.1 检查点(2024-09-29 发布)

模型 参数量(M) 速度(FPS) SA-V测试(J&F) MOSE验证(J&F) LVOS v2(J&F)
sam2.1_hiera_tiny 38.9 91.2 76.5 71.8 77.3
sam2.1_hiera_small 46 84.8 76.6 73.5 78.3
sam2.1_hiera_base_plus 80.8 64.1 78.2 73.7 78.2
sam2.1_hiera_large 224.4 39.5 79.5 74.6 80.6

2、SAM 2 检查点(2024-07-29 发布)

模型 参数量(M) 速度(FPS) SA-V测试(J&F) MOSE验证(J&F) LVOS v2(J&F)
sam2_hiera_tiny 38.9 91.5 75.0 70.9 75.3
sam2_hiera_small 46 85.6 74.9 71.5 76.4
sam2_hiera_base_plus 80.8 64.8 74.7 72.8 75.8
sam2_hiera_large 224.4 39.7 76.0 74.6 79.8

注:速度测试基于 A100 + torch 2.5.1, cuda 12.4,参考 benchmark.py 进行基准测试。


伊织 xAI 2025-04-25(五)

相关推荐
魔士于安1 天前
Unity完整小球迷宫项目
前端·unity·游戏引擎·贴图·模型
代码小书生1 天前
视频下载工具!支持8K、4K分辨率画质,视频音频文件多线程下载!字幕同步匹配下载保存到本地,自带视频格式转换功能!
音频·视频·视频下载·8k·4k·下载神器·画质
Prannt1 天前
星朗智能语音——视频翻译
ai·视频·自动翻译
魔士于安2 天前
Unity 超市总动员 超市收银台 超市货架 超市购物手推车 超市常见商品
游戏·unity·游戏引擎·贴图·模型
七夜zippoe2 天前
OpenClaw 多模型配置与切换详解
人工智能·配置·模型·切换·openclaw
小贺儿开发3 天前
Unity3D 智能云端数字标牌系统
unity·阿里云·人机交互·视频·oss·广告·互动
魔士于安3 天前
Unity windows 同步 异步 打开文件文件夹工具
游戏·unity·游戏引擎·贴图·模型
魔士于安3 天前
unity lowpoly 风格 城市 建筑 道路 交通标志
游戏·unity·游戏引擎·贴图·模型
魔士于安4 天前
unity 卡通风整套资源 小鸟N套带动作+一套卡通风村落 和 相关道具+落叶粒子效果 buildin
游戏·unity·游戏引擎·贴图·模型
张老师带你学5 天前
Unity 食物 农产品相关
科技·游戏·unity·游戏引擎·模型