标题:Deep Single-Image Portrait Relighting
本文解决的问题是在给定一张2D图的情况下如何改变照片中的光照的方向。
首先,作者使用了基于物理的重光照方法,基于CelebA-HQ数据集构建出了一套有多方向光源的数据集Deep Portrait Relighting(DPR)。然后用DPR来训练了一套自己的模型。
构建DPR数据集分为以下步骤:
1.作者检测了CelebA-HQ中每个人脸的landmark,删掉了没有landmark的图。
2.使用3DDFA提取了face normal(人脸法线)。
3.如上图所示,使用As-Rigid-As-Possible-based (ARAP-based)进一步增强了3DDFA提取的face normal,因为3DDFA使用了3DMM的先验,对于面部细节重构的并不好,因此作者通过将渲染图和原始图一起网格化,然后将渲染图扭曲到原始图那样,然后将扭曲方式应用到3D图形上,从而帮助模型学到更细节的东西。
4.用SFSNet提取了spherical harmonic(球谐函数),也即光照参数。之后输入随机的光照先验从而生成新的光照样本。
如上图所示,训练光照模型有以下的组成部分:
1.整体模型是一个auto encoder结构,其中encoder部分的输入就是原始的图片,输出光照和面部特征参数
2.decoder的输入是encoder输出的面部特征参数和目标图片的光照参数
3.在最后其实还有一个disrciminator,给模型提供了gan loss,来帮助模型修正DPR数据集中的错误(因为里面的图片大部分都是人工生成的光照,而不是真实的图片)。方式是将真实图片和生成图片一起输入discriminator,来帮助生成更加真实的光照。