[CVPR 2023] Imagic:使用扩散模型进行基于文本的真实图像编辑

news2025/1/14 1:02:21

[CVPR 2023] Imagic:使用扩散模型进行基于文本的真实图像编辑

Fig 1. Imagic–编辑单个真实图像。我们的方法可以对单个真实输入图像执行各种基于文本的语义编辑,包括高度复杂的非刚性更改,如姿势更改和编辑多个对象。在这里,我们展示了1024对输入(真实)图像,以及具有各自目标文本的编辑输出。
Paper Title: Imagic: Text-Based Real Image Editing with Diffusion Models
The first author performed this work as an intern at Google Research.
Project page: https://imagic-editing.github.io/.

原文链接: Imagic:使用扩散模型进行基于文本的真实图像编辑(by 小样本视觉与智能前沿)

目录

文章目录

  • [CVPR 2023] Imagic:使用扩散模型进行基于文本的真实图像编辑
    • 01 现有工作的不足?
    • 02 文章解决了什么问题?
    • 03 关键的解决方案是什么?
    • 04 主要的贡献是什么?
    • 05 有哪些相关的工作?
    • 06 方法具体是如何实现的?
      • 文本嵌入优化
      • 模型fine-tuning
      • 文本嵌入插值
      • 实现细节
    • 07 实验结果和对比效果如何?
      • 定性评估
      • 对比
      • TEdBench和用户研究
    • 08 消融研究告诉了我们什么?
      • 微调和优化
      • 插值强度
    • 09 这个工作还是可以如何优化?
    • 10 结论

01 现有工作的不足?

目前,大多数方法仅限于以下其中一种:特定的编辑类型(例如,对象覆盖、样式转换)、合成生成的图像或需要一个公共对象的多个输入图像。

02 文章解决了什么问题?

本文首次展示了对单个真实图像应用复杂(例如,非刚性)基于文本的语义编辑的能力。例如,我们可以改变图像中一个或多个对象的姿势和组成,同时保留其原始特征。

03 关键的解决方案是什么?

利用预先训练的文本到图像扩散模型来完成此任务。它生成与输入图像和目标文本对齐的文本嵌入,同时微调扩散模型以捕获图像特定的外观。

04 主要的贡献是什么?

  1. 我们提出Imagic,第一种基于文本的语义图像编辑技术,允许在单个真实输入图像上进行复杂的非刚性编辑,同时保留其整体结构和组成。
  2. 我们展示了两个文本嵌入序列之间语义上有意义的线性插值,揭示了文本到图像扩散模型的强大组合能力。
  3. 我们引入了TEdBench, 一个新颖而具有挑战性的复杂图像编辑基准,它可以比较不同的基于文本的图像编辑方法。

05 有哪些相关的工作?

  • image manipulations [3,19,36,43,56,57]
  • 扩散模型被用于类似的图像处理任务:SDEdit [38] ,DDIB [62],DiffusionCLIP [33],DDIM inversion [59],Liu et al. [37],Hertz et al. [20],Textual Inversion [17] and DreamBooth [51]

06 方法具体是如何实现的?

Fig 3. Imagic的原理描述。给定真实图像和目标文本提示:(a)对目标文本进行编码,得到初始文本嵌入etgt,然后对其进行优化重构输入图像,得到eopt;(B)然后对生成模型进行微调,以在固定eopt的同时提高对输入图像的保真度;(C)最后,我们用etgt插值eopt,生成最终的编辑结果。

如图 3 所示,我们的方法由 3 个阶段组成:

  1. 我们优化文本嵌入以找到与目标文本嵌入附近给定图像最匹配的一个;
  2. 我们微调扩散模型以更好地匹配给定图像;
  3. 我们在优化的嵌入和目标文本嵌入之间进行线性插值,以找到实现输入图像和目标文本对齐的保真度的点。

文本嵌入优化

目标文本首先通过文本编码器 [46],输出其对应的文本嵌入 e t g t e_{tgt} etgt, 然后我们冻结生成扩散模型 f θ f_{\theta} fθ的参数,并使如下去噪扩散目标 [22] 优化目标文本嵌入 e t g t e_{tgt} etgt

