当前位置: 首页 > news >正文

SAM 2: Segment Anything in Images and Videos

Introduction

提出的目的
1.现有的应用像自动驾驶,AR等来说都是需要temporal localization beyond image-level segmentation(时序定位而不仅是图片分割)
2. 一个好的分割模型不应该仅仅局限于图片领域,而是图视频两者兼具
3. 视频的分割,需要进行时空分割物体,需要有时空分割的能力,比起图片分割更为困难。除此之外,视频相较于图片会有物体被遮挡等问题,即更为困难的分割。除此之外,视频拥有多帧的特点,如何“高效”处理这些帧也是一个难点。毕竟没卡 0.0

Our work

  1. 提出了集合图片和视频的分割模型,(将图片当作一帧的图片):图片-short video-long video
  2. 我们的工作集中于Promptable Visual Segmentation (PVS) task,可以人先指定感兴趣的区域作为prompt生成时空mask(the spatio-temporal mask (i.e., a ‘masklet’)),其他帧基于这个mask然后得到提示也进行分割。
  3. 从intro看出就是提了一个memory将之前分割结果和交互历史进行存储,以便后续分割得到prompt。 Our streaming architecture is a natural generalization of SAM to the video domain, processing video frames one at a time, equipped with a memory attention module to attend to the previous memories of the target object. 一个更general的版本,但是感觉看起来方法不新emmm,我到看方法部分再看看。memory部分其实是比较常用的。
    模型pipeline
  4. We employ a data engine to generate training data by using our model in the loop with annotators to
    interactively annotate new and challenging data. - 利用这个模型生成了更好的数据集,不局限于特定的类别,而是包括物体的组件等都有标注。并且这个数据engine生成速度很快8*faster,而且生成的数据包括一些特别小的部分和时而消失时而出现的物体。(更快生成更接近现实的标注数据)
  5. 效果:超过了之前sam在所有图片领域分割效果,打败了所有视频物体分割benchmark模型,且效果是所有图片视频分割benchmark中最好的,而且是zero-shot(泛化能力强)。交互步骤也降低了,速度也更快了。
    总的话来说:更快更好的general视频图片分割模型。
  6. SAM2的流式处理架构使得它能够逐帧处理视频数据,这在实时应用中非常有用。(重点)

Model

新任务:Task: promptable visual segmentation- 这是一个比较general的任务,你可以给的prompt随意一帧也可以在多帧,可以是点击也可以是一个bbox或者mask等。比起其他的分割任务,它这个是所有此类任务的集合。(Our work shares a similar goal to these works to segment objects across videos with a good interactive
experience, and we build a strong model along with a large and diverse dataset in pursuit of this goal)
模块: 感觉每个模块都用效果好的和速度快的来试

  • Image encoder. 和之前不一样用了一个有多尺度特征的编码器( hierarchical image encoder),因为可以在mask decoder用上(解决高分辨率问题),这也是它速度快的原因,比较轻量化。在后续补充说明中,强调了用了哪种位置编码,反正没用相对位置编码,看了看实验部分主要是为了速度和效率考虑的。
  • Memory attention. We use vanilla attention operations for self- and cross-attention, allowing us to benefit from recent developments in efficient attention kernels。补充说明了加了2d位置编码
  • Prompt encoder and mask decoder. 此模块主要强调 prompt的general,以及不同prompt的处理方法。然后mask decoder有两块不一样:一是 用了 skip connection to incorporate high-resolution information for mask decoding。二是显示的建模 是否存在prompt需要分割的物体:we add an additional head that predicts whether the object of interest is present 。(视频有些帧可能目标物体消失了)补充说明部分是说如果不确定物体时候,输出多个mask
    mask decoder- Memory encoder. 将生成的mask进行conv编码+原来的image encoder出来的编码 再进一个conv得到的feat存储进bank中,其实我有个疑问,那如果这个mask是错误的呢?是不是要正确的才存储?或者说分数要达到一定程度。
  • Memory bank. 这个bank存储上面encoder的编码和prompt frame编码,利用了一个 FIFO 队列来存储,即先进先出存储当前帧的前N帧(context最相关更有借鉴价值),其实这个FIFO在很多视频地方也用过的。前面的内容统一称为spatial feature maps。还有一类也存储了,即object pointers,作为high-level 特征也是轻量化的特征。并且上述两类特征中前N帧特征会加入时序位置编码来让模型学会short-term object motion。 补充说明编码是将256dim的特征分成了4个token,每个token64dim变得更smaller(实验部分说的)。

DATA AND TRAINING

提了一个很大的数据集
训练用了很多trick可以去看看补充部分,后续有时间看吧。

Question

我其实还有一些问题
比如在这里插入图片描述
这里面黄色这块内容为什么有了memory就能解决这个问题呢。

Conclusion

感觉收获满满
1.每个组件之前都有,怎么组合能够达到效果最好,效率最高。
2.提了一个非常nice的数据集是对这个行业的非常大的贡献。
3.怎么选择好的pretrain encoder
4.memory如何轻量化和最有价值化,相信每个搞video的人多多少少都知道memory哈哈哈…
5.实时处理是亮点,随机prompt来让整体更方便用户交互使用也是亮点
膜拜~

另外其他资料:
知乎写的也比较nice

http://www.lryc.cn/news/411761.html

相关文章:

  • 软件测试面试,如何自我介绍?
  • 力扣第四十七题——全排列II
  • Springer旗下中科院2区TOP,国人优势大!
  • 【C++】C++入门知识详解(下)
  • 分压电阻方式的ADC电压校准
  • 使用Postman测试API短轮询机制:深入指南
  • 明清进士人数数据
  • C# 串口通信(通过serialPort控件发送及接收数据)
  • 数据安全的新盾牌:SQL Server数据库镜像技术详解
  • 【C语言版】数据结构教程(一)绪论(上)
  • 酒后为什么总感觉渴?
  • Docker安装OwnCloud私有云盘对接ceph
  • 创建了Vue项目,需要导入什么插件以及怎么导入
  • abstract 关键字
  • 用Python编写你的网络监控系统详解
  • 操作系统——虚拟内存
  • Zoom视频会议软件使用
  • MVC软件设计模式及QT的MVC架构
  • 使用WSL通过SSH连接并运行图形界面程序
  • 柳湛宇-简历
  • 6-1 从全连接层到卷积
  • 【Android Studio】项目目录结构
  • electron-builder打包vue2项目问题合集
  • 5行代码快速Git配置ssh
  • 气相色谱检测常见问题和实战案例分享-测试狗
  • 一文学会CUDA编程:深入了解CUDA编程与架构(一)
  • Jquery判断图片加载失败,显示默认图片
  • App 自动化测试调研
  • Java 后端已经过时的技术,也是我逝去的青春
  • 释放自动化测试潜能:性能优化策略与实战技巧!