基于局部特征和整体特征融合的面部表情识别
2008-10-09
作者:刘 松 应自炉
摘 要: 提出融合局部特征和整体特征的方法实现人脸" title="人脸">人脸面部表情特征的提取。在每一个人脸图像上测量10个距离,把这些距离标准化后作为局部表情特征,用Fisher 线性判别提取面部表情的整体特征;为了解决小样本问题,采取“PCA+FLD”的策略,先通过PCA把人脸图像向量投影到一个较低维的空间,再通过标准的FLD提取表情特征。融合后的特征输入到基于反向传播的前向型神经网络进行分类。在耶鲁大学yaleface数据库和日本ART建立的日本女性表情数据库(JAFFE)上实验,得到令人满意的结果。
关键词: 局部特征 整体特征 表情识别 FLD PCA 神经网络
随着人机交互研究的深入和巨大的应用前景,人脸面部表情识别已经成为当前模式识别和人工智能领域的一个研究热点。在过去几十年内,研究者已经提出了很多用于面部表情识别的方法[1]。目前的人脸面部表情识别方法可以分为两种:基于局部特征和基于整体特征的。基于局部特征的人脸面部表情识别是利用每个人的面部特征(眉毛、眼睛、鼻子、嘴巴和面部轮廓线等) 的位置、大小及其相互位置的不同进行特征提取" title="特征提取">特征提取,达到人脸面部表情识别的目的。基于人脸整体特征的识别是从整个人脸图像出发,提取反映人脸整体的特征实现人脸面部表情识别。基于局部特征的方法很大程度上减少了输入的数据,但是用有限的特征点" title="特征点">特征点来代表人脸图像,一些重要的表情识别和分类信息就会丢失。为了弥补局部特征的这些不足,本文用 Fisher 线性判别提取面部表情的整体特征,然后通过局部特征和整体特征的融合来提高识别率。Fisher准则函数就是为了发现这样的投影方向,使得样本类间离散度和样本类内离散度的比值最大。换言之,就是在这样的投影方向,同一个类的样本聚集在一起,而不同类的样本相对比较分散。
1 面部表情特征的提取
1.1 局部特征的提取
人脸由眼睛、鼻子、嘴巴、下巴等部件构成,正因为这些器官的形状、大小和相对位置的各种变化才使得人脸表情千差万别。因此对这些器官的形状和结构关系变化的几何描述,可以作为人脸表情识别的重要特征。最早,研究人员利用人脸特征显著点导出一组用于识别的特征进行人脸及其表情识别[2] 。本文在人脸图像上标记24个面部特征点,如图1所示。
由这24个面部特征点形成12个测量距离" title="测量距离">测量距离,距离与面部特征点之间长度的对应关系如表1。表1中tij表示面部特征点i和j之间的直线长度,di表示第i个测量距离。
由这些测量距离归一化,即按照下式形成表征面部表情的特征:
1.2 整体特征的提取
Fisher线性判别(FLD),也称为线性判别分析 (LDA),是基于样本的类别进行整体特征提取的有效方法,在模式识别中有着广泛的应用。设训练样本集共有N 个训练样本{x1,…,xN},分为c类{x1,…,xc},每一类的均值为: μi=xk;总均值为:μxk;第i类样本的离散度矩阵为:
由于最多只有c-1个非零广义特征值,因此m的最大值为c-1。
在人脸面部表情识别研究中,所面临的一个问题是小样本问题,即用于训练的图像数目N是远小于每幅图像的像素数目。本文采用“PCA+FLD′策略,先将训练样本的人脸图像向量投影到一个较低维的空间,使类内分布矩阵为非奇异的。可以通过PCA将特征空间降为N-c维,然后通过标准的FLD 将维数降为c-1。通过PCA将人脸图像投影到N-c维特征空间:
需要指出的是, Wpca的优化是基于由正交列向量组成的n×(N-c)维矩阵,而Wfld的优化是基于由正交列向量组成的(N-c)×n维矩阵,在计算Wpca时只丢掉了最小的c-1维主成分向量。
2 前向型神经网络
本文用基于反向传播算法的前向型多层神经网络识别人脸面部表情,为了更好地提高人脸面部表情的识别率,如何优化设计网络结构和参数是关键。对于网络的大部分参数,采取实验修正的方法进行确定。本文采用的网络结构为三层:输入层有15个输入单元对应融合后的表情特征,隐含层用10个神经元,网络的输出用两个神经元代表两位二进制数表示不同面部表情。基于反向传播的前向型神经网络的基本思想是据样本集S={(x1,y1),(x2,y2),…,(xs,ys)}中的每一个样本(xk,yk)逐一计算出实际输出Ok的误差测度El,对W(1),W(2),…W(L)各做一次调整,重复此循环,直到ΣEp<ε。
用输出层的误差调整输出层权矩阵,并用此误差估计输出层的直接前导层的误差,再用输出层前导误差估计更前一层的误差。如此获得所有其他各层的误差估计,并用这些估计实现对队矩阵的修改。形成将输出端表现的误差沿着与输入信号相反的方向逐级向输入端传递的过程。
本文采用基于随机梯度下降版本的BP算法完成人脸面部表情的分析与识别。具体的算法描述如下:
(1)初始化,初始化所有网络权值为小的随机数。
(2)直到终止条件do
{
对于每一个训练样本
do 把输入向前传播到网络并计算被考察的输出
按下式计算误差,并把误差反向传播:
对于每个网络输出单元k,计算其误差量δk=ok(1-ok)(tk-ok)
}
结束
3 实验过程和结果
在两个数据库上进行实验,从耶鲁大学的yaleface数据库中选取60幅人脸图像作为实验样本,共15个人,4幅/人,其中训练样本56幅,14个人;4幅/人;测试样本为剩下的4幅图像,1个人,4幅/人,通过随机变换训练样本和测试样本,重复15次这样的实验。从日本女性表情数据库中(JAFFE)选取120幅图像作为实验样本,共10个人,12幅/人,其中80幅图像作为训练样本,10个人,8幅/人;测试样本为40幅图像,10个人,4幅/人。通过随机变换训练样本和测试样本,重复12次这样的实验。人脸面部表情识别的步骤如下:
(1)图像的预处理。文献[3]指出人脸识别" title="人脸识别">人脸识别的对象应该是纯脸(pure face),而不应包括头发、肩膀和背景等不相关的数据。如果待识别的人脸图像中含有这些非纯脸的信息,很有可能是这些信息对决策起关键作用,也不再是真正意义上的人脸识别。因此本文首先用人工的方法,对图像做纯脸部分的分割形成50×60的图像。然后对纯脸图像进行标准化和归一化处理,以便表情特征的提取和面部表情的分析与识别。
(2)局部特征提取。首先在面部标记24个面部特征点,如图1;然后按照表1的关系得到12个测量距离;最后按公式(1)把这些测量距离标准化后形成12维向量作为表征人脸面部表情的特征。
(3)整体特征的提取。用Fisher线性判别提取面部表情特征,关键是如何解决小样本问题,本文采取“PCA+FLD”策略。在耶鲁大学yaleface数据库上用m=N-c=52维特征向量构造特征子空间。在JAFFE上用m=N-c=76维特征向量构造特征子空间,其中N为训练样本数目,c为类别数;然后FLD变换到c-1=3维特征空间作为表示面部表情特征的一部分特征。
(4)特征融合。本文表征面部表情特征的局部特征与整体特征融合在一起,形成15维特征,,把X输入到神经网络的输入层。
(5)表情识别。本文用15×10×2基于反向传播的前向型神经网络进行人脸面部表情的分析与识别。对于网络参数,例如隐含层神经元数目等本文采取实验修正的方法。表2和表3分别是yaleface 数据库和日本女性表情数据库(JAFFE)上的识别结果。
参考文献
1 Maja Pantic,Leon J. M .Rothkrantz. Automatic Analysis of Facial Expressions: The State of the Art, IEEE Trans. On Pattern Analysis and Machine Intelligence, 2000;2(12)
2 T. Kanade. Computer recognition of human faces. Basel &Stuttgart:Birkhauser Verlag. 1977
3 Li-Fen Chen. Why recognition in a statistics-based face recognition System should be based on the pure face portion: a probabilistic decision-based proof. Pattern Recognition, 2001;34(1):1393~1403