第二节 研究现状
三维人脸建模技术起源于20世纪70年代。Parke是第一个使用计算机方法来表示人脸的学者。[4-8]自此之后许多研究者先后投入到该课题的研究当中,并做出了大量创造性的工作。经过近几十年的发展,三维人脸建模技术已经在真实感、自动化方面有了长足的进步。按照人脸建模知识来源的不同,目前的三维人脸建模方法大致可分为以下两类:基于经验知识的三维人脸建模和基于样本学习的三维人脸建模。基于主观经验的三维人脸建模方法首先根据经验知识构建一个标准的三维人脸模型,然后通过模型变形、纹理映射等方式来构建特定人的三维人脸模型。基于这类方法得到的模型完全取决于建模者的知识和水平。为了克服这类方法在人脸知识方面的不足,基于样本学习的三维人脸建模方法应运而生,这类方法以大量的三维人脸样本为基础,通过统计学习的方法构建三维人脸表示模型。使用这类方法得到的三维人脸模型无论是在模型的真实感,还是在建模过程的自动化等方面都要优于前者。
一 基于经验知识的三维人脸建模
(一)基于参数模型的三维人脸建模
基于参数模型的三维人脸建模方法是最早出现的三维人脸建模方法,该方法使用一个多边形的集合来描述三维人脸模型,并通过定义一组参数来控制人脸的面部特征和表情变化(图1-3)。这组参数通常由面部特征参数和表情变化参数构成。面部特征参数用于描述面部的几何特征,如人脸的形状、尺寸以及五官的形状和大小。使用不同的面部特征参数可以生成不同的三维人脸模型。表情参数用于描述面部表情的变化,如眨眼、皱眉、微笑等动作。发生在面部的各种表情变化就是通过调整表情参数实现的。早期的研究者大多采用这种方法来构建三维人脸模型。
图1-3 Parke的人脸模型
基于参数模型的三维人脸建模方法为人脸的表示、控制和描述提供了一种全新的思路。自Parke之后,人们对原有的人脸参数模型进行了多方面的改进,并提出了多种改进后的人脸参数模型。然而使用这些方法构建三维人脸模型时,仍需要首先设计出人脸模型在计算机中的存储方式和表现形式。然后手动调节模型的尺度、形状、面部特征、表情等一系列的参数。表面上使用参数模型方法建立三维人脸模型是一种计算机方法,实际上却需要研究人员进行全程的手工参与,因此模型的建立效果与制作者的水平有着密切的联系。并且,定义完备的参数集也是一件非常困难的事情,这使得构建完善的人脸模型和表情控制参数非常不方便。因此,基于参数模型的三维人脸建模方法还需要在参数的定义方式和参数的控制方式等方面做出深入的研究。
(二)基于图像的三维人脸建模
由于参数模型建模方法的建模过程非常复杂,建模效果也很难尽如人意。因此90年代以后,基于图像的三维人脸建模方法成为三维人脸建模的热门研究方向。该方法首先使用手工的方式建立一个标准的三维人脸模型,然后从多张或单张人脸图像中提取面部特征,即使用人脸检测或手工标定的方式在图像中标定人脸特征点位置,并计算出这些特征点在三维人脸模型上的对应位置。最后根据特征点的对应关系对三维人脸模型进行变形和纹理映射,从而建立相应的三维人脸模型。目前,基于图像的三维人脸建模方法可以分为两大类:基于多幅图像的三维人脸建模与基于单幅图像的三维人脸建模。
基于多幅图像的三维人脸建模方法首先需要获取目标对象在不同视点下的图像,然后在这些图像中计算出面部的特征点位置,如眼角、鼻尖和嘴角等处的位置,并根据这些特征点建立图像与模型之间的对应关系。最后根据特征点的对应关系对标准三维人脸模型进行变形,并将人脸的纹理信息映射到该三维人脸模型之上,从而生成该对象的三维人脸模型。目前基于多幅图像的三维人脸建模主要有以下一些工作。[9-23]
F.Pighin[9-10]使用五个不同视点下的人脸图像构建特定人脸的三维人脸模型。该方法首先使用五台均匀分布的摄像机来获取目标在同一时刻、不同视点下的图像,并在这些图像当中对面部的关键特征位置进行标注,如眼角、鼻尖、嘴角等特征位置。然后根据这些特征位置的对应关系计算出它们在空间中的位置和摄像机参数。最后根据特征点的空间位置对标准三维人脸模型进行变形,并将图像中的纹理信息映射到变形后的三维人脸模型上,从而得到该目标的三维人脸模型(图1-4)。
图1-4 Fr'ed'eric Pighin的人脸模型
Won-Sook Lee等人[11-13]提出了基于两幅图像的三维人脸建模方法。这两幅图像分别是一幅正面图像和一幅侧面图像(图1-5)。该方法首先使用Snake模型获取目标在图像当中的轮廓信息和特征点位置,然后根据这些信息建立三维人脸模型的变形函数和纹理映射函数,并基于这些函数实现了三维人脸模型的建立。
图1-5 Won-Sook Lee的人脸模型
Z.C.Liu和Z.Y.Zhang[14,15]提出了一种基于视频图像的快速三维人脸建模方法。在构建标准三维人脸模型时,该方法预先设置了五个显著特征点(两个眼角点、一个鼻尖点和两个嘴角点)和一些普通特征点。在进行三维人脸建模时首先基于这五个显著特征点确定人脸的区域和人脸的颜色模型,然后根据一般特征点建立图像和模型的对应关系。
Horase等人[16]也提出了一种基于正面和侧面图像的三维人脸建模方法,该方法的贡献在于提出了一种局部最大曲率跟踪算法。使用该跟踪算法可以自动提取出人脸的外轮廓特征点和关键特征点的位置。因此Horase的方法可以实现三维人脸建模过程的自动化。但是当目标人脸与标准三维人脸模型的差异较大时很难得到较好的变形结果。因此该方法只能适合某些特定的人脸图像。
Akimoto等人[17]用两张人脸照片来建立人脸模型。这两张人脸照片分别从人脸的正前方和侧方拍摄,在每张照片上都需要手工标记出眼睛、鼻子、嘴等关键特征点的位置。然后根据这些特征点的对应关系计算出这两幅图像的配准关系和特征点的空间位置。最后根据特征点的空间位置对标准模型进行变形,从而构造出与输入图像相对应的三维人脸样本。使用这种方法进行三维人脸建模具有简单易行的优点,但是要求两张照片的角度垂直。基于多幅图像三维人脸建模方法的优点在于信息获取很方便,缺点在于面部特征信息的获取非常困难,也就是说如何得到图像中的特征位置坐标,该问题不但是三维人脸建模中的难题,也是计算机视觉中的难点问题。
基于单幅图像的三维人脸建模是指根据给定的单张二维人脸图像完成三维人脸模型建立的工作,通常这种建模过程又被称为三维人脸重建。基于单张图像的三维人脸建模大大简化了人脸信息的获取工作,并丰富了信息的获取来源。阴影重建算法(Shape From Shading,SFS)[18]是最经典的基于二维图像的三维重建算法,该算法根据朗伯反射模型将图像亮度变化映射成三维曲面上面片的法向变化。SFS方法是在20世纪70年代由Horn[18,19]首次提出的,该方法假设图像中的曲面是朗伯反射曲面,图像亮度与曲面法线方向和光照方向的夹角成反比,算法流程如下图所示(图1-6)。图像中最亮的点说明了该点正对着光源,其他亮度值的点法向则根据其与该点的亮度差异计算出来。
由于二维图像相对于三维模型而言存在维度缺失的问题,这使得基于单张图像的三维重建成为一个典型的无约束病态优化问题。相同的二维图像可能是由不同的三维物体投影而成。由于人脸表面复杂的光照特性和曲面结构,使得直接使用SFS算法进行三维人脸重建很难得到令人满意的效果。为了有效地提高该算法的建模效果,很多学者先后提出了大量地施加特定约束的重建算法。Hancock[20-22]是首次提出使用SFS算法进行三维人脸重建的学者,并提出了基于局部形状指示器的SFS方法用于重建人脸的深度信息(图1-7)。Zhao和Chellappa[23]提出了一种对称的SFS(SSFS)算法,通过对SFS算法施加对称性约束来提高深度信息的重建精度,然而该算法运行的前提是面部左右两部分区域的对应关系已经建立。例如:左眼和右眼是需要建立对应关系的对称区域。然而人脸的左右两个区域的器官只是在宏观意义下是相同的,在局部细节方面存在较多的差异。这使得建立这些区域之间的对应关系成为一件非常复杂的工作。不精确的对应关系会直接影响算法的重建精度。除此之外,该算法还对面部的光照特性施加了严格的约束,它将面部复杂的光照特性简单地规定为相同的反射率,这就使SSFS的适用范围和重建效果大打折扣。对于包含复杂对象的图像和带阴影的图像,该算法的重建精度也会大大降低。Prados等人[24,25]使用图像中全局深度最高点作为关键点,然后依据当前点与关键点的位置来约束重构的曲面法向。除此之外,该方法还假设光源、曲面反射率、相机等参数是已知的。这些假设在实际应用当中是很难满足的。
图1-6 基于SFS方法的3D曲面恢复
图1-7 基于SFS方法的3D人脸建模
二 基于样本学习的三维人脸建模
以上的三维人脸建模算法是研究者根据自身经验知识提出的,为了更准确地对人脸特性进行分析,一些学者开始采用真实的人脸样本作为建模算法的信息来源。
(一)基于统计阴影重建的三维人脸建模
为了进一步提高阴影重建算法的真实感,Kemelmacher和Basri[26]提出了一种基于真实样本的SFS重建算法,该方法首先选定一个标准的三维人脸样本作为算法的执行标准,然后从该样本中提取人脸建模需要满足的约束,并将这些约束施加在SFS重建算法上。在进行三维人脸建模时,该方法通过寻找与输入图像最匹配的形状、反射率、光照条件来完成深度信息的重建。该方法的假设前提是图像中的样本与参考样本具有大致相似的形状和反射率。虽然使用这种方法得到的重建结果更为准确,但是它假设输入图像与参考样本之间具有相同的反射模型,并且二者之间已经实现了初始的对齐,通常这项约束是很难得到满足的。
由于人脸具有复杂的形状信息,采用一般的知识很难获得人脸的精准数学描述。使用统计学方法分析复杂对象的变化规律是一种常用的研究方法,即通过对大量样本的学习得到关于目标变化规律的统计经验。基于统计学习的三维人脸建模方法利用训练样本库中已有的人脸样本学习和建立三维人脸的表示模型。Atick[29]通过将PCA[28]模型与二维图像匹配来获取三维样本组合参数。Smith[30]通过将PCA模型与图像的亮度信息匹配来获得样本参数表示形式,在匹配时使用朗伯模型提供的光照计算公式来对重构曲面的法向进行约束。Dovgard和Basri[27]提出了将统计约束与形状约束相融合的重建算法。基于SFS的三维人脸重建算法虽然可以实现基于单张图像的三维重建工作,但是这类方法还是存在着很多的不足。首先使用该方法恢复的形状信息与视点是相关的,它对图像中的人脸姿态有着较高的要求。其次计算结果具有不稳定性,当图像中存在较大的噪声时,每次的计算结果都可能不一样。最后使用这类算法还需要对图像的光照条件做出较强的限制。
(二)基于形变模型的三维人脸建模
由Vetter和Blanz[31]提出的基于形变模型的三维人脸建模方法是目前建模效果最好的方法,该方法可以实现基于单幅人脸图像的高精度三维建模,并且建模过程是完全自动化。形变模型方法以人脸空间的基向量为基础建立三维人脸的表示模型,在进行三维建模时通过将形变模型与输入图像匹配的方式来实现对输入图像的三维重建。
形变模型建立的理论基础是线性对象类的理论,即将具有线性关系的一类对象看作线性对象类,使用该类对象若干典型样本的线性组合可以对该类对象中的任一对象进行表示。形变模型的思想最初被应用于图像分析和图像合成方面的研究,即使用一类图像中若干典型图像的线性组合表示或近似表示该类图像中的特定实例。Ullman[32]和Shashua[33]等人使用同一物体的三个不同视角图像的线性组合来合成该物体在任意视角下的图像,这是形变模型思想在图像表示方面最初的尝试。Choi等人[34]和Poggio等人[35,36]使用几何形状向量和与形状无关的纹理向量来表示一幅图像,并分别使用形状向量的线性组合与纹理向量的线性组合对特定的人脸图像进行表示。Poggio和Vetter[37]提出了线性对象类的概念,并论证了哪些对象可以被看作线性对象类,他们还证明了人脸对象属于线性对象类。直观地讲,对于给定的N张二维人脸图像,分别使用S1,S2,...,SN和T1,T2,...,TN表示图像的几何向量集和纹理向量集,则特定二维人脸图像 ( Snew,Tnew)可以由这些向量的线性组合来表示,即,其中αi和βi分别是形状组合参数与纹理组合参数。在Jones和Poggio的实验中,[38]形变模型被用来表示人脸、汽车以及手写数字等对象,并取得了很好的效果。如图1-8所示是部分原型人脸和特定人脸表示的结果。二维图像形变模型不但可以用在图像分析和图像表示方面,还可用于图像压缩编码、目标识别等方面。虽然使用二维图像形变模型可以比较好地表示同一类对象,但是当目标对象过于复杂或者对象之间变化的范围较大时,使用该方法的表示效果将会大大降低。
基于二维形变模型的思想,Vetter和Blanz提出了三维人脸形变模型,[39]并基于该模型实现了三维人脸建模。与二维形变模型相比,三维人脸形变模型不单包含形状参数和纹理参数,还包含光照、摄像机等外部参数。并且三维人脸形变模型的建立基础是具有稠密对应的规格化三维人脸集,这使得三维人脸形变模型的表示能力要强于二维形变模型。
图1-8 基于形变模型的图像合成
图1-9是基于三维人脸形变模型的三维人脸建模结果。
图1-9 爱因斯坦重建结果
目前国内有多个研究机构在三维人脸建模方面也开展了大量的研究工作,比较有代表性的是哈尔滨工业大学[40,41]、中科院计算所[42-44]、浙江大学[45,46]、中国科技大学[47-49]、北京工业大学[50-69]、湖南大学[70,71]、上海交通大学[72]等研究机构的工作。
基于形变模型的三维人脸建模方法根据输入的二维人脸图像,可以自动实现三维人脸建模,且建模结果具有高度的真实感。但是形变模型方法还存在很多不足之处,需要得到进一步完善和发展。北京工业大学的胡永利[53]和王成章[61,62,66]分别对形变模型建模方法做出了相应改进,他们的研究工作重点关注了形变模型匹配方法的改进和应用,并基于形变模型的建立需求构建了BJUT-3D人脸数据库。与他们的工作重点不同,本书将全面关注形变模型的建模特点和不足,并以此为基础展开本书的研究工作。首先,形变模型是建立在规格化三维人脸样本集之上的。目前的三维人脸样本规格化方法主要有曲面变形法、网格重采样等方法,这些方法无论在算法的鲁棒性上还是在计算简便性上都有待提高。其次,形变模型的表示能力与训练样本集的数量和样本覆盖范围有很大的关系。由于三维人脸采集设备的成本很高且后期处理过程非常复杂,使得现有的三维人脸样本库中的样本都相对不足,因此如何增加训练样本的数量和信息覆盖范围是本书的研究重点之一。再次,形变模型的线性假设前提和人脸的非线性结构之间存在着矛盾,人脸是嵌套在高维空间当中的非线性流形,而形变模型假设人脸空间是一个线性子空间。基于形变模型的三维人脸建模方法必定会忽略人脸的某些细节特征,从而使得该方法难以得到更好的建模效果。因此如何提高形变模型的非线性表示能力是本书的另一个研究重点。最后形变模型的匹配算法也有待改进,形变模型的匹配问题是一个高维参数优化问题,提高形变模型的匹配速度和匹配效果是改进形变模型建模效率的一个重要途径。因此本书将针对这四方面问题展开研究工作。