【深度学习:SegGPT】在上下文中分割所有内容 [解释]

news2025/1/21 4:48:44

在这里插入图片描述

【深度学习:SegGPT】在上下文中分割所有内容 [解释]

    • SegGPT与以前的模型相比如何?
    • SegGPT在实践中是如何工作的?
      • SegGPT培训计划
      • 上下文着色
      • 上下文集成
      • 上下文调整
      • SegGPT 训练参数
    • 如何尝试 SegGPT?
    • 使用哪些数据集来训练 SegGPT?
    • SegGPT可以用于AI辅助标记吗?
    • 结论

每年,CVPR 都会汇集来自计算机视觉和机器学习领域的一些最聪明的工程师、研究人员和学者。

上个月感觉越来越接近计算机视觉的 GPT-3 时刻——一些新的 CVPR 2023 提交似乎越来越接近

继上个月宣布“Painter”(在此处提交)之后,BAAI Vision 团队上周发布了他们的最新迭代“SegGPT:在上下文中分割一切”(在 Arxiv 中)。

在其中,由Xinlong Wang,Xiaosong Zhang,Tue Cao,温 Wang,Chunhua Shen和Tiejun Huang组成的BAAI团队展示了计算机视觉挑战难题的另一部分:一个通才模型,允许通过上下文推理解决图像和视频中的一系列分割任务。

在这篇博文中,您将:

  • 了解 SegGPT 是什么以及为什么值得关注。
  • 了解它与以前的型号相比如何。
  • 了解 SegGPT 内部内容:其网络架构、设计和实现。
  • 了解 SegGPT 在 AI 辅助标记中的潜在用途。

更新:是否要消除手动分段?了解如何使用 SegGPT 和 Meta 的 Segment Anything Model (SAM) 等基础模型来降低 Encord 的标签成本!阅读产品公告,了解如何微调 SAM 或直接开始使用!

SegGPT与以前的模型相比如何?

作为基础模型,SegGPT 能够解决各种大量分割任务,而专业分割模型可以解决非常具体的任务,例如前景、交互、语义、实例和全景分割。现有模型的问题在于,切换到新模式或分割视频而不是图像中的对象需要训练新模型。这对于许多分割任务来说是不可行的,并且需要昂贵的注释工作。

从论文和发布的演示来看,SegGPT 展示了强大的细分领域内和领域外目标的能力,无论是定性还是定量。与其他通才模型(如 Painter)和 Volumetric Aggregation with Transformer (VAT) 等专业网络相比,SegGPT 在单次和少次分割方面优于其他通才模型,平均交集并集 (mIoU) 得分更高。

在这里插入图片描述
研究人员用于定量训练、评估和比较性能的基准数据集是 COCO-20i 和 PASCAL-5i。

研究人员还在FSS-1000上测试了该模型,该模型尚未经过训练。它还能够在单次和少次分割任务上以更高的 mIoU 优于 Painter,并且性能更接近民主注意力网络 (DAN) 和超相关挤压网络 (HSNet) 等专业网络。

SegGPT 还提供了良好的上下文视频分割,并在 YouTube-VOS 2018、DAVIS 2017 和 MOSE 数据集上明显优于 AGAME 等特定任务方法和 Painter 等基础模型。

SegGPT在实践中是如何工作的?

SegGPT 建立在 Painter 框架之上。Painter 是一个通用模型,它将核心视觉任务的输出重新定义为图像,并将任务提示指定为图像。根据这篇论文,Painter 框架有两个亮点,使其成为上下文图像学习的工作解决方案:

  1. 图像在图像中说话:视觉任务的输出空间被重新定义为图像。这些图像充当感知的通用界面,允许模型通过少量提示和示例来适应各种以图像为中心的任务。
  2. “通才画家”:给定输入图像,预测是绘制所需但缺少的输出“图像”。

SegGPT 团队采用以下方法进行培训:

  1. 包括部分、语义、实例、全景、人物、医学图像、航拍图像以及与各种分割任务相关的其他数据类型。
  2. 设计一种不同于传统多任务学习、任务定义灵活、能够处理域外任务的通用训练方案。

SegGPT 可以通过将各种类型的视觉数据统一为通用格式来对它们进行分段。该模型通过在上下文中对这些部分进行着色来学习分段,使用随机配色方案,迫使它使用上下文信息而不是依赖特定颜色来提高其泛化能力。

