AvatarMe: Realistically Renderable 3D Facial Reconstruction “in-the-wild”

概述

本文发表于CVPR2020,从野生图像中,缺乏相关的方法能够生成高分辨率、真实感的三维人脸,主要原因是:

  1. 缺乏可用的训练数据
  2. 即使有高分辨率数据,也缺乏具有鲁棒性的方法

本文提出的AvatarMe方法,是第一种能够基于单张的野生的图像,重建真实感三维人脸的方法,这里着重注意是真实感渲染,即PBR,和普通的渲染不一样

相关工作

PCA方法,虽然能够表示重建人脸的最基本的特征,但是在高频的纹理与几何细节上却有所欠缺,况且也无法表示野生数据中人脸的复杂纹理。随着深度学习的到来,许多编码-解码架构的方法开始被采用,去推理人脸三维几何、反射、光照,但是由于使用的光照模型限制(Lambertian reflectance model)、使用的数据集限制(合成数据集,而非真实数据集)等,这些方法无法产生高频细节的形状与纹理,用于真实感渲染,更进一步说,这些方法缺失了许多身份上的特征。

可以说,第一个证明可以从单张“野生”图像重建高质量纹理和形状的通用方法是最近提出的GANFIT方法,其实就是将texture的部分由PCA替换成了GAN,然后靠着高分辨率的texture训练数据的数据驱动来得到高精度的人脸重建,然后为了保证重建出的人脸身份特征得以保留,使用Arcface这种人脸识别网络构造loss加以约束,但是GANFIT这种方法也有不足之处,因为本身训练的texture就带有了光照烘焙,然后因为人脸形状还是使用的3DMM,所以缺乏高分辨率的法线与镜面反射信息

下面列出了一些尝试从野生图像中进行真实感渲染相关的信息推理的方法(感觉都值得一看):
《Photo-realistic facial details synthesis from single image》ICCV 2019
《Mesoscopic facial geometry inference using deep neural networks》CVPR 2018
《Photorealistic facial texture inference using deep neural networks》CVPR 2017
《High-fidelity facial reflectance and geometry inference from an unconstrained image》TOG 2018
但是这些方法却不具有通用性,因为他们是直接对原始输入的(或许是低质量甚至遮挡的)人脸纹理进行操作与增强,而不是重建它,结果最终的重建质量往往取决于输入图像的质量;使用的三维模型并不具有代表性(比如有的直接眼睛给挖空了)

本文使用了先进的基于光照的人脸多视图捕捉方法先自己造了个数据集,然后采用了pix2pixHD这个项目的改进版本来实现消光(de-lighting)与提取高分辨率反射贴图的任务

  • 使用深度学习的真实感三维人脸重建
    《Photorealistic Facial Texture Inference Using Deep Neural Networks》 CVPR 2017 这项工作基于数据驱动,能够从低分辨率的、甚至部分遮挡的图像中推理出高分辨率的纹理图,后面经过进一步发展,《Mesoscopic facial geometry inference using deep neural networks》CVPR 2018 能够从diffuse albedo中推理出面部的中构造(mesostructure),进一步地,《High-fidelity facial reflectance and geometry inference from an unconstrained image》TOG 2018 能够从局部的人脸输入图像中推理出除了反照率纹理的完整的面部反射与置换贴图,虽然与本文的工作最接近,但这些方法实现了数字化身的创建,而不是从野生的图像中获得高质量的面部外观评估(可能意思是说它们更注重结果,而不是注重将人脸真实感渲染的各部分组件都给分门别类地做出来)

方法

首先本文自行制作了个数据集,称作RealFaceDB,人脸采用了和LSFM相似的拓扑结构,共采集200个人脸*7个表情,然后将人脸的组成元素分解为四个部分:
AvatarMe: Realistically Renderable 3D Facial Reconstruction “in-the-wild”_第1张图片
分别是diffuse albedo, specular albedo, diffuse normal, specular normal, 这四个纹理图加上人脸的形状就可以进行真实感三维人脸渲染了

采集好数据后, 对于野生人脸图像,本文三维重建方法如下图所示:

  1. 使用GANFIT方法,先得到人脸的形状与纹理,这个形状其实就是3DMM形状系数,纹理是一张 576 ∗ 384 ∗ 3 576*384*3 5763843的图像,是一张光照烘焙过后的人脸纹理图,而具体来源则是PGGAN网络训练的时候学习到的LSFM数据集人脸纹理的先验
  2. 有了这张看似高分辨率的图像还不够,为了满足艺术家的创作需求,继续使用RCAN这个超分辨率网络将 576 ∗ 384 ∗ 3 576*384*3 5763843变为 4608 ∗ 3072 ∗ 3 4608*3072*3 460830723
  3. 光照烘焙的人脸纹理图已经储存了人脸的高光与阴影信息,肯定无法用于真实感人脸渲染的,因此就要想方设法将光照与人脸albedo分离(de-lighting),于是本文仔细分析了GANFIT训练时的LSFM数据集,将其中的光照条件进行建模,然后训练一个图像-图像的转换网络光照分离出来,在训练的过程中,其实人脸的形状肯定是会对结果产生影响的,因此将人脸的形状也考虑的进去
  4. 所谓的de-lighting与后续的推断diffuse和specular的任务,其实都可以看做是domain adaptation problems,本文使用pix2pixHD这个架构,这个架构在高分辨率的图像-图像转换任务上取得了比较优秀的效果(具体原理在原文有阐释,这里不再做深入探讨,只是大致知道用什么东西做了什么事情就足够了)
  5. 但是用这种方法有个问题,因为采用的是高分辨率(超过4K)的图像数据,即使显存是32G都是不够的,因此采用了分割成小的patch的训练策略

你可能感兴趣的:(#,单视图三维人脸重建,3d,计算机视觉,人工智能,深度学习)