InstructPix2Pix(CVPR2023)-图像编辑论文解读

文章目录

  • 1.摘要
  • 2.背景
  • 3.算法
    • 3.1 生成多模态训练集
      • 3.1.1生成指令及成对caption
      • 3.1.2 依据成对的caption生成成对的图像
    • 3.2 InstructPix2Pix
  • 4.实验结果
    • 4.1基线比较
    • 4.2消融实验
  • 5.结论

论文: 《InstructPix2Pix: Learning to Follow Image Editing Instructions》
github: https://github.com/timothybrooks/instruct-pix2pix

1.摘要

本文提出一种根据人类引导编辑图像的方法InstructPix2Pix:输入一张图片及告诉模型做什么的引导语,我们的模型将会跟随引导语编辑图像。为获得解决该问题的训练集,作者结合两个大预训练模型的知识:GPT-3、Stable Diffusion,用于生成图像编辑数据集。InstructPix2Pix在生成数据集上训练,但是可泛化到真实数据并且实现用户引导。因为该方案在前向过程进行编辑,无需finetune或转换,可在秒级完成图像编辑。作者展示了令人信服的编辑结果。

2.背景

GPT捕获关于语言的知识,Stable Diffusion捕获关于图像的知识,两者结合用于生成跨越两模态的成对训练集。
InstructPix2Pix在前向过程直接进行图像编辑,无需额外样例图、对输入/输出图的描述或逐样本finetune。
尽管InstructPix2Pix利用生成数据进行训练,但可零样本泛化到真实图片中。可进行各种编辑任务:替换目标、改变图片风格、改变背景、艺术风格等等,如图1所示。
在这里插入图片描述

3.算法

作者将基于引导的图像编辑任务看作有监督学习问题:
1. 生成成对训练集,包括图像编辑指令及编辑前后的图像;图2a-c
2. 在生成数据集训练图像编辑扩散模型;图2-d

在这里插入图片描述

3.1 生成多模态训练集

3.1.1生成指令及成对caption

一个LLM可利用输入图caption生成编辑指令及编辑后图片caption。如图2a所示,输入caption:“photograph ofa girl riding a horse”,LLM可生成编辑指令“have her ride a dragon”及编辑后输出caption:“photograph ofa girl riding a dragon”。
上述过程用到的语言模型通过在小批量人工编写的数据集上finetune GPT-3获得的。该finetune数据集,作者通过在LAION-Aesthetics V2 6.5+中采样700条输入caption获得。如表1所示。受益于GPT-3广博的知识和概括能力,我们finetune的模型能够生成合理instruction及caption。
在这里插入图片描述

3.1.2 依据成对的caption生成成对的图像

将一对caption转换为对应图像的挑战在于当prompt发生变化时,不能保证图像一致性。比如:“a picture ofa cat”及“a picture ofa black cat”可能会生成非常不同的猫,不利于训练模型进行图像编辑。因此作者使用Prompt-to-Prompt,使得生成图像尽量相似,如图3展示使用Prompt-to-Prompt前后结果。Prompt-to-Prompt中参数p可控制两张图相似性,作者对每个caption对生成100个样本对,随机参数 p ∼ U ( 0.1 , 0.9 ) p ∼ U(0.1, 0.9) pU(0.1,0.9),通过CLIP进行过滤样本
在这里插入图片描述

InstructPix2Pix_24">3.2 InstructPix2Pix

为了支持图像作为条件输入,作者在第一个卷积层增加channel,将 z t z_t zt ϵ ( c I ) \epsilon(c_I) ϵ(cI) concat
Classifier-free扩散引导用于平衡生成样本质量及多样性,联合训练扩散模型用于有条件及无条件去噪,推理时将两估计得分结合,通过参数 s s s控制,如式2所示
在这里插入图片描述
对于本任务,得分网络 e θ ( z t , c I , c T ) e_θ(z_t, c_I, c_T) eθ(zt,cI,cT) 有两个条件,作者引入两个引导参数 S I 、 S T S_I、S_T SIST,更改后的得分估计如式3,图4展示两参数影响。
在这里插入图片描述
在这里插入图片描述

4.实验结果

4.1基线比较

如图9,作者与Text2Live、SDEdit进行定性比较。尽管SDEdit能够保证内容一致,同时风格变化,但是它需要目标图的description而不是instruction。
在这里插入图片描述
与SDEdit定量比较如图8,纵轴表示CLIP图像相似性,通过计算CLIP image embedding余弦相似性实现,用于表示编辑后的图像与编辑前图像一致性;横轴表示CLIP图文相似性,用于表示编辑后图像与caption一致性。与SDEdit相比,作者所提方法在相同图文一致性时,具有更高的图像一致性。
在这里插入图片描述

