SegGPT:在上下文中分割一切

这篇具有很好参考价值的文章主要介绍了SegGPT:在上下文中分割一切。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

 前言   本文介绍了 SegGPT,它是 Painter 框架的特殊版本, 将各种分割任务统一到一个通用的上下文学习框架中 ,该框架通过将它们转换为相同格式的图像来适应不同类型的分割数据,并将不同的任务统一为同一个图像修复问题,即随机屏蔽任务输出图像并重建缺失像素。

经过训练,SegGPT可以对图像进行任意分割任务或通过上下文推理的视频。通过在广泛的任务上进行评估,结果显示了定性或定量分割域内和域外目标的强大能力。

Transformer、目标检测、语义分割交流群

欢迎关注公众号CV技术指南,专注于计算机视觉的技术总结、最新技术跟踪、经典论文解读、CV招聘信息。

CV各大方向专栏与各个部署框架最全教程整理

SegGPT:在上下文中分割一切

论文:https://arxiv.org/pdf/2304.03284.pdf

Code & Demo:https://github.com/baaivision/Painter

论文出发点

受NLP领域中大规模语言模型chatGPT的启发,作者想训练一个能够解决CV领域中多样化和无限分割任务的单一模型。但主要挑战是双重的:(1)在训练中整合那些非常不同的数据类型,例如部分、语义、实例、全景、人物、医学图像、航拍图像等;(2) 设计一种不同于传统多任务学习的可泛化训练方案,该方案在任务定义上灵活,能够处理域外任务。此外,在 Painter 的传统框架中,每个任务的颜色空间都是预先定义的,导致解决方案崩溃为多任务学习。如语义分割是预先定义了一组颜色,并为每个语义类别分配了固定的颜色。类似地,在实例分割中,实例对象的颜色是根据其位置类别分配的,即颜色的数量等于空间位置的数量,从而得到模型仅依靠颜色本身来确定任务,而不是使用段之间的关系。

创新思路

本文将分割视为视觉感知的通用格式,并将不同的分割任务统一到一个通用的上下文学习框架中。该框架通过将不同类型的分割数据转换为相同格式的图像来适应它们。SegGPT 的训练被表述为上下文着色问题,每个数据样本具有随机颜色映射。目的是仅根据上下文为相应区域(例如类、对象实例、部件等)着色。通过使用随机着色方案,模型被迫参考上下文信息来完成分配的任务,而不是依赖于特定的颜色。

方法

In-Context Coloring

首先随机采样另一张与输入图像共享相似上下文的图像,如相同的语义类别或对象实例。随后,从目标图像中随机采样一组颜色,并将每种颜色映射到一个随机颜色。这导致相应像素的重新着色。最终,得到两对图像,将其定义为上下文对。此外,还使用了混合示例训练模型的混合上下文训练方法,将具有相同颜色映射的多个图像拼接在一起。然后随机裁剪生成的图像并调整大小以形成混合上下文训练样本。这种统一以一致的方式利用所有分割数据集,仅根据特定任务改变数据采样策略,并根据不同的数据类型定义不同的上下文。语义分割中,进行随机类别抽样。实例分割中,对象实例以随机数采样。通过一组增强变换得到的同一图像的不同视图,视为上下文中的图像。所有的采样都是关于颜色的,即相同的颜色表示相同的类别或相同的实例。

Segment Anything Model

本文提出了两种上下文集成方法。一种称为空间集成(spatial ensemble),多个示例拼接在 n × n 网格中,然后二次采样到与单个示例输入分辨率相同的大小。。另一种方法是特征集成(feature ensemble),多个示例在批次维度中组合并独立计算,除了查询图像的特征在每个注意层之后被平均。通过这种方式,查询图像在推理过程中收集了有关多个示例的信息。

SegGPT:在上下文中分割一切

In-Context Tuning

冻结整个模型并初始化一个可学习的图像张量作为输入上下文。只有这个可学习的图像张量在训练期间被更新。其余的训练保持不变。调整后,将学习到的图像张量取出,将其用作特定应用程序的即插即用密钥。

SegGPT:在上下文中分割一切

结果

作者使用不同类型的分割数据集,包括部分、语义、实例、全景、人、视网膜和航拍图像分割,提供一个统一的视角,无需对数据集进行额外的工作或调整,并且在添加额外数据集时不需要对架构或pipeline进行修改,这与以前需要手工标签合并来组合不同类型的分割数据集的方法不同。

YouTube-VOS 2018 上视频对象分割结果可视化:

SegGPT:在上下文中分割一切

更多的可视化:

SegGPT:在上下文中分割一切

各种分割方法的对比情况:

SegGPT:在上下文中分割一切

消融实验:

SegGPT:在上下文中分割一切

总结

本文提出了一个通用分割模型,展示了如何设计适当的训练策略以充分利用上下文视觉学习的灵活性。虽然引入了一种新的随机着色机制以提高上下文训练的泛化能力,但它使训练任务本质上更加困难,这可能是具有大量训练数据的域内任务性能较差的原因,例如语义ADE20K 上的分割和 COCO 上的全景分割。

通过利用任务定义的灵活性和上下文推理,在图像/视频分割中实现更多样化的应用。扩大模型尺寸是作者计划进一步提高性能的一种途径。使用更大的模型,可以捕获数据中更复杂的模式,这可能会导致更好的分割结果。然而,这伴随着寻找更多数据的挑战。一种潜在的解决方案是探索自我监督学习技术。希望本文的工作将激励社区继续探索计算机视觉中上下文学习的潜力。

