【论文阅读】SAM 2: 分割一切图像和视频

news2025/1/17 3:51:27

导言

继SAM模型发布以来,Meta公司于2024年8月发布第二个图像分割大模型SAM2。相较于第一代SAM模型,论文提出了第二代“分割任意物体模型” (SAM 2),旨在解决视频中的可提示视觉分割任务(Promptable Visual Segmentation, PVS)。相比于静态图像的分割,视频分割面临着复杂的运动、变形和遮挡等挑战。SAM 2 通过引入数据引擎,改进了模型和数据的互动,并收集了迄今为止最大的可提示视频分割数据集。论文中提到,SAM 2 在视频分割中准确性更高,且比之前的方法减少了三分之二的互动次数,同时在图像分割任务中表现也比 SAM 更快速、更精确。

论文简介

论文题目:
SAM 2: Segment Anything in Images and Videos

研究领域:
Computer Vision and Pattern Recognition; Artificial Intelligence; Image and video Segmentation

论文作者:
Nikhila Ravi等

论文链接:
https://arxiv.org/abs/2408.00714

主要方法

1. 模型架构
SAM 2 是一种基于 Transformer 的模型,具备流式内存模块,用于实时处理视频分割任务。它支持图像和视频的分割,能够在任意帧上接受点击、框选或掩码作为提示,从而定义目标对象的空间范围,并生成分割掩码。
在这里插入图片描述

  • 图像编码器
    SAM 2 使用了一种分层式图像编码器(Hiera),该编码器将图像分割为不同的层级来提取特征。对于视频的实时处理,图像编码器以流式方式逐帧对视频进行编码,生成每帧的特征嵌入(feature embedding)。
    在这里插入图片描述

  • 内存模块
    SAM 2 中的内存模块用于存储关于目标对象的前一帧信息和与用户交互的提示。通过这种方式,模型可以更好地理解视频帧之间的关联。内存模块中的注意力机制能够跨越多帧,帮助模型更好地跟踪对象,使得在视频分割时能够持续有效地改进分割结果。对图像来说,由于没有前后帧,模型会空置内存模块,类似于原始的 SAM。

  • 提示编码器与掩码解码器
    SAM 2 的提示编码器可以接受点击、框选或掩码的提示,用于确定要分割的对象范围。掩码解码器接收来自当前帧的图像嵌入和提示信息,生成相应的分割掩码。提示可以迭代增加,以在同一帧上对掩码进行进一步的修正。
    在这里插入图片描述

  • 流式处理与内存注意力
    SAM 2 采用流式处理的方式处理视频帧,一个时间点上只处理一帧。模型利用内存注意力模块来结合之前帧的记忆,生成更精确的分割掩码。内存中的信息来自于之前帧的分割结果以及提示,帮助模型在长时间的视频中跟踪目标对象,即便它们在某些帧中被部分遮挡或发生了较大变化。

2. 数据引擎
论文还提出了一种数据引擎,帮助快速构建用于训练的数据集。数据引擎包含三个阶段:

第一阶段:基于图像的 SAM 逐帧标注视频,但由于没有跟踪机制,标注速度较慢。

第二阶段:结合 SAM 和 SAM 2,在第一帧手动标注后,由 SAM 2 进行后续帧的预测并加以修正。这一阶段的标注速度较前阶段提高了 5.1 倍。

第三阶段:使用全功能的 SAM 2 进行标注,SAM 2 利用内存来帮助生成分割掩码,只需偶尔进行细化点击即可。这一阶段标注速度较第一阶段提高了 8.4 倍。

3. 训练
模型在图像和视频数据上进行联合训练,模拟交互式的提示。训练过程中,随机选择一些帧进行提示,提示可以是物体的边界框、正负点击等,目标是生成正确的分割掩码并在视频中进行连续跟踪。

论文针对的问题

视频分割的核心问题在于如何应对视频中的时空变化,包括运动、变形、遮挡、光照变化等。此外,视频帧的处理效率以及低质量视频的分割也是面临的重要挑战。论文旨在提出一种统一的视频与图像分割模型,以解决当前模型在处理视频时存在的精度不足以及效率低下的问题。

论文创新点

