FaceScape: a Large-scale High Quality 3D Face Dataset and Detailed Riggable 3D Face Prediction

1. 简介

1.1 本文贡献

  1. 提出了一个大尺度高细节的三维人脸数据集FaceScape,采集938个人的20种表情,共18760个三维人脸
  2. 数据集三维模型具有孔隙级别的精度,并且被处理成拓扑一致性,如果想查看大致形状可使用3DMM系数,如果想更精细一点再加张位移图(displacement map,在图形学中有个专业术语叫置换贴图,这里翻译成位移图或许更容易从字面意思理解hhh)即可
  3. 提出了一种基于单张图片进行三维人脸重建并且可以自由编辑的方法
    d

1.2 方法概述

  1. 将原始采集到的数据经过处理变成拓扑一致,之后建立双线性模型(类似于3DMM但有区别)将人脸控制权交给身份(或者说形状)和表情系数
  2. 先前的方法只能估计人脸大致形状,没有皱纹等小尺度特征,关键的问题在于如何去预测由表情变化导致的小尺度变化,比如眨眼,于是提出了动态细节方法
  3. 动态细节方法(精细重建)和双线性模型拟合方法(粗糙重建)结合,使得最终可编辑细节模型方法可行
    系统包含三个阶段:基模型拟合,位移贴图预测,动态细节合成,整体结构如图所示:
    d

2. 相关研究介绍

2.1 三维人脸数据集

三维人脸数据集比较稀少,如果按照获取方式来分类的话,有

  1. 基于模型拟合的数据集。如3DDFA这篇文章提出了一种用三维重建的方式进行人脸关键点检测的方法,从AFLW二维人脸数据集中抽取前2000张做成了AFLW2000-3D数据集;这类数据集虽然方便构建,但是缺点便是拟合的三维模型精度不确定并且缺乏形状上的细节(3DMM系数本身只能大致重建人脸形状,无法继续精细了)
  2. 基于深度传感器或扫描仪,或稀疏多视点相机系统。传统的深度传感器与3D扫描仪缺点是空间分辨率有限,无法覆盖面部几何细节;稀疏多视点相机系统缺点是重建时不稳定,不精确。

与上述数据集不同,facescape用了稠密多视点相机系统,用了68台数码单反(DSLR)相机,在建模质量上有了很大的提高,下面是与其它数据集的对比:
face

2.2 关于3DMM的研究

注意这不是指的人脸三维重建,而是对人脸3DMM系数本身的研究,作者认为主要分为两大类:

  1. 将人脸参数空间划分成不同的维度,如身份,表情等,这样就能通过改变不同维度的信息进行人脸属性的控制与编辑(类似于神经渲染中的特征解耦合?反正目标都是类似的,为了能够自由编辑目标的各种属性)
  2. 提高3DMM的表示能力,通过神经网络等方式表示3DMM基底。(比如非线性3DMM这篇文章,是将编码器输出的特征比作3DMM系数,将解码器比作PCA基底,这样用神经网络的方式进行人脸表示后,可以不再依赖三维人脸数据集,直接用野生二维数据进行训练即可,并且表示能力肯定也比正常3DMM要好很多)

2.3 关于单视图人脸形状重建

人脸三维重建其实主要分为两个方面:形状和纹理。人脸重建保证形状或纹理的一个方面足够精细,那我们完全可以说是高精度人脸重建,(比如GANFIT这篇文章没有在形状上下功夫,而是保证了纹理足够精确,依然可以说自己是高精度的,丝毫不影响人家现在已经商业化了hhh)而作者在这里着重讨论了关于形状上的高精度优化问题,因为3DMM系数重建的人脸形状本身只是个大致形状,无法表达人脸的皱纹等几何细节。为了解决形状上的高精度问题,有多层级优化结构方法,有先粗略重建形状渲染出深度图,再继续优化深度图的方法,有用SFSNet的,有用图形学中的凹凸贴图方法的,有用超分辨率与位移图的,有用条件GAN基于3DMM预测位移图的(《Photo-Realistic Facial Details Synthesis From Single Image》ICCV 2019 Oral)
不管怎样,本文的工作推动了这一方面的发展,因为迄今为止FaceScape是最大的质量最高的人脸数据集,并且之前的工作大多关注于静态人脸形状的细节,本文关注于恢复动态的形状细节

3. 本文数据集——FaceScape

3.1 面部捕捉

使用了多视图三维重建系统进行人脸原始数据的采集,用了68台数码单反相机,30台用8K分辨率拍正面,剩下的用4K分辨率拍侧面,总共花了6个月邀请938人来拍摄,年龄在16~70岁,大部分是亚洲人,并且让每个人做20组不同的表情,这样所有的三维模型达到了18760个。其中原始的人脸模型数据中顶点数量达2百万,三角形面数量达4百万,并且还统计了参与人的年龄,性别,工作信息等
age

