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展示出一定通用性,但个人认为比较难超越专家模型。

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

0x00000709一键修复的解决办法,0x00000709错误的原因

在使用打印机时,你可能会遇到一些错误代码,其中之一是0x00000709。这个错误代码表示无法设置默认打印机。如果你遇到这样的问题不用担心!这篇文章将为你提供0x00000709一键修复的解决办法,帮助你解决0x00000709错误,并…

对于 ` HttpServletResponse ` , ` HttpServletRequest `我们真的学透彻了吗

对于 **HttpServletResponse , HttpServletRequest**我们真的学透彻了吗 问题引入 PostMapping("/importTemplate") public void importTemplate(HttpServletResponse response) {ExcelUtil<SysUser> util new ExcelUtil<SysUser>(SysUser.class);uti…

J-Flash工具的使用---擦除、烧录及校验

文章目录 前言一、打开J-Flash工具二、使用步骤1.创建工程&#xff0c;选择MCU&#xff0c;配置端口2.打开要烧录的文件3.连接J-Link4.擦除Flash5. 烧录固件 总结 前言 不使用IDE&#xff08;如keil、Iar&#xff09;如何来烧录固件。当我们的程序需要保密&#xff0c;不需要被…

YOLOv8改进 | 2023 | DWRSeg扩张式残差助力小目标检测 (附修改后的C2f+Bottleneck)

论文地址&#xff1a;官方论文地址 代码地址&#xff1a;该代码目前还未开源&#xff0c;我根据论文内容进行了复现内容在文章末尾。 一、本文介绍 本文内容给大家带来的DWRSeg中的DWR模块来改进YOLOv8中的C2f和Bottleneck模块&#xff0c;主要针对的是小目标检测&#xff0c…

Vite 了解

1、vite 与 create-vite 的区别 2、vite 解决的部分问题 3、vite配置文件的细节 3.1、vite语法提示配置 3.2、环境的处理 3.3、环境变量 上图补充 使用 3.4、vite 识别&#xff0c;vue文件的原理 简单概括就是&#xff0c;我们在运行 npm润dev 的时候&#xff0c;vite 会搭起…

fastReID论文总结

fastReID论文总结 fastReIDReID所面临的挑战提出的背景概念&#xff1a;所谓ReID就是从视频中找出感兴趣的物体&#xff08;人脸、人体、车辆等&#xff09;应用场景&#xff1a;存在的问题&#xff1a;当前的很多ReID任务可复用性差&#xff0c;无法快速落地使用解决方式&…

EMA训练微调

就是取前几个epoch的weight的平均值&#xff0c;可以缓解微调时的灾难性遗忘&#xff08;因为新数据引导&#xff0c;模型权重逐渐&#xff0c;偏离训练时学到的数据分布&#xff0c;忘记之前学好的先验知识&#xff09; class EMA():def __init__(self, model, decay):self.…

RabbitMQ消息模型之Sample

Hello World Hello World是官网给出的第一个模型&#xff0c;使用的交换机类型是直连direct&#xff0c;也是默认的交换机类型。 在上图的模型中&#xff0c;有以下概念&#xff1a; P&#xff1a;生产者&#xff0c;也就是要发送消息的程序C&#xff1a;消费者&#xff1a;消…

机器学习:领域自适应学习

训练一个分类器是小问题 上难度 训练数据和测试数据不一致&#xff0c;比如训练数据是黑白的&#xff0c;测试时彩色的&#xff0c;结果准确率非常低。 训练数据和测试数据有点差距的时候&#xff0c;能不能效果也能好呢&#xff1f;这就用到了领域自使用domain adptation 用一…

Windows 11的新功能不适用于所有人,但对将要使用的人来说非常酷

正如一个新的预览版本所示&#xff0c;Windows 11即将为那些使用手写笔的人添加一些智能功能&#xff0c;以及其他改进。 这是预览版22635.2776&#xff08;也称为KB5032292&#xff09;&#xff0c;已推出Beta频道&#xff0c;这是发布预览版之前的最后一个测试方法&#xff…

速速报名!请查收 2023 龙蜥操作系统大会超全指南

亲爱的小伙伴们&#xff0c;大家好&#xff01;我是大家的老朋友小龙&#xff01;自 2023 龙蜥操作系统大会宣布启动以来&#xff0c;小龙收到了来自四面八方的诸多期待和小心心。首届龙蜥大会正如火如荼地进行中&#xff0c;为表示对关注社区的每一位小伙伴由衷的感谢&#xf…

Ubuntu安装ssh

Ubuntu安装ssh服务器 一、ssh ssh&#xff1a;安全外壳协议(secure shell)的缩写&#xff0c;安全外壳协议&#xff08;安全的shell&#xff09;&#xff0c;是一个计算机网络协议&#xff08;默认端口号为22&#xff09;。通过ssh协议可以在客户端安全&#xff08;提供身份认…

k8s中Pod控制器简介,ReplicaSet、Deployment、HPA三种处理无状态pod应用的控制器介绍

目录 一.Pod控制器简介 二.ReplicaSet&#xff08;简写rs&#xff09; 1.简介 &#xff08;1&#xff09;主要功能 &#xff08;2&#xff09;rs较完整参数解释 2.创建和删除 &#xff08;1&#xff09;创建 &#xff08;2&#xff09;删除 3.扩容和缩容 &#xff08…

【Java SE】带你在String类世界中遨游!!!

&#x1f339;&#x1f339;&#x1f339;我的主页&#x1f339;&#x1f339;&#x1f339; &#x1f339;&#x1f339;&#x1f339;【Java SE 专栏】&#x1f339;&#x1f339;&#x1f339; &#x1f339;&#x1f339;&#x1f339;上一篇文章&#xff1a;带你走近Java的…

【C 语言经典100例】C 练习实例9

题目&#xff1a;要求输出国际象棋棋盘。 程序分析&#xff1a;国际象棋棋盘由64个黑白相间的格子组成&#xff0c;分为8行*8列。用i控制行&#xff0c;j来控制列&#xff0c;根据ij的和的变化来控制输出黑方格&#xff0c;还是白方格。 #include<stdio.h>int main() {…

从 Elasticsearch 到 SelectDB,观测云实现日志存储与分析的 10 倍性价比提升

作者&#xff1a;观测云 CEO 蒋烁淼 & 飞轮科技技术团队 在云计算逐渐成熟的当下&#xff0c;越来越多的企业开始将业务迁移到云端&#xff0c;传统的监控和故障排查方法已经无法满足企业的需求。在可观测理念逐渐深入人心的当下&#xff0c;人们越来越意识到通过多层次、…

YOLOv5小目标检测层

目录 一、原理 二、yaml配置文件 一、原理 小目标检测层,就是增加一个检测头,增加一层锚框,用来检测输入图像中像素较小的目标 二、yaml配置文件 # YOLOv5 🚀 by Ultralytics, GPL-3.0 license# Parameters nc: 3 # number of classes depth_multiple: 0.33 # model…

案例,linux环境下OpenCV+Java,实现证件照在线更换背景色

先看效果&#xff08;图片来自网络&#xff0c;如有侵权&#xff0c;请联系作者删除&#xff09; 主要是通过java实现的&#xff0c;linux环境编译安装opencv及证件照背景色更换的核心算法在前面一篇文章中有写到。 目前算法还有瞎呲&#xff0c;当照片光线不均的时候会出现误…

低调使用。推荐一个 GPT4 Turbo、Vision、GPTs、DELL·E3 等所有最新功能同步可用国内网站

在 11 月 6 日&#xff0c;万众期待的 OpenAI DevDay&#xff0c;ChatGPT 发布了一系列新的产品&#xff0c;其中推出了 GPT4 Turbo&#xff0c;并且将GPT4 Vision&#xff0c;DELLE3 等等能力全部集合到一起&#xff0c;不需要再分开使用&#xff0c;原来的局限的文本聊天也进…

创业公司or大厂怎么选?不是凡尔赛,一个技巧让你涨薪10W!

最近总有一些特别“凡尔赛”的发几个 offer 问我选择哪个&#xff1f;其中比较典型的一个问题就是&#xff1a; “一个是处于上升期的创业型公司 &#xff0c;一个行业大厂&#xff0c;薪资待遇差不多&#xff0c;到底该如何进行选择和取舍呢&#xff1f;“ 这个问题不是个别…