这张照片由 Brian Aitkenhead 在 Unsplash 拍摄。
光重渲染是指根据特定的目标光照条件来重新渲染给定的输入场景。这是计算机视觉和图形学领域中的一个至关重要的任务。然而,这个问题难以定义,因为物体在场景中的外观受到光照、形状和材质的复杂影响。这些因素共同作用会导致许多不确定性。例如,看一张场景的照片时,这个暗斑是由于光照的影子还是材料本身较暗?要有效进行光重渲染,辨别这些因素是关键。
在这篇博客文章中,我们将讨论不同的论文是如何通过扩散模型来解决光照调整问题的。光照调整包括简单的光照调整、图像调和、阴影移除和固有分解等多种子问题。这些领域对于场景编辑非常重要,例如平衡合成图像中的色彩和阴影,或分离材质和光照属性。我们首先介绍光照调整的问题,并简要讨论扩散模型和ControlNets。然后我们将讨论解决不同场景光照调整的不同方法,从单一物体到肖像,再到大型场景。
光照调整
目标是将场景分解为基本组成部分,如几何形状、材质和光照交互,并对他们进行参数化建模。一旦解决这些问题,我们就可以根据自己的喜好进行调整。场景中某点的外观可以用渲染方程来描述,如下所示:
渲染方程式来自推特:来源
大多数方法旨在单独解决渲染方程中的每个组成部分。一旦解决了这些问题,我们就可以进行重新光照和材质编辑。由于光照项L同时出现在方程的两边,因此该方程无法直接求解,只能通过蒙特卡洛方法或近似方法求解。
另一种方法是基于数据的学习,这种方法不是显式地建模场景属性,而是直接从数据中进行学习。例如,网络可以直接从数据中学习表面的材质属性,而不需要拟合参数函数。数据驱动的方法已经显示出比参数化方法更强大。尤其是对于渲染和材质估计任务来说,收集这些高质量数据非常困难。
用于光照和材料估算的数据集非常稀缺,因为它们需要昂贵且复杂的设置,例如光棚来捕捉详细的光照互动。只有少数组织能够负担得起这些设置,这限制了可用于训练和评估的数据。目前没有完整的全身体光棚数据集公开可用,这进一步凸显了这一问题。
随着大量在线图像和视频数据的预训练,计算机视觉经历了重大变革。这促使了基础模型的诞生,这些模型作为强大的通用模型,可以针对各种特定任务进行微调。扩散模型通过逐步逆转添加噪声的过程,生成逼真的数据。利用其生成高质量样本的能力,这些模型从学习到的分布中进行,已成为解决各种生成任务的重要工具之一。
来自 source 的潜在扩散模型技术
其中一个最突出的例子是Stable Diffusion(SD),它是在包含50亿张图像文本对的LAION-5B数据集上训练的。它编码了大量关于视觉概念的通用知识,使其适合特定任务的微调。在训练过程中,它学习到了诸如椅子通常有四条腿或识别汽车的结构等基本关系和关联。这种内在的理解使Stable Diffusion能够生成高度连贯和逼真的图像,并可用于预测其他模态。基于这一思路,是否存在可能利用预训练的SD来解决场景重光照的问题?
所以我们如何微调LDMs呢?一种简单直接的方法是在LDMs上进行迁移学习。这包括冻结早期层(这些层捕捉的是通用特征),并对特定任务进行模型的微调。尽管这种方法已经在一些论文中被采用,例如Alchemist(用于材质转移),但它需要大量的配对数据,以使模型能够很好地适应不同的情况。这种方法的另一个缺点是存在灾难性遗忘的可能性,即模型会失去在预训练过程中学到的知识,这将使模型在各种条件下难以泛化。
ControlNet 图表来自:source
另一种微调此类大型模型的方法是引入ControlNet。在这里,网络的一个复制被制作出来,并且原始网络的权重被冻结。在训练过程中,仅更新复制网络的权重,并将条件输入信号作为输入传递给复制网络。原始网络继续利用其预先训练的知识。
虽然这增加了内存占用,但好处是,我们不会失去在大规模数据集上训练所获得的泛化能力。它在学习当前任务特定关系的同时,仍能保持高质量输出的能力,适用于各种提示输入。
此外,它还有助于模型学习控制输入与预期输出之间稳健和有意义的联系。通过将控制网络从核心模型中解耦开来,它避免了过拟合或灾难性遗忘的可能。它也需要显著较少的配对数据进行训练。
虽然还有其他微调基础模型的方法——例如低秩适应(LoRA)等方法——我们将主要讨论两种方法:传统的迁移学习和ControlNet。这些方法对于理解各种论文如何利用扩散模型进行基于图像的重光照研究特别重要。
DiLightNet:精细化的光照控制基于扩散模型的图像生成
介绍
这项工作提出了一种更精细的控制输入图像光照的方法。输入图像可以是生成的,也可以直接提供。此外,它还可以根据文本描述改变物体的材质。目标是对光照效果进行更精细的控制。
方法
方法图示来自来源 source 收录的文献。
对于给定的输入图像,预处理步骤如下:
ControlNet 输入来自该来源链接: source
一旦这些图像生成,用于训练一个ControlNet模块。输入图像和掩码通过一个编码解码网络,输出一个12通道的特征图,然后,将这个12通道特征图与辐射线索图像(按通道拼接在一起)相乘。因此,在训练期间,噪声目标图像会使用这个自定义的12通道图像作为条件信号来去除噪声。
此外还提供了一个外观随机数,以确保在不同光照条件下外观的一致性。如果没有它,网络将产生不同的光与物质相互作用的效果。还可以通过输入文本来调整外观,例如,通过添加“塑料/亮面金属”等描述来改变生成图像的材质。
实施
该数据集使用来自Objaverse的25000个合成物体进行整理和筛选。每个物体从4个不同的视角进行渲染,并采用12种不同的光照条件,包括点光源、多点光源、环境光和区域光。在训练过程中,在Blender中渲染了辐射线索。
ControlNet 模块使用稳定扩散 v2.1 作为基础预训练模型进行优化。训练大约耗时 30 小时,在 8 块 NVIDIA V100 GPU 上进行。训练数据是在 Blender 中以 512x512 分辨率生成的。
结果
DiLightNet 的结果源自<source>(https://arxiv.org/pdf/2409.13690)</source>
这张图展示了暂定参考图像以及该对象相应的重新照明目标条件。
DiLightNet 的结果来源于 https://arxiv.org/pdf/2409.13690
此图展示了如何通过文本指令来调整物体的材质。
DiLightNet的结果源自[source](https://arxiv.org/pdf/2409.13690).
这张图展示了在不同环境光照条件下生成的更多AI生成的临时图像的结果。
DiLightNet 的结果来自 来源
这幅图展示了当光的初始条件未设定时,网络提供的不同解决方法来处理光相互作用。
限制条件
由于是在合成对象上训练的,该方法处理真实图像时表现较差。但在处理由AI生成的临时图像时表现更好。此外,材料与光线之间的相互作用可能无法完全符合提示的意图。由于它依赖于深度图来生成辐射线索,可能会导致结果不尽如人意。最后,生成的旋转光源视频可能无法保持一致。
神经灯光师:通过扩散技术重新照亮任何物体
这是一个简单的介绍
这项工作提出了一种端到端的2D光照扩散模型。该模型从包含基于物理材质和HDR环境映射的合成数据集中学习物理规律。它可以进一步用于多视角的重新光照,并用于创建场景的3D模型。
方法如下:
来自 [ source ] 的神经Gaffer方法示意图来自 [ source ] 的神经Gaffer方法图解来自 [ source ] (https://arxiv.org/pdf/2406.07520)
给定一张图像和一个目标高动态范围环境映射,目标是学习一个模型,该模型能够根据目标HDR环境映射合成给定图像的重光照版本,这里,给定的图像只是一个单一的对象。这是通过采用预训练的Zero-1-to-3模型来实现的。Zero-1-to-3是一个根据视向条件化的扩散模型,用于渲染输入图像的新视图。舍弃了模型中的新颖视图合成组件,为了纳入光照条件,将输入图像和环境映射的编码与去噪潜变量进行拼接。
输入的 HDR 环境映射 E 分为两个部分:E_l,这是一个捕捉低光照区域照明细节的色调映射低动态范围表示;E_h,则是一个对数归一化的映射图,保留整个光谱范围的信息。这两部分共同为网络提供了一个平衡的能量光谱表示,确保准确调整光照,同时避免因亮度过高而导致输出过曝。
另外,输入图像的CLIP嵌入也被作为输入数据。因此,模型的输入包括输入图像、LDR图像、归一化的HDR图像以及图像的CLIP嵌入,所有这些都作为条件来影响去噪模型。接着,这个网络会被用来做3D对象的重光照,作为先验条件。
实施起来
该模型是在一个自定义的Relit Objaverse数据集上训练的,该数据集包含90K个对象。对于每个对象,有204张在不同的光照条件和视角下渲染的图像。整个数据集包含了大约18.4M张分辨率为512x512的图像。
该模型是从Zero-1-to-3的检查点微调而来,仅微调了去噪网络。输入的环境贴图被降采样至256x256分辨率。该模型在8块A6000 GPU上训练了5天。还可以进行其他下游任务,如基于文本的重新光照处理和对象插入,可以完成。
成果
他们展示了不同背景下的比较,以及其他作品如DilightNet和IC-Light等的比较。
神经编辑器的输出来源于 source
此图对比了他们的方法与另一种基于ControlNet的方法IC-Light的光照效果。他们的方法能生成与旋转环境图相匹配的光照和颜色。
[source]中的Neural Gaffer结果来自source
此图比较了他们的方法与基于ControlNet的DiLightnet方法的光照效果结果。他们的方法能够产生镜面反射高光并准确还原颜色。
限制条件
主要的限制在于它只能生成256x256的低分辨率图片。另外,它只能处理物体,在人像补光方面表现不佳。
和谐重焕光彩:光照感知技术的人物背景替换(https://arxiv.org/pdf/2312.06886)
介绍
图像融合是将前景主体的颜色和光照特性与背景融合,使其成为自然的组合的过程。这项工作提出了一种基于扩散模型的方法来解决这一问题。
方法
来自源链接的方法图 source
给定一个输入的合成图像、alpha 通道蒙版和一个目标背景,目标是预测一个光照调整后的人像图像。这是通过训练一个 ControlNet 来预测和谐图像输出来实现的。
在第一阶段,我们训练一个背景控制网络模型,该模型以合成图像和目标背景为输入,输出一张重新光照处理过的人像。在训练过程中,去噪网络将含噪的目标图像与合成图像结合,并预测噪声,背景通过控制网提供条件信息。由于背景图像是LDR(低动态范围)图像,它们提供的信号不足以用于重新光照。
在第二个阶段,训练了一个环境图控制网模型。HDR环境图(高动态范围环境图)提供更多的信号用于重新光照,从而获得更好的结果。然而在测试时,用户只提供LDR背景(低动态范围背景)。因此,为了填补这一差距,使这两个控制网模型相互对齐。
最后通过环境地图ControlNet模型生成更多数据,生成更多数据后,对背景ControlNet模型进行微调以生成更逼真的图像。
实现
用于训练的数据集包含40万张图像对样本,这些样本是通过100个光棚精心挑选的。进一步,在第三阶段,为了进一步提高照片的真实感,额外生成了20万张合成图像对样本。
这个模型是基于InstructPix2PIx的检查点进行微调的,并且是在8个A100 GPU上以512x512的分辨率训练出来的。
以下是结果
来自来源的'Relightful Harmonization'
此图展示了该方法如何减弱输入中的强烈阴影,这些阴影通常很难处理。左边是输入图像,右边是重新照亮后的图像。
来自源链接的Relightful Harmonization
重新焕发的和谐成果来自https://arxiv.org/pdf/2312.06886
这些图表显示了真实世界测试对象的结果。他们的方法能去掉阴影,使构图更自然,比其他方法更胜一筹。
限制
尽管这种方法能够合理地重新照亮主体,但它在身份保存方面表现不佳,并且在保持衣服或头发颜色的方面也存在困难。此外,它可能难以正确消除阴影,并且它也不会估算反照率,这对于复杂的光线相互作用至关重要。
使用多光照合成进行光辐射场光照处理的扩散方法论
前言
这项工作提出了一种二维光照增强扩散模型,该模型进一步用于重光照场景辐射场。首先,训练一个ControlNet模型来预测在新的光照方向下的场景。然后使用该模型生成更多数据,最终用于拟合可重光照的辐射场。本节将讨论这种二维重光照模型。
做法
给定一系列图像 (X_i) 及其对应的深度图 (D)(通过现成的方法计算得到),以及光照方向 (l_i),目标是预测在光照方向 (l_j) 下的场景。在训练过程中,去噪网络的输入包括在随机光照下拍摄的图像 (X_i) 和深度图 (D) 与噪声目标图像 (X_j) 的组合。光照方向使用 4 阶球谐函数(SH)编码,并通过 ControlNet 模型进行条件化处理。
此方法的图来自 source
虽然这带来了不错的结果,但仍存在一些显著的问题。它无法很好地保留颜色,并导致对比度的损失。此外,它还会产生失真的边缘。为了解决这些问题,他们将预测结果的颜色与输入图像进行匹配,以补偿颜色差异。这通过将图像转换到LAB颜色空间并进行通道归一化来实现。然后计算真实值与去噪输出之间的损失。为了保留边缘,解码器预先在图像修复任务上进行了训练,这有助于保留边缘。该网络随后被用来创建新光照方向下的相应场景,进一步用于生成可重新光照的辐射场。
实施
来自该论文的2D relighting模块的推断图
该方法基于Multi-Illumination数据集开发。该数据集包含1000个室内场景的图像,这些场景在25个照明方向下拍摄。图像中还包括一个漫反射球体和一个金属球体,这两个球体有助于获取世界坐标系中的光方向。此外,还有一些场景在Blender中进行了渲染。网络是在分辨率为1536x1024的图像上进行训练的,训练使用了18个非正面照明方向的场景在1015个室内场景上进行。
ControlNet模块使用Stable Diffusion v2.1模型作为骨干模型进行训练。它经过在多块A6000 GPU上进行了150K次迭代的训练。
结果如下
结果来自 source
在这里,这些分散的球体显示了测试时光线的方向。可以看出,这种方法可以产生可信的光照效果。
结果数据来自 来源
这张图显示了当光线改变方向时,镜面反射和阴影是如何移动的,比如水壶上的亮光部分。
结果来源于source
这张图将结果与其他可重光照的辐射场方法进行了比较。他们的方法明显在保留颜色和对比度方面做得更好。
限制条件
在光照变化不大的非常规场景中,该方法仍然能够勉强胜任。此外,它很难完全准确地消除阴影,并且无法确保物理准确性,可能会生成错误的阴影。
LightIt:用于扩散模型的照明建模与控制
介绍:
这项工作提出了一种单视图阴影估算方法,用于生成一幅图像及其对应的直接光照阴影。这种阴影可用于指导场景生成并重新照亮场景。他们将问题视为本征分解问题,即将场景分解为反射和阴影。我们将在这里讨论重新光照的部分。
这种方法
方法图如[来源]所示(来自该来源)。
给定输入图片、对应的表面法向量、文本条件和目标直接光照图,它们生成了一张重新光照的风格化图片,这是通过训练一个ControlNet模块实现的。
在训练过程中,带有噪音的目标图像与文本条件一起传递给去噪网络。未处理图像和带阴影的目标图像被拼接在一起并通过残差控制编码器处理。然后用特征图来调控网络。此外,它还会通过残差控制解码器重建以帮助训练规范化。
实施
这个数据集的图表来自 source。
该数据集包括户外Laval数据集中的户外HDR全景图片。从这些图片中裁剪出250张512x512的图像,并应用了各种相机效果。数据集包括51250个低动态范围(LDR)图像和描述文本,以及估计的法线贴图和光照贴图。法线贴图是通过现成的算法从深度图估计得出的。
ControlNet 模块是基于 stable diffusion v1.5 微调而来的。网络经过了两次迭代的训练。其他训练细节这里就不赘述了。
结果:
结果来自 source
此图表表明,生成的图像具有一致的照明,与目标阴影效果一致,这是针对自定义文本风格提示而言。这不同于其他仅专注于照片逼真效果的论文。
数据引自source [1](来源:https://arxiv.org/pdf/2403.10615)
这张图显示了在不同的照明条件下身份是如何保持的。
这些结果如下所示来自 [source]
这张图显示了在不同光照条件下各种场景和风格的结果。
结果来自以下来源:source
此图比较了重新光照处理与另一种方法,并利用扩散模型有助于解决光照阴影的模糊问题。
限制条件
由于这种方法假设了定向光源,因此可以追踪任意方向的光线路径。它需要光照信息来生成图像,而这些光照信息并不容易获得。也就是说,他们的方法不适用于人像和室内环境。
我们讨论了一些使用2D扩散模型进行重新光照的论文,这是一个非详尽的列表。我们探索了不同的方式来对扩散模型进行条件设定,用于重新光照,包括辐射线索、直接阴影图像、光照方向和环境贴图等。大多数这些方法在合成数据集上显示结果,但在分布外的数据集上的泛化能力较弱。每天都有新的论文发布,基础模型也在持续改进。最近发布了一个基于Flux模型的ControlNet模型IC-Light2。保持身份识别将是一个有趣的挑战,因为这非常具有挑战性。
参考: