人脸面部表情自动生成系统

更新时间:2024-03-18 作者:用户投稿原创标记本站原创 点赞:18111 浏览:81491

摘 要:详细介绍开发一个人脸面部表情自动生成系统所用到的相关技术,包括人脸三维建模、面部表情合成、系统用户界面实现等技术.系统开发的目的是建立一个具有真实感和实用性的三维人脸面部表情自动生成系统,其中,三维人脸建模技术包括3DMAX使用关键技术以及人脸特征提取技术,基于人脸建模的表情生成技术主要介绍通过肌肉运动来描述表情的技术,系统界面的设计采用MFC技术.对各技术全面而系统的介绍,将为人脸面部表情自动生成系统的开发与实现提供一个有效途径,为系统的应用者提供便利.

关 键 词:面部表情;三维建模;表情合成

中图分类号:TP391文献标识码:A文章编号:1009-3044(2013)04-0858-03

ResearchandDevelopmentoftheFacialExpressionAutomaticallyGeneratedSystem

ZHANGLi-li,LILing-hua

(CollegeofComputerScienceandEngineering,DalianNationalitiesUniversity,Dalian116600,China)

Abstract:Thetechniquesusedindevelopingahumanfacialexpressiongenerationsystemareintroducedindetail,whichincludethetechniquesof3Dfacemodeling,facialexpressionsynthesis,systemuserinterfaceimplementandetc.Thesystemwasdevelopedtocreatearealisticandpractical3-Dautomaticfacialexpressiongenerationsystem.Wherein,thetechnologyof3Dfacemodelingincludesthekeytechniquesofusing3DMAXandthetechniquesofthefeatureextractionoffacial.Thetechnologyoffacialexpressiongenerationbasedonhumanfacemodelingiainlyintroducedbythetechniquesusedtodescribetheexpressionbythemovementsofthemuscles.ThedesignofthesysteminterfaceusedtheMFCtechnology.Itwillprovideaeffectivewayforthedevelopmentandimplementofthefacialexpressionautomaticgenerationsystemsandfacilitieorthesystems’usersbytheprehensiveandsystematicintroductionofallthetechniquesusedinthesystems.


Keywords:facialexpression;3-Dmodeling;expressionssynthesis

本文主要工作是开发应用程序用户界面,输出人脸视频图像,对人脸的表情信息进行特征提取分析,按照人的认识和思维方式加以归类和理解,利用人类所具有的情感信息方面的先验知识使计算机进行联想、思考及推理,进而从人脸信息中分析理解人的情绪,实现六种基本人脸表情动作的自动生成,包括:快乐、惊奇、愤怒、恐惧、厌恶、悲伤等.该系统实现的关键在于建立一个人类的情绪模型,并把它们同人脸面部特征及表情的变化联系起来.项目基于心理学家对人脸解剖结构的深入分析所提出的人脸动作编码系统,其中包含46个基本人脸动作单元,结合各个独立的动作单元能够产生大量不同的脸部表情.

1人脸三维建模

采用3DMAX三维建模工具建立人脸模型,在VC++条件下使用OpenGL编程完成了3DMAX模型的读取与重现,再用OpenGL对其进行控制.对于三维建模工具数据量较大的情况,采用细节层次(LevelOfDetails)算法进行简化,删除不必要的边、线、面[1].

1.13DMAX数据文件的存储格式与读取

3DMAX默认的数据文件是*.max文件[2].*.max文件结构复杂,数据量庞大,不仅包括模型网格结构的点和面的信息,还包括模型的颜色等,读取比较困难.比较简单直观的文件存储格式是*.ASC.

1.2在OpenGL中读取3DMAX模型

在OpenGL中建立自己的数据结构存储数据,从模型中读取数据将其存储到OpenGL的程序中,建立起OpenGL的显示列表[3].

1.3关于简化网格算法

通过1.2得到的模型数据量是非常大的,不适合用作标准模型.要将这一模型进行简化,去除一些多余的点、边、面,以简化这一模型的网格数量.这里使用层次细节(LevelOfDetails,缩写为LOD)简化技术[4].这一技术通过动态地确定阀值来选取不同精度的LOD模型,降低场景的复杂度,以求得更合适的图像质量.

