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

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.mzph.cn/news/639465.shtml

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

相关文章

vue3-生命周期

生命周期 生命周期 vue 组件实例都有自己的一个生命周期 从创建->初始化数据->编译模版->挂载实例到 DOM->数据变更后更新 DOM ->卸载组件 生命周期简单说就是 vue 实例从创建到销毁的过程 生命周期钩子 在各个周期运行时,会执行钩子函数&…

文件改名大师,随机大小写字母混合,让你的文件名独一无二!

文件重命名,单调又乏味?现在,有了我们的文件改名大师,让你的文件名充满惊喜与创意!厌倦了那些毫无新意的文件名?我们为你提供了一种全新的方式,将文件名随机改名为大小写字母混合,让…

C语言实战系列一:经典贪食蛇

C语言学习必须实战&#xff0c;并且学完语法后就必须立即用实战来巩固。一般需要10来个比较复杂的程序才能掌握C语言。今天就教大家第一个小程序&#xff0c;贪食蛇。 首先上代码 一、代码 #include <stdio.h> #include <stdlib.h> #include <curses.h> #…

【版面稀缺】社科类3区SCI,稳定检索78年!着急毕业可投!

关注公主号【SciencePub学术】&#xff0c;发现期刊更多精彩~ 本期&#xff0c;小编给大家推荐的是一本SAGE旗下3区综合性期刊&#xff0c;均2-3个月左右录用&#xff01; 01 期刊基本信息 【期刊简介】IF&#xff1a;2.0-2.5&#xff0c;JCR3区&#xff0c;中科院4区&#x…

《WebKit 技术内幕》之八(2):硬件加速机制

2 Chromium的硬件加速机制 2.1 GraphicsLayer的支持 GraphicsLayer对象是对一个渲染后端存储中某一层的抽象&#xff0c;同众多其他WebKit所定义的抽象类一样&#xff0c;在WebKit移植中&#xff0c;它还需要具体的实现类来支持该类所要提供的功能。为了完成这一功能&#x…

【活动回顾】ABeam德硕| 艾宾信息技术开发(上海)宣讲会及企业座谈—山西大学专场

近日&#xff0c;ABeam大中华区董事长兼总经理中野洋辅先生带领艾宾上海招聘团队一行来到山西大学举行了校园招聘宣讲会&#xff0c;随后与院领导就校企合作事宜进行了深入的座谈交流。 宣讲会上&#xff0c;中野先生介绍了ABeam Consulting总社及ABeam中国的发展历程、业务版…

PIG框架学习3——Redisson 实现业务接口幂等

零、前言 ​ 业务接口幂等问题是在开发中遇到的&#xff0c;如果对业务接口代码不进行幂等控制&#xff0c;并且在前端没有对请求进行限制的情况下&#xff0c;可能会出现多次对接口调用&#xff0c;导致错误异常的发生。就上述情况&#xff0c;对PIGX自带的业务接口幂等实现进…

纯CSS3的单选框、复选框、开关按钮UI库-自由分享jQuery、html5、css3的插件库

纯CSS3的单选框、复选框、开关按钮UI库-自由分享jQuery、html5、css3的插件库-遇见你与你分享

远程登录Linux服务器:命令+工具版

通常在工作过程中&#xff0c;公司中使用的真实服务器或者是云服务器&#xff0c;都不允许除运维人员之外的员工直接接触&#xff0c;因此就需要通过远程登录的方式来操作。 所以&#xff0c;远程登录工具就是必不可缺的&#xff0c;目前&#xff0c;比较主流的有 Xshell,SSHS…

【算法与数据结构】518、LeetCode零钱兑换 II

文章目录 一、题目二、解法三、完整代码 所有的LeetCode题解索引&#xff0c;可以看这篇文章——【算法和数据结构】LeetCode题解。 一、题目 二、解法 思路分析&#xff1a;本题的硬币是无数的&#xff0c;因此本题可以抽象成一个完全背包问题。完全背包和01背包的不同之处在于…

JavaScript 学习笔记(WEB APIs Day3)

「写在前面」 本文为 b 站黑马程序员 pink 老师 JavaScript 教程的学习笔记。本着自己学习、分享他人的态度&#xff0c;分享学习笔记&#xff0c;希望能对大家有所帮助。推荐先按顺序阅读往期内容&#xff1a; 1. JavaScript 学习笔记&#xff08;Day1&#xff09; 2. JavaSc…

