(NIPS-2023)ProlificDreamer:通过变分分数蒸馏实现高保真、多样化的文本到 3D 生成

ProlificDreamer:通过变分分数蒸馏实现高保真、多样化的文本到 3D 生成

paper是清华大学发表在NIPS 2023的工作
Paper Title:ProlificDreamer: High-Fidelity and Diverse Text-to-3D Generation with Variational Score Distillation
Code:地址

Abstract

通过蒸馏预训练的大规模文本到图像扩散模型,分数蒸馏采样 (SDS) 在文本到 3D 生成中显示出巨大的前景,但它存在过度饱和、过度平滑和低多样性问题。在这项工作中,我们建议将 3D 参数建模为随机变量而不是像 SDS 中的常数,并提出变分分数蒸馏 (VSD),这是一个基于粒子的原则性变分框架,用于解释和解决文本到 3D 生成中的上述问题。我们表明 SDS 是 VSD 的一个特例,并且会导致具有较小和较大 CFG 权重的样本较差。相比之下,VSD 可以很好地与各种 CFG 权重配合使用,作为来自扩散模型的祖先采样,同时通过共同的 CFG 权重(即 7.5)提高了多样性和样本质量。我们进一步介绍了文本到 3D 设计空间中的各种改进,例如蒸馏时间表和密度初始化,它们与蒸馏算法正交,但尚未得到很好的探索。我们的整体方法称为 ProlificDreamer,可以生成高渲染分辨率(即 512 × 512)和高保真度的 NeRF,具有丰富的结构和复杂的效果(例如烟雾和水滴)。此外,从 NeRF 初始化后,由 VSD 微调的网格非常细致,具有照片级的逼真效果。

1 Introduction

3D 内容和技术使我们能够可视化、理解和与反映我们现实生活体验的复杂物体和环境进行交互。它们的关键作用涉及广泛的领域,包括建筑、动画、游戏以及快速发展的虚拟和增强现实领域。尽管应用广泛,但制作优质的 3D 内容通常仍然是一项艰巨的任务。即使是由专业设计师进行,也需要投入大量的时间和精力。这一挑战促使开发了文本到 3D 方法 19, 31, 34, 20, 4, 29, 55, 16。通过自动生成基于文本描述的 3D 内容,这些创新方法为简化 3D 内容创建过程提供了一种有希望的方法。此外,它们将使这个过程更容易实现,有可能促进上述领域的重大范式转变。

图 1:ProlificDreamer 从头开始生成的文本到 3D 样本。我们的基础模型是稳定扩散,我们不使用任何其他辅助模型或用户提供的形状指导(见表 1)。请参阅我们项目页面中的随附视频以获得更好的视觉质量。

扩散模型 46, 14, 49 显著推动了文本到图像的合成 36, 41, 38, 1,尤其是在使用大规模数据集 43 进行训练时。受这些发展的启发,DreamFusion 34 采用预先训练的大规模文本到图像扩散模型,从自然界的文本生成 3D 内容,从而无需任何 3D 数据。DreamFusion 引入了分数蒸馏采样 (SDS) 算法来优化单个 3D 表示,使得在给定文本的情况下,从任何视图渲染的图像都具有扩散模型评估的高似然性。尽管 SDS 得到广泛应用 20, 4, 29, 55,但实证观察 34 表明,SDS 经常存在过度饱和、过度平滑和低多样性问题,这些问题尚未得到彻底解释或充分解决。此外,文本转 3D 设计空间中的正交元素(例如渲染分辨率和蒸馏时间表)尚未得到充分探索,这表明还有很大的改进潜力。在本文中,我们对所有这些元素进行了系统研究,以获得精细的 3D 表示。

我们首先介绍变分分数蒸馏 (VSD),它将给定文本提示的相应 3D 场景视为随机变量,而不是像 SDS 34 中的单个点。VSD 优化 3D 场景的分布,使得从所有视图渲染的图像上引起的分布在 KL 散度方面尽可能接近由预训练的 2D 扩散模型定义的分布(参见第 3.1 节)。在这种变分公式下,VSD 自然地描述了多个 3D 场景可能与一个提示对齐的现象。为了有效地解决这个问题,VSD 采用基于粒子的变分推理 23, 3, 9,并维护一组 3D 参数作为粒子来表示 3D 分布。我们通过 Wasserstein 梯度流为粒子推导出一种新的基于梯度的更新规则(参见第 3.2 节),并保证当优化收敛时,粒子将是来自所需分布的样本(参见定理 2)。我们的更新需要估计扩散渲染图像上分布的得分函数,这可以通过预训练扩散模型的低秩自适应 (LoRA) 18, 40 高效实现。最终算法交替更新粒子和得分函数。

