75、DiffRF: Rendering-Guided 3D Radiance Field Diffusion

简介

主页:https://sirwyver.github.io/DiffRF/

在这里插入图片描述
对应用于三维亮度场的概率扩散过程进行去噪。在3D监控和体积渲染的指导下,模型能够无条件地合成高保真3D资产(左)。

蒙面补全的新应用(右),即从不完整的对象中恢复形状和外观的任务(在右上方的椅子上用浅蓝色突出显示),由模型作为条件推理解决,无需特定任务训练

基于去噪扩散概率模型的三维辐射场合成新方法,提出了一个三维去噪模型,该模型直接作用于显式体素网格表示,但是,由于从一组摆拍图像生成的辐射场可能是模糊的,并且包含伪影,因此难以获得真实辐射场样本,通过将去噪公式与渲染损失配对来解决这一挑战,使模型能够学习一个偏向于良好图像质量的偏差先验,而不是试图复制拟合错误.

贡献点:

  • 引入了第一个扩散模型,可以直接在3D辐射场上操作,实现高质量、真实的3D几何和图像合成。
  • 三维亮度场掩模补全的新应用,它可以理解为图像修补在体积域的自然扩展
  • 在无条件和条件设置中展示了令人信服的结果,例如,在具有挑战性的PhotoShape Chairs数据集上,通过改进基于gan的图像质量(FID从27.03提高到25.64)和几何合成(将MMD从5.86提高到4.26)的方法

实现流程

方法由3D对象的生成模型组成,该模型建立在最近最先进的扩散概率模型,通过注入不同尺度的噪声来恢复一个逐渐损坏3D对象的过程,3D对象被表示为辐射场,因此学习的去噪过程允许方法从噪声中生成对象辐射场
在这里插入图片描述
对于从1,…, T均匀采样的时间步长 t,首先根据一个固定的噪声时间表扩散一个初始辐射场 f 0 f_0 f0 。得到的 f t f_t ft 通过一个有时间条件的3D-UNet,给出应用噪声 ε ε ε 的估计值。通过噪声预测损失 L R F L_{RF} LRF 以及预测去噪 f ~ 0 \tilde{f}_0 f~0 上的渲染损失 L R G B L_{RGB} LRGB来指导模型。

NeRF 公式
在这里插入图片描述
在这里插入图片描述

扩散模型

扩散模型原理公式参考

Generation process

去噪过程首先从标准多元正态分布 p ( f T ) : = N ( f T ∣ 0 , I ) p(f_T) :=\Nu(f_T | 0, I) p(fT):=N(fT∣0,I) 中采样状态 f T f_T fT,并通过利用具有学习参数 θ 的高斯分布的反向跃迁概率 p θ ( f t − 1 ∣ f t ) p_θ(f_{t−1}| f_t) pθ(ft1ft) f t f_t ft 中生成状态 f t − 1 f_{t−1} ft1
在这里插入图片描述
生成过程迭代到最终状态 f 0 f_0 f0,它表示由方法生成的3D对象的亮度场,考虑对(3)中高斯分布的均值进行下面的重参数化
在这里插入图片描述
其中 ε θ ( f t , t ) ε_θ(f_t, t) εθ(ft,t) 是神经网络预测的用于破坏 f t − 1 f_{t−1} ft1 的噪声,而 a t a_t at b t b_t bt 是预定义的系数,协方差 Σ t Σ_t Σt 采用预定义值,尽管它可能与数据相关

Diffusion process

扩散过程由离散时间马尔可夫链控制,其状态空间和时间边界与生成过程中提到的相同,但具有预先定义并给出的高斯转移概率
在这里插入图片描述
α t : = 1 − β t , 0 ≤ β t ≤ 1 \alpha_t := 1-\beta_t,0 \leq \beta_t \leq 1 αt:=1βt0βt1

使用 f 0 f_0 f0 推导 f t f_t ft
在这里插入图片描述
α ˉ t : = ∏ i = 1 t α i \bar{\alpha}_t := \prod^t_{i=1}\alpha_i αˉt:=i=1tαi

loss

损失 L R F L_{RF} LRF,用于惩罚不符合数据分布的辐射场的生成

损失 L R G B L_{RGB} LRGB,用于提高生成的辐射场的渲染质量

L R F L_{RF} LRF

从负对数似然(NLL)的变分上界开始推导出模型的训练目标,这个上限需要指定一个替代分布,称之为 q,因为它确实对应于控制扩散过程的分布 q,与生成过程建立了预期的基本联系,数据点 f 0 ∈ F f_0∈F f0F 的NLL可以通过利用 q 得到上界
在这里插入图片描述
其中 f t 1 : t 2 f_{t_1:t_2} ft1:t2 代表( f t 1 f_{t_1} ft1,…, f t 2 f_{t_2} ft2),包围NLL的损耗 L R F ( f 0 ∣ θ ) L_{RF}(f_0|θ) LRF(f0θ) 可以进一步分解为下面的和,直到一个与 θ 无关的常数
在这里插入图片描述
直观来看
在这里插入图片描述
φ ( ε ) : = N ( ε ∣ 0 , I ) φ(ε) := N (ε|0, I) φ(ε):=N(ε∣0,I) 为高斯分布

