当前位置: 首页 > 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

相关文章:

SAM 2: Segment Anything in Images and Videos

Introduction 提出的目的: 1.现有的应用像自动驾驶,AR等来说都是需要temporal localization beyond image-level segmentation(时序定位而不仅是图片分割) 2. 一个好的分割模型不应该仅仅局限于图片领域,而是图视频两…...

软件测试面试,如何自我介绍?

又是一年金九银十,相信不少小伙伴都在准备跳槽面试,而面试中一个必不可少的环节就是自我介绍,所以,今天我们就来聊一聊软件测试面试中如何自我介绍。 为什么要自我介绍 在讨论如何自我介绍之前,我们先来讨论一下为…...

力扣第四十七题——全排列II

内容介绍 给定一个可包含重复数字的序列 nums ,按任意顺序 返回所有不重复的全排列。 示例 1: 输入:nums [1,1,2] 输出: [[1,1,2],[1,2,1],[2,1,1]]示例 2: 输入:nums [1,2,3] 输出:[[1,2,3],…...

Springer旗下中科院2区TOP,国人优势大!

关注GZH【欧亚科睿学术】,第一时间了解期刊最新动态! 1 通信网络类 【期刊简介】IF:4.0-5.0,JCR1区,中科院3区 【出版社】ELSEVIER出版社 【检索情况】SCIE&EI双检,CCF-C类 【征稿领域】通信网络的…...

【C++】C++入门知识详解(下)

大家好~我们接着【C】C入门知识详解(上)-CSDN博客来介绍另一些C入门基础知识。 1.缺省值和缺省参数 缺省参数就是声明或定义函数时为函数的参数指定一个缺省参数。在调用该函数时,如果没有指定实参,则采用该形参的缺省值&#xf…...

分压电阻方式的ADC电压校准

无人机有个流程是电池电压校准。具体做法是:让你用万用表测量一下电池两端的电压,然后输入到文本框中,电机计算能重新计算出电压分压器的值,从而获得电池电压值。 这种方法实现的原理是这样的: 电阻分压检测电压原理,以上图为例: 当电路确定时,R2/(R1+R2)是一个定值R,…...

使用Postman测试API短轮询机制:深入指南

短轮询是一种Web开发中常用的技术,用于在客户端和服务器之间定期检查更新。与长轮询或WebSockets等技术相比,短轮询简单易实现,但可能带来较多的HTTP请求,从而增加服务器负担。Postman作为一个强大的API测试工具,可以用…...

明清进士人数数据

明清进士人数数据 指标:省份名称、城市名称、区县名称、明清各省进士人数、明清各城市进士人数、明清各县区进士人数 指标说明: Province[省份名称]-统计数据所属省份 City[城市名称]-统计数据所属地级市 Region[区县名称]-统计数据所属区县 MQpro…...

C# 串口通信(通过serialPort控件发送及接收数据)

连接串口 界面设计打开串口发送数据通过文件发送发送数据 接收数据 首先可以在 工具箱中搜索serialport,将控件拖到你的Winfrom窗口。 界面设计 打开串口 private void Connect_Click(object sender, EventArgs e){serialPort1.PortName comboBox2.Text;//端口名s…...

数据安全的新盾牌:SQL Server数据库镜像技术详解

数据安全的新盾牌:SQL Server数据库镜像技术详解 在数据驱动的商业世界中,数据库的安全性是维护企业运营的关键。SQL Server提供了多种数据保护机制,其中数据库镜像技术是一个强大的高可用性解决方案,它可以显著提高数据的安全性…...

【C语言版】数据结构教程(一)绪论(上)

【内容简介】本文整理数据结构(C语言版)相关内容的复习笔记,供各位朋友借鉴学习。本章内容更偏于记忆和理解,请读者们耐心阅读。 数据结构教程 绪论(上) 本节学习目标 1.1 基本概念 1.2 抽象数据类型的表示…...

酒后为什么总感觉渴?

喝酒后感到口渴,这种感觉其实很常见。这主要是因为酒精对我们的身体有几种影响。首先,酒精能够扩张血管,这会加快血液循环,让肾脏更加活跃,产生更多的尿液。这样一来,我们体内的水分就会通过排尿流失&#…...

Docker安装OwnCloud私有云盘对接ceph

一、安装OwnCloud 我的安装包链接:https://pan.baidu.com/s/1cJO8WEonsw4gGQWgQaYzpw?pwd6bak 提取码:6bak 启动OwnCloud容器,没有镜像会自动下载 docker run -d -p 80:80 -v /home/owncloud:/var/www/html --name owncloud --restartalway…...

创建了Vue项目,需要导入什么插件以及怎么导入

如果你不知道怎么创建Vue项目,建议可以看一看这篇文章 怎么安装Vue的环境和搭建Vue的项目-CSDN博客 1.在idea中打开目标文件 2.系在一个插件Vue.js 3.下载ELement UI 在Terminal中输入 # 切换到项目根目录 cd vueadmin-vue # 或者直接在idea中执行下面命令 # 安装element-u…...

abstract 关键字

在C#中,abstract 关键字是一个非常重要的特性,它用于定义抽象类和抽象成员(如方法、属性、索引器、事件或操作符)。使用 abstract 关键字的目的主要是为了提供一种机制,让基类能够指定一个或多个必须由派生类实现的方法…...

用Python编写你的网络监控系统详解

概要 在现代网络管理中,实时监控网络流量和状态是保证网络正常运行的关键。使用Python编写网络监控工具可以帮助管理员及时发现和解决网络问题。本文将详细介绍如何使用Python编写网络监控工具,包括基本概念、常用库及其应用场景,并提供相应的示例代码。 网络监控的基本概念…...

操作系统——虚拟内存

一、虚拟内存是什么? 虚拟内存类似一个桥梁,原来程序直接访问物理内存读取数据,现在程序直接访问虚拟内存,由虚拟内存再访问物理内存。 使用虚拟内存的好处: 隔离进程、提高内存使用安全性:每个进程直接…...

Zoom视频会议软件使用

Zoom 是一款广泛使用的视频会议软件,可以用于在线会议、网络研讨会、课堂教学、团队协作等。以下是使用 Zoom 的基本步骤和一些有用的技巧: 安装 Zoom 下载并安装: 访问 Zoom 下载页面。下载适用于你的操作系统(Windows, macOS, Linux, iOS, Android)的客户端。安装完成后…...

MVC软件设计模式及QT的MVC架构

目录 引言 一、MVC思想介绍 1.1 MCV模型概述 1.2 Excel的处理数据 1.3 MVC模式的优势 二、QT中的MVC 1.1 模型(Model) 1. QAbstractItemModel 2. QStringListModel 3. QStandardItemModel 4. QSqlTableModel 和 QSqlQueryModel 5. QAbstract…...

使用WSL通过SSH连接并运行图形界面程序

使用WSL通过SSH连接并运行图形界面程序 1. 在Windows上安装X服务器2. 配置并启动VcXsrv3. 在WSL Ubuntu中设置DISPLAY变量4. 从WSL Ubuntu连接到远程服务器5. 在远程服务器上设置DISPLAY变量6. 测试X11转发7. 运行您的安装程序注意事项 在Windows Subsystem for Linux (WSL) 上…...

C++_核心编程_多态案例二-制作饮品

#include <iostream> #include <string> using namespace std;/*制作饮品的大致流程为&#xff1a;煮水 - 冲泡 - 倒入杯中 - 加入辅料 利用多态技术实现本案例&#xff0c;提供抽象制作饮品基类&#xff0c;提供子类制作咖啡和茶叶*//*基类*/ class AbstractDr…...

突破不可导策略的训练难题:零阶优化与强化学习的深度嵌合

强化学习&#xff08;Reinforcement Learning, RL&#xff09;是工业领域智能控制的重要方法。它的基本原理是将最优控制问题建模为马尔可夫决策过程&#xff0c;然后使用强化学习的Actor-Critic机制&#xff08;中文译作“知行互动”机制&#xff09;&#xff0c;逐步迭代求解…...

从WWDC看苹果产品发展的规律

WWDC 是苹果公司一年一度面向全球开发者的盛会&#xff0c;其主题演讲展现了苹果在产品设计、技术路线、用户体验和生态系统构建上的核心理念与演进脉络。我们借助 ChatGPT Deep Research 工具&#xff0c;对过去十年 WWDC 主题演讲内容进行了系统化分析&#xff0c;形成了这份…...

如何在最短时间内提升打ctf(web)的水平?

刚刚刷完2遍 bugku 的 web 题&#xff0c;前来答题。 每个人对刷题理解是不同&#xff0c;有的人是看了writeup就等于刷了&#xff0c;有的人是收藏了writeup就等于刷了&#xff0c;有的人是跟着writeup做了一遍就等于刷了&#xff0c;还有的人是独立思考做了一遍就等于刷了。…...

C# 求圆面积的程序(Program to find area of a circle)

给定半径r&#xff0c;求圆的面积。圆的面积应精确到小数点后5位。 例子&#xff1a; 输入&#xff1a;r 5 输出&#xff1a;78.53982 解释&#xff1a;由于面积 PI * r * r 3.14159265358979323846 * 5 * 5 78.53982&#xff0c;因为我们只保留小数点后 5 位数字。 输…...

用机器学习破解新能源领域的“弃风”难题

音乐发烧友深有体会&#xff0c;玩音乐的本质就是玩电网。火电声音偏暖&#xff0c;水电偏冷&#xff0c;风电偏空旷。至于太阳能发的电&#xff0c;则略显朦胧和单薄。 不知你是否有感觉&#xff0c;近两年家里的音响声音越来越冷&#xff0c;听起来越来越单薄&#xff1f; —…...

AI病理诊断七剑下天山,医疗未来触手可及

一、病理诊断困局&#xff1a;刀尖上的医学艺术 1.1 金标准背后的隐痛 病理诊断被誉为"诊断的诊断"&#xff0c;医生需通过显微镜观察组织切片&#xff0c;在细胞迷宫中捕捉癌变信号。某省病理质控报告显示&#xff0c;基层医院误诊率达12%-15%&#xff0c;专家会诊…...

解决:Android studio 编译后报错\app\src\main\cpp\CMakeLists.txt‘ to exist

现象&#xff1a; android studio报错&#xff1a; [CXX1409] D:\GitLab\xxxxx\app.cxx\Debug\3f3w4y1i\arm64-v8a\android_gradle_build.json : expected buildFiles file ‘D:\GitLab\xxxxx\app\src\main\cpp\CMakeLists.txt’ to exist 解决&#xff1a; 不要动CMakeLists.…...

脑机新手指南(七):OpenBCI_GUI:从环境搭建到数据可视化(上)

一、OpenBCI_GUI 项目概述 &#xff08;一&#xff09;项目背景与目标 OpenBCI 是一个开源的脑电信号采集硬件平台&#xff0c;其配套的 OpenBCI_GUI 则是专为该硬件设计的图形化界面工具。对于研究人员、开发者和学生而言&#xff0c;首次接触 OpenBCI 设备时&#xff0c;往…...

掌握 HTTP 请求:理解 cURL GET 语法

cURL 是一个强大的命令行工具&#xff0c;用于发送 HTTP 请求和与 Web 服务器交互。在 Web 开发和测试中&#xff0c;cURL 经常用于发送 GET 请求来获取服务器资源。本文将详细介绍 cURL GET 请求的语法和使用方法。 一、cURL 基本概念 cURL 是 "Client URL" 的缩写…...