当前位置: 首页 > news >正文

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

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

文章目录

    • 一、关于 SAM 2
      • 相关链接资源
      • 关键功能特性
    • 二、最新更新
      • 1、2024-12-11 更新
      • 2、2024-09-30 更新
    • 三、安装指南
      • 系统要求
      • 安装步骤
      • Windows 用户注意
      • 额外依赖(运行示例笔记本)
      • 安装注意事项
    • 四、快速入门
      • 1、下载模型检查点
      • 2、图像分割示例
      • 3、视频分割示例
    • 五、从 Hugging Face 加载
      • 1、图像预测
      • 2、视频预测
    • 六、模型描述
      • 1、SAM 2.1 检查点(2024-09-29 发布)
      • 2、SAM 2 检查点(2024-07-29 发布)


一、关于 SAM 2


在这里插入图片描述

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

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

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

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


在这里插入图片描述


相关链接资源

  • github : https://github.com/facebookresearch/sam2
  • 官网:https://ai.meta.com/sam2
  • 官方文档:https://ai.meta.com/research/publications/sam-2-segment-anything-in-images-and-videos/
  • Demo/在线试用:https://sam2.metademolab.com/
  • SA-V 数据集:https://ai.meta.com/datasets/segment-anything-video
  • 训练 SAM 2 : https://github.com/facebookresearch/sam2/blob/main/training/README.md
    支持在自定义图像/视频数据集上进行训练和微调
  • 本地部署版 Demo 代码参见:https://github.com/facebookresearch/sam2/blob/main/demo/README.md

  • Blog : https://ai.meta.com/blog/segment-anything-2
  • Hugging Face : https://huggingface.co/models?search=facebook/sam2
  • License : Apache 2.0

关键功能特性

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

安装步骤

git clone https://github.com/facebookresearch/sam2.git && cd sam2
pip install -e .

Windows 用户注意

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


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

pip install -e ".[notebooks]"

安装注意事项

1、推荐使用 Anaconda 创建新 Python 环境
2、需安装匹配 PyTorch 版本的 CUDA 工具包
3、若出现 Failed to build the SAM 2 CUDA extension 警告可忽略(仅影响部分后处理功能)
4、更多问题参考:INSTALL.md


四、快速入门


1、下载模型检查点

下载所有检查点:

cd checkpoints && ./download_ckpts.sh && cd ..

或单独下载:

  • sam2.1_hiera_tiny.pt
  • sam2.1_hiera_small.pt
  • sam2.1_hiera_base_plus.pt
  • sam2.1_hiera_large.pt

2、图像分割示例

import torch
from sam2.build_sam import build_sam2
from sam2.sam2_image_predictor import SAM2ImagePredictorcheckpoint = "./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>)

更多图像用例参考:

  • 交互式分割:image_predictor_example.ipynb
  • 自动掩码生成:automatic_mask_generator_example.ipynb

3、视频分割示例

import torch
from sam2.build_sam import build_sam2_video_predictorcheckpoint = "./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、图像预测

from sam2.sam2_image_predictor import SAM2ImagePredictor
predictor = SAM2ImagePredictor.from_pretrained("facebook/sam2-hiera-large")

2、视频预测

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_tiny38.991.276.571.877.3
sam2.1_hiera_small4684.876.673.578.3
sam2.1_hiera_base_plus80.864.178.273.778.2
sam2.1_hiera_large224.439.579.574.680.6

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

模型参数量(M)速度(FPS)SA-V测试(J&F)MOSE验证(J&F)LVOS v2(J&F)
sam2_hiera_tiny38.991.575.070.975.3
sam2_hiera_small4685.674.971.576.4
sam2_hiera_base_plus80.864.874.772.875.8
sam2_hiera_large224.439.776.074.679.8

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


伊织 xAI 2025-04-25(五)

http://www.xdnf.cn/news/133417.html

相关文章:

  • Vue里面elementUi-aside 和el-main不垂直排列
  • 知识蒸馏和迁移学习的区别
  • 在项目中使用 Sonar:提升代码质量的利器
  • 深入理解机器学习:人工智能的核心驱动力
  • AI之FastAPI+ollama调用嵌入模型OllamaBgeEmbeddings
  • SQL笛卡尔积运用-为每个用户初始化数据
  • [Windows] 卡巴斯基Kaspersky 21.21.7.384 免费版
  • 基于Axure的动态甘特图设计:实现任务增删改与时间拖拽交互
  • 打工人必看:Word中姓名对齐的高效方法
  • 计算器(WEB)
  • PWNOS:2.0(vulnhub靶机)
  • Java知识日常巩固(五)
  • 在GNS3中安装Kali Linux
  • 【深度好文】2、深入浅出 Milvus 数据库管理:从创建到删除的完整指南
  • spark-standalone模式
  • 设置Rocky Linux盒盖不休眠的3个简单步骤
  • 常见的几种分块策略,每种策略都有适用场景和优缺点
  • 题目 3320: 蓝桥杯2025年第十六届省赛真题-产值调整
  • 【爬虫】DrissionPage-获取douyim用户下的视频
  • 论文阅读:2024 NeurIPS Group Robust Preference Optimization in Reward-free RLHF
  • 幻读是什么项目中是怎么保证不会出现幻读
  • 高级电影感户外街拍人像摄影后期Lr调色教程,手机滤镜PS+Lightroom预设下载!
  • Gartner魔力象限(Gartner Magic Quadrant)
  • 你怎么通过postman或者fidder或者JMeter来获取到token,然后后面的请求怎么使用token
  • 银行网点款箱交接权限认证开锁与密钥时效双重监控
  • AI超级智能体教程(三)---程序调用AI大模型的四种方式(SpringAI+LangChain4j+SDK+HTTP)
  • 电子设备的“记忆大脑”:NAND、NOR、EEPROM谁在掌控你的数据?
  • 一文带你了解单例模式及其逐步优化~
  • 【差分隐私】假设检验的视角(高斯差分隐私)
  • 07 Python 字符串全解析