人脸表情识别包括三方面的内容:人脸检测(定位),脸部表情特征提取,表情分类。
人脸表情分析系统的输入图像主要分为两类,一类是简单背景下的人脸图像,一类是在任意复杂背景下的人脸图像。目前大多数系统所使用的都是前一类图像,而实际应用中的图像多为复杂背景的图像,而对此问题目前还没有找到完美的解决方案。目前已经有的技术可以检测到一幅图像中只有一个人脸的,也可以检测多个人脸的(比如OpenCV的人脸检测算法能比较准确的找出人脸所在的位置)。但是当人脸信息不完整时,检测效果如何,可等考证。比如人脸部分被遮挡的情况下,或者是人脸有大角度偏转时,如何检测人脸应该是一个有较大难度的问题。在大量的文献中描述了各种各样的人脸检测算法,主要包括:主元分析(PCA),神经网络,几何模型,(可变形)模板匹配,运动提取,彩色分析等[1][2]。其中基于神经网络的方法需要大量的训练样本,而一些基于特征的算法可以实现非正面人脸的检测,其它算法在某些特定的条件下也有优良的表现。
人脸表情特征的提取的算法大致可以分为两类:一类是基于特征的算法,一类是基于模板的算法。基于特征的算法通常都是对几个脸部特征点,及其周围一小块邻近区域的信息的提取,用这些获取的信息进行脸部表情的分类,主要有主动外貌模型(Active Appearance Models)[3][6],FAP提取,光流计算法等。Ekman and Friesen提出了Facial Action Coding System (FACS)[4],它是一种基于面部运动单元(AUs)描述的面部表情编码方法。基于模板的算法是把一个整体的人脸模型与图像中的人脸进行匹配,或者在序列图像中对人脸的运动变化进行跟踪。这种算法的计算量通常很大。对面部特征点的选定,目前以手工标识为主,目标是设计出自动提取算法。在特征提取中,可以分为两种方法,一种是手工标识特征点,一种是自动找寻特征点。在手工标识中,这个标识的过程也就默认的包含了人脸定位的过程,而标识出特征点,相当于就提取出了当前这幅图像的表情特征(经过一定的运算,较为简单);而当前研究较多的是特征点跟踪问题,跟踪有多种方法,像光流,AAM等,但跟踪过程中也会出现一些问题,比如特征点跟踪丢失如何恢复等,在所看到文献中没有得到解决。另一种是特征点的自动标识,这个问题比较复杂,有小部分文献中谈及这个问题,但都没有很好的解决。它的前提是人脸检测,然后是器官检测(比如眼睛,嘴巴等),检测到一个区域后,从这个区域中提取特征点相对就比较容易了,现在应用的主要有寻找图像中的转角。如果自动特征点技术比较成熟了之后,特征点跟踪变的没有必要了。
表情分类中涉及两个问题,一是情感类型,二是分类方法。情感一般认为分成六类,即高兴、愤怒、厌恶、恐惧、悲伤、惊奇,但模型如何建立仍无统一理论。表情分类的方法也很多,现在主要应用的有以下一些:(1) 基于模板的分类方法[5];(2) 基于人工神经网络(ANN)的分类方法[7];(3) 基于隐马尔可夫模型(HMM)的分类方法[9];(4) 基于概率论的贝叶斯分类方法;(5) 基于模糊规则的分类方法等。