基于Gabor小波和主成分分析的人脸表情识别*
2018-02-26金瑜成孙凯悦戚国亮黄佳杰朱浩威张石清
苏 岑,金瑜成,孙凯悦,戚国亮,黄佳杰,朱浩威,张石清
(台州学院 电子与信息工程学院,浙江 台州 318000)
0 引言
在日常生活中,面部表情是人类交流中除语言外非常重要的一种沟通方式,不仅可以表达情绪,还可以传递交流者的情感信息。人脸表情识别是指计算机通过自动提取人脸特征信息,实现人脸表情的分类过程。该研究在人工智能、智能人机交互以及机器人等领域具有重要的应用价值。
人脸表情识别一般包括三个基本步骤[1,2]:人脸预处理、表情特征提取和表情分类。其中,人脸预处理主要包括人脸的检测与定位。表情特征提取是从预处理过的人脸图像中提取出可以反映人类情感表达的相关特征信息。此外,为了避免提取的特征维数过高而出现的“维数灾难”问题,还需要进行特征降维。表情分类,则是将提取的表情特征输入到表情分类器中,通过训练和测试,从而实现表情类型的判别任务。
本文采用Haar特征[3]进行人脸检测,然后采用多个Gabor小波滤波器[4,5]提取人脸表情特征,并采用主成分分析(PCA)[6,7]对提取的 Gabor小波特征进行特征降维,最后输入到 K 近邻法(KNN)[8]分类器实现表情分类任务。在公开的JAFFE[9,10]表情数据集的试验结果表明了该方法的有效性。
1 人脸检测
人脸检测主要是指从预处理过的图像中找出人脸的大致区域,根据得到的人脸特征信息,像眼睛、嘴巴等,来确定人脸的位置。本文采用Haar特征[3]技术进行实时人脸检测,图1给出了人脸检测及预处理的过程。
图1 人脸检测及预处理
由图1所示,人脸检测及预处理过程包括:(1)利用Haar特征技术进行人脸检测,得到人脸的位置坐标;(2)根据检测到的人脸位置坐标信息,确定两眼的位置坐标,计算出双眼之间的距离;(3)统一将双眼中心之间的距离缩放到标准的55个像素大小,并裁切出一个大小为100'150的人脸图像。因为根据人脸构造的几何特点,人脸的宽度一般是双眼中心之间的距离的两倍,而人脸的高度约为这个距离的三倍。
2 表情特征提取
表情特征提取包括Gabor小波特征提取与主成分分析(PCA)的降维。
2.1 Gabor特征
Gabor小波滤波器[4,5]作为一种图像特征提取及表征方法,在图像识别、图像分析等领域得到了广泛应用。Gabor小波变换本质上是一种时空域与频域之间的局部变换,一般通过选择不同尺度与方向参数来对图像实行多尺度细化,就是通过利用一组尺度与方向不相同的Gabor滤波器与图像实行卷积运算。采用Gabor小波变换分析图像,类似于使用放大境去观察图像里纹理信息情况的变化,尤其是局部的关键位置(如眼睛、鼻子、嘴巴等)的变化,还能忍受一定程度上的图像姿态的变化与光照不均匀所产生的影响,且对环境因素带来的影响也具有很好的鲁棒性。
在图像处理的应用中,通常使用Gabor滤波器来做纹理信息方面的观察,而在空域上,往往利用高斯核函数和正弦平面波进行卷积来获得二维的Gabor小波变换,这属于自相似滤波器中的一种,一般由一个母小波通过平移和旋转获得。
Gabor核函数的公式中还有震荡函数部分,它的复数形式可表示为:
实部形式表示为:
虚部形式表示为:
由上述Gabor核函数的公式,可以得出:当与表情图像进行卷积运算时一般会出现复数响应,而不会出现光滑的峰值响应,尤其是图像的边缘区域,因为震荡响应不利于识别。幅值响应往往反映出信号们的局部能量谱。Gabor相位响应有着极度的不稳定性,哪怕图像上的像素值区域差不多,它们的相位却可能相差甚远,因此Gabor相位特征特别适合用来进行面部特征点上的定位参考,但不适合用于表达表情特征。结合上述两点,一般计算Gabor小波变换的幅值响应作为人脸表情图像的特征向量,如下所示:
2.2 主成分分析
由于Gabor小波变换提取的特征维度往往过高,因此需要进行特征降维处理。主成分分析(PCA)[6,7]是一种代表性的特征降维方法,通过计算数据的均方差大小来获取高维数据的主要特征信息,去除冗余信息。它的基本思想是,维度大的数据集往往是通过相关变量来说明的,但其中只有一小部分真正有价值的维度包含了主要的特征信息,所以它便将计算得到的数据里含了最大方差的那部分叫做主成分。
PCA算法的具体步骤,如下所示:
(2)计算协方差矩阵S:
(3)计算S的特征值γi以及特征向量vi:
将这些特征向量根据其特征值的大小来实行降序排列,那么m个主成分就表示了排序中排列在最前面的m个特征值相对应的特征向量。
3 分类器的设计
提取完人脸表情特征之后,需要采用设计一个表情分类器,实现表情类型的判别任务。本文采用基于样例学习的K最近邻法(KNN)[8]来实现,因为该方法计算简单,速度快,参数少。KNN的基本思想是寻找在特征空间中那些与待测样本距离最相近的K个领域样本,如果它们中有极大部分是归属于某一个相同类别的,则认为待测的样本也归属于这个类别。这个方法主要是通过分析最相近的若干个样本所属的类别去预测待测样本应属的类别。因此,KNN是一种基于距离的无监督学习算法。它常采用欧氏距离来度量样本的相似性,如下所示:
4 实验结果及分析
4.1 实验设置
为了测试所提出方法的性能,采用公开的JAFFE[9,10]表情数据集进行人脸表情识别实验。JAFFE数据库共有213副表情图像,由10位女性表情组成,其中每个人表达了7种表情:生气(anger)、高兴(joy)、悲伤(sad)、惊奇(surprise)、讨厌(disgust)、害怕(fear)以及中性(neutral)。每种表情有 2到 4幅图像,大小是256'256像素。实验时,选用每种表情的前两张图像用来训练,而剩下来的图像则用来测试,所以训练数据集一共有170张图像,而测试数据集则有43张图像。图2给出了JAFFE数据库中的表情图像样例。
图2 JAFFE数据库中的表情图像样例
将每张人脸表情图像100'150采样到32'32,然后采用5个尺度和8个方向上的Gabor滤波器组进行卷积运算,提取的Gabor图像特征维数一共为40960维(1024'40)。这个Gabor小波特征的维数非常高,需要采用PCA算法来对其进行降维。对于KNN分类器,取K=1。实验仿真平台的配置为Intel Core i5-4200U CPU,RAM 4GB,Windows7系统。实验中所提到的程序运行时间为程序从读入数据直到输出最后结果的总时间。
4.2 实验结果
实验一 仅考虑采用Gabor小波特征进行表情识别试验,实验结果如表1所示。实验时,Gabor小波特征考虑三种情况:原始的Data-Gabor(1024'40)、降采样因子为4时的Data-Gabor_4(256'40)、是降采样因子为16时的Data-Gabor_16(16'40)。其中,降采样因子用于对每个尺度和方向上的Gabor特征进行下采样,达到降低Gabor特征维度的目的。由表1可见,采用原始的Data-Gabor(1024'40)取得的人脸表情正确识别率最高,达到了86.42%,但所需的时间最长。而降采样因子越大,特征维度越低,所需时间越短,但人脸表情正确识别率越低,而且下降也很明显。
表1 仅采用Gabor小波特征的人脸表情识别结果
实验二 采用Gabor小波特征和PCA降维进行表情识别试验,实验结果如表2所示。对提取的三种Gabor小波特征,如Data-Gabor、Data-Gabor_4和Data-Gabor_16,分别采用PCA进行降维后处理。PCA降维的维度统一设为30、60、90。由表2可知:(1)PCA用于每一种Gabor特征降维时,人脸表情识别性能随着维度的增加而增大,在降维维度为90时表现最好。特别是,Data-Gabor降维到90时获得了89.52%的人脸表情正确识别率。(2)与表1相比,PCA降维之后的性能都相应地高于表1。这表明PCA用于Gabor小波特征降维处理的有效性。主要原因是PCA能够通过计算数据的均方差大小挖掘出高维Gabor特征数据中的主要成分信息用于人脸表情识别。
为了进一步说明每一种表情具体的正确识别率,表3给出了PCA用于原始Data-Gabor降维到90时所取得89.52%的识别结果的混淆矩阵。其中,对角线粗体数字部分表示各种表情对应的正确识别率,而其它数字表示错误识别率。由表3可知,生气、高兴、惊奇和害怕的正确识别率超过90%,其中生气的正确识别率最高,达到了96.67%。剩下的三种表情的正确识别率低于90%,其中悲伤的正确识别率最低,只有73.33%。主要原因可能是,这些表情与其它表情的特征比较相似,容易混淆。
表2 基于Gabor小波特征和PCA降维的人脸表情识别结果
表3 PCA在Data-Gabor上降维到90时所取得89.52%的识别结果的混淆矩阵%
5 结论
本文设计了一个基于Gabor小波和PCA的人脸表情识别系统。首先,采用Haar特征进行实时性人脸检测,然后选择适当的Gabor小波滤波器组提取表情特征,最后使用KNN分类器实现表情分类任务。该方法在JAFFE表情数据集能够取得89.52%的人脸表情识别性能。
本文识别的JAFFE中的表情图像都是邀请专业人士模拟而拍摄的,表情特征变化比较明显,而有些表情是发生在一瞬之间且特征变化十分不明显,称为微表情[11]。微表情往往是人类于不经意间表露出来的表情,它能够真实地映射出人类内心深处的情感变化,因此,开展微表情方面的研究将是人脸表情识别领域中的一个未来研究方向。