InstructDiffusion-多种视觉任务统一框架

论文:《InstructDiffusion: A Generalist Modeling Interface for Vision Tasks》
github:https://github.com/cientgu/InstructDiffusion
InstructPix2Pix:参考

文章目录

  • 摘要
  • 引言
  • 算法
    • 视觉任务统一引导
    • 训练集重构
    • 统一框架
  • 实验
    • 训练集
    • 关键点检测
    • 分割
    • 图像增强
    • 图像编辑
    • 详细instruction的优势
    • 多任务训练优势
    • 人工校准数据集影响
    • 对未见任务的泛化性
  • 讨论与结论
  • 个人理解

摘要

作者提出InstructDiffusion,一个统一通用框架用于对齐cv任务与instruction,将不同视觉任务映射为人工引导的图像处理任务。InstructDiffusion可处理各种视觉任务,包括理解任务(分割、关键点检测)、生成类任务(编辑和增强)。InstructDiffusion迈向视觉任务通用模型接口重要一步。

引言

难点:
1、计算机视觉任务的多样性使得其很难找到一个适用于所有任务的统一的表征;
2、不同的任务需要不同的方法,作为对比,NLP任务基于更一致的方法;
3、视觉任务输入输出是连续性的,通过VQ-VAE量化时容易产生量化误差;
本文中作者利用DDPM优势,提出一种新方法将所有视觉任务看做图像生成,解决所提到挑战。
输出格式有三种:RGB图、二进制图、关键点;

算法

作者提出InstructDiffusion,一种通用模型接口适用于各种视觉任务。利用DDPM,将所有视觉任务看做人类引导的图像处理过程,输出在一个灵活和交互的像素空间。
输出为三种格式:3通道RGB图、二进制mask、关键点

视觉任务统一引导

训练集 x i x_i xi可以表征为 c i , s i , t i {c_i, s_i, t_i} ci,si,ti,其中 c i c_i ci表示控制的instruction; s i s_i si t i t_i ti分别表示原图和目标图。Instruct-Pix2Pix天然符合该任务

关键点检测:作者使用更自然详细指令用于关键点检测,比如:”Please use red to encircle the left shoulder of the man.”,仅在输出图中对应位置展示红圈;
分割:识别特定目标区域,instruction实例”apply a blue semi-transparent mask to the rightmost dog while maintaining the remainder un- altered.” 变透明mask更利于评估同时增强分割效果;

图像增强与图像编辑:构建instruction应该明确说明要执行的功能,比如:“Make the image much sharper”、“Please remove the watermark on the image”、“add an apple in the woman’s hand”
为了增加instruction的多样性,作者首先对每个 任务写10个instruction,然后使用GPT-4重写并扩展多样性,

训练集重构

作者使用开源数据集,依据instruction重构目标图;InstructPix2Pix利用GPT-3生成instruction,Prompt2Prompt创建目标图;MagicBrush数据集有1万张人工标注的三元组样本,作者提出了IEIW,包括159000样本对,涵盖多种实体及分割粒度。
作者从以下三个源收集IEIW数据集
目标移除:作者对PhraseCut数据集提供图片及对应短语,使用LAMA进行目标移除;同时翻转instruction及输入、输出图进行数据集扩充
目标替换:作者提出一种生成训练集(特定目标替换)流程。作者使用SA-1B及Open-Images数据集,首先基于分割区域构建目标数据库,选择一个语义区域,从数据库中搜索最相似目标作为参考图,通过PaintByExample生成目标图,为了获得instruction,作者使用图像caption工具生成原图及目标图caption,通过LLM生成instruction
网络爬虫:通过google关键词”photoshop request”,搜索P图人员修过的的图,共2.3万成对数据。
为保证训练集质量,作者进行质量评估。具体地,使用LAION-Aesthetics-Predictor进行美学评分,在LAION-600M数据集构建KNN-GIQA模型进行GIQA评分。作者剔除低质量得分数据、源图与目标图质量得分差异大的数据。

