运动捕捉中的facs求解的制作方法

文档序号:6455863阅读:322来源:国知局
专利名称:运动捕捉中的facs求解的制作方法
技术领域
本发明一般地涉及运动捕捉,更具体而言涉及用于动画化覆盖在数字 面部模型上的皮肤层的方法和系统。
背景技术
运动捕捉系统被用于捕捉真实对象的运动,并将其映射到计算机生成 的对象上,以作为使之动画化的方式。这些系统常在电影和视频游戏的生 产中被用于创建对象或人的数字表示,该数字表示被用作源数据,以创建 计算机图形("CG")动画。在典型的系统中,演员穿着一套服装,该套 服装上的各个位置处附着了标志(例如,小的反射性标志被附着到身体和 四肢)。然后,在标志被照亮的同时,精确布置的数字相机从不同角度记 录在捕捉空间中演员的身体运动。系统随后分析图像以确定在每一帧中演 员服装上的标志的位置(例如,空间坐标)和方向。通过跟踪标志的位
7置,系统创建在一段时间中标志的空间表示,并且构建运动中的演员的数 字表示。该运动随后被应用到虚拟空间中的数字模型,该数字模型随后可 被赋予纹理和颜色,以产生演员和/或表演的完整CG表示。该技术已被特 技效果公司用来在许多流行的电影中产生逼真的动画。
捕捉表现演员面部表情的运动要求使用与捕捉身体运动相类似的方 法。但是,要求演员在其面部穿着"服装"是不实际的。另外,人类面部 表情涉及比典型身体运动微妙得多的面部肌肉运动。为了进行面部运动捕 捉,标志改为被直接附于演员的面部,通常被定位来最优地限定面部运 动。标志还被足够大量地施加以捕捉面部肌肉运动的许多微妙类型。但 是,大量的标志及其接近度使得捕捉后的帧到帧标志跟踪变得很困难,并 且要求大量手工处理来确保每个个体标志都被准确跟踪。
这些数据被清洁以大大减轻跟踪的困难。但是,当所捕捉的用来动画 化数字面部模型的面部标志数据在空间上也不与数字面部模型良好匹配 时,经常出现另一个问题。在所得到的面部动画中,人物的皮肤经常呈现 一种不连续的外观。

发明内容
本发明的实施例包括用于实现生成并动画化数字面部模型上的皮肤层 的技术的系统、方法、装置和计算机程序。
在一个方面中, 一种方法包括从面部标志数据生成面部肌肉激活; 利用面部肌肉激活来动画化计算机图形面部模型;生成覆盖计算机图形面 部模型的皮肤层;以及利用面部标志数据来动画化皮肤层。
在另一个方面中, 一种系统包括面部肌肉激活模块,用于接收面部 标志数据并且生成面部肌群激活;动画化模块,用于接收面部肌群激活并 且生成被激活的面部模型;以及皮肤层模块,用于接收被激活的面部模型 和面部标志数据,并且生成被动画化的、带皮肤层的面部模型。
在査阅以下详细描述和附图之后,本领域的普通技术人员将很清楚本 发明的其他特征和优点。


