人脸动画最显著的应用是影视制作。在《终结者Ⅱ》、《玩具总动员》、《真实的谎言》、《夺面双雄》等电影的制作中都无不体现了人脸造型和动画技术的魅力。动画师总在不断寻求更具发展潜力的动画系统,希望利用最新的学术研究成果来修改和扩展当前的动画制作系统。人脸造型就是使用图形建模工具,建立或者直接从真实环境中获取人脸的三维模型。由于人脸形状的复杂性和多样性,通过手工方法建立模型需要具备相应的生理学和图形学知识,并且需要较多的时间和精力,所以,目前的发展趋势是使用专用的设备或通过计算机视觉的方法自动获得人脸的三维模型以及表面的颜色信息。

人脸动画一直是计算机图形学中的一个难题,涉及人脸面部多个器官的协调运动,而且由于人脸肌肉结构复杂,导致表情非常丰富。在现有的技术水平下,惟有表演驱动的人脸动画技术能实现真实感三维人脸动画合成的目的。

人脸形状获取

为了获得面部几何形态,通常有两种主要的输入途径:三维输入和二维输入。最近也有人提出从人类学的定义构造一个具备人脸各种特征的通用模型,并施加一定的约束,产生满足要求的特定人脸模型。

1.三维输入

几何建模器(geometric modelers)是最传统的面部造型工具。通过标准的计算机图形技术可以进行人脸面部大多数器官的几何建模,并且可以设计任意的面部模型。但由于面部结构的复杂性,该设计过程需要较多的时间和设计技巧。

使用三维扫描仪(3D scanner)和编码光距离传感器(coded light range sensor)是获得人脸几何形状最直接的方法,这两种方法都是依据三角测量学原理。 CT(计算机x射线断层扫描)和MRI(核磁共振成像术)通常用于医学领域,这些方法不仅能够获取人脸的表面信息,而且还可以得到诸如骨骼和肌肉的内部结构。这些附加结构对于更加精细的人脸建模和动画以及在手术模拟等医学应用中非常有用。

2.二维输入

基于立体图像的照相测量术可以获得面部形状。先从不同的视点获取物体的两幅图像,运用图像处理技术得到两幅图像中的匹配点,通过三角几何学测量这些点的三维坐标。由于自动搜寻匹配点是一个难题,所以有时需要在脸部描绘网格。如果向面部投射一个规则的结构光(如线阵或方形网格),那么就可以直接从一幅二维图像中得到面部的三维形状。

3.人体测量学

基于人类学知识而不用图像可以辅助构造不同的人脸模型。这种方法分两步构造一张新的人脸:第一步,依据人体测量学统计数据产生对人脸形状的一组几何约束尺度集;第二步,用一个约束优化技术构造满足几何约束的曲面。尽管该方法能快速创建出令人称道的人脸几何的变化,但不能在颜色、皱纹、表情和头发方面得到真实的再现。

模型重构和特定人脸适配

利用距离扫描仪、数字化探针或立体视差能测量得到人脸模型采样点的三维坐标,但获得的几何模型因为没有人脸结构信息,通常不适于脸部动画。而且从各种途径获得的三维数据通常是庞大的散乱点集合,所以,为了能够用于动画制作,往往需要对其进行几何构形,将得到的数据精简到最少,这样才有利于生成有效的动画。

人脸面部特征通常以相同的次序排列,人脸形态变化了,但基本结构不会变化。因此,自然的想法是建立人脸的一般网格模型,在这个模型中带有必需的结构和动画信息。然后将该模型适配到特定人脸的几何网格,创建出个性化的动画模型。当一般模型网格比采样数据网格的多边形少时,处理过程也包括了对采样数据的简化。

1.插值方法

假设大多数人脸的形状都可以由一个拓扑原型变化得来,那么,通过调整一个一般模型的构造参数可以建立不同的面部模型。但是,这种参数模型仅仅局限于那些构造参数已知的情况,并且对特定人脸参数的调整非常困难。在离散数据的多变量插值问题方面,径向基函数(radial basis function,RBF)插值方法是一个行之有效的工具,所以也适用于类似人脸这样高维曲面的近似或平滑插值。现有的许多方法使用了基于RBF的插值技术,将一般人脸网格变化到特定人脸的形状。这种方法的优点在于:(1)通过插值可以得到丢失的数据点,所以源网格和目标网格不需要相同数目的结点;(2)如果选择了合适的匹配点,数学上可以保证能够将源网格变形到目标网格。

