【图像分割】视觉大模型SEEM(Segment Everything Everywhere All at Once)原理解读
文章目录
- 摘要(效果)
- 二、前言
- 三、相关工作
- 四、method
- 4.1 多用途
- 4.2 组合性
- 4.3 交互式。
- 4.4 语义感知
- 五、实验
论文地址:https://arxiv.org/abs/2304.06718
测试代码:https://github.com/UX-Decoder/Segment-Everything-Everywhere-All-At-Once
来自:威斯康辛麦迪逊、微软、港科大等
摘要(效果)
随着交互式人工智能系统的需求增长,视觉方面的人-AI交互的综合研究也受到基于提示的LLM通用接口开发的启发,本文提出了SEEM,一个快速的、交互式的模型,用于在图像中一次性分割一切。
1.文本提示。通过用户输入的文本生成掩模,进行一键分割(SEEM可以适应卡通、电影和游戏领域中的各种类型的输入图像)。
2.图像提示。给一个擎天柱卡车的图,就能分割任何目标图像上的擎天柱
3.点击与涂鸦提示。SEEM通过对引用图像的简单点击,或涂鸦,就能够对目标图像上有相似语义的对象进行分割。
4.此外,SEEM非常了解空间关系。左上行斑马被涂鸦后,也会分割出最左边的斑马。
5.视频分割:
SEEM有四个需求:
1)通过引入 不同类型的通用提示引擎 ,包括点、框、涂鸦、掩码、文本和另一幅图像的参考区域;
2)通过 学习联合视觉-语义空间 进行视觉和文本提示,动态查询进行推理,如上图所示;
3)通过合并可学习的记忆提示,通过掩码引导的交叉注意保留对话历史信息;
4)使用文本编码器编码文本查询,并掩码标签进行开放词汇表分割。
当SEEM学会了在一个统一的表示空间中编写不同类型的提示时,它显示出了概括到看不见的用户意图的强大能力。SEEM可以有效地使用一个轻量级的提示解码器处理多轮交互。
二、前言
像ChatGPT 这样的大型语言模型(LLM)的成功显示了现代人工智能模型在与人类互动中的重要性。与人类互动的能力需要一个用户友好的界面,它可以接受尽可能多的人类输入,并产生人类很容易理解的反应。在NLP中,这种通用的交互界面已经出现并发展了一段时间,从早期的模型,如GPT和T5(Exploring the limits of transfer learning with a unified text-to-text transformer),到一些更先进的技术,如 prompt 和chain of thought。SAM支持多个提示。但是,下图所示的SAM只支持有限的交互类型,如点和盒子,并且不支持高级语义任务,因为它不输出语义标签(图中,SEEM在两种交互方法,如示例图像的参考区域和语义空间上都有更丰富的上下文)。
文章提倡一个通用的界面,用多模态提示来分割 everything!通用性:SEEM模型可以处理输入提示的任何组合(点、掩码、文本、方框,甚至另一个图像的参考区域,在相同的联合视觉-语义空间中形成提示),从而导致强大的组合性。交互性,我们进一步引入了内存提示来压缩之前的分割信息,然后与其他提示进行通信。对于语义感知,我们的模型为任何输出分割提供了一个开放集的语义。将所有5种不同类型的提示映射到联合视觉-语义空间,通过zero-shot 适应实现看不见的用户提示。通过对不同分割任务的训练,模型能够处理各种提示。
除了较强的泛化能力外,SEEM运行也很快。我们将提示作为解码器的输入。因此,当与人类进行多轮交互时,模型只需要在一开始就运行一次特征提取器。在每次迭代中,我们只需要使用新的提示再次运行轻量级解码器。在部署模型时,通常在服务器上运行繁重的特性提取器,并在用户的机器上运行相对轻量级的解码器,以减少多个远程调用中的网络延迟。
1.设计了一个统一的提示方案,可以将各种用户意图编码到一个联合的视觉-语义空间中,该空间具有通用性、组合性、交互性和语义意识等特性,导致对分割提示的 zero-shot 能力
2.将新设计的提示机制集成到一个用于所有分割任务的轻量级解码器中,构建了一个通用的交互式分割界面SEEM。
3.在许多分割任务上实验和可视化,包括闭集和开放集的全光分割、交互分割、参考分割和组合提示分割任务,证明了性能。
三、相关工作
闭集分割
通用分割技术包括几个子任务,包括实例分割、语义分割和全光分割,每个子任务都集中于不同的语义级别。例如,语义分割的目标是根据图像中对应的语义类来识别和标记图像中的每个像素。另一方面,实例分割涉及到将属于同一语义类的像素分组到单独的对象实例中。近年来,基于Transformer结构的(DETR)模型在分割任务方面取得了重大进展。然而,这些方法不能识别训练集中缺少的对象,这将模型限制在有限的词汇量大小内。
开放集分割
参考分割模型的目标是语言描述分割,这本质上是开放词汇表。然而,由于参考分割数据有限,训练后的模型往往在目标数据集上表现良好,但很难推断到实际应用中。最近,一些模型提出了许多开放词汇分割模型,它使用大型的预先训练的视觉语言模型,如CLIP,通过冻结或调整它们的权重来转移视觉语义知识。最近,X-Decoder提出了一种单一化的方法来处理各种分割和开放词汇分割的视觉语言任务。为了扩大词汇量的规模,OpenSeeD提出使用大量的检测数据和一种联合训练方法来改进分割。ODISE 利用了一个文本到图像的扩散模型作为开放词汇表分割的主干。
交互式分割
交互式分割是通过交互式地获取用户输入来分割对象。通常,交互类型可以采取各种形式,如点击、方框、多边形和涂鸦,其中基于点击的交互模型是最普遍的。SAM提出了一个在1100万张图像上训练的快速分割模型,显示了很强的zero shot 性能。它将用户交互作为一般分割的提示。但是SAM产生没有语义意义的分割。且提示的类型仅限于点、方框和文本。
四、method
SEEM采用了一种通用的编-解码器架构,在查询和提示之间具有复杂的交互,如下图(a),所示给定一个输入图像 I∈RH×W×3,一个图像编码器首先用于提取图像特征z,SEEM解码器基于查询输出的Omh(mask嵌入)和Och(类嵌入)与视觉、文本和内存提示 Pt,Pv,Pm的交互,从而预测掩码M和语义C。
(a)左边是对该模型的概述。首先,特征 和 提示 由其相应的编码器或采样器编码到一个联合的视觉-语义空间。而可学习的查询则是随机初始化的。SEEM解码器将查询、特征和提示作为输入和输出,并将类和掩码嵌入用于掩码和语义预测。右边部分是SEEM解码器和视觉采样器的细节。(b)显示了多轮的交互作用。每一轮都包含一个人的循环和一个模型循环。在人循环中,人接收最后一次迭代的掩模输出,并通过视觉提示对下一轮解码的正或负反馈。在模型循环中,模型接收并更新内存提示,以便进行未来的预测。
4.1 多用途
在SEEM中,我们引入了视觉提示Pv来处理所有非文本输入,如点、框、涂鸦和另一个图像的参考区域。当文本提示无法识别正确的数据段时,这些非文本查询有助于消除用户意图的歧义。对于交互式分割,以前的工作要么将空间查询转换为掩码,并将它们输入图像主干,要么为每种输入类型(点、框)使用不同的提示编码器。第一种方法在应用中过于heavy,每个交互都要求图像通过特征提取器。第二种方法很难推广到不可见的提示中。为了解决这些限制,SEEM提出了一个视觉采样器(图3 (a)),将各种非文本查询转换为位于同一视觉嵌入空间中的视觉提示:
其中, Z ^ \hat{Z} Z^是从目标图像(即 Z ^ \hat{Z} Z^=Z)或参考图像中提取的特征图,而s(方框、涂鸦、多边形)是用户指定的采样位置。我们首先通过点采样从图像特征中汇集相应的区域。 对于所有的视觉提示,最多从提示指定的区域均匀插值512个点特征向量。方法的另一个优点是,视觉提示自然与文本提示很好地对齐,模型通过全景分割和参考分割不断地学习一个共同的视觉-语义空间。
全景分割 Panoptic Segmentation :要求图像中的每个像素点都必须被分配给一个语义标签和一个实例id
参考分割 referring segmentation: 跨模态分割,给定一个语句描述,分割出图像对应的物体区域
4.2 组合性
在实践中,用户需要使用不同的或组合的输入类型来实现意图。常见模型训练中有两个问题。首先,训练数据通常只涵盖单一类型的交互(例如:空白、文本、视觉)。其次,使用视觉提示来统一所有非文本提示,并将它们与文本提示对齐,但其嵌入空间在本质上仍然不同。为了解决这个问题,我们建议用不同的输出来匹配不同类型的提示。考虑到视觉提示来自图像特征,而文本提示来自文本编码器,我们分别将视觉提示和文本提示与掩码嵌入Om h或类嵌入Oc h进行匹配,从而选择匹配的输出索引。
其中IoUmask是真实掩码和预测掩码之间的交并比。所提出的分离匹配方法优于在所有提示中只与Om h或Oc h匹配的方法。
经过训练,我们的模型熟悉所有提示类型,并支持多种组合方式,如没有提示,一种提示类型,或使用相同的模型和权重的视觉和文本提示。特别是,视觉提示和文本提示可以简单地连接并输入到SEEM解码器中,即使它从未接受过这样的训练。
4.3 交互式。
交互式分割通常不能在一次完成,需要多次交互进行细化,类似于ChatGPT这样的会话代理。SEEM提出了一种新的提示类型Pm,并使用它们将上一次迭代中的mask 知识传递给当前iter。此处没有引入额外的模块,只引入了一些内存提示,负责通过使用mask引导的交叉注意层来编码历史信息:
其中,Mp是上一个掩模,Z是图像特征图。因此,交叉注意只在前一个掩码指定的区域内生效。更新后的记忆提示Plm通过自注意力与其他提示进行交互,以传达当前一轮的历史信息。这种设计可以很容易地扩展到支持多个对象的同时分割。
4.4 语义感知
SEEM 以zero shot 的方式为各种提示组合的 mask 提供语义标签。因为视觉提示特征是在一个联合的视觉-语义空间中与文本特征对齐的。如下图所示,语义标签将通过Och(视觉查询的输出)和词汇表的文本嵌入直接计算。虽然我们没有训练任何针对交互式分割的语义标签,但计算出的对数对齐得很好,受益于联合的视觉-语义空间。
五、实验
数据集和设置 SEEM采用三种数据类型进行训练:全视分割、参考分割和交互分割。采用COCO2017 训练全景和交互分割,总共得到了10个7K的分割图像。对于参考分割,我们使用Ref-COCO、Ref-COCOg和RefCOCO+的组合来进行COCO图像注释。评估了所有的分割任务,包括通用分割(实例/全景/语义)、参考分割和交互式分割。
实施细节和评估指标。SEEM框架遵循X-Decoder框架,除了解码器部分(视觉骨干、语言骨干、编码器和seem解码器组成)。对于视觉骨干,我们使用FocalT [54]和DaViT-d3 (B) [9]。对于语言编码器,我们采用了一个UniCL或佛罗伦萨文本编码器[55,59]。分割任务的评估指标为PQ(全光学质量)用于全光分割,AP用于实例分割,mIoU的语义分割。对于交互式分割,通过自动将预测的分割与GT的分割进行比较,来模拟用户的点击。在一次点击图像生成预测的掩模后,下一次点击将被放置在分割误差最大的区域的中心。使用点击次数(NoC)度量来评估交互式分割性能,它度量实现某一IoU所需的点击次数,即85%和90%,分别表示为NoC@85和NoC@90。
- 交互式分割
表1将SEEM与最先进的交互式分割模型进行了比较,获得了与RITM、SimpleClick等相当的性能,与使用比SEEM多×50个分割数据的SAM 相比非常相似。
-
一般分割
在所有分割任务上预先训练一套参数,我们直接评估其在一般分割数据集上的性能。 -
参照Referring 分割
如下表所示,通过添加视觉组合提示,在微型模型的cIoU、mIoU和AP50指标下,参考分割性能得到了提高,分别为5.7、3.6和4.2点。该间隙在基础模型上进行了再训练,分别提高了2.5、1.5和0、4点。具体来说,这个数字是由类嵌入Och(outtut-q-文本)计算的。而当使用掩码嵌入Omh(Output-Q-Visual)计算边界时,边界甚至更大,如下表。此外,我们对一般组合(直接结合视觉和文本掩码的输出概率)进行基准测试。
4. 消融实验
当添加迭代和负视觉提示时,通用分割的性能略有下降。此外,如果我们从头开始训练模型,通用分割的性能下降更多。正如预期的那样,当从零开始训练时,参考分割性能下降。然而,当添加负面的视觉提示时,它会进一步减少。另一方面,在交互分割任务中添加迭代次数可以略微提高接地性能。通过添加迭代和负视觉提示,交互式分割性能逐渐提高,而从头开始训练令人惊讶地使Pascal VOC数据集的性能略有提高。
下表中,“Iter”表示多轮迭代分割。“negtive”表示在交互式分割过程中添加负点。
5. 定性结果
见摘要。
相关文章:

