SegGPT: Segmenting Everything In Context论文笔记

news2024/11/26 15:28:43
论文https://arxiv.org/pdf/2304.03284.pdf
Codehttps://github.com/baaivision/Painter

文章目录

  • 1. 背景
  • 2. Motivation
  • 3. Method
    • 3.1 In-Context Coloring
    • 3.2 Context Ensemble
    • 3.3 In-Context Tuning

1. 背景

在Painter中,将各种密集预测任务视为一种着色问题。

  • 在训练过程中将同一数据集的两张图片的原图和GT图分别拼接起来,然后,随机将GT图的某些块mask掉,通过预测这些被mask掉的区域的颜色,并和GT进行loss监督。
  • 那么,在推理阶段,给定一张图片和它对应的GT图作为prompt,再给定一张要与prompt执行相同任务的图片,那么这张图片的GT相当于被全部mask掉,模型输出就会将mask掉的区域也就是整张图的颜色预测出来。
    在这里插入图片描述

2. Motivation

  • 在Painter中,以语义分割任务为例,类别的颜色是事先给定的,使得模型学习到的是一种任务特定的颜色预测任务;
  • 在SegGPT中,目标是根据上下文完成不同的任务,而不是依赖于特定的颜色。

3. Method

3.1 In-Context Coloring

在Painter中,每个类别的颜色是事先定义的,这导致模型学习到了任务特定的信息,而不是依据给定的prompt,按照其中的上下文含义进行分割。

因此:

  1. SegGPT将之前的预定义的颜色着色改成了随机着色
  2. 此外,为了应对上下文的问题,对于当前训练图片,从数据集中随机挑选出与当前图片上下文相同的图片,如类别一致或者属于同一instance,以这样的方式来构造pairs;
  3. 注意,同一pairs要使用相同的颜色映射,这样模型才能知道着色相同的区域上下文是一致的;

3.2 Context Ensemble

在推理阶段,可以给定一张图片和对应的标签作为prompt,将要推理的图片和prompt进行拼接。

为了使得结果更加准确,可以使用多个prompt,这些prompt就需要进行集成ensemble,本文提出了两种集成方式:

在这里插入图片描述

  • the spatial ensemble (top) and the feature ensemble (bottom). The spatial ensemble strategy involves stitching multiple example images together and resizing them to the input resolution.
  • The feature ensemble strategy averages features of the query image after each attention layer so that the query image aggregates all the reference examples.

3.3 In-Context Tuning

简而言之,就是对于特定任务,你如果认为随便找一张图片和对应的标签不具有代表性,可以将模型参数固定,初始化一个可学习的prompt图片,然后用同样的loss去更新prompt,这样,在推理阶段,可以直接使用这个迭代更新得到的prompt作为提示。

这个过程类似数据集蒸馏的过程,也就是说合成一张能够代表整个数据集的图片。

在这里插入图片描述

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

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

相关文章

实用前端调试技巧

调试是项目开发中非常重要的环节。掌握一些调试技巧,不仅能帮助我们定位到问题,还能提升我们的开发效率。本文从两个场景来介绍调试技巧: 代码报错。 逻辑出错。 调试代码报错的技巧 技巧1: 读懂报错信息 大部分情况下,能读懂…

day5_C++

day5_C 继承 代码思维导图 继承 代码 #include <iostream>#define PI 3.14using namespace std;class Shape {protected:double perimeter;double area;public:Shape() {cout<<"Shape::无参构造"<<endl;}Shape(double perimeter,double area):per…

21 搜索二维矩阵 II

搜索二维矩阵 II 题解1 对角线上下循环搜索&#xff08;超时&#xff09; 生气&#xff01;&#xff01;无脑循环都不超时题解2 无脑循环题解3 学习STL(二分查找) 编写一个高效的算法来搜索 m x n 矩阵 matrix 中的一个目标值 target 。该矩阵具有以下特性&#xff1a; 每行…

通过Power Platform自定义D365 CE 业务需求 - 3. 使用Microsoft Power应用程序

Microsoft Power Apps是一个用于开发应用程序的无代码、无代码平台。Power应用程序可以在Dataverse之上配置为数据库。尽管您可以连接Salesforce、OneDrive、Dropbox等多种云源,但Dataverse也可以用作内部数据库来构建应用程序,并通过连接器连接其他数据源进行集成。 Power应…

Redis 初识与入门

1. 什么是Redis Redis 是一种基于内存的数据库&#xff0c;对数据的读写操作都是在内存中完成&#xff0c;因此读写速度非常快&#xff0c;常用于缓存&#xff0c;消息队列、分布式锁等场景。 Redis 提供了多种数据类型来支持不同的业务场景&#xff0c;比如 String(字符串)、…

使用CoreOS来部署一个Kubernetes集群,包括必要的步骤和关键概念

文章目录 什么是CoreOS&#xff1f;准备CoreOS节点安装Kubernetes初始化Kubernetes控制平面加入其他节点设置kubectl配置安装网络插件验证集群部署应用程序结论 &#x1f388;个人主页&#xff1a;程序员 小侯 &#x1f390;CSDN新晋作者 &#x1f389;欢迎 &#x1f44d;点赞✍…

python 虚拟环境调用allure报错:FileNotFoundError: [WinError 2] 系统找不到指定的文件

一、遇到的问题 python代码调用命令行 allure命令报错&#xff0c;提示找不到allure这个命令。python虚拟环境中已经安装了pytest-allure 代码如下&#xff1a; import subprocessif __name__ "__main__":# retcode pytest.main()subprocess.call([pytest, --al…

