4.2.4 表情的计算机自动识别
理解他人情绪对社会交互十分重要,但一方面人的情绪十分复杂,识别并不容易;另一方面,如果要同时识别多人的表情,这对人而言是一个十分困难的任务,但这对于实时了解人们内心真实活动或潜在意图具有重要作用。由于对他人表情进行识别具有非常重要的实用价值,计算机科学家一直以来试图开发出能自动对人类面部表情进行识别的机器。近年来,机器学习(machine learning)[1]领域的研究获得了较大进展。这使得表情的自动识别,特别是面部表情的自动识别得到了蓬勃发展。目前,自动面部表情识别算法已经具备了一定的可靠性和准确性,原本仅存在于实验室中的各种自动表情识别算法已经开始逐步走向商业化的应用(如一些数码相机厂商、手机厂商已经开始在相机中内置微笑检测程序)。然而,目前的自动表情识别算法,离完全实现商用尚有一定的距离,例如,面孔检测与追踪(face detection and tracking)算法目前还仅能较好地处理白人与亚洲人在较好光照条件下的正面面孔,在其他情况下(例如黑人)算法的性能则会大幅下降;表情识别算法针对人为的表情(posed expression)具有较高的识别率,但还无法准确识别在自然状态下进行正常人际沟通时出现的自发表情(spontaneous expression);大多数程序仅被设计用来识别单张的静态表情图片,这使得算法在面对动态的且表情强度较低的表情视频时性能低下。目前,自动面部表情识别领域的研究者们正在对这些问题进行改进,以期实现真正实用的自动表情识别系统。
无论研究者最终采用何种技术,自动面部表情识别系统的系统框架基本上是固定的。一个典型的自动表情识别系统的执行步骤如下:
1) 面孔检测与面孔追踪。该模块负责寻找在视频中面孔的所在位置,并对包含面孔图像的合适图像区域予以提取。通过对面孔进行检测和追踪,模块去除了面孔的位移信息,对系统的信息输入进行了限制,从而提高了系统的处理速度。
面孔检测(face detection)与面孔追踪(face tracking)其实属于不同的技术。面孔检测忽略了不同图像在时域上的相关信息,独立地对图像中的面孔进行定位,可以很方便进行并行化处理,但对面孔位置与数量的突然变化不敏感,而且不存在误差积累问题。其中,Viola和Jones(2004)实现的基于haar小波与adaboost算法的层级构架的面孔检测算法堪称面孔检测领域的经典。该方法可实现对面孔图像的实时检测,且具有一定的鲁棒性。
面孔追踪方法利用图像间的信息关联来对面孔在图像中的位置进行持续的追踪。本质上面孔追踪方法是利用图像间的差异来对面孔所处的位置进行推断。由于该方法利用面孔图像序列在时域上的信息,相对于面孔检测方法,这些方法具有在速度与准确性上的优势。然而,这样的方法存在误差积累的问题,除非受到周期性的修正,否则追踪时产生的误差会逐渐扩大,这很容易导致算法大范围偏离追踪目标,最终变成在不存在面孔的区域反复不断地执行搜索面孔的操作。例如,近年来受到较多关注的AAM(active appearance model;Cootes,Edwards & Taylor,2001)和CLM(constrained local model;Baltrusaitis,Robinson & Morency,2012)等均存在这样的问题。
鉴于面孔检测与面孔追踪算法各自的特点,也有一些研究者开始尝试将这两种方法结合起来提高该模块的性能与速度。例如,研究者用面孔追踪方法对短时间内的面孔视频进行处理,以提高速度;然后利用面孔检测算法周期性地对面孔追踪的误差进行修正,并处理视频中其他一些突然移进与移出视野的面孔(Morency,Whitehill & Movellan,2010)。
2) 面孔配准(face registration)。在系统成功提取出面孔图像后,将执行面孔配准操作。该模块主要对提取出的面孔图像进行标准化,包括光照归一化、尺寸归一化等。除此外,该模块还主要负责对图像进行对齐操作。提取出的面孔图像会根据几个重要器官或特征点的位置进行对齐,来减少面孔由于运动和姿态等带来的误差,从而方便系统进行有效的特征提取。面孔配准模块具体执行哪些操作,与系统采用的特征提取方法等有关。特征提取方法分辨率越高,对表情越敏感,往往对面孔配准的要求就越高。特征提取方法越具有不变性,对面孔配准的要求就越低。例如,AAM方法即可用于面孔配准。
3) 特征提取(feature extraction)。在该模块,系统主要提取的是面孔中那些与表情有关的几何形状信息(如面孔中五官的相对位置)以及表情运动带来的面部外观变化信息(如面部表情对面部纹理带来的变化等)。进行特征提取的方法可以表达为图像像素值的函数,这种函数又被称为过滤器组(filter bank)。若该函数的定义域是单张静态图像的像素值,则我们把这种特征提取方法称为空域过滤器(spatial filter),将过滤器提取出来的特征称为空间特征(spatial features)。若该函数的定义域是连续的视频帧,则我们把这种特征提取方法称为时空过滤器(spatial-temporal filter),将这种过滤器提取出来的特征称为时空特征(spatiotemporal features)。
4) 分类(classification)。分类模块使用机器学习的方法,对面部特征进行分析,得到表情最终所属的表情类别,或选择输出相应的后验概率和表情强度值等等。常用的机器学习方法包括SVM(support vector machine),boosting算法(如Adaboost或Gentleboost)、K近邻(K nearest neighbors)、多元logistic回归(multivariate logistic regression)、多层神经网络(multi-layer neural network)等。
对于机器学习算法的选择,依赖于研究者对特征提取方法的选择。研究显示,机器学习算法与特征提取方法之间会有较强的交互作用,从而直接影响算法的最终性能(Whitehill,Littlewort,Fasel,Bartlett & Movellan,2009)。由于对特征的选择往往取决于研究者本身的先验知识,而这样的表征往往不能完整包含对识别有用的信息,也不一定与所采用的机器学习方法相适应,近年来一些研究者开始尝试省略特征提取步骤,模仿人类大脑对信息的表征方法,利用深度学习的方法(deep learning)自适应的让神经网络形成与分类有关的特征,从而一次性解决特征提取与机器学习的问题(Hinton,Osindero & Teh,2006)。
5) 可选步骤:时间信息整合(temporal integration)。研究者可在时域上对分类器输出的信息进行整合,例如整合表情强度随时间的变化信息,在更抽象的层面进行进一步的数据分析,以此来对人的其他内部状态信息进行推断,例如:是否感觉疲劳,注意力是否集中,是否在进行欺骗等。时间信息整合的方法包括两种,早期整合与晚期整合。早期整合在特征选择阶段执行,该方法被基于时空过滤器的特征提取方法所包含。而晚期整合方法则在分类步骤之后执行。研究者通过对分类器输出的信息进行二次机器学习,来对面部表情在时间上表达出的模式进行学习,从而判别出人的内部状态,例如,人是真实感觉疼痛还是在伪装疼痛等(Bartlett,Littlewort,Frank,& Lee,2014)。

