近日,Meta在SAM的基础上正式开源了支持分割视频和图像的SAM-2。SAM-2支持Apache 2.0规则的商业化,因此任何人都可以使用它来构建自己的体验。
Meta分享了SAM-2的训练数据集SA-V,包含了51,000真实世界视频和超过600,000个时空遮罩,这比其他同类数据集大50倍左右,可帮助开发人员构建更好的视觉模型。
SAM-2基础架构是基于transformer模型并引入了流式记忆机制,主要由图像编码器、记忆编码器、记忆注意力模块、提示编码器和掩模解码器等模块组成。
1、图像编码器
图像编码器作为SAM-2处理视频帧的起点采用了流式处理方法,能够处理任意长度的视频,相比第一代可以使用更少的交互提升3倍效率。它使用的是一个预训练的Hiera模型,能够提供多尺度的特征表示,为后续的记忆注意力模块和掩模解码器提供丰富的上下文信息。
2、记忆编码器
记忆编码器负责将模型先前的预测和用户交互动作编码为记忆,并将这些记忆存储在记忆库中,用于影响后续帧的分割结果。
3、记忆注意力模块
记忆注意力模块则利用这些记忆来增强当前帧的特征表示,使其能够更好地捕捉目标对象在时间序列中的动态变化。
4、提示编码器
提示编码器的设计遵循了SAM的原则,能够接受点击、框选或遮罩等不同类型的提示,以定义给定帧中对象的范围。这些稀疏提示通过位置编码和学习到的嵌入表示进行表示,而遮罩则通过卷积操作进行嵌入,并与帧嵌入相加。
5、掩模解码器
掩模解码器的设计在很大程度上遵循了第一代SAM的架构,使用了双向transformer块,这些块更新提示和帧嵌入。为了处理可能存在多个兼容目标掩模的模糊提示,SAM-2预测每个帧上的多个掩模,这对于确保模型输出有效掩模至关重要。
现有的视频分割数据集通常存在一些限制,如注释对象主要集中在人、车辆和动物等特定类别,并且往往只覆盖整个对象而忽略了部分和子部分。此外,这些数据集的规模相对较小,无法满足训练强大的视频分割模型的需求。为了解决这些难题,Meta开发了SA–V数据集并使用了三大阶段。
- 第一阶段,使用了SAM模型来辅助人类标注。标注者的任务是在视频的每帧中以每秒6帧的速度使用SAM和像素精确的手动编辑工具来标注目标对象的掩码。
- 第二阶段,引入了SAM-2 Mask,它只接受掩码作为提示。标注者首先使用SAM和其他工具在第一帧中生成空间掩码,然后使用SAM-2 Mask将标注的掩码在时间上传播到其他帧,以获得完整的时空掩码片段。
- 第三阶段,使用了完全功能的SAM-2,它能够接受各种类型的提示,包括点和掩码。与前两个阶段不同,SAM-2受益于对象在时间维度上的记忆来生成掩码预测。
由此可见,SA–V在开发SAM-2过程中发挥了重要作用,也是目前最大视觉分割训练数据集之一。