SAM与Prompt的结合

news2024/12/24 21:46:49

在这里插入图片描述

1. SAM介绍

由Meta AI Research开发的Segment anything model(简称SAM)最近引起了广泛的关注。SAM在超过10亿个mask的大型分割数据集上进行了训练,能够在特定的图像上分割任何对象。在最初的SAM工作中,作者们使用了零样本迁移任务(如边缘检测)来评估SAM的性能。最近,许多工作试图在各种场景中研究SAM识别和分割对象的性能。此外,也有许多项目通过将SAM与其他模型(如Grounding DINO、Stable Diffusion、ChatGPT等)结合,展示了SAM作为基础模型的多功能性。随着相关的论文和项目数量呈指数级增长,读者们很难跟上SAM的发展进程。为此,我们进行了第一个也是最全面的关于SAM的调研。这是一个正在进行的项目,我们打算定期更新稿件。因此,如果读者完成了与SAM相关的新工作,欢迎他们联系我们,以便我们可以在下一版中包含他们的作品。

在这里插入图片描述
ChatGPT颠覆了我们对AI的认知,引起了全球范围内的重大关注和兴趣。它标志着生成AI(AIGC,又名人工智能生成内容)的重大突破,其中基础模型发挥了重要的作用。这种大型语言模型在语言任务中取得了显著的性能,引领了各种NLP领域的新范式。

在视觉领域,多项研究(Radford等人[2021],Jia等人[2021],Yuan等人[2021])尝试通过对比学习(He等人[2020],Qiao等人[2023],Zhang等人[2022a])将图像编码器与文本编码器一起学习。因此得到的图像编码器可以被视为视觉基础模型。另一种训练视觉基础模型的形式是通过自监督学习,例如masked autoencoder。然而,这种视觉基础模型在用于下游任务之前通常需要进行微调。

最近,Meta研究团队发布了一个名为"Segment Anything"的项目,其中提出了一个名为Segment Anything Model (SAM)的模型。"Segment Anything"项目的总体视图如图1所示。值得一提的是,SAM执行的是可提示的分割,这与语义分割有两点不同:(1) SAM生成的mask没有标签;(2) SAM依赖于提示。换言之,SAM只是在图像中剪切出物体,而不分配标签(见图1),哪个物体被剪切取决于给定的提示。考虑到所谓的提示工程,SAM在无需微调的情况下展现出了显著的零样本转移性能,使许多人相信,SAM对计算机视觉的影响就如同GPT-3 Brown等人[2020]对自然语言处理的影响一样。SAM在SA-1B上进行训练,该数据集包含来自1100万张图片的超过10亿个mask,是迄今为止发布的最大的分割数据集。

标签预测与mask预测。从概念上讲,语义分割可以被认为是mask预测和标签预测的结合。"Segment Anything"项目的成功表明,这两个子任务可以被解耦,而SAM专门解决第一个任务。没有像现有的图像分割任务(如实例分割和全景分割)那样的标签预测,SAM解决的任务乍看之下可能似乎是一个微不足道的任务。然而,实际上,它解决了计算机视觉中的一个基本任务,这对于视觉基础模型的发展有所贡献。为了最大化对未见分布的泛化,视觉基础模型需要使用足够大且多样化的数据集进行训练。当数据集的大小和多样性增加时,物体类别和标签具有开放词汇性,这使得无法预先确定一份固定的标签列表。

视觉基础模型遇见可提示的分割。为了克服上述问题,SAM Kirillov等人[2023]选择了基于提示的mask预测任务(也称为可提示的分割),在其中,提示的角色类似于注意力。当人眼理解世界时,它通常会集中在某个特定的对象上,同时将其周围的区域视为背景。如果在同一场景中存在众多对象,没有注意力机制,人眼就无法理解它。此外,即使观察者过去从未见过类似的对象,人眼也能识别和分割出感兴趣的对象。例如,一个初次看到萨摩耶犬的婴儿会跟踪狗的运动,尽管它从未理解过什么是狗。换句话说,视觉理解主要依赖于物体mask,而不是其对应的标签。总的来说,可提示的分割任务很好地模仿了人眼如何理解世界。在可提示分割上训练的SAM构成了一种视觉基础模型,这种模型不仅可以推广到未见的分布,而且与其他模型兼容,用于实现更多需求的任务。在不到一个月的时间里,社区已经进行了许多项目和文章,从各种角度研究SAM。它们大致可以分为两类:(1)第一类在现实世界的物体检测任务中评估和改进SAM;(2)第二类通过将SAM与其他模型结合,利用SAM的多功能性。鉴于工作量的增加,读者可能很难跟上SAM的发展。为此,本文对SAM在视觉进入NLP路径拥抱基础模型时代的情况进行了一次调研。

在这里插入图片描述

