表演二维表情动画思索

时间:2022-06-08 02:59:00

导语:表演二维表情动画思索一文来源于网友上传,不代表本站观点,若需要原创文章可咨询客服老师,欢迎参考。

表演二维表情动画思索

在卡通动画制作中,如何创作出形象生动的卡通表情动画是一个值得讨论的问题.完全依靠动画师手工完成的卡通表情动画不但难以确保其效果生动、形象,而且对动画师的制作技术、经验和工作量也是一种挑战.如何自动或半自动地生成出较为生动形象的表情动画,已成为CAD领域的一个热门话题,也是学术界和产业界共同关心的问题.事实上,在卡通人脸动画制作中,静态二维卡通人脸图像的绘制对于动画师而言并非难事,且随着光学运动捕获系统的使用,稀疏二维动态人脸表情数据的获取也越来越容易和普及.因此,基于静态二维卡通人脸图像及动态人脸表情数据融合,高效生成二维卡通人脸表情动画是一个可行的思路.本文使用静态二维卡通人脸图像,配合动作捕获设备获取的表情数据进行人脸表情动画生成.输入的人脸图像首先被矢量化,并随之对人脸五官区域进行划分;进而将捕获得到的二维人脸表情数据重定向到卡通人脸矢量图上;最后使用移动最小二乘[1](movingleastsquares,MLS)算法对矢量人脸的面部及五官进行变形,以自动合成与原始表情数据类似的卡通人脸动画.

1相关工作

现有的人脸表情动画制作技术主要分为以下几类:1)基于关键帧插值的动画制作技术.动画师制作若干关键帧表情,通过差值生成2帧之间的过渡帧,这类方法被称为关键帧差值方法.传统的二维卡通动画制作大多采用这类方法,其优点是简单、便捷,有经验的动画师通过制作高质量的关键帧就可以做出较生动的卡通动画;同时作为许多前沿的动画制作技术的基本框架[2],它有很强的兼容性.但这类方法的效果依赖于关键帧的质量和数目,对动画师的经验要求较高,也无法生成较为复杂的人脸表情变化.2)基于参数化的表情动画制作技术.此类方法将人脸表情抽象成若干不同的参数,用户只需要调整参数即可实现不同表情之间的变化.最常用的参数化方法有面部动作编码系统[3](facialactioncodingsystem,FACS)和MPEG-4[4]的人脸动画驱动方法.此类方法在组合的参数相互之间产生冲突时大多缺乏调度机制,导致表情不自然;同时为了得到某一个特定的表情需要调整很多参数,这需要烦琐的手工调试.3)基于混合模型的表情动画制作技术.此类方法在三维动画中被广泛应用,其思路是不考虑人脸的物理属性,而是直接采用一组三维表情模型(即变形目标)来定义一个线性空间,新的人脸表情由这组模型的线性组合来构成[5-6].此类方法直观方便,但缺点是变形目标的创建过程复杂,需要大量艺术家的工作;且当变形目标的数量较大时,模型线性组合系数的人工调整会较烦琐,致使动画师难以实现制作意图.4)基于表演驱动的表情动画制作技术.此类方法是请演员来表演一段表情,然后使用这段表情数据来驱动卡通形象做出相同的表情.捕获表情的过程又分为使用动作捕获设备捕获表情和普通表情视频驱动2种类型,前者驱动的动画较为生动形象[7-8],而后者的优点在于数据捕获更加方便快捷[9-10].该类方法较为高效,且能够生成相对形象的表情动画,因此其在表情动画制作中的应用日益广泛;但其运动数据与人脸模型融合的步骤仍然需要大量的人工干预.相对以上卡通动画制作方法,本文提出的卡通人脸合成方法主要具有高效性和易用性的特点.在整个驱动流程中,除指派轮廓线到特定的面部器官和在卡通表情上设置相应的特征点这2个步骤需要用户交互以外,其余部分都可以自动实时完成,因此只需动画师制作一张静态人脸的卡通形象,以及演员在镜头面前表演相应表情,即可快速地生成表情动画.整个算法流程图如图1所示.