2.计算机视觉方法

根据计算机视觉原理,通过分析目标物体两幅图像或多幅图像序列,恢复其三维形状,这就是所谓的从运动恢复形状(shape from motion)或从运动恢复结构(structure from motion)技术。在这方面值得一提的是Pighin等人提出的高度真实感人脸建模技术。首先,在多幅图像中手工定义一些相互对应的特征点,并使用计算机视觉技术恢复摄像机参数(位置、方向、焦距等)和特征点的坐标;然后,由这些特征点的坐标值计算出径向基插值函数的系数,并对一般网格进行变形;最后,通过使用更多对应特征点,将一般网格微调到与真实人脸非常接近的形状。Pighin等人用了13个特征点完成初始的变形,而在最后的调整中附加了99个特征点,故需要很多人机交互工作。

3.深度图像分析方法

将三维深度数据通过柱面投影映射到二维平面,可以降低处理和分析难度。Lee、Terzopoulos和 Waters等人给出了一个基于激光扫描的深度和反射数据自动构造个性化人头模型的方法。他们在一般网格适配之前使用了深度图像分析的方法,自动标记人脸特征点,包括眼睛轮廓、鼻子轮廓、嘴轮廓和下巴轮廓。

人脸变形技术

通过三维重构的特定人脸模型网格仍然有较多的顶点和多边形,只有建立了合理的变形机制才能对它们进行有效的控制。

1.弹性网格肌肉

一些研究者认为,力通过肌肉弧的传递作用于弹性网格,从而产生脸部表情,所以他们将人脸模型表示成定义在特定人脸区域上的各功能块的集合,由数十个局部肌肉块组成,并通过弹性网格相互连接,通过施加肌肉力对弹性网格进行变形,从而创建各种动作单元。

2.物理肌肉模型

Waters在人脸肌肉模型领域做出了开创性的工作,他提出了一个极其成功的人脸肌肉模型。在该方法中,人脸用多边形网格表示,并用十几条肌肉向量来控制其变形,用基于线性肌和轮匝肌模型产生了生气、害怕、惊奇、高兴等情绪动画,如图1所示。

然而,按照生理学正确设置肌肉向量的位置是一项令人生畏的工作,至今还没有一个自动的方法将肌肉向量放置到一般或特定的人脸网格中去。但该模型具有紧凑的表示形式并且独立于人脸的网格结构,所以得到了广泛的应用。

3.模拟肌肉(伪肌肉)

按照人类生理学的描述,基于物理的肌肉造型能产生真实感的结果,但只有通过精确的造型和参数调节才能模拟特定的人脸结构。模拟肌肉(伪肌肉)提供了一个可供选择的方法。

4.体变形(volume morphing)

上述的肌肉模型涉及到对人脸肌肉物理特性的模拟,计算复杂且耗时,大多不能用于实时应用。人脸面部运动时,多数运动都集中在某些区域,所以在基于表演驱动的面部动画系统中可以使用局部体变形方法。

动画控制的表演驱动技术

通过手工进行人脸模型的精细调整以获得生动的表情动画固然可行,但这是一项极其乏味的工作,必须是熟练的动画师才能完成。可以设想,如果三维角色面部的一些特征点运动与真实运动相吻合,那么,动画效果必然令人信服。这就驱使人们研究基于表演驱动的面部动画控制方法,其根本思想就是使用各种手段跟踪表演者面部特征点的二维或三维运动轨迹,并使其控制三维面部网格的变形,最终生成动画序列。如何定义面部特征点和如何跟踪特征点是这种技术的关键问题。

1.FACS和MPEG-4系统

