本篇介绍Meta公司(原Facebook)2024年7月开源的模型SAM2(Segment Anything,分割一切)。无需专门训练、通过简单的点击/框选动作,即可提取出图像/视频中的任何感兴趣目标。
提纲:
-
1、案例展示
-
2、基本原理
-
3、小结
1、案例展示
案例1:视频分割
sam2分割视频案例
-
想提取视频中的三个目标物(足球、左右脚)区域,用户仅需在如下图界面中点击3次鼠标。
案例2:图像分割
-
用户仅需点击1次鼠标,即可提取下图中的目标鱼:
-
用户也可以通过1次画框,来提取目标鱼:
2、基本原理
第一代SAM1:
Facebook在2023年4月提出了在图像领域“分割一切”的想法,借鉴类似NLP领域(如ChatGPT)的提示工程(prompt engineering),实现零样本迁移(zero-shot)到各种视觉任务。
我们知道对话聊天的提示词,是信息描述文字。那图像领域呢?SAM1提出了点击、框选、选定区域、描述文字共4类prompt,如下图左侧(a)所示:
SAM1的架构如下图,其中包含:重量级的ViT图像编码器、轻量级的提示信息编码器和掩码输出解码器。
输出3个掩码结果,是因为往往用户的1次点击提示,可能对应多个有效的目标物(例如上图最右侧的剪刀)。
作者发现3个掩码输出足以解决最常见的情况(嵌套掩码通常最多有三个深度:整体、部分和子部分)。
第二代SAM2:
2024年7月推出的SAM2,在SAM1的基础上优化了图像分割的效果和效率,并演化到了视频领域。
通常,图像只是现实世界的静态快照,而视觉片段可以表现出复杂的运动。 相比静态图像,视频多了时序维度的信息,并且由于运动、变形、遮挡、光照变化和其他因素,目标物的外观可能会发生重大变化。
基于以上情况,SAM2引入了存储先前帧的提示和预测结果的流式存储器memory,以用于当前帧的分析预测。
SAM2的架构如下图,流式读取视频的每一帧,对于每一帧图像的处理方式与SAM1基本一致(使用了更轻量的图像编码来提效),再通过引入memory注意力机制,以之前时刻的预测结果和提示信息来增强当前帧的特征信息。
3、小结
图像和视频分割的现实需求较为广泛,通常需要进行大量的数据标注和模型微调。
有了“分割一切”的SAM2,就可以在项目早期极低成本地看到初步效果,最不济也可以半自动辅助人工、提升数据标注的效率。
感兴趣的朋友不妨一试~
视频:https://sam2.metademolab.com/demo
图像:https://segment-anything.com/demo
- END -