SAM2论文阅读

首先放一些相关资料:

Demo ; 代码网站

“An image is only a static snapshot of the real world in which visual segments can exhibit complex motion, and with the rapid growth of multimedia content, a significant portion is now recorded with a temporal dimension, particularly in video data.

在多媒体发展迅猛的时代背景下,从时间维度实现 Segment Anything是一项颇有意义的事情。基于此,facebook便提出了SAM2,在SAM的基础上设计了在视频领域的可提示视觉分割模型,用于判断目标实体的时空范围(即新增了时间维度), “determine the spatio-temporal extent of entities”。此外也从性能上达成了better segmentation accuracy, 3× fewer interactions than prior approaches,6× faster。

然而,从视频的维度上实现Segment Anything并不容易。其一,实体在物体运动/形变/遮挡/光照变化等过程中会有很大的变化;其二,由于摄像头移动/模糊/低分辨率等,视频的画面质量往往更低;其三,与独立一张图片不同,如何处理大量帧是视频领域的关键挑战。

“ Entities can undergo significant changes in appearance due to motion, deformation, occlusion, lighting changes, and other factors. Videos often have lower quality than images due to camera motion, blur, and lower resolution. Further, efficient processing of a large number of frames is a key challenge.

那么SAM2到底包含了什么,它与SAM又有哪些不同呢。作者都在论文中非常详尽地跟我们进行交代。

1.task

从(a)中我们可以看到,SAM2与SAM有着非常类似的任务:即实现可提示的分割任务,区别仅在于SAM2多了视频的维度,且其prompt在某些帧当中并没有出现。

这是受半监督视频物体分割(Semi-supervised Video Object Segmentation,也就是交互式视频对象分割技术(Interactive Video Object Segmentation)的子集)中“Only providing a mask prompt in the first video frame”只在视频第一帧提供提示的启发。

最后,论文也着重介绍了click的意义:Click是比较简单的收集方式,但需要改善在视频领域的效果,同时增加交互式refine的机制。图中的其他两张图(b)则展示了SAM2模型的基本架构。(c)则是数据的循环采集。

 2.model

SAM2的模型结构与SAM同样非常类似,但新增了memory这一块。简单来说,memory存储了之前几帧的特征以及prompt的信息,以便约束当前帧的特征信息。

Image encoder

此部分使用了UAE预训练的Hiera,使得模型可以在decoder阶段使用多尺度特征,实现更好的学习效果。

Memory attetion

 Memory attetion被用于限定当前帧的特征图,是的其与过去帧的特征和预测/任何新的prompts相关。主要架构包括了 L层的transformer,第一层输入为imgage encoder的输出。每一层包含自注意力机制与交叉注意力机制(cross-atten to memories of frames 和 object pointers),输出结果都被存储于memory bank。

Prompt encoder & mask decoder

Prompt encoder和SAM的一样,用于限定范围。其中稀疏提示(Sparse Prompt)用位置编码,并通过learned embedding求和;密集提示(Masks)通过卷积嵌入,并通过帧嵌入求和;

Mask Decoder主要根据SAM进行设计,由双向transformer堆叠以更新prompt和frame embedding。考虑到视频情况下有可能某一帧没有有效物体,论文设置了跳层连接以绕过memory attention模块并融合高分辨率信息。

Memory encoder & memory bank

Memory encoder通过卷积模块下采样输出掩码,并与来自image encoder的无条件帧进行逐元素相加,并最后通过轻量级卷积层融合信息来得到memory;

Memory bank包含一个FIFO的队列用于存储最近N帧以及一个FIFO的队列存储M个prompted frames。(这两个队列构成spatial memory) Memory bank还包含一系列的·目标指针(轻量级向量)以存储物体的高级语义信息;

以上两种都经过Mempry attention的cross 向N帧嵌入时间位置信息(不包含prompted的,因为它的训练信号更稀疏,且更难推广到推理里) 。

Training

在训练阶段,视频与图像同步训练,采样八帧画面并随机选择两帧进行prompt,有概率性地接受clicks 以实现目标。(待补充)

3.data

 数据集的生成需要经过三个阶段,这里整理为如下表格:

此后,有一个评估和自动生成的阶段Quality verification&Auto masklet generation。Quality verification用一个独立的annotators来评估annotated masklet的质量。评估有两种结果:satisfactory和unsatisfactory(被refine),都是well define,区别在于masklet是否一直保持正确与一致。Not refine的直接被拒绝。 Auto masklet generation用于确保注释的多样性。因为人类会倾向于只标注突出物体。该模块的出现可以增加注释的覆盖面,同时识别错误案例。 

  • 23
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值