基于改进Candide-3模型的眼部动画建模
2015-08-23雷腾侯进王献
雷腾,侯进,2,王献
(1.西南交通大学信息科学与技术学院,四川成都610031;2.南京大学计算机软件新技术国家重点实验室,江苏南京210023)
人脸表情是人类交流与信息传输的重要方式。而且这些传输的信息中眼部占据相当大的一部分。随着近几年计算机技术迅猛的发展,对这方面的研究也越来越多,如1972年,Parker首次用计算机方法来表示人脸。曾丹等[1]提出了一种人眼3D肌肉控制模型。Nicolas Stoiber[2]等通过训练的方法完成了一种用于交流的人脸动画系统。AxelWeissenfeld等[3]提出了通过语音控制人眼部运动的方法,该方法通用性不强并且缺乏脸部的其他部位的运动。Tu Ching-Ting[4]等在一种新颖的直接结合的模型算法的基础上,开发了一种自动面部素描合成系统。Song Mingli等[5]通过一种联合的稀疏学习方法有效和高效地合成各种三维人脸表情。Zhigang Deng等[6]提出了一种头部与眼部运动的一种耦合关系的方法。William Steptoe等[7]提出了一种通过一系列眼部运动图片驱动从poser等三维建模软件导出的人脸模型中的眼部运动的方法。尹宝才等[8]提出了一种融合口型、表情等多种运动元素的三维人脸动画合成的方法。范懿文等[9]对人脸动画与语音之间的关系进行了一定的研究。Thomas S.Huang等[10]提出了MPEG-4的性能驱动AVATAR稳健的面部运动等。虽然学者们对人脸和眼部动画建模以及驱动方面进行了深入的研究,但他们的研究要么不具有通用性,要么就是处理的数据多,使得问题变得很复杂。而且对整个人脸表情研究的同时也缺乏对眼部细节运动进行研究。本文提出的在Candide-3模型上对眼部进行重新建模的方法,不但能细化眼部特征也保留了兼容MPEG-4人脸动画标准的人脸模型的特征,也能对眼球及眼睑的运动进行模仿,从而对在Candide-3模型上重建人脸模型时,对其不能完成眼部细节运动做了一个很大的改进。
1 眼外部及眼球模型的建立
本文的建模主要有眼球和眼睑的建模。通过这部分的建模取代Candide-3模型原有的眼部。从而完成了具有眼部细节特征的改进的人脸模型。
1.1 眼球模型的建立
主要是根据眼球的结构,以及解剖学结果统计得到的眼球内部各种参数的等比关系,通过2个半球体对其进行建模的。图1是对应的几何关系图。
图1 眼球模型的几何图Fig.1 Geometric figure of eye model
图1中的R是大球的半径,r是小球的半径,o是大球的球心,o'是小球的球心,d是瞳孔的宽度,n和h分别是小球和瞳孔与z轴的交点。将R作为这个模型的基准,然后根据一般人眼的几何比例关系来得到其他参数,这个几何比例关系为r=0.65R,d=0.924R,=0.43R。通过这种比例关系,根据输入的R值就可以求出其他参数。然后根据式(1)在程序中对眼球进行绘制。
式中:x1=x2,y1=y2它们的大小是根据改进的Candide-3模型上的眼部2个点的数据获得的,这样才能使得眼球与Candide-3模型匹配。两球心的z坐标的距离关系为z1-z2=o'o。在两球面的链接处,本文采用了权重因子选取法进行平滑处理。
1.2 眼外部模型的建立及眼球的匹配
眼外部模型的建立主要是在Candide-3模型上,通过bezier曲线对眼睑的内外边缘以及上眼睑沟进行建模。然后用这一模型取代原有的Candide-3模型上眼部的点。从而得到可控性很强的带眼部特征的人脸网格改进模型。图2是眼睑部模型的几何图。图3是Candide-3模型上去掉眼部数据点后形成的眼部空缺的图。本文的思想就是要将设计的眼睑部模型如图2建在图3眼部空缺的部位。其主要的工作就是找到图2各个曲线对应的控制点,即图3中1.2、1.3等对应点的坐标。图4是Candide-3模型的眼部结构。
图2 眼睑部分的几何模型Fig.2 Geometric model of eyelid
图3 Candide-3左眼外部图Fig.3 Left eye’s external figure of Candide-3
图4 Candide-3眼部模型Fig.4 Eye model of Candide-3
本文只对左眼眼睑曲线的控制点进行了求取,然后根据candide-3模型上左右点对称的原理得到右边控制点的数据。图 4 中的点 53、98、69、54、73、106、56组成一个类似的曲线可以看为是上眼睑的下边缘,用图2中曲线 进行代替,从而可以得出曲线 的起点和终点分别是Candide-3上的点53和点56,曲线的另外2个控制点是根据Candide-3模型上63和73点的数据的y值稍微大一点,其他值不变的情况下得出来。同样的道理,下眼睑内边缘的曲线也可以用这种方法求得。这样的话就可以得到图3中点1.2、1.3,2.2、2.3等点的坐标。对于眼睑外的上下边缘以及上眼睑沟曲线控制点的获取,本文是在图3眼部空缺部分,通过平均人脸这些部位的相对位置,在几何画板软件中找到对应的控制点。然后让几何画板软件显示这些点的坐标。由于几何画板是平面图,因此只可得到图 3 如 5.1、5.2、5.3、5.4、…、7.2 等曲线控制点的x、y坐标。为了得到这些点的z坐标,本文根据建立的眼部模型必须满足原有Candide-3模型的变化规律的原理,分别采用了2种求取深度信息的方法,一种是线性求取法,另外一种是平面求取法。具体用哪种方法求取对应的深度信息主要是看这个控制点是落在Candide-3模型的对应的线上还是对应的面上。以图3中6.1点为例,点6.1落在Candide-3模型的点62和点53所在的线上。那么点6.1就用以下公式求出:
式中:(x1,y1,z1)是 62 点的坐标,(x2,y2,z2)是 53 点的坐标,然后将6.1点的x或y坐标代入式(2)即可以求取对应的z坐标。而对于图3中的7.2点则正好落在Candide-3模型的第42个三角面片上,这个三角面片对应的顶点为60、62和53。它们对应的坐标为60(x1,y1,z1),62(x2,y2,z2),53(x3,y3,z3),则这 3 个点对应的平面方程为
通过将点7.2的x,y坐标代入到式(3)就能得到像7.2这样点的z坐标。通过上面的方法,本文在Candide-3模型上绘制的眼睑部曲线的正、侧面图如图5所示。
在图5中模型的基础上去掉Candide-3模型中左右眼部各18个数据点以及对应的三角形。然后在bezier曲线上等比例取点,分别给左右眼部各取41点,形成了带点后的Candide-3模型的正,侧面图如图6所示。在图6的基础上,本文又在Candide-3模型空缺部分的外围线段上(如图3中50点和51点所示的线段)进行中心点取值或者是三等分点进行取值,分别在左右眼部又加了7个点。最后将这些离散的点分别进行编号组合,对左右分别加了82个三角面片进行三角化。从而得到图7三角化后的正面和侧面图。
图5 带线的Candide-3模型Fig.5 Candide-3 model with line
图6 取点后的Candide-3模型Fig.6 Candide-3 model after take
图8是眼球匹配后的Candide-3模型的正、侧面图,以左眼为例说明,具体的匹配方法是通过图3中53点和56点的x、y坐标的平均值作为式(1)中大小球的球心的x、y坐标,以这2点y方向的距离的一半作为眼球的大球半径,然后根据图4中54和55点的z坐标作为图1中n点的z坐标,得到这些数据后根据1.1节中的等比关系,求出其他参数及对眼球和人脸进行结合及可以得到如图8所示的结果。
图7 三角细化的模型Fig.7 Triangular thinning model
图8 眼球匹配后的模型Fig.8 The model after eyeball matching
2 个性化人脸网格模型的生成
本文主要是对单张人脸图片用ASM(active shape model)算法进行特征点提取,然后用局部最小二乘法对人脸模型进行匹配。从而得到了可以与输入的单张照片对应的三维网格自适应人脸模型。
2.1 特征点的提取
本文对MUCT人脸库的200多张人脸图片进行了人脸特征点的训练。进行训练时,本文对人脸库中每个训练的图片选取了40个特征点。然后采用ASM算法对人脸进行特征点提取。这40个特征点在人脸图片上的位置和改进的Candide-3模型上对应的位置分别如图9所示。
图9 特征点在人脸图片和模型上的分布Fig.9 The distribution of feature points on the face images and model
2.2 模型的匹配
对于模型匹配问题,首先对图9中的特征点进行调整。在特征点调整完后,接下来就是对非特征点进行调整。对于非特征点的调整本文采用文献[11]中能量最小化的相关思想,就是让偏导数为零,然后求取相关的调整参数。及为采用特征点的变化信息,运用最小二乘法求取调整参数,然后用这些参数调整模型。算法具体表达为设标准模型中的一个特征点为P(x,y,z),则它在个性化模型中的点为P'(x',y',z')。根据Candide-3模型匹配的原理,P和P'的关系可近似地表示为
其中,α为缩放因子矩阵为
平移向量 β =(βx,βy,βz)。
根据式(4)得到x,y方向的变化关系:
通过式(5)可得
分别对式(6)和(7)中的未知数进行求偏导得
通过式(8)和(9)就能求出对应x,y方向的缩放因子和平移因子。由于深度调整与纵向和横向的调整应保持一致,因此深度方向的缩放因子可以是纵横方向缩放因子和的一半:
由于特征点的坐标是二维人脸图片得到的,因此可以认为深度平移因子βz=0。根据此原理,可以根据2个特征点在标准模型和个性化模型中点的坐标就能求取对应的缩放因子和平移向量。然后用求取的这些参数去调整非特征点就能得到个性化的人脸模型。与文献[12]不同的是本文并没有对该模型进行形状单元调整,这主要是因为本文是改进的Candide-3模型,有些形状单元并不明显,而且具体哪个点属于哪个形状单元也不是很明确。本文也用这种方法尝试过但得到不理想的如图10的结果。
并且本文没有进行线性调整,因为线性调整在理论上并不是完善的。因为特征点从通用模型到个性模型并不是绝对的线性变化,所以本文对非特征点的调整用离它最近的特征点进行最小二乘法求取的参数进行调整。图11是通过不同的人脸图片得到的调整后的结果。
图10 调整不成功的模型Fig.10 Unsuccessfully adjusted model
图11 不同图片进行匹配的结果Fig.11 Matching results of different images
3 模型纹理映射及眼部运动的设计
3.1 纹理映射
对于脸部的纹理,采用的是特征点约束贴图的方法,而对于眼球部分分别对瞳孔进行了局部球形纹理贴图,瞳孔以外的眼球部分本文采用了球形纹理贴图。前面2种贴图方法较为多见,就不做过多说明。具体的瞳孔纹理贴图上分析见图12。
图12的左边对应的是纹理图片,右边是球体模型。其具体思想是:假设球面上有一点q,它与z轴的夹角为Q,在x,y平面的投影与原点的连线与x轴的正方向的夹角为B,则将球面上的这一点对应的位置表示为(Q,B),并且在纹理图片上有与其对应的一点p,其极坐标为(r,a),现在就是需要找这2个点的对应关系。主要思想是当a=B时,找出r=f(Q)的关系。这样做的主要原因是让纹理图片的一个径向映射到球形上的如图11左边的B1环形上且保证r在(0,1)之间。具体求取r=f(Q)的方法如下所示。
如图12所示,在圆形纹理平面上指定某一面片p1p2p3p4,该面片的2条曲线边位于半径为r1和r2的两段圆弧上,而面片的2个直线边则分别位于角为a1和a2之间的两条径向线段上。根据映射关系,球面上对应的面片为q2q1q4q3,并且该面片的一对曲边分别位于在x、y平面的投影与x轴正方向为B1与B2的2条圆弧上;而另外一对曲边则分别位于与z轴成Q1和Q2的2条经线圆环上。此处,为了较好地保证纹理映射中2个曲面具有面积等比性的特点,可令纹理平面上的准梯形面积与球面上与之对应的准四边形面积成比例。如图12,面片p1p2p3p4的面积为
曲面片q1q2q3q4的面积为
因为有B2=a2,B1=a1,则
为了这种等比关系只好把其改为
其中,A和B是根据本文的需要求取的,当求取这种关系后,就能得到对应的映射关系,图13是纹理贴图后得到的真实的人脸结果。
图12 局部球形纹理映射Fig.12 Partial spherical texture mapping
图13 对个性化人脸纹理贴图的结果Fig.13 The results of personalized facial texture map
3.2 眼部运动设计
眼部运动主要包括眼球的运动以及上下眼睑的运动。眼球的运动主要是指由眼部肌肉控制的眼球的上下、内外旋转等。在此首先对眼球的上面那些动作进行视位的定位得到关键帧,然后分阶段进行线性插值得到对应的过渡帧,从而完成了眼球的运动。而眼睑部的运动主要包括由上睑提肌以及眼轮匝肌控制的眼睑的睁开和闭合以及眨眼等运动。对于这些运动本文是在前期建模的基础上,通过逐步调整一些眼睑从睁开到闭合的过程中bezier曲线的控制点一些中间过程的视位,然后用式(14)进行分段线性插值而得到一些过渡帧,从而得到了眼睑从睁开到闭合的动作,最后通过设置不同时间的定时器也完成眼睑的眨眼动作。
式中:Vinter为插值帧的视位,V1为前一关键帧的视位,V2为后一关键帧的视位,∂为控制插值的参数。
4 实验结果与分析
通过本文的方法得到图14对应的眼部运动的结果。
图14 眼部运动结果图Fig.14 The result of eye’s movement
根据图14的结果可以看出,本文的方法能充分地表现人眼部的各种运动。本文的方法与文献[1]的结果相比,本文不仅能较为真实地表达人眼部的运动,同时还展现了人脸的整个模型,在这个模型的基础上还能通过MPEG-4等标准,完成人脸其他部位的运动,并且能根据不同人脸的图片生成不同的人脸,通用性以及表达面部表情的实用性都强于文献[1]。并且在眼部运动控制上,本文的控制方法与文献[1]基于数据流的肌肉模型显得更简单一些。与文献[5]比本文带有眼部更细节的运动特征。而相对与文献[11]本文所对应的数据量比较小,且本实验的结果稳定。
5 结论
本文针对在Candide-3模型上进行三维人脸重构难以表达人眼部运动的缺陷,分别对眼球以及眼睑进行建模。然后采用ASM算法提取人脸特征点以及用最小二乘法进行模型匹配,随后采用局部球形纹理贴图等3种纹理贴图方法进行人脸纹理贴图,最后在建好的模型上,分别对眼球以及眼睑进行线性分段插值动画,完成了眼部的运动。
但本文只是在Candide-3模型上进行了改进,使一个整体模型,分为面部和眼球部2个分开的模型。因此没有过多分析面部运动和眼球运动的关系,以及人们在说话时语音和语调等与眼部神态的关系,因此接下来的工作可以分析人脸部与眼球运动的一种关系。这样就能根据面部的运动得到眼球的运动,使人脸运动更加真实。然后也可以通过语音来调用对应的眼神、眼睑等相关运动。
[1]曾丹,程义民,葛仕明,等.人眼3D肌肉控制模型[J].计算机辅助设计与图形学学报,2006,18(11):1710-1716.ZENG Dan,CHENG Yimin,GE Shiming,et al.3D muscle-controlled eye model[J].Journal of Computer Aided Design and Computer Graphics,2006,18(11):1710-1716.
[2]STOIBER N,BRETON G,SEGUIER R.Modeling shortterm dynamics and variability for realistic interactive facial animation[J].IEEE Computer Graphics and Applications,2010,30(4):51-61.
[3]WEISSENFELD A,LIU K,OSTERMANN J.Video-realistic image-based eye animation via statistically driven state machines[J].The Visual Computer,2010,26(9):1201-1216.
[4]TU C T,LIEN J J.Automatic location of facial feature points and synthesis of facial sketches using direct combined model[J].IEEE Transactions on Systems,Man and Cybernetics,2010,40(4):1158-1169.
[5]SONG M L,TAO D C,SUN S P,et al.Joint sparse learning for 3-D facial expression generation[J].IEEE Transactions on Image Processing,2013,22(8):3283-3295.
[6]MA X H,DENG Z G.Natural eye motion synthesis by modeling gaze-head coupling[C]//IEEE Virtual Reality.Lafayette,USA,2009:143-150.
[7]STEPTOE W,OYEKOYA O,STEED A.Eyelid kinematics for virtual characters[J].Computer Animation and Virtual Worlds,2010,21(10):161-171.
[8]尹宝才,王恺,王立春.基于 MPEG-4的融合多元素的三维人脸动画合成方法[J].北京工业大学学报,2011,37(2):266-271.YIN Baocai, WANG Kai, WANG Lichun. A synthesis method of three-dimensional facial animation with multiple elements blending based on MPEG-4[J].Journal of Beijing University of Technology,2011,37(2):266-271.
[9]范懿文,柳学成,夏时洪.人脸表情动画与语音的典型相关分析[J].计算机辅助设计与图形学学报,2011,23(5):805-812.FAN Yiwen,LIU Xuecheng,XIA Shihong.The canonical correlation analysis of facial expression animation and speech[J].Journal of Computer Aided Design and Computer Graphics,2011,23(5):805-812.
[10]TANG H,HUANG T S.Mpeg4 performance-driven avatar via robust facial motion tracking[C]//IEEE 15th International Conference on Image Processing.Sandiego,USA,2008:249-252.
[11]WANG S F,LAI S H.Reconstructing 3D face model with associated expression deformation from a single face image via constructing a low-dimensional expression deformation manifold[J].IEEE Transactions on Pattern Analysis and Machine Intelligence,2011,33(10):2115-2121.
[12]葛美玲,姚莉秀,李娟,等.基于优化CANDIDE模型的人脸动画[J].上海交通大学学报,2010,44(11):1491-1495.GE Meiling,YAO Lixiu,LI Juan,et al.Facial animation based on CANDIDE Model[J].Journal of Shanghai Jiaotong University,2010,44(11):1491-1495.