4.2消融实验

图10展示消融实验量化结果,降低数据集大小将导致降低更大图像编辑能力,仅保证图像一致性,但无法保证图文一致性;移除数据集CLIP过滤,导致与输入图的一致性降低
在这里插入图片描述
图4展示两个引导参数 S I 、 S T S_I、S_T SIST影响,增大 S T S_T ST使得与instruction更加一致,增大 S I S_I SI使得与输入图更加一致

5.结论

作者证明大语言模型与文生图模型结合生成数据集,用于根据instruction训练扩撒模型。虽然能够进行令人信服的图像编辑,但是仍存在一些限制

  1. 受限于生成数据集图像质量
  2. 受限于模型泛化到新编辑instruction的能力
  3. 视觉变化与instruction做出正确关联度受限于finetune GPT-3人工编写的instruction、GPT-3的能力、Prompt-to-Prompt能力
  4. 在目标数量计数及空间推理方面存在问题。如图13
    在这里插入图片描述
  5. 在数据及预训练模型的偏置有可能继承至InstructPix2Pix中,如图14。
    在这里插入图片描述
    作者同时提出一些问题:如何根据instruction进行空间推理;如何将instruction与其他条件模态结合;如何评估基于instruction的图像编辑;强化学习策略可能用于改进模型与人类意图之间一致性。

http://www.niftyadmin.cn/n/5023780.html

相关文章

数据结构——看完这篇保证你学会队列

数据结构——队列 一、队列的概念二、队列的实现方式三、队列所需要的接口四、接口的详细实现4.1初始化4.2销毁4.3入队4.5出队4.6获取队头元素4.7获取队尾元素4.8获取队列元素个数4.9判空 五、完整代码5.1Queue.h5.2Queue.c5.3test.c 一、队列的概念 队列:只允许在…

TypeScript接口和类

🎬 岸边的风:个人主页 🔥 个人专栏 :《 VUE 》 《 javaScript 》 ⛺️ 生活的理想,就是为了理想的生活 ! 目录 接口 类 在 TypeScript 中,接口(Interfaces)和类(Classes&#xff…

开课吧(三)机器人系统(ros详解)

目录 常用快捷键: 常用命令: Catkin编译系统: 简析.XML文件(说明书) name指package名字 version指版本 description指描述 maintainer指拥有者 license指授权 buildtool_depend 依赖catkin编译 build_depend指依…

【Linux】VirtualBox安装Centos7

文章目录 下载并安装VirtualBox下载Centos镜像VirtualBox设置管理->全局设定:设定虚拟机默认安装路径工具->网络管理器:添加NetWork网络配置 VirtualBox安装CentOS7新建虚拟机,指定安装目录及名称,点击下一步指定虚拟机内存…

加密狗软件有什么作用?

加密狗软件是一种用于加密和保护计算机软件和数据的安全设备。它通常是一个硬件设备,可以通过USB接口连接到计算机上。加密狗软件的作用主要体现在以下几个方面: 软件保护:加密狗软件可以对软件进行加密和授权,防止未经授权的用户…

阿里后端开发:抽象建模经典案例【文末送书】

文章目录 写作前面1.抽象思维2.软件世界中的抽象3. 经典抽象案例4. 抽象并非一蹴而就!需要不断假设、验证、完善5. 推荐一本书 写作末尾 写作前面 在互联网行业,软件工程师面对的产品需求大都是以具象的现实世界事物概念来描述的,遵循的是人…

耐蚀合金连续油管制造工艺 学习记录

声明 本文是学习GB-T 42858-2023 耐蚀合金连续油管. 而整理的学习笔记,分享出来希望更多人受益,如果存在侵权请及时联系我们 5 制造工艺 5.1 通则 本文件所包含的合金应采用吹氧转炉冶炼或电炉冶炼或高炉冶炼(仅对马氏体或马氏体/铁素体不 锈钢)或真空感应熔化工艺&#xf…

WebGL正射投影

目录 可视范围(正射类型) 可视空间 正射投影的盒状可视空间的工作原理 盒状可视空间 定义盒状可视空间 Matrix4.setOrtho() 按键控制near、far ​编辑 示例效果 示例代码 代码详解 修改near和far值 通过右方向键增大n…