欢迎关注公众号CV技术指南,专注于计算机视觉的技术总结、最新技术跟踪、经典论文解读、CV招聘信息。

【技术文档】《从零搭建pytorch模型教程》122页PDF下载

QQ交流群:470899183。群内有大佬负责解答大家的日常学习、科研、代码问题。

模型部署交流群:732145323。用于计算机视觉方面的模型部署、高性能计算、优化加速、技术学习等方面的交流。

其它文章

上线一天,4k star | Facebook:Segment Anything

3090单卡5小时,每个人都能训练专属ChatGPT,港科大开源LMFlow

Efficient-HRNet | EfficientNet思想+HRNet技术会不会更强更快呢?

实践教程|GPU 利用率低常见原因分析及优化

ICLR 2023 | SoftMatch: 实现半监督学习中伪标签的质量和数量的trade-off

目标检测创新:一种基于区域的半监督方法,部分标签即可(附原论文下载)

CNN的反击!InceptionNeXt: 当 Inception 遇上 ConvNeXt

神经网络的可解释性分析:14种归因算法

无痛涨点:目标检测优化的实用Trick

详解PyTorch编译并调用自定义CUDA算子的三种方式

深度学习训练模型时,GPU显存不够怎么办?

CV各大方向专栏与各个部署框架最全教程整理

计算机视觉入门1v3辅导班

计算机视觉各个方向交流群文章来源地址https://www.toymoban.com/news/detail-484857.html

到了这里,关于SegGPT:在上下文中分割一切的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 超长上下文处理:基于Transformer上下文处理常见方法梳理

    原文链接:芝士AI吃鱼 目前已经采用多种方法来增加Transformer的上下文长度,主要侧重于缓解注意力计算的二次复杂度。 例如,Transformer-XL通过缓存先前的上下文,并允许随着层数的增加线性扩展上下文。Longformer采用了一种注意力机制,使得token稀疏地关注远距离的token,从而

    2024年02月13日
    浏览(49)
  • 无限上下文,多级内存管理!突破ChatGPT等大语言模型上下文限制

    目前,ChatGPT、Llama 2、文心一言等主流大语言模型,因技术架构的问题上下文输入一直受到限制,即便是Claude 最多只支持10万token输入,这对于解读上百页报告、书籍、论文来说非常不方便。 为了解决这一难题,加州伯克利分校受操作系统的内存管理机制启发,提出了MemGPT。

    2024年02月06日
    浏览(60)
  • 从零开始理解Linux中断架构(7)--- Linux执行上下文之中断上下文

            当前运行的loop是一条执行流,中断程序运行开启了另外一条执行流,从上一节得知这是三种跳转的第三类,这个是一个大跳转。对中断程序的基本要求就是 中断执行完毕后要恢复到原来执行的程序 ,除了时间流逝外,原来运行的程序应该毫无感知。        

    2024年02月11日
    浏览(64)
  • 〖大前端 - 基础入门三大核心之JS篇(51)〗- 面向对象之认识上下文与上下文规则

    说明:该文属于 大前端全栈架构白宝书专栏, 目前阶段免费 , 如需要项目实战或者是体系化资源,文末名片加V! 作者:哈哥撩编程,十余年工作经验, 从事过全栈研发、产品经理等工作,目前在公司担任研发部门CTO。 荣誉: 2022年度博客之星Top4、2023年度超级个体得主、谷

    2024年02月05日
    浏览(58)
  • 执行上下文

    通过var定义(声明)的变量--在定义语句之前就可以访问到 值为undefined 通过function声明的函数--在之前就可以直接调用 值为函数定义(对象) 全局代码 函数(局部)代码 在执行全局代码前将window确定为全局执行上下文 对全局数据进行预处理 var定义的全局变量--undefined--添加

    2023年04月20日
    浏览(53)
  • Servlet 上下文参数

    2024年02月05日
    浏览(54)
  • CPU上下文切换

    CPU 上下文切换,就是先把前一个任务的 CPU 上下文(也就是 CPU 寄存器和程序计数器)保存起来,然后加载新任务的上下文到这些寄存器和程序计数器,最后再跳转到程序计数器所指的新位置,运行新任务。 CPU 的上下文切换就可以分为几个不同的场景,也就是进程上下文切换、

    2024年02月14日
    浏览(35)
  • 上下文切换性能篇

    现代操作系统都是多任务的分时操作系统,也就是说同时响应多个用户交互或同时支持多个任务处理,因为 CPU 的速度很快而用户交互的频率相比会低得多。所以例如在 Linux 中,可以支持远大于 CPU 数量的任务同时执行,对于单个 CPU 来说,其实任务并不是在同时执行,而是操

    2024年02月15日
    浏览(52)
  • 【Spring | 应用上下文】

      本节介绍如何使用资源创建应用程序上下文,包括使用 XML 的快捷方式、如何使用通配符以及其他详细信息。   应用上下文构造函数(针对特定的应用上下文类型)通常将字符串或字符串数组作为资源的位置路径,例如构成上下文定义的 XML 文件。 示例如下    Clas

    2024年02月16日
    浏览(38)
  • js执行上下文

    创造执行上下文,是为了把变量声明给保存下来,在执行时,好找到变量用 看代码要分执行前(构建执行上下文)和执行时去看 执行上下文的组成 1、词法环境:[全局对象]、scope、outer 2、This Binding:提供this的访问 构建执行上下文 1、处理声明 2、检查重复定义 3、初步赋值

    2024年02月02日
    浏览(56)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包