1.4人脸特征的提取特征可被视为由数据、规则方法和关系三类属性描述的面向几何的物体,特征参数化的关键是特征及其相关尺寸的变量化描述[5-7].在具体特征分类的基础上,确定结构特征的特征点,特征点的相互位置关系形成造型特征中的特征尺寸.修改特征尺寸的同时,对结构特征的其它点的位置和局部几何形状也进行了改变.根据人体头部的器官组成和外形特点,从建模的方便出发,将头特征分类为结构特征和造型特征.结构特征包含眼、鼻、嘴和耳;相应的造型特征有头高、头围、眼宽、眼高、两眼距、鼻宽、鼻高、鼻长、嘴宽、上下嘴唇厚、耳长、耳宽、耳厚等,头特征分类.我们在正面和侧面图像中定义了45个特征点来表征人脸的形状.手工设置特征点,然后进行参数化,得到了标准化的人脸模型.

2面部表情合成

采用MPEG-4的参数变化进行面部表情的合成,面部表情的分析与合成的研究主要集中于基本的情感,包括悲伤、愤怒、喜悦、恐惧、厌恶和惊奇.MPEG-4标准表示了一种关于面部表情建模和表达潜在的情绪的方法.利用在MPEG-4框架里以面部动画为目的的面部动画参数是与运动单元(AUS)密切相关的[8,9].运动单元包括核心的面部动作编码系统(FACS)[10-12].

2.1通过特定的FAPs描述基本表情

为了做到这一点,我们对面部肌肉运动进行翻译——通过肌肉运动来描述表情——FAPs,并为每个基本表情创建一个FAPs词汇[13].为描述基本表情所需的FAPs还通过分析基本数据集进行实验验证.为了与真实的表情序列进行比较,我们定义了特定功能点对应的面部表情形式的FAPs.选定的FAPs可以通过实时图像或视频序列自动检测.派生模型也可以作为表情分析和表情综合学科之间的桥梁.

在一般情况下,面部表情和情绪通过一套测量和转换加以描述.测量和转换可以考虑基于MPEG-4标准.在这种方式中,我们可以描述一个人的解剖面,基本上是通过FAPS以及动画参数,组独特的标记,消除指定的需要底层的几何拓扑结构[8].这些符号则可以被映射到自动检测的测量和对视频序列的运动迹象,因而通过人工合成近似真实的表情.

基本的面部表情和潜在的情绪,通过FAPs描述有以下几个目的:

1)提供合成序列的兼容性,创建与使用建议的方法,符合MPEG-4标准;

2)基本的表情很少发生,大多数情况下,情绪通过特别FAPs直接相关的几个离散五官的变化加以表示.此外,不同的FAPs可以被用在人机交互的多种语言环境中,即通过面部表情进行交互.

3)FAPs不符合具体型号或拓扑结构,合成表情可以由不同的动画模型或字符加以描述.

基本表情建模时,应解决两个基本问题:

1)估计形成该表情的FAPs;

2)定义FAP的强度.

面部动作编码系统(FACS)很大程度上影响表情分析的研究.利用面部解剖学的知识,FACS是一个试图区分视觉分辨的面部动作的系统.FACS使用运动单元(AU)为计量单位.AU能够结合两块肌肉运动或反向的方式工作,也就是分成几个肌肉的运动.

2.2所涉及的FAPs在每个模型中表达的估计范围的表情

这是通过分析实时图像和视频序列得以实现的.

情感分析和综合系统中的一个重要问题是关于面部表情形成的FAPs变化范围[8].从合成的角度来看,关于FAP的范围定义的研究已经展开.然而,所提出的变化范围是相当松散的,不能用于分析.为了给关于FAP的的实时视频序列一个特定的变化范围,我们分析了2个著名的数据集——埃克曼(静态)的以及MediaLab(动态)的数据集.这两个数据集套设置了用于形成极端情况下的表情,而不是通常的情况.然而,它们可用于设置特定表情的FAPs.然而,为了实现这一目标,通过面部运动点的FAPs建模是必需的.实时图像和视频序列的FAP变化范围的分析主要用于两个目的:

1)核实并定义每个基本表情的词汇;

2)为基本表情定义配置文件.

2.3中级表情模型

这是通过结合加以实现的,在一个以规则为基础的系统和一个激活参数与基本表情描述的FAPs框架.

