标题:Accurate 3D Face Reconstruction with Weakly-Supervised Learning: From Single Image to Image Set
链接:https://arxiv.org/pdf/1903.08527
亮点:主要是提出了通过同一人多张图来生成更精细的人脸3D模型的方案,主要框架是基于3DMM的。
Lambertian surface-朗伯面:即入射光会向所有方向均匀反射,也即漫反射的期望状态
spherical harmonic lighting-球谐光照:就是用来模拟光照的一个方案。类似于傅里叶变换,将一个复杂的函数分解为多个正交的基底函数,通过计算他们的系数来获得最终的结果。主要目的是为了快速模拟复杂的实时光照。
monochromatic lights-单色光:即单一频率的光,无法发生色散。对应的是复色光,如太阳光。
模型框架:使用R-NET从图片中提取人脸的参数(身份,表情,纹理,姿态,光照),然后使用可微分的渲染重构回2D模型,最后直接计算像素损失。
Robust Photometric Loss:计算生成图片和原始图片下的像素损失。计算像素损失时使用了一个基于皮肤的mask,这个mask是使用专门训练的皮肤检测器来提取的,用于保证loss只计算有皮肤的部分。
Landmark Loss:计算深沉图片和原始图片之间landmark之间的损失,这里是用了别人提供的landmark检测模型。
Perception Level Loss:发现只使用以上两个基于图片的loss会导致3D形状偏差较大的问题。所以作者又专门训练了一个FaceNet,用来提取图片的语义信息,然后再在两个图像上算损失。
Regularization:约束了一下texture的variance
Weakly-supervised Neural Aggregation for Multi-Image Reconstruction:作者认为同一个人的多个照片应该拥有类似的3D形状,因此他设计了一个方式来用多张2D图片来约束同一个3D模型。
首先,模型中有一个R-Net负责预测所有具体的参数(身份,表情,纹理,姿势,光照),而其中最能体现多图一致性的参数就是身份参数,也即形状参数。之所以没考虑纹理是因为在野外数据集上同一个人的纹理差别很大。
因此,想要计算当前图片与3D模型之间的置信度的话就需要从身份参数上入手,作者的方式就是设计一个C-Net,输入R-Net的中间层输出,但只给出一个置信度,这个置信度会作为权重乘以R-Net预测出的身份参数,进而进行后续的渲染。这样做的好处是,借助梯度的反向传播,模型会自动优化这个置信度,最终成为可以客观反映身份参数在构建模型时的贡献度,也即我们所期望的置信度。