你是否曾注视着一张云的照片,并好奇它在三维空间中究竟长什么样?这听起来像是一个简单的问题,但对计算机来说,这却是一个噩梦般的场景。云不是固体对象;它们是体积性的、半透明的,并且以复杂的方式散射光线。
从单张 2D 图像重建 3D 物体是计算机视觉中一个经典的“不适定” (ill-posed) 问题。之所以称之为不适定,是因为单张 2D 图像本质上只是现实的一个平面投影——理论上,无数种不同的 3D 形状在特定的光照和角度下都可能产生完全相同的图像。
为了解决这个问题,我们通常需要“先验” (priors) ——即关于物体应该长什么样的假设或知识。近年来,生成式 AI 已成为这些先验知识的终极来源。
在这篇文章中,我们将深入探讨一篇题为 “Light Transport-aware Diffusion Posterior Sampling for Single-View Reconstruction of 3D Volumes” (光传输感知扩散后验采样用于 3D 体积单视图重建) 的研究论文。这项工作提出了一种迷人的方法,通过结合扩散模型的“想象力”与可微渲染的“物理定律”,从单张图片重建复杂的 3D 体积 (特别是云层) 。
体积重建的挑战
在看解决方案之前,我们需要理解为什么这如此困难。
1. 几何问题
如果你拍一张咖啡杯的照片,你的大脑知道把手很可能是环形的,即使你看不见那个孔。这就是你大脑使用的“先验”。在计算机视觉中,像 NeRF (神经辐射场) 这样的方法通常需要几十张不同角度的图像,才能在没有强先验的情况下推断出几何结构。当你只有一张图像时,标准的几何方法就会失效,因为它们无法看到角落后面的东西。
2. 物理问题
云层比杯子更难处理,因为它们是“参与介质” (participating media) 。光线不仅仅是击中表面并反弹;它会穿透体积,在内部四处反弹 (多重散射) ,其中一部分还会穿过 (透射) 。
要准确地重建一朵云,你不能仅仅猜测它的形状;你必须模拟光线是如何穿过它的。这需要辐射传输 (Radiative Transfer) ,这是物理学的一个分支,描述能量如何在介质中移动。

如上表所示,描述一个体积涉及复杂的术语,如消光场 (\(\sigma_t\)) 、散射反照率 (\(\varphi\)) 和相函数 (\(\rho\)) 。该论文解决了在几乎没有几何信息 (只有一个视图) 和存在复杂物理相互作用的情况下优化这些参数的挑战。
解决方案: 结合物理学与 AI
研究人员提出了一种结合两个强大概念的方法:
- 可微体渲染 (Differentiable Volume Rendering) : 一种可以反向运行的物理模拟,用于推断是什么样的 3D 形状产生了 2D 图像。
- 扩散模型 (Diffusion Models) : 一种经过训练的生成式 AI,知道有效的 3D 云层长什么样。
高层面的思路是这样的: 我们要求 AI “梦见”一朵云。然后,我们使用物理引擎来检查这个梦是否与我们的输入照片相符。如果不符,我们就轻轻地推动 AI 的梦境,直到它符合照片,同时确保它看起来仍然像一朵逼真的云。

上方的图 1 展示了整个流程。在左侧,我们有一个单视图 (\(y\)) 。我们想要重建体积 (\(\hat{V}\)) 。我们使用一个 扩散模型 来生成云的潜在表示 (\(\theta\)) 。同时,一个 可微渲染器 (\(\mathcal{R}\)) 将输出与输入图像进行对比,并更新场景参数 (\(\phi\)) 。
让我们拆解一下使之成为可能的机制。
第一步: 构建云的大脑 (数据集)
没有数据就无法训练扩散模型。不幸的是,当时并没有大规模的 3D 体积云数据集可用。所以,研究人员自己建立了一个。
他们创建了 Cloudy , 一个包含 1,000 个合成模拟体积密度场的数据集。利用流体模拟器 (JangaFX) ,他们生成了具有适当浮力、湍流和扩散特性的逼真积云。

如图 2 所示,顶行显示了照片级真实感渲染的地面真值模拟。底行显示了由他们训练的扩散模型生成的云。相似之处令人震惊——模型已经学会了云的“本质”。
第二步: 压缩云层 (单平面表示)
原始的 3D 网格 (体素网格) 非常庞大。一个 \(512 \times 512 \times 512\) 的网格占用大量内存,使得训练神经网络变得困难。我们需要一种方法将这些数据压缩成扩散模型可以轻松理解的“潜在代码” (latent code) 。
以前的方法使用“三平面” (三个相交的平面图) 或简单的密集网格。但这篇论文引入了 单平面表示 (Monoplanar Representation) 。