我们通过使用单点狄拉克分布作为变分分布(见第 3.3 节),证明了 SDS 是 VSD 的一个特例。这一见解解释了 SDS 生成的 3D 场景的多样性和保真度受限的原因。此外,即使使用单个粒子,VSD 也可以学习参数分数模型,从而可能提供比 SDS 更好的泛化能力。我们还通过使用隔离其他 3D 因素的身份渲染函数,在 2D 空间中对 SDS 和 VSD 进行了实证比较。与扩散模型中的祖先采样类似,VSD 能够使用正常的 CFG 权重(即 7.5)生成逼真的样本。相比之下,SDS 的结果较差,具有之前在文本转 3D 中观察到的相同问题,例如过度饱和和过度平滑 34

我们进一步系统地研究了与文本转 3D 算法正交的其他元素,并在第 4 节中展示了清晰的设计空间。具体来说,我们提出在训练期间使用 512 × 512 的高渲染分辨率,并采用退火蒸馏时间表来提高视觉质量。我们还提出了场景初始化,这对于复杂场景生成至关重要。第 5 节中的综合消融证明了所有上述元素的有效性,特别是对于 VSD。我们的整体方法可以生成高保真和多样化的 3D 结果。我们称之为 ProlificDreamer 。

如图 1 和第 5 节所示,ProlificDreamer 可以生成 512×512 渲染分辨率和高保真神经辐射场 (NeRF),具有丰富的结构和复杂的效果(例如烟雾和水滴)。此外,ProlificDreamer 首次可以根据文本提示成功构建 360◦ 视图中具有多个对象的复杂场景。此外,从生成的 NeRF 初始化后,ProlificDreamer 可以生成细致入微、照片般逼真的 3D 纹理网格。

2 Background

我们介绍了扩散模型、分数蒸馏采样和3D表示的基础知识。

扩散模型

扩散模型 46 , 14 , 49 46,14,49 46,14,49包括一个正向过程 { q t } t ∈ 0 , 1 \left\{q_t\right\}_{t \in0,1} {qt}t∈0,1,用于逐步向数据点 x 0 ∼ q 0 ( x 0 ) \boldsymbol{x}_0 \sim q_0\left(\boldsymbol{x}0\right) x0∼q0(x0)添加噪声,以及一个反向过程 { p t } t ∈ 0 , 1 \left\{p_t\right\}{t \in0,1} {pt}t∈0,1,用于去噪或生成数据。

正向过程

正向过程的定义为:
q t ( x t ∣ x 0 ) : = N ( α t x 0 , σ t 2 I ) , q_t\left(\boldsymbol{x}_t \mid \boldsymbol{x}_0\right):=\mathcal{N}\left(\alpha_t \boldsymbol{x}_0, \sigma_t^2 \boldsymbol{I}\right), qt(xt∣x0):=N(αtx0,σt2I),
q t ( x t ) : = ∫ q t ( x t ∣ x 0 ) q 0 ( x 0 ) d x 0 , q_t\left(\boldsymbol{x}_t\right):=\int q_t\left(\boldsymbol{x}_t \mid \boldsymbol{x}_0\right) q_0\left(\boldsymbol{x}_0\right) \mathrm{d} \boldsymbol{x}_0, qt(xt):=∫qt(xt∣x0)q0(x0)dx0,

其中, α t , σ t > 0 \alpha_t, \sigma_t>0 αt,σt>0 是超参数,满足 α 0 ≈ 1 , σ 0 ≈ 0 , α 1 ≈ 0 , σ 1 ≈ 1 \alpha_0 \approx 1, \sigma_0 \approx 0, \alpha_1 \approx 0, \sigma_1 \approx 1 α0≈1,σ0≈0,α1≈0,σ1≈1。

反向过程

