VR来了,3D人脸重建跟上《三维人脸重建-3DMM》

之前我们写过了《三维人脸重建入门》,接下来,自然就是入门之后的事情。当然了,不管是一个什么项目,方法永远不会是唯一的。

一 引言

To my best of knowledge,如之前所说,三维人脸重建方法分为三大类:(1)专业仪器采集;(2)专业人士处理;(3)图像处理方法。

第三类,也就是基于图像的三维人脸重建,才是我们关心的问题,那么第三类又有哪些方法呢?

To my best of knowledge,分为几下几个方向:

(1) 基于立体匹配的方法;(2) 基于3D Morphable Model的方法;(3) 基于Structure from Motion与光流的方法; (4) 基于structure from shape等方法。

事实上,上面的各种方法之间会有交叉,并没有一个完整的界限,之所以分开是为了学习的方便。本篇要学习的,就是基于3DMM的方法。

在引出3DMM之前,有一个概念引出,看下图: 0?wx_fmt=jpeg

 

上图,是英国人做的绘制各国女性平均脸的实验。平均脸,无需多加解释,就是综合了所有图片得到的一个平均特征。当然,在二维人脸识别中更常使用的概念是特征脸,与这里的平均脸有一定的差异。

特征脸方法的思想是:利用训练人脸图像样本集,找到一组标准正交基,将人脸线性投影至由该组基组成的向量空间,从而每一幅人脸图像都可以由这组标准正交基线性表示。

什么意思?就是一幅人脸,可以由其他许多幅人脸加权相加而来,学过线性代数的就很容易理解这个正交基的概念。我们所处的三维空间,每一点(x,y,z),

实际上都是由三维空间三个方向的基量,(1,0,0),(0,1,0),(0,0,1)加权相加所得,只是权重分别为x,y,z。

基向量空间,个人觉得实际上是线性代数最核心的思想了。

转换到三维空间,道理一样。每一个三维的人脸,可以在由一个数据库中的所有人脸组成的基向量空间中进行表示,而求解任意三维人脸的模型,实际上等价于求解各个基向量的系数的问题。

二 3DMM

3DMM,全称3D Morphable Model,由文[1-2]提出。Blanz等人在这两篇文献中提出的3DMM方法,输入图像可以是单张正面的人脸图像,多张正面的人脸图像,或者用户交互输入的图像,其重建效果可见下图,图1.1为输入图像,1.2为输出结果。

 

0?wx_fmt=png

图1.1

0?wx_fmt=png

图1.20?wx_fmt=png

图1.3

 

图1.3左上角为输入图像,右上角为重建结果,下面一排为改变图像的光照和姿态后的结果。

 

如果仅从上面的结果看,是不是会觉得非常惊艳?这还只是本世纪初的研究成果。当然,论文中呈现的结果,离实际工业应用往往还有很大的距离,毕竟文中只呈现好的结果,如果换张图效果可能就有非常大的差异。

下面从3个方面来介绍3DMM。

 

1. 数据库

前面说了,我们需要一个基向量空间,那么就需要一个数据库来建立该基向量空间。那么Blanz等人采用的数据库是怎样的呢?

a. 200个3D模型,也就是200张三维的人头部图像。100张男性,100张女性,年龄分布18~45岁。

b. 1张亚洲人脸,199张高加索人脸。

c. 采用结构光和激光进行采集,未处理前,每一个模型由70000个点描述,处理后由53490个点描述。

d. 在数据库的处理过程中,将所有模型的每一个点的位置都进行了精确一一匹配,也就是说,每一个点都有实际的物理意义,可能有右嘴角,可能是鼻尖。

 

 

该数据库的平均人脸形状和平均人脸纹理如下面所示:

 

0?wx_fmt=png

0?wx_fmt=png

 

左边是平均值,右边两行,分别是第1,2,3个主成分,+/-方差5所得的模型。从中可以看出,调整不同的人脸形状和纹理是很容易的。

 

接着上面的话题继续介绍数据库

e. 每一个模型包括的属性,性别,高度,宽度,年龄。有了这些属性之后,可以调整各个属性的系数,从而产生不同的人脸,看下图。

0?wx_fmt=png

f. 不仅如此,为了更精确地重建,还讲人脸分为了4个区域,这样我们就可以分别对各个区域进行精确地重建,然后再融合。0?wx_fmt=pngg. 对于现在的人脸识别来说,最重要的就是特征点的标记,也就是landmarks,因为这些点在处理的过程中,意义相比其他特征不明显的点,更加明显。作者提供了两种特征点标记方法。 特征点可以干嘛?更方便地用于初始化。

0?wx_fmt=png

 

 

2. 3DMM的基本原理

前面提到,一个3维的人脸,可以由其他人脸线性组合,这就是3DMM的核心思想。首先要说明的是,这个线性组合绝不是在笛卡尔坐标系下,也就是说不是拿采集的3D点的位置就直接进行线性组合。那么基向量从哪里来呢?相信熟悉的人都会想到,PCA。此处不会对PCA详解,不熟悉可以再去了解。

总之,PCA的功能就是,将数据从一个特征空间,转换到另外一个特征空间进行描述,放到高中数学,这样的思想其实有过。在平面直角坐标系下,圆的方程其实很不优雅,而转换到极坐标系下,则变得特别简单。

