NSDT工具推荐: Three.js AI纹理开发包 - YOLO合成数据生成器 - GLTF/GLB在线编辑 - 3D模型格式在线转换 - 可编程3D场景编辑器 - REVIT导出3D模型插件 - 3D模型语义搜索引擎 - AI模型在线查看 - Three.js虚拟轴心开发包 - 3D模型在线减面 - STL模型在线切割 - 3D道路快速建模
重新照明(relighting)是在给定输入场景的情况下,在指定的目标照明条件下渲染场景的任务。这是计算机视觉和图形学中的关键任务。然而,这是一个不适定问题,因为场景中物体的外观是由光源、几何形状和表面材料属性等因素之间的复杂相互作用产生的。这些相互作用会产生歧义。例如,给定一个场景的照片,物体上的黑点是由于照明投射的阴影造成的,还是材料本身的颜色很暗?区分这些因素是有效重新照明的关键。
在这篇博文中,我们讨论了不同的论文如何通过扩散模型解决重新照明问题。重新照明包含各种子问题,包括简单的照明调整、图像协调、阴影去除和内在分解。这些领域对于优化场景编辑至关重要,例如在合成图像中平衡颜色和阴影或分离材料和照明属性。我们将首先介绍重新照明的问题,并简要讨论扩散模型和控制网络。然后,我们将讨论解决不同场景中重新照明问题的不同方法,这些场景包括从单个物体到肖像再到大型场景。
1、解决重新照明问题
目标是将场景分解为其基本组件(例如几何图形、材质和光线相互作用),并以参数方式对其进行建模。一旦解决,我们就可以根据自己的喜好进行更改。场景中某个点的外观可以通过渲染方程描述如下:

大多数方法旨在求解渲染方程的每个单个组件。一旦解决,我们就可以执行重新照明和材质编辑。由于照明项 L 在两边,因此无法通过分析评估该方程,只能通过蒙特卡洛方法或基于近似的方法求解。
另一种方法是数据驱动学习,它不是明确地建模场景属性,而是直接从数据中学习。例如,网络可以从数据中学习表面的材质属性,而不是拟合参数函数。事实证明,数据驱动方法比参数方法更强大。然而,它们需要大量高质量的数据,而这些数据很难收集,尤其是对于照明和材料估算任务而言。

用于照明和材料估算的数据集很少见,因为它们需要昂贵、复杂的设置(例如灯光舞台)来捕捉详细的照明交互。只有少数组织可以使用这些设置,这限制了用于训练和评估的数据的可用性。目前还没有公开的全身地面真实灯光舞台数据集,这进一步凸显了这一挑战。
2、扩散模型
随着在线上大量图像和视频数据上进行预训练的出现,计算机视觉经历了重大转变。这导致了基础模型的发展,这些模型是强大的通用模型,可以针对各种特定任务进行微调。扩散模型通过学习从独立样本中建模底层数据分布来工作,逐渐逆转噪声添加过程以生成真实数据。通过利用从学习分布中生成高质量样本的能力,扩散模型已成为解决各种生成任务的重要工具。

其中一个最突出的例子是稳定扩散 (SD),它是在由 50 亿个图像文本对组成的大规模 LAION-5B 数据集上训练的。它编码了大量关于视觉概念的一般知识,使其适合针对特定任务进行微调。它在训练过程中学习了基本的关系和关联,例如椅子有 4 条腿或识别汽车的结构。这种内在理解使稳定扩散能够生成高度连贯和逼真的图像,并用于微调以预测其他模态。基于这个想法,问题出现了,我们是否可以利用预训练的 SD 来解决场景重新照明的问题。
那么我们如何微调 LDM?一种简单的方法是使用 LDM 进行迁移学习。这将冻结早期层(捕获一般特征)并针对特定任务微调模型。虽然这种方法已被一些论文如 Alchemist(用于材料转移)使用,但它需要大量配对数据才能使模型很好地概括。这种方法的另一个缺点是存在灾难性遗忘的风险,即模型会丢失在预训练期间获得的知识。这会限制其在各种条件下进行推广的能力。

