(2021|ICLR,扩散先验,VE-SDE,逼真和忠实的权衡)SDEdit:使用随机微分方程引导图像合成和编辑

news2024/11/16 12:38:26

SDEdit: Guided Image Synthesis and Editing with Stochastic Differential Equations

公和众和号:EDPJ(进 Q 交流群:922230617 或加 VX:CV_EDPJ 进 V 交流群)

目录

0. 摘要

2. 背景:使用随机微分方程进行图像合成

3. 使用 SDEdit 引导图像合成和编辑

5. 实验


0. 摘要

引导图像合成使普通用户能够以最小的努力创建和编辑逼真的照片。关键挑战在于平衡对用户输入(例如,手绘的彩色笔画)的忠实性和合成图像的逼真性。现有基于 GAN 的方法尝试使用条件GAN 或 GAN 反演来实现这种平衡,这些方法具有挑战性,通常需要为各个应用程序提供额外的训练数据或损失函数。为了解决这些问题,我们引入了一种新的图像合成和编辑方法,基于扩散模型生成先验,称为随机微分编辑(Stochastic Differential Editing,SDEdit),通过随机微分方程(stochastic differential equation,SDE)迭代去噪来合成逼真的图像。给定一个带有用户指引(以操纵 RGB 像素的形式)的输入图像,SDEdit 首先向输入添加噪声,然后通过 SDE 先验迭代去噪生成的图像,以增加其逼真性。SDEdit 不需要任务特定的训练或反演,并且可以自然地实现逼真性和忠实性之间的平衡。在人类感知研究中,SDEdit 在多项任务上(包括基于笔画的图像合成和编辑以及图像合成)上优于最先进的基于 GAN 的方法,逼真性得分提高了最多 98.09%,整体满意度得分提高了 91.72%

与条件 GAN 不同,SDEdit 不需要为每个新任务收集训练图像或用户注释;与 GAN 反演不同,SDEdit 不需要设计额外的训练或任务特定的损失函数。SDEdit 仅使用一个在未标记数据上训练的单个预训练 SDE 模型:在以 RGB 像素操纵的形式给定用户指引后,SDEdit 向指引添加高斯噪声,然后运行反向 SDE 来合成图像。

2. 背景:使用随机微分方程进行图像合成

随机微分方程(Stochastic differential equations,SDEs)通过将随机噪声注入动态来推广常微分方程(ordinary differential equations,ODEs)。SDE 的解是一个随时间变化的随机变量(即,随机过程),表示为 x(t) ∈ R^d,其中 t ∈ [0, 1],表示时间。在图像合成中(Song等,2021),我们假设 x(0) ~ p_0 = p_data 表示来自数据分布的样本,而正向 SDE 通过高斯扩散在 t ∈ (0, 1] 生成 x(t)。给定 x(0),x(t) 被分布为高斯分布:

其中 σ(t):[0,1] → [0,∞) 是描述噪声 z 幅度的标量函数,而 α(t):[0,1] → [0,1] 是表示数据 x(0) 幅度的标量函数。x(t) 的概率密度函数表示为 p_t​。

通常考虑两种类型的随机微分方程:方差爆炸型随机微分方程(Variance Exploding SDE,VE-SDE)中对于所有 t 有 α(t)=1,且 σ(1) 为一个大常数,使得 p_1​ 接近于 N(0, σ^2(1)·I);而方差保持型随机微分方程(Variance Preserving SDE,VP-SDE)满足对于所有 t 有 α^2(t) + σ^2(t) = 1,且当 t→1 时 α(t)→0,使得 p_1​ 等于 N(0,I)。VE 和 VP SDE 都会在 t 从 0 到 1 时将数据分布转换为随机高斯噪声。为简便起见,我们在正文的其余部分基于 VE-SDE 进行详细讨论,并在附录 C 中讨论 VP-SDE 过程。尽管在图像领域具有略微不同的形式并在性能上表现不同,但它们共享相同的数学直觉。

使用 VE-SDE 的图像合成。在这些定义下,我们可以将图像合成问题表述为逐渐从带噪声的观测 x(t) 中去除噪声,以恢复 x(0)。这可以通过一个反向 SDE(Anderson, 1982; Song et al., 2021)来实现,该 SDE 从 t=1 到 t=0,基于关于受噪声影响的得分函数 ∇_x log p_t​(x) 的知识。例如,VE-SDE 的采样过程由以下(反向)SDE 定义: 

其中 -w 是当时间从 t=1 向 t=0 时的维纳过程。如果我们设置初始条件 x(1)∼p_1​=N(0, σ^2(1)·I),那么 x(0) 的解将分布为 p_data​。在实践中,可以通过去噪得分匹配(Vincent, 2011)来学习受噪声影响的得分函数。将学到的得分模型表示为 s_θ​(x(t), t),时间 t 的学习目标为: 