来源:Wu,Shen & Fu(2011).
上述五个步骤间具有一定的独立性。例如,研究者可以直接用更加准确的面孔检测与追踪算法替代其原有算法来提高系统性能。但在实际应用中,若系统中某一模块被替换,在大多数情况下研究者需要对系统进行重新训练。其中,特征提取方法被认为是自动面部表情识别中最重要的步骤。自动面部表情识别算法的整体设计往往由研究者对特征提取方法的选择而定。
自动面部表情识别算法大多针对的是人为表情。然而,人为表情与人在真实情境中出现的自发表情存在很大的差别。人为表情多在实验室条件下诱发,模特在主试的要求下,按照要求摆出“高兴”、“悲伤”、“惊讶”等表情。人为表情的表达主要由大脑的运动皮层控制,属于随意运动。脑的皮层下区域不随意产生的表情,称为自发表情。对微表情这种自发表情进行识别具有特别的应用价值(吴奇等,2010)。微表情可以反映人们真实的内心情绪,因此微表情有可能成为解读人类真实意图及真实情绪状态的重要窗口。
目前,有部分研究者开始尝试对微表情进行自动识别。例如,Polikovsky,Kameda和Ohta(2009)提出了一种利用3D梯度方向直方图(3D gradients orientation histogram)提取面部运动信息的方法,该方法能够表征动作单元(AU,参见Ekman & Rosenberg,1997)的不同时相,因此这种方法为微表情的自动识别提供了可能;Shreve,Godavarthy,Goldgof & Sarkar(2011)提出了一种新的表情视频分割方法。他们利用光流(optical flow)来计算光学应力(optical strain),实现了对普通表情和微表情视频的分割;Pfister,Li,Zhao和Pietikainen(2011)通过以LBP-TOP为特征提取方法,以机器学习的方法构造最终的分类器(如SVM,MKL,random forest等),实现了对视频中的微表情进行有无以及正负判断的目标;Wu等(2011)以gabor小波为特征提取方法,以GentleSVM为分类器,实现了一个对视频中的六种微表情进行自动识别的微表情识别算法;Wang,Chen,Yan,Chen,和Fu(2014)提出了一种张量子空间辨别分析(discriminant tensor subspace analysis)的降维方法,通过将之与ELM(extreme learning machine)相结合,提出了一种对已分割好的视频中的微表情进行识别的方法。
除了大量的面部表情自动识别研究外,一些研究者也开始研究姿态表情的自动识别(Bernhardt & Robinson,2007;Gunes et al.,2012),Janssen等(2008)使用人工神经网络并利用了动力学(kinetic)和运动学参数分析了两个实验中被试的步态(gait)。第一个实验试图从被试的步态中分析其情绪状态(高兴、悲伤、愤怒、平静);第二个实验则分析听不同类型的音乐(振奋的、恬静的,无音乐做对照)对行走中的步态的影响。结果发现不依赖主试的主观评定,计算机通过分析步态特征对情绪状态的识别可以达到几乎100%的正确率。
对语调表情的自动识别也得到了众多研究者的关注,通常语调表情的识别分为两个部分,第一部分是训练阶段,通过对数字化的语调表情进行特征抽取,根据特征向量进行建模并形成情绪类型数据库;第二部分是识别阶段,对待识别的语调表情进行特征抽取,将抽取的特征向量与训练阶段形成的数据库进行比较,求得两者的相似性分数,再根据这一分数进行判断(陈育得,2008)。
计算机自动表情识别可以在人机交互、公共安全、司法、移动互联网和娱乐等领域得到大量应用,但要想真正将自动面孔表情识别方法实用化,其算法一定要能够处理诸如头部运动、局部遮挡、复杂光照等带给面部图像的影响。在自动表情识别领域,实现一个与人无关、与观察角度无关的鲁棒的自动表情识别系统依然是研究者面临的一个重大挑战。
[1] 有关机器学习的知识可参加在线免费课程“机器学习”,网址:http://www.courera.org/learn/machine-learning.






本书评论