另一种微调此类大型模型的方法是引入ControlNet。在这里,复制网络并冻结原始网络的权重。在训练期间,仅更新重复的网络权重,并将调节信号作为输入传递给重复的网络。原始网络继续利用其预训练的知识。
虽然这会增加内存占用,但优点是我们不会失去从大规模数据集训练中获得的泛化能力。它确保它保留了在广泛提示中生成高质量输出的能力,同时学习当前任务所需的任务特定关系。
此外,它还帮助模型学习控制输入和期望输出之间的稳健且有意义的联系。通过将控制网络与核心模型分离,可以避免过度拟合或灾难性遗忘的风险。它还需要更少的配对数据来训练。
虽然还有其他用于微调基础模型的技术——例如 LoRA(低秩自适应)等——但我们将重点介绍讨论的两种方法:传统迁移学习和 ControlNet。这些方法对于理解各种论文如何使用扩散模型解决基于图像的重新照明特别重要。
3、DiLightNet

这项工作提出了对输入图像重新照明的细粒度控制。输入图像可以生成或作为输入提供。此外,它还可以根据文本提示更改对象的材质。目标是对照明效果施加细粒度控制。
3.1 方法

给定输入图像,应用以下预处理步骤:
- 使用现成的 SOTA 模型估计背景和深度图。
- 通过对深度图进行三角测量来提取网格
- 生成 4 种不同的辐射提示图像。通过为提取的网格分配不同的材质并在目标照明下渲染它们来创建辐射提示图像。辐射提示图像作为编码照明效果(如镜面反射、阴影和全局照明)的基础。

一旦生成这些图像,它们就会训练 ControlNet 模块。输入图像和掩码通过编码器解码器网络,输出 12 通道特征图。然后将其与按通道连接在一起的辐射提示图像相乘。因此,在训练期间,使用这个自定义的 12 通道图像作为调节信号对嘈杂的目标图像进行去噪。
此外,还提供外观种子,以便在不同的照明下获得一致的外观。如果没有它,网络会对光与物质的相互作用做出不同的解释。此外,可以通过文本提供更多提示来改变外观,例如通过添加“塑料/闪亮金属”来改变生成图像的材质。
3.2 实现
数据集是使用来自 Objaverse 的 25K 合成对象策划的。每个对象都从 4 个独特的视图渲染,并使用 12 种不同的照明条件点亮,包括点源照明、多点源、环境地图和区域光。为了进行训练,辐射提示在搅拌机中渲染。
ControlNet 模块使用稳定扩散 v2.1 作为基础预训练模型进行改进。在 8x NVIDIA V100 GPU 上训练大约需要 30 小时。训练数据在 Blender 中以 512x512 分辨率渲染。
3.3 结果

此图显示了临时图像作为参考,以及对象重新点亮的相应目标照明。

来此图显示了如何使用文本提示来更改对象的材质。

此图显示了 AI 生成的临时图像的更多结果,然后在不同的输入环境光条件下进行渲染。

此图显示了如果外观种子不固定,网络为解决光相互作用而提出的不同解决方案。
3.4 局限性
由于对合成物体进行训练,该方法对真实图像的效果不是很好,而对 AI 生成的临时图像的效果要好得多。此外,材料光交互可能不符合提示的意图。由于它依赖深度图来生成辐射线索,因此可能无法获得令人满意的结果。最后,生成旋转光视频可能不会产生一致的结果。
4、神经 Gaffer

这项工作提出了一种端到端 2D 重新照明扩散模型。该模型从具有基于物理的材料和 HDR 环境图的合成数据集中学习物理先验。它可以进一步用于重新照亮多个视图并用于创建场景的 3D 表示。
4.1 方法

