专利名称:基于判别分量分析的人脸表情识别算法的制作方法
技术领域:
本发明涉及ー种基于判别分量分析的人脸表情识别方法。
背景技术:
人脸表情是人类传播情感信息、协调人际关系的重要方式,通过对人脸表情的识别与信息分析,我们可以获得人类最直观的心理和情緒感受,进而依据人类的情感体验和心理状态,为人机交互与多媒体信息处理等领域的研究提供技术支持。近年来,人脸表情识别技术已经受到了国内外研究者们的广泛关注。2010年,上海世博会展出的可以识别笑脸的概念照相机就是人脸表情识别技术的一次精彩亮相。人脸表情识别的直接目的是判定表情的类别属性,取得较好的表情识别率。但是 在日常生活中,我们会发现人脸的若干表情之间存在着一定的相似性,美国心理学家PaulEkman博士指出生气与厌恶、恐惧和惊奇、恐惧与悲伤就是人类容易混淆的表情。无论产生表情相似性的原因为何,其直接后果就是使人脸的表情类别被算法误判,进而造成了识别率下降的严重后果。研究者认为“不受思维控制的,可能由情绪引发,也可能是习惯使然,持续时间短暂或面部肌肉收缩不充分的微表情”是解决该问题的直接办法。但是微表情表现不充分,而且从浮现到消失的时间不过四分之一秒,现有的自动识别方法很难达到较高的准确率和理论所要求的处理时间。另ー种思路就是寻求ー种分类效果较好的算法,通过算法的良好性能在一定程度上減少表情相似性带来的干扰。经典的表情识别算法虽然取得了一定的效果,但是算法的识别率还有待提高。近年出现的度量学习(Distance MetricLearning)算法为该问题的解决,提供了更好的思路。2002年,美国加利福尼亚大学伯克利分校的Eric Xing提出了基于成对约束的度量学习框架,认为度量学习得到的度量函数应该能够反映出训练数据集里面的样本对的约束关系。如果两个训练样本具有相同的类别,则度量函数所给出的这两个样本之间的距离应该较小,反之则较大。该算法是有效的,但是处理高维数据非常耗时。2005年,以色列耶路撒冷希伯来大学的Aharon Bar-Hillel提出了相关分量分析算法(Relevant ComponentAnalysis, RCA)。RCA算法利用同类样本的信息生成样本子集(Chunklets),通过全局线性变化对相关特征赋予较大权重,对不相关特征赋予较小权重,抑制不利于分类的特征。该算法与Eric Xing方法的区别在于后者的约束条件比较复杂。因此RCA算法的运算速度更快,性能也更稳定。2006年,香港中文大学的C. H. Hoi提出了判别分量分析(DiscriminativeComponent Analysis, DCA)算法。该算法认为RCA算法缺乏对不同类样本信息的利用,通过改进RCA算法,DCA算法获得了更好的分类效果。因此将DCA算法应用到人脸表情识别领域,就能在一定程度上降低表情相似性造成的干扰,提高人脸表情识别率。但是DCA算法采用了随机选择方法生成样本子集,这种做法存在两个方面的缺点一方面,随机选择不能保证选取的样本信息有利于分类,极大地影响了表情识别的准确率;另一方面,随机选择使每次生成的样本子集都不尽相同。无法保证每次投影得到的结果能够准确地反映表情分布,还会因为样本子集之间距离过近,在计算过程中出现奇异矩阵,使矩阵无法求逆,造成算法无解,最终导致算法性能的不稳定。因此如何有效地利用DCA算法实现人脸表情识别,同时又能对DCA算法的缺点加以改进,就成为我们亟待解决的任务。本发明提出了一种基于DCA的人脸表情识别算法。不但将度量学习方法引入人脸表情识别领域,而且提出了一种改进的DCA算法。以信息论的基本观点为依据,通过计算最大类内距离和最小类间距离的方式,选择具有不确定性,即富含分类信息的样本生成样本子集。不但提高了算法的稳定性,而且获得了较高的人脸表情识别率。
发明内容
本发明的目的在于,以信息论的基本观点为依据,通过计算最大类内距离和最小类间距离的方式,选择具有不确定性,即富含分类信息的样本生成样本子集。通过上述做法,提高DCA算法的稳定性,并获得理想的表情识别率。I. ー种基于判别分量分析的人脸表情识别方法,其特征在干,步骤如下 步骤(I ),样本的初始化步骤(I. 1),采用交叉验证中的留一法,将人脸表情图像分为若干组,毎次仅测试每组中的ー个样本,余下所有样本全部參与训练,然后取实验的平均结果;步骤(I. 2),以人眼位置为基准获取人脸范围,对人脸图像进行分割;步骤(I. 3)采用直方图均衡降低光照因素对图像造成的影响;步骤(I. 4),采用PCA算法对训练样本进行数据降维;步骤(2),采用改进的DCA算法对样本进行特征提取;步骤(3),采用欧氏距离最近邻法实现特征分类;通过留一法,取实验的平均结果为表情识别率,最终完成人脸表情识别;具体的,改进的DCA算法分两部分获取样本子集、计算投影矩阵;步骤(2.1),生成样本子集算法将样本子集作为数据组织形式,所谓样本子集是指ー些小的样本集合,每个子集里面包含的样本都属于同一类,但是类别未知;每一个样本子集代表一类样本;生成样本子集的步骤如下步骤(2. I. 1),将样本按照类别是否相同的准则,两两组合为若干样本对;如样本对属于同一类,则样本对属于集合S ;如样本对不属于同一类,则样本对属于集合D ;步骤(2. I. 2),计算同类样本对集合S中的样本对之间的距离;计算每个样本对元素之间的马氏距离,将这些距离值按照从大到小的顺序排列,然后按照比例选取排列靠前的距离值对应的样本对,按照比例为选择相应比例的样本对得到新的样本对集合S2 ;步骤(2. I. 3),计算不同类样本对集合D中的样本对之间的距离;将这些距离值按照从小到大的顺序排列,然后按照设定的比例选取排列靠前的距离值对应的样本对,得到新的样本对集合D2 ;步骤(2. 1.4),从52中生成样本子集;首先确定S2中的样本数量;令_1表示样本还没有被分配到一个样本子集,然后依据条件依次判断每ー个样本对中的样本归属哪个样本子集;如ー个样本对二者都未分配,所以将该样本对归入同一个样本子集;对ー个样本对而言,ー个样本已分配而另ー个样本未分配,因为二者属于同一个样本对,因此按照一个样本所属的样本子集将另ー个样本归入同一个样本子集;
对ー个样本对而言,二者都未分配,因此将二者归入同一个样本子集;以此类推,最终生成样本子集Cl, C2, C3…,Cn,其中η表示子集的数量,即样本的类别数量,每个子集中包含一类样本;若同一个样本对中的两个样本被分配到两个子集,则将标号大的子集归入到标号小的子集;步骤(2. 2),计算投影矩阵获取样本子集Cl,C2, C3…,Cn后,得到样本子集的投影矩阵;算法通过计算样本子集的类内散度,获得同类样本之间的距离;采用D2计算样本子集的类间散度,获得不同类样本之间的距离;在使同类样本的距离最近,不同类样本的距离最远的约束条件下,得到最佳的投影矩阵,投影矩阵对样本的映射结果就是样本的表情特征;得到表情特征后,采用欧氏距离最近邻法实现特征分类;通过留一法,取实验的平均结果为表情识别率,最終完成人脸表情识别。
具体的,本发明是在计算机中依次按以下步骤仿真实现的步骤(I ),数据初始化步骤(1.1),图像分割以Matlab R2010a为实验平台,选取日本女性人脸表情数据库(Japan FemaleFacial Expression, JAFFE)为实验数据。该库是国际上研究人脸表情识别的代表性图像库,包含了“生气”、“厌恶”、“恐惧”、“高兴”、“悲伤”、“惊奇”和“中性”这七种表情。人脸表情识别的重要步骤是提取人脸的表情特征,但是图片背景、头发等非表情因素对识别造成了干扰。因此需要通过图像分割获得“纯脸”图像。由于人眼在图片中的位置相对固定,通过人眼坐标就可以自动选取“纯脸”区域;步骤(I. 2),直方图均衡化分割后的图像还面临着光照问题。图像在采集过程中,很难保证光照強度的一致与均衡,而光照的不同会造成数字图像矩阵元素的差异,不利于表情特征的提取。在数字图像处理中,直方图的作用是描述图像中各个灰度级的像素个数,反映图像的灰度分布。因此,通过直方图均衡化,把原始图像的灰度直方图从比较集中的某个灰度区间变成在全部灰度范围内的均匀分布,有效地降低了光照因素对图像的影响。均衡化后的图像与原图像大小一致;步骤(2),数据降维因为图像中的某些元素本身没有区分性,比如某个元素在所有的样本中都为1,或者与I差距不大,那么这个元素本身就没有区分性,用它做特征来区分,贡献会非常小。所以采用主成分分析(Principal Component Analysis, PCA)算法,找那些变化大的元素,即方差大的那些维,同时去除掉那些变化不大的维,这样就留下了图像的主要特征。減少了冗余数据;步骤(3),采用改进的DCA算法实现特征提取,该步骤是本发明的创新点,以下主要分两部分获取样本子集、计算投影矩阵。步骤(3.1),生成样本子集算法将样本子集作为数据组织形式,所谓样本子集是指ー些小的样本集合,每个子集里面包含的样本都属于同一类,但是类别未知。每ー个样本子集代表ー类样本。生成样本子集的步骤如下
第一歩,将样本按照类别是否相同的准则,两两组合为若干样本对。如Xl和x2属于同一类,则样本对(xl, x2)属于集合S ;如χ3和χ4不属于同一类,则样本对(χ3, χ4)属于集合D ;第二歩,分别从集合S和D中随机抽取部分样本对,组成新的集合SI和Dl ;我们在实际应用中发现,DCA随机抽取样本对,进而生成样本子集的做法存在两个严重的缺点一方面,随机选择不能保证选取的样本信息有利于分类,极大地影响了表情识别的准确率;另ー方面,随机选择使每次生成的样本子集都不尽相同,在运算过程中经常出现奇异矩阵,使算法无解,极大地影响了算法的稳定性;本发明从信息论的角度来考虑这ー问题。信息来源于不确定性,不确定性越大,信息越丰富。从样本之间的距离上看,距离较远的同类样本和距离较近的不同类样本,比距离较近的同类样本和距离较远的不同类样本,在分类时具有更大的不确定性,也包含更多的分类信息;
因此,本发明在第二步中不再采用随机选择的方式抽取样本对,将距离较远的同类样本和距离较近的不同类样本作为样本对选择依据。首先,计算同类样本对集合S中的样本对之间的距离。如样本对(xl, x2), (x5, x6), (x7, x8), (x8, x9)属于S,则计算姆个样本对元素之间的马氏距离dl2, d56, d78, d89,将这些距离值按照从大到小的顺序排列,然后按照比例选取排列靠前的距离值对应的样本对,如dl2>d78>d56>d89,比例为O. 5,则选择(xl,x2)和(x7,x8)两个样本对得到新的样本对集合S2。这样做的目的是选取距离较远的同类样本;其次,计算不同类样本对集合D中的样本对之间的距离。将这些距离值按照从小到大的顺序排列,然后按照设定的比例选取排列靠前的距离值对应的样本对,得到新的样本对集合D2。这样做的目的是选取距离较近的不同类样本;第三步,从S2中生成样本子集。此时我们需要利用每ー对样本同类的已知条件,将S2中的全部样本按照类别分成一个个小集合,这些小集合内的样本同类,但是具体类别未知。这些小集合就是样本子集。具体做法如下所示首先确定S2中的样本数量,如S2中的部分样本对(xOl, x02),(x02, x03),(x04, x05),其中包含的样本为 xOl, x02, x03, x04, x05,令-I表示样本还没有被分配到一个样本子集,因此上述样本是否被分配的初始化状态为[■I, "I, "I, "I, _1];然后依据条件依次判断每ー个样本对中的样本归属哪个样本子集。对于S2中的样本对(x01,x02)而言,因为二者都未分配,所以将xOl和x02归入同一个样本子集Cl,此时样本的分配状态就等于[1,ι,-ι,-ι,-ι],表示前两个样本已经被分配;对样本对(x02, x03)而言,x02已分配而x03未分配,因为二者属于同一个样本对,所以按照x02所属的样本子集将x03归入Cl,此时样本的分配状态为[1,1,1,-1,-1];对样本对(x04,x05)而言,二者都未分配,因此将x04和x05归入同一个样本子集C2,此时样本的分配状态就等于[1,I, I, 2,2];以此类推,最终生成样本子集Cl, C2, C3…,Cn,其中η表示子集的数量,即样本的类别数量,每个子集中包含ー类样本。若同一个样本对中的两个样本被分配到两个子集,如C3和C9,则将标号大的子集归入到标号小的子集,即取消C9,同时将C9内的样本并入C3 ;
步骤(3. 2)计算投影矩阵获取样本子集Cl,C2, C3…,Cn后,DCA算法要计算投影矩阵,通过投影矩阵,将样本映射到新的数据空间,使同类样本的距离最近,不同类样本的距离最远,以此达到最佳的分类效果。具体方法分为以下步骤步骤(3. 2. I),每个样本子集都包含若干样本,计算每个样本子集的均值;步骤(3. 2. 2),计算样本子集的类内散度,公式如下
权利要求
1.ー种基于判别分量分析的人脸表情识别方法,其特征在于,步骤如下步骤(I ),样本的初始化步骤(I. 1),采用交叉验证中的留一法,将人脸表情图像分为若干组,毎次仅测试每组中的ー个样本,余下所有样本全部參与训练,然后取实验的平均结果;步骤(I. 2),以人眼位置为基准获取人脸范围,对人脸图像进行分割;步骤(I. 3)采用直方图均衡降低光照因素对图像造成的影响;步骤(I. 4),采用PCA算法对训练样本进行数据降维;步骤(2),采用改进的DCA算法对样本进行特征提取;步骤(3),采用欧氏距离最近邻法实现特征分类;通过留一法,取实验的平均结果为表情识别率,最终完成人脸表情识别;具体的,改进的DCA算法分两部分获取样本子集、计算投影矩阵;步骤(2.1),生成样本子集算法将样本子集作为数据组织形式,所谓样本子集是指ー些小的样本集合,每个子集里面包含的样本都属于同一类,但是类别未知;每一个样本子集代表一类样本;生成样本子集的步骤如下步骤(2. I. 1),将样本按照类别是否相同的准则,两两组合为若干样本对;如样本对属于同一类,则样本对属于集合S ;如样本对不属于同一类,则样本对属于集合D ;步骤(2. I. 2),计算同类样本对集合S中的样本对之间的距离;计算每个样本对元素之间的马氏距离,将这些距离值按照从大到小的顺序排列,然后按照比例选取排列靠前的距离值对应的样本对,按照比例为选择相应比例的样本对得到新的样本对集合S2 ;步骤(2. I. 3),计算不同类样本对集合D中的样本对之间的距离;将这些距离值按照从小到大的顺序排列,然后按照设定的比例选取排列靠前的距离值对应的样本对,得到新的样本对集合D2 ;步骤(2. 1.4),从52中生成样本子集;首先确定S2中的样本数量;令-I表示样本还没有被分配到一个样本子集,然后依据条件依次判断每ー个样本对中的样本归属哪个样本子集;如ー个样本对二者都未分配,所以将该样本对归入同一个样本子集;对ー个样本对而言,ー个样本已分配而另ー个样本未分配,因为二者属于同一个样本对,因此按照一个样本所属的样本子集将另ー个样本归入同一个样本子集;对ー个样本对而言,二者都未分配,因此将二者归入同一个样本子集;以此类推,最終生成样本子集Cl, C2, C3. . .,Cn,其中η表示子集的数量,即样本的类别数量,每个子集中包含ー类样本;若同一个样本对中的两个样本被分配到两个子集,则将标号大的子集归入到标号小的子集;步骤(2. 2),计算投影矩阵获取样本子集Cl,C2, C3…,Cn后,得到样本子集的投影矩阵;算法通过计算样本子集的类内散度,获得同类样本之间的距离;采用D2计算样本子集的类间散度,获得不同类样本之间的距离;在使同类样本的距离最近,不同类样本的距离最远的约束条件下,得到最佳的投影矩阵,投影矩阵对样本的映射结果就是样本的表情特征;得到表情特征后,采用欧氏距离最近邻法实现特征分类;通过留一法,取实验的平均结果为表情识别率,最終完成人脸表情识别。
全文摘要
本发明涉及一种基于判别分量分析的人脸表情识别方法,具体涉及一种基于改进DCA的人脸表情识别方法,该方法首先按照最大类内距离和最小类间距离的准则获得样本子集;然后计算样本子集的投影矩阵;最后将样本与投影矩阵相乘,通过最近邻法判断样本的类别,完成人脸表情识别任务。本发明不但将DCA算法迁移到人脸表情识别领域,而且根据实际情况,提出了基于DCA的改进算法。实验结果证明了算法的有效性,在JAFFE图像库上最终达到了95.71%的平均识别率。
文档编号G06K9/00GK102831389SQ20121022403
公开日2012年12月19日 申请日期2012年6月28日 优先权日2012年6月28日
发明者贾克斌, 蒋斌, 郭伟 申请人:北京工业大学