SpringBoot整合Canal实现MySQL与ES数据同步

文章目录 SpringBoot项目引入Canal依赖配置文件项目结构设置监听类其余类、接口内容启动类实体类Controller类Mapper接口Serice接口 运行测试 开始之前请确认docker中已运行mysql与canal容器&#xff0c;并完成了监听binlog配置 未完成可移步&#xff1a; Docker部署Canal监听…

领域驱动设计:事件风暴构建领域模型

文章目录 事件风暴需要准备些什么&#xff1f;如何用事件风暴构建领域模型&#xff1f; 事件风暴是一项团队活动&#xff0c;领域专家与项目团队通过头脑风暴的形式&#xff0c;罗列出领域中所有的领域事件&#xff0c;整合之后形成最终的领域事件集合&#xff0c;然后对每一个…

共享股东模式:一种新型的商业模式,让你轻松创业

你是否想过拥有自己的事业&#xff0c;但又觉得创业风险太大&#xff0c;资金太少&#xff0c;人脉太弱&#xff1f;你是否想过利用自己的消费能力&#xff0c;获得更多的收益&#xff0c;而不仅仅是消费者&#xff1f;你是否想过成为一个有影响力的人&#xff0c;为社会创造价…

【STM32】影子寄存器

不可操作但是真正起作用的寄存器是影子寄存器 定时器框图中&#xff0c;有些寄存器下有个阴影 这些阴影的表示这些寄存器存在影子寄存器。 图中也有对这些影子的说明&#xff0c;在U事件时传送预装载寄存器至实际寄存器。 有阴影的寄存器(AutoReloadRegister)&#xff0c;表…

【OpenCL基础 · 二 】OpenCL架构

文章目录 前言一、OpenCL平台模型二、OpenCL执行模型1.上下文2.命令队列3.内核的执行——NDRange 三、OpenCL存储器模型1.存储器区域2.存储器对象3.主机与设备的数据交互 总结 前言 通过【OpenCL基础 一】因源&#xff0c;我们了解了OpenCL的起源和应用场景。在异构并行平台上…

HTTP文件服务

在工作中&#xff0c;往往会需要将文件同时共享给很多台电脑。 本篇介绍HHDESK的HTTP文件服务功能&#xff0c;通过浏览器&#xff0c;将本地资源共享给任意主机。 1 共享文件 首页——资源管理——服务端——“”&#xff0c;在弹出框中选择HTTP文件服务。 填写各项内容。…

计算一个四边形差值结构的稳定性

( A, B )---3*30*2---( 1, 0 )( 0, 1 ) 让网络的输入只有3个节点&#xff0c;AB训练集各由5张二值化的图片组成&#xff0c;让A中有4个1&#xff0c;B中全是0&#xff0c;统计迭代次数并排序。 其中有6组数据 差值结构 迭代次数 构造平均列 L E - - - 34838.43 1 - …

Swing程序设计(3)JDialog窗体

文章目录 前言一、JDialog窗体的介绍二、JDialog窗体的使用 1.JDialog的常用构造方法2.实例展示及分析总结 前言 JDialog窗体是窗体中的另一种类型的窗体&#xff0c;指对话框窗体。与JFrame窗体类似&#xff0c;绝大部分对于JFrame窗体使用的方法&#xff0c;对于JDialog窗体也…

多元共进|整合开发者社区资源,共建繁荣生态

谷歌致力于构建多元社区 促进行业内更多交流和联系 一起来了解 2023 Google 开发者大会上 谷歌如何以点及面 将资源辐射至开发者、数字人才和初创企业 持续赋能开发者社区生态 谷歌全球开发者社区计划的目的是与开发者同在&#xff0c;实现双向对话、互动和参与&#xff0…

Houdini19 命令行启动环境配置

在自动化流程中&#xff0c;通常都是从外部命令行启动 Houdini&#xff0c;而不是在软件里进行烘培和输出。完全体是通过类似 Jenkins 等自动化工具来启动 Houdini 自动生成流程。 我使用的 Houdini 版本为 19.5.640&#xff0c;对应的 Python 版本为 3.9 。 1、配置开发环境 …

Gitlab仓库部署

Gitlab仓库部署 一、Gitlab的概述1、gitlab介绍2、gitlab主要功能3、gitlab和github的区别 二、部署环境1、安装依赖环境2、安装Postfix邮箱3、Gitlab优势4、Gitlab工作流程 三、Gitlab部署过程1、Yum安装Gitlab2、配置gitlab站点URL3、启动并访问Gitlab 四、Gitlab具体操作1、…

挖到宝了!这个中文版SiteGPT竟然有那么多好处

如今数字时代蓬勃发展&#xff0c;信息非常丰富&#xff0c;但个性化互动和量身定制的反馈却相对匮乏。个性化AI工具的出现可以说是打破了窘境。随着人工智能&#xff08;AI&#xff09;技术的快速发展&#xff0c;定制AI问答机器人成为了越来越多企业和组织的热门选择。这些智…

Zabbix监控部署项目

为什么选择Zabbix Zabbix 是一个基于 WEB 界面的提供分布式系统监视以及网络监视功能的企业级的开源解决方案。zabbix 能监视各种网络参数,保证服务器系统的安全运营;并提供灵活的通知机制以让系统管理员快速定位/解决存在的各种问题。 面试常问 你用过哪些监控软件 zabbix …