反向过程通过去噪从 p 1 ( x 1 ) : = N ( 0 , I ) p_1\left(\boldsymbol{x}1\right):=\mathcal{N}(\mathbf{0}, \boldsymbol{I}) p1(x1):=N(0,I) 开始,使用一个参数化的噪声预测网络 ϵ ϕ ( x t , t ) \boldsymbol{\epsilon}\phi\left(\boldsymbol{x}t, t\right) ϵϕ(xt,t) 来预测添加到干净数据 x 0 \boldsymbol{x}0 x0 上的噪声。该网络通过最小化以下目标函数进行训练:
L Diff ( ϕ ) : = E x 0 ∼ q 0 ( x 0 ) , t ∼ U ( 0 , 1 ) , ϵ ∼ N ( 0 , I ) ω ( t ) ∥ ϵ ϕ ( α t x 0 + σ t ϵ ) − ϵ ∥ 2 2 , \mathcal{L}
{\text {Diff }}(\phi):=\mathbb{E}
{\boldsymbol{x}_0 \sim q_0\left(\boldsymbol{x}_0\right), t \sim \mathcal{U}(0,1), \boldsymbol{\epsilon} \sim \mathcal{N}(\mathbf{0}, \boldsymbol{I})}\left\\omega(t)\\left\\\|\\boldsymbol{\\epsilon}_\\phi\\left(\\alpha_t \\boldsymbol{x}_0+\\sigma_t \\boldsymbol{\\epsilon}\\right)-\\boldsymbol{\\epsilon}\\right\\\|_2\^2\\right, LDiff (ϕ):=Ex0∼q0(x0),t∼U(0,1),ϵ∼N(0,I)ω(t)∥ϵϕ(αtx0+σtϵ)−ϵ∥22,

其中, ω ( t ) \omega(t) ω(t) 是时间相关的加权函数。

采样

训练完成后,我们有 p t ≈ q t p_t \approx q_t pt≈qt,因此可以从 p 0 ≈ q 0 p_0 \approx q_0 p0≈q0 中生成样本。此外,噪声预测网络可以用于近似 q t q_t qt 和 p t p_t pt 的分数函数:
∇ x t log ⁡ q t ( x t ) ≈ ∇ x t log ⁡ p t ( x t ) ≈ − ϵ ϕ ( x t , t ) / σ t . \nabla_{\boldsymbol{x}_t} \log q_t\left(\boldsymbol{x}t\right) \approx \nabla{\boldsymbol{x}_t} \log p_t\left(\boldsymbol{x}t\right) \approx-\boldsymbol{\epsilon}\phi\left(\boldsymbol{x}_t, t\right) / \sigma_t. ∇xtlogqt(xt)≈∇xtlogpt(xt)≈−ϵϕ(xt,t)/σt.

扩散模型最成功的应用之一是文本到图像生成 41 , 36 , 38 41,36,38 41,36,38,其中噪声预测模型 ϵ ϕ ( x t , t , y ) \boldsymbol{\epsilon}_\phi\left(\boldsymbol{x}t, t, y\right) ϵϕ(xt,t,y) 以文本提示 y y y 为条件进行生成。在实际应用中,分类器自由指导(CFG 15)是一种关键技术,用于在样本的质量和多样性之间进行权衡。其通过以下公式对模型进行修正:
ϵ ^ ϕ ( x t , t , y ) : = ( 1 + s ) ϵ ϕ ( x t , t , y ) − s ϵ ϕ ( x t , t , ∅ ) , \hat{\boldsymbol{\epsilon}}
\phi\left(\boldsymbol{x}t, t, y\right):=(1+s) \boldsymbol{\epsilon}\phi\left(\boldsymbol{x}t, t, y\right)-s \boldsymbol{\epsilon}\phi\left(\boldsymbol{x}_t, t, \varnothing\right), ϵ^ϕ(xt,t,y):=(1+s)ϵϕ(xt,t,y)−sϵϕ(xt,t,∅),

其中, ∅ \varnothing ∅ 是一种特殊的"空"文本提示,代表无条件情况, s > 0 s>0 s>0 是指导系数。较大的指导系数通常会提高文本-图像对齐度,但会降低多样性。

使用分数蒸馏采样(SDS)进行文本到3D生成 34

SDS 是一种通过蒸馏预训练扩散模型进行优化的方法,也被称为分数雅可比链式法则(SJC)55。它在文本到3D生成 34 , 55 , 20 , 29 , 55 , 4 34,55,20,29,55,4 34,55,20,29,55,4 中广泛应用并展现了巨大潜力。

给定一个预训练的文本到图像扩散模型 p t ( x t ∣ y ) p_t\left(\boldsymbol{x}t \mid y\right) pt(xt∣y) 和其噪声预测网络 ϵ pretrain ( x t , t , y ) \boldsymbol{\epsilon}{\text {pretrain }}\left(\boldsymbol{x}_t, t, y\right) ϵpretrain (xt,t,y),SDS 优化一个单一的3D表示,其参数为 θ ∈ Θ \theta \in \Theta θ∈Θ,其中 Θ \Theta Θ 是以欧几里得度量定义的参数空间。

过程描述