其中 p_data​ 是数据分布,而 x(t) 的定义如方程 1 所示。整体训练目标是对每个个体学习目标 L_t​ 进行加权求和,各种加权程序已在 Ho 等人(2020);Song 等人(2020;2021)中进行了讨论。

通过参数化的得分模型 s_θ​(x(t), t) 来逼近 ∇_x log p_t​(x),SDE 解可以用 Euler-Maruyama 方法进行近似;从 t+Δt 到 t 的更新规则为:

其中 z∼N(0,I)。我们可以选择从 1 到 0 的时间区间的特定离散化,通过初始化 x(0)∼N(0, σ^2(1)·I) 并通过方程 4 进行迭代,生成图像 x(0)。

3. 使用 SDEdit 引导图像合成和编辑

在本节中,我们介绍 SDEdit 并描述如何使用在未标记的图像上预训练的 SDE 模型进行引导式图像合成和编辑。

Setup。用户以操纵 RGB 像素的形式提供一个全分辨率的图像 x^(g),我们称之为 “引导”。引导可能包含不同层次的细节;高级引导只包含粗略的彩色笔画,中级引导在真实图像上包含彩色笔画,低级引导包含目标图像上的图像块。我们在图 1 中说明了这些引导,非专业人员可以轻松提供。我们的目标是生成具有两个期望的全分辨率图像:

  • 逼真性。图像应该看起来逼真(例如,由人类或神经网络测量)。
  • 忠实性。图像应该与引导 x^(g) 相似(例如,由 L2 距离测量)。