【图像分割】视觉大模型SEEM(Segment Everything Everywhere All at Once)原理解读
文章目录 摘要(效果)二、前言三、相关工作四、method4.1 多用途4.2 组合性4.3 交互式。4.4 语义感知 五、实验 论文地址:https://arxiv.org/abs/2304.06718 测试代码:https://github.com/UX-Decoder/Segment-Everything-Everywher…...
Linux: command: ibstat; infiniband
文章目录 如何在Linux上安装infiniband相关的软件。ibstat相关资料 如何在Linux上安装infiniband相关的软件。 https://access.redhat.com/solutions/301643 https://docs.oracle.com/cd/E19436-01/820-3522-10/ch3-linux.html yum groupinstall “Infiniband Support” Pack…...

UML简介与类图详解
1 UML简介 1.1 UML是什么 UML,全称为Unified Model Language,即统一建模语言,是由一整套图表组成的,为面向对象系统的产品进行说明、可视化和编制文档的一种标准语言。UML 代表了一组最佳工程实践,这些实践已被证明在…...
【每日一题】1994.好子集的数目
1994.好子集的数目 题目描述解决方案:状态压缩动态规划代码:Python 题目来源:LeetCode 原文链接:https://mp.weixin.qq.com/s/myI7_ZwJM7kizrwUtWgAZQ 难度级别:困难 题目描述 给你一个整数数组 nums。如果 nums 的一…...