假设有一个相机参数 c c c,其分布为 p ( c ) p(c) p(c),以及一个可微渲染映射 g ( ⋅ , c ) : Θ → R d \boldsymbol{g}(\cdot, c): \Theta \rightarrow \mathbb{R}^d g(⋅,c):Θ→Rd。令 y c y^c yc 为"视角相关提示" 34(即包含视角信息的文本提示), q t θ ( x t ∣ c ) q_t^\theta\left(\boldsymbol{x}_t \mid c\right) qtθ(xt∣c) 表示从渲染图像 g ( θ , c ) \boldsymbol{g}(\theta, c) g(θ,c) 的正向扩散过程在时间 t t t 时的分布。

SDS 通过以下优化目标优化参数 θ \theta θ:
min ⁡ θ ∈ Θ L S D S ( θ ) : = E t , c ( σ t / α t ) ω ( t ) D K L ( q t θ ( x t ∣ c ) ∥ p t ( x t ∣ y c ) ) , \min {\theta \in \Theta} \mathcal{L}{\mathrm{SDS}}(\theta):=\mathbb{E}_{t, c}\left\\left(\\sigma_t / \\alpha_t\\right) \\omega(t) D_{\\mathrm{KL}}\\left(q_t\^\\theta\\left(\\boldsymbol{x}_t \\mid c\\right) \\\| p_t\\left(\\boldsymbol{x}_t \\mid y\^c\\right)\\right)\\right, θ∈ΘminLSDS(θ):=Et,c(σt/αt)ω(t)DKL(qtθ(xt∣c)∥pt(xt∣yc)),

其中, t ∼ U ( 0.02 , 0.98 ) t \sim \mathcal{U}(0.02,0.98) t∼U(0.02,0.98), ϵ ∼ N ( 0 , I ) \boldsymbol{\epsilon} \sim \mathcal{N}(\mathbf{0}, \boldsymbol{I}) ϵ∼N(0,I), x t = α t g ( θ , c ) + σ t ϵ \boldsymbol{x}_t=\alpha_t \boldsymbol{g}(\theta, c)+\sigma_t \boldsymbol{\epsilon} xt=αtg(θ,c)+σtϵ。

梯度近似

目标函数的梯度近似为:
∇ θ L S D S ( θ ) ≈ E t , ϵ , c ω ( t ) ( ϵ pretrain ( x t , t , y c ) − ϵ ) ∂ g ( θ , c ) ∂ θ . \nabla_\theta \mathcal{L}{\mathrm{SDS}}(\theta) \approx \mathbb{E}{t, \boldsymbol{\epsilon}, c}\left\\omega(t)\\left(\\boldsymbol{\\epsilon}_{\\text {pretrain }}\\left(\\boldsymbol{x}_t, t, y\^c\\right)-\\boldsymbol{\\epsilon}\\right) \\frac{\\partial \\boldsymbol{g}(\\theta, c)}{\\partial \\theta}\\right. ∇θLSDS(θ)≈Et,ϵ,cω(t)(ϵpretrain (xt,t,yc)−ϵ)∂θ∂g(θ,c).

存在的问题

尽管取得了显著进展,经验观察 34 表明 SDS 常常面临过度饱和、过度平滑以及低多样性的问题。这些问题尚未得到充分解释或有效解决。

3D 表示

我们采用 NeRF ⁡ 30 , 32 \operatorname{NeRF}30,32 NeRF30,32(神经辐射场,Neural Radiance Fields)和纹理网格 45 作为两种流行且重要的3D表示方法。

NeRF

NeRF 使用一个多层感知机(MLP)表示3D对象。MLP 接收3D空间中的坐标作为输入,并输出相应的颜色和密度。其中, θ \theta θ 对应于 MLP 的参数。

渲染过程

给定相机姿态 c c c,渲染过程 g ( θ , c ) \boldsymbol{g}(\theta, c) g(θ,c) 定义为:

  • 从像素发射光线;
  • 计算沿每条光线上采样点的颜色加权和;
  • 合成每个像素的颜色。

NeRF 灵活且适用于优化,能够表示极其复杂的场景。


纹理网格

纹理网格 45 使用三角网格表示3D对象的几何形状,并通过网格表面上的颜色表示纹理。其中,3D 参数 θ \theta θ 包括:

  • 表示三角网格坐标的参数;
  • 表示纹理的参数。
渲染过程

给定相机姿态 c c c,渲染过程 g ( θ , c ) \boldsymbol{g}(\theta, c) g(θ,c) 定义为:

  • 从像素发射光线;
  • 计算光线与网格表面的交点;
  • 获得每个像素的颜色。

纹理网格通过可微光栅化实现高分辨率和快速渲染。

3 Variational Score Distillation