2卡通人脸矢量化

输入的卡通人脸图像一般有位图和矢量图2种形式.相对于位图,矢量图可以在后续变形中被直接方便地使用,且存储效率较高;此外,矢量图也有利于处理噪声、修正量化误差,从而提高编辑效率和实际变形效果.本文方法以矢量图作为卡通人脸表情动画合成的输入,所以当用户提供的卡通人脸为普通图像时,需要预先对其进行矢量化.此外,在矢量化人脸的基础上,还需要将矢量图中的曲线集合指派给不同面部器官,从而实现对不同面部器官分别进行驱动变形的目的.卡通人脸图像矢量化一般由轮廓提取与跟踪、轮廓特征点抽取以及轮廓矢量化3部分工作构成.关于这方面的研究已经有很多,如文献[11-12]等.本文基本采用文献[12]描述的矢量化流程,并将面部五官指派的步骤整合在轮廓跟踪中进行,其流程如图2所示.

2.1轮廓抽取与五官轮廓指派

由于卡通人脸及五官轮廓一般比较清晰,图像构成色块明显,因此只需将原始图像转化为灰度图像,即可采用边缘检测算法提取其轮廓.本文使用Canny边缘检测算法进行轮廓提取;为了消除该算法产生的噪声,在进行下一步工作之前还需进行数学形态学的膨胀和骨架抽取操作,这样既可以保证得到的边缘信息不失真,又达到了消除细微噪点的目的.图3展示了轮廓抽取以及五官指派的结果,其中轮廓跟踪的结果已区分,不同的面部器官分别保存.图3轮廓抽取和五官指派结果为了利用表情捕获数据驱动人脸五官,需要将每条轮廓指派给某个特定的面部器官(包括脸、眼镜、眉毛、鼻子、嘴),这个步骤可通过用户手动操作来完成.在用户选取了某条轮廓上的点时,系统将以此点作为根节点来跟踪轮廓,并将跟踪得出的轮廓赋于相应的面部器官.轮廓跟踪采用常用的像素八邻域搜索算法,即在当前点的八邻域中搜索下一个点.但由于骨骼抽取后的边缘可能存在“双重边”(既宽度为2的边),所以本文对像素八邻域搜索算法加以调整:即在得到每个新点之后,将其八邻域全部标记为“已检测”,然后在八邻域外的区域搜索下一个边界点(如图4所示,图中黑色部分为特征边缘.标记Vi的像素为被识别的边界;标记C的像素为标记为“已检测”的像素;“双重边”如(1,2)、(1,3)、(2,2)和(2,3)).由于骨骼抽取后的边缘宽度最大为2,所以该算法可以避免由双重边导致的搜索回溯甚至搜索中止,其具体步骤如下:Step1.建立辅助矩阵M,以保存每个点是否已访问,将M初始化为FALSE.Step2.由用户选取曲线上某点作为根节点.Step3.初始化搜索尺度s=1,以当前节点为中心、边长为2s+1按照顺时针方向搜索正方形边上的点(当s=1时,此正方形边上的点代表节点的八邻域).a)当搜索到一个边界节点时,检测其已访问性;若已访问,则继续进行搜索;若未访问,则将此点加入边界点列数组中,并将其八邻域内各个点均设为已访问,然后将此点作为根节点重复Step2;b)若未搜索到下一节点,则认为遇到断边沟,将s+=1重复Step2;Step4.当搜索尺度s大于一个特定值,则循环结束,此时的边界点列数组即为跟踪所得的边界轮廓.

2.2轮廓特征点抽取与矢量化