模型架构:SAM 2 引入了流式内存模块,通过对前后帧信息的高效利用,实现了实时视频分割。
数据引擎:开发了一种数据引擎来加速视频分割数据的收集过程,相较于传统方法,效率提高了 8.4 倍。
数据集规模:构建了史上最大的可提示视频分割数据集(SA-V),包含了多达 53 倍于现有数据集的掩码数量,极大丰富了训练数据的多样性和规模。

总结

论文提出的 SAM 2 在视频和图像分割方面实现了显著的性能提升,尤其是在减少用户互动次数的同时仍保持高精度分割。通过构建大规模且多样化的数据集,SAM 2 为视觉感知领域的视频分割和相关任务的进一步研究提供了重要的里程碑。SAM 2 的发布将有助于推动视频分割技术在 AR/VR、机器人、自主车辆和视频编辑等领域的广泛应用。未来的研究应该侧重于减少模型参数,提升模型的推理速度,使得其能够真正在广泛的实际场景中进行应用。

Try SAM2:
https://sam2.metademolab.com/demo

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2214466.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

TVS常规过压保护

一、前言 上一篇文章 TVS选型-CSDN博客https://blog.csdn.net/qq_39543984/article/details/142825929?spm=1001.2014.3001.5501我们介绍了如何通过理论计算选择合适的TVS,TVS主要是防止瞬间过压,因为他的名字就叫瞬态二极管(Transient Voltage Suppressor)。本文就通过理…

自动化检查网页的TDK,python+selenium自动化测试web的网页源代码中的title,Description,Keywords

首先,TDK是什么?对于新手小白来说,可能是懵逼的,所以这里给出一个官方的解说‌网页的TDK是指标题(Title)、描述(Description)和关键词(Keywords)的集合‌。这…

智慧船舶物联网实训室建设方案

第一章 建设背景 随着全球海洋经济的蓬勃发展与智能化技术的日新月异,数字船舶物联网(Internet of Things for Maritime, IoT-Maritime)与人工智能(Artificial Intelligence, AI)的结合已成为推动航运业转型升级的关键…

企业资源枯竭时,数字化转型能否带来新资源?

​在商业竞争激烈的当下,企业发展依赖各类资源。然而,资源可能面临枯竭,如原材料短缺、市场份额下降、人才流失等。此时,数字化转型成为企业突破困境的重要途径,那么它能否带来新资源呢? 先看企业资源分类。…

C++,STL 031(24.10.14)

内容 stack容器&#xff08;栈&#xff09;的常用接口。 代码 #include <iostream> #include <stack> // 注意包含stack容器&#xff08;栈&#xff09;的头文件using namespace std;void test01() {stack<int> s1; // here01&#xff0c;默认构造stack<…

5g工业路由器最新案例:高原气象站网络升级项目

背景&#xff1a; 某省气象局决定在高原地区升级其气象观测网络&#xff0c;以提高天气预报的准确性和及时性&#xff0c;同时为气候变化研究提供更可靠的数据支持。该项目面临以下挑战&#xff1a; 需要在高原广袤且地形复杂的区域部署大量自动气象站&#xff0c;要求网络覆…

pytorh学习笔记——手写数字识别mnist

pytorh学习第二站&#xff1a;手写数字识别 一、训练程序 1、创建脚本框架mnist_demo.py&#xff1a; import torch import torchvision.datasets as dataset# data # 定义数据# net # 定义网络# loss # 损失# optimizer # 优化# training # 训练# test # 测试# save# 保…

uniapp onPageScroll

子组件有onPageScroll, 首页也要引入onPageScroll, eg: 主页面 sell/detail/index 《子组件》 <script setup> 引入onPageScroll </script> 组件&#xff1a; 引入onPageScroll 别人的比较

智能健康顾问:基于SpringBoot的系统

2相关技术 2.1 MYSQL数据库 MySQL是一个真正的多用户、多线程SQL数据库服务器。 是基于SQL的客户/服务器模式的关系数据库管理系统&#xff0c;它的有点有有功能强大、使用简单、管理方便、安全可靠性高、运行速度快、多线程、跨平台性、完全网络化、稳定性等&#xff0c;非常…

Pytorch——pip下载安装pytorch慢的解决办法

一、找到需要下载的pytorch链接 运行&#xff1a;pip install torch1.11.0cu113 torchvision0.12.0cu113 torchaudio0.11.0 --extra-index-url https://download.pytorch.org/whl/cu113。然后得到&#xff1a; 我这里为&#xff1a;https://download.pytorch.org/whl/cu113/t…