我们现在介绍变分得分蒸馏 (VSD)(见第 3.1 节),它学习从 3D 场景的分布中进行采样。通过使用 3D 参数粒子来表示目标 3D 分布,我们通过 Wasserstein 梯度流为粒子推导出基于梯度的原则更新规则(见第 3.2 节)。我们进一步表明 SDS 是 VSD 的一个特例,并在 2D 空间中构建了一个实验来研究与 3D 表示分离的优化算法,从理论和经验上解释了 SDS 的实际问题(见第 3.3 节)。

3.1 Sampling from 3D Distribution as Variational Inference


原则上,给定一个有效的文本提示 y y y,存在所有可能3D表示的概率分布。对于由参数 θ \theta θ 表示的某种3D表示(例如 NeRF),该分布可以建模为概率密度 μ ( θ ∣ y ) \mu(\theta \mid y) μ(θ∣y)。令 q 0 μ ( x 0 ∣ c , y ) q_0^\mu\left(\boldsymbol{x}_0 \mid c, y\right) q0μ(x0∣c,y) 为基于相机 c c c 和渲染函数 g ( ⋅ , c ) \boldsymbol{g}(\cdot, c) g(⋅,c) 的渲染图像 x 0 : = g ( θ , c ) \boldsymbol{x}_0 := \boldsymbol{g}(\theta, c) x0:=g(θ,c) 的(隐式)分布, p 0 ( x 0 ∣ y c ) p_0\left(\boldsymbol{x}_0 \mid y^c\right) p0(x0∣yc) 表示预训练文本到图像扩散模型定义的时间 t = 0 t=0 t=0 时的边缘分布, y c y^c yc 为视角相关的文本提示。为了获得高视觉质量的3D表示,我们优化分布 μ \mu μ 使其样本的渲染图像在所有视角上与预训练扩散模型对齐,目标是最小化以下公式:

min ⁡ μ D K L ( q 0 μ ( x 0 ∣ c , y ) ∥ p 0 ( x 0 ∣ y c ) ) \min \mu D{\mathrm{KL}}\left(q_0^\mu\left(\boldsymbol{x}_0 \mid c, y\right) \| p_0\left(\boldsymbol{x}_0 \mid y^c\right)\right) μminDKL(q0μ(x0∣c,y)∥p0(x0∣yc))

这是一个典型的变分推断问题,通过变分分布 q 0 μ ( x 0 ∣ c , y ) q_0^\mu\left(\boldsymbol{x}_0 \mid c, y\right) q0μ(x0∣c,y) 来近似(蒸馏)目标分布 p 0 ( x 0 ∣ y c ) p_0\left(\boldsymbol{x}_0 \mid y^c\right) p0(x0∣yc)。


直接优化问题的难点

直接求解上述问题(公式 (4))非常困难,因为 p 0 p_0 p0 通常非常复杂,且其高密度区域在高维空间中可能极为稀疏 47

引入扩散过程的优化方法

受扩散模型成功的启发 14, 49,我们构建了一系列以时间 t t t 为索引的优化问题,其对应不同的扩散分布。随着 t t t 增加至 T T T,优化问题变得更容易,因为扩散分布逐渐接近标准高斯分布。我们同时求解这些问题的集合(称为变分分数蒸馏,VSD),目标为:

μ ∗ : = arg ⁡ min ⁡ μ E t , c ( σ t / α t ) ω ( t ) D K L ( q t μ ( x t ∣ c , y ) ∥ p t ( x t ∣ y c ) ) \mu^*:=\underset{\mu}{\arg \min } \mathbb{E}_{t, c}\left\\left(\\sigma_t / \\alpha_t\\right) \\omega(t) D_{\\mathrm{KL}}\\left(q_t\^\\mu\\left(\\boldsymbol{x}_t \\mid c, y\\right) \\\| p_t\\left(\\boldsymbol{x}_t \\mid y\^c\\right)\\right)\\right μ∗:=μargminEt,c(σt/αt)ω(t)DKL(qtμ(xt∣c,y)∥pt(xt∣yc))