坚持伙伴优先,共创数据存储新生态
4 月 26 日,2023 阿里云合作伙伴大会上,阿里巴巴集团董事会主席兼 CEO、阿里云智能集团 CEO 张勇表示,阿里云的核心定位是一家云计算产品公司,生态是阿里云的根基。让被集成说到做到的核心,是要坚定走向“产品被集成”…...

树形结构的三级分类如何实现?
概述: 本三级联动分类服务端使用的是: Springboot MyBatis-plus,前端使用的是:VueElementUI,树形控件使用的是el-tree。本三级联动分类可以把任一子项拖拽到其它目录,可以添加、编辑、删除分类。 效果图:…...

SSM整合完整流程
🏠个人主页:shark-Gao 🧑个人简介:大家好,我是shark-Gao,一个想要与大家共同进步的男人😉😉 🎉目前状况:23届毕业生,目前在某公司实习…...

虹科方案 | 助力高性能视频存储解决方案-2
上篇文章《虹科方案 | 助力高性能视频存储解决方案-1》我们分享了虹科&ATTO 和 Avid 共同创建协作解决方案,助力高性能视频存储,今天我们再深入介绍一下我们的案例详情。 一、行业挑战 从高端广播设施到小型独立工作室的媒体后期制作环境都需要允许多…...