统一框架

在这里插入图片描述
如图2,训练过程包括三个阶段:自适应预训练、特定任务训练、instruction调优
自适应预训练
作者希望扩散模型可生成图像具有特定前景mask或者特别mark,因此使用现有的分割或关键点数据集产生这样的数据,主要挑战在于在保留文生图能力的同时,形成合适caption准确描述这些图像,通过对原始图像caption增加后缀实现,比如:”with a few different color patches here and there” or ”surrounded with a red circle.”
特定任务训练
第二阶段进一步finetune扩散模型,强化其理解不同任务各种instruction能力。对于不同任务所使用训练样本如表1。
在这里插入图片描述
扩散过程增加噪声 z t z_t zt,微调模型,如式1,
在这里插入图片描述
人工对齐
对于每个样本我们生成20个不同的编辑结果,人工挑选最好的0-2个编辑结果用作instruction微调数据集。整个数据集包括1k张图。

实验

训练集

关键点:COCO,149k,17个关键点;CrowdPose,35k,14个关键点;MPII,22k,16个关键点;AIC,378k,14个关键点;
分割:COCO-Stuff作为分割训练集、gRefCOCO和RefCOCO作为引用分割训练集;instruction使用固定模板:“place a color mask on object.”
图像增强:关注三个任务:

  • 去模糊:GoPro 2103张图,REDS 24k张图;
  • 去噪:SIDD 320张图;
  • 水印去除:CLWD 60k张图;

图像编辑:InstructPix2Pix,561k个样本;MagicBrush,8k个样本;GIER,5k;GQA,131k修复数据集;VGPhraseCut,85k样本;作者生成51k样本;
训练细节
训练集955k、batch 3072、200epoch、48 v100、分辨率 256*256,训练4天

关键点检测

作者在COCO验证集、未见过数据集HumanArt、AP-10K(动物关键点)验证模型泛化性;
测试结果如表2,InstructDiffusion超过其他泛化模型,但与关键点检测模型有一定差距,归因于位置不准确。
在这里插入图片描述
在动物关键点数据集AP-10K展示不错效果,如图3.
在这里插入图片描述

分割

作者关注模型对开集词汇能力。表3展示引用分割结果,在RefClef数据集取得出乎意料成果。
在这里插入图片描述
表4展示语义分割量化结果。InstructDiffusion不仅在闭集changjignCOCO-Stuff超过现有专家模型,同时在开集场景也取得有竞争力效果,但在ADE-150K上Painer效果更好,由于Painter在该数据集上训练过。但在Painter和PromptDiffusion难以将颜色与未见过类别联系,这是由于它们通过参考图引导模型将颜色与语义联系,而InstructDiffusion通过文本将它们联系。图4为可视化结果。
在这里插入图片描述
在这里插入图片描述

图像增强

在这里插入图片描述
表5为量化比较结果,可知:

  • 图像编辑任务的专家模型在图像增强任务有较差的泛化性;
  • Painter在去噪任务表现较好,但在编辑任务遇到挑战;
  • InstructDiffusion图像增强性能受限于VAE,括号中为送入VAE真值得到模型上限效果。

图5展示实际应用效果。
在这里插入图片描述

图像编辑

使用CLIP及美学预测AP评估生成结果。量化结果如表5,与Instruct-Pix2Pix、MagicBrush性能相当。可视化结果图6、图7,提供原图,可以添加、移除、替换目标
在这里插入图片描述
在这里插入图片描述

详细instruction的优势

如表6,简单instruction效果比较差。
在这里插入图片描述

多任务训练优势

图8展示多任务联合训练效果远优于单分割任务训练效果;
在这里插入图片描述
图9展示图像编辑也获得类似收益。
在这里插入图片描述

人工校准数据集影响

图10展示人工校准数据集的影响,从29.6提升到29.9
在这里插入图片描述

对未见任务的泛化性

图11展示模型对未见过任务的能力,包括检测、分类、甚至细粒度任务。
在这里插入图片描述