这使得模型更加灵活,能够处理各种分割任务。训练过程类似于使用带有简单 smooth-ℓ1 损失函数的普通 ViT 模型。

SegGPT培训计划

为了提高通用性,SegGPT 网络架构遵循三种方法:

  • 上下文着色;使用混合和匹配的随机着色方案,以便模型学习蒙版之间的关系,而不仅仅是颜色之间的关系。
  • 上下文集成;使用集成方法来提高掩模的密封性。
  • 上下文调整;优化用作模型输入上下文的可学习图像张量,以再次提高对不同分割任务的通用性。

上下文着色

该模型使用随机着色方案来实现输入图像的上下文颜色学习,以避免网络仅学习颜色而不了解分割对象之间的关系的问题。这是该网络在泛化性和边界框的紧密性方面优于 Painter 网络的原因之一。

在这里插入图片描述
研究人员还采用了“混合上下文”训练技术,使用各种样本来训练模型。这需要使用相同的颜色映射将多个图像拼接在一起。然后随机调整图像大小并裁剪图像以创建混合上下文训练样本。因此,模型能够通过关注图像的上下文信息而不是仅使用一组有限的颜色信息来确定任务。

上下文集成

为了提高准确性,该研究使用了两种上下文集成方法:

  • 空间集成,用于连接网格中的多个示例并提取语义信息。
  • 特征集成将批量维度中的示例与每个关注层之后的查询图像的平均特征结合起来。

在这里插入图片描述
这允许模型在推理过程中收集有关多个示例的信息并提供更准确的预测。

上下文调整

SegGPT 可以适应独特的用例,而无需更新模型参数。相反,可学习的图像张量被初始化为输入上下文并在训练期间更新,而其余部分保持不变。

在这里插入图片描述
学习到的图像张量可能是特定应用的关键。这样可以针对一组固定的对象类别进行定制提示,或者针对特定场景或角色优化提示图像,从而提供广泛的应用。

SegGPT 训练参数

在训练过程中,研究人员使用了具有 307M 参数的预训练 Vision Transformer 编码器 (ViT-L)。他们还使用了 AdamW 优化器、余弦学习率调度器,基本学习率为 1e-4,权重衰减为 0.05。批量大小设置为 2048,模型经过 9K 次迭代训练,预热期为 1.8K。该模型使用各种数据增强,例如随机调整大小裁剪、颜色抖动和随机水平翻转。输入图像大小为 448x448。

如何尝试 SegGPT?

您现在可以尝试的 SegGPT 演示托管在 Hugging Face 上。 SegGPT 的代码是开源的,并且与 Painter 包位于同一存储库中。

研究团队提供了一个带有 Gradio 的 UI,用于在本地运行演示。请按照以下步骤操作:

  1. 克隆项目存储库:https://github.com/baaivision/Painter/tree/main/SegGPT
  2. 运行 python app_gradio.py

在这里插入图片描述

使用哪些数据集来训练 SegGPT?

研究人员使用了多个分割数据集,例如部分、语义、实例、全景、人物、视网膜血管和航空图像。与以前需要手动合并标签的方法不同,该训练方法不需要额外的工作、调整数据集或修改模型架构。

BAAI 研究人员用于训练 SegGPT 的数据集包括以下内容:

  • ADE20K共有25K张图像,包括20K训练图像、2K验证图像和3K测试图像,提供150个语义类别的分割标签。
  • COCO 支持实例分割、语义分割和全景分割任务,使其成为流行的视觉感知数据集。它有 80 个“事物”和 53 个“东西”类别、118K 训练图像和 5K 验证。
  • 帕斯卡VOC;他们使用增强分割版本,该版本为 10582 个训练图像上的 20 个类别提供注释。
  • 城市景观:该数据集的主要关注点是场景和对街景的理解。
  • LIP 专注于人们的语义理解。
  • PACO 处理并使用了带有零件注释的 41807 个训练图像。
  • CHASE DB1、DRIVE、HRF 和 STARE 均提供视网膜血管分割注释。他们通过随机裁剪增强了高分辨率原始图像。

iSAID 和 loveDA 专注于航拍图像的语义理解,分别针对 15 个和 6 个语义类别使用 23262 个和 2520 个训练图像。

SegGPT可以用于AI辅助标记吗?