l R G B l_{RGB} lRGB

用一个额外的 RGB 损失 L R G B ( f 0 ∣ θ ) L_{RGB}(f_0|θ) LRGB(f0θ) 来弥补先前的损失,旨在提高生成的辐射场的渲染质量。事实上,一旦尝试渲染辐射场,在之前的损失中隐含地用于评估生成的辐射场的质量的表示上的欧氏度量并不一定确保没有伪影。

L R G B ( f 0 ∣ θ ) L_{RGB}(f_0|θ) LRGB(f0θ) 定义为与(8)相似的时间特异性项 L R G B t ( f 0 ∣ θ ) L^t_{RGB}(f_0|θ) LRGBt(f0θ) 的和
在这里插入图片描述
给定一个辐射场 f ∈ F f∈F fF和一个视点 v,用R(v, f)表示用公式(1)从视点v 渲染 f 后得到的图像,用 ℓ v ( f , f ′ ) ℓ_v(f, f ') v(f,f) 表示使用辐射场从视点v 渲染图像 f 和 f’ 之间的欧氏距离
在这里插入图片描述
这个想法是比较从数据分布中采样的给定亮度场 f 0 f_0 f0 的渲染,与用 t 扩散步骤损坏的相同亮度场,然后完全去噪

q ( f t ∣ f 0 ) q(f_t|f_0) q(ftf0) 中采样第一个 f t f_t ft,然后从 p θ ( f 0 ∣ f t ) p_θ(f_0|f_t) pθ(f0ft) 中采样 f 0 f_0 f0

L R F t L^t_{RF} LRFt 的定义来看,损失趋向于 ε ≈ ε θ ( f t , t ) ε≈ε_θ(f_t, t) εεθ(ft,t),从中可以得出近 f ~ 0 t ( ε , θ ) : = f 0 + 1 − α ˉ t α ˉ t ( ε − ε θ ( f t , t ) ) \tilde{f}^t_0(ε,θ):= f_0 + \frac{\sqrt{1-\bar{\alpha}_t}}{\sqrt{\bar{\alpha}_t}}(ε - ε_θ(f_t,t)) f~0t(ε,θ):=f0+αˉt 1αˉt (εεθ(ft,t))

在这里插入图片描述
对于视点 v 和 ε   φ ( ε ) ε ~ φ(ε) ε φ(ε),期望是关于先验分布 ψ 的,因为只有当阶跃 t 接近于零时,近似才是合理的,所以引入了一个权重 w t w_t wt,它随着阶跃值的增加而衰减(例如,使用 ω t : = ˉ α ˉ t 2 ω_t:=̄\bar{\alpha}_t^2 ωt:=ˉαˉt2)

Final loss

在这里插入图片描述

部分补全

在这里插入图片描述

为了适应特定的任务,需要训练GANs,而扩散模型可以在测试时有效地适应。利用这一特性来完成掩模辐射场补全的新任务。

将两者结合在掩膜亮度场补全的新任务中:给定一个亮度场和一个3D掩膜,合成一个与非掩膜区域协调的掩膜区域补全,通过逐步引导已知区域的无条件采样过程到输入 f i n f^{in} fin 来执行条件补全

在这里插入图片描述
m 是应用于输入的二进制掩码,⊙表示在体素网格上逐元素的乘法

实验

选取时刻总数为 T = 1000,扩散过程的方差从 β 1 = 0.0015 \beta_1 = 0.0015 β1=0.0015增加到 β T = 0.05 \beta_T = 0.05 βT=0.05 L R G B t L^t_{RGB} LRGBt的权重 ω t : = ˉ α ˉ t 2 ω_t:=̄\bar{\alpha}_t^2 ωt:=ˉαˉt2
在这里插入图片描述
在这里插入图片描述

Limitations

虽然方法在条件和无条件辐射场合成的任务中显示出有希望的结果,但仍然存在一些局限性。与基于gan的方法相比,采样时间明显更长。在这种情况下,探索利用更快的采样方法会很有趣。最后,模型受到训练时间内存限制的最大网格分辨率的约束。这些问题可以通过探索因子化神经场表示来解决。

  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
cd C:\Program Files\FlightGear fgfs --fg-root=C:\Program Files\FlightGear\data --aircraft=ufo --in-air --fdm=null --telnet=5501 --telnet=5502 --telnet=5503 --disable-ai-traffic --disable-real-weather-fetch --disable-random-objects --disable-terrasync --disable-clouds --disable-sound --disable-panel --disable-hud --disable-specular-highlight --timeofday=noon --prop:/sim/rendering/multi-sample-buffers=1 --prop:/sim/rendering/multi-samples=2 --prop:/sim/rendering/draw-mask-clouds=false --prop:/sim/rendering/draw-mask-terrain=true --prop:/sim/rendering/draw-mask-objects=true --prop:/sim/rendering/draw-mask-lights=true --prop:/sim/rendering/draw-mask-internal=true --prop:/sim/rendering/draw-mask-cockpit=true --prop:/sim/rendering/draw-mask-effects=true --prop:/sim/rendering/draw-mask-overlay=true --prop:/sim/rendering/draw-mask-world=true --prop:/sim/rendering/draw-mask-panel=true --prop:/sim/rendering/draw-mask-vr=true --prop:/sim/rendering/draw-mask-2d=true --prop:/sim/rendering/draw-mask-3d=true --prop:/sim/rendering/draw-mask-sky=true --prop:/sim/rendering/draw-mask-shadows=true --prop:/sim/rendering/draw-mask-cabin=true --prop:/sim/rendering/draw-mask-weather=true --prop:/sim/rendering/draw-mask-stereo=true --prop:/sim/rendering/draw-mask-internal-cockpit=true --prop:/sim/rendering/draw-mask-internal-windows=true --prop:/sim/rendering/draw-mask-internal-instruments=true --prop:/sim/rendering/draw-mask-internal-overlay=true --prop:/sim/rendering/draw-mask-internal-effects=true --prop:/sim/rendering/draw-mask-internal-lights=true --prop:/sim/rendering/draw-mask-internal-world=true --prop:/sim/rendering/draw-mask-internal-panel=true --prop:/sim/rendering/draw-mask-internal-3d=true --prop:/sim/rendering/draw-mask-internal-sky=true --prop:/sim/rendering/draw-mask-internal-cabin=true --prop:/sim/rendering/draw-mask-internal-weather=true --prop:/sim/rendering/draw-mask-internal-stereo=true --prop:/sim/rendering/draw-mask-internal-shadow=true --prop:/sim/rendering/draw-mask-internal-stall=true --prop:/sim/rendering/draw-mask-internal-aoa=true --prop:/sim/rendering/draw-mask-internal-thermal=false --prop:/sim/rendering/draw-mask-internal-ice=false --prop:/sim/rendering/draw-mask-internal-glass=true --prop:/sim/rendering/draw-mask-internal-dead=true --prop:/sim/rendering/draw-mask-internal-reflection=true程序显示错误unknown command-line option: enable-hud-2d怎么解决
05-10
你可以尝试将启用2D HUD的选项从命令行中移除,改为在游戏内部手动启用。可以尝试修改命令行参数为: ``` cd C:\Program Files\FlightGear fgfs --fg-root=C:\Program Files\FlightGear\data --aircraft=ufo --in-air --fdm=null --telnet=5501 --telnet=5502 --telnet=5503 --disable-ai-traffic --disable-real-weather-fetch --disable-random-objects --disable-terrasync --disable-clouds --disable-sound --disable-panel --timeofday=noon --prop:/sim/rendering/multi-sample-buffers=1 --prop:/sim/rendering/multi-samples=2 --prop:/sim/rendering/draw-mask-clouds=false --prop:/sim/rendering/draw-mask-terrain=true --prop:/sim/rendering/draw-mask-objects=true --prop:/sim/rendering/draw-mask-lights=true --prop:/sim/rendering/draw-mask-internal=true --prop:/sim/rendering/draw-mask-cockpit=true --prop:/sim/rendering/draw-mask-effects=true --prop:/sim/rendering/draw-mask-overlay=true --prop:/sim/rendering/draw-mask-world=true --prop:/sim/rendering/draw-mask-panel=true --prop:/sim/rendering/draw-mask-vr=true --prop:/sim/rendering/draw-mask-3d=true --prop:/sim/rendering/draw-mask-sky=true --prop:/sim/rendering/draw-mask-shadows=true --prop:/sim/rendering/draw-mask-cabin=true --prop:/sim/rendering/draw-mask-weather=true --prop:/sim/rendering/draw-mask-stereo=true --prop:/sim/rendering/draw-mask-internal-cockpit=true --prop:/sim/rendering/draw-mask-internal-windows=true --prop:/sim/rendering/draw-mask-internal-instruments=true --prop:/sim/rendering/draw-mask-internal-overlay=true --prop:/sim/rendering/draw-mask-internal-effects=true --prop:/sim/rendering/draw-mask-internal-lights=true --prop:/sim/rendering/draw-mask-internal-world=true --prop:/sim/rendering/draw-mask-internal-panel=true --prop:/sim/rendering/draw-mask-internal-3d=true --prop:/sim/rendering/draw-mask-internal-sky=true --prop:/sim/rendering/draw-mask-internal-cabin=true --prop:/sim/rendering/draw-mask-internal-weather=true --prop:/sim/rendering/draw-mask-internal-stereo=true --prop:/sim/rendering/draw-mask-internal-shadow=true --prop:/sim/rendering/draw-mask-internal-stall=true --prop:/sim/rendering/draw-mask-internal-aoa=true --prop:/sim/rendering/draw-mask-internal-thermal=false --prop:/sim/rendering/draw-mask-internal-ice=false --prop:/sim/rendering/draw-mask-internal-glass=true --prop:/sim/rendering/draw-mask-internal-dead=true --prop:/sim/rendering/draw-mask-internal-reflection=true ``` 然后在游戏内部手动启用2D HUD。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值