AI数据模型支撑下,鼎捷「预测透镜」如何助力汽配厂商浙江华工提质增效?

关于【浙江华工】 浙江华工汽车零部件有限公司&#xff08;以下简称“华工”&#xff09;成立于1987年&#xff0c;位于“中国汽摩配之都”浙江省瑞安塘下镇鲍七工业区&#xff0c;是一家集汽车发动机用冷却水泵和机油泵研发、制造、销售于一体的民营股份制企业。 近些年来&…

每日汇评:黄金的市场注意力转向央行和地缘政治

金价从2000美元附近的数周低点反弹&#xff1b; 到目前为止&#xff0c;黄金的进一步巩固当前价格是当前的主题&#xff1b; 地缘政治、宏观数据和央行是本周的主导市场情绪&#xff1b; 黄金价格设法恢复了平衡&#xff0c;扭转了本周开始时的负面走势&#xff0c;从关键争夺区…

恭迎佛陀与佛陀弟子舍利子的华琪舍利子塔位于泰国帕拉波柔玛塔寺

恭迎佛陀与佛陀弟子舍利子的华琪舍利子塔位于泰国帕拉波柔玛塔寺 &#xff08;华琪国际媒体中心01月21日讯&#xff09;马来西亚华琪舍利子博物馆与泰国甘烹碧帕拉波柔玛塔寺&#xff08;Wat Phra Borommathat&#xff09;于2023 年12月25日携手举办了恭迎76座佛陀与佛陀弟子舍…

【数据结构】 循环单链表的基本操作 (C语言版)

目录 一、循环单链表 1、循环单链表的定义&#xff1a; 2、循环单链表的优缺点&#xff1a; 二、循环单链表的基本操作算法&#xff08;C语言&#xff09; 1、宏定义 2、创建结构体 3、循环单链表的初始化 4、循环单链表的插入 5、求单链表长度 6、循环单链表的清空…

人工智能(AI)技术应用:解锁未来的无限可能

随着信息时代的来临&#xff0c;人工智能(AI)技术成为推动社会进步的重要力量。在医疗领域&#xff0c;人工智能技术已经开始发挥重要作用。通过大数据分析和机器学习&#xff0c;人工智能可以帮助医生更准确地诊断疾病、制定治疗方案&#xff0c;缩短治疗时间&#xff0c;提高…

Modbus协议学习第五篇之libmodbus库的编译

前言 本篇博客主要讲解在Windows下的libmodbus库的编译过程&#xff0c;供大家参考。 所需环境&#xff1a;Windows操作系统/ Visual Studio / Github 具体步骤 第一步&#xff1a;下载并解压libmodbus源码 首先我们进入libmodbus库的github地址&#xff1a;libmodbus&#x…

在Go中处理HTTP请求和响应

在Go语言中&#xff0c;处理HTTP请求和响应的关键在于对net/http包的理解和使用。这个包提供了强大的工具&#xff0c;使开发者能够轻松地构建Web应用程序。以下是一个简单的示例&#xff0c;展示了如何在Go中处理HTTP请求和响应。 首先&#xff0c;确保你已经安装了Go语言的开…

记一次NAS问题修复,挂载的硬盘名称发生变化导致文件上传失败,解决问题方案总结

我之前采用Cloudreve搭建了一个内网穿透的网盘管理&#xff0c;最近突发发现文件上传失败&#xff0c;且内容无法访问&#xff0c;这个问题纠结了我一个星期&#xff0c;最终发现是由于挂载的硬盘原来的目录是dve/sda1 不知道什么原因这个名称变成了sdc1 原因解释&#xff1a; …

图像分割实战-系列教程17:deeplabV3+ VOC分割实战5-------main.py

&#x1f341;&#x1f341;&#x1f341;图像分割实战-系列教程 总目录 有任何问题欢迎在下面留言 本篇文章的代码运行界面均在Pycharm中进行 本篇文章配套的代码资源已经上传 deeplab系列算法概述 deeplabV3 VOC分割实战1 deeplabV3 VOC分割实战2 deeplabV3 VOC分割实战3 dee…