通过轮廓抽取与轮廓跟踪步骤得到的轮廓是细密排列的边界点列,需要在这些轮廓点中抽取特征点作为锚点,再经过曲线拟合得到与原始图像相近的矢量化结果.本文采用曲线简化算法经过轮廓特征点抽取,原始曲线被处理为一系列特征点的集合,这些点反映了原始图像的边缘信息.下一步需要基于特征点集合对原始人脸图像中的轮廓边缘信息进行矢量化,即曲线拟合.本文采用Bézier曲线来拟合原始轮廓边缘,Bézier曲线拟合出的是经过所有特征点的光滑曲线,这可能与原始图像有一定的出入,但一般情况下,这种误差是可以接受的.部分卡通人脸图像矢量化结果如图6所示.

3表情重定向及驱动

3.1表情数据捕获

在实验中,本文利用自主研发的近红外光学运动捕获系统来采集二维表情数据,其硬件设备为一台或多台近红外高速摄像机;该系统能够通过对粘贴与人脸表面的特殊反光材质标记点进行自动捕获与跟踪.由于近红外摄像机成像时能够过滤掉除近红外光线外其他频谱的光线,且粘贴与人脸表面的反光标记对LED近红外光源发出的光线具有非常高的反射率,因此能够很容易地获取二维人脸表情数据.图7所示为系统所采用的近红外摄像机及表情捕获结果的截图.

3.2表情重定向

从某个演员面部采集得到的表情数据并不能直接用来驱动动画师预先绘制好的卡通人脸图像,因为源人脸(真实演员人脸)和目标人脸(卡通人脸)在形状甚至结构上都会有所差异,如果直接用源人脸表情数据对卡通人脸进行驱动,则会造成卡通人脸形状的较大失真与风格丢失.基于以上理由,在表情驱动绘制之前需要对表情数据进行重定向,其大致思路如图8所示.

4实验结果

本文实验中在人脸上共使用图9所示20个标记点,分别位于下颌、下嘴唇、左右嘴角、上嘴唇、左右颧骨、左右鼻翼、眉心、双眼的上下边缘、左右眉的两端,以及左右眉的上部.本文采用自行研制的近红外光学运动捕获系统以60帧?s的帧速率、320×240的分辨率捕获一系列具有代表性的表情数据获取二维表情数据,包括惊讶、瞪眼、挑眉和沮丧等.在驱动面部表情变形时,针对某一面部器官,使用特定的某些标记点来驱动.表1所示为每个面部器官对应的驱动点列表.本文采用的捕获系统运行于Windows7平台,计算机配置为Pentium?Dual-CoreCPUE5300@2.6GHz,内存为2GB.在整个实验过程中,除了人脸器官指派与重定向首帧标注需用户手动交互外,其余步骤均能自动完成.最终生成相应的表情特征视频,图10所示视频截图.

5总结与讨论

本文详细描述了使用动作捕获设备来驱动二维非真实卡通表情的一个较为完备的过程,整个过程除有两处需要用户交互以外,其余部分都可以自动、实时地完成,得到的结果可以满足一般动画制作的需要.对于需要更加细致表情表现的动画制作需求,在不要求纹理细节的非真实卡通表情的范畴内,可适当增加标记点的设置个数来满足需求,因此,此流程有一定的拓展性.此外,对于非真实夸张风格的表情需求,可以结合论文文献[14]方法对捕获的表情数据进行LoG滤波,从而用演员非夸张的表情数据模拟卡通人物夸张的表情.但此流程也有明显的不足:

1)其受限制于矢量化技术,第2节叙述的矢量化方法仅仅适用于纹理简单的位图的矢量化,对较复杂的位图可能不能正常的工作:事实上目前仍没有完备的位图矢量化算法.

2)其仅能处理卡通人脸正面表情的变化:由于输入缺少深度信息,因此无法建立三维数据模型,亦无法处理非正面的卡通人脸的情形.下一阶段可以考虑用一些自动或者半自动的方法自动生成表情数据的深度信息,这样用户只需提供在某一时刻卡通人物的面部朝向,既可将此方法生成出的卡通表情动画移植至任何动画片段中,而不是仅仅拘泥于正面的表情动画的生成.