其中:

  • q t μ ( x t ∣ c , y ) : = ∫ q 0 μ ( x 0 ∣ c , y ) p t 0 ( x t ∣ x 0 ) d x 0 q_t^\mu\left(\boldsymbol{x}_t \mid c, y\right):=\int q_0^\mu\left(\boldsymbol{x}0 \mid c, y\right) p{t 0}\left(\boldsymbol{x}_t \mid \boldsymbol{x}_0\right) \mathrm{d} \boldsymbol{x}_0 qtμ(xt∣c,y):=∫q0μ(x0∣c,y)pt0(xt∣x0)dx0 表示时间 t t t 的噪声分布;
  • p t ( x t ∣ y c ) : = ∫ p 0 ( x 0 ∣ y c ) p t 0 ( x t ∣ x 0 ) d x 0 p_t\left(\boldsymbol{x}_t \mid y^c\right):=\int p_0\left(\boldsymbol{x}0 \mid y^c\right) p{t 0}\left(\boldsymbol{x}_t \mid \boldsymbol{x}_0\right) \mathrm{d} \boldsymbol{x}_0 pt(xt∣yc):=∫p0(x0∣yc)pt0(xt∣x0)dx0 为对应时间 t t t 的预训练扩散模型分布;
  • p t 0 ( x t ∣ x 0 ) : = N ( x t ∣ α t x 0 , σ t 2 I ) p_{t 0}\left(\boldsymbol{x}_t \mid \boldsymbol{x}_0\right):=\mathcal{N}\left(\boldsymbol{x}_t \mid \alpha_t \boldsymbol{x}_0, \sigma_t^2 \boldsymbol{I}\right) pt0(xt∣x0):=N(xt∣αtx0,σt2I) 是高斯过渡分布;
  • ω ( t ) \omega(t) ω(t) 是时间相关的加权函数。

VSD 与 SDS 的比较

与优化单点参数 θ \theta θ 的 SDS 方法不同,VSD 优化整个分布 μ \mu μ,并从中采样 θ \theta θ。值得注意的是,我们证明了在 VSD 中引入时间 t > 0 t>0 t>0 的额外 KL 散度不会影响原始问题 (4) 的全局最优解,如下所示。


定理 1(VSD 的全局最优解,证明见附录 C.4)

对于每个 t > 0 t>0 t>0,有:
D K L ( q t μ ( x t ∣ c , y ) ∥ p t ( x t ∣ y c ) ) = 0 ⇔ q 0 μ ( x 0 ∣ c , y ) = p 0 ( x 0 ∣ y c ) D_{\mathrm{KL}}\left(q_t^\mu\left(\boldsymbol{x}_t \mid c, y\right) \| p_t\left(\boldsymbol{x}_t \mid y^c\right)\right)=0 \Leftrightarrow q_0^\mu\left(\boldsymbol{x}_0 \mid c, y\right)=p_0\left(\boldsymbol{x}_0 \mid y^c\right) DKL(qtμ(xt∣c,y)∥pt(xt∣yc))=0⇔q0μ(x0∣c,y)=p0(x0∣yc)

3.2 Update Rule for Variational Score Distillation


为了解决问题 (5),一种直接的方法是为 μ \mu μ 训练另一个参数化生成模型,但这可能会带来很大的计算成本和优化复杂性。受之前基于粒子的变分推断方法 23 , 3 , 9 23,3,9 23,3,9 的启发,我们将 n n n 个 3D 参数 { θ i } i = 1 n \{\theta_i\}{i=1}^n {θi}i=1n 作为粒子,并为其推导出一种新颖的更新规则。直观地说,我们使用 { θ i } i = 1 n \{\theta_i\}{i=1}^n {θi}i=1n 来"表示"当前的分布 μ \mu μ,当优化收敛时, θ ( i ) \theta^{(i)} θ(i) 将是从最优分布 μ ∗ \mu^* μ∗ 中采样的样本。这样的优化可以通过模拟关于 θ \theta θ 的常微分方程(ODE)来实现,如以下定理所示。


定理 2(VSD 的 Wasserstein 梯度流,证明见附录 C)

从初始分布 μ 0 \mu_0 μ0 开始,表示在分布(函数)空间中逐步最小化问题 (5) 的 Wasserstein 梯度流为 { μ τ } τ ≥ 0 \left\{\mu_\tau\right\}{\tau \geq 0} {μτ}τ≥0,其收敛时 μ ∞ = μ ∗ \mu{\infty}=\mu^* μ∞=μ∗。我们可以通过以下步骤从 μ τ \mu_\tau μτ 中采样 θ τ \theta_\tau θτ:

  1. 首先从初始分布采样 θ 0 ∼ μ 0 ( θ 0 ∣ y ) \theta_0 \sim \mu_0\left(\theta_0 \mid y\right) θ0∼μ0(θ0∣y);
  2. 然后模拟以下 ODE:

