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

news2024/11/26 17:24:48

论文:《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.coloradmin.cn/o/1267326.html

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

相关文章

Could NOT find resource [logback-test.xml]

修改 之后就可以正常启动了

wsj0数据集原始文件.wv1.wv2转换成wav文件

文章目录 准备一、获取WSJO数据集二、安装sph2pipe三、转换代码四、结果展示 ​ 最近做语音分离实验需要用到wsj0-2mix数据集,但是从李宏毅语音分离教程里面获取的wsj0-2mix只有一部分。从网上获取到了完整的WSJO数据集后,由于原始的语音文件后缀是wv1或…

Linux安装mongodb数据库(详细)

一、下载安装包 本文使用 tgz 方式,根据服务器类型在官网下载 MongoDB 安装包。官方地址:https://www.mongodb.com/try/download/community 下载方式如图所示: 选择版本 关于 MongoDB 的版本选择,参见如下版本差异: 1、将从官…

推荐几款免费的智能AI伪原创工具

在当今信息快速传播的时代,创作者们常常为了在激烈的竞争中脱颖而出而苦苦挣扎,而其中的一项挑战就是创作出独具创意和独特性的内容。然而,时间有限的现实让很多人望而却步。在这个背景下,免费在线伪原创工具成为了创作者们的得力…

csapp-linklab之第二阶段“输出学号”实验报告

本阶段主题是链接中的“重定位”。两次重定位,一次是绝对地址重定位,一次是PC相对地址重定位。 本题目标依旧是输出学号,反汇编phase2.o,看到学号“0000000000”已经存放在只读数据区了。现在任务就是改do_pheas的指令和重定位表…

示波器高压探头的操作说明及使用注意事项

操作说明: 连接探头衰减端的地线(鳄鱼夹)到好的接地点或可靠的接地测试端。连接BNC头到示波器的BNC输入端口。选择示波器要求的量程范围。 注意:请务必在连接测试前把高压电源关闭。 注意事项: 请勿将测试设备的接地线从地面接线柱上移开。…

“创新视频封面设计,轻松提取其他视频第一帧,让你的视频更具吸引力!“

你是否曾经为如何为自己的视频定制封面而烦恼?现在,我们为你推荐一款全新的视频封面提取工具,让你的视频封面设计更加简单、快捷! 首先,运行媒体梦工厂,在板块栏路选择“视频封面”板块。并点击“提取封面…

【C++】杨辉三角详解和C++代码示例

杨辉三角的每行第i个数是由上一行的第i-1个数和第i个数相加得到的&#xff0c;且每行的第一个数和最后一个数都是1&#xff0c;每行的中间个数等于它两肩上的数字相加。 目录 C代码输出结果8行输出15行输出25行输出 C代码 #include <iostream> #include <vector>…

如何用CHAT写一篇儿童地理入门的文章?

问CHAT&#xff1a;从初中地理知识的角度&#xff0c;以"地球&#xff0c;我的家“为标题写一篇儿童地理入门的文章&#xff0c;主要概述地球的地理特点&#xff0c;引起孩子对地球地理知识的兴趣。可以用这些相关生活场景来延伸&#xff1a;在学校上地理课时学习关于地球…

ThinkPHP的方法接收json数据问题

第一次接触到前后端分离开发&#xff0c;需要在后端接收前端ajax提交的json数据&#xff0c;开发基于ThinkPHP3.2.3框架。于是一开始习惯性的直接用I()方法接收到前端发送的json数据&#xff0c;然后用json_decode()解析发现结果为空&#xff01;但是打印出还未解析的值却打印得…

第二十章Java博客

如果一次只完成一件事情&#xff0c;很容易实现。但现实生活中&#xff0c;很多事情都是同时进行的。Java中为了模拟这种状态&#xff0c;引入了线程机制。简单地说&#xff0c;当程序同时完成多件事情时&#xff0c;就是所谓的多线程。多线程应用相当广泛&#xff0c;使用多线…

【LeetCode刷题】数组篇1

&#x1f387;数组简单题Part &#x1f308; 开启LeetCode刷题之旅 &#x1f308; 文章目录 &#x1f387;数组简单题Part&#x1f370;1.两数之和&#x1f451;思路分析1.暴力法2.哈希表法 &#x1f370;26.删除有序数组中的重复项&#x1f451;思路分析1.双指针2.利用vector…

linux安装docker(脚本一键安装配置docker)

1、创建脚本 vi initDocker.sh #安装前先更新yum&#xff0c;防止连接镜像失败 yum -y update#卸载系统之前的docker&#xff08;可选择&#xff0c;我这里直接注释了&#xff09; #yum remove docker docker-client docker-client-latest docker-common docker-latest docke…

自动化接口测试之Postman(一篇搞定)

该篇文章针对已经掌握 Postman 基本用法的读者&#xff0c;即对接口相关概念有一定了解、已经会使用 Postman 进行模拟请求的操作。 当前环境&#xff1a; Window 7 - 64 Postman 版本&#xff08;免费版&#xff09;&#xff1a;Chrome App v5.5.3 不同版本页面 UI 和部分…

Day13 qt 高级控件,自定义控件,事件,绘图,定时器

高级控件 QListWidget 列表展示控件 效果 添加数据 ui->listWidget->addItem("A"); QStringList list; list << "B" << "C" << "D"; ui->listWidget->addItems(list); 设置item点击 void Widget::on_l…

aspera用户必看:这些替代方案也不逊色!

如果正在使用Aspera进行数据传输&#xff0c;但是由于某些原因例如成本、许可证等无法继续使用该工具&#xff0c;那么可能需要寻找替代方案。在本文中&#xff0c;我将介绍几个类似的替代工具&#xff0c;它们可以有效地解决数据传输的问题&#xff0c;并且不会在性能方面逊色…

通用闪存存储(UFS)市场研究,预计2029年将达到1,930.99百万美元

UFS产品定义及统计范围 UFS &#xff08;Universal Flash Storage&#xff0c;通用闪存存储&#xff09;&#xff0c;UFS是一种高性能接口&#xff0c;设计用于需要最小化功耗的应用&#xff0c;包括智能手机和平板电脑等移动系统以及汽车应用&#xff0c;其高速串行接口和优化…

【JavaEE初阶】 HTTP 请求 (Request)详解

文章目录 &#x1f340;序言&#x1f384;认识URL&#x1f6a9;URL 基本格式&#x1f6a9;query string&#x1f6a9;关于 URL encode &#x1f334;认识 "方法" (method)&#x1f6a9;GET方法&#x1f6a9;POST 方法&#x1f6a9; GET 和 POST 的区别 &#x1f38b;…

【已解决】游戏缺少xinput1_3.dll的详细解决方案与详情解析

在现代科技日新月异的时代&#xff0c;电脑已经成为我们生活和工作中不可或缺的工具。然而&#xff0c;由于各种原因&#xff0c;电脑可能会出现一些问题&#xff0c;其中之一就是xinput1_3.dll文件的缺失。本文将详细介绍xinput1_3.dll丢失对电脑的影响以及丢失的原因&#xf…

【LeetCode刷题笔记】160.相交链表

创作不易&#xff0c;本篇文章如果帮助到了你&#xff0c;还请点赞 关注支持一下♡>&#x16966;<)!! 主页专栏有更多知识&#xff0c;如有疑问欢迎大家指正讨论&#xff0c;共同进步&#xff01; 更多算法知识专栏&#xff1a;算法分析&#x1f525; 给大家跳段街舞感谢…