如图 3 所示,他们没有存储整个 3D 体积,而是将特征投影到单个 2D 平面 (\(g\)) 上。为了找到特定 3D 点 \(p\) 的密度,他们对这个 2D 平面进行采样,并将特征传递给一个小型的多层感知机 (MLP) 。
这提供了巨大的压缩率。单朵云从大约 100MB 的原始数据减少到了 2MB 的潜在代码 。 这种效率使得扩散模型训练得更快,并能生成更高分辨率的细节。
第三步: 核心引擎 (参数化扩散后验采样)
这是论文中最具技术性和创新性的部分。
标准的扩散模型是 无条件 的。你给它们随机噪声,它们会将其转化为随机的云。但我们不想要 随机 的云;我们想要一朵与我们的照片相匹配的云。
我们需要 后验采样 。 我们要从 给定 观测值 (\(y\)) 的云的概率分布中进行采样。
\[ p(\theta | y) \]研究人员使用了一种称为 扩散后验采样 (DPS) 的技术。概念上的工作原理如下:
- 从纯噪声开始。
- 扩散模型预测出一个噪声稍少的云版本 (“先验”) 。
- 我们获取那个预测的云,并通过 可微体渲染器 运行它。
- 我们将渲染出的图像与我们的输入照片 (\(y\)) 进行比较。
- 我们计算误差 (损失) 。因为渲染器是 可微 的,我们可以计算误差的 梯度 。
- 我们使用该梯度来“引导”去噪过程。
引导方程如下所示:

在这个方程中:
- \(y\) 是目标图像。
- \(\mathcal{A}\) 是渲染过程。
- \(\hat{x}_0(x_t)\) 是在步骤 \(t\) 估计的干净云层。
- \(\nabla_{x_t}\) 是告诉我们要如何改变噪声样本以最小化误差的梯度。
- \(\zeta\) 是一个缩放因子,控制我们在多大程度上强制云层匹配图像,还是仅仅让它成为一朵通用的云。
可视化过程
下图很好地可视化了这种“引导式做梦”。

正如你在图 5 中看到的,过程开始时 (左侧) 是完全不像云的噪声。随着时间的推移 (向右移动) ,扩散模型试图形成云的结构。可微渲染器不断地将其拉回,以确保形状与输入图像 \(y\) 的轮廓相匹配。
处理未知光照
这篇论文的一个主要贡献在于,它不仅仅求解云的形状 (\(\theta\)) ;它还求解物理参数 (\(\phi\)) ,例如背景光照或环境贴图。
如果你不知道光照情况,你就无法准确地渲染云层来计算误差。因此,他们同时优化这两者:

这个方程的意思是: 找到物理参数 \(\hat{\phi}\),使观测图像 \(y\) 与我们渲染的云之间的差异最小化,并在我们的扩散模型生成的可能云层上取平均。
实验结果
那么,这种“物理 + AI”的方法效果如何呢?
单视图重建
主要目标是从一张图像重建一朵云。结果明显优于以前的最先进方法,如可微比率追踪 (DRT) 或单路径采样 (SPS) ,这些方法在数据稀疏时表现挣扎。

在图 9 中,请看 DPS1 (使用 1 个视图的扩散后验采样) 列。它产生了一朵蓬松、连贯的云,看起来与目标非常相似。将其与 DRT1 或 SPS1 进行比较,后者通常产生模糊的团块或无法捕捉到明显的云瓣。指标 (LPIPS) 证实了 DPS 方法的感知质量要优越得多。
超分辨率
因为扩散模型充当高频细节的“先验”,它可以用于提升低分辨率体积数据的质量。它“幻觉”出原始低分辨率输入中不存在的合理细节。

图 7 展示了一个低分辨率云 (中间) 被放大为高分辨率版本 (右侧) 。注意模型是如何添加复杂的缕和凸起,使云看起来逼真,而不仅仅是插值模糊的方块。
恢复光照条件
最令人印象深刻的壮举之一是仅通过图像中云层的阴影来恢复光照环境的能力。

在图 10 中,该方法成功地重建了环境贴图 (底行) 。尽管“测试视图” (从新角度看重建的云) 与地面真值并非像素级完美匹配,但光照和阴影是一致的,证明模型“理解”了场景的物理特性。
引擎盖下的物理学
值得花一点时间来欣赏这里正在求解的物理学的复杂性。模型不仅仅是在匹配像素;它是在优化循环内部求解 体渲染方程 (VRE) 。

这个方程 (论文中的方程 4) 对沿射线的透射率 \(T\) 和密度 \(\sigma_t\) 进行积分。它考虑了从其他方向散射到射线中的光线 \(L_s\) 和发射光线 \(L_e\)。
通过使该方程可微,系统可以将单个像素的误差反向传播回导致该像素颜色的特定 3D 体素密度和环境光照参数。
结论与未来影响
论文 “Light Transport-aware Diffusion Posterior Sampling” 代表了逆向渲染迈出的重要一步。通过使用扩散模型作为强大的几何先验,研究人员成功地将一个不适定问题 (单视图体积重建) 转化为一个可解问题。
主要收获:
- 先验至关重要: 如果不知道复杂的体积“通常”长什么样,你就无法从单张图像重建它。扩散模型非常擅长存储这种知识。
- 物理很重要: 仅仅生成 3D 形状是不够的。集成基于物理的渲染器可以确保重建遵循光传输、阴影和密度累积的规律。
- 潜在空间很强大: 在压缩的“单平面”潜在空间中操作,使得高分辨率 3D 生成在计算上变得可行。
虽然该方法计算量大 (需要在优化循环中进行光线追踪) 且目前专注于云层,但这里的原理可以扩展到其他复杂的体积数据——从医学成像 (MRI/CT 重建) 到特效中的烟雾和火焰。它架起了 AI 的创造性幻觉与物理世界的严格约束之间的桥梁。
](https://deep-paper.org/en/paper/2501.05226/images/cover.png)