讨论与结论

本文提出的InstructDiffusion,一种统一框架对齐视觉与instruction,将所有视觉任务看做图像生成,作者证明在多个任务达到不错表现,同时多任务联合训练强化模型泛化性。
未来作者关注以下几点提升模型能力:
1、改进统一表征,可更好表征各种视觉任务输出;
2、研究自监督及无监督学习,使用大规模无标注数据,强化模型泛化性;

个人理解

InstructDiffusion基于InstructPix2PIx扩充训练集用于多种视觉任务,将多种任务看做生成任务,并且联合训练展示出一定泛化性,可用于未见过任务。虽然InstructDiffusion展示出一定通用性,但个人认为比较难超越专家模型。

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

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Vue3的项目创建到启动

Vue3的项目创建 检查node版本创建 npm init vuelatest 安装依赖 项目启动 启动成功

OpenAI再次与Sam Altman谈判;ChatGPT Voice正式上线

11月22日,金融时报消息,OpenAI迫于超过700名员工联名信的压力,再次启动了与Sam Altman的谈判,希望他回归董事会。 在Sam确定加入微软后,OpenAI超700名员工签署了一封联名信,要求Sam和Greg Brockman&#x…

Spring---对象的存储和读取

文章目录 Spring对象的存储创建Bean对象将Bean对象存储到spring中添加配置文件存储Bean对象 Spring对象的读取得到Spring上下文对象从Spring中取出Bean对象使用Bean对象 Spring对象的存储 创建Bean对象 Bean对象其实就是一个普通的Java对象。我们按照创建Java对象的方式来创建…

【云原生】什么是 Kubernetes ?

什么是 Kubernetes ? Kubernetes 是一个开源容器编排平台,管理着一系列的 主机 或者 服务器,它们被称作是 节点(Node)。 每一个节点运行了若干个相互独立的 Pod。 Pod 是 Kubernetes 中可以部署的 最小执行单元&#x…

USB驱动开发基础

USB标准 USB1.0, 1996,低速1.5Mbps和高速12Mbps,USB1.1 iMac G3,Type A和Type B接口USB 2.0 2000, 480Mpbs,Type A/B/C接口、Micro A/BUSB 3.0 5Gbps, 随着USB 3.2命名规定,现在也叫USB 3.2 Ge…

Linux网络——数据链路层

目录 一.认识以太网 二.以太网帧格式 三.认识MAC地址 四.认识MTU 五.以太局域网的通信原理 六.其他重要协议 1.DNS协议 2.域名简介 3.ICMP协议 4.NAT技术 5.NAT技术的缺陷 6.NAT和代理服务器 一.认识以太网 "以太网" 不是一种具体的网络, 而是一种技术标…

docker (简介、dcoker详细安装步骤、容器常用命令)一站打包- day01

