引言
在 3D 计算机视觉领域,最持久的挑战之一就是“静态世界”的假设。传统的 3D 重建技术,如摄影测量法或神经辐射场 (NeRFs) ,通常假设在相机移动的过程中,场景本身是冻结不变的。
但在现实世界中,情况往往并非如此。如果你从互联网上抓取某个著名地标的照片集,这些照片通常是在一天中的不同时间、不同的天气条件下、使用不同的相机拍摄的。即使是在围绕物体进行随手拍摄的过程中,太阳也可能躲进云层,或者你自己的影子可能会投射在拍摄对象上。
当标准的 NeRF 试图从这些不一致的图像中重建 3D 物体时,它会感到困惑。那块暗斑是黑色的油漆表面,还是仅仅是阴影?那个白点是贴纸,还是来自太阳的镜面高光?结果通常是一个“雾蒙蒙”或模糊的重建模型,因为模型试图对这些相互矛盾的信息进行平均化处理。
在最近的一篇论文中,来自 Google 和马里兰大学的研究人员提出了针对这一问题的新颖解决方案。他们的方法——生成式多视图重光照 (Generative Multiview Relighting) , 有效地在尝试构建 3D 模型之前,对所有输入照片的光照进行了“协调”。

如上图 Figure 1 所示,这种方法能够恢复高保真的细节——特别是“闪亮”的镜面高光——这是之前最先进的方法无法捕捉到的。
核心问题: 光照歧义
要理解为什么这种新方法如此重要,我们需要先看看以前的方法是如何处理可变光照的。
“潜在代码”方法
早期的解决方案,如 NeRF-W (野外 NeRF) ,引入了每张图像的“外观嵌入”或潜在代码 (Latent Code) 的概念。这本质上是一个针对每张照片的独特向量,它告诉网络: “这张照片稍微暗一点,”或者“这张照片色调偏暖。”
虽然这种方法在改变场景的整体氛围或曝光方面效果很好,但在处理复杂材质时往往会失败。模型倾向于“解释掉”视点相关的效应。例如,如果一个金属物体在你绕着它移动时闪闪发光,带有外观嵌入的标准模型可能会错误地认为,那个闪光实际上是一块只存在于那张特定照片中的白色油漆。由此产生的 3D 模型看起来是漫反射 (哑光) 的,缺乏真实的光泽感。
“逆向渲染”方法
另一种策略是逆向渲染,它试图将图像物理分解为其组成部分: 几何形状、材质属性 (反照率、粗糙度) 和光照。虽然这在物理上是有依据的,但这个问题在数学上是“不适定 (ill-posed) ”的。有无数种光线和材质的组合可以产生相同的像素颜色。如果没有强先验,这些模型通常无法将光照与纹理区分开来。
“生成式”方法
最近,研究人员开始转向扩散模型 (DALL-E 和 Midjourney 背后的技术) 来对图像进行“重光照”。如果你能使用 AI 编辑所有的输入照片,让它们看起来像是在完全相同的光照下拍摄的,那么 3D 重建问题就又变得简单了。
然而,将扩散模型逐一应用于图像会产生一个新的问题: 一致性 。 如果你独立地对汽车的正面照片和侧面照片进行重光照,扩散模型可能会为每一张照片“产生幻觉 (hallucinate) ”,生成略微不同的光照方向或反射模式。当你将这些不一致的图像输入 3D 流程时,重建就会失败。
解决方案: 两阶段流程
作者提出了一个强大的两阶段流程来正面解决这些问题。
- 多视图重光照: 使用一个同时观察所有图像的扩散模型来协调光照。
- 鲁棒的 3D 重建: 使用一种修改后的 NeRF 架构,它可以处理重光照后残留的微小瑕疵。

Figure 2 提供了一个高层概览。该系统接收 \(N\) 张具有不同光照的图像。它选择一张图像作为“参考”。然后,它处理其他图像以匹配该参考图像的光照条件。最后,这些“协调后”的图像被送入神经辐射场以构建 3D 资产。
第一阶段: 多视图重光照模型
第一个创新在于图像的重光照方式。作者没有孤立地处理每张图像,而是使用了多视图扩散模型 。
该模型接收一组对应于输入图像的噪声潜在代码。关键在于,它使用了 3D 自注意力机制 。 这意味着当模型对图像 A 进行去噪时,它能够“感知”到图像 B 和图像 C 中的内容和几何形状。
通过联合处理图像,该模型建立了对物体形状和目标光照的统一理解。这大大减少了单图像重光照中常见的“幻觉”现象。

Figure 3 展示了这种多视图方法的威力。在 (c) 列中,单图像重光照方法 (IllumiNeRF) 表现挣扎;它生成了看似合理的图像,但光照线索与几何形状并不完美匹配。在 (d) 列中,所提出的多视图方法生成了与真实值几乎相同的结果,因为它利用了所有可用角度的信息来解决歧义。
第二阶段: 带有着色嵌入的 3D 重建
一旦图像被重光照,它们在技术上就是“一致”的。然而,扩散模型并不是完美的物理模拟器。它们可能会生成正确的光照风格,但镜面高光 (光源的闪亮反射) 的确切位置在几何上可能与应有位置相差几个像素。
如果你在这些略有瑕疵的图像上训练标准的 NeRF,模型会被“晃动”的反射搞糊涂,从而产生模糊的伪影。
为了解决这个问题,作者对 NeRF 架构进行了一项巧妙的修改: 着色嵌入 (Shading Embeddings) 。
概念
在传统的 NeRF-W 中,外观嵌入会修改颜色输出。作者认为这对于这个问题来说是错误的方法。相反,他们使用每张图像的向量来扰动表面法线 。
在 3D 图形学中,“法线”是垂直于表面的向量,决定了光线如何从表面反弹。通过允许网络对每张单独的图像稍微调整表面法线,模型可以补偿由扩散重光照过程引入的微小几何误差。
该操作的公式如下:

这里,\(\mathbf{n}_i(\mathbf{x})\) 是图像 \(i\) 在位置 \(x\) 的法线。它是由基础几何特征 \(\mathbf{f}(\mathbf{x})\) 结合可学习的每图像向量 \(\mathbf{v}_i\) 推导出来的。
这使得 3D 模型可以说: “我知道这张特定照片中的反射比它原本的位置稍微偏左了一点。我将仅针对这一帧倾斜表面法线来正确捕捉反射,而不改变物体实际的 3D 形状或颜色。”

Figure S2 演示了为什么这是必要的。这些球面图显示了从重光照图像中提取的光照环境。虽然内容是一致的 (房子和树都在) ,但在样本之间几何形状略有扭曲。着色嵌入吸收了这种扭曲,因此 3D 几何体就不需要去适应这些错误了。
实验结果
研究人员在合成数据集 (Objaverse) 和真实世界拍摄 (NAVI) 上验证了他们的方法。
合成基准测试
Objaverse 数据集提供了一个受控环境来测量准确性。作者在标准物体和特定的“高光 (Shiny) ”子集上进行了测试,以挑战视点相关渲染的极限。

在 Figure 4 中,我们看到了视觉对比。注意苹果 (顶行) 和灭火器 (中行) 。
- NeRFCast + AE (c): 未能捕捉到清晰的反射。
- NeROIC (d): 产生了非常漫反射、哑光的外观。
- IllumiNeRF (e): 由于重光照不一致,导致纹理模糊。
- Ours (f): 捕捉到了与真实值 (g) 匹配的清晰、逼真的镜面高光。
定量数据也支持了这一点:

如 Table 1 所示,与基线相比,所提出的方法实现了显著更高的 PSNR (峰值信噪比) 和 SSIM (结构相似性指数) 得分,特别是在困难的“高光资产”上。
真实世界表现
该方法在真实世界的照片中也表现出色,即使相机姿态可能不完美且光照不可控。

Figure 5 展示了 NAVI 数据集的结果。该方法成功保留了复杂的阴影 (如兔子的耳朵阴影) 和明显的反射 (如光滑的汽车引擎盖) 。

Table 2 证实了这种视觉质量在真实世界数据上也转化为更好的数值表现。
为什么有效: 消融实验
研究人员进行了消融实验,以验证他们流程中的哪些部分起到了关键作用。
多视图上下文的重要性
模型真的需要一次看 64 帧吗?是的。 Table 3 中的细分显示,随着同时处理的帧数 (\(N\)) 增加,重建的质量也会提高。

从 1 帧 (标准的单图像处理) 增加到 64 帧提供了巨大的 PSNR 提升,证明视图之间的交叉注意力对于一致性至关重要。
着色嵌入 vs. 外观嵌入
“着色嵌入” (法线扰动) 真的比标准的“外观嵌入” (颜色修改) 更好吗?

Table 5 给出了答案。使用标准的外观嵌入实际上在某些指标上比完全不使用嵌入表现更差。这很可能是因为外观嵌入鼓励模型“作弊”,将反射烘焙到纹理中。然而,着色嵌入提供了对齐镜面高光所需的灵活性,而不会牺牲几何完整性。
结论
这项研究代表了将 3D 重建从实验室带入野外的重要一步。通过结合生成式扩散模型的创造力和神经辐射场的几何严谨性,作者找到了一种方法来利用以前被丢弃或处理不当的不一致数据。
这项工作的主要收获是:
- 不要单独处理图像: 在进行 3D 重光照时,上下文就是一切。多视图注意力确保了“幻造”的光照在所有角度上都是一致的。
- 生成式 AI 并不完美: 即使是最好的扩散模型也会引入微小的几何误差。
- 适应几何,而不是颜色: 当处理这些微小误差时,调整表面法线 (着色嵌入) 比混合颜色 (外观嵌入) 更好,特别是对于闪亮的物体。
这种方法为从随手拍摄的照片集中生成高质量 3D 资产打开了大门,使得从日常摄影中创建更逼真的数字孪生和虚拟体验成为可能。
](https://deep-paper.org/en/paper/2412.15211/images/cover.png)