这导致文本嵌入尽可能地匹配我们的输入图像。
经过较少的步骤运行此过程,以保持接近初始目标文本嵌入,获得 e o p t e_{opt} eopt

模型fine-tuning

上述获得的优化嵌入 e o p t e_{opt} eopt在通过生成扩散过程时不一定会生成输入图像 x x x,因为我们的优化仅运行了少量步骤。
我们通过使用等式 2 中提出的相同损失函数优化模型参数 θ 来缩小这一差距,同时冻结优化的嵌入。

与此同时,我们对底层生成方法中存在的任何辅助扩散模型进行微调,例如超分辨率模型。我们以相同的重建损失对它们进行微调,但以 e t g t e_{tgt} etgt为条件,因为它们将对编辑过的图像进行操作。这些辅助模型的优化确保了基本分辨率中不存在的 x x x的高频细节的保留。

文本嵌入插值

给定超参数: η ∈ [ 0 , 1 ] \eta \in [0,1] η[0,1], 可获得所需编辑图像的嵌入:

实现细节

我们使用两种不同的最先进的文本到图像生成扩散模型来证明我们的框架是通用的,可以与不同的生成模型相结合:Imagen[53]和Stable diffusion[50]。

07 实验结果和对比效果如何?

定性评估

Imagic能够对一般输入图像和文本应用各种编辑类别,如图1和补充材料所示。我们在图2中对相同的图像使用不同的文本提示进行实验,显示了Imagic的多功能性。

Fig 2. 不同的目标文本应用于同一图像。imagic 根据输入文本对同一图像进行不同的编辑。

由于我们使用的底层生成扩散模型是概率的,因此我们的方法可以为单个图像-文本对生成不同的结果。在图4中,我们使用不同的随机种子显示了同一编辑的多个选项,对每个种子的η值进行了轻微调整。这种随机性允许用户在这些不同的选项中进行选择,因为自然语言文本提示通常是模糊和不精确的。

Fig 4. 多个编辑选项。Imagic利用概率模型,使其能够生成具有不同随机种子的多个选项。

在图5(以及补充材料)中,我们展示了imagic在保留图像特定外观的同时,也使用了Stable Diffusion成功地执行了复杂的非刚性编辑。此外,随着η的变化,Imagic(使用稳定扩散)表现出平滑的语义插值特性。我们假设这种平滑特性是在语义潜在空间而不是在图像像素空间中发生的扩散过程的副产品。

Fig 5. 平滑插值。我们可以在优化的文本嵌入和目标文本嵌入之间平滑地进行插值,从而随着η的增加,输入图像逐渐向所需的文本编辑(参见补充材料中的动画gif)。

对比

图6显示了不同方法的编辑结果。对于SDEdit和Imagic,我们使用不同的随机种子对8张图像进行采样,并显示与目标文本和输入图像最佳对齐的结果。可以观察到,我们的方法在适当执行所需编辑的同时保持了对输入图像的高保真度。当任务是复杂的非刚性编辑时,如让狗坐,我们的方法明显优于以前的技术。Imagic构成了这种复杂的基于文本的编辑应用于单个真实世界图像的第一个演示。

Fig 6. 方法比较。我们将SDEdit[38]、DDIB[62]和Text2LIVE[8]与我们的方法进行比较。Imagic成功地应用了所需的编辑,同时很好地保留了原始图像细节。

TEdBench和用户研究

基于文本的图像编辑方法是一个相对较新的发展,而image是第一个应用复杂的非刚性编辑的方法。因此,没有标准的基准来评估非刚性的基于文本的图像编辑。我们介绍了tedbench(文本编辑基准),这是一个由100对输入图像和目标文本组成的新颖集合,描述了所需的复杂非刚性编辑。我们希望未来的研究将受益于TEdBench作为这一任务的标准化评估集。

Fig 8. 用户研究结果。Imagic相对于SDEdit[8]、DDIB[62]和Text2LIVE[8]的图像编辑质量偏好率(95%置信区间)。