与 Meta 的 Segment Anything Model (SAM) 和其他最近的突破性基础模型(例如 Grounding DINO)一样,您可以使用 SegGPT 进行 AI 辅助图像标记和注释。该模型可以很好地推广到许多任务,并且有可能减少团队的注释工作量。

在这里插入图片描述
除此之外,还有其他主要好处:

  • 获得更快的注释:根据报告的结果,当您将 SegGPT 与良好的图像注释工具结合使用时,可以显着减少注释所需的标记时间。
  • 获得更高质量的注释:如果注释者可以生成更精确和准确的标签,那么总体上可能会减少错误并提高注释质量。
  • 获得一致的注释:当多个注释者在同一个项目上工作时,他们可以使用相同版本的SegGPT来确保注释的一致性。

您还可以设置 SegGPT,以便随着注释者完善和纠正其辅助标记,它会随着时间的推移进行学习和改进,从而随着时间的推移获得更好的性能并进一步简化注释过程。

使用 SegGPT 时需要注意的一件事是您想要用于注释的任务类型(语义、实例等)。 SegGPT 在所有基准测试中都没有优于现有的专业方法,因此了解它优于哪些任务非常重要。

结论

就这样,伙计们!

过去几周是计算机视觉过去十年中最激动人心的几周。但我们确信,我们会在几个月后回顾它们,并发现——从 Segment-Anything 到 SegGPT——我们仅仅触及了表面。

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

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

相关文章

前端页面禁止debugger调试并跳转空白页面----文心一言官网实现方式

技术点:setInterval定时器Object.defineProperty 背景: 某天打开文心一言想看看接口返回结构是怎样的,熟练的打开浏览器开发者工具查看网络请求。 发现出现了以下debugger断点 这难不倒我,去掉断点调试,继续下一步不…

Django模板(三)

一、标签URL 返回与给定视图和可选参数相匹配的绝对路径引用(不含域名的 URL) {% url some-url-name v1 v2 %} 第一个参数是url模式名称,后面跟着的是参数,以空格分隔可以使用关键字: {% url some-url-name arg1=v1 arg2=v2 %}如果您想检索命名空间的URL,请指定完全限定…

【前端web入门第四天】01 复合选择器与伪类选择器

文章目录: 1. 复合选择器 1.1 后代选择器 1.2 子代选择器 1.3 并集选择器1.4 交集选择器(了解) 2.伪类选择器 2.1 伪类-文本2.2 伪类-超链接(拓展) 1. 复合选择器 什么叫复合选择器? 由两个或多个基础选择器,通过不同的方式组合而成。 复合选择器的作…

《动手学深度学习(PyTorch版)》笔记7.6

注:书中对代码的讲解并不详细,本文对很多细节做了详细注释。另外,书上的源代码是在Jupyter Notebook上运行的,较为分散,本文将代码集中起来,并加以完善,全部用vscode在python 3.9.18下测试通过&…

【新书推荐】7.2 while语句

本节必须掌握的知识点: 掌握if语句语法 熟练使用if语句 7.2.1 示例二十三 ■while语句其语法形式: while(表达式) { 语句块; } ●语法解析: 第一步:执行表达式,如果表达式为真,则执行第…

Elasticsearch:通过 ingest pipeline 对大型文档进行分块

在我之前的文章 “Elasticsearch:使用 LangChain 文档拆分器进行文档分块” 中,我详述了如何通过 LangChain 对大的文档进行分块。那个分块的动作是通过 LangChain 在 Python 中进行实现的。对于使用版权的开发者来说,我们实际上是可以通过 i…

【Fabric.js】监听画布or元素的点击、选中、移动、添加、删除销毁、变形等各事件

在fabric使用过程中,如果想要玩各种花样,那么fabric的事件监听是一定、必须、肯定要掌握!!! 例子就用vue项目组件里的代码,fabric的使用跟vue、react、angular之类的框架都没任何关系! 并且本de…

MySQL学习记录——칠 表操作

文章目录 1、了解2、创建和插入1、基本创建和插入2、插入并更新on duplicate3、插入并替换replace 3、Retrieve1、查询select2、条件查询where3、结果排序order by4、限制行数limit 4、更新Update5、删除delete6、去重7、聚合函数(5个)1、count2、sum3、…

Project2007下载安装教程,保姆级教程,附安装包和工具