在本节中我们提出一种创建中级表情配置的方法,用于描述相应情绪的视觉部分.由计算机科学家和工程师进行的处理除了基本情绪外的其他情绪的研究渗透到了其他的学科.心理学家研究了更为广泛的情绪集合,但对于计算机图形学和机器视觉领域只有非常少结论可供借鉴.其中Whissel的一项研究[8]中提到,情绪好比是空间中具有一定规模的点,其中最接近的有两个值:激活和程度.激活是与术语相关的兴奋程度.如平静为中指示的中间点,惊讶代表高度激活,害羞代表低度激活.程度是与术语相关的愉悦程度,例如羞怯的“动机”列代表负向,而高兴代表正向.从实际的角度来看,似乎程度要表达的主题和估计得到的情感能够一致是件很棘手的事.另一方面激活与面部肌肉的运动相关,并可以基于面部特征很容易估计到.

为创建中级情绪配置我们要考虑两种情况:

1)在自然界中,情绪与其中一个原型类似,例如,他们可能会有不同肌肉强度的动作;

2)不能被视为与任何原型的情绪.

在这两种情况下,我们按照以下步骤进行:

1)利用激活参数或Plutchik的角度测量作为推理有关的几个情绪的面部动作的强度的知识.这方面的知识与基本表情配置相结合,通过基于规则的系统,创建中级情绪配置.

2)动画绘制配置以检测所要求的情绪与视觉的相似性是否合适.

3程序用户界面

采用MFC技术设计一个包含悲伤、愤怒、喜悦、恐惧、厌恶和惊奇六种表情的按钮以及一个表情显示框的界面.我们采用GUI的设计模式,把表情变化的代码对应转换成C++形式,并嵌入在MFC中,在对应的按钮按下时候能产生相应的消息响应.3.1界面设计

首先建立一个MFC应用程序的工程,利用插件画出基本的界面图形,包含悲伤、愤怒、喜悦、恐惧、厌恶和惊奇六种表情的按钮以及一个表情显示框并设置相应的属性[14-15].

3.2消息及消息映射

Windows应用程序中的消息主要有三种类型.

1)窗口消息(WindowsMessage).这类消息主要是指由WM_开头的除WM_COMMAND之外的消息,例如WM_CREATE(窗口对象创建时产生)、WM_DESTROY(窗口对象清除前发生)、WM_PAINT(窗口更新时产生绘制消息)等,一般由窗口类和视图类对象来处理.

2)控件的通知消息(Controlnotifications).当控件的状态发生改变(例如,用户在控件中进行输入)时,控件就会向其父窗口发送WM_COMMAND通知消息.应用程序框架处理控件消息的方法和窗口消息相同,但按钮的BN_CLICKED通知消息除外,它的处理方法与命令消息相同.

3)命令消息(Commandmessage).命令消息主要包括由用户交互对象(菜单、工具条的按钮、快捷键等)发送的WM_COMMAND通知消息.

命令消息的处理方式与其他两种消息不同,它能够被多种对象接收和处理,这些对象包括文档类、文档模板类、应用程序本身以及窗口和视类等;而窗口消息和控件的通知消息是由窗口对象接收并处理的,这里的窗口对象是指从窗口类CWnd中派生的类的对象,它包括CFrameWnd、CMDIFrameWnd、CMDIChildWnd、CView、CDialog以及从这些派生类对象等.

4结束语

人脸表情的研究是一项艰辛而漫长的工作,但正因为这个,该工作的过程中才充满了欢乐.随着相关技术的不断发展和实际需求的日益增长,人脸研究相关技术越来越受到人们的关注和重视.对这一领域的深入研究不仅能创造出巨大的市场价值,还将有力地推动计算机视觉、模式识别、认知行为科学等相关学科的发展.

k:OxfordUniversityPress,2007:203-221.

[11]KrumhuberEG,TamaritL,RoeschEB,etal.FACSGen2.0animationsoftware:Generatingthree-dimensionalFACS-validfacialexpressionoremotionresearch[J].Emotion,2012,12(2):351-363.

[12]AminiR,YasurU,LisettiC.HapFACS1.0:Software/APIforgeneratingFACS-basedfacialexpressions[C].ProceedingsoftheACM3rdInternationalSymposiumonFacialAnalysisandAnimation,2012.

[13]孙延鹏,傅蓉,孙海伦.基于数据驱动的人脸动画合成技术的研究与发展[J].计算机工程与科学,2009,31(1):48-49,84.

[14]王玉顺,肖俊,庄越挺,等.基于运动传播和Isomap分析的三维人脸动画编辑与合成[J].计算机辅助设计与图形学学报,2008,20(2):1590-1595.

[15]杜志军,王阳生.单张照片输入的人脸动画系统[J].计算机辅助设计与图形学学报,2010,22(7):1188-1193.