2 . SAM真的可以在所有情况下分割任何东西吗?

正如标题所示,SAM声称可以分割图像中的任何内容。然而,目前还不清楚SAM模型是否能在现实世界中很好地工作。因此,最近开展了大量工作来评估其在各种场景中的性能,包括医学图像等。

在这里插入图片描述

3. From segment anything to X anyting

SAM (自监督联想记忆)在“分割任何事物”方面的成功激励了社区去研究"X 任何事物"。具体来说,SAM已经在许多项目中表现出了其多功能性,当与其他模型结合使用时,可以实现令人印象深刻的性能。
在这里插入图片描述

4. 评估SAM全能模式的度量标准

SAM的一个重要特征是它可以在“分割所有事物”的模式下工作。这种模式提供了一个直接的方式来可视化SAM的质量。然而,我们并没有度量标准来评估SAM在这种模式下的性能。评估SAM全能模式的一个主要挑战在于,预测的遮罩没有标签。换句话说,模型只是切割出对象,而没有赋予标签,因此我们将全能模式称为切割分割。在我们介绍我们提出的切割分割度量标准之前,我们首先总结了现有的图像分割任务的度量标准,如图10所示。

在这里插入图片描述

5 . 结论

基于可提示的分割任务,"分割任何事物"模型(SAM)是首个模仿人眼理解世界的视觉基础模型,其出现彻底改变了计算机视觉社区。我们的工作进行了对SAM的首次而全面的调研。我们希望我们的调研能帮助对SAM感兴趣并希望进行相关研究的读者。

参考

https://mp.weixin.qq.com/s/Qqhox8Ua2M4Bc8Z4twUdTg

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

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

相关文章

08- c语言字符串 (C语言)

一 字符串的定义及基本使用 1、什么是字符串 被双引号引用的字符集合!例如:”hello” 、”world”,或者是以 \0 结尾的字符数组!!! 比如:char ch[] {h, e, \0} 注意:”hello” 中…

GB50149-2010电气装置安装工程母线装置施工及验收规范

为了确保强硬钢丝绳金属封闭体绝缘金属封闭母线、绝缘子、硬件、穿墙套管等设备母线的安装质量,加快安装技术的进步,和确保设备的安全运行,使该规范。 本规范适用于总线设备安装了750 kv及以下的T范围施工和验收。 母线的安装应按照批准的设计文件施工。 设备和设备运输、储…

python:并发编程(二十五)

前言 本文将和大家一起探讨python并发编程的实际项目:win图形界面应用(篇七,共八篇),系列文章将会从零开始构建项目,并逐渐完善项目,最终将项目打造成适用于高并发场景的应用。 本文为python并…

postman 文档、导出json脚本 导出响应数据 response ,showdoc导入postman json脚本 导出为文档word或markdown

生成文档 Collections中 选中文件夹 - ... (文件夹 功能小按钮) - view documentation : 保存响应数据 Response:(如果导出接口数据,会同步导出响应数据) 请求接口后,点击下方 Save as Example 可以保存响应数…

机器学习day20(前向传播的向量化代码,矩阵乘法)

前向传播的循环代码与向量化代码的对比 把X、B写作二维数组,即矩阵左边的for循环就可以用右边的np.matmul来实现matmul是numpy执行矩阵乘法的一种方式注意:此时所有的变量(X、W、B、Z、A_out)都是二维数组,即矩阵 向…

基础排序算法【归并排序+非递归版本+边界修正】

基础排序算法【归并排序非递归版本边界修正】 Ⅰ.归并排序(递归版本)①.分割②.归并③.拷贝 Ⅱ.非递归版本Ⅲ.边界修正 Ⅰ.归并排序(递归版本) 递归排序,采用的是分治法。分成子问题来处理。先让序列不断分割成子序列,当子序列有序后再合并。 对于一段…

Yolov5-Face 原理解析及算法解析

YOLOv5-Face 文章目录 YOLOv5-Face1. 为什么人脸检测 一般检测?1.1 YOLOv5Face人脸检测1.2 YOLOv5Face Landmark 2.YOLOv5Face的设计目标和主要贡献2.1 设计目标2.2 主要贡献 3. YOLOv5Face架构3.1 模型架构3.1.1 模型示意图3.1.2 CBS模块3.1.3 Head输出3.1.4 stem…

202320读书笔记|《宋词》——竹杖芒鞋轻胜马,谁怕?一蓑烟雨任平生

202320读书笔记|《宋词》——竹杖芒鞋轻胜马,谁怕?一蓑烟雨任平生 《宋词》韩震主编,偶然从书友那加入书架的书。宋词挺喜欢李清照的词以及知否的《菩萨蛮》。诗集,词,俳句,短歌我都很喜欢&…

工欲善其事,必先利其器-基于ubuntu18.04 VScode开发100ASK-ESP32

