3D扩散模型从根本上实现2D到3D转换的核心技术路线,并不是直接在一个巨大的3D体素空间上进行纯粹的扩散过程,而是通过一种称为"分数蒸馏采样(Score Distillation Sampling, SDS)"的创新方法,将强大的、预训练的2D扩散模型的知识"蒸馏"到3D表示中。
这种方法解决了直接训练3D模型所需的庞大数据集和极高计算成本的难题。
以下是其工作原理的详细分解:
大多数最先进的单图或文本到3D生成方法(如谷歌的 DreamFusion、NVIDIA 的 Magic3D,以及 Meshy.AI 使用的变体技术)都遵循这一范式。其基础是:
互联网上有数十亿张图片,使得训练出能理解世界复杂视觉模式的2D生成模型(如 Stable Diffusion、DALL-E 2)成为可能。
需要一个可微分的3D结构,能够被渲染成2D图像,例如神经辐射场(NeRFs)、三平面表示(Tri-planes)或高斯溅射(3D Gaussian Splatting)。
SDS 是连接2D图像与3D模型的关键"桥梁"。它将预训练的2D扩散模型转化为一个"指导者"或"评分函数",用于迭代优化3D场景表示。
整个过程可以概括为以下迭代循环:
首先,系统会创建一个初始的、随机的3D场景表示(例如,一个空白的 NeRF)。
从随机选择的相机视角,将当前的3D模型渲染成一张2D图像。这个过程是可微分的,意味着我们可以计算图像像素如何随着3D模型内部参数的变化而变化。
这是关键步骤。将这张渲染的2D图像输入到一个预训练好的2D扩散模型中:
系统不会直接修改2D图像。相反,它利用渲染过程的可微分性,将2D扩散模型给出的"改进方向"(梯度信号)反向传播回原始的3D模型参数。
这就像是:2D模型说"这个视角下的腿太短了",3D模型就根据这个信号调整自己的几何结构。
重复步骤二至步骤四成千上万次,每次都从不同的随机视角进行渲染和评分。通过持续不断地从各个角度"惩罚"不一致或不真实的渲染结果,3D模型逐渐收敛成一个在所有视角下都一致且高质量的三维物体。
3D扩散模型从2D图像生成3D模型的根本实现方式是:利用2D扩散模型强大的图像先验知识作为"外部监督信号",通过反复渲染3D模型的2D视图,并使用分数蒸馏采样(SDS)技术迭代优化3D表示(如NeRF或网格),最终生成一个在物理空间上一致的三维资产。