SegGPT: Segmenting Everything In Context论文笔记

news/2024/11/30 20:51:22/
论文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.ppmy.cn/news/1107339.html

相关文章

Trinitycore学习之在Linux环境上搭建服务器并测试运行

1:准备环境,这里用ubuntu 22.04进行测试,安装环境后为了方便,换源。 注意:这里用的虚拟机,在虚拟机上生成地图信息,地图信息占用内存比较大,我暂时设置磁盘50G进行测试,…

数据结构:树的概念和结构

文章目录 1. 树的概念2. 树的结构3. 树的相关概念4. 树的表示孩子表示法双亲表示法孩子兄弟表示法 5. 树在实际中的应用5. 树在实际中的应用 1. 树的概念 树是一种非线性的数据结构,它是由 n (n > 0)个有限结点组成一个具有层次关系的. 把它叫做树是因为它看起来像一棵倒挂的…

简易yum仓库搭建

目录 一、实验准备 二、获取yum仓库、安装httpd 三、客户机配置yum源 四、测试、验证 一、实验准备 准备两台主机: 192.168.115.148 :安装http 、作为yum仓库、挂载默认光盘 192.168.115.148 :作为客户机使用yum仓库、不挂载光盘 二、…

Golang 结构化日志包 log/slog 详解(三):属性字段和日志级别

上一篇文章讲解了 log/slog 包中的 Handler 的使用方法,通过不同的 Handler 可以输出不同格式的日志。接下来看一下如何自定义日志的属性字段和日志级别。 属性字段(attribute) 许多日志都有一些通用的的字段,例如日志级别 lev…

JDK多版本切换

为什么切换 因为可能不同项目要求JDK的版本不同,比如你上次装的jdk1.8,现在的项目要求JDK9,这时候卸载8再换9有点费劲,而且操作不当可能遇到非常离奇的bug,影响开发进度。如果我们能灵活切换各种jdk版本,将…

ARM Linux DIY(八)USB 调试

前言 V3s 带有一个 USB 接口,将其设置为 HOST 或 OTG 模式,这样可以用来接入键盘、鼠标等 USB 外设。 USB 简介 USB 有两种设备:HOST 和 USB 功能设备。 在 USB2.0 中又引入了一个新的概念 OTG,即设备角色可以动态切换。 切换方…

2002-2020年地级市各类制造业企业进入数量数据

2002-2020年地级市各类制造业企业进入数量数据 1、时间:2002-2020年 2、指标:地区、年份、城市代码、所属省份、省份代码、高技术行业企业数量、中高技术行业企业数量、中低技术行业企业数量、低技术行业企业数量 3、样本量:1万多条 4、来…

轮播图禁用手势滑动

要禁用手势滑动,并只允许自动轮播,你可以使用autoplayDisableOnInteraction属性来实现。以下是如何在Flutter中使用flutter_swiper插件进行配置: 首先,在pubspec.yaml文件中添加flutter_swiper插件的依赖项: dependen…