本发明的结构和操作细节一部分可通过研究附图来掌握,附图中类似 地标号指代类似的部件,其中-
图1是面部运动捕捉系统的功能框图2是示出根据一种实现方式动画化数字面部模型的方法的流程图; 图3是示出根据一种实现方式初始化FACS矩阵的方法的流程图; 图4是示出根据一种实现方式清洁面部标志数据的方法的流程图; 图5是示出根据一种实现方式从面部标志数据生成面部肌肉激活的方 法的流程图6是根据本发明一种实现方式用于动画化数字面部模型的系统的功 能框图7是用于生成动画化的皮肤层的皮肤层模块的功能框图; 图8A是示出用户和计算机系统的示图;以及
图8B是示出容宿着FACS求解(solving)系统的计算机系统的功能 框图。
具体实施例方式
这里公开的某些实现方式提供了用于生成并动画化数字面部模型上的 皮肤层的系统和方法。例如,这里公开的一种方法允许了从面部标志数据 生成面部肌肉激活;利用面部肌肉激活来动画化计算机图形面部模型;生 成覆盖计算机图形面部模型的皮肤层;并且利用面部标志数据来动画化皮 肤层。
动画化皮肤层可包括将面部标志数据点与皮肤层的相应区域关联起 来,并且移动皮肤层的相应区域。移动皮肤层的该区域(1)对应于面 部标志数据点与在时间上关联的另一帧的数据点的空间位置之间的位移; 并且(2)包括在皮肤的该区域上的预定位置处施加该位移。
在阅读本说明书后,本领域的技术人员将会清楚如何以各种可供选择 的实现方式在各种可供选择的应用中实现本发明。然而,虽然这里将描述 本发明的各种实现方式,但应当理解,这些实现方式只是以示例方式给出
9的,而不是以限制方式给出的。因而,这里对各种可供选择的实施例的详 细描述不应当被解释为限制由权利要求限定的本发明的范围或广度。
面部动作编码系统("FACS")提供了一种标准分类法,用于系统 地对人类面部表情分类。表示各种面部表情的面部运动数据被利用如图1 所示的运动捕捉系统来捕捉,然后可根据FACS被分类。跟踪差错将导致 所标记的标志数据的轨迹异常,从而使得该数据不适合于分类。
FACS清洁系统的实现包括用于去除各种跟踪差错并且提高虚拟空间 中捕捉的标志数据的稳定性的系统和方法。利用FACS、 FACS清洁系统 (详细记载于2006年7月28日提交的题为"FACS Cleaning in Motion Capture"的美国临时专利申请No. 60/834,132中)、 一类表演驱动的面部 动画(详细记载于2007年4月24日提交的题为"Performance Driven Facial Animation"的美国专利申请No. 11/739,448中)、以及面部标志数 据,生成了具有动画化的皮肤的动画化的数字面部模型。
在本发明的一种实现方式中,清洁数据被接收并被利用FACS矩阵来 处理。S卩,"经过清洁"的数据基本上免除了时间性的标志空隙、误标记 的标志以及噪声。FACS矩阵是FACS的一种实现方式,其中维护了多个 面部姿态。FACS矩阵中的每个面部姿态表示了特定演员所表演的基本不 同类型的姿态。然后,利用面部标志数据来再次使用FACS矩阵,以确定 哪些肌群被面部标志数据中捕捉的特定姿态所激活。肌群激活被用于相应 地动画化CG人物的数字面部模型。
建模器通常为数字面部模型形成面部形状,以与每个演员所提供且存 储在FACS矩阵中的姿态相对应。通过利用FACS矩阵得出的面部肌群激 活来激活面部形状。这样就引起了数字面部模型的动画化。
动画化有时导致数字面部模型的皮肤上的不连续,这就好像对皮肤的 分割,因为数字面部模型所作出的各种姿态是以非开即关(on-or-off)的 方式被触发的。也就是说,数字面部模型的皮肤不是直接受到结合FACS 矩阵的面部标志数据的影响的。而是,面部标志数据被用于触发由建模器 形成的各种面部形状的激活。
为了补偿所导致的皮肤上的不连续,在某些方面类似于表演驱动的面
10部动画的另一种皮肤动画化方法(有时称为"直接驱动"方法)被应用到 已经通过触发面部肌群而动画化的数字面部模型的顶层。在数字面部模型 的面部皮肤和面部标志数据之间形成直接对应。当面部标志数据点运动 时,它们也在皮肤层上直接拖曳。这作为单独的一层被覆盖在数字面部模 型上,并且可用于实现多种效果。例如,演员面部的皮肤的自然抖动在相 应的动画化的人物的面部上可以被衰减,或者可以同样容易地被过度驱动
以夸大效果。因此,通过FACS矩阵来激活肌群,然后利用面部标志数据 来驱动皮肤层的运动,这不仅提供了对传统意义上的动画化的控制(人物 不会脱离模型),而且允许了在被捕捉时皮肤可以像其在演员面部上那样 生动。
图1是面部运动捕捉系统100的功能框图,该面部运动捕捉系统100 包括运动捕捉处理器110、运动捕捉相机120、 122、 124、用户工作站 130、以及被施加以多个面部标志150的演员面部140。运动捕捉处理器 110可以有线或无线地连接到工作站130。运动捕捉处理器110 —般被配 置为接收来自工作站130的控制数据分组。
在图l所示的实现方式中,三个运动捕捉相机120、 122、 124连接到 运动捕捉处理器模块110。但是,根据各种用户和动画相关要求,可以使 用更多或更少的运动捕捉相机。运动捕捉相机120、 122、 124对焦在演员 面部140上,在演员面部140上的特定目标点处布置了表面球状面部标志 150。虽然面部标志150被示为布置在演员面部140的特定位置,但经常 出现这样的情况,即面部标志150被布置以便优化对特定面部肌群或者演 员面部140的其他限定区域的捕捉。 运动捕捉相机120、 122、 124被运动捕捉处理器IIO控制,并且它们 逐帧地捕捉标志的二维("2D")图像。这样捕捉的图像数据一般被存储 在用户工作站130处和/或在用户工作站130处实时査看。通过对运动捕捉 相机120、 122、 124在捕捉空间中的空间位置进行三角测量,来合并由运 动捕捉相机120、 122、 124中每一个获取的2D图像数据的帧。该合并处 理被称为"重建",并且在输出处生成体积性面部标志数据的帧。帧中的 每个面部标志数据点包括一个相应的空间位置,并且体积性面部标志数据的帧形成一时间序列,该序列实质上是下述体积的三维("3D")采样的
序列在该体积中,在表演期间捕捉了演员的面部运动。
重建的体积性面部标志数据的帧的序列被称为一 "拍"(beat),这 通常表示其间捕捉演员表演的一次"拍摄"(take)。运动捕捉处理器 110执行一拍的跟踪功能。执行跟踪以将每一帧的面部标志与该拍中在该 序列中处于其前和其后的其他帧的相应面部标志准确地关联起来。唯一的 标记(label)被指派给每个面部标志数据点,并且在该拍的持续时间期间 被跟踪,从而得出每个面部标志数据点的轨迹线。 一旦完成了时间关联, 所得到的面部标志数据在每个帧中就包括虚拟空间中的顶点的系统,每个 顶点由被标记的标志来表示。顶点的系统构成了表示演员面部140的模拟 表面。
希望特定帧中表示特定面部标志150的面部标志数据点与后续帧中表 示该面部标志150的面部标志数据点在时间上相关联。对表示特定面部标 志150的面部标志数据点的正确时间关联将生成表示特定标志150的运动 的平滑且连贯的轨迹。但是,可能发生跟踪差错。
跟踪差错通常包括错误地将一个帧中的面部标志数据点与下一帧中的 面部标志数据点关联起来,这通常会导致所解出的面部标志150的轨迹的 运动中的表观急动(jerk)。当面部标志150在帧序列中被连续误标记 时,差错还可表现重复性的抽动(twitch)。差错的其他示例包括错误的 三角测量、对对象的可见性较差的视图的重建,以及在两个轴上正确但在 第三轴上错误的数学"幻影"。
图2是示出根据一种实现方式动画化数字面部模型的方法200的流程 图。在图示的实现方式中,在块210,初始化FACS矩阵。初始化实质上 包括定义FACS矩阵中的FACS动作单元,并且为演员校准相关联的姿 态,这在下文中联系图3更详细地描述。
在块220,接收面部标志数据。面部标志数据构成体积性数据的帧的 序列,每个帧包括多个面部标志数据点,并且每个面部标志数据点包括一 个空间位置。如上所述,跟踪处理已经在时间上基本将每个面部标志数据 点与帧序列中的至少一个其他帧的面部标志数据点关联起来了。 一般来说,每个面部标志数据点与帧序列的多个其他帧中的面部标志数据点在时 间上关联,从而在该序列内定义的体积中形成了一条轨迹。
在块230,清洁面部标志数据以使数据免除时间关联空隙、面部标志 数据点误标记以及噪声。时间关联空隙例如发生在对帧中的一个或多个面 部标志数据点的标记失败时,从而导致序列中的相邻帧的正确标记的点之 间的"空隙"。有时,帧中的一个或多个点被误标记,从而不正确地将它 们与相邻帧中的点在时间上关联。从而,在帧序列的相邻和其他帧中的本 应会被正确标记的点的轨迹中出现了不连续。例如,由于图像获取和/或重 建期间发生的小差错,在面部标志数据中可能存在噪声,从而导致所解出 的面部标志数据的空间位置相对于其真实空间位置有位移。在一种实现方 式中,根据图4的流程图示出的方法400来执行清洁。
在块240,从面部标志数据生成面部肌肉激活。生成面部肌肉激活实 质上包括确定表征近似面部标志数据的动作单元的加权组合的权重;以 及生成加权的激活。在下文中联系图5来更详细描述生成面部肌肉激活。
在块250,利用面部肌肉激活来动画化计算机图形("CG")面部模 型。在一种实现方式中,CG面部模型是已经被艺术家或动画家"装配" 的数字面部模型。装配数字面部模型包括设置不同的筋膜层(fascia layer),这些筋膜层被混合以在数字面部模型上产生最终的面部变形。在 一种实现方式中,筋膜层包括允许面部肌肉变形的肌肉层(muscle layer)、允许颌部运动的颌部层(jaw layer)、控制不同面部区域中的皮 肤凸起的体积层(volume layer)、以及用于发音的唇部运动的发音层 (articulationlayer)。
肌肉层包括头骨贴片,其中有使面部变形的肌肉控制。肌肉控制由从 运动捕捉数据生成的加权激活所激活。颌部层帮助控制数字面部模型的颌 部的运动。体积层向数字面部模型上发生的变形添加体积。因此,体积层 帮助模拟皱纹和其他面部变形,这些可以由从运动捕捉数据生成的加权激 活来触发。发音层涉及唇部变形时的形状。具体地,发音层帮助控制唇部 的巻动和体积,这是面部表情中唇部扁起或者起皱时必不可少的。面部标 志数据被映射或者说重定位到数字面部模型上,作为触发各种筋膜层的加
13权激活。也就是说,权重量化了一个或多个预定的姿态中的每一个在触发 筋膜层时施加的比例影响。
但是,有时,如上所述地利用加权激活来触发筋膜层会导致CG面部 模型的表面上的不合需要的分割效应。也就是说,被触发的各种肌群在其
间隙处表现出不连续性。利用一个单独的皮肤层来覆盖CG面部模型将平
滑间隙处的不连续,并且提供了另一种媒介,通过该媒介,艺术家或动画 家可控制所得到的面部动画的外观。
因此,在块260,生成覆盖CG面部模型的皮肤层。在一种实现方式 中,该皮肤层被生成为与上述四个筋膜层分开的成分。皮肤层符合CG面 部模型的外表面。它可被赋予各种视觉属性,例如包括颜色、纹理、透明 度、毛发和/或皮毛。皮肤层还可被赋予各种物理属性,例如包括弹性、厚 度和密度。在另一种实现方式中,皮肤层被划分成多个区域,每个区域对 应于一个面部标志数据点。
在块270,随后利用面部标志数据来动画化皮肤层。在一种实现方式 中,被表达为帧序列中每个面部标志数据点的轨迹的、演员上的每个面部 标志的运动被传递到皮肤层的相应区域。也就是说,在帧与帧之间表现出 空间位移(即,空间位置的变化)的每个面部标志数据点在皮肤层的相应 区域上施加相应的位移。在一种实现方式中,被这样施加到皮肤层的区域 的位移就像在皮肤上的"拉曳" 一样。应当明白,取决于演员的表演,在 特定时间并非所有面部标志数据点都将移动。
在一种实现方式中,联系皮肤层的相应区域,在预定位置处施加每个 面部标志数据点的位移。在一个示例中,根据对该层的密度确定,在每个 区域的质心处施加位移。在另一种实现方式中,根据表面扩散函数,在相 应区域上分布每个面部标志数据点的位移。例如,在相应区域上均一地施 加面部标志的位移。在另一种示例中,在相应区域的中心处施加面部标志 的位移,并且根据高斯分布在该区域上分布该位移。
在另一种实现方式中,对每个面部标志数据点的位移进行调制。调制 的示例包括但不限于根据线性和非线性函数来縮放位移和/或修改位移的方 向。在另一种实现方式中,根据与相应区域相关联的弹性函数来在该区域上分布面部标志数据点的位移。在另一种实现方式中,根据与相应区域相 关联的厚度函数来在该区域上分布面部标志数据点的位移。在另一种实现 方式中,根据与相应区域相关联的密度函数来在该区域上分布面部标志数 据点的位移。
图3是示出根据一种实现方式初始化FACS矩阵的方法210的流程图。
根据FACS,人类面部具有按被称为"动作单元"的群组来一起工作 的肌肉。FACS提供了一种框架,用于判定何时某些动作单元被触发,以 及如何向每个动作单元指派对给定面部姿态的相对影响。面部表情被分类 成多个不同的动作单元。每个动作单元定义了产生面部外观的瞬间变化的 肌肉活动("激活")。对于不同的人,面部外观的这些变化取决于面部 解剖体构造而有所不同,所述解剖体构造例如是骨骼结构、脂肪堆积、皱 纹、各种面部特征的形状,以及其他有关面部外观。但是,在这些动作单 元被触发时,在人与人之间可以看到某些共性。FACS中使用的动作单元 是基于面部动作在面部上的位置以及所涉及的面部动作的类型的。例如, 上半面部具有影响眉毛、前额和眼睑的肌肉,而嘴部和唇部周围的下半面 部则形成另一群组。这些肌肉中的每一个成组地工作以形成动作单元,并 且这些动作单元可以被进一步分解成面部的左部和右部区域,这些左部和 右部区域可被非对称且彼此独立地触发。
在块300,为FACS矩阵定义动作单元。在一种实现方式中,FACS 矩阵包括64个动作单元,每个动作单元表示一个特定的面部表情,并且 定义了一起工作以产生面部表情的面部肌肉激活的群组。动作单元被进一 步分解成表示面部的左侧和右侧,这被用来表示非对称的面部姿态。
在块310,对FACS矩阵的动作单元进行校准。在一种实现方式中, 每个演员具有一个唯一的、个体化的FACS矩阵。该演员的FACS矩阵所 维护的每个动作单元通过以下方式得以校准对演员对与该动作单元相对
应的姿态的表演进行运动捕捉。面部标志数据如上所述被捕捉、被进行 FACS清洁、并且与特定动作单元相对应地被指派给FACS矩阵。在另一 种实现方式中,演员以极端的方式表演每个姿态,以确立在一拍期间表演该姿态或类似姿态时面部标志偏离的预期限度。
图4是示出根据一种实现方式清洁面部标志数据的方法230的流程图。
在块400,粗略稳定帧序列的面部标志数据。在面部运动捕捉的一拍 的过程期间,除了与面部表情相关的微妙运动之外,演员还可执行相对粗 糙的头部运动,其中包括平移运动和旋转运动。在一种实现方式中,消除 粗糙的头部运动,以更好地暴露出演员的面部表情的微妙运动,从而得到 平移不变且旋转不变的面部标志数据。例如,识别面部标志数据的第一 帧。根据演员面部上的两个或更多个预定的刚性点来使帧序列中的其他帧 的面部标志数据与第一帧的面部标志数据对齐。例如,这种刚性点包括与 附着在头部、耳部和鼻梁处的标志相对应的面部标志数据点。 一般来说, 以这样一种方式来选择刚性点,以使得它们相对于演员的面部表情而言是 不变的,但仍捕捉了运动捕捉表演空间中演员的物理运动。根据这些刚性 点,对于帧序列定义空间坐标系统。因此,面部标志数据的其余运动基本 上仅与面部表情相关,并且在该空间坐标系统中被相应地定义。
在块410,在FACS矩阵的空间中,修复有缺陷的面部标志数据点。 在一种实现方式中,在FACS矩阵的所有FACS姿态(即,动作单元)的 空间中分析演员的表演的帧。因而,可将FACS姿态视为由空间数据点定 义的面部基本向量。为传入帧计算每个面部基本向量的权重,使得面部姿 态(即,面部基本向量)的加权组合近似传入帧中的新姿态。然后将新姿 态的面部标志数据点与面部姿态的加权组合相比较,以判定是否存在任何 遗漏的、误标记的或者噪声大到"不可接受"的面部标志数据点。利用来 自FACS姿态的加权组合的适当数据点来替换传入帧中的任何这种有缺陷 的面部标志数据点。
在块420,约束面部标志数据点,以使之不能独自特殊地运动。该约 束一般是适用的,这是因为单个特定面部标志数据点以与相邻面部标志数 据点明显不相同的方式运动的可能性是较低的,因此单个面部标志数据点 的特殊行为一般指示出缺陷。 一旦确定了,就可以修改数据点的不正确运 动。
16在块430,约束面部标志数据点,以使之与相应肌群一起运动。在一种实现方式中,不允许面部标志数据点以相对于其所属肌群而言不自然的方式运动。
在块440,在帧中精细稳定面部标志数据。通过确定相对于面部表面模型的标志运动来精细稳定面部标志数据点的空间位置。在一种实现方式中,通过调节面部标志数据点运动以遵循预定的面部表面模型,来精细稳定面部标志数据点的空间位置。在另一种实现方式中,精细稳定是通过利用FACS矩阵中维护的面部姿态调节偏离的面部标志数据点来实现的。在又一种实现方式中,利用刚性标志来手工地精细稳定面部标志数据点。
总之,以两种方式来进行稳定-粗略稳定和精细稳定。粗略稳定利用了附于身体上的刚性标志(例如,头部/面部标志)。这些刚性标志足够地大,使得能够计算变换矩阵来将刚性标志(头部/面部)的位置从其在空间中的位置变换到规范的原点,以便对面部表情的所有分析都可以在锁定的位置中进行。但是,在存在噪声、不一致的标记和其他异常(例如,面部表情的异常)的情况下,被计算来逐帧地锁定头部的粗略稳定变换并不一致,这会导致微小的摇摆、扭曲、爆裂(pop)和其他噪声。当这些数据被用于面部重定位时,就很难生成良好的面部表情了。因此,需要去除摇摆、扭曲、爆裂和其他噪声的精细稳定。这可以通过使用针对特定演员的FACS矩阵来实现。FACS矩阵被用于分析与给定表情一致的标志的微小运动。因此,对于一个表情, 一组标志指示出从FACS矩阵获知的或通过FACS矩阵来得出的一致运动。但是,如果运动不那么一致或者是不一致的,则可在整个面部对该运动进行矫正和"补偿",以便使整个面部(和/或头部)更稳定。
图5是示出根据一种实现方式从面部标志数据生成面部肌肉激活的方法500的流程图。
在块500,确定权重,以表征近似传入的面部标志数据的帧中表示的姿态的动作单元的加权组合。如上所述,表示某些面部肌群的激活的动作单元可被视为面部基本向量。因此, 一个或多个动作单元-包括但最多不超过FACS矩阵中的所有动作单元-被用作加权组合的分量,以近似传入面部标志数据中的姿态。也就是说,面部标志数据被表征为FACS矩阵中
的预定动作单元中的某种组合。对权重的确定涉及将与每个动作单元相关联的面部姿态数据的加权组合与新的面部姿态数据相拟合。在一种实现方式中,诸如最小二乘拟合之类的线性优化被用于计算权重的最优组合。在另一种实现方式中,非线性优化被用于执行拟合。
一旦确定了权重,在块510则生成加权激活。在一种实现方式中,如联系图2所述,权重被施加到与每个动作单元相关联的肌群激活,并且所得到的激活被组合以生成加权激活。加权激活随后被施加到数字面部模型。
图6是根据本发明一种实现方式用于动画化数字面部模型的系统600的功能框图。系统600包括清洁模块610、面部肌肉激活模块620、 FACS模块630、动画化模块640以及皮肤层模块650。
在图6所示的实现方式中,清洁模块610清洁面部标志数据以使数据免除时间关联空隙、面部标志数据点误标记以及噪声。时间关联空隙例如发生在对帧中的一个或多个面部标志数据点的标记失败时,从而导致序列中的相邻帧的正确标记的点之间的"空隙"。在一种实现方式中,清洁是根据图4的流程图所示的方法400来执行的。
面部肌肉激活模块620从面部标志数据生成面部肌肉激活。如以上联系图2所述,生成面部肌肉激活实质上包括确定表征近似面部标志数据的动作单元的加权组合的权重;以及生成加权的激活。在图5中详细描述了生成面部肌肉激活。
FACS模块630实质上通过定义FACS矩阵中的FACS动作单元并为演员校准关联的姿态,来初始化FACS矩阵。
动画化模块640利用在面部肌肉激活模块620中生成的面部肌肉激活来动画化计算机图形("CG")面部模型。在一种实现方式中,CG面部模型是已经被艺术家或动画家"装配"的数字面部模型。装配数字面部模型包括设置不同的筋膜层,这些筋膜层被混合以在数字面部模型上产生最终的面部变形。在一种实现方式中,筋膜层包括允许面部肌肉变形的肌肉层、允许颌部运动的颌部层、控制不同面部区域中的皮肤凸起的体积层、
18以及用于发音的唇部运动的发音层。
肌肉层包括头骨贴片,其中有使面部变形的肌肉控制。肌肉控制由从运动捕捉数据生成的加权激活所激活。颌部层帮助控制数字面部模型的颌部的运动。体积层向数字面部模型上发生的变形添加体积。因此,体积层帮助模拟皱纹和其他面部变形,这些可以由从运动捕捉数据生成的加权激活来触发。发音层涉及唇部变形时的形状。具体地,发音层帮助控制唇部的巻动和体积,这是面部表情中唇部扁起或者起皱时必不可少的。面部标志数据被映射或者说重定位到数字面部模型上,作为触发各种筋膜层的加权激活。也就是说,权重量化了一个或多个预定的姿态中的每一个在触发筋膜层时施加的比例影响。
但是,有时,如上所述地利用加权激活来触发筋膜层会导致CG面部模型的表面上的不合需要的分割效应。也就是说,被触发的各种肌群在其
间隙处表现出不连续性。利用一个单独的皮肤层来覆盖CG面部模型将平
滑间隙处的不连续,并且提供了另一种媒介,通过该媒介,艺术家或动画家可控制所得到的面部动画的外观。
因此,皮肤层模块650生成覆盖CG面部模型的皮肤层。在一种实现方式中,该皮肤层被生成为与上述四个筋膜层分开的成分。皮肤层符合CG面部模型的外表面。它可被赋予各种视觉属性,例如包括颜色、纹理、透明度、毛发和/或皮毛。皮肤层还可被赋予各种物理属性,例如包括弹性、厚度和密度。在另一种实现方式中,皮肤层被划分成多个区域,每个区域对应于一个面部标志数据点。
皮肤层模块650随后利用面部标志数据来动画化皮肤层。在一种实现方式中,被表达为帧序列中每个面部标志数据点的轨迹的、演员上的每个面部标志的运动被传递到皮肤层的相应区域。也就是说,在帧与帧之间表现出空间位移(即,空间位置的变化)的每个面部标志数据点在皮肤层的相应区域上施加相应的位移。在下文中详细描述该模块650。
图7是用于生成动画化的皮肤层的皮肤层模块650的功能框图。皮肤层模块650包括数据点关联模块700、皮肤运动模块710、位移模块720、位移调制模块730以及皮肤弹性模块740。
19数据点关联模块700将标志(即,面部标志数据点)与动画化的模型
上添加的皮肤层上的区域(即,离散的"皮肤贴片")关联起来,以产生
各个面部标志数据点与相应皮肤区域的关联。皮肤运动模块710接收这些关联,并且使用它们来将面部标志数据点中的位移施加到其相应的皮肤区域。
位移模块720计算标志的空间位置之间的位移。位移被用于拖曳所添加的皮肤层的相应区域。标志和区域在演员面部上在物理上对应。位移模块720所计算出的数据点位移被位移调制模块730用于例如通过縮放来调制位移,以获得所需的结果。皮肤层的区域上的位移的基本施加将会是一对一的。例如, 一英寸的标志位移意味着一英寸的皮肤位移。因此,可能希望调制位移。调制可包括更改表示位移的方向(例如,向量),因为位移至少是空间性的。
皮肤弹性模块740计算和/或施加弹性到皮肤的区域,使得当(在皮肤运动模块710中)位移被施加到它时,皮肤以某种可预测的方式行动。
图8A示出计算机系统800和用户802的表示。用户802可使用计算机系统800来执行FACS求解。计算机系统800存储并运行FACS求解系统890,该FACS求解系统890处理经过清洁的运动捕捉帧数据。
图8B是示出容宿着FACS求解系统890的计算机系统800的功能框图。控制器810是可编程处理器,并且控制计算机系统800及其组件的操作。控制器810从存储器820或嵌入式控制器存储器(未示出)中加载指令并且执行这些指令以控制系统。在其执行中,控制器810以软件系统的形式提供FACS求解系统890。或者,该服务可以实现为控制器810或计算机系统800中的单独的组件。
存储器820临时存储数据,供计算机系统800的其他组件使用。在一种实现方式中,存储器820被实现为RAM。在一种实现方式中,存储器820还包括长期或永久性存储器,例如闪存和/或ROM。
存储装置830临时或长期存储数据,供计算机系统800的其他组件使用,例如用于存储供FACS求解系统890使用的数据。在一种实现方式中,存储装置830是硬盘驱动器。介质设备840接收可移除介质并且对插入的介质进行数据的读和/或 写。在一种实现方式中,介质设备840是光盘驱动器。
用户接口 850包括用于接受来自计算机系统800的用户的用户输入以 及向用户呈现信息的组件。在一种实现方式中,用户接口 850包括键盘、 鼠标、音频扬声器和显示器。控制器810使用来自用户的输入来调节计算 机系统800的操作。
1/0接口 860包括一个或多个I/O端口,用于连接到相应的1/0设备, 例如外部存储装置或补充设备(例如,打印机或PDA)。在一种实现方式 中,1/0接口 860的端口包括诸如以下端口 USB端口、 PCMCIA端口、 串行端口、和/或并行端口。在另一种实现方式中,1/0接口 860包括无线 接口,用于与外部设备进行无线通信。
网络接口 870包括有线和/或无线网络连接,例如支持以太网连接的 "Wi-Fi"接口 (包括但不限于802.11)或RJ-45。
计算机系统800包括计算机系统中典型的其他硬件和软件(例如,电 源、冷却装置、操作系统),但为了简明这些组件在图8B中没有具体示 出。在其他实现方式中,可以使用计算机系统的不同配置(例如,不同的 总线或存储配置或多处理器配置)。
已经描述了本发明的各种例示性实现方式。但是,本领域的普通技术 人员将会认识到,另外的实施例也是可能实现的,并且在本发明的范围之 内。例如,虽然已经就面部标志数据来一般性地描述了 FACS求解系统, 但是也可将该系统应用到其他类型的运动捕捉标志数据,例如身体标志数 据。另外,应当明白,将功能分组在一个模块或块内是为了描述起来容 易。具体的功能可被从一个模块或块移动到另一个,而不脱离本发明。
因此,本发明不限于上述那些实施例。
2权利要求
1. 一种方法,包括从面部标志数据生成面部肌肉激活;利用所述面部肌肉激活来动画化计算机图形面部模型;生成覆盖所述计算机图形面部模型的皮肤层;以及利用所述面部标志数据来动画化所述皮肤层。
2. 如权利要求1所述的方法,其中,所述的生成面部肌肉激活的步骤包括解出预定面部肌肉激活的加权组合。
3. 如权利要求2所述的方法,其中,所述预定面部肌肉激活被维护在FACS矩阵中。
4. 如权利要求1所述的方法,其中,所述面部标志数据包括多个帧,每个帧包括多个数据点,并且每个数据点包括一个空间位置,其中,每个帧的每个数据点与所述多个帧中的至少一个其他帧的数据点在时间上关联。
5. 如权利要求4所述的方法,其中,所述的动画化所述皮肤层的步骤包括将特定帧的一个数据点与所述皮肤层的相应区域关联起来;以及移动所述皮肤层的相应区域。
6. 如权利要求5所述的方法,其中,所述移动对应于所述特定帧的数据点和至少一个其他帧的在时间上关联的数据点的空间位置之间的位移。
7. 如权利要求6所述的方法,其中,所述移动包括在与所述皮肤层的相应区域相关的预定位置处施加所述位移。
8. 如权利要求6所述的方法,其中,所述位移被调制。
9. 如权利要求5所述的方法,其中,所述移动对应于所述皮肤层的相应区域的预定弹性。
10. 如权利要求4所述的方法,还包括修复居间帧的有缺陷数据点。
11. 如权利要求10所述的方法,其中,所述有缺陷数据点包括 遗漏的数据点、误标记的数据点、以及有噪声的数据点。
12. 如权利要求10所述的方法,其中,所述有缺陷数据点 与特定帧的一个数据点和所述至少一个其他帧的在时间上关联的数据点在时间上关联。
13. 如权利要求12所述的方法,其中,所述居间帧 在时间上位于所述特定帧和所述至少一个其他帧之间。
14. 如权利要求12所述的方法,其中,所述修复有缺陷数据点的步骤包括消除所述居间帧的替换数据点的空间位置。
15. 如权利要求14所述的方法,其中,所述的消除替换数据点的空间 位置的步骤包括在多个预定的帧之间进行插值。
16. 如权利要求15所述的方法,其中,所述多个预定的帧被维护在 FACS矩阵中。
17. —种系统,包括面部肌肉激活模块,用于接收面部标志数据并且生成面部肌群激活; 动画化模块,用于接收所述面部肌群激活并且生成被激活的面部模 型;以及皮肤层模块,用于接收所述被激活的面部模型和所述面部标志数据, 并且生成被动画化的、带皮肤层的面部模型。
18. 如权利要求17所述的系统,其中,所述面部肌群激活模块包括 用于解出预定面部肌肉激活的加权组合的单元。
19. 如权利要求18所述的系统,其中,所述预定面部肌肉激活被维护 在FACS矩阵中。
20. 如权利要求17所述的系统,其中,所述面部标志数据包括多个 帧,每个帧包括多个数据点,并且每个数据点包括一个空间位置,其中,每个帧的每个数据点与所述多个帧中的至少一个其他帧的数据点在时间上关联。
21. 如权利要求20所述的系统,其中,所述皮肤层模块包括 数据点关联模块,用于将特定帧的一个数据点与所述皮肤层的相应区域关联起来;以及皮肤运动模块,用于移动所述皮肤层的相应区域。
22. 如权利要求21所述的系统,其中,所述皮肤层模块包括 位移模块,用于生成所述特定帧的数据点和至少一个其他帧的在时间上关联的数据点的空间位置之间的位移。
23. 如权利要求22所述的系统,其中,所述皮肤运动模块包括 用于在与所述皮肤层的相应区域相关的预定位置处施加所生成的位移的单元。
24. 如权利要求22所述的系统,其中,所述皮肤层模块还包括 位移调制模块,用于调制所述位移。
25. 如权利要求21所述的系统,其中,所述皮肤层模块包括 皮肤弹性模块,用于计算并施加预定的弹性到所述皮肤层的相应区域,以使得所述皮肤以某种可预测的方式行动。
26. —种装置,包括用于从面部标志数据生成面部肌肉激活的装置; 用于利用所述面部肌肉激活来动画化计算机图形面部模型的装置; 用于生成覆盖所述计算机图形面部模型的皮肤层的装置;以及 用于利用所述面部标志数据来动画化所述皮肤层的装置。
27. —种存储在计算机可读存储介质中的计算机程序,该程序包括使 得计算机执行以下步骤的可执行指令从面部标志数据生成面部肌肉激活; 利用所述面部肌肉激活来动画化计算机图形面部模型; 生成覆盖所述计算机图形面部模型的皮肤层;以及 利用所述面部标志数据来动画化所述皮肤层。
28. 如权利要求27所述的计算机程序,其中,使得计算机生成面部肌 肉激活的可执行指令包括使得计算机执行以下步骤的可执行指令解出预定面部肌肉激活的加权组合。
29. 如权利要求28所述的计算机程序,其中,所述预定面部肌肉激活 被维护在FACS矩阵中。
30. 如权利要求27所述的计算机程序,其中,所述面部标志数据包括 多个帧,每个帧包括多个数据点,并且每个数据点包括一个空间位置,其中,每个帧的每个数据点与所述多个帧中的至少一个其他帧的数据 点在时间上关联。
31. 如权利要求30所述的计算机程序,其中,使得计算机动画化所述 皮肤层的可执行指令包括使得计算机执行以下步骤的可执行指令将特定帧的一个数据点与所述皮肤层的相应区域关联起来;以及 移动所述皮肤层的相应区域。
32. 如权利要求31所述的计算机程序,其中,使得计算机移动所述皮 肤层的相应区域的可执行指令对应于所述特定帧的数据点和至少一个其他帧的在时间上关联的数据点的空 间位置之间的位移。
33. 如权利要求32所述的计算机程序,其中,使得计算机移动所述皮 肤层的相应区域的可执行指令包括使得计算机执行以下步骤的可执行指 令在与所述皮肤层的相应区域相关的预定位置处施加所述位移。
34. 如权利要求32所述的计算机程序,其中,所述位移被调制。
35. 如权利要求31所述的计算机程序,其中,使得计算机移动所述皮 肤层的相应区域的可执行指令对应于所述皮肤层的相应区域的预定弹性。
36. 如权利要求30所述的计算机程序,还包括使得计算机执行以下步 骤的可执行指令修复居间帧的有缺陷数据点。
37. 如权利要求36所述的计算机程序,其中,所述有缺陷数据点包括 遗漏的数据点、误标记的数据点、以及有噪声的数据点。
38. 如权利要求36所述的计算机程序,其中,所述有缺陷数据点与特定帧的一个数据点和所述至少一个其他帧的在时间上关联的数据 点在时间上关联。
39. 如权利要求38所述的计算机程序,其中,所述居间帧 在时间上位于所述特定帧和所述至少一个其他帧之间。
40. 如权利要求38所述的计算机程序,其中,使计算机修复有缺陷数 据点的可执行指令包括使计算机执行以下步骤的可执行指令消除所述居间帧的替换数据点的空间位置。
41. 如权利要求40所述的计算机程序,其中,使计算机消除替换数据 点的空间位置的可执行指令包括使计算机执行以下步骤的可执行指令在多个预定的帧之间进行插值。
42. 如权利要求41所述的计算机程序,其中,所述多个预定的帧被维 护在FACS矩阵中。
全文摘要
一种方法包括从面部标志数据(150)生成面部肌肉激活;利用面部肌肉激活来动画化计算机图形面部模型(250);生成覆盖计算机图形面部模型的皮肤层(260);以及利用面部标志数据(150)来动画化皮肤层。
文档编号G06T15/70GK101512603SQ200780033475
公开日2009年8月19日 申请日期2007年7月30日 优先权日2006年7月28日
发明者保劳格·哈瓦尔达尔, 德曼·乔丹 申请人:索尼株式会社;索尼电影娱乐公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1