我们通过在TEdBench上进行广泛的人类感知评估研究,定量评估Imagic的性能。
向参与者展示输入图像和目标文本,并要求他们使用双选项强制选择(2AFC)的标准实践从两个选项中选择更好的编辑结果[8,35,42]。

我们总共收集了9213个答案,其结果总结在图8中。可以看到,评估者对我们的方法表现出强烈的偏好,在所有考虑的基线中,偏好率超过70%。

08 消融研究告诉了我们什么?

微调和优化

我们使用相同的优化嵌入和随机种子,并对图7中的结果进行定性评价。

Fig 7. 嵌入插值。使用预训练(上)和微调(下)模型,以相同的种子改变η。

在没有微调的情况下,该方案不能完全重建η=0时的原始图像,并且随着η值的增加也不能保留图像的细节。相比之下,微调从输入图像中施加的细节不仅仅是优化的嵌入,允许我们的方案在η的中间值中保留这些细节,从而实现语义上有意义的线性插值。因此,我们得出结论,模型微调对我们的方法的成功至关重要。

我们的研究结果表明,用较少的步骤优化文本嵌入限制了我们的编辑能力,而优化超过100个步骤几乎没有增加价值。

插值强度

我们应用我们的编辑方案与不同的η值,并计算输出的CLIP分数[21,45]w.r.t.目标文本,和他们的LPIPS分数[68]w.r.t.输入图像减去1。更高的CLIP分数表明输出与目标文本的一致性更好,更高的1-LPIPS表明输入图像的保真度更高。

我们对150个图像-文本输入重复此过程,并在图9中显示平均结果。我们观察到,当η值小于0.4时,输出与输入图像几乎相同。

Fig 9. Editability-fidelity权衡。CLIP分数(目标文本对齐)和1-LPIPS(输入图像保真度)作为η的函数,平均超过150个输入。编辑过的图像往往在高亮区域与输入图像和文本相都匹配。
当η为[0.6,0.8]时,图像开始变化(根据LPIPS),并且与文本更好地对齐(随着CLIP分数的上升)。因此,我们认为这个区域最有可能获得令人满意的结果。

09 这个工作还是可以如何优化?

  • 某些情况下,与目标文本不对齐。
  • 某些情况下,编辑应用得很好,但它会影响外部图像细节,如变焦或相机角度

我们在图10的第一行和第二行中分别展示了这两个失败案例的示例。

Fig 10. 失败案例。与目标文字不一致(上),或相机视角变化(下)。

这些限制可以通过优化文本嵌入或扩散模型来缓解,或者通过结合类似于Hertz等人的交叉注意控制来缓解。我们把这些选项留给未来的工作。

此外,由于我们的方法依赖于预训练的文本到图像扩散模型,因此它继承了模型的生成限制和偏差。因此,当所需的编辑涉及到生成底层模型的失败案例时,就会产生不需要的工件。例如,Imagen在人脸上的生成性能就不达标。

10 结论

文章提出了一种新的图像编辑方法Imagic。

  • 方法接受单个图像和描述所需编辑的简单文本提示,目的是在应用此编辑的同时保留图像中的最大数量的细节。
  • 为此,利用预训练的文本到图像扩散模型,并使用它来找到代表输入图像的文本嵌入。
  • 然后对扩散模型进行微调以更好地拟合图像,
  • 最后在代表图像的嵌入和目标文本嵌入之间进行线性插值,得到它们在语义上有意义的混合。这使得我们的方案能够使用插值嵌入提供编辑过的图像。

与其他编辑方法相反,我们的方法可以产生复杂的非刚性编辑,可以根据要求改变图像内对象的姿势,几何形状和/或组成,以及更简单的编辑,如风格或颜色。它只需要用户提供一个图像和一个简单的目标文本提示,而不需要额外的辅助输入,如图像遮罩。

我们未来的工作可能集中在进一步提高该方法对输入图像的保真度和身份保持,以及对随机种子和插值参数η的敏感性。另一个有趣的研究方向是为每个请求的编辑选择η的自动化方法的发展。