美国心理学家 Paul Ekman和Friesen较早地对脸部肌肉群的运动及其对表情的控制作用做了深入研究,开发了面部动作编码系统(Facial Action Coding System,FACS)来描述面部表情。他们根据人脸的解剖学特点,将其划分成若干既相互独立又相互联系的运动单元(AU),并分析了这些运动单元的运动特征及其所控制的主要区域以及与之相关的表情,并给出了大量的照片说明。许多人脸动画系统都基于FACS。 MPEG-4是一种基于内容的通用的多媒体编码标准,它将多媒体数据分为各种视频和音频对象,针对不同的对象使用不同的编码方法。"人脸对象"是MPEG-4中定义的一类较特殊的对象,因为图像中最典型的物体就是人本身,而最受观众关注的部分就是人脸。人脸对象主要包括两类参数:脸部定义参数(face definition parameters,FDP)和脸部动画参数(face animation parameter,FAP)。FDP参数包括特征点坐标、纹理坐标、网格的标度、面部纹理、动画定义表等脸部的特征参数。与静态的FDP参数相对应的是动态的FAP参数,它分为10组,分别描述人面部的68种基本运动和7种基本表情。FAP是一个完整的脸部基本运动的集合,它是基于对人脸细微运动的研究,与脸部肌肉运动密切相关,所以用 FAP可以描述自然的脸部表情,当然也可以创作出夸张的非自然所能达到的表情。

2.表演驱动方法

从连续视频图像序列中提取的信息可作为动画系统的控制输入。这些信息对应于人脸模型中向量肌肉的收缩或者FACS动作单元。面部变形或者肌肉参数的自动提取非常困难,这是当前计算机视觉研究的重要部分。

通过跟踪表演者面部的各个特征点并将图像纹理映射到多边形模型上,仅仅需要很少的计算消耗且不需分析就可以得到实时的面部动画。表演驱动的方法可以创建生动的脸部动画,其中动画受控于被跟踪的人。实时的视频处理允许交互动画,演员可以随时观察他们的情绪和表情。通常将被跟踪的二维或三维特征运动进行滤波或变形,从而产生驱动特定动画系统的运动数据。运动数据能被直接用于产生脸部动画,或经过分析转化为面部动作编码系统(FACS)的动作单元(AU)而产生脸部表情。

精确跟踪特征点或边界对于获得一致而生动的动画至关重要。最初,人们使用在人脸或嘴唇上做一些彩色标识的方法,辅助跟踪人脸的表情或从录像序列识别说话人。如果将反射球粘贴在人脸上,那么光学运动跟踪系统自然也可以跟踪人脸的运动,如图2所示。这在三维动画制作的商业软件中得到了广泛的应用。

然而,在人脸上做标记很冒昧,有时也很不切实际。而且,对标记的依赖性限制了从标记位置获取几何信息的范围。研究者试图不通过做标记的方法直接从视频序列恢复人脸运动,由此产生了时空相关度量规范化和光流场跟踪的方法。它们能自然地跟踪特征,避免了在人脸上做标识的尴尬。

人脸上的器官都有比较显著的形状和色彩特征。如眉毛是黑色、嘴唇是红色,这些都可以作为特征分析和跟踪的依据。如果一个算法能够准确区分和跟踪这些特征点,那么面部运动就能够被动画系统理解,并能用于动画变形。

基于自动控制理论,MIT媒体实验室的Essa等人使用光流测量技术从图像中提取面部动作参数。他们比较了使用光流场进行表演驱动动画的方法和基于FACS系统的方法的优缺点。FACS 的缺点是:AU是纯粹的局部模式,而实际的脸部运动几乎都不是局部发生的;FACS 提供了空间运动的描述而没有时间分量的描述。

我们可以将人脸建模和表演动画合成过程分为如下三个步骤:第一步,通过三维扫描技术或者计算机视觉技术获取特定人脸的几何模型,并适配到用于动画的一般人脸模型;第二步,基于各种肌肉模型和变形方法操作重建的人脸模型产生人脸模型运动;第三步,直接跟踪视频序列中真实人脸产生各种控制参数。

人脸建模和动画技术是一个跨学科、富有挑战性的前沿课题。虽然国内外研究人员在某些方面获得了一定的成绩并出现了一些实用化的系统,但是离用户的要求仍有较大距离。

