【论文速览】图像分割领域的通用大模型SegGPT - Segmenting Everything in Context

news2025/1/6 17:48:34

文章目录

    • 研究背景
    • 解决思路
      • Painter
      • SegGPT
    • 实验效果(部分)
    • 思考
    • 参考资料

在这里插入图片描述

代码地址:https://github.com/baaivision/Painter
Demo地址:https://huggingface.co/spaces/BAAI/SegGPT

研究背景

图像分割一直是计算机视觉领域的一项基础研究问题,在深度学习时代得到了迅猛发展,对于不同的分割子问题,涌现了很多又快又好的算法。但这些方法都是针对具体的子任务进行设计的,比如前景分割(foreground segmentation)、交互式分割(interactive segmentation)、语义分割(semantic segmentation)、实例分割(instance segmentation)以及全景分割(panoptic segmentation)。

交互式分割是一种图像处理技术,它允许用户通过进行正/负点击来提取目标掩模

不同子任务的分割模型有着其特殊的任务需求分割类别分割细粒度数据类型等,这意味着要针对具体的问题进行模型的设计与训练。而该论文的目标就是提出一个模型,它能够解决所有的分割任务。如下图所示,该论文提出了SegGPT模型,即只用一个模型就能处理任何的上下文分割问题(segmenting everything in context)。

SegGPT全称是segment everything with a generalist Painter, 其中Painter是该团队的另一项工作,用上下文训练框架进行各项视觉任务(下节会对Painter进行简单介绍)

在这里插入图片描述

橘色的box表示对应的prompt图像与掩码,蓝色框为模型针对输入图像得到的结果。可以看到,SegGPT能够处理任意的物体分割(红色球、所有球体、阴影、上表面和物体轮廓等),多部分分割(自由女神像的特殊部分),彩虹分割、视频分割以及用可学习的prompt tuning进行闭集语义分割(close set semantic segmentation)。

解决思路

Painter

Images Speak in Images: A Generalist Painter for In-Context Visual Learning

这里先介绍SegGPT基于的前置工作"Painter",Painter是该团队在CVPR2023年发布的一个通用的视觉大模型。它希望能够像NLP领域一种,基于预训练的大模型,通过设计不同的prompt来完成不同的任务。但与NLP不同,视觉任务的输出空间差异非常大,哪怕都是稠密预测任务【Painter主要基于稠密预测领域】,语义分割和深度估计的输出形式也是不一样的(一个是分类/另一个是回归)。其次,哪怕能够统一输出形式,如何设计prompt也是一个面临的问题。

为了解决这两个问题,Painter首先将输出空间统一成连续的输出图像表示(输出RGB图像),比如深度估计将0-10映射到0-255之间向下取整,语义分割的类别映射到具体的RGB值。

在这里插入图片描述

论文中,Painter统一了语义分割、深度估计、实例分割、关键点检测、图像去噪、图像去雨、图像增强七项任务(在in-domain和out-of-domain数据集上都有着较好效果)

为了让模型能够根据不同的prompt执行不同的任务,Painter在训练时会拼接两组图像,然后进行"masked image modeling"。具体来说:在输入时选择同域同任务下的两组图像进行拼接(每组图像包括输入图像和它对应的任务输出),然后进行如下所示的掩码重构学习(类似simMiM)。

在这里插入图片描述
在推理阶段,给定prompt( p r o m p t i n , p r o m p t o u t prompt_{in},prompt_{out} promptin,promptout)、测试图像( y i n y_{in} yin),将它们和mask一起组合送入模型即可,如第一个大图所示,Painter能够根据不同的prompt来执行不同的任务

为了得到推理阶段的prompt,有两种方式:一种是基于训练集搜索的方式;另一种即为生成式的方式,即为不同任务学习一个对应的prompt。

SegGPT

SegGPT与Painter不同,其聚焦于图像分割任务,旨在采用一个模型来解决所有分割问题。这又面临着两方面的挑战:① 如何融合不同任务中的数据集类型;② 如何设计有效的训练策略使得模型能够灵活地处理各项任务

在Painter框架中,不同任务的颜色空间都是预定义的,这样会使得模型沦为多任务学习。比如语义分割就是每种语义类别对应一种颜色,而实例分割会根据实例所在空间位置得到对应颜色(类似SOLO)。

为了解决这个限制,SegGPT采用了一种“随机着色”的策略:对于每幅图像随机选择另一幅图像(两幅图像都有着相似的语义类别或者对象实例,也可以通过数据增广获得),从目标图像中随机采样一组颜色,进行随机映射,使得相应像素的重新着色。

在这里插入图片描述
通过这种方式,不同的分割数据类型就可以转换成同一种图像格式统一起来,对于不同的任务,采用不同的采样策略就好。比如语义分割就采样类别,实例分割就采样实例数,然后进行随机颜色映射+着色。

经过这一步,不同分割任务下的数据得到了统一。模型要做的事情就是:根据上下文信息来进行区域着色问题(颜色是随机的)