原文链接: Imagic:使用扩散模型进行基于文本的真实图像编辑(by 小样本视觉与智能前沿)

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

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

相关文章

登出成功后token过期方案

目录 需求分析解决方案实现步骤登出成功相关逻辑改造携带token请求相关逻辑需求分析 登录成功后,系统会返回一个token给客户端使用,token可以用来获取登录后的一些资源或者进行一些操作。当用户在系统中注销或者退出登录时,需要对token进行过期处理,以保证系统的安全性和数…

校园网WiFi IPv6免流上网

ipv6的介绍 IPv6是国际协议的最新版本,用它来取代IPv4主要是为了解决IPv4网络地址枯竭的问题,也在其他很多方面对IPv4有所改进,比如网络的速度和安全性。 IPv4是一个32位的地址,随着用户的增加在2011年国家报道说IPv4的网络地址即…

基于前后端交互的论坛系统(课设高分必过)

目录 前言概述 一.前期准备 项目演示 用户注册 用户登录 主页面 发帖页面 个人信息及修改 用户主帖 站内信 需求分析 技术选型 二.建表分析 三.环境搭建 技术环境的检查与安装 检查JDK ​编辑 检查数据库 检查Maven 检查git ​编辑 项目启动的通用配置 新…

【系统架构】第五章-软件工程基础知识(需求工程和系统分析与设计)

软考-系统架构设计师知识点提炼-系统架构设计师教程(第2版) 需求工程 软件需求3个层次: 业务需求:反映了组织机构或客户对系统、产品高层次的目标要求用户需求:描述了用户使用产品必须要完成的任务,是用户…

rust abc(3): 布尔和字符类型的使用并与C/C++对比

文章目录 1. 目的2. 布尔类型2.1 只能赋值为小写的 true, false2.2 不能把数字赋值给bool类型变量2.3 正确写法汇总 3. 字符类型3.1 UTF-8 编码3.2 字符的意思是单个字符,多个字符不能用单引号 4. 总结 1. 目的 继续熟悉 rust 语言的基本数据类型, 感受 rust 编译期…

Redis【实战篇】---- 短信登录

Redis【实战篇】---- 短信登录 1. 导入黑马点评项目1. 导入SQL2. 有关当前模型3. 导入后端项目4. 导入前端项目5. 运行前端项目 2. 基于Session实现登录流程3. 实现发送短信验证码功能4. 实现登录拦截功能5. 隐藏用户敏感信息6. session共享问题7. Redis代替session业务1. 设计…

Spark10-11

10. 广播变量 10.1 广播变量的使用场景 在很多计算场景,经常会遇到两个RDD进行JOIN,如果一个RDD对应的数据比较大,一个RDD对应的数据比较小,如果使用JOIN,那么会shuffle,导致效率变低。广播变量就是将相对…

【C/C++】使用类和对象 练习EasyX图形库

创作不易&#xff0c;本篇文章如果帮助到了你&#xff0c;还请点赞 关注支持一下♡>&#x16966;<)!! 主页专栏有更多知识&#xff0c;如有疑问欢迎大家指正讨论&#xff0c;共同进步&#xff01; &#x1f525;c系列专栏&#xff1a;C/C零基础到精通 &#x1f525; 给大…

【关联式容器】之map和set

【关联式容器】之map和set 容器类型树形结构的关联式容器mapset&#xff0c;multiset&#xff0c;multimap的区别与联系 容器类型 在STL中&#xff0c;我们接触过许多容器&#xff0c;例如&#xff1a;vector&#xff0c;list&#xff0c;stack&#xff0c;queue&#xff0c;m…

conll2003数据集下载与预处理

CoNLL-2003 数据集包括 1,393 篇英文新闻文章和 909 篇德文新闻文章。我们将查看英文数据。 1. 下载CoNLL-2003数据集 https://data.deepai.org/conll2003.zip 下载后解压你会发现有如下文件。 打开train.txt文件&#xff0c; 你会发现如下内容。 CoNLL-2003 数据文件包含由单…

逍遥自在学C语言 | 指针陷阱-空指针与野指针