每一个模型都由很多点组成,每一点可以表为(x,y,z,r,g,b),其中(x,y,z)是位置坐标,(r,g,b)是颜色。此处,我们将x,y,z称为形状向量,r,g,b称为纹理向量(忘掉颜色吧)。形状和纹理,实际上可以说是完全不相干的东西,前者决定了脸的轮廓,后者决定了脸的肤色等。当然,在两者的共同作用下,才会出现皱纹等效果。数学描述如下:

每一张人脸可以表示为:

形状向量Shape Vector:S=(X1,Y1,Z1,X2,Y2,Z2,…,Yn,Zn)

纹理向量Texture Vector:T=(R1,G1,B1,R2,G2,B2,…,Rn,Bn)

而一张任意的人脸,其等价的描述如下:0?wx_fmt=png

式1

其中,Si,Ti就是数据库中的第i张人脸的形状向量和纹理向量。

到这里,PCA似乎还没有派上用场?

在这里,首先要给大家灌输一个知识,那就是在解决实际问题的过程中,数据的预处理,其重要性并不比一个方法或者模型低,没有经过归一化的数据,可能会对方法的稳定性构成非常大的挑战。

上面的式子,可以转换为下面的形式,0?wx_fmt=png

式2

其中0?wx_fmt=png是Si,Ti的平均值,而si,ti则都是Si,Ti减去各自平均值后的协方差矩阵的特征向量,而且是根据i降序排列的,系数也不再是a,b而是α,β。等式右边仍然是m项,但是累加项降了一维,减少了一项。如果原始的数据,为零均值或者已经做过去均值处理,那么这个式子的表达与式1还有什么区别呢?

区别就是:

si,ti都是线性无关的,而Si,Ti则不一定。取si,ti的前几个分量可以对原始样本做很好的近似,而Si,Ti则不行,因为si,ti是按照携带信息的重要性降序排列的,而重要信息往往掌握在少数的向量中。虽然本数据库只有200张图像,但是如果每一个分量都用上的,a就有两百个参数需要估计,而式2表现的形式可能只需要取前几个分量,从而大大减少参数的数目,并不失精度。

3. 3DMM如何恢复形状和纹理

这才是最重要的问题对不对,有了上面的模型之后,怎么从一张图片从恢复出形状和纹理呢?

首先,我们的输入只是一张图像,需要把它变成3维的模型,本身就是个病态问题,说人话就是:此问题无解,因为可以有无穷多个解。但是现实是,就算没有解的方程,我们仍然需要去求解。

思路是这样的;

(a) 初始化一个3维的模型(需要初始化内部参数α,β),初始化外部参数,包括相机的位置,图像平面的旋转角度,直射光和环境光的各个分量,图像对比度等等,共20多个位置参数,当然初始化需要有一定的技巧。

(b) 在初始参数的控制下,经过3D至2D的投影,即可由一个3D模型得到2维图像,然后计算与输入图像的残差。再以其误差,去反向传播调整相关系数,调整3D模型,不断进行迭代。

现在我们遇到的绝大多数问题,都是在迭代中求解最优解,上面的过程被称为Analysis-by-synthesis,不知道该怎么翻译好,总之就那么个意思吧。

具体的迭代细节和方法,不是此处可以说明白的,可以参考下面的文献,其中会牵涉到梯度下降法,Phong光照模型,贝叶斯理论等。

 

4. 3DMM到底如何

上面其实已经展示了一些结果,下面就最新的一篇文章【3,4】分析一下方法的效果。

这里就不完整的介绍论文,基于上面的3DMM模型,该论文具体采用了这样的一些技术:

(1) cascaded regressor。级联回归器,是该文章用于进行参数迭代的方法。输入为若干个训练好的弱回归器,和一个初始化的模型。

(1) regressor的输入是串联起来的关键点的局部SIFT特征向量。

 

0?wx_fmt=png

0?wx_fmt=png

0?wx_fmt=png

 

 

 

值得一提的是,该方法的结果是实时的,而不像原始的3DMM方法处理时间是以分钟为单位,输入可以是图像或者视频。

 

三 后记

很多人都觉得,2016年是VR的元年,那么我相信,3D人脸重建,一定是必不可少的一环。

 

四 参考文献

【1】Blanz V, Vetter T. A morphable model for the synthesis of 3D faces[C]//Proceedings of the 26th annual conference on Computer graphics and interactive techniques. ACM Press/Addison-Wesley Publishing Co., 1999: 187-194.

【2】Blanz V, Vetter T. Face recognition based on fitting a 3D morphable model[J]. Pattern Analysis and Machine Intelligence, IEEE Transactions on, 2003, 25(9): 1063-1074.

【3】Huber P, Feng Z, Christmas W. Fitting 3D Morphable Models using Local Features[J]., 2015.

【4】Huber P, Guosheng Hu, Rafael Tena. Etc. A multiresolution 3D morphable face model and fitting framework. 2016

 

 

 

 

 

 

Published by

风君子

独自遨游何稽首 揭天掀地慰生平

发表回复

您的电子邮箱地址不会被公开。 必填项已用 * 标注