SAM2论文解读-既实现了视频的分割一切,又比图像的分割一切SAM更快更好

code:https://github.com/facebookresearch/sam2/tree/main

demo:https://sam2.metademolab.com/

paper:https://ai.meta.com/research/publications/sam-2-segment-anything-in-images-and-videos/

这是SAM

这是SAM2

Facebook出品,继SAM在图像上分割一切后,SAM2实现了效果优异的视频上的分割一切

  • 构建了能通过用户交互持续改进模型与数据的数据引擎,收集了迄今为止规模最大的视频分割数据集。
  • 该模型采用简单的Transformer架构,配备流式内存以实现实时视频处理。
  • 在视频分割方面,SAM2准确度优于现有方法,且交互次数减少至三分之一;
  • 在图像分割领域,相比"可分割任意模型"(SAM),SAM2精度更高且速度提升6倍(1024分辨率下实现130 FPS的图像分割速度)。

针对的核心问题

  1. 图像分割向视频领域的扩展不足

    现有图像分割模型(如SAM)无法直接处理视频中的时空动态特性,如物体运动、变形、遮挡、光照变化等,且视频数据具有时间维度,需要高效处理长序列帧。

  2. 视频分割数据集的局限性

    传统视频分割数据集(如DAVIS、YouTube-VOS)规模较小,主要覆盖完整物体,缺乏对物体部分遮挡/重现场景的覆盖,难以支持"分割任意物体"的泛化能力。

  3. 交互式视频分割的效率与精度平衡

    现有方法需大量人工交互(如多次点击或重新标注),且模型难以在实时处理中保持高精度,尤其在复杂场景下容易丢失目标。

数据:交互式数据收集框架

  • 三阶段迭代优化
    • Phase 1:基于SAM的逐帧手动标注,确保高质量空间掩码。
    • Phase 2:引入SAM 2 Mask进行掩码传播,减少手动标注工作量(速度提升5.1倍)。
    • Phase 3:全功能SAM 2支持点/掩码混合提示,利用内存机制进一步提升效率(速度提升8.4倍)。
  • 自动掩码生成(Auto Masklet)
    • 通过网格点提示自动生成掩码,覆盖小物体和背景区域,提升数据多样性。
    • 最终构建SA-V数据集:包含50.9K视频、3550万掩码,是现有最大视频分割数据集(比YouTube-VOS多53倍掩码)。

任务定义

  • 核心目标 :给定输入视频,通过在任意视频帧上提供交互式提示 (如点、框、掩码),分割并跟踪目标对象的时空掩码(masklet),即生成覆盖整个视频的时空一致分割结果。
  • 交互性 :用户可在任意帧添加提示以迭代优化分割结果。例如,在某一帧纠正分割错误后,模型会将修正传播到整个视频,减少重复标注成本。
  • 对比半监督视频对象分割(VOS)
    VOS通常仅在第一帧提供掩码提示,且聚焦于完整物体跟踪;PVS支持多帧任意提示,并可分割物体部分(如"人的手臂"),覆盖更广泛的"任意物体"场景。

模型

(其中红色线是手绘的,因为原图中没标注这部分,图像编码器的部分特征通过跳跃连接直接输给mask decoder,来提高掩码精度)

一、总体设计

  • 统一框架 :SAM 2是首个统一处理图像和视频分割的基础模型,将图像视为单帧视频,通过**流内存机制(Streaming Memory)**扩展SAM的静态分割能力至动态视频场景。
  • 输入与输出 :接受视频中任意帧的点、框、掩码提示 ,输出目标对象的时空掩码(masklet),支持通过迭代提示逐步优化分割结果。

二、核心组件

1. 图像编码器(Image Encoder)
  • 采用23年的层次化视觉Transformer(Hiera),基于MAE预训练,支持多尺度特征提取(共4各stage),其中高分辨率的1,2stage特征直接输给mask decoder,3,4stage输给memory attention。
2. 内存注意力模块(Memory Attention)
  • 通过Transformer块 实现当前帧与Memory Bank中的历史内存的交互。
  • 其中自注意力(Self-Attention)处理当前帧特征,交叉注意力(Cross-Attention)关联Memory Bank中的空间特征对象指针(Object Pointers)