3.2 拓扑一致性模型

  1. 采集的原始数据肯定是无法直接用的,先下采样把这百万数量级的点和面变少一点
  2. 之后注册一个模板人脸,这个模板人脸的每个点都是有特定的语义信息的(类似于BFM数据集的操作方式)
  3. 然后对于每一个下采样后的人脸,我用这个模板人脸去“拟合”它,让这个模板人脸去表示每个采集到的人脸,具体方法是NICP(非刚性配准),这样就得到了拓扑一致性的人脸
  4. 当然,我下采样之后,还用了NICP,人脸的精度肯定是有一定的损失的,为了弥补这种损失,使用位移图(displacement map)来进行弥补
  5. 位移图具体而言,可以认为是针对每个顶点位置的微小修正,因为现在的mesh具有拓扑一致性,所以每一个顶点都有对应的一个确定的uv纹理坐标,可以把位移图的像素值,看做是这个像素点所对应的uv纹理坐标所对应的顶点的位置修正值,位移图应该能获得两个信息,正负信息和数值信息,代表这个顶点应当沿着这个顶点的法线方向正向或者负向移动多少距离
  6. 因此,可以说数据集使用模板人脸表示粗糙的几何,使用位移图表示精细的几何,并且这种表示大大减少了原始数据的表示方式占用的存储

3.3 双线性模型

这里要解决的问题是使用一种参数化的方式来表示人脸身份(或者说是形状)和表情,因为毕竟采集到的人脸身份与表情是“离散”的,需要用某种“插值”的方式来表示更多的人脸身份与表情,经过一系列复杂操作后(塔克分解),对于一个新的不在数据集中的人脸,可以用如下简约的式子进行表示了:
v
将人脸的身份与表情分别用一组系数就可以进行表示了,而实验也证明了这种双线性模型表示能力的多样性
d
FW 数据集用了50个id参数与47个exp参数,FLAME数据集用了300个id参数和100个exp参数,而这里本文方法与它们对比时,分别用了50 47与300 52个参数

4. 人脸重建

4.1 基模型拟合

通过塔克分解后,人脸的粗略形状可以由身份系数和表情系数进行表示了,类似于3DMM拟合,这组身份系数和表情系数也可以通过优化一组目标函数来进行拟合:
e
E l a n E_{lan} Elan自然就是预测的人脸landMark, E p i x e l E_{pixel} Epixel是渲染图与真实图的像素级差异,剩下的都是正则化项。上面得到的是人脸的身份(形状)参数,得到形状参数后,再加上表情参数就能表示一个完整信息的人脸了:
d
这里推测表情系数共有51个?可能是因为想粗略重建人脸形状,所以表情是粗略分成了51个。

4.2 位移贴图预测

4.2.1 位移贴图介绍

这一步的目的是为了在粗略人脸重建的基础上进一步优化细节,而且还是动态的细节,因此需要用到位移贴图,但是单张的位移贴图肯定是无法表达动态变化的人脸的,只能表示静态的人脸细节,因此这里采用了神经网络去预测多张位移贴图。
具体而言,位移贴图其实可以分为两部分,一部分是静态的,一部分是动态的,静态部分其实相当于一些毛孔、痣之类的,本身反映人脸某种“不变”的特征,动态部分相当于皮肤的收缩和伸展,这些东西本身就是随着人的不同表情而变化,因此属于“变化”的特征,将位移贴图分为这两部分之后,可以分别进行提取,之后丢入神经网络去预测最后完整的位移贴图。静态部分可以从纹理图中得到,动态部分使用一张变形图(deforming map)进行表示(因为拍摄的人脸是静态的,至于怎么让它动起来,推测是根据拍摄的同一个人的人脸不同表情,去做一种过渡操作,比如计算uv空间下的两种表情的点的位移得到变形图),上述如图所示:
imgsface

4.2.2 位移贴图预测

使用pix2pixHD这个项目作为基础,(pix2pixHD这个项目是基于conditional GAN的,可以通过自己的输入让GAN网络去生成自己想要的数据,而不是像之前的普通GAN一样无法自主掌控生成什么样的数据,看下面这张图就能够理解)
conditionalGAN
网络的输入是人脸的纹理图和一系列的变形图(能够根据人脸表情计算出来),网络的输出是预测的一系列的位移贴图,损失函数有生成对抗损失和特征匹配损失:
loss

4.3 动态细节合成

之前的位移贴图预测,应该是针对每一个人做的20个表情,生成对应的20张位移贴图,之后为了表示人脸的任意表情,就采取根据权重混合的方式:
f
M 其实就是针对不同位移贴图的权重, F 0 F_0 F0指的是其中的一个中性表情,这样20个表情进行不同的权重组合,就可以看做是实现了某种插值,从而可以表示任意的一个人脸表情细节了

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值