在训练方式上,SegGPT和Painter一样,都是建模成MIM的形式。具体地说,SegGPT进行上下文着色(in-context coloring)学习,即根据上下文信息对图像的mask区域(类别、对象实例、物体区域等)进行着色

模型采用普通的ViT + smooth-l1损失进行训练(过程与Painter基本一致)

测试过程与Painter一致,将Prompt图像与测试图像一起组合送入SegGPT即可。不过为了利用多幅prompt来进一步提升分割准确性,SegGPT采用了两种ensemble策略:① 空间融合;② 特征融合。

在这里插入图片描述

空间融合即在空间层面上进行图像组合(拼接+缩放);特征融合在每个attention层之后对query进行了一次平均。

为了针对具体的任务设计更好的prompt格式,SegGPT也采用了可学习的prompt,如下所示,冻结整个SegGPT,在对应任务的数据集上训练一个可学习的图像向量即可。

在这里插入图片描述

实验效果(部分)

SegGPT在各项分割任务的基准数据集上都进行测试,无论是域内(in-domain)还是域外(out-of-domain)的图像都能够有效地进行分割。

在这里插入图片描述

SegGPT在COCO-20i和PASCAL-5i的few-show语义分割效果(in-domain)以及在FSS-1000上的few-show分割效果(out-of-domain)

在这里插入图片描述
表3展示了在视频物体分割上的表现,其与先进的方法非常接近(SegGPT并没有用到视频数据训练)。表5表6展示了在ADE20k语义分割和COCO全景分割上的效果,距离最优方法还有一段距离,并且相比于通用的Painter性能还下降了。这是因为SegGPT并没有针对语义分割任务进行训练,而是进行的随机颜色着色(利用上下文进行着色),这种训练难度更高。

思考

该论文主要针对图像分割问题提出了一种通用大模型SegGPT,其不局限于具体的分割类型,可以根据提供的prompt来分割任意区域。

SegGPT本质上是Painter的一种特殊变体,只不过在训练策略上有了一些变化,不根据预定义的颜色进行上下文着色,而是随机着色,强迫模型去根据当前的上下文信息来进行分割。这种策略带来的好处就是SegGPT具有更强的泛化能力与零样本/少样本迁移能力,但坏处在于对于具体的in-domain任务上,距离专业模型还有一定性能差距。

此外,目前发布的分割领域大模型(比如SegGPT、SAM),其都是基于监督式学习方式【需要提供分割的GT】,这就意味着在数据的收集上比较耗时与费力。如果能找到一种更好的方式,像NLP领域中的GPT那样进行自监督式的预训练学习就更完美了。

关于SAM,segment anything model我也会写相应的blog进行介绍,欢迎关注

参考资料

[1] CVPR/AAAI 2023论文分享

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

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

相关文章

Free container identify , CIMCAI container detect cloud service

集装箱箱号识别API免费,中国上海人工智能企业CIMCAI飞瞳引擎™集装箱人工智能平台全球近4千企业用户,全球领先的飞瞳引擎™AI集装箱识别云服务,集装箱残损识别箱况检测缺陷检验,小程序拍照检测或支持API接口二次开发,应…

数据结构初阶(算法的复杂度 + 包装类 + 泛型)

文章目录一、算法复杂度1. 算法效率2. 时间复杂度(1) O的渐进表示法3. 空间复杂度二、包装2.1 为什么会出现包装2.2 分类2.3 装箱和拆箱(1)装箱/装包(2)拆箱/拆箱三、泛型3.1 泛型的基本概念3.2 泛型的使用…

2023 年 3 月 GameFi 月度报告

作者:danielfootprint.network 数据来源:Monthly GameFi Report 三月的 GameFi 世界相对沉寂,没有重大的消息公开,没有亮眼的游戏出现,也没有死亡螺旋的发生。 GameFi 领域的重要名字 Splinterlands 和 Hive 开始面…

Redis一主二从搭建

Redis一主二从环境搭建 一主二从 准备工作 安装VMWare 下载镜像 创建下面的目录 Redis-Cluster master mastervmdk slave00 slave00vmdk slave01 slave00vmdk VMWare中安装CentOS7 自定义(高级) 默认 安装程序光盘映像文件 命名虚拟机,选择我们刚才创建的…

ASEMI代理ADAU1961WBCPZ-R7原装ADI车规级ADAU1961WBCPZ-R7

编辑:ll ASEMI代理ADAU1961WBCPZ-R7原装ADI车规级ADAU1961WBCPZ-R7 型号:ADAU1961WBCPZ-R7 品牌:ADI/亚德诺 封装:LFCSP-32 批号:2023 引脚数量:32 安装类型:表面贴装型 ADAU1961WBCPZ-…

通过简单demo让你秒懂Python的编译和执行全过程

基本说明 python 是一种解释型的编程语言,所以不像编译型语言那样需要显式的编译过程。然而,在 Python 代码执行之前,它需要被解释器转换成字节码,这个过程就是 Python 的编译过程。 DEMO演示讲解 假设我们有以下 Python 代码&…

常见安全设备