d θ τ d τ = − E t , ϵ , c ω ( t ) ( − σ t ∇ x t log ⁡ p t ( x t ∣ y c ) ⏟ 噪声真实图像的分数 − ( − σ t ∇ x t log ⁡ q t μ τ ( x t ∣ c , y ) ) ⏟ 噪声渲染图像的分数 ) ∂ g ( θ τ , c ) ∂ θ τ \frac{\mathrm{d} \theta_\tau}{\mathrm{d} \tau}=-\mathbb{E}_{t, \boldsymbol{\epsilon}, c}\\omega(t)(\\underbrace{-\\sigma_t \\nabla_{\\boldsymbol{x}_t} \\log p_t\\left(\\boldsymbol{x}_t \\mid y\^c\\right)}_{\\text {噪声真实图像的分数 }}-\\underbrace{\\left(-\\sigma_t \\nabla_{\\boldsymbol{x}_t} \\log q_t\^{\\mu_\\tau}\\left(\\boldsymbol{x}_t \\mid c, y\\right)\\right)}_{\\text {噪声渲染图像的分数 }}) \\frac{\\partial \\boldsymbol{g}\\left(\\theta_\\tau, c\\right)}{\\partial \\theta_\\tau} dτdθτ=−Et,ϵ,cω(t)(噪声真实图像的分数 −σt∇xtlogpt(xt∣yc)−噪声渲染图像的分数 (−σt∇xtlogqtμτ(xt∣c,y)))∂θτ∂g(θτ,c)

其中, q t μ τ q_t^{\mu_\tau} qtμτ 是扩散时间 t t t 对应于 μ τ \mu_\tau μτ 的噪声分布。


模拟 ODE 实现最优分布采样

根据定理 2,我们可以通过模拟 ODE (7) 在足够大的 τ \tau τ 范围内近似地从目标分布 μ ∗ \mu^* μ∗ 中采样。ODE 包括每个时间 τ \tau τ 的噪声真实图像和噪声渲染图像的分数函数:

  1. 噪声真实图像的分数函数
    − σ t ∇ x t log ⁡ p t ( x t ∣ y c ) -\sigma_t \nabla_{\boldsymbol{x}_t} \log p_t\left(\boldsymbol{x}_t \mid y^c\right) −σt∇xtlogpt(xt∣yc)

    可通过预训练扩散模型 ϵ pretrain ( x t , t , y c ) \boldsymbol{\epsilon}_{\text{pretrain}}\left(\boldsymbol{x}_t, t, y^c\right) ϵpretrain(xt,t,yc) 近似。

  2. 噪声渲染图像的分数函数
    − σ t ∇ x t log ⁡ q t μ τ ( x t ∣ c , y ) -\sigma_t \nabla_{\boldsymbol{x}t} \log q_t^{\mu\tau}\left(\boldsymbol{x}_t \mid c, y\right) −σt∇xtlogqtμτ(xt∣c,y)

    通过另一个噪声预测网络 ϵ ϕ ( x t , t , c , y ) \boldsymbol{\epsilon}_\phi\left(\boldsymbol{x}t, t, c, y\right) ϵϕ(xt,t,c,y) 估计,该网络通过以下标准扩散目标在渲染图像 { θ ( i ) } i = 1 n \{\theta^{(i)}\}{i=1}^n {θ(i)}i=1n 上进行训练:

min ⁡ ϕ ∑ i = 1 n E t ∼ U ( 0 , 1 ) , ϵ ∼ N ( 0 , I ) , c ∼ p ( c ) ∥ ϵ ϕ ( α t g ( θ ( i ) , c ) + σ t ϵ , t , c , y ) − ϵ ∥ 2 2 \min \phi \sum{i=1}^n \mathbb{E}_{t \sim \mathcal{U}(0,1), \boldsymbol{\epsilon} \sim \mathcal{N}(\mathbf{0}, \boldsymbol{I}), c \sim p(c)}\left\\left\\\|\\boldsymbol{\\epsilon}_\\phi\\left(\\alpha_t \\boldsymbol{g}\\left(\\theta\^{(i)}, c\\right)+\\sigma_t \\boldsymbol{\\epsilon}, t, c, y\\right)-\\boldsymbol{\\epsilon}\\right\\\|_2\^2\\right ϕmini=1∑nEt∼U(0,1),ϵ∼N(0,I),c∼p(c) ϵϕ(αtg(θ(i),c)+σtϵ,t,c,y)−ϵ 22

通过这种方式,我们在模拟 Wasserstein 梯度流的同时优化分布 μ \mu μ,实现对 3D 表示的高效优化。