一、 为什么出现 Docker是基于Go语言实现的云开源项目。 Docker的主要目标是“Build,Ship and Run Any App,Anywhere”,也就是通过对应用组件的封装、分发、部署、运行等生命周期的管理,使用户的APP(可以是一个WEB应用或数据库应…

数据库的重要你了解多少?如何保障数据库的安全?

随着信息技术的快速发展,数据库已经成为企业、组织以及个人日常生活中不可或缺的一部分。然而,随着数据库的广泛应用,其安全性问题也日益凸显。数据库的安全性主要包括数据的完整性、保密性和可用性。本文将探讨数据库安全性的重要性、以及如…

常使用的定时任务

常使用的定时任务 一、 linux自带的定时任务 1、crontab 有这样一个需求:我们使用Java写一个工具jar包在系统空闲的时候去采集已经部署在Linux系统上的项目的一 些数据,可以使用 linux 系统的 crontab。 运行crontab -e,可以编辑定时器&…

C语言——深入理解指针(3)

目录 1. 字符指针 2. 数组指针 2.1 数组指针变量 2.2 数组指针变量的初始化 3.二维数组传参(本质) 4. 函数指针 4.1 函数指针变量的创建 4.2 函数指针的使用 4.3 typedef 5. 函数指针数组 6. 转移表(函数指针数组的使用&#xff…

sqli-labs(7)

32. 看到“前面有了\这里使用宽字节注入 当字符的大小为一个字节时为窄字节 当字符的大小为两个字节时为宽字节 英文字符的大小为一个字节,汉字为两个 漏洞产生的成因在sql中使用像GB2312,GBK,GB18030,BIG5,Shift_JIS这些宽字节编码而php使用utf-8编码 为了防止注…

token认证机制,基于JWT的Token认证机制实现,安全性的问题

文章目录 token认证机制几种常用的认证机制HTTP Basic AuthOAuthCookie AuthToken AuthToken Auth的优点 基于JWT的Token认证机制实现JWT的组成认证过程登录请求认证 对Token认证的五点认识JWT的JAVA实现 基于JWT的Token认证的安全问题确保验证过程的安全性如何防范XSS Attacks…

基于YOLOv5的人群计数系统设计系统

欢迎大家点赞、收藏、关注、评论啦 ,由于篇幅有限,只展示了部分核心代码。 文章目录 一项目简介系统概述系统功能核心技术系统架构系统优势 二、功能三、系统四. 总结  总结 一项目简介 基于YOLOv5的人群计数系统设计是一个非常有趣且具有挑战性的项目…

第20章 多线程

创建线程 继承Thread 类 Thread 类时 java.lang 包中的一个类,从类中实例化的对象代表线程,程序员启动一个新线程需要建立 Thread 实例。 Thread 对象需要一个任务来执行,任务是指线程在启动时执行的工作,start() 方法启动线程&am…

java开发需要用到的软件,必备软件工具一览

java开发需要用到的软件,必备软件工具一览 如果你对Java编程感兴趣或已经是一名Java开发者,你需要一些必备的软件工具来提高你的生产力和简化开发过程。在本文中,我们将探讨Java开发所需的关键软件工具,并通过具体示例来解释它们的…

人力资源管理后台 === 上传+权限数据

目录 1.员工详情-封装员工头像组件 2.员工详情-上传图片-创建腾讯云存储桶 3.员工详情-使用cos-sdk完成上传 4. 权限管理-搭建权限页面 5.权限管理-获取数据转化树形 6.权限管理-作业 7.权限应用-权限概念 8.权限应用-员工分配角色-弹出层 9.权限应用-员工分配角色-回…

15:00面试,15:06就出来了,问的问题有点变态。。。

从小厂出来,没想到在另一家公司又寄了。 到这家公司开始上班,加班是每天必不可少的,看在钱给的比较多的份上,就不太计较了。没想到8月一纸通知,所有人不准加班,加班费不仅没有了,薪资还要降40%…

【计算机网络】虚拟路由冗余(VRRP)协议原理与配置

目录 1、VRRP虚拟路由器冗余协议 1.1、协议作用 1.2、名词解释 1.3、简介 1.4、工作原理 1.5、应用实例 2、 VRRP配置 2.1、配置命令 1、VRRP虚拟路由器冗余协议 1.1、协议作用 虚拟路由冗余协议(Virtual Router Redundancy Protocol,简称VRRP)是由IETF…

前端开发学习 (三) 列表功能

一、列表功能 1、列表功能 <!DOCTYPE html> <html lang"en"><head><meta charset"UTF-8"><meta name"viewport" content"widthdevice-width, initial-scale1.0"><meta http-equiv"X-UA-Compa…

【hacker送书第4期】推荐4本Java必读书籍(各送一本)

第4期图书推荐 Java从入门到精通&#xff08;第7版&#xff09;内容简介参与方式 项目驱动零基础学Java内容简介参与方式 深入理解Java高并发编程内容简介参与方式 Java编程讲义内容简介参与方式 Java从入门到精通&#xff08;第7版&#xff09; 内容简介 《Java从入门到精通&…