论文地址:https://openreview.net/pdf?id=u1cQYxRI1H
论文标题:《SCALING IN-THE-WILD TRAINING FOR DIFFUSIONBASED ILLUMINATION HARMONIZATION AND EDITING BY IMPOSING CONSISTENT LIGHT TRANSPORT》
基于扩散模型的光照编辑新突破:IC-Light方法解析与优化
引言:光照编辑的重要性与挑战
在计算机视觉和图像处理领域,光照编辑是一项基础而关键的技术,它直接关系到图像的真实感和艺术表现力。传统计算机图形学方法依赖于物理光照模型来描绘图像外观(就比如p图常见的增加光源操作,醒图里贴纸有这个功能),而近年来,基于扩散模型的大型图像生成器为这一领域带来了革命性的变化。这些先进模型能够处理各种复杂的"野外"光照效果,包括背光、边缘光的生成,辉光、眩光等特殊效果的添加,以及多样光影条件的模拟,为视觉内容创作提供了前所未有的灵活性。
然而,随着应用场景的不断扩展,基于扩散模型的光照编辑面临着两大核心挑战:
一是模型行为的不可控性,随着数据规模和复杂度的增加,模型容易偏离预期的光照编辑目标;
二是图像细节和内在属性的保持难题,扩散模型固有的随机性使得精细细节保留变得困难。这些挑战严重制约了扩散模型在光照编辑领域的进一步发展和应用。。
下面先结合论文介绍一下之前的传统的方法
传统方法与扩散模型的演进
由Sun等人(2019)开创性地使用DNN从光场数据提取光照特征的方法
论文中居然没有文献标注
早期研究主要依靠深度神经网络从光场数据中学习先验知识。
数据准备:收集和整理光场数据作为训练数据集,其中涵盖不同光照条件、场景和物体的光场信息 。对这些数据进行预处理,如归一化、裁剪等操作,使其符合神经网络输入要求。
设计深度神经网络(DNN)结构:根据光场数据特点和光照特征提取目标,选择或设计合适的 DNN 结构,比如卷积神经网络(CNN)及其变体(因为 CNN 在处理图像和空间数据方面有优势,光场数据也具有一定空间特性)。也可能会结合循环神经网络(RNN)或 Transformer 结构来处理光场数据中的序列信息或全局关系(如果有的话) 。
训练神经网络:将预处理后的光场数据输入到搭建好的 DNN 中进行训练,通过反向传播算法和合适的优化器(如随机梯度下降及其变种)来调整网络参数,使网络学习到光场数据与光照特征之间的映射关系。在训练过程中,需要定义合理的损失函数,比如均方误差(MSE)、感知损失等,以衡量预测的光照特征与真实特征之间的差异 。
特征提取:训练好模型后,将新的光场数据输入到已训练的网络中,通过前向传播计算得到相应的光照特征输出。这些特征可能包括光照强度分布、光照方向信息、不同材质表面的反射特性相关特征等。
由Nestmeyer等人(2020)进一步将物理先验融入网络训练;
将物理先验融入网络训练能使模型更好地利用领域知识,提高训练效果和泛化能力。常见的方法包括在损失函数中添加物理约束、基于物理知识初始化网络参数、利用物理规律进行数据增强以及构建包含物理模型的网络架构等。下面详细介绍这些方法及其实现方式,并结合公式说明物理先验是如何加入到模型中的。
在计算机视觉和深度学习中,将光照的物理结合公式融入模型以及设计相关损失函数是较为常见的操作,以下结合一些具体的例子为你详细介绍:
1.基于大气散射模型的低光照图像增强
物理模型公式:大气散射模型可以表示为 I ( x ) = J ( x ) t ( x ) + A ( 1 − t ( x ) ) I(x)=J(x)t(x)+A(1−t(x)) I(x)=J(x)t(x)+A(1−t(x))
,其中 I ( x ) I(x) I(x)是观测到的低光照图像, J ( x ) J(x) J(x)是场景的真实辐射度(即增强后的图像), t ( x ) t(x) t(x)是传输图,表示光线在介质中传播未被散射的比例, A A A是全局大气光值。
融入模型:在构建低光照图像增强模型时,将这个公式作为模型的基础结构。例如,可以设计一个神经网络来估计传输图 t ( x ) t(x) t(x)和大气光值 A A A。网络的输入是低光照图像 I ( x ) I(x) I(x)
,输出是预测的 t ( x ) t(x) t(x)和 A A A。然后根据上述公式计算出增强后的图像 J ( x ) = I ( x ) − A ( 1 − t ( x ) ) t ( x ) J(x)=\frac{I(x)−A(1−t(x))}{t(x)} J(x)=t(x)I(x)−A(1−t(x)) 。
损失函数:为了使模型生成的增强图像更接近真实场景,设计以下损失函数:
- 像素级均方误差(MSE)损失: L m s e = 1 N ∑ x ∈ Ω ( J g t ( x ) − J ( x ) ) 2 L_{mse}=\frac{1}{N}∑_{x∈Ω}(J_{gt}(x)−J(x))^2 Lmse=N1x∈Ω∑(Jgt(x)−J(x))2其中 J g t ( x ) J_{gt}(x) Jgt(x)是真实的高光照图像(如果有标注的话), J ( x ) J(x) J(x)是模型生成的增强图像, Ω Ω Ω是图像的像素集合, N N N是像素数量。
- 感知损失:利用预训练的卷积神经网络(如 VGG 网络)提取图像的高层特征,计算增强图像和真实图像在这些特征上的差异。设 ϕ i ϕ_i ϕi
表示 VGG 网络第 i i i层的特征提取函数,则感知损失为
L p e r c e p t u a l = ∑ i 1 N i ∑ x ∈ Ω ( ϕ i ( J g t ( x ) ) − ϕ i ( J ( x ) ) ) 2 L_{perceptual}=∑_i\frac{1}{N_i}∑_{x∈Ω}(ϕ_i(J_{gt}(x))−ϕ_i(J(x)))^2 Lperceptual=i∑Ni1x∈Ω∑(ϕi(Jgt(x))−ϕi(J(x)))2其中 N i N_i Ni 是第 i i i层特征图的元素数量。
- 基于物理的约束损失:为了确保估计的传输图 t ( x ) t(x) t(x)和大气光值
A A A符合物理规律,可以添加约束。例如,传输图 t ( x ) t(x) t(x)的值应该在
[ 0 , 1 ] [0,1] [0,1]之间,可以添加损失项 L t = 1 N ∑ x ∈ Ω ( m a x ( 0 , t ( x ) − 1 ) 2 + m a x ( 0 , − t ( x ) ) 2 L_t=\frac{1}{N}∑_{x∈Ω}(max(0,t(x)−1)^2+max(0,−t(x))^2 Lt=N1x∈Ω∑(max(0,t(x)−1)2+max(0,−t(x))2对于大气光值 A A A,可以根据图像的统计信息添加合理的范围约束,并计算相应的损失。
2.基于光照反射模型的图像渲染
物理模型公式:经典的朗伯反射模型(Lambertian reflection model)表示为 E = ρ L c o s θ E=ρLcosθ E=ρLcosθ,其中 E E E是物体表面接收到的光照强度, ρ ρ ρ是物体表面的反射率, L L L是光源强度, θ θ θ是光源方向和物体表面法线方向的夹角。
融入模型:在图像渲染模型中,利用这个公式来计算物体表面的光照效果。可以将物体表面的反射率 ρ ρ ρ、光源强度 L L L和表面法线方向作为模型的输入参数,通过神经网络预测或直接给定这些参数,然后根据公式计算光照强度 E E E,进而生成渲染图像。
损失函数:
- 光照一致性损失:比较渲染图像中物体表面的光照强度与基于物理公式计算得到的预期光照强度之间的差异。设 E p r e d ( x ) E_{pred}(x) Epred(x)是渲染图像中像素 x x x处的光照强度, E t r u e ( x ) E_{true}(x) Etrue(x)是根据物理公式计算得到的真实光照强度,则光照一致性损失为 L l i g h t = 1 N ∑ x ∈ Ω ( E p r e d ( x ) − E t r u e ( x ) ) 2 L_{light} = \frac{1}{N}∑_{x∈Ω}(E_{pred}(x)−E_{true}(x))^2 Llight=N1x∈Ω∑(Epred(x)−Etrue(x))2
- 视觉相似性损失:除了光照强度的一致性,还需要考虑渲染图像与真实图像在视觉上的相似性。可以使用结构相似性指数(SSIM)或峰值信噪比(PSNR)等指标来衡量,相应的损失函数可以定义为 L s s i m = 1 − S S I M ( J g t , J ) L_{ssim}=1−SSIM(J_{gt} ,J) Lssim=1−SSIM(Jgt,J)或 L p s n r = 10 l o g 10 25 5 2 M S E ( J g t , J ) L_{psnr}=10log_{10}\frac{255^2}{MSE(J_{gt},J)} Lpsnr=10log10MSE(Jgt,J)2552,其中 J g t J_{gt} Jgt是真实图像, J J J是渲染图像。
3.光场图像中的光照处理
物理模型公式:光场可以用四维函数 L ( s , t , u , v ) L(s,t,u,v) L(s,t,u,v)表示,其中 ( s , t ) (s,t) (s,t)表示空间坐标, ( u , v ) (u,v) (u,v)表示光线的方向坐标。在光场重建或处理中,会涉及到光线传播、折射、反射等物理过程的公式。例如,光线在不同介质中的折射可以用斯涅尔定律 n 1 s i n θ 1 = n 2 s i n θ 2 n_1sinθ_1 =n_2sinθ_2 n1sinθ1=n2sinθ2来描述,其中 n 1 n_1 n1和 n 2 n_2 n2是两种介质的折射率, θ 1 θ_1 θ1和 θ 2 θ_2 θ2是入射角和折射角。
融入模型:在光场处理模型中,将这些物理公式作为约束条件或计算模块。例如,在光场重建网络中,通过神经网络预测光场的相关参数(如光线方向、介质属性等),然后利用斯涅尔定律等公式来校正光线的传播路径,从而得到更准确的光场表示。
损失函数:
- 光场一致性损失:比较重建后的光场与真实光场之间的差异。可以计算光场在不同空间和方向上的强度差异,如 L l i g h t f i e l d = 1 N s , t , u , v ∑ s , t , u , v ( L p r e d ( s , t , u , v ) − L t r u e ( s , t , u , v ) ) 2 L_{lightfield} = \frac{1}{N_{s,t,u,v}}\sum_{s,t,u,v}(L_{pred}(s,t,u,v) - L_{true}(s,t,u,v))^2 Llightfield=Ns,t,u,v1s,t,u,v∑(Lpred(s,t,u,v)−Ltrue(s,t,u,v))2 其中 L p r e d ( s , t , u , v ) L_{pred}(s,t,u,v) Lpred(s,t,u,v)是重建的光场强度, L t r u e ( s , t , u , v ) L_{true} (s,t,u,v) Ltrue(s,t,u,v)是真实的光场强度, N s , t , u , v N_{s,t,u,v} Ns,t,u,v是光场的采样点数量。
- 物理约束损失:为了确保重建的光场符合物理规律,如光线传播的连续性、折射和反射的正确性等,可以添加物理约束损失。例如,对于斯涅尔定律的约束,可以计算预测的入射角和折射角与根据斯涅尔定律计算得到的角度之间的差异,并将其作为损失项加入到总损失中。
Pandey等人(2021)则利用HDR光照图和Phong模型优化重光照效果。
利用高动态范围(HDR)光照图和冯氏(Phong)模型优化重光照效果,主要涉及到对 HDR 光照图的处理、Phong 模型的应用以及将两者结合实现重光照的过程。以下是详细的实现方式:
1.HDR 光照图的处理
HDR 光照图的读取与解析:HDR 光照图通常存储了场景中各个方向的光照信息,其格式可能为.hdr等。使用相关的图像库(如 OpenEXR 库在 C++ 中,或 Python 的Pillow库结合OpenEXR扩展等)读取 HDR 光照图。读取后,得到的是一个包含每个像素点在不同颜色通道(如 RGB)上的高动态范围亮度值的图像数据。
光照图的预处理:可能需要对 HDR 光照图进行一些预处理操作。例如,为了方便后续计算,可以将光照图从笛卡尔坐标系转换到球谐函数(Spherical Harmonics)表示,球谐函数能够有效地对环境光照进行压缩和表示,减少计算量。球谐函数展开的公式为:
L ( θ , φ ) = ∑ n = 0 N ∑ m = − n n a n , m Y n , m ( θ , φ ) L(θ,φ)=∑_{n=0}^N∑_{m=−n}^na_{n,m}Y_{n,m}(θ,φ) L(θ,φ)=∑n=0N∑m=−nnan,mYn,m(θ,φ)
其中, L ( θ , φ ) L(θ,φ) L(θ,φ)是方向 ( θ , φ ) (θ,φ) (θ,φ)上的光照强度, Y n , m ( θ , φ ) Y_{n,m}(θ,φ) Yn,m(θ,φ)
是球谐函数基函数, a n , m a_{n,m} an,m是对应的系数。通过计算这些系数,可以将 HDR 光照图转换为球谐函数表示。
2.Phong 模型的应用
Phong 模型公式:Phong 光照模型将光照分为环境光、漫反射光和镜面反射光三个部分。其公式为:
I = I a k a + I l k d ( n ⋅ I ) + I l k s ( n ⋅ h ) s I = I_ak_a + I_lk_d(n·I)+I_lk_s(n·h)^s I=Iaka+Ilkd(n⋅I)+Ilks(n⋅h)s
其中, I I I是最终的光照强度; I a I_a Ia是环境光强度, k a k_a ka是环境光反射系数; I l I_l Il是点光源强度, k d k_d kd是漫反射系数, n n n是表面法线向量, l l l是从表面点指向光源的向量; k s k_s ks是镜面反射系数, h h h是半程向量(即 h = ∣ v + l ∣ v + 1 h=\frac{∣v+l∣}{v+1} h=v+1∣v+l∣, v v v是从表面点指向视点的向量), s s s是镜面反射的光泽度指数。
模型参数的计算:在实际应用中,需要根据场景中的物体表面属性(如材质的反射系数等)和光源信息(如位置、强度等)计算 Phong 模型中的各个参数。对于表面法线向量 n n n,可以从物体的几何模型中获取;从表面点指向光源的向量 l l l和从表面点指向视点的向量 v v v可以根据物体、光源和视点的位置关系计算得到。
3.结合 HDR 光照图和 Phong 模型实现重光照
环境光部分:利用 HDR 光照图中的环境光照信息来替代 Phong 模型中的环境光部分。可以通过将 HDR 光照图与物体表面进行卷积操作(在球谐函数表示下更方便计算),得到物体表面在不同位置的环境光照强度,作为 Phong 模型中环境光项的输入。即:
I e n v = ∫ Ω L ( θ , φ ) f ( θ , φ ) d Ω I_{env} =∫_{Ω}L(θ,φ)f(θ,φ)dΩ Ienv=∫ΩL(θ,φ)f(θ,φ)dΩ
其中, I e n v I_env Ienv是环境光照强度, L ( θ , φ ) L(θ,φ) L(θ,φ)是 HDR 光照图中的光照强度分布, f ( θ , φ ) f(θ,φ) f(θ,φ)是物体表面的反射函数(对于漫反射表面,
f ( θ , φ ) f(θ,φ) f(θ,φ)是一个常数), Ω Ω Ω是整个半球空间。
漫反射和镜面反射部分:根据 Phong 模型的公式,结合物体表面的漫反射和镜面反射属性以及计算得到的 n 、 l 、 h n、l、h n、l、h等向量,计算漫反射光和镜面反射光的强度。将环境光、漫反射光和镜面反射光的强度相加,得到最终的重光照效果。
渲染与显示:将计算得到的每个像素点的光照强度应用到物体的表面,进行渲染得到重光照后的图像。可以使用图形渲染库(如 OpenGL、DirectX 等)来实现这一过程
下面是这篇论文提出的方法介绍
IC-Light方法的创新与实现
整体内容架构概述
IC-Light 方法是一种在扩散模型训练中具有创新性的方法,其核心在于将光传输一致性原理引入模型训练,以实现对图像光照的准确处理和模型的稳定训练。本文将从多个方面详细介绍 IC-Light 方法,首先深入探讨其核心思想与物理基础,这是该方法的理论基石,为后续的训练和应用提供了原理依据。接着,为了使模型能够应对各种复杂的光照场景,需要统一处理多种类型的训练数据,包括对光照的野外数据分布进行详细处理,这部分内容与数据的获取、格式统一以及增强技术相关,是模型训练的基础准备工作。在明确了物理基础和数据处理方式后,进一步介绍实施一致光传输的具体过程,包括从无特殊约束的学习(Vanilla 目标)到引入光传输一致性约束,以及最终构建联合学习目标,这些步骤逐步完善了 IC-Light 方法的训练体系,使得模型能够在处理光照任务时更加稳定和准确。通过这样的结构安排,各个部分紧密相连,共同构成了对 IC-Light 方法全面且深入的阐述。
核心思想与物理基础
IC-Light方法的突破性在于将光传输一致性原理引入扩散模型训练。该方法基于一个关键的物理发现:物体在不同光照条件下外观的线性混合,与其在混合光照下的外观一致。这一原理可表示为:
- 数学表达与示例
-
- 假设我们有两种光照条件 L 1 L_1 L1和 L 2 L_2 L2,以及对应的权重 α α α和 1 − α 1−α 1−α(其中 α ∈ [ 0 , 1 ] α∈[0,1] α∈[0,1]),用于表示两种光照在混合时的比例。物体在光照 L 1 L_1 L1下的外观可以用一个向量或者矩阵来表示,假设为 A 1 A_1 A1,在光照 L 2 L_2 L2下的外观为 A 2 A_2 A2。这里的外观 A 1 A_1 A1和 A 2 A_2 A2可以包含物体表面的颜色、亮度、阴影等信息,通常可以用图像的像素值矩阵来具体体现。
-
- 按照线性组合的方式,两种光照条件下外观的线性混合结果为 α A 1 + ( 1 − α ) A 2 αA_1+(1−α)A_2 αA1+(1−α)A2。而物体在混合光照 α L 1 + ( 1 − α ) L 2 αL_1+(1−α)L_2 αL1+(1−α)L2下的外观假设为 A m i x A_{mix} Amix。光传输独立性原理要求 α A 1 + ( 1 − α ) A 2 = A m i x αA_1+(1−α)A_2=A_{mix} αA1+(1−α)A2=Amix。
-
- 例如,在一个简单的二维图像场景中,假设物体是一个正方形,在光照 L 1 L_1 L1 下,其左上角像素点的亮度值为 100(假设取值范围为 0 - 255),即 A 1 A_1 A1 中对应位置的值为 100;在光照 L 2 L_2 L2 下,该像素点的亮度值为 200,即 A 2 A_2 A2中对应位置的值为 200。当 α = 0.5 α=0.5 α=0.5 时,两种光照下外观的线性混合结果中该像素点的值为 0.5 × 100 + 0.5 × 200 = 150 0.5×100+0.5×200=150 0.5×100+0.5×200=150。如果在混合光照 0.5 L 1 + 0.5 L 2 0.5L_1+0.5L_2 0.5L1+0.5L2 下,物体在该像素点的亮度值也为 150,就满足了光传输独立性原理。
- 光照的量化
-
- 光照 L 1 L_1 L1 和 L 2 L_2 L2 也可以进行量化表示。比如,可以将光照看作是由不同颜色通道(如红、绿、蓝)的强度组成的向量。假设 L 1 = ( r 1 , g 1 , b 1 ) L_1=(r_1,g_1,b_1) L1=(r1,g1,b1), L 2 = ( r 2 , g 2 , b 2 ) L_2=(r_2,g_2,b_2) L2=(r2,g2,b2),那么混合光照 α L 1 + ( 1 − α ) L 2 = ( α r 1 + ( 1 − α ) r 2 , α g 1 + ( 1 − α ) g 2 , α b 1 + ( 1 − α ) b 2 ) αL_1+(1−α)L_2=(αr_1+(1−α)r_2,αg_1+(1−α)g_2,αb_1+(1−α)b_2) αL1+(1−α)L2=(αr1+(1−α)r2,αg1+(1−α)g2,αb1+(1−α)b2)。这种量化方式有助于在模型中准确地计算和比较不同光照条件下的效果。
- 约束引入方式:在 IC - Light 方法的训练过程中,通过强制实施这种一致性来引入基于物理的强约束。如上图所示,从图片 (a) 和 (b) 对比来看,在普通的图像条件扩散模型(图 (a))中,只是对图像 I L I_L IL通过 VAE(变分自动编码器)进行处理,然后经过 scheduler(调度器)等一系列操作,最终计算 loss,具体细节如下:
-
- 在图 (b) “Learning light transport consistency” 中,光传输一致性约束主要体现在对模型生成过程的监督上。从图中可以看到,模型接收的输入除了降解图像 Id 和经过 VAE(变分自动编码器)处理以及 scheduler(调度器)处理后的信息外,还额外引入了一些与光传输一致性相关的计算。
-
- 在图 (b) 中,从 ε ( I d ) ε(I_d) ε(Id) 出来后,有两条路径分别指向两个 δ δ δ 模块(这里的 δ δ δ 模块可能是对噪声等进行处理的模块),并且在这两个路径之间存在一个反馈机制。这个反馈机制以及围绕它的计算过程就是在实施光传输一致性约束。它通过比较不同分支的计算结果,确保模型在生成图像(改变光照)的过程中,满足光传输独立性原理。也就是说,在模型尝试改变图像光照时,这个约束机制会检查生成的结果是否符合 “不同光照条件下外观的线性混合与混合光照下的外观一致” 这一物理原理。
-
- 此外,图 (b) 中的 MLP(多层感知器)也可能参与到约束的计算中。MLP 可以对不同路径的信息进行进一步的处理和整合,通过学习到的权重和偏置来调整模型的输出,使得模型在满足光传输一致性的同时,也能实现有效的光照编辑。
- 约束与损失函数的关系
-
- 这种光传输一致性约束最终会反映在损失函数中。前面提到的联合学习目标 L = λ v a n i l l a L v a n i l l a + λ c o n s i s t e n c y L c o n s i s t e n c y L=λ_{vanilla}L_{vanilla}+λ_{consistency}L_{consistency} L=λvanillaLvanilla+λconsistencyLconsistency里, L c o n s i s t e n c y L_{consistency} Lconsistency 就是用于衡量光传输一致性的损失项。通过调整 λ c o n s i s t e n c y λ_{consistency} λconsistency 的权重,模型在训练过程中会根据这个损失项来不断调整参数,以最小化生成结果与光传输一致性原理之间的差异,从而实现基于物理原理的强约束。
IC-Light 方法基于光传输独立性的物理原理,即物体在不同光照条件下外观的线性混合,与它在混合光照下的外观一致。通过在训练过程中强制实施这种一致性,引入了一个强大的、基于物理的约束,确保模型在修改图像光照时,仅改变光照方面,同时保留诸如反照率和图像精细细节等其他内在属性 。
统一处理多种数据进行训练
为了让 IC-Light 模型能够更好地应对各种复杂的光照场景,我们需要丰富且多样化的训练数据。因此,利用多种类型的数据源(如任意图像、3D 数据、光场图像)进行训练,将其统一为通用格式,包括将每个外观图像与环境图、前景掩模、背景图像(可选)、降解图像(可选)等配对。同时,使用数据增强技术,将任意图像转换为具有相同内在属性(如反照率)但不同光照外观的配对光照训练数据,以此提升模型的鲁棒性和泛化能力。
光照的野外数据分布(IN-THE-WILD DATA DISTRIBUTION OF ILLUMINATION)
在上述统一处理多种数据进行训练的基础上,我们进一步关注光照的野外数据分布情况。野外数据包含了真实世界中各种复杂的光照场景,对这部分数据的处理和利用能够使模型更好地适应实际应用中的光照变化。这部分内容是对数据来源和处理方式的详细阐述,与前面统一处理数据的理念是相辅相成、互为补充的关系。前面强调了数据的统一格式和增强方法,而这里则侧重于介绍具体的数据来源以及如何从这些来源中获取适合训练的野外数据。
在对光照效果的分布进行建模时,为了全面捕捉如背光、边缘光、发光等多样且复杂的真实照明场景,我们采用了多种数据源,包括任意图像、3D 数据以及灯光舞台图像等。
在数据处理阶段,我们将所有数据统一为通用格式。具体而言,假设每个外观图像 I L ∈ R h × w × 3 I_L \in R^{h×w×3} IL∈Rh×w×3都与一个 32px 的环境地图 L ∈ R 32 × 32 × 3 L \in R^{32×32×3} L∈R32×32×3、一个前景掩码 M ∈ R h × w M \in R^{h×w} M∈Rh×w、一个可选的背景图像 B ∈ R h × w × 3 B \in R^{h×w×3} B∈Rh×w×3以及一个可选的降级图像 I d ∈ R h × w × 3 I_d \in R^{h×w×3} Id∈Rh×w×3配对。
在野外图像增强方面,我们通过数据增强技术,将任意图像转换为具有相同本征属性(如反照率)但光照外观不同的成对照明训练数据。每个样本包含输入条件的一个外观、输出目标的另一个外观以及环境映射等元数据。输出目标图像为高质量的野外图像,而输入条件图像则包含随机增强和降级,目的是增强扩散模型的鲁棒性和泛化性。
具体操作流程如下:首先从两种方法中随机选择提取环境映射,接着使用特定方法检测前景掩码、生成背景图像和检测提示,然后生成与原始图像固有反照率相同但照明完全改变的 “退化外观”。此外,还通过多种方式合成相关图像:
- 随机应用 6 种反照率提取方法提取图像反照率;
- 用 3 种随机法线估计方法合成柔和阴影图像;
- 用随机阴影材料合成硬阴影,并向随机区域添加随机级别的镜面反射。
在这个过程中,所用的阴影图像包括从在线图库购买的 20k 高质量阴影材质以及利用在这些样本上训练的 Flux LoRA 生成的 500k 材质。最后,通过比较 CLIP Vision 与关键词的相似性,从 50M 图像中筛选出 6M 与照明相关的图像。
在 3D 渲染数据方面,我们使用类似 G - buffer Objaverse 的方法渲染 Objaverse,但不同之处在于使用 PyTorch 编写的基于图像的渲染管道以提高速度。使用从之前 “野外图像增强” 中获得的随机环境图,用特定方法检测提示,不生成降级图像,而是直接用随机未配对环境图渲染改变后的外观作为 I d I_d Id,该部分数据集最终确定为 4M 图像。
对于光照舞台数据,我们使用来自 Mnichelson (2006)、Liu 等人 (2024a) 的多个光照舞台数据集以及包含 20k 光照舞台外观的内部数据集。将所有一次一点光(OLAT)数据预渲染为上述相同格式,使用之前 “野外图像增强” 中获得的随机环境图,用特定方法检测提示,并用随机未配对环境图渲染改变后的外观作为 I d I_d Id。
实施一致的光传输(IMPOSING CONSISTENT LIGHT TRANSPORT)
在明确了 IC-Light 方法的物理基础和完成了数据处理工作后,接下来就是实施一致光传输的关键步骤。我们的目标是学习一个健壮且通用的模型来处理野外照明模式。然而,学习大规模、复杂且有噪声的数据极具挑战性。如果没有合适的正则化和约束,模型容易出现与预期照明编辑不对应的随机行为。因此,我们的解决方案是在训练期间实施一致光(IC - Light)传输,其基于的物理原理是物体在不同照明条件下的外观线性混合与其在混合照明条件下的外观一致。
Vanilla 目标(无特殊约束的学习)
从一个普通的图像条件扩散模型开始学习照明。以典型的 Stable Diffusion UNet 为例,对 UNet 架构进行操作,在输入卷积层添加 4 个通道以接收 I d I_d Id(目标物体的随机重新点亮外观或降级图像)。将 32×32×3 的 HDRI 环境光源图像L重塑为 3072 个数字,并从头开始训练一个多层感知器(MLP),经过一系列投影和激活函数后,将输出重塑为可被 SD 1.5 直接接收的提示嵌入输入。对于目标重新照亮的图像 I L I_L IL,先由潜在扩散算法将其编码为潜在图像 ϵ ( I L ) \epsilon(I_L) ϵ(IL),然后逐步添加噪声生成含噪的潜在图像$\epsilon(I_L)_t$。
在给定时间步t、照明条件L和输入降级(I_d)等条件下,图像扩散算法通过学习网络(\delta)来预测噪声,其损失函数为 L v a n i l l a = ∣ ∣ ϵ − δ ( ϵ ( I L ) t , t , L , ϵ ( I d ) ) ∣ 2 2 ( 1 ) L_{vanilla} = ||\epsilon - \delta(\epsilon(I_L)_t, t, L, \epsilon(I_d))|_2^2\space\space\space\space\space(1) Lvanilla=∣∣ϵ−δ(ϵ(IL)t,t,L,ϵ(Id))∣22 (1)
其中 ϵ \epsilon ϵ是扩散目标, L v a n i l l a L_{vanilla} Lvanilla是成本函数。学习此目标可实现扩散模型的基本图像重新照明功能,为训练背景条件模型,还会将B连接到 I d I_d Id(若数据集部分无背景则用全零填充额外通道)。然而,由于照明数据的挑战性和噪声性,单一目标常导致随机模型行为,如颜色不匹配、细节不正确等。
光传输一致性:在计算摄影中,光传输理论表明对于任意外观 I L ∗ I^*_L IL∗和相关环境照明L,存在矩阵T使得
I L ∗ = T L ( 2 ) I^*_L = TL\space\space\space\space\space(2) IL∗=TL (2)
且 T T T可表示为 T ∈ R ( h × w × 3 ) × ( 32 × 32 × 3 ) T \in R^{(h×w×3)×(32×32×3)} T∈R(h×w×3)×(32×32×3)(在本文数据格式下),“ ∗ ^* ∗” 表示原始高动态范围图像,实际测量验证了T可用单个矩阵表示且无非线性变换。由于这种线性,光传输可解释外观合并现象,即
I L 1 + L 2 ∗ = T ( L 1 + L 2 ) = I L 1 ∗ + I L 2 ∗ ( 3 ) I^*_{L1+L2} = T (L1 + L2) = I^*_{L1} + I^*_{L2}\space\space\space\space\space(3) IL1+L2∗=T(L1+L2)=IL1∗+IL2∗ (3)
其中L1、L2是任意两个环境照明图,该现象也得到了实际测量验证。本文中发现由于其线性,公式 (3) 中的外观I可被任意扩散目标代替,例如对于简单的 k-diffusion epsilon 目标等,估计的干净外观可表示为 I ^ L = ( I σ t − ϵ L ) / σ t \hat{I}_L = (I_{\sigma_t} - \epsilon_L) / \sigma_t I^L=(Iσt−ϵL)/σt,且 λ ϵ L 1 + L 2 = ϵ L 1 + ϵ L 2 \lambda\epsilon_{L1+L2} = \epsilon_{L1} + \epsilon_{L2} λϵL1+L2=ϵL1+ϵL2, λ \lambda λ为常数缩放因子,通常 λ = 2 \lambda = 2 λ=2。
光传输一致性
核心思想是在扩散训练过程中保证公式 (3) 成立,以约束模型仅修改图像照明而不改变其他内在属性(即保持内部光传输T不变)可通过最小化
∣ ∣ I L 1 + L 2 ∗ − ( I L 1 ∗ + I L 2 ∗ ) ∥ 2 2 ||I^*_{L1+L2} - (I^*_{L1} + I^*_{L2})\|_2^2 ∣∣IL1+L2∗−(IL1∗+IL2∗)∥22实现。
对于实际应用,考虑到多数扩散模型不是在 HDR 图像上训练的像素扩散模型,对于潜在扩散或 LDR 像素扩散需要进行转换,使用一个简单的可学习多层感知器 ϕ ( ⋅ , ⋅ ) \phi(·, ·) ϕ(⋅,⋅)来学习潜在数据域(LDR、HDR、潜在)之间的隐式适应,以 eps-prediction 为例,最终的光传输一致性损失函数为 L c o n s i s t e n c y = ∣ ∣ M ⊙ ( ϵ L 1 + L 2 − ϕ ( ϵ L 1 , ϵ L 2 ) ) ∥ 2 2 ( 4 ) L_{consistency} = ||M \odot (\epsilon_{L1+L2} - \phi(\epsilon_{L1}, \epsilon_{L2}))\|_2^2\space\space\space\space\space(4) Lconsistency=∣∣M⊙(ϵL1+L2−ϕ(ϵL1,ϵL2))∥22 (4)
其中 ϕ ( ⋅ , ⋅ ) \phi(·, ·) ϕ(⋅,⋅)是一个 5 层 MLP,隐藏状态为 128,输入 / 输出与不同模型的潜在通道相同, ⊙ \odot ⊙是与前景掩码M(调整为与潜在图像相同大小)的逐像素乘法。在训练期间,通过从均匀分布生成随机 4 × 4 4×4 4×4 掩码并调整大小来合成 L 1 L1 L1、 L 2 L2 L2,将掩码区域视为 L 1 L1 L1,未掩码区域视为L2,确保 L = L 1 + L 2 L = L1 + L2 L=L1+L2,该损失函数可进一步扩展为 L c o n s i s t e n c y = ∣ ∣ M ⊙ ( ϵ − ϕ ( δ ( ϵ ( I L ) t , t , L 1 , ϵ ( I d ) ) ) , δ ( ϵ ( I L ) t , t , L 2 , ϵ ( I d ) ) ) ∥ 2 2 ( 5 ) L_{consistency} = ||M \odot (\epsilon - \phi(\delta(\epsilon(I_L)_t, t, L1, \epsilon(I_d))), \delta(\epsilon(I_L)_t, t, L2, \epsilon(I_d)))\|_2^2\space\space\space\space\space(5) Lconsistency=∣∣M⊙(ϵ−ϕ(δ(ϵ(IL)t,t,L1,ϵ(Id))),δ(ϵ(IL)t,t,L2,ϵ(Id)))∥22 (5)。
联合学习目标
最终的学习目标可写为
L
=
λ
v
a
n
i
l
l
a
L
v
a
n
i
l
l
a
+
λ
c
o
n
s
i
s
t
e
n
c
y
L
c
o
n
s
i
s
t
e
n
c
y
(
6
)
L = \lambda_{vanilla}L_{vanilla} + \lambda_{consistency}L_{consistency}\space\space\space\space\space(6)
L=λvanillaLvanilla+λconsistencyLconsistency (6)
其中L是合并后的目标,默认权重 λ v a n i l l a = 1.0 \lambda_{vanilla} = 1.0 λvanilla=1.0, λ c o n s i s t e n c y = 0.1 \lambda_{consistency} = 0.1 λconsistency=0.1。
实验验证与性能分析
消融实验揭示关键因素
通过系统性的消融研究,论文验证了各组件的重要性:
- 野外数据的作用:移除野外图像增强数据后,模型在复杂场景(如带配饰的人像)中的泛化能力显著下降,出现颜色失真等 artifacts。
- 一致性约束的价值:取消光传输一致性会导致反照率等内在属性随光照改变而异常变化,破坏图像的真实性。
- 多数据源的互补性:仅使用单一数据源(如仅3D渲染数据)训练的模型,在跨域测试中表现不佳,验证了多源数据融合的必要性。
定量评估展现优势
在50,000张未见过的3D渲染图像测试集上,IC-Light在多个指标上表现优异:
方法 | PSNR ↑ | SSIM ↑ | LPIPS ↓ |
---|---|---|---|
SwitchLight | 18.45 | 0.7024 | 0.3245 |
DiLightNet | 21.78 | 0.8013 | 0.1721 |
IC-Light(完整) | 23.72 | 0.8513 | 0.1025 |
IC-Light(无一致性) | 20.32 | 0.7542 | 0.1927 |
值得注意的是,LPIPS指标(衡量感知质量)的显著优势(0.1025)表明IC-Light生成的结果在视觉上更加真实自然。
视觉对比突显特点
与传统方法相比,IC-Light在多个方面展现出明显优势:
- 阴影处理:能够合理调整阴影位置和形状,避免常见的人工痕迹。如图1所示,在添加新光源时,IC-Light生成的阴影更加自然连贯。
- 细节保持:在修改光照的同时,更好地保留了纹理、反照率等关键细节。对比实验中,其他方法往往导致细节模糊或丢失。
- 法线图生成:通过融合多次推理结果,IC-Light生成的法线图能更准确地反映表面几何,为后续渲染提供了良好基础。
IC-Light方法与其他方法的视觉对比
图. IC-Light与现有方法在阴影处理和细节保持方面的对比