给定一个图像和一个目标 HDR 环境地图,目标是学习一个可以合成图像的重新照明版本(此处为单个对象)的模型。这是通过采用预先训练的 Zero-1-to-3 模型实现的。Zero-1-to-3 是一种扩散模型,它以视图方向为条件来渲染输入图像的新视图。它们丢弃了其新的视图合成组件。为了结合照明条件,它们将输入图像和环境地图编码与去噪潜伏连接起来。
输入 HDR 环境地图 E 分为两个组件:E_l,一种色调映射的 LDR 表示,用于捕获低强度区域的照明细节,以及 E_h,一种对数归一化地图,用于保留整个光谱的信息。它们共同为网络提供了能量谱的平衡表示,确保准确的重新照明,而不会因极端亮度而使生成的输出显得褪色。
此外,输入图像的 CLIP 嵌入也作为输入传递。因此,模型的输入是输入图像、LDR 图像、归一化 HDR 图像和图像的 CLIP 嵌入,所有这些都调节去噪网络。然后,该网络被用作进一步 3D 对象重新照明的先验。
4.2 实现
该模型在包含 90K 个对象的自定义 Relit Objaverse 数据集上进行训练。对于每个对象,有 204 张在不同照明条件和视点下渲染的图像。总的来说,数据集包含 18.4 M 张分辨率为 512x512 的图像。
该模型从 Zero-1-to-3 的检查点进行微调,并且只对去噪网络进行微调。输入环境图被下采样到 256x256 分辨率。该模型在 8 个 A6000 GPU 上训练了 5 天。可以实现进一步的下游任务,例如基于文本的重新照明和对象插入。
4.3 结果
它们显示了与不同背景的比较以及与其他作品(如 DilightNet 和 IC-Light)的比较。

此图比较了他们的方法与另一种基于 ControlNet 的方法 IC-Light 的重新照明结果。他们的方法可以通过旋转环境地图产生一致的照明和颜色。

此图比较了他们的方法与另一种基于 ControlNet 的方法 DiLightnet 的重新照明结果。他们的方法可以产生镜面高光和准确的颜色。
4.4 局限性
一个主要的限制是它只能产生低图像分辨率(256x256)。此外,它仅适用于物体,并且在肖像重新照明方面表现不佳。
5、重新照明协调

图像协调是将前景主体的颜色和照明特征与背景对齐以使其成为合理构图的过程。这项工作提出了一种基于扩散的方法来解决该任务。
5.1 方法

给定输入合成图像、alpha 蒙版和目标背景,目标是预测重新点亮的肖像图像。这是通过训练 ControlNet 来预测协调图像输出来实现的。
在第一阶段,我们训练一个背景控制网络模型,该模型以合成图像和目标背景为输入并输出重新点亮的肖像图像。在训练期间,去噪网络将噪声目标图像与合成图像连接起来并预测噪声。背景通过控制网络作为条件提供。由于背景图像本身是 LDR,因此它们无法提供足够的信号用于重新点亮。
在第二阶段,训练环境地图控制网络模型。HDR 环境地图为重新点亮提供了更多信号,这给出了更好的结果。然而在测试时,用户只提供 LDR 背景。因此,为了弥补这一差距,2 个控制网络模型相互对齐。
最后,使用环境地图 ControlNet 模型生成更多数据,然后对背景 ControlNet 模型进行微调以生成更逼真的结果。
5.2 实现
用于训练的数据集由使用 100 个 lightstage 策划的 400k 个图像对样本组成。在第三阶段,生成了另外 200k 个合成样本,用于微调以实现照片级真实感。
该模型是从 InstructPix2PIx 检查点微调的。该模型在 8 个 A100 GPU 上以 512x512 分辨率进行训练。
5.3 结果

该图显示了该方法如何中和输入中通常难以去除的明显阴影。左边是输入,右边是重新点亮的图像。

这些图显示了现实世界测试对象的结果。与其他方法相比,他们的方法能够去除阴影并使构图更合理。
5.4 局限性
虽然这种方法能够合理地重新照亮主体,但它在身份保存方面表现不佳,并且难以保持血凝块的颜色
他或头发。此外,它可能很难正确消除阴影。此外,它也无法估计对复杂光相互作用至关重要的反照率。
6、多照明合成

这项工作提出了一种 2D 重新照明扩散模型,该模型进一步用于重新照明场景的辐射场。它首先训练 ControlNet 模型来预测新光方向下的场景。然后,该模型用于生成更多数据,最终用于拟合可重新照明的辐射场。我们将在本节中讨论 2D 重新照明模型。
6.1 方法
给定一组图像 X_i 和相应的深度图 D(通过现成的方法计算)和光方向 l_i,目标是预测光方向 l_j 下的场景。在训练期间,去噪网络的输入是随机照明下的 X_i、深度图 D 与嘈杂的目标图像 X_j 连接。光方向用 4 阶 SH 编码并通过 ControlNet 模型进行调节。