3. 提示编码器与掩码解码器(Prompt Encoder & Mask Decoder)
  • 提示编码器:与SAM完全兼容,支持稀疏提示(点/框)和密集提示(掩码),通过位置编码和卷积嵌入提示信息。
  • 掩码解码器
    • 多掩码预测:处理歧义提示时输出多个掩码,如果后续提示仍存在歧义,则选择最高IoU的掩码进行传播。
    • 遮挡预测头:新增分支预测目标是否在当前帧可见,辅助内存更新和分割校正。
    • 跳跃连接(Skip Connections):引入图像编码器的高分辨率特征,提升掩码细节精度(图中手绘的红色线)。
4. 内存编码器

内存编码器的实际输入是预测得到的mask,以及image encoder得到的图像嵌入,将mask下采样后跟图像嵌入逐元素相加,并经过一个轻量的卷积层得到最终的编码信息。

5.Memory Bank
  • FIFO队列 :存储最近N帧的内存M个提示帧的信息,统称为spatial features,平衡时间上下文和计算成本。
  • 对象指针:轻量级向量存储每帧的语义摘要,增强跨帧语义一致性,用以捕获高层语义信息(如掩码解码器输出的token),后续实验验证这个指针很有效。

与SAM的对比

维度 SAM SAM 2
处理对象 单帧图像 图像+视频(时空序列)
核心机制 静态提示-分割 流内存+时间注意力+迭代提示优化
速度(FPS) 21.7(ViT-H) 130(Hiera-B+,图像)/43.8(视频)
交互效率 依赖单帧多次点击 跨帧内存复用,交互次数减少3倍
数据集规模 SA-1B(11M图像) SA-V(50.9K视频,3550万掩码)

训练策略:图像与视频联合优化

1. 预训练(图像优先)
  • 数据:SA-1B图像数据集(11M图像)。
  • 目标:学习基础视觉特征和提示响应能力,与SAM初始化一致。
  • 技术细节
    • 损失函数:焦点损失 + 骰子损失(比例20:1),L1损失监督IoU预测。
    • 数据增强:水平翻转,Resize至1024×1024,过滤掩码面积>90%的样本。
2. 全训练(图像+视频联合)
  • 数据混合
    • 图像数据:15.2% SA-1B;
    • 视频数据:70% SA-V + 14.8% Internal数据集 + 开源VOS数据集(如DAVIS/YouTube-VOS)。
  • 交替训练策略:按数据规模比例交替采样图像和视频批次,视频批次处理8帧序列,图像批次处理单帧。
  • 模拟交互式提示
    • 采样8帧的序列,并随机选择最多2帧 进行提示,在训练期间根据真实掩模和模型预测的概率性接收矫正点击(模拟用户迭代优化),初始提示及概率为掩码(50%)、正点击(25%)或框(25%)
  • 数据增强
    • 视频:水平翻转、仿射变换、颜色抖动、随机灰度化;
    • 马赛克变换(10%概率):将视频帧拼接为2×2网格,强制模型区分相似目标(附录D.2.2)。
3. 微调(长视频优化)
  • 目标:提升长视频中的长时依赖建模能力。
  • 方法
    • 采样16帧长序列,仅使用SA-V和Internal数据中"高编辑帧"样本(前50%最难样本);
    • 冻结图像编码器,仅微调内存和注意力模块,学习率降至原值1/2,训练50k迭代。
相关推荐
AngelPP14 小时前
OpenClaw 架构深度解析:如何把 AI 助手搬到你的个人设备上
人工智能
宅小年14 小时前
Claude Code 换成了Kimi K2.5后,我再也回不去了
人工智能·ai编程·claude
九狼14 小时前
Flutter URL Scheme 跨平台跳转
人工智能·flutter·github
ZFSS14 小时前
Kimi Chat Completion API 申请及使用
前端·人工智能
天翼云开发者社区15 小时前
春节复工福利就位!天翼云息壤2500万Tokens免费送,全品类大模型一键畅玩!
人工智能·算力服务·息壤
知识浅谈16 小时前
教你如何用 Gemini 将课本图片一键转为精美 PPT
人工智能
Ray Liang16 小时前
被低估的量化版模型,小身材也能干大事
人工智能·ai·ai助手·mindx
颜酱17 小时前
单调栈:从模板到实战
javascript·后端·算法
shengjk117 小时前
NanoClaw 深度剖析:一个"AI 原生"架构的个人助手是如何运转的?
人工智能