1、中国科学技术大学工程硕士学位论文言语表达 3D说话人头像的设计与实现作者姓名: 学科专业: 软件工程 校内导师: 企业导师: 完成时间: University of Science and Technology of ChinaA dissertation for masters degreeof engineeringThe design and implementation of 3D talking head for speech expressionAuthors Name: Speciality: Supervisor: Advisor: Finished time: Limited
2、摘要I摘 要具有真实感的 3D 人头像模型和具有真实视觉感受的流体模型的构造与动画表达是计算机图形学领域中的两个非常重要的和具有挑战性的课题。人脸表情运动的微妙性和多样性、口型动作与文本或声音的复杂对应性以及飘渺流体的运动建模理论正是难点所在。论文结合语言学的知识,建立带说话气流、嘴部动作、韵律和表情等的 3D 说话人头像动画模型,在虚拟动画、游戏和言语康复训练以及虚拟教学等领域都有重要应用。论文采用 EMA 和 FacialCapture 设备采集发音特征点,将 3D 虚拟人脸分成几个运动相对独立的功能区域,使用狄利克雷自由变形算法 DFFD 和刚性的旋转平移变换来模拟 3D 说话人头像功能
3、区的动画,通过不同功能区域交叉控制点,模拟不同功能区的相互影响。另外,论文基于流体动力学的物理方程Navier-Stokes 方程,研究在适当降低方程解的精确性,来达到实时的、稳定的并且具有真实视觉感受的气体动画方法。最后,论文通过 PAS6600 设备采集发音数据以驱动气流动画模型,实现了气流与发音的结合。对于单纯从口型动作难以区分的发音,发音气流提供了一个很好的信息补充。本文设计了人工实验来对汉语单音气流效果进行验证。最后,还提出了获得特定语音信息的面部发音动作轨迹和表情动作轨迹的方案作为展望,旨在实现任意与语音信息相对应的 3D 人头像动画。关键词:3 维人头像,气流,言语表达Abstr
4、actIIABSTRACTConstruction and animation of living 3D Talking Head model and realistic fluid model are two of the important and challenging research topics in computer graphics. Difficulties lie in three aspects: the subtlety and diversity of facial movement, the complex mapping between mouth movemen
5、t and text or voice, and fluid motion modeling theory. This paper builds a 3D Talking Head with speaking airflow, mouth movement, rhythm and facial movement combing with the linguistic knowledge, which has important application in fields of virtual animation, games, speech rehabilitation training an
6、d virtual teaching.Facial pronunciation feature points are acquired by equipment called EMA and Fcialcapture. 3D Talking Head model is divided into several independent parts, named functional regions, then the function regions animation is simulated using Dirichlete free-form deformation (DFFD) algo
7、rithm and rotation-translation transformation of rigid body. Intercrossing control points are designed to simulated motion affection between different function regions. Airflow animation is based on fluid-dynamics theory called Navier-Stokes equation. Real-time, stable and realistic airflow animatio
8、n is achieved at the expense of reducing physically accuracy properly. Finally, in order to combine airflow with pronunciation, pronouncing airflow data is acquired by PAS6600 device, which is used to drive the airflow animation model. For some pronunciations which are hard to distinguished just fro
9、m mouth movement, pronouncing airflow provides really good additional information.This paper has designed some experiments to evaluate the effect of pronouncing airflow. Finally, a scheme is proposed to obtain the articulation movement and facial expression movement through any specific speech infor
10、mation, aiming at synthetizing 3D Talking Head animation that will be driven by speech information only.Key Words:3D Talking Head, Airflow, Speech expression目录III目录摘 要 IABSTRACT II目录 III第一章 绪论 .11.1 引言 11.2 研究背景和国内外研究现状 21.2.1 研究背景 21.2.2 国内外研究现状 .41.3 研究意义 61.4 本文的内容 .71.5 本文的组织结构 .8第 2 章 基于狄利克雷自由变
11、形算法的 3D 人头像 .92.1 变形算法简介 .92.2 DFFD 算法思想 .102.3 DFFD 算法原理 .122.3.1 Delaunay 三角划分 .122.3.2 Voronoi 图 .152.3.3 Sibson 坐标计算 162.4 基于 DFFD 的 3D 人头像变形 172.4.1 数据采集 .17目录IV2.4.2 数据处理 .202.5 本章小结 .24第 3 章 发音气流可视化模型 .253.1 流体可视化模型简介 .253.2 Navier-Stokes 方程 263.3 基于 Navier-Stokes 方程的气流模型的实现 .283.3.1 加性分量 .29
12、3.3.2 发散运动 .293.3.3 水平对流运动 .313.3.4 投影算子 .333.3.5 边界条件 .343.4 发音气流可视化的实现 .343.4.1 普通话辅音的发音气流特性分析 343.4.2 辅音发音气流可视化 363.5 本章小结 39第 4 章 言语表达 3D 说话人系统的开发 .404.1 系统实现准备 .404.1.1 编程工具简介 .404.1.2 驱动数据 414.2 系统用例图 .414.3 带气流的精准发音 3D 说话人子系统 .434.3.1 系统整体架构 434.3.2 系统设计与实现 444.4 带表情、韵律的言语表达 3D 说话人子系统 .494.4.
13、1 系统整体架构 494.4.2 系统设计和实现 51目录V4.5 本章小结 .53第 5 章 实验结果及系统评估 .545.1 实验结果 .545.1.1 带气流的精准发音 3D 说话人子系统 545.1.2 带表情韵律的言语表达 3D 说话人子系统 585.2 系统评估 .625.3 本章小结 63第 6 章 总结与展望 .646.1 总结 .646.1.1 论文特色 646.1.2 缺陷和不足 656.2 展望 .65参考文献 .68致 谢 .71第 1 章 绪论1第一章 绪论1.1 引言伴随着计算机技术和信息技术等新兴技术的发展,人类社会已进入一个高度信息化的时代,有人提出,我们将会处
14、于真实世界、构造世界和虚拟世界的三元世界中。借助于日益高度发达的计算机和信息化技术,虚拟世界也正在以蓬勃发展的势头融入了我们的生活。游戏、动画电影、智能语音机器人、高科技武器对战模拟以及其他的许多科学研究领域,都无不充斥着各种虚拟技术。虚拟技术给我们带来了很多便利,影响着我们的思维体验,也改变着我们的生活方式,诚然也会带来一些挑战。近段时间以来,我们见证了速度与激情 7中保罗沃克的虚拟构造以及疯狂动物城中惟妙惟肖的表现,3 维虚拟动画技术有着长足的应用场景。3 维动画技术以某些理论为根基,利用计算机技术和计算机图形学知识来实现的,也存在着很多挑战和困难,其中两个具有代表性的课题是 3D 虚拟人
15、头像和流体的动画实现,主要共同原因有两点:1)3D 虚拟人头像结构复杂和流体的无定形态使得他们难以建模;2)他们的运动规律复杂,3D 人头像需要模拟人脸复杂的表情运动以及发音器官的发音动作,而流体的运动更是一种虚无飘渺状态。目前,这两类技术均不成熟,例如,在很多动画电影中,虚拟角色的对话,只能看到简单的张嘴闭嘴运动, 疯狂动物城要好一些,但是口型与语音的对应性依然不完美,而动画或者游戏中的流体,很多时候都是简单的图片纹理,比如烟雾,没有反映出流体自身的客观运动规律。人类感知外界最直接的方式是语音和视觉,这也正构成了人工智能的两个研究课题:语音识别和合成以及计算机视觉。目前,国际上也正在兴起多模
16、态感知的研究方式,可以用视觉来弥补语音,也可以用语音来弥补视觉,达到相互增强的效果。认知心理学研究表明,在高噪声环境下,人脸面部的视觉信息对语音起到了非常好的促进作用。言语 3D 虚拟人头像通过研究语音与视觉的对应关系,来达到语音可视化的效果,无论是在科学研究还是实际应用中都有重要意义,可以用在言语康复训练、虚拟教学以及新语种的学习等方面。第 1 章 绪论2语音可视化技术核心是语音,有几种研究途径:1)构建人脸的肌肉模型,根据生物学原理,研究人发音时的肌肉运动,通过一些肌肉控制参数来构建 3维发音动画,这种方法太过复杂,肌肉控制参数难以选择,模拟的效果不是很理想;2)计算机图形学技术构建 3D
17、 人头像模型,采集真人发音时的发音数据,通过数据来驱动虚拟 3D 人头像的面部运动,这种方法合成的语音有很高的真实度和自然度,发音气流也是语音的一个特性,本文将发音气流的可视化也纳入语音可视化范畴;3)利用机器学习等人工智能技术,学习语音或文本与发音器官运动和表情运动的对应关系,使用任意语音或本文来驱动 3D 人头像模型,这种方法避免了浸入式的真人数据采集,目前也正处于研究阶段。陆续的有许多言语表达机器人逐渐地走入了人们的视野中,有的是以真实的机器人作为载体,有的则是以虚拟动画的形式出来,他们大多代表着当前最新的研究成果。美国公司 Hanson Robotics 打造的首款女机器人索菲亚,有
18、48个肌肉,33 个仿真器,模拟的那份眼神和表情,可以乱真。2015 年,北京龙泉寺打造了一款机器僧贤二,可以与人类探讨佛法,进行简单对话,其憨态表情也表现的惟妙惟肖。2016 年,中国科学技术大学精心打造的美女机器人佳佳的出现,也令观众耳目一新,她可以与人类进行简单对话,表情与口型动作与表达内容的适应性很好。微软打造的智能语音机器人小冰,可以感知人类言语表达时的表情与情感,从而做出更好的应答,他们也正在试图以试听相结合的方式来研究人类的言语表达。1.2 研究背景和国内外研究现状1.2.1 研究背景本文研究的课题,基于丰富的背景,从理论方法到系统应用都有重要意义。本文主要论述以下几个方面的背景
19、:视听语音合成、3D 虚拟人头像、气流动画以及言语障碍康复训练。人工智能研究的一个非常基本的问题就是语音和语言,语音和语言是人类作为智能生物的体现。因此要使机器智能化,也必须要让它懂得人类语言。语音是语言的载体,狭义上讲,语音一般是声音形式的载体,其实人类理解语音第 1 章 绪论3信息并不仅仅是声音形式的,认知心理学和语言学都表明,视觉的面部信息可以给人带来很大的信息补充 1。传统的语音识别和合成是声音形式的,目前相关技术已经相当成熟,最近国际上已经掀起了视听相结合的多模态方式来处理语音 2。视觉语音是指人在言语表达过程中所表现出来的面部动作,包括表情、韵律、口型以及嘴部牙齿舌头等动作,唇语便
20、是视觉语音一个很好的例子,本文对视觉语音的范畴有一个扩成,将发音气流也作为视觉语音的一个方面。视觉语音的合成是复杂的,尤其是合成与听觉语音对应性良好的视觉语音,复杂性就在于这种对应关系相当复杂。计算机图形学研究各种复杂对象的构造,早期可以对规则几何体进行很好的建模,如立方体以及球体等,后来因为构造出了不规则几何体茶壶而让茶壶成为 3dsMAX 等建模工具的经典模型。人脸结构远比茶壶复杂,其运动规律也非常复杂,3D 人头像的建模以及其运动建模是计算机图形研究的重要课题。虚拟现实中的虚拟人物、电影制作和游戏娱乐等领域中,都要求这些虚拟角色可以有丰富的表情。由于人脸生理结构十分复杂,所以建立和计算人
21、脸的物理模型十分困难,而且由于人们对人脸的外观十分敏感,要真实地模拟人脸上细微的表情变化也十分困难 3。计算机图形学领域另一个重要研究课题是流体的建模以及其运动动画的实现 4,流体是构建各种虚拟动画的重要背景,具有独特的价值。流体相对于其他几何体,一个非常重要的特点是流体没有固定形状,运动规律也难以建模,比如烟雾虚无缥缈的特点。这也就使得流体与其他的有一定形状几何体的建模方式有些差异。目前世界上存在很多言语语言障碍人群,言语语言障碍也是脑卒中的一个并发症状 5,据最新数据统计,仅脑卒中一项,我国每年脑卒中新发病例约为250 万。患病人群的叠加效应和快速增长无论是对于个人,对于家庭,还是对于社会
22、都会带来巨大的精神压力和经济负担。言语语言障碍的康复训练是康复医学的重要研究内容,一般需要医生、家属的协助治疗,发音动作精准、面部表情丰富和带发音气流的虚拟 3D 说话人头像可以作为患者康复治疗的一个非常好的辅助工具 6,7。可大大减少言语语言障碍康复训练所投入的人力物力,且提升康复效果。第 1 章 绪论41.2.2 国内外研究现状早期的视觉语音合成器是对主要的面部发音器官(唇、舌头、牙齿和下颚等)的轮廓做一个简单的向量图动画显示。舌头和牙齿携带了重要的语音信息,但舌头和牙齿是部分可见的,这就需要有效的隐藏线移动算法,即便如此,舌头的软组织结构使得舌头的轮廓和形状非常难以描述。光栅图系统可以提
23、供更加现实渲染程度更高的头模型动画显示,但是非常昂贵,通常是向量图系统的 10 倍,而且计算更复杂,动画渲染时间更长。后来提出了数据驱动的合成方法,主要是基于数字图像处理理论。然而合成电视质量的全色彩动画通常需要每秒产生数百万比特的信息,因此原始的基于数字图像处理的数据驱动的方法计算成本太高。需要对数据进行预处理,即特征提取过程,20 世纪 80 年代以后就采用了统计数据处理方法:(1)MLP(多层感知) ,这种方法的缺陷是不够稳定,图像较小的变化会引起 MLP 内部表示较大的变化;(2)PCA(主成分分析) ,这种方法是将原始的模式空间转化到了维数更低的新空间,减少了数据量,将该方法进行延伸
24、,可以得到多阶段 PCA 方法;(3)DCT(离散余弦变换) ,这是图像和视频处理的常用方法,只保留高能量的 DCT 系数,减少数据量;(4)HMM(隐马尔科夫方法) ,这种方法用在语音识别方法较多,将该方法进行拓展,有基于 GVP-HMM(广义可变参数-隐马尔科夫)的声音到发音器官运动的逆转模型 8-10。视觉语音合成中一个关键的问题是头模型的建模方式。早期在计算机性能低下,相关理论不大成熟的情况,采用的是基于向量图的二维面部拓扑结构。再后来提出了三维线帧模型,这是一种基于光栅图的方法,用复杂多边形组成人的头结构,这种方法的难点在于时变运动控制参数的推导。还有从解剖学上对头进行建模,定义好皮
25、肤、肌肉和骨骼的描述,是时变的肌肉控制参数来改变形状模拟运动方式,然而困难的是肌肉参数推导机制很不直接,测量也非常复杂,而且肌肉特征的控制参数只有部分可见。动画其实就是一帧一帧的静态图片快速切换过程,也有基于强大的计算机系统,在一系列面部图片之间切换来模拟头部运动。另外就是基于变形算法,通过捕捉少数的面部控制点,通过变形算法来计算整个人脸的变形点 10。三维动画是计算机图形领域的主要内容,是一种虚拟现实技术。通常三维动画具有虚拟性、模仿性、综合性和直观性的特点 11。三维动画的应用很广泛,第 1 章 绪论5可以辅助教学,可以作为类人计算机代理,可以用在动画卡通电影中,还可以应用在游戏娱乐中。在
26、我国的一些动画电影制作当中,通常只考虑动画人物和场景等满足剧本要求即可,很少考虑人物的环境内在特点,在虚拟人物设计和渲染方面也远远落后于日本等一些发达国家,这样的动画难以引起观看者的兴趣。现在我们国家也在控制人物运动和人物造型设计上做研究,这也加快了动画企业和游戏企业的发展 12。从三维动画角色的设计上来说,目前国内外都是以 3DSMAX 和 Maya 为主,这两款软件提供了多种建模方法,但主要还是多边形建模。尽管如此,3DSMAX和 Maya 建模是一个很费时费力的过程。无论是国内还是国外的动画电影,观者可以感受强烈的夸张效果,这是一种喜剧色彩。然而需要应用在类人计算机代理和虚拟播音员的场景
27、中,我们需要其尽量的真实性,无论是从人物构型方面还是从人物运动,言语表达时的表情和口型等与表达内容和声音的一致性,都需要与真实人物有很高的类似性,目前国内外还不能在这方面达到很好的效果。目前已有很多表情方面的研究,不过大多都是纯表情,没有跟言语表达结合起来。浙大的周昆等人建立了 150 人 20 种表情的表情数据库 13,并将该数据库成功应用到了表情的实时计算和表情驱动中 14-17,他们的研究重点关注的是实时性,以及可以面向任意用户,但缺点就是表情有些粗糙,而且只是纯表情,没有言语表达方面的信息。流体到处可见,从烟、雾和云等到河溪大海的水流等。在虚拟现实技术中,也需要良好的流体动画模型,在游
28、戏引擎中添加流体模型是迫切需要的。目前已经存在一些自组织模型试图模拟烟雾缭绕的效果,比如纹理部分渲染,然而想让这种视觉感受达到非常置信的程度则不是那么容易。早期的流体模型是先定义好一些原语,通过对这些原语的不同组合来模拟流体颗粒运动系统 18。后来引入了随机湍流模型 19,20,流体的湍流是质量守恒的,这会展现出循环的运动过程,而且湍流在时间和空间上有周期性,使得运动的纹理映射变得容易 21。另外一种想法是建立流体的物理模型,主要是根据流体的真实物理规律来构建流体模型。一开始,研究人员采用一种非稳定的策略求解流体物理方程,这有两个方面的缺陷,一是对于某些参数设置,模型不稳定,二是要实现流体第
29、1 章 绪论6的实时交互非常困难。基于流体物理方程 Navier-Stokes 方程的动态模型最开始在二维上进行了实现,Yaeger、Upson、Gamito 以及 Chen 等人都做了广泛的研究 22-24,他们的方法有两个缺点:模型不稳定和只限定在二维,不能向三维扩展。前述的模型对于大的仿真步进,将会不稳定,这就要求很严格的仿真步进选择,选择小的仿真步进会在速度上和实时交互上很受限制。后来 J Stam等人在此基础上进行了改进创新,提出了稳定的维度可扩展的流体模型 4,25-26,而不再受限于仿真步进必须很小,这使得流体仿真速度变快,实时交互变得可能。1.3 研究意义视觉语音合成是目前正在
30、研究的一个领域,本文合成的 3D 人头像系统,带有表情、韵律和对应性良好的嘴部动作,基于 DFFD(狄利克雷自由变形算法),采用 EMA 和 FacialCapture 设备采集数据进行驱动而成,这在目前的研究中是先进的。EMA 和 FacialCapture 是国际上研究视觉语音的两个很常用的设备,不仅可以用在视觉语音合成,还可以应用在视听语音识别上。本文的 3D 人头像系统和相应的算法完全是基于 C/C+和 OpenGL 工具实现的,人物模型则采用3DSMAX 创建,这也是计算机图形学领域非常常用和比较先进的工具。另外,在以前的视觉语音合成中,通常指的是对面部和嘴部的动作进行合成,而本文首
31、先将发音气流作为视觉语音合成的一个辅助信息,从而使某些视觉上易混的单音可以非常好的区分,这是本文的创新点。本文的气流也是基于C/C+和 OpenGL 实现的,其气流模型可以为气流游戏引擎的设计提供一种参考。本文设计的带气流的、有非常精细的嘴部舌头牙齿等动作的汉语单音 3D人头像系统可以作为言语语言障碍康复治疗的一个有效的工具,该系统有正面、侧面和透视模型,患者可以清晰的看到发音器官的运动练习发音。从康复医学的角度来说,言语语言康复训练需要大量的人力物力,需要医生和家属投入大量的时间和耐心,本文的系统作为一个复制工具,可以大大节约人力物力。带表情的连续语音 3D 人头像系统也可以应用在辅助教学和
32、类人计算机代理中。第 1 章 绪论71.4 本文的内容本文研究了狄利克雷自由变形算法(DFFD)以及流体动力学方程 Navier-Stokes 方程,以这两个算法理论为主线,设计并实现了言语表达 3D 说话人头像系统,最后为了验证系统,设计了真人主观评测实验。采用 3D 建模工具 3dsMAX 创建静态 3D 人头像模型,该模型的实质是成千上万的顶点以及由这些顶点构成的许多三角面组成。要模拟面部的运动,必须获得 3D 人头像模型上所有顶点运动后的新位置,再构成许多新的三角面。由于模型上的顶点过多,无法精准获得每一个顶点的位移,采用 DFFD 算法,只需获得面部少数点(控制点)的运动位移,便可以
33、计算得到其他顶点(待变形点)的位移。驱动 3D 人头像变形的基本思想是:首先在静态 3D 人头像模型上选定控制点,利用 DFFD 算法,获取所有待变形点关于控制点的 Sibson 坐标,这只需一次计算过程;随后,需要获得控制点的变化位移,可以通过电磁发音捕捉仪(EMA) 或者 facialcapture 设备采集真人嘴部、舌头或面部相关位置的实际变化位移,再映射到静态 3D 人头像模型上;最后,每个待变形点有了关于控制点的 Sibson 坐标和这些控制点的位移,便可以根据 DFFD 算法,计算出每个待变形点的新位置,完成变形。有许多汉语单音发音,视觉上观察非常容易混淆,如 bo 和 po、de
34、 和 te 以及 ge 和 ke 等,研究发现这些发音在发音气流上有很大的可区分度,本文还研究了基于 Navier-Stokes 方程的汉语单音发音气流动画的实现方法。本文的贡献如下:(1)算法的 C/C+实现。本人采用 C/C+实现了 DFFD 算法和 Navier-Stokes 流体动力学理论,并利用该算法和 OpenGL 工具完成了动画设计,没有采用任何动画或游戏引擎,OpenGL 是完全开源免费的,节约成本。这种底层实现方式便于系统移植,也便于计算机图形学方面的研究。(2)实现了带表情、韵律和口型动作的连续发音 3D 人头像系统。本文提出基于 FacialCapture 设备的面部控制
35、点驱动的 3D 人头像系统,为了获得多种不同的言语表达,采集了关于 CLDC 文本总共 40000 多句话的面部运动数据库,该数据库不仅可以用来驱动 3D 人头像系统,也可以用来做视听语音识别研究。(3)汉语中有许多易混发音(如 bo 和 po) ,这些发音在视听两个模态上第 1 章 绪论8均不容易区分,本文提供了一种新的区分度量发音气流并给予证实。(4)本文设计言语表达 3D 人头像系统有非常友好的交互操作界面,可以通过按键命令查看正面模型、侧面模型、左旋、右旋、开始/停止动画、查看控制点、查看 Voronoi 图、查看 Delaunay 划分以及查看构成 3D 人头像模型的三角面等,不仅方
36、便各类用户使用,也方便相关研究人员查看相关的实现细节。1.5 本文的组织结构本文总共分为 6 章,每一章的具体内容如下。第 1 章为绪论部分。首先介绍了研究背景、国内外研究现状和研究意义,然后介绍了本文的主要内容,包括本文的贡献。第 2 章为狄利克雷自由变形算法部分。首先对变形算法做了一个简介,然后给出了 DFFD 算法的基本思想,并着重介绍了 DFFD 算法原理,最后介绍了基于 DFFD 算法的 3D 人头像变形,包括了控制点的采集和处理流程。第 3 章为气流模型部分。首先介绍在计算机图形学领域中,流体可视化有哪些实现方法,然后介绍了 Navier-Stokes 方程,该方程包含 3 个部分
37、,接着着重介绍 Navier-Stokes 气流模型的实现方法,也是根据方程所包含的加性分量、发散运动和水平对流运动 3 个部分来分别进行实现,最后再介绍了怎么用发音气流数据来驱动该气流模型。第 4 章为言语表达 3D 说话人系统部分。该部分介绍了整个系统设计思路,包括了需求分析、用例图、系统架构、时序图、类图以及流程图等内容。第 5 章为实验结果及系统评估部分。设计了多位真人实验,通过统计他们的主管评测来判定气流是否对易混音的区分有贡献,也让他们主观评测了带表情韵律的言语表达 3D 人系统的效果。第 6 章为总结与展望部分。该部分对论文设计的系统做了一个总结,并对3D 人头像系统以后的研究方
38、向做了一个展望,并给出了一个设想的方案。第 2 章 基于利克雷自由变形算法的 3D 人头像9第 2 章 基于狄利克雷自由变形算法的 3D 人头像2.1 变形算法简介对立体几何模型变形的研究有着很多年的历史,所谓变形就是按照需要改变几何模型的形状。早期的变形研究并没有利用什么变形算法,他们将几何模型的变形比作雕刻,那时变形这类问题的主要方法有三种 27:将已有的简单自由变形面与立体模型结合起来、三元参数超面片方法和隐平面(代数平面) 。文献27中介绍了自由变形算法(FFD) ,基本思想是把待变形物体嵌入到可塑的超平面中,该算法可以实现球体和立方体的变形。后来,原始的 FFD 算法经过了一系列扩展
39、,有 EFFD28(extended FFD)、RFFD29(rational FFD) 、Direct FFD30、NFFD 31(NURBS based FFD)等,这些算法都有一个共同的思想,那就是将待变形物体放入一个规则的控制网格内,比如 444 的立方体内,建立该立方体控制网格与待变形物体的对应关系,最后可以通过移动控制网格来获得待变形物体的变形,根据控制网格的局部移动和全局移动来控制待变形物体的局部变形和全局变形。总的来说,上述的变形算法有两个特点:(1)蕴含这“繁化简”的思想。通常待变形物体是比较复杂的,复杂体现在两个方面,一是待变形物体模型复杂,通常会由很多点和面组成,二是直接
40、变形复杂,难以对所有的点和面操作变形。上述的变形算法将复杂的待变形物体嵌入到相对简单的控制网格内,操纵控制网格(简)的移动来到达对待变形物体的变形(繁) 。(2)算法局限性强。这种局限性体现在控制网格上,一般的控制网格都是标准的立方体,这就远远限制待变形物体的范畴,比如,这些变形算法也许可以很好应用与球体、圆柱体和茶壶的变形,但很难胜任对复杂几何体的变形,如人脸,更难胜任对无定形物体的变形,如气流。人脸的运动是复杂的,任何一个局部都很难嵌入到类似 444 的立方控制网格内。第 2 章 基于利克雷自由变形算法的 3D 人头像102.2 DFFD 算法思想根据上述变形算法的思想,要将变形算法应用与
41、人脸的变形,必须做一些改动。首先需要利用上述“繁化简”的思想,因为人脸 3D 模型由许多点和三角面组成的复杂不规则几何体,无法直接操作每一个点和面控制变形,也需要将其纳入到控制网格内,移动控制网格来实现变形。但是控制网格不能是简单的立方体形状,而应该是适应人脸形状的控制网格。狄利克雷自由变形算法(DFFD) 32很好的满足了这两个要求。文献32 中详细介绍了 DFFD 算法原理,通过引入一种新的坐标系统自然邻居坐标,也称为 Sibson 坐标或者希普森坐标。 DFFD 变形的局限性较小,选定好控制点后,DFFD 可以对控制点形成的凸包内的所有待变形点进行变形,凸包的形状自由度很高,突破了立方体
42、控制网格的局限,由控制点集合决定。3D 模型通常使用的是 3 维笛卡尔坐标系,DFFD 算法引入了 Sibson 坐标系,将凸包内的待变形点转换为相对于其邻居控制点的 Sibson 坐标,然后通过移动控制点来达到对待变形点的变形。文献33 中也对 DFFD 算法的公式推导做了介绍,给定一组控制点以及控制点集合形成的凸包内任意一点 x,则 x 可以表示为相对12P=p,n于其邻居控制点的 Sibson 坐标, x 的控制点可以是 P 中的部分点,也可以是 P的中的全部点,这取决于 x 可以受到那些控制点的影响。假设 x 可以受到 P 中全部控制点的影响,则 x 可一表示成 ( ) , 就1niu
43、p1ni12,nu是 x 关于 P 的 Sibson 坐标。因此 DFFD 算法中的一个核心内容便是计算 Sibson坐标,具体在下一节进行介绍。要获得变形后的 x 点坐标 ,需要移动控制点 P,设移动后的控制点集合为 ,其中, 为 移动后坐标点, , 为控制12=p,n ipi iiipip点 的位移, 可以为 0。变形后,有 , 为 的变化量。要获得i ixx变形后的 ,只需计算出变化量 。已知的有 x 关于控制点集合 P 的 Sibsonx坐标 ,以及控制点的位移 ,根据 DFFD 算12,nu 12,nP法, 可以由 和 进行表示。下面给出 的计算方法。P首先,通过控制点集合 构建 P
44、 的 n 维 m 次 Bezier 单形,m12=p,n第 2 章 基于利克雷自由变形算法的 3D 人头像11为常数,通常取 1 或 2。设 为 P 的1212(,.),|.)InnBqiIiimn 维 m 次 Bezier 单形的控制点集,其中的 取 0 或 1,分别对应 P 中的,.第 个控制点,取 0 时表示与该控制点无关,取 1 时表示有关。很明显,12,.ni当 m=1 时,B=P,即 P 的 n 维 1 次 Bezier 单形的控制点即为 P 本身。的计算表达式为:Iq1|()IJqpBIm(2-1)式中, , 的取值为 0 或1212(,),nnJjjjj 12,njj1,因此
45、其实是 P 的另一种表示方式,如当 时,此时的Jp ,,也即有 。 是伯恩斯1J(1,0.)1(0,.)2(0,.).nppp1(/)JBIm坦基函数,其表达式为: , !(,),(,)nijkijknBrstrstjrstij(2-2)随着控制点集合 P 的移动,移动后得到 ,设P为 形成的 n 维 m 次 Bezier 单形1212(,.),|.)I nnqiIiim 的控制点集合,该 n 维 m 次 Bezier 单形的控制点的位移为 。至此,IIq可以通过下式进行计算:x| ()mIIxqBu(2-3)上式中, 为 x 关于 P 的 Sibson 坐标。12,nu当 m=1 时,n 维
46、 1 次 Bezier 单形很简单,它的控制点就是 x 的控制点 P 本身,此时 的计算非常简单,如下式所示:x1nixup(2-4)由式(2-3)和(2-4 )可得:只要计算出 x 关于控制点集合 P 的 Sibson 坐标 ,并获得控制点 P 的位移 ,便可以计算出 x 的位移变化 ,从而得到u x变形后的坐标 ,这便是 DFFD 的基本思想。DFFD 算法的核心内容便x第 2 章 基于利克雷自由变形算法的 3D 人头像12是计算 Sibson 坐标。2.3 DFFD 算法原理本节着重介绍 Sibson 坐标的计算,包含 3 个主要步骤: 1)Delaunay 三角划分;2)计算 Voro
47、noi 图; 3)Sibson 坐标计算。2.3.1 Delaunay 三角划分点集的三角划分是有限元分析和图形学极为重要的预处理技术,对点集的三角网络化问题最早由 G.Voronoi 在 1907 年提出,俄国数学家 Delaunay 在1932 年首次解决了该问题,之后有很多人对 Delaunay 方法进行了研究和改进。Delaunay 三角划分由于其独特性,关于点集的很多种几何图都与 Delaunay 三角划分有关,如 Voronoi 图、EMST 树和 Gabriel 图等。因此计算 Delaunay 三角划分是为了第二步的计算 Voronoi 图做准备。Delaunay 曾今指出:对
48、于平面域上的 N 个散点集,存在且只存在一种三角划分,使得所有三角形的最小内角之和最大,称之为 Delaunay 三角划分 34。虽然 Delaunay 三角划分的最原始定义是在 2 维平面上,但也很容易扩展到 3 维空间中。判断一个点集是不是 Delaunay 三角划分,通常看是否满足以下两个条件:(1)最大化最小角条件。最大化最小角条件便是上述 Delaunay 指出的“使得所有三角形的最小内角之和最大” ,Lawson 将其命名为最大化最小角条件,后来根据这个原则提出了一个局部优化的方法。(2)空圆条件。三角划分后任意一个三角形的外接圆不包含其他点(4 点共圆情况除外) 。这也保障了 D
49、elaunay 三角划分的唯一性。上述两个条件保障了 Delaunay 三角划分是最接近于规则化的三角网络并且具有唯一性。下面给出 Delaunay 三角划分的定义。定义 1 三角划分:假设 V 是二维实数域上的有限点集,边 e 是由点集中的点作为端点构成的封闭线段, E 为 e 的集合。那么该点集 V 的一个三角剖分T=(V,E)是一个平面图 G,该平面图需满足条件:1)除了端点,平面图中的边不第 2 章 基于利克雷自由变形算法的 3D 人头像13包含点集中的任何点;2)没有相交边;平面图中所有的面都是三角面,且所有三角面的合集是散点集 V 的凸包。定义 2 Delaunay 边:假设 E 中的一条边 e(两个端点为 a,b) ,若 e 为Delaunay 边,则 e 需满足条件:存在一个圆经过 a,b 两点,圆内不含点集 V 中任何其他的点,即空圆特性。定义 3 Delaunay 三角划分:如果点集 V 的