前言 在C语言中&#xff0c;指针是一种非常强大和灵活的工具&#xff0c;但同时也容易引发一些问题&#xff0c;其中包括空指针和野指针。 本文将带你了解这两个概念的含义、产生原因以及如何避免它们所导致的问题。 一、人物简介 第一位闪亮登场&#xff0c;有请今后会一直…

【玩转Docker小鲸鱼叭】理解DockerFile如此简单

DockerFile构建过程 DockerFile 是Docker的一个配置文件&#xff0c;本质上来说它只是一个文本文件&#xff0c;它是用来构建Docker镜像的。DockerFile配置文件中包含了一系列的指令和配置信息&#xff0c;用于描述如何构建镜像以及如何运行容器。通过编写 Dockerfile&#xf…

RISC-V处理器的设计与实现(二)—— CPU框架设计

前面我们选好了要实现的指令集&#xff0c;并且了解了每个指令的功能&#xff08;传送门&#xff1a;RISC-V处理器的设计与实现&#xff08;一&#xff09;—— 基本指令集_Patarw_Li的博客-CSDN博客&#xff09;&#xff0c;接下来我们就可以开始设计cpu了。当然我们不可能一上…

ChatGPT更新的使用指南,与其他类似的人工智能的软件和服务-更新版(2023-6-25)

文章目录 一、什么是ChatGPT二、如何使用三、如何使用ChatGPT帮助我们的工作和生活四、高阶用法1、角色扮演2、英语口语老师3、在搜索引擎中集成ChatGPT 五、常见问题五、其他类似的软件和服务 如果你还不知道如何注册和使用&#xff0c;可看末尾&#xff0c;手把手教你。 一、…

Linux线程同步

同步的几种方式&#xff1a;信号量&#xff0c;互斥锁&#xff0c;条件变量&#xff0c;读写锁 同步&#xff1a;对程序的执行过程进行控制&#xff0c;保证对临界资源的访问同一时刻只能有一个进程或线程访问。 2.1信号量 存在P操作&#xff1a;获取资源&#xff0c;信号量…

58.最后一个单词的长度

LeetCode-58.最后一个单词的长度 1、题目描述2、解题思路3、代码实现4、解题记录 1、题目描述 题目描述&#xff1a; 给你一个字符串 s&#xff0c;由若干单词组成&#xff0c;单词前后用一些空格字符隔开。返回字符串中 最后一个 单词的长度。 单词 是指仅由字母组成、不包含任…

通讯录获取APP程序分析

前言 APP非法获取用户通讯录等隐私信息 我用技术分析APP是如何获取信息的 如果你不幸中招了&#xff0c;可以参考下方链接(有偿) 我的方法是替换掉通讯录数据&#xff0c;替换不成功包退&#xff01; 每日16:00-06:00在线&#xff0c;5分钟受理&#xff0c;2~3小时完成 点下面…

下载安装mysql与设置密码详细步骤(压缩包版本)

目录 一、前言 二、操作步骤 &#xff08;一&#xff09;下载与解压缩 &#xff08;二&#xff09;配置环境变量 &#xff08;三&#xff09;安装MySQL服务 &#xff08;四&#xff09;设置ini文件和data文件 &#xff08;五&#xff09;启动MySQL服务和设置密码 三、…

【C++ 程序设计】第 5 章:类的继承与派生

目录 一、类的继承与类的派生 &#xff08;1&#xff09;继承的概念 &#xff08;2&#xff09;派生类的定义与大小 ① 派生类的定义 ② 派生类的大小 &#xff08;3&#xff09;继承关系的特殊性 &#xff08;4&#xff09;有继承关系的类之间的访问 &#xff08;5&am…

多线程单例模式

1、单例模式 顾名思义&#xff0c;单例模式能保证某个类在程序中只存在唯一一份示例&#xff0c;而不会创建出多个实例。就像java的JDBC编程只需要创建一个单例类DataSourece从这个DataSorce中获取数据库连接。没必要创建多个对象。 单例模式具体实现方式分为“饿汉”和“懒汉…