java版深圳 工程管理系统软件 自主研发,工程行业适用 软件源码
Java版工程项目管理系统 Spring CloudSpring BootMybatisVueElementUI前后端分离 功能清单如下: 首页 工作台:待办工作、消息通知、预警信息,点击可进入相应的列表 项目进度图表:选择(总体或单个)项目显示…...

云原生Istio架构和组件介绍
目录 1 Istio 架构2 Istio组件介绍2.1 Pilot2.2 Mixer2.3 Citadel2.4 Galley2.5 Sidecar-injector2.6 Proxy(Envoy)2.7 Ingressgateway2.8 其他组件 1 Istio 架构 Istio的架构,分为控制平面和数据面平两部分。 - 数据平面:由一组智能代理([En…...

吹爆,全网第一个手把手教你从零开始搭建Spring Cloud Alibaba的笔记
Spring Cloud Alibaba 是阿里巴巴提供的微服务开发一站式解决方案,是阿里巴巴开源中间件与 Spring Cloud 体系的融合。 Springcloud 和 Srpingcloud Alibaba 区别? SpringCloud: 部分组件停止维护和更新,给开发带来不便;SpringCl…...

企业短信遭疯狂盗用,可能是没配置验证码
手机短信作为一种快捷的通讯方式被广泛应用。不仅在个人日常生活中,企业也习惯使用手机短信来进行验证和提醒,以保证业务的正常进行。随着数字化的发展,手机短信也成为了不法分子滥用的目标之一,给个人和企业带来不同经济损失。 个…...

【UE】直升机沿样条线移动
效果 步骤 1. 将虚幻商城中的免费资产导入工程 下载完毕后可以看到如下文件 2. 新建一个Actor蓝图类,命名为“Track”,这个蓝图就是用来画样条线的 打开“Track”,添加样条组件 3. 打开“BP_West_Heli_AH64D” 在事件图表中先新建一个时间轴…...
GaussDB_200_6.5.1部署安装
目录 安装前准备 安装依赖 修改/etc/hosts 上传解压介质 预安装 拷贝安装包 预安装配置 编辑preinstall.ini配置文件 编辑host0配置文件 执行预安装命令 安装FusionInsight_Manager 修改install安装配置文件 执行安装命令 web操作安装数据库 GaussDB200测试 配…...

软件工具 | Python调用运筹优化求解器(一):以CVRPVRPTW为例
目录 1. 引言2. 求解器介绍3. 基础语言3.1 创建模型3.2 添加变量3.3 添加目标函数3.4 添加约束3.5 设置参数3.6 求解 4. 数学模型4.1 [CVRP数学模型](https://mp.weixin.qq.com/s/DYh-5WkrYxk1gCKo8ZjvAw)4.2 [VRPTW数学模型](https://mp.weixin.qq.com/s/tF-ayzjpZfuZvelvItue…...
如何在JAVA中实现网络编程?
在Java中实现网络编程通常需要使用Java提供的网络编程库——Java Networking API。Java Networking API支持常见的TCP和UDP协议,包括Socket、ServerSocket、DatagramSocket等类,通过这些类,我们可以创建、连接、监听和传输数据。 下面是在Ja…...

【redis】redis的缓存过期淘汰策略
【redis】redis的缓存过期淘汰策略 文章目录 【redis】redis的缓存过期淘汰策略前言一、面试题二、redis内存满了怎么办?1、redis默认内存是多少?在哪查看?如何修改?在conf配置文件中可以查看 修改,内存默认是0redis的默认内存有…...

ASP.NET动态Web开发技术第8章
第8章ASP.NET数据访问 一.预习笔记 1.SqlDataSource控件 SqlDataSource数据源控件支持连接SQL关系数据库,它使用SQL命令来检索和修改数据。通常将SqlDataSource数据源控件与数据绑定控件一起使用。 属性1:ID:当前数据源控件的唯一标识符 …...

【旋转编码器如何工作以及如何将其与Arduino一起使用】
在本教程中,我们将学习旋转编码器的工作原理以及如何将其与Arduino一起使用。您可以观看以下视频或阅读下面的书面教程。 1. 概述 旋转编码器是一种位置传感器,用于确定旋转轴的角度位置。它根据旋转运动产生模拟或数字电信号。 有许多不同类型的旋转编码器按输出信号或传感…...

Tre靶场通关过程(linpeas使用+启动项编辑器提权)
Tre靶场通关 通过信息收集获得到了普通用户账号密码,利用PEASS-ng的linpeas脚本进行提权的信息收集,根据已有信息进行提权。 靶机下载地址: https://download.vulnhub.com/tre/Tre.zip 信息收集 靶机IP探测:192.168.0.129 a…...

linux之kylin系统nginx的安装
一、nginx的作用 1.可做高性能的web服务器 直接处理静态资源(HTML/CSS/图片等),响应速度远超传统服务器类似apache支持高并发连接 2.反向代理服务器 隐藏后端服务器IP地址,提高安全性 3.负载均衡服务器 支持多种策略分发流量…...

基于ASP.NET+ SQL Server实现(Web)医院信息管理系统
医院信息管理系统 1. 课程设计内容 在 visual studio 2017 平台上,开发一个“医院信息管理系统”Web 程序。 2. 课程设计目的 综合运用 c#.net 知识,在 vs 2017 平台上,进行 ASP.NET 应用程序和简易网站的开发;初步熟悉开发一…...

解决Ubuntu22.04 VMware失败的问题 ubuntu入门之二十八
现象1 打开VMware失败 Ubuntu升级之后打开VMware上报需要安装vmmon和vmnet,点击确认后如下提示 最终上报fail 解决方法 内核升级导致,需要在新内核下重新下载编译安装 查看版本 $ vmware -v VMware Workstation 17.5.1 build-23298084$ lsb_release…...

(二)原型模式
原型的功能是将一个已经存在的对象作为源目标,其余对象都是通过这个源目标创建。发挥复制的作用就是原型模式的核心思想。 一、源型模式的定义 原型模式是指第二次创建对象可以通过复制已经存在的原型对象来实现,忽略对象创建过程中的其它细节。 📌 核心特点: 避免重复初…...

【Zephyr 系列 10】实战项目:打造一个蓝牙传感器终端 + 网关系统(完整架构与全栈实现)
🧠关键词:Zephyr、BLE、终端、网关、广播、连接、传感器、数据采集、低功耗、系统集成 📌目标读者:希望基于 Zephyr 构建 BLE 系统架构、实现终端与网关协作、具备产品交付能力的开发者 📊篇幅字数:约 5200 字 ✨ 项目总览 在物联网实际项目中,**“终端 + 网关”**是…...

Android15默认授权浮窗权限
我们经常有那种需求,客户需要定制的apk集成在ROM中,并且默认授予其【显示在其他应用的上层】权限,也就是我们常说的浮窗权限,那么我们就可以通过以下方法在wms、ams等系统服务的systemReady()方法中调用即可实现预置应用默认授权浮…...

全志A40i android7.1 调试信息打印串口由uart0改为uart3
一,概述 1. 目的 将调试信息打印串口由uart0改为uart3。 2. 版本信息 Uboot版本:2014.07; Kernel版本:Linux-3.10; 二,Uboot 1. sys_config.fex改动 使能uart3(TX:PH00 RX:PH01),并让boo…...

PHP 8.5 即将发布:管道操作符、强力调试
前不久,PHP宣布了即将在 2025 年 11 月 20 日 正式发布的 PHP 8.5!作为 PHP 语言的又一次重要迭代,PHP 8.5 承诺带来一系列旨在提升代码可读性、健壮性以及开发者效率的改进。而更令人兴奋的是,借助强大的本地开发环境 ServBay&am…...
文件上传漏洞防御全攻略
要全面防范文件上传漏洞,需构建多层防御体系,结合技术验证、存储隔离与权限控制: 🔒 一、基础防护层 前端校验(仅辅助) 通过JavaScript限制文件后缀名(白名单)和大小,提…...

ArcGIS Pro+ArcGIS给你的地图加上北回归线!
今天来看ArcGIS Pro和ArcGIS中如何给制作的中国地图或者其他大范围地图加上北回归线。 我们将在ArcGIS Pro和ArcGIS中一同介绍。 1 ArcGIS Pro中设置北回归线 1、在ArcGIS Pro中初步设置好经纬格网等,设置经线、纬线都以10间隔显示。 2、需要插入背会归线…...