SAM是第一个可用于提示的图像分割基础模型。SAM2在SAM的基础上发展,新加memory bank mechanism,可用于图像和视频分割

虽然SAM2效果很好,但是不能用于移动端推理,最小的SAM2模型在iPhone 15 Pro Max运行速率仅为1FPS。
过去的方法通过压缩SAM的image encoder来实现轻量化,因为SAM的mask decoder参数量很小。但是不适用于SAM2,因为新加的memory attention模块仍需要很多计算量
[(a)]

(a)使用不同的image encoder backbone仍不能降低计算量,因为Decoder的计算量很大;(b)通过减小memory attention的层数和去掉其中的模块,可以发现cross attention(CA)是其性能瓶颈

SAM2对每一帧都使用memory encoder进行编码,和object-level pointers一起存储在memory bank中。然后再与当前帧特征通过memory attention进行融合。
这些记忆被密集编码,因此cross attention出现巨大的矩阵乘法。因此虽然参数量小于image encoder,其计算复杂度很高

为了模型可以在移动端运行,本文研究如何利用视频中的冗余。提出在实施memory attention之前,对帧级memories进行压缩。
一开始使用空间池化,但是性能显著降低。
转而使用基于学习的压缩器,比如Perceiver,用一组小固定 learned queries来总结密集feature map,然而简单使用Perceiver性能也会降低
推测视频分割作为密集预测任务,memory bank需要保存空间结构,而这种空间结构会被简单的Perceiver所丢弃

本文提出新的轻量化模块 在压缩帧级特征的同时保留2D空间信息
具体来说,将learnable query分成两组

  1. 与原来的Perceiver一样,和input feature做global attention,输出single vector
  2. 具有2D priors,每一个query只压缩非重叠local patch,因此输出包含空间结构信息

除了架构调整,提出distillation pipeline,有两个训练阶段

  1. 用图像分割数据集SA-1B训练SAM2,其中memory相关模块不参与
  2. 用图像和视频分割数据集SA-1B和SA-V一起训练SAM2所有模块

两个阶段均将student model与SAM2的image encoder特征对齐,在第二阶段,还对齐memory attention的输出

Logo

开源鸿蒙跨平台开发社区汇聚开发者与厂商,共建“一次开发,多端部署”的开源生态,致力于降低跨端开发门槛,推动万物智联创新。

更多推荐