我们注意到,逼真性和忠实性并不是正相关的,因为可以存在逼真但不忠实的图像(例如,一个随机的逼真图像),以及忠实但不逼真的图像(例如,引导本身)。与常规的逆问题不同,我们不假设对测量函数(即,从真实图像到用户创建的 RGB 像素引导的映射)的了解,因此解逆问题的技术(如基于得分模型的解法(Dhariwal & Nichol, 2021; Kawar等,2021)和需要配对数据集的方法(Isola等,2017; Zhu等,2017)在这里不适用。

程序。我们的方法 SDEdit 利用了一个事实,即反向 SDE 不仅可以从 t_0​ = 1 求解,还可以从任何中间时间 t_0​ ∈ (0,1) 求解——这是先前的基于 SDE 的生成模型未研究的方法。我们需要从我们的引导中找到一个适当的初始化,从这个初始化我们可以求解反向 SDE 以获得理想的、逼真的和忠实的图像。对于任何给定的引导 x^(g),我们定义 SDEdit 过程:从 N(x^(g), σ^2(t_0)·I) 中抽样 x^(g)(t_0​),然后通过迭代方程 4 生成 x(0)。

我们使用 SDEdit(x(g); t_0​, θ) 表示上述过程。实质上,SDEdit 选择一个特定的时间 t_0​,向引导 x^(g) 添加标准差为 σ^2(t_0) 的高斯噪声,然后解决相应的反向 SDE 在 t = 0 处生成合成的 x(0)。

除了 SDE 求解器采取的离散化步骤外,SDEdit 的关键超参数是 t_0​,即我们开始反向 SDE 图像合成过程的时间。接下来,我们描述一个逼真性和忠实性之间的权衡,使我们能够选择合理的 t_0​ 值。

逼真性和忠实性的权衡。我们注意到,对于经过适当训练的 SDE 模型,当选择不同的 t_0​ 值时,存在逼真性和忠实性之间的权衡。为了说明这一点,我们关注 LSUN 数据集,并使用高级笔画作为引导来进行基于笔画的图像生成。我们在附录 D.2 中提供实验细节。我们考虑相同的输入对于不同 t_0​ ∈ [0,1]  的选择。为了量化逼真性,我们采用神经方法来比较图像分布,例如 Kernel Inception Score(KID; Bi´nkowski 等,2018)。如果合成图像与真实图像之间的 KID 较低,则合成图像是逼真的。对于忠实性,我们测量合成图像与引导 x^(g) 之间的平方 L2 距离。从图 3 中,我们观察到随着 t_0​ 的增加,逼真性增加但忠实性减少。

逼真性和忠实性之间的权衡也可以从另一个角度解释。如果引导远离任何逼真的图像,那么我们必须容忍至少一定程度的偏离引导(非忠实性),以便生成逼真的图像。这在以下命题中进行了说明。

命题1。假设对于所有 x∈X 和 t∈[0,1],都有 ||s_θ​(x,t)||^2_2​ ≤ C。那么对于所有 δ ∈ (0,1),公式 5 成立的概率至少为 1−δ,

其中 d 是 x^(g) 的维度数。

我们在附录 A 中提供证明。从高层次上看,引导和合成图像之间的差异可以分解为得分和随机高斯噪声的输出;随着 t_0​ 的增加,两者都会增加,因此差异变得更大。上述命题表明,为了使图像具有高概率的逼真性,我们必须有足够大的 t_0​。另一方面,如果 t_0​ 太大,那么对引导的忠实性将恶化,SDEdit 将产生随机逼真的图像(极端情况是无条件的图像合成)。

选择 t_0​。我们注意到,引导的质量可能会影响合成图像的整体质量。对于合理的引导,我们发现  t_0​ ∈ [0.3,0.6] 效果良好。然而,如果引导是一个只有白色像素的图像,那么即使是来自模型分布的最接近的 “逼真” 样本也可能相当远,我们必须通过选择较大的 t_0​ 来在逼真性和忠实性之间进行权衡。在交互式设置中(用户绘制基于草图的引导),我们可以初始化 t_0​∈[0.3,0.6],合成一个候选样本,然后询问用户样本是否应更忠实或更逼真;从用户的回答中,我们可以通过二分搜索获得一个合理的 t_0​。在大规模的非交互式设置中(我们给定一组生成的引导),我们可以在随机选择的图像上执行类似的二分搜索,获得 t_0​ 并随后在同一任务中的所有引导中将 t_0​ 固定。尽管不同的引导可能潜在地具有不同的最优 t_0​,但我们经验上观察到在相同任务中,共享的 t_0 对​所有合理引导的效果良好。

详细算法和扩展。我们在算法 1 中呈现了 VE-SDE 的通用算法。由于空间限制,我们在附录 C 中描述了 VP-SDE 的详细算法。实质上,该算法是用于解决 SDEdit(x(g); t_0, θ) 的 Euler-Maruyama 方法。对于我们希望使合成图像的某些部分与引导相同的情况,我们还可以引入一个额外的通道,用于掩蔽我们不希望编辑的图像部分。这是对主文中提到的 SDEdit 过程的轻微修改,我们在附录 C.2 中详细讨论了这些细节。

5. 实验

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

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

相关文章

【HarmonyOS】体验鸿蒙电商平台的未来之旅!

从今天开始,博主将开设一门新的专栏用来讲解市面上比较热门的技术 “鸿蒙开发”,对于刚接触这项技术的小伙伴在学习鸿蒙开发之前,有必要先了解一下鸿蒙,从你的角度来讲,你认为什么是鸿蒙呢?它出现的意义又是…

点燃航天热情,莞港澳青少年航天研学冬令营收获满满

为进一步促进港澳青少年深度了解祖国的最新发展,通过亲身体验增加对祖国的认识,增强对祖国的向心力。“筑梦航天,行进湾区”莞港澳青少年交流实践活动收官之作“航天研学冬令营”于1月20日在东莞成功举办。来自香港、澳门、广州、深圳、东莞各…

AI 欺诈事件频出,如何重塑身份认证的安全性?

据报告表示,生成式人工智能每年可为世界经济注入相当于 4.4 万亿美元的资金。预计到 2030 年,人工智能对全球财政的潜在贡献将达到 15.7 万亿美元。人们惊叹于 AI 强大工作效率,期待能帮忙节省不必要的劳动力,但事实上 AI 出现之后…

216. 组合总和 III - 力扣(LeetCode)

题目描述 找出所有相加之和为 n 的 k 个数的组合,且满足下列条件: 只使用数字1到9每个数字 最多使用一次 返回 所有可能的有效组合的列表 。该列表不能包含相同的组合两次,组合可以以任何顺序返回。 输入示例 k 3, n 7输出示例 [[1,2,…

Allegro如何导入芯片的Pin Delay?

Allegro在做等长时,需要导入芯片的Pin Delay才能做真正的等长。因为有些芯片内部的引脚本身就是不等长的,例如海思的部分芯片。 那么如何导入芯片的Pin Delay呢? 1、打开约束管理器,点击Properties(属性)→Component(器件)→Pin Properties→General。 在右栏找到芯片U1,…

【Linux】第三十二站:命名管道

文章目录 一、命名管道介绍二、编码1.mkfifo2.unlink3.一个简单的例子4.修改 一、命名管道介绍 管道应用的一个限制就是只能在具有共同祖先(具有亲缘关系)的进程间通信。 如果我们想在不相关的进程之间交换数据,可以使用FIFO文件来做这项工作…

opencv009 滤波器01(卷积)

图像卷积操作(convolution),或称为核操作(kernel),是进行图像处理的一种常用手段, 图像卷积操作的目的是利用像素点和其邻域像素之前的空间关系,通过加权求和的操作,实现…

【服务器】Xshell与Xftp软件的使用指南

目录 【Xshell软件】 1.1 Xshell软件的功能 1.2 Xshell软件的使用 【Xftp软件】 2.1 Xftp软件的功能 2.2 Xftp软件的使用 可替代产品【FinalShell】 3.1 FinalShell软件的使用 3.2 FinalShell连接服务器失败解决方法 可替代产品【FileZilla】

VSCode无法下载插件,提示 Error while fetching extensions : XHR failed

解决方案: 打开vscode,依次点击File->Preferences->settings,中文就是文件->首选项->设置,打开如下图: 我们去搜索:Proxy , 然后回车 最重要的一步:将Http Prox…

关于 open ai,你了解多少?

OpenAI 的历史 第一阶段:2015-2018 年 2015 年,埃隆马斯克、山姆阿尔特曼、彼得蒂尔和杰西卡利文斯顿联合创立了 OpenAI。OpenAI 的目标是开发安全、有益的 AGI,并确保其造福全人类。在这一阶段,OpenAI 主要专注于基础研究&…

微信公众号怎么申请超过2个

一般可以申请多少个公众号?目前公众号申请数量的规定是从2018年底开始实施的,至今没有变化。规定如下:1、个人可以申请1个个人主体的公众号;2、企业(有限公司)可以申请2个公众号;3、个体户可以申…

中仕教育:2024年国考面试题型有哪些?

国考面试是选拔公务员的重要环节,通常涉及以下几个方面: 1. 自我介绍:考官通常会要求考生做一个简短的自我介绍。内容可以包括自己的基本情况、学历、工作经历等。 2. 专业知识:根据应聘者所应聘的职位和部门的不同,…

猛玛LARK M1无线麦克风采用 思远半导体 其实就是蓝牙话筒

自上世纪无线电技术开始发展起来,到了几十年后的今天,无线通讯技术已经成熟,开始追求更好的音质以及用户使用体验,优秀的产品也如雨后春笋般的出现,技术革新,极致音质,竞争也越来越激烈。这时候…

VC++中使用OpenCV进行人脸检测

VC中使用OpenCV进行人脸检测 对于上面的图像,如何使用OpenCV进行人脸检测呢? 使用OpenCV进行人脸检测十分简单,OpenCV官网给了一个Python人脸检测的示例程序, objectDetection.py代码如下: from __future__ import p…

【架构师视角系列】Apollo配置中心之Client端(二)

原创文章,转载请标注。https://blog.csdn.net/leeboyce/article/details/135733075 文章目录 声明配置中心系列文章一、客户端架构1、Config Service职责(1)配置管理(2)配置发布(3)配置读取 2、…

【Linux】Linux开发工具 - vim的基本操作

IDE例子 Linux编辑器-vim使用 vi/vim的区别简单点来说,它们都是多模式编辑器,不同的是vim是vi的升级版本,它不仅兼容vi的所有指令,而且还有一些新的特性在里面。例如语法加亮,可视化操作不仅可以在终端运行&#xff…

暴力破解常见的服务器

目录 使用 pydictor 生成自己的字典工具liunx下载使用常用的参数说明插件型字典 (可自己根据 API 文档开发) 使用 hydra 工具在线破解系统用户密码使用 hydra 破解 windows 7 远程桌面密码使用 hydra 工具破解 ssh 服务 root 用户密码 使用 Medusa 工具在线破解medusa参数说明M…

公网环境调试本地配置的Java支付宝沙箱环境模拟支付场景

文章目录 前言1. 下载当面付demo2. 修改配置文件3. 打包成web服务4. 局域网测试5. 内网穿透6. 测试公网访问7. 配置二级子域名8. 测试使用固定二级子域名访问 前言 在沙箱环境调试支付SDK的时候,往往沙箱环境部署在本地,局限性大,在沙箱环境…

JVM知识总结

1.概述 JVM指的是Java虚拟机,本质上是一个运行在计算机上的程序,他的职责是运行Java字节码文件,作用是为了支持跨平台特性。 功能: 装载字节码,解释/编译为机器码 管理数据存储和垃圾回收 优化热点代码提升效率 …

AI技术图像编辑 Luminar Neo

Luminar Neo是一款先进的AI照片编辑软件,旨在简化和增强照片编辑过程。它适用于macOS和Windows,提供独立的应用程序以及用于集成到现有工作流程的插件。Luminar Neo的主要特点包括AI天空替换、Accent AI、氛围AI以及20多种独特的照片效果。无论是风景摄影…