SAM 2: Segment Anything in Images and Videos
Introduction
提出的目的:
1.现有的应用像自动驾驶,AR等来说都是需要temporal localization beyond image-level segmentation(时序定位而不仅是图片分割)
2. 一个好的分割模型不应该仅仅局限于图片领域,而是图视频两者兼具
3. 视频的分割,需要进行时空分割物体,需要有时空分割的能力,比起图片分割更为困难。除此之外,视频相较于图片会有物体被遮挡等问题,即更为困难的分割。除此之外,视频拥有多帧的特点,如何“高效”处理这些帧也是一个难点。毕竟没卡 0.0
Our work
- 提出了集合图片和视频的分割模型,(将图片当作一帧的图片):图片-short video-long video
- 我们的工作集中于Promptable Visual Segmentation (PVS) task,可以人先指定感兴趣的区域作为prompt生成时空mask(the spatio-temporal mask (i.e., a ‘masklet’)),其他帧基于这个mask然后得到提示也进行分割。
- 从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部分其实是比较常用的。

- 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,而且生成的数据包括一些特别小的部分和时而消失时而出现的物体。(更快生成更接近现实的标注数据) - 效果:超过了之前sam在所有图片领域分割效果,打败了所有视频物体分割benchmark模型,且效果是所有图片视频分割benchmark中最好的,而且是zero-shot(泛化能力强)。交互步骤也降低了,速度也更快了。
总的话来说:更快更好的general视频图片分割模型。 - 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
- 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.缺省值和缺省参数 缺省参数就是声明或定义函数时为函数的参数指定一个缺省参数。在调用该函数时,如果没有指定实参,则采用该形参的缺省值…...
分压电阻方式的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) 上…...
网络编程(Modbus进阶)
思维导图 Modbus RTU(先学一点理论) 概念 Modbus RTU 是工业自动化领域 最广泛应用的串行通信协议,由 Modicon 公司(现施耐德电气)于 1979 年推出。它以 高效率、强健性、易实现的特点成为工业控制系统的通信标准。 包…...
UE5 学习系列(二)用户操作界面及介绍
这篇博客是 UE5 学习系列博客的第二篇,在第一篇的基础上展开这篇内容。博客参考的 B 站视频资料和第一篇的链接如下: 【Note】:如果你已经完成安装等操作,可以只执行第一篇博客中 2. 新建一个空白游戏项目 章节操作,重…...
浅谈 React Hooks
React Hooks 是 React 16.8 引入的一组 API,用于在函数组件中使用 state 和其他 React 特性(例如生命周期方法、context 等)。Hooks 通过简洁的函数接口,解决了状态与 UI 的高度解耦,通过函数式编程范式实现更灵活 Rea…...
AI-调查研究-01-正念冥想有用吗?对健康的影响及科学指南
点一下关注吧!!!非常感谢!!持续更新!!! 🚀 AI篇持续更新中!(长期更新) 目前2025年06月05日更新到: AI炼丹日志-28 - Aud…...
调用支付宝接口响应40004 SYSTEM_ERROR问题排查
在对接支付宝API的时候,遇到了一些问题,记录一下排查过程。 Body:{"datadigital_fincloud_generalsaas_face_certify_initialize_response":{"msg":"Business Failed","code":"40004","sub_msg…...
【OSG学习笔记】Day 18: 碰撞检测与物理交互
物理引擎(Physics Engine) 物理引擎 是一种通过计算机模拟物理规律(如力学、碰撞、重力、流体动力学等)的软件工具或库。 它的核心目标是在虚拟环境中逼真地模拟物体的运动和交互,广泛应用于 游戏开发、动画制作、虚…...
质量体系的重要
质量体系是为确保产品、服务或过程质量满足规定要求,由相互关联的要素构成的有机整体。其核心内容可归纳为以下五个方面: 🏛️ 一、组织架构与职责 质量体系明确组织内各部门、岗位的职责与权限,形成层级清晰的管理网络…...
《通信之道——从微积分到 5G》读书总结
第1章 绪 论 1.1 这是一本什么样的书 通信技术,说到底就是数学。 那些最基础、最本质的部分。 1.2 什么是通信 通信 发送方 接收方 承载信息的信号 解调出其中承载的信息 信息在发送方那里被加工成信号(调制) 把信息从信号中抽取出来&am…...
智能AI电话机器人系统的识别能力现状与发展水平
一、引言 随着人工智能技术的飞速发展,AI电话机器人系统已经从简单的自动应答工具演变为具备复杂交互能力的智能助手。这类系统结合了语音识别、自然语言处理、情感计算和机器学习等多项前沿技术,在客户服务、营销推广、信息查询等领域发挥着越来越重要…...
return this;返回的是谁
一个审批系统的示例来演示责任链模式的实现。假设公司需要处理不同金额的采购申请,不同级别的经理有不同的审批权限: // 抽象处理者:审批者 abstract class Approver {protected Approver successor; // 下一个处理者// 设置下一个处理者pub…...