在实践中,我们通过一个小型 U-Net 39 或预训练模型 ϵ pretrain ( x t , t , y c ) \boldsymbol{\epsilon}{\text{pretrain}}\left(\boldsymbol{x}t, t, y^c\right) ϵpretrain(xt,t,yc) 的 LoRA(低秩适配 18 , 40 18,40 18,40)对 ϵ ϕ \boldsymbol{\epsilon}\phi ϵϕ 进行参数化,并在网络中将相机参数 c c c 添加到条件嵌入中。在大多数情况下,我们发现使用 LoRA 可以显著提高生成样本的保真度(例如,见图 1 的结果)。我们认为这是因为 LoRA 专为高效的少样本微调而设计,能够利用 ϵ pretrain \boldsymbol{\epsilon}{\text{pretrain}} ϵpretrain 中的先验信息(包括图像和文本 y y y 的对应信息)。


交替优化

在每个 ODE 时间 τ \tau τ,我们需要确保 ϵ ϕ \boldsymbol{\epsilon}\phi ϵϕ 与当前分布 q t μ τ q_t^{\mu\tau} qtμτ 匹配。因此,我们交替优化 ϵ ϕ \boldsymbol{\epsilon}\phi ϵϕ 和 θ ( i ) \theta^{(i)} θ(i)。每个粒子 θ ( i ) \theta^{(i)} θ(i) 的更新规则为:
θ ( i ) ← θ ( i ) − η ∇ θ L VSD ( θ ( i ) ) , \theta^{(i)} \leftarrow \theta^{(i)}-\eta \nabla
\theta \mathcal{L}_{\text{VSD}}\left(\theta^{(i)}\right), θ(i)←θ(i)−η∇θLVSD(θ(i)),

其中, η > 0 \eta > 0 η>0 是步长(学习率)。

根据定理 2,对应的梯度定义为:
∇ θ L V S D ( θ ) ≜ E t , ϵ , c ω ( t ) ( ϵ p r e t r a i n ( x t , t , y c ) − ϵ ϕ ( x t , t , c , y ) ) ∂ g ( θ , c ) ∂ θ , \nabla_\theta \mathcal{L}{\mathrm{VSD}}(\theta) \triangleq \mathbb{E}{t, \boldsymbol{\epsilon}, c}\left\\omega(t)\\left(\\boldsymbol{\\epsilon}_{\\mathrm{pretrain}}\\left(\\boldsymbol{x}_t, t, y\^c\\right)-\\boldsymbol{\\epsilon}_\\phi\\left(\\boldsymbol{x}_t, t, c, y\\right)\\right) \\frac{\\partial \\boldsymbol{g}(\\theta, c)}{\\partial \\theta}\\right, ∇θLVSD(θ)≜Et,ϵ,cω(t)(ϵpretrain(xt,t,yc)−ϵϕ(xt,t,c,y))∂θ∂g(θ,c),

其中:

  • x t = α t g ( θ , c ) + σ t ϵ \boldsymbol{x}_t=\alpha_t \boldsymbol{g}(\theta, c)+\sigma_t \boldsymbol{\epsilon} xt=αtg(θ,c)+σtϵ;
  • ϵ p r e t r a i n \boldsymbol{\epsilon}_{\mathrm{pretrain}} ϵpretrain 是预训练扩散模型的噪声预测;
  • ϵ ϕ \boldsymbol{\epsilon}_\phi ϵϕ 是基于当前粒子的噪声预测网络。

我们在图 2 中展示了 VSD 方法的流程(伪代码详见附录 E)。

图 2:VSD 概览。3D 表示以随机姿势 c c c进行可区分渲染。 渲染后的图像被发送到预训练扩散和变分分布的得分(由 LoRA 估计)以计算 VSD 的梯度。LoRA 也会在渲染后的图像上进行更新。

相关推荐
韩师傅5 天前
海天线算法的前世今生
python·计算机视觉
韩师傅5 天前
当你的甲方设备过烂,要如何快速出效果?
python·计算机视觉
韩师傅5 天前
当你的甲方吐槽天空不够蓝,你应该如何应对
python·计算机视觉
兵慌码乱12 天前
基于 MediaPipe 与 PySide2 的手势交互音乐控制系统实现:轻量化视觉交互全流程解析
python·opencv·计算机视觉·人机交互·手势识别·mediapipe·pyside2
小小杨树14 天前
读懂色彩:拍照调色不再难
算法·计算机视觉·配色
H__Rick16 天前
自动对焦学习-3
人工智能·学习·计算机视觉
计算机科研狗@OUC16 天前
(cvpr26) AIMDepth: Asymmetric Image-Event Mamba for Monocular Depth Estimation
人工智能·深度学习·计算机视觉
qq_3665665016 天前
2026最新:5款AI视频口型同步工具实测横评,视频翻译后嘴型对不上的终极解决方案
人工智能·计算机视觉·新媒体运营
梦想三三16 天前
OpenCV银行卡数字识别项目(图像预处理与字符分割)
人工智能·opencv·计算机视觉