虽然这会产生不错的结果,但也存在一些重大问题。它无法保留颜色并导致对比度损失。此外,它会产生扭曲的边缘。为了解决这个问题,他们将预测与输入图像进行颜色匹配以补偿色差。这是通过将图像转换为 LAB 空间然后进行通道归一化来完成的。然后在真实值和去噪输出之间计算损失。为了保留边缘,解码器在图像修复任务上进行了预训练,这有助于保留边缘。然后使用该网络在新的光方向下创建相应的场景,进一步用于创建可重新照明的辐射场表示。
6.2 实现

该方法是在多照明数据集上开发的。它包括在 25 个照明方向下拍摄的 1000 个室内场景的真实场景。这些图像还包含一个漫反射和一个金属球,可用于获取世界坐标中的光方向。此外,在 Blender 中渲染了一些场景。该网络在分辨率为 1536x1024 的图像上进行训练,训练包括 1015 个室内场景中的 18 个非正面光方向。
ControlNet 模块使用 Stable Diffusion v2.1 模型作为主干进行训练。它在多个 A6000 GPU 上进行了 150K 次迭代训练。
6.3 结果

此处漫反射球显示测试时间光方向。可以看出,该方法可以呈现合理的重新照明结果

该图显示了随着光方向的变化,镜面高光和阴影如何移动,如水壶上的闪亮高光所示。

该图将结果与其他可重新照明的辐射场方法进行了比较。与其他方法相比,他们的方法显然更好地保留了颜色和对比度。
6.3 局限性
该方法不强制物理准确性,可能会产生不正确的阴影。此外,它还难以以完全准确的方式完全去除阴影。此外,它对于光照差异不大的分布场景也确实有效。
7、LightIt

这项工作提出了一种单视图阴影估计方法来生成配对图像及其相应的直接光阴影。然后可以使用此阴影来指导场景的生成并重新照亮场景。他们将问题视为内在分解问题,其中场景可以分为反射和阴影。我们将在这里讨论重新照明组件。
7.1 方法

给定输入图像、其对应的表面法线、文本条件和目标直接阴影图像,它们会生成重新照明的风格化图像。这是通过训练 ControlNet 模块实现的。
在训练期间,将噪声目标图像与文本条件一起传递到去噪网络。将法线和目标直接阴影图像连接起来并通过残差控制编码器。然后使用特征图来调节网络。此外,它还通过残差控制解码器重建以规范训练
7.2 实现

数据集由户外 Laval 数据集组成,该数据集由户外真实世界 HDR 全景图组成。从这些图像中,裁剪了 250 张 512x512 图像并应用了各种相机效果。数据集由 51250 个 LDR 图像和文本提示样本以及估计的法线和阴影图组成。法线图是根据使用现成估计器估计的深度图估计的。
ControlNet 模块从稳定扩散 v1.5 进行了微调。网络训练了两个时期。其他训练细节不共享。
7.3 结果

该图显示,生成的图像具有与自定义风格化文本提示的目标着色一致的一致照明。这与其他讨论的论文不同,这些论文的唯一重点是照片写实主义。

该图显示了不同照明条件下的身份保存。

该图显示了在变化的照明条件下对不同风格和场景的结果。

该图将重新照明与另一种方法进行了比较。利用扩散先验有助于泛化和解决着色歧义。
7.4 局限性
由于此方法假设定向照明,因此它可以在任意方向上跟踪光线。它需要着色提示来生成不易获得的图像。此外,他们的方法不适用于肖像和室内场景。
8、要点
我们讨论了一份非详尽的论文清单,这些论文利用 2D 扩散模型进行重新照明。我们探索了不同的方法来调节扩散模型以进行重新照明,包括辐射提示、直接阴影图像、光方向和环境地图。这些方法中的大多数都在合成数据集上显示结果,并且不能很好地推广到分布外的数据集。每天都有更多论文出现,基础模型也在改进。最近发布了 IC-Light2,这是一个基于 Flux 模型的 ControlNet 模型。由于保持身份很棘手,因此它采取哪个方向将会很有趣。
原文链接:Let There Be Light! Diffusion Models and the Future of Relighting
BimAnt翻译整理,转载请标明出处