人脸造型与表演动画技术相关推荐

  1. 如何设计出完美的动画技术架构

    动画在前端领域中的作用是提升用户体验.吸引用户注意力.在互联网行业中,它也是一个永久的热点话题.一般在电商平台或者娱乐类项目(快手.拼多多.淘宝.腾讯视频.抖音等)中会出现很多的动画场景. 那么通过本 ...

  2. 科技对计算机动画的影响,三维动画技术发展对当代生活的影响

    [摘 要]在当前信息技术的高速发展背景下,关于计算机图形学的研究被不断推广,三维动画技术的形成应运而生.三维动画技术的应用,使得各种画面.场景栩栩如生地浮现在人们眼前,各种特技效果真正达到了以假乱真的 ...

  3. 计算机三维制图论文,对三维动画技术与三维虚拟技术探析论文

    对三维动画技术与三维虚拟技术探析论文 摘要: 三维动画技术在目前的发展中,人们在不断的尝试新的方法来更加的完善,它的完善能够更直观的把问题呈现,所以三维技术的应用一直发展至今.通过对三维动画技术与三维 ...

  4. 动画片中计算机技术的应用,三维动画技术在动画影片中的应用

    三维动画技术在动画影片中的应用 三维动画技术广泛应用于影视领域,尤其是在三维动画中,为影片设计增加了艺术感染力和视觉冲击力.下面一起来看看! 一.三维动画技术的发展背景 三维动画技术是近些年随着计算机 ...

  5. AI开发者大会之计算机视觉技术实践与应用:2020年7月3日《如何利用计算机视觉增加便利店连锁每日销售额》、《基于图像 / 视频的人脸和人体分析基础技术及其应用介绍》

    AI开发者大会之计算机视觉技术实践与应用:2020年7月3日<如何利用计算机视觉增加便利店连锁每日销售额>.<基于图像 / 视频的人脸和人体分析基础技术及其应用介绍>.< ...

  6. androidtv item获取焦点设置动画和背景_动画技术的交互应用所作的动画

    动画技术的交互应用所作的动画 作者: 周益铭 本交互设计的实现主要运用了<The Nature of Code><代码本色-Daniel Shiffman>中向量(Vector ...

  7. 深挖基于 CSS 的变换与动画技术

    深挖基于 CSS 的变换与动画技术 李俊才 的 CSDN 博客 邮箱 :291148484@163.com CSDN 主页:https://blog.csdn.net/qq_28550263?spm= ...

  8. vue3 中使用动画技术

    vue3 中使用动画技术 作者: jcLee95 邮箱 :291148484@163.com CSDN 主页:https://blog.csdn.net/qq_28550263?spm=1001.21 ...

  9. 融入动画技术的交互应用优秀作业推荐

    观看本学期其他同学的作业中,我学习到许多,看到了很多有意思的交互应用,通过创意,交互体验,技术的丰富性.深入度.难度三方面进行评价,选出我认为最优秀的三个作品: 1.processing-洇 作者:张 ...

最新文章

  1. 牛客 Tree(最小深度总和)(两种方法求重心)难度⭐⭐⭐
  2. 牛客网在线编程题之“换汽水”
  3. dbms_xplan之display_cursor函数的使用
  4. 通过通用数据访问扩展AWS生态系统
  5. OWASP依赖性检查Maven插件–必须具备
  6. Android--pendingIntent Intent
  7. java rsa 公钥加密_java – 使用公钥进行RSA解密
  8. mysql 存储过程 获取错误信息 继续执行
  9. PVE安装Linux提示:error: /vmlinuz has invalid signature.
  10. sql语句优化的几种方法
  11. 5.4.3控制器设计 微程序控制器 微指令的设计
  12. 用AD画PCB流程介绍
  13. 03 - 雷达的基本组成
  14. 最新的python是哪个版本的好_书声琅琅:Python哪个版本好用
  15. sim7020c功耗_SIM7020C NB-IoT HAT教程
  16. win10如何做服务器双系统,双系统怎么做?Win7+Win10 双系统安装图文教程
  17. git init报错Reinitialized existing Git repository
  18. 欧洲杯上链,区块链语境下的数字化有什么不一样?
  19. leetcode 739. Daily Temperatures 每日温度(中等)
  20. python天眼查爬虫_普通用户的天眼查爬取

热门文章

  1. C#(二十九)之C#listBox checkedlistbox imagelist
  2. DN-DETR: Accelerate DETR Training by Introducing Query DeNoising
  3. Java重定向携带参数中文乱码问题
  4. Oracle Primavera P6乱码问题
  5. Vulkan_片元着色器特效1(体积雾)
  6. win7系统添加wifi连接到服务器,手把手解决win7系统设置域账号连接企业内部域wifi的修复步骤...
  7. python前端页面制作模块--Flask续
  8. Bootstrap 组件
  9. 实现一个简单的发布订阅模式
  10. RabbitMQ教程