计算机人脸动画控制方法主要有以下几种:关键帧插值法、参数化法、表演驱动法、基于肌肉的物理法等。这些方法各自有自己的优缺点,并没有一个最优的方法。下面介绍一些常用的方法。
1.关键帧插值法
关键帧插值法是最简单也是最常用的脸部动画控制方法。它首先通过三维数字化仪法、立体图像摄影测绘法或光学扫描仪法等三种方法之一得到一个离散的脸部形态集合。这些脸部数据具有相同的拓扑结构,能够在每个脸部形态上相应点之间建立一一对应的映射关系。两个脸部形态之间的中间形态可通过插值得到,如图8-5所示。关键帧插值法由于其简单和直观的特性而被广泛使用。但是由于关键帧插值法局限于所能得到的脸部形态,从而无法实现大量丰富的脸部合成表情,同时还不能实现脸部表情的直接控制,这促使了参数化法的提出。
图8-5 应用线性插值法后得到的人脸图像
2.参数化法
为了克服关键帧插值方法的缺点和局限性,Parke在参考文献[21]中提出了参数化法。人脸参数模型的基本思想是通过参数来描述不同的人脸特征和人脸表情变化,因此在人脸参数模型中,考虑了两种参数:人脸模型构造参数和人脸表情控制参数。人脸模型构造参数用来描述特定人脸的几何特征,包括脸形的整体大小以及五官的具体大小和形状,用于产生各种各样的个性化人脸形状。人脸表情控制参数描述面部器官的运动情况,如眨眼、眉毛的抬起、下巴的拱起等动作,用于产生人脸的各种表情动画。通过确定关键参数集和插值其他的参数可以产生任意的脸部表情,并实现脸部表情之间的变形。参数的确定不仅影响模型的结构和大小,而且也影响表情的产生。人脸表情控制参数和人脸模型构造参数的分离使表情的产生独立于脸部特征。与关键帧插值方法相比,参数化法允许对脸部表情的直接控制,而且它可以实现大的数据压缩比,在低带宽的情况下,可实现实时脸部动画。参数化法的缺点是,在一个脸部表情向另一个脸部表情转化时,它不能一致、协调地处理在融合影响相同顶点的表情时产生的参数冲突。
3.基于肌肉的物理法
为了合成真实的人脸动画,基于肌肉的方法根据人脸的生理结构,从生理的角度对人脸的面部行为进行模拟。根据解剖学的理论,人脸具有复杂的、层次性的生理结构,由头骨、肌肉层、覆盖的肌膜组织和外部皮肤层组成。头骨的形状决定了整个人脸的形状。头骨由14块主要的骨头组成,其中下颚骨是唯一的关节,牙齿是唯一可能看见的骨结构。人脸部表情的产生和皮肤的变形主要是由脸部肌肉运动所引起的。使人脸具有特定表情所涉及的主要肌肉有口轮匝肌、鼻肌、颧肌、眼轮匝肌、皱眉肌等。基于肌肉的物理方法根据对肌肉本身的生理构成和特性,以及肌肉运动与产生的脸部表情和皮肤变形关系的分析,通过动力学模型模拟肌肉的运动来生成真实的人脸动画。
4.质点-弹簧系统法
基于目标对象的物理性质,质点-弹簧系统已被广泛地用于模拟可变形物体。它用由质点集组成的网格系统来模拟对象,并通过弹簧来连接质点。弹簧通常是线性的,但是非线性的弹簧也常被使用以模拟对象的非弹性的行为。质点的运动服从于牛顿第二定律。整个网格系统的运动是通过结合所有质点的运动来实现的。在计算机人脸动画中,质点-弹簧系统已被广泛地用于模拟人脸部的表情变化。Terzopoulos和Water[22]将动态质点-弹簧系统用于人脸的动画。根据人脸组织的生理解剖结构,他们建立了一个三层质点网格结构的分层网格肌肉模型,如图8-6所示。三个可变形网格层对应于皮肤、脂肪层和与骨骼连接的肌肉。肌肉收缩力通过网格层扩展以产生脸部表情动画。
5.有限元法
根据物体的几何结构、物理性质和应用要求的不同,有限元法(FEM)将一个目标变形对象分解成由几个有限种元素组成的集合,以连续的方式模拟每个元素的变形。每个元素由一个插值函数来定义元素内的数值变化。各元素之间通过离散的节点连接,通过对节点和元素边界的限制,实现元素间的连续性。针对不同的应用要求和不同的对象形状,可定义不同的元素,这些元素是通过它们的节点数量和几何形状来定义的。
图8-6 分层网格肌肉模型
外表皮节点—1,2,3 肌膜节点—4,5,6 骨骼节点—7,8,9(www.xing528.com)
注:虚线和直线均表明了节点之间的弹性网格连续。
6.伪肌肉变形法
基于肌肉的物理方法为实现某个特定的人脸结构和动画则需要大量的参数调整和精确的建模。伪肌肉变形法忽略脸部复杂的生理结构,通过变形脸部网格来模拟脸部肌肉变形实现人脸动画,可以作为基于肌肉的物理方法的替代方法。这里的肌肉变形可以是全局变形,也可是发生在脸部网格的一个相对小的区域内的局部变形。变形的方法有基于样条实现的伪肌肉变形法和基于自由变形的伪肌肉变形法等。
图8-7 基于自由变形的伪肌肉变形
(1)基于自由变形的伪肌肉变形法 通过控制分布在三维立体栅格上的控制点来变形体对象,即把一个可变形体放在一个可变形的包含三维控制点栅格的控制框架内。当控制框架被任意地挤压、弯曲、扭曲时,控制框架内部的变形体也相应地变形,如图8-7所示。自由变形既可以实现局部变形,也可实现整体变形,同时还可以控制变形前后物体体积的变化程度。基于自由变形的伪肌肉变形法的缺点是计算量大,网格的调整非常麻烦,为获得合适的物理形状需要仔细地选择和移动许多控制点。其主要的改进方法有直接控制的自由变形造型技术、有理自由变形技术、基于NURBS的自由变形技术等。
(2)基于样条实现的伪肌肉变形法 一个理想的脸部模型应该有一个支持平滑和灵活变形的表面。样条肌肉模型为此提供了一个很好的解决办法。样条通常有C2的连续性,因此一个小面片可确保是平滑的且允许局部变形。进一步,仿射变换能够通过一小部分控制点的变形来定义,而无须通过整个网格点来定义,这就降低了计算的复杂性。一个分层的样条模型减少了一些不必要的控制点的个数。Wang等显示了一个将分层样条模型与基于区域表面变形的模拟肌肉模型相结合的系统[23]。之所以使用B样条是因其提供了平滑性和弹性,而这些特点是传统的多边形模型很难达到的。然而,当要求一个变形比Patch解决方案更加完善时,对复杂表面使用原始的B样条的缺点显而易见。为了产生更好的Patch方法,表面的一整行或一整列需要被复分。这样,可以加入更多的细节和更多的控制点。对比而言,分层样条提供了对B样条表面的区域的完善,而只在一个特定的区域内加入新的patch,如图8-8所示。分层B样条是一种经济且简便的表示样条平面且获得高渲染速度的方法。带有分层样条表面的肌肉可以产生带有褶皱的皮肤表面以及各种面部表情。
图8-8 分层B样条方法
a)显示了一个具有16个路径、49个控制点的表面 b)显示了中间定义的4条路径
7.表演驱动法
表演驱动(Performance to Driven)法又称作表情映射(Expression Mapping)法,也是一种流行的脸部动画方法。此方法捕捉在各种面部表情下真实人脸部的特征来驱动脸部模型,产生真实的脸部表情。常用的方法是在一个演员的脸上设置许多特征点,在演员表演各种脸部表情时,捕捉这些特征点的运动向量,然后使用得到的特征点的运动向量来驱动脸部模型的相应特征点产生脸部表情。它提供了一种直观和有效的方式直接控制脸部表情的产生。Snake和Optical FlowTraking(光流跟踪)技术常被用来获取脸部的特征变化。这种方法可以和MPEG4标准相结合产生脸部动画,并能提高数据的压缩率。这种方法的缺点是它仅仅捕捉了脸部特征的几何变化,而忽视了光照的变化,因此可能引入不真实的效果。而且此方法不能产生类似皱纹等脸部表情细节。
8.Morphing(变形)法
Morphing是指在两个指定图像或两个三维模型之间进行的变形转换。首先,在两个指定图像或两个三维模型上确定一套特征点集;然后,用映射函数确定两个目标对象之间特征点集的相应特征点的点对点的对应关系;接着用warpping函数确定中间图像的特征点的二维和三维位置或纹理空间的坐标值;最后,使用离散点插值函数产生其他非特征点的顶点的二维和三维位置或纹理空间的坐标值。Morphing方法有二维图像Morphing、视点Morphing、三维Morphing。从图像真实性出发,二维图像Morphing能够产生真实的脸部表情图像。但是二维图像Morphing的缺点是,它要求确定特征点之间的点对点的对应关系;其次,二维图像Morphing没有考虑对视点和对象的姿势变化的处理,真实的头部运动无法实现,当视点和姿势发生变化时,会产生不真实的脸部表情图像。为了克服二维Morphing的限制,Pighin等人在参考文献[20]中,将二维Morphing和几何模型的三维变形相结合实现三维Morphing。他们用三维几何插值来实现脸部表情之间的变化,用二维Morphing实现对应的纹理图像的变化。
免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。