Intrinsic Decomposition(DL/Non-DL)、Inverse Rendering(DL/Non-DL)和Portrait Relighting(DL)

https://github.com/tkuri/Awesome-InverseRendering

https://github.com/QifengDai/Awesome-Human-Relighting

BRDF模型:

  • Lambert漫反射模型
  • Phong模型

Portrait Relighting

Sun 2019|Single Image Portrait Relighting

Ref: 255

10.1145/3306346.3323008

抠图,仅脸部数据

数据集

多角度脸部照片来自真实拍摄;光照数据使用Gardner et al. 2017等数据使用模型叠加(?)

预处理

前景分割使用Wadhwa et al. 2018,等

模型

PR-Net,类似U-Net,左枝颈部特征矩阵为预测光照,目标光照作为特征矩阵输入右枝得到预测目标图像

image.png

损失函数

  • $L_I$:人脸部分L1距离
  • $L_L$:光照log-L2距离
  • $L_{self}$:自我监督,将$\hat{L}_s$作为右枝输入得到的结果$\hat{I}_s$与$\hat{I}_s$的$L_I$损失

$$ L = L_I(\hat{I}_t, I_t) + \lambda_{light} \cdot L_L(\hat{L}_s, L_s) + \lambda_{self} \cdot L_I(\hat{I}_s, I_s) $$

此外

REF里面的Soumyadip Sengupta, Angjoo Kanazawa, Carlos D. Castillo, and David W. Jacobs. 2018. SfSNet: Learning Shape, Refectance and Illuminance of Faces in the Wild. CVPR (2018) 文章标题打错了

Zhou 2019|Deep Single-Image Portrait Relighting

Ref: 214

10.1109/ICCV.2019.00729

假设:脸部光照满足朗伯反射

数据集

真实图片,特征点识别,重建脸部法线模型,物理打光

模型

Hourglass主网络与上文类似

image.png

此外还有一个 Patch GAN 进行监督

损失函数

  • $L_I = \frac{1}{N_I}(\|I_t - I^*_t\|_1 + \|\nabla I_t - \nabla I^*_t\|_1) + \|L_s - L^*_s\|^2_2$。

    这部分损失包括两个部分,一是生成图像 $I^*_t$ 与真实图像 $I_t$ 之间的像素级差异(使用 $L_1$ 范数度量),二是它们梯度之间的差异(同样使用 $L_1$ 范数度量),目的是保持边缘清晰度避免模糊。最后加上预测光照 $L^*_s$ 和真实光照 $L_s$ 之间的 $L_2$ 差异,以确保光照估计的准确性。

    $N_I$是图像像素数。

  • $L_{GAN} = E_I (1 - D(I))^2 + E_{I_s} D(G(I_s, L_t))^2$

    为了进一步提高生成图像的质量,特别是减少由于数据集生成过程中引入的局部伪影,研究者引入了对抗损失。这里使用的是最小二乘GAN(LS-GAN),其中 $D$ 表示判别器,$G$ 是生成器,$I$ 是真实图像,而 $G(I_s, L_t)$ 是生成器根据源图像 $I_s$ 和目标光照 $L_t$ 生成的图像。对抗损失鼓励生成图像的分布与真实图像的分布接近。

  • $L_F = \frac{1}{N_F} \|Z_{f1} - Z_{f2}\|^2_2$

    此损失旨在提高重光照肖像的准确性,确保同一人在不同光照条件下的图像具有相似的面部特征。$Z_{f1}$ 和 $Z_{f2}$ 分别代表两张输入面部图像的特征向量,$N_F$ 是特征向量中的元素数量。

$L = L_I + L_{GAN} + \lambda L_F$

此外

基于比例图像的脸部重打光模型中$I$定义不严谨

Google 2021|Total Relighting: Learning to Relight Portraits for Background Replacement

Ref:133

https://doi.org/10.1145/3450626.3459872

前景估计、重照明和合成

提出了自己的前景估计

遵循Phong 结构。

推理法线图和反照率贴图

均匀的镜面光,实际上与表明材质(如皮肤、头发、衣物)有关

模型

image.png
image.png

Google 2019|Deep Reflectance Fields - High-Quality Facial Reflectance Field Inference from Color Gradient Illumination

Ref: 112

OLAT光

image.png

Nestmeyer 2020|Learning Physics-Guided Face Relighting Under Directional Light

Ref: 111

添加了一个残差图拟合系统与真实物理光照的区别以符合物理规律的光照系统

image.png

前半部分与Google2021类似,不过没有计算高光部分,是个博朗反射,且albedo和shading是数值方法计算得到。后半部分预测残差再合成,也是使用数值方法计算得到。

这个模型更加遵循计算机图形学原理,把图形学和现实区别完全使用残差消除。

不过我认为这个残差本身就可以被google2021的shading模块拟合。

Wang 2020|Single Image Portrait Relighting via Explicit Multiple Reflectance Channel Modeling

Ref: 93

引入语义分割,高光值不同

image.png

Dib 2021|Towards High Fidelity Monocular Face Reconstruction with Rich Reflectance using Self-supervised Learning and Ray Tracing

Ref: 49

image.png

Resnet预测面部特征,FC后面这部分是stage1中训练得到

  • 3DMM形状参数 ($\alpha$):用于描述面部几何形状。
  • 表情混合形状参数 ($\delta$):用于捕捉面部的表情变化。
  • 相机姿态参数 ($\phi=\{R, T\}$):包括旋转和平移,用于描述相机相对于面部的位置。
  • 光照参数 ($\gamma$):使用9个球谐函数带宽来建模,用于描述场景中的光照条件。
  • 反射率先验 ($\beta$):从中可以得到统计上的漫反射(D)和镜面反射(S)纹理。

然后Stage2,$D_1$、$D_2$进行漫反射和镜面反射增量预测,拟合3DMM模型与真实情况差值

随后使用传统计算机视觉可差分光追进行计算合成。

所谓Self-supervised其实和Sun2019的自我监督loss差不多。

Neural Video Portrait Relighting in Real-time via Consistency Modeling

Ref: 41

视频

Practical Face Reconstruction via Differentiable Ray Tracing

Ref: 34

Face Relighting with Geometrically Consistent Shadows

Ref: 32

De-rendering 3D Objects in the Wild

Ref: 27

Liu 2021|Relighting Images in the Wild with a Self-Supervised Siamese Auto-Encoder

Ref: 19

Dib 2023|2F2: Self-Supervised High Fidelity Face Reconstruction from Monocular Image

Ref: 14

Mei 2023|LightPainter: Interactive Portrait Relighting with Freehand Scribble

手绘光照颜色

先白模shading再和albedo使用模型合成。

image.png

Mei 2024|Holo-Relighting: Controllable Volumetric Portrait Relighting from a Single Image

光照、镜头、姿势三要素可变

因为需要姿势改变,所以再打光的时候直接建立人像的新三维模型,而不再使用法线贴图

用MLP解码三维信息得到最终图像

image.png

富婆饿饿饭饭