文章目录前言安全厂商安全设备种类拓扑图防火墙IDSIPSwaf上网行为管理器数据库审计系统全流量设备蜜罐态势感知前言 最近在了解安全设备的基本原理,简单做一下笔记。 安全厂商 深信服、浪潮、奇安信、绿盟、山石网科、启明星辰、安恒、360、新华3 安全设备种类 …

【CSS】元素显示与隐藏 ( display 隐藏对象 | visibility 隐藏对象 | overflow 隐藏对象 )

文章目录一、元素的显示与隐藏二、display 隐藏对象1、display 隐藏对象语法说明2、display 显示元素代码示例3、display 隐藏元素代码示例三、visibility 隐藏对象1、visibility 隐藏对象语法说明2、visibility 显示对象代码示例3、visibility 隐藏对象代码示例四、overflow 隐…

大数据项目实战之数据仓库:电商数据仓库系统——第5章 数据仓库设计

第5章 数据仓库设计 5.1 数据仓库分层规划 优秀可靠的数仓体系,需要良好的数据分层结构。合理的分层,能够使数据体系更加清晰,使复杂问题得以简化。以下是该项目的分层规划。 5.2 数据仓库构建流程 以下是构建数据仓库的完整流程。 5.2.1 …

在unreal中的基于波叠加的波浪水面材质原理和制作

关于水的渲染模型 如何渲染出真实的水体和模拟,是图形学,游戏开发乃至仿真领域很有意思的一件事 记得小时候玩《Command & Conquer: Red Alert 3》,被当时的水面效果深深震撼,作为一款2008年出的游戏,现在想起它…

RK3399平台开发系列讲解(基础篇)POSIX 定时器

🚀返回专栏总目录 文章目录 一、clockid二、sigevent三、timerid四、flags五、 value & old_value六、POSIX 定时器的优势沉淀、分享、成长,让自己和他人都能有所收获!😄 📢为了克服传统定时器的局限性,POSIX 标准组织设计了新的计时器接口和规范,使它们能提供更…

Java安全学习之RMI

最近在看Phith0n师傅的知识星球的Java安全漫谈系列,随手记下笔记 RMI全称远程方法调用(Remote Method Invocation)。这是允许驻留在一个系统(JVM)中的对象调用在另一个JVM上运行的对象的一种机制,能够远程调用远程对象的方法。 RMI通信过程、原理 我们首…

SSM实战-外卖项目-06-用户地址簿功能、菜品展示、购物车、下单(一个业务涉及5张表)

文章目录外卖项目-第六天课程内容1. 用户地址簿功能1.1 需求分析1.2 数据模型1.3 导入功能代码1.4 功能测试 (其实需求分析里我就自己写了一份代码,而且测试过了,下面再测试了一遍)2. 菜品展示2.1 需求分析2.2 前端页面分析2.3 代…

关于二叉树访问顺序的选择题

第一题: 从题目中我们可以得出这是棵完全二叉树(最后一列不满,且连续),层次顺序。 我们可以推出树的形状: 我们现根据层次遍历的性质画出出栈的图: ABCDEFGH 最开始是A所以第一个位置为A&…

STC单片机波特率初值计算以及通用串口配置程序

STC单片机波特率初值计算以及通用串口配置程序🔖这里以STC15手册上的数据展开。🔰串口模式一:可变波特率8位数据方式。以为最为常用的配置模式。🌿定时器1模式0:16位定时器计数器🌿定时器1模式2:8位定时器计数器 ✨当然…

linux高级存储功能

高级存储功能 1、Stratis管理分层存储 通过Stratis,便捷的使用精简配置(thin provisioning),快照(snapshots)和基于池(pool-based)的管理和监控的等高级存储功能。 (1&a…

加拿大亚马逊FBA海运收费标准有哪些

众所周知,加拿大亚马逊的海运物流费用一般有头程运费、尾端派送费和仓储费等其他费用。那么,加拿大亚马逊FBA海运收费标准有哪些呢?接下来一起来了解下加拿大亚马逊FBA海运收费标准和费用。加拿大亚马逊FBA海运收费标准有哪些? 加拿大亚马逊FBA海运收费…

《Java8实战》第6章 用流收集数据

collect 是一个归约操作,就像 reduce 一样可以接受各种做法作为参数,将流中的元素累积成一个汇总结果。具体的做法是通过定义新的Collector 接口来定义的,因此区分 Collection、Collector 和 collect 是很重要的。用 collect 和收集器能够做什…

PADS-微处理器、USB转UART芯片、MINI-USB PCB封装设计

目录 1 微处理器PCB封装设计 2 USB转UART芯片PCB封装设计 3 MINI-USB PCB封装设计 4 添加验证 详细步骤不再文字说明,直接截取关键步骤截图 1 微处理器PCB封装设计 查看芯片手册 器件高度 器件高度1.6 管脚中心点间距0.5,管脚焊盘长1.2、宽0.3&…

[ 云计算 | Azure ] Chapter 04 | 核心体系结构之数据中心、区域与区域对、可用区和地理区域

本章节主要内容进行讲解:Azure云计算的核心体系结构组件中的:Azure物理基础设施(Physical infrastructure),区域(Regions)和区域对(Region Pairs)、地理数据中心&#xf…