点击上方“嵌入式应用研究院”,选择“置顶/星标公众号” 干货福利,第一时间送达! 来源 | 嵌入式应用研究院 整理&排版 | 嵌入式应用研究院 前面我们基于ubuntu环境搭建了esp-idf的开发环境,它也是为了接下来基于VSCode来开发1…

【openGauss基本概念】---快速入门

【openGauss简单使用】---快速入门 🔻 一、基本概念🔰 1.1 openGauss🔰 1.2 数据库(Database)🔰 1.3 数据块(Block)🔰 1.4 行(Row)🔰 …

【MySQL数据库】主从复制与读写分离

目录 一、读写分离1.1概述1.2为什么要读写分离呢?1.3什么时候要读写分离? 1.4主从复制与读写分离1.5mtsql支持的复制类型1.6主从复制工作流程1.7主从复制原理 二、主从复制实战 一、读写分离 1.1概述 读写分离,基本的原理是让主数据库处理事…

React从入门到实战 -组件的三大核心属性(2)props

文章目录 基本使用对props进行限制类式组件中的构造器 基本使用 // 定义组件class MyComponent extends React.Component{render(){return (<ul><li>姓名&#xff1a;{this.props.name}</li><li>年龄&#xff1a;{this.props.age}</li><li>…

【开源与项目实战:开源实战】85 | 开源实战四(中):剖析Spring框架中用来支持扩展的两种设计模式

上一节课中&#xff0c;我们学习了 Spring 框架背后蕴藏的一些经典设计思想&#xff0c;比如约定优于配置、低侵入松耦合、模块化轻量级等等。我们可以将这些设计思想借鉴到其他框架开发中&#xff0c;在大的设计层面提高框架的代码质量。这也是我们在专栏中讲解这部分内容的原…

MongoDB负载均衡集群(第8章节选)

MongoDB自身可组成分片加复制的集群&#xff0c;在这个集群的前端加上负载均衡器&#xff08;比如HAProxmy Keepalived&#xff09;&#xff0c;就可组建成一个无单点故障、十分完美的高可用负载均衡集群&#xff08;如图8-1所示&#xff09;。 图8- 1 整个MongDB高可用体系结…

基于java+swing+mysql飞机票预订系统

基于javaswingmysql飞机票预订系统 一、系统介绍二、功能展示1.项目内容2.项目骨架3.数据库表4.注册窗口5.登录窗口6、用户-主窗口7、用户-查询航班8.用户--订票8.用户--取票9.管理员-所有航班信息10.管理员-添加航班11.用户信息12.订票状态 四、其它1.其他系统实现五.获取源码…

路径规划-DWA算法(C++实现)

1、简单介绍 DWA算法&#xff08;dynamic window approach&#xff09;&#xff0c;其原理主要是在速度空间&#xff08;v,w&#xff09;中采样多组速度&#xff0c;并模拟出这些速度在一定时间内的运动轨迹&#xff0c;并通过评价函数对这些轨迹进行评价(其中包括距离障碍物距…

【学习笔记】 科目一之概念篇

【学习笔记】 科目一之概念篇 概念题方法 1&#xff09;抓重点&#xff1a;科目一设计知识范围太广&#xff0c;不要妄想所有知识点都复习到&#xff0c;这是不可能的&#xff0c;我们的目标是45分几个而不是考高分&#xff0c;复习时间有限&#xff0c;所以要学会抓重点&…

图片是如何生成的--图像生成模型(GAN、VAE、扩散模型)简介

目录 1.GAN 2.AutoEncoder及其变种&#xff1a;AE/DAE/VAE/VQVAE 2.1 AE&#xff1a; 2.2 DAE&#xff1a;Denoising AutoEncoder 2.3 VAE&#xff1a;Variational AutoEncoder 2.4 VQVAE&#xff1a;Vector-quantised Variational AutoEncoder 3. 扩散模型 3.1 扩散…

【openGauss简单数据管理】--快速入门

【openGauss简单数据管理】--快速入门 &#x1f53b; 一、openGauss数据库管理&#x1f530; 1.1 连接openGauss数据库&#x1f530; 1.2 创建数据库&#x1f530; 1.3 查看数据库和切换数据库&#x1f530; 1.4 修改数据库&#x1f530; 1.5 删除数据库&#x1f530; 1.6 启停…

【QQ界面展示-实现自动回复 Objective-C语言】

一、刚才咱们监听键盘弹出事件,是怎么监听的, 1.监听键盘弹出事件的步骤 1)首先,在控制器的viewDidLoad方法中,创建一个NotificationCenter对象啊 2)通过center,让当前控制器的这个方法,监听这个通知, 3)然后,我们在这个通知里面,获取到键盘的Y值, 4)对我们的…