Odin插件基本使用

介绍 Odin Inspector是Unity的一个插件&#xff0c;让您可以享受拥有强大&#xff0c;自定义和用户友好编辑器的所有工作流程优势&#xff0c;而无需编写任何自定义编辑器代码。 安装 需要有对应的unity包或者去官网或者资源商店下载 官方网址 Odin Inspector and Seriali…

DAY47WEB 攻防-PHP 应用文件上传函数缺陷条件竞争二次渲染黑白名单JS 绕过

1、PHP-原生态-文件上传-检测后缀&黑白名单2、PHP-原生态-文件上传-检测信息&类型内容3、PHP-原生态-文件上传-函数缺陷&逻辑缺陷4、PHP-原生态-文件上传-版本缺陷&配置缺陷 文件上传安全指的是攻击者通过利用上传实现后门的写入连接后门进行权限控制的安全问题…

接口中的静态常量在项目中的使用,以及固长列表和变长列表

先来看一段代码 public interface WrapIgnoreList {List<String> KNIFE4J Arrays.asList("/doc.html","/swagger-resources","/swagger-resources/configuration","/v3/api-docs","/v2/api-docs","/webjars/**…

ApplicationContext获取对象时注解丢失问题及 Arthas 验证方法

引言 在使用 Spring 框架时遇到的一个常见问题&#xff1a;通过 ApplicationContext 获取到的对象无法获取到注解。 本文的目的&#xff1a;探讨这个问题的原因&#xff0c;并展示如何使用 Arthas 工具来验证和解决问题。 问题描述 描述具体的问题场景&#xff1a;通过 Appli…

MySQL—关于数据库的CRUD—(增删改查)

文章目录 关于数据库的使用&#xff1a;1. 数据库的背景知识&#xff1a;2. MYSQL数据库软件的使用&#xff08;MYSQL安装的问题在另一篇博客中讲解&#xff09;。&#xff08;1&#xff09;启动MYSQL数据库软件&#xff08;2&#xff09;开始使用数据库程序&#xff1a;1&…

【微信小程序_13_页面配置与网络数据请】

摘要:本文介绍了微信小程序的页面配置与网络数据请求。页面配置文件可对单个页面进行个性化设置,与全局配置冲突时以页面配置为准。网络数据请求有严格限制,包括只能用 HTTPS 接口并添加到信任列表。可通过wx.request()发起 GET 和 POST 请求,能在页面加载时自动请求数据。…

机器学习-决策树详解

决策树 决策树简介 学习目标 1.理解决策树算法的基本思想 2.知道构建决策树的步骤 【理解】决策树例子 决策树算法是一种监督学习算法&#xff0c;英文是Decision tree。 决策树思想的来源非常朴素&#xff0c;试想每个人的大脑都有类似于if-else这样的逻辑判断&#xff…

使用 python 下载 bilibili 视频

本文想要达成的目标为&#xff1a;运行 python 代码之后&#xff0c;在终端输入视频链接&#xff0c;可自动下载高清 1080P 视频并保存到相应文件夹。 具体可分为两大步&#xff1a;首先&#xff0c;使用浏览器开发者工具 F12 获取请求链接相关信息&#xff08;根据 api 接口下…

Java多线程--实现跑马小游戏

线程的实现方式 继承Thread类&#xff1a;void run()方法没有返回值&#xff0c;无法抛异常实现Runnable接口&#xff1a;void run()方法没有返回值&#xff0c;无法抛异常实现Callable接口&#xff1a;V call() throws Exception 返回结果&#xff0c;能够抛异常 实现Callab…

分类预测|基于鹦鹉优化宽度神经网络的数据分类预测Matlab程序 PO-BLS多特征输入多类别输出

分类预测|基于鹦鹉优化宽度神经网络的数据分类预测Matlab程序 PO-BLS多特征输入多类别输出 文章目录 前言分类预测|基于鹦鹉优化宽度神经网络的数据分类预测Matlab程序 PO-BLS多特征输入多类别输出 一、PO-BLS模型PO-BLS&#xff1a;鹦鹉优化宽度神经网络分类预测原理1. 宽度神…