前言 Project是一款项目管理软件,不仅可以快速、准确地创建项目计划,而且可以帮助项目经理实现项目进度、成本的控制、分析和预测,使项目工期大大缩短,资源得到有效利用,提高经济效益。软件设计目的在于协助专案经理发…

PySpark(三)RDD持久化、共享变量、Spark内核制度,Spark Shuffle、Spark执行流程

目录 RDD持久化 RDD 的数据是过程数据 RDD 缓存 RDD CheckPoint 共享变量 广播变量 累加器 Spark 内核调度 DAG DAG 的宽窄依赖和阶段划分 内存迭代计算 Spark是怎么做内存计算的? DAG的作用?Stage阶段划分的作用? Spark为什么比MapReduce快? Spa…

高德 API 10009

问题 笔者使用高德地图所提供的API接口,访问接口报错 {"info":"USERKEY_PLAT_NOMATCH","infocode":"10009","status":"0","sec_code_debug":"d41d8cd98f00b204e9800998ecf8427e"…

SolidWorks学习笔记——草图绘制的基本命令

目录 一、进入草图绘制 二、直线命令与删除命令 三、圆弧命令与矩形命令 四、槽口命令以及多边形命令 五、椭圆以及倒角命令 六、草图绘制中的剪裁命令 七、草图中的几何关系 八、草图绘制中的智能尺寸 九、从外部粘贴草图(CAD) 一、进入草图绘…

基于鲲鹏服务NodeJs安装

准备工作 查看当前环境 uname -a查看鲲鹏云CPU架构 cat /proc/cpuinfo# 查看CPU architecture项,8表示v8,7表示v7下载Node.js NodeJs 选择 Linux Binaries (ARM) ARMv8 wget -c https://nodejs.org/dist/v12.18.3/node-v12.18.3-linux-arm64.tar.xz…

创新指南|生成式AI实验 - 企业快速渐进采用人工智能的科学新方法

生成式人工智能(Gen AI)正迅速成为各行各业的企业创新焦点。 生成式AI实验对于企业创新而言至关重要,不仅可以帮助企业识别最适合和最有影响的应用场景,还能促进组织沿着生成式 AI 学习曲线前进,建立早期的创新领导者和…

【Java】苍穹外卖 Day02

苍穹外卖-day02 课程内容 新增员工员工分页查询启用禁用员工账号编辑员工导入分类模块功能代码 **功能实现:**员工管理、菜品分类管理。 员工管理效果: 菜品分类管理效果: 1. 新增员工 1.1 需求分析和设计 1.1.1 产品原型 一般在做需…

git rebase # |REBASE 1/1 #rebase in progress; onto

git 代码解决冲突之后会提示rebase in progress; onto 1 执行git rebase --abort 回到没有pull代码之前 2 git pull 3 解决冲突 4 git add . (不需要git commit) 5 git rebase --continue 6 git push

MyBatis之动态代理实现增删改查以及MyBatis-config.xml中读取DB信息文件和SQL中JavaBean别名配置

MyBatis之环境搭建以及实现增删改查 前言实现步骤1. 编写MyBatis-config.xml配置文件2. 编写Mapper.xml文件(增删改查SQL文)3. 定义PeronMapper接口4. 编写测试类1. 执行步骤2. 代码实例3. 运行log 开发环境构造图总结 前言 上一篇文章,我们…

【leetcode热题100】最大矩形

给定一个仅包含 0 和 1 、大小为 rows x cols 的二维二进制矩阵,找出只包含 1 的最大矩形,并返回其面积。 示例 1: 输入:matrix [["1","0","1","0","0"],["1",&quo…

【教3妹学编程-算法题】LCP 30. 魔塔游戏

3妹:2哥,干嘛呢,一个人闷闷不乐的,在看什么呢。 2哥 : 这不快过年了嘛, 想回家过年给我的小侄子买个礼物,结果他张口说想要个ps5. 那玩意我都没有,他还想要。我看看网上有什么好的礼物适合他的。…

使用npm包js-web-screen-shot做网页截图,可以对截图加文字,箭头等等,类似于微信截图

<template><div class"m-feedback-wrap" :style"{ top: ${feedbackHeight}px }"><div class"m-feedback-icon-wrap"><el-tooltipclass"item"effect"dark"content"内容"placement"left-…