首页> 中国专利> 基于判别分量分析的人脸表情识别算法

基于判别分量分析的人脸表情识别算法

摘要

本发明涉及一种基于判别分量分析的人脸表情识别方法,具体涉及一种基于改进DCA的人脸表情识别方法,该方法首先按照最大类内距离和最小类间距离的准则获得样本子集;然后计算样本子集的投影矩阵;最后将样本与投影矩阵相乘,通过最近邻法判断样本的类别,完成人脸表情识别任务。本发明不但将DCA算法迁移到人脸表情识别领域,而且根据实际情况,提出了基于DCA的改进算法。实验结果证明了算法的有效性,在JAFFE图像库上最终达到了95.71%的平均识别率。

著录项

  • 公开/公告号CN102831389A

    专利类型发明专利

  • 公开/公告日2012-12-19

    原文格式PDF

  • 申请/专利权人 北京工业大学;

    申请/专利号CN201210224035.4

  • 发明设计人 贾克斌;蒋斌;郭伟;

    申请日2012-06-28

  • 分类号G06K9/00(20060101);G06K9/62(20060101);

  • 代理机构11203 北京思海天达知识产权代理有限公司;

  • 代理人刘萍

  • 地址 100124 北京市朝阳区平乐园100号

  • 入库时间 2023-12-18 07:46:04

法律信息

  • 法律状态公告日

    法律状态信息

    法律状态

  • 2022-11-15

    专利权的转移 IPC(主分类):G06K 9/00 专利号:ZL2012102240354 登记生效日:20221103 变更事项:专利权人 变更前权利人:北京工业大学 变更后权利人:北京格镭信息科技有限公司 变更事项:地址 变更前权利人:100124 北京市朝阳区平乐园100号 变更后权利人:100012 北京市朝阳区容创路17号楼-3至8层101号8层817

    专利申请权、专利权的转移

  • 2015-03-11

    授权

    授权

  • 2013-02-06

    实质审查的生效 IPC(主分类):G06K9/00 申请日:20120628

    实质审查的生效

  • 2012-12-19

    公开

    公开

说明书

技术领域

本发明涉及一种基于判别分量分析的人脸表情识别方法。

背景技术

人脸表情是人类传播情感信息、协调人际关系的重要方式,通过对人脸表情 的识别与信息分析,我们可以获得人类最直观的心理和情绪感受,进而依据人类 的情感体验和心理状态,为人机交互与多媒体信息处理等领域的研究提供技术支 持。近年来,人脸表情识别技术已经受到了国内外研究者们的广泛关注。2010 年,上海世博会展出的可以识别笑脸的概念照相机就是人脸表情识别技术的一次 精彩亮相。

人脸表情识别的直接目的是判定表情的类别属性,取得较好的表情识别率。 但是在日常生活中,我们会发现人脸的若干表情之间存在着一定的相似性,美国 心理学家Paul Ekman博士指出:生气与厌恶、恐惧和惊奇、恐惧与悲伤就是人 类容易混淆的表情。无论产生表情相似性的原因为何,其直接后果就是使人脸的 表情类别被算法误判,进而造成了识别率下降的严重后果。研究者认为“不受思 维控制的,可能由情绪引发,也可能是习惯使然,持续时间短暂或面部肌肉收缩 不充分的微表情”是解决该问题的直接办法。但是微表情表现不充分,而且从浮 现到消失的时间不过四分之一秒,现有的自动识别方法很难达到较高的准确率和 理论所要求的处理时间。另一种思路就是寻求一种分类效果较好的算法,通过算 法的良好性能在一定程度上减少表情相似性带来的干扰。经典的表情识别算法虽 然取得了一定的效果,但是算法的识别率还有待提高。近年出现的度量学习 (Distance Metric Learning)算法为该问题的解决,提供了更好的思路。

2002年,美国加利福尼亚大学伯克利分校的Eric Xing提出了基于成对约束 的度量学习框架,认为度量学习得到的度量函数应该能够反映出训练数据集里 面的样本对的约束关系。如果两个训练样本具有相同的类别,则度量函数所给出 的这两个样本之间的距离应该较小,反之则较大。该算法是有效的,但是处理高 维数据非常耗时。2005年,以色列耶路撒冷希伯来大学的Aharon Bar-Hillel提出 了相关分量分析算法(Relevant Component Analysis,RCA)。RCA算法利用同类 样本的信息生成样本子集(Chunklets),通过全局线性变化对相关特征赋予较大 权重,对不相关特征赋予较小权重,抑制不利于分类的特征。该算法与Eric Xing 方法的区别在于后者的约束条件比较复杂。因此RCA算法的运算速度更快,性 能也更稳定。2006年,香港中文大学的C.H.Hoi提出了判别分量分析 (Discriminative Component Analysis,DCA)算法。该算法认为RCA算法缺乏对 不同类样本信息的利用,通过改进RCA算法,DCA算法获得了更好的分类效果。 因此将DCA算法应用到人脸表情识别领域,就能在一定程度上降低表情相似性 造成的干扰,提高人脸表情识别率。

但是DCA算法采用了随机选择方法生成样本子集,这种做法存在两个方面 的缺点:一方面,随机选择不能保证选取的样本信息有利于分类,极大地影响了 表情识别的准确率;另一方面,随机选择使每次生成的样本子集都不尽相同。无 法保证每次投影得到的结果能够准确地反映表情分布,还会因为样本子集之间距 离过近,在计算过程中出现奇异矩阵,使矩阵无法求逆,造成算法无解,最终导 致算法性能的不稳定。因此如何有效地利用DCA算法实现人脸表情识别,同时 又能对DCA算法的缺点加以改进,就成为我们亟待解决的任务。

本发明提出了一种基于DCA的人脸表情识别算法。不但将度量学习方法引 入人脸表情识别领域,而且提出了一种改进的DCA算法。以信息论的基本观点 为依据,通过计算最大类内距离和最小类间距离的方式,选择具有不确定性,即 富含分类信息的样本生成样本子集。不但提高了算法的稳定性,而且获得了较高 的人脸表情识别率。

发明内容

本发明的目的在于,以信息论的基本观点为依据,通过计算最大类内距离和 最小类间距离的方式,选择具有不确定性,即富含分类信息的样本生成样本子集。 通过上述做法,提高DCA算法的稳定性,并获得理想的表情识别率。

1.一种基于判别分量分析的人脸表情识别方法,其特征在于,步骤如下:

步骤(1),样本的初始化

步骤(1.1),采用交叉验证中的留一法,将人脸表情图像分为若干组,每次 仅测试每组中的一个样本,余下所有样本全部参与训练,然后取实验的平均结果;

步骤(1.2),以人眼位置为基准获取人脸范围,对人脸图像进行分割;

步骤(1.3)采用直方图均衡降低光照因素对图像造成的影响;

步骤(1.4),采用PCA算法对训练样本进行数据降维;

步骤(2),采用改进的DCA算法对样本进行特征提取;

步骤(3),采用欧氏距离最近邻法实现特征分类;通过留一法,取实验的平 均结果为表情识别率,最终完成人脸表情识别;

具体的,改进的DCA算法分两部分:获取样本子集、计算投影矩阵;

步骤(2.1),生成样本子集

算法将样本子集作为数据组织形式,所谓样本子集是指一些小的样本集合, 每个子集里面包含的样本都属于同一类,但是类别未知;每一个样本子集代表一 类样本;生成样本子集的步骤如下:

步骤(2.1.1),将样本按照类别是否相同的准则,两两组合为若干样本对; 如样本对属于同一类,则样本对属于集合S;如样本对不属于同一类,则样本对 属于集合D;

步骤(2.1.2),计算同类样本对集合S中的样本对之间的距离;计算每个样 本对元素之间的马氏距离,将这些距离值按照从大到小的顺序排列,然后按照比 例选取排列靠前的距离值对应的样本对,按照比例为选择相应比例的样本对得到 新的样本对集合S2;

步骤(2.1.3),计算不同类样本对集合D中的样本对之间的距离;将这些距 离值按照从小到大的顺序排列,然后按照设定的比例选取排列靠前的距离值对应 的样本对,得到新的样本对集合D2;

步骤(2.1.4),从S2中生成样本子集;首先确定S2中的样本数量;令-1表 示样本还没有被分配到一个样本子集,然后依据条件依次判断每一个样本对中的 样本归属哪个样本子集;如一个样本对二者都未分配,所以将该样本对归入同一 个样本子集;

对一个样本对而言,一个样本已分配而另一个样本未分配,因为二者属于同 一个样本对,因此按照一个样本所属的样本子集将另一个样本归入同一个样本子 集;

对一个样本对而言,二者都未分配,因此将二者归入同一个样本子集;以此 类推,最终生成样本子集C1,C2,C3…,Cn,其中n表示子集的数量,即样本的类 别数量,每个子集中包含一类样本;若同一个样本对中的两个样本被分配到两个 子集,则将标号大的子集归入到标号小的子集;

步骤(2.2),计算投影矩阵

获取样本子集C1,C2,C3…,Cn后,得到样本子集的投影矩阵;算法通过计算 样本子集的类内散度,获得同类样本之间的距离;采用D2计算样本子集的类间 散度,获得不同类样本之间的距离;在使同类样本的距离最近,不同类样本的距 离最远的约束条件下,得到最佳的投影矩阵,投影矩阵对样本的映射结果就是样 本的表情特征;

得到表情特征后,采用欧氏距离最近邻法实现特征分类;通过留一法,取实 验的平均结果为表情识别率,最终完成人脸表情识别。

具体的,本发明是在计算机中依次按以下步骤仿真实现的:

步骤(1),数据初始化

步骤(1.1),图像分割

以Matlab R2010a为实验平台,选取日本女性人脸表情数据库(Japan Female  Facial Expression,JAFFE)为实验数据。该库是国际上研究人脸表情识别的代表 性图像库,包含了“生气”、“厌恶”、“恐惧”、“高兴”、“悲伤”、“惊奇”和“中 性”这七种表情。人脸表情识别的重要步骤是提取人脸的表情特征,但是图片背 景、头发等非表情因素对识别造成了干扰。因此需要通过图像分割获得“纯脸” 图像。由于人眼在图片中的位置相对固定,通过人眼坐标就可以自动选取“纯脸” 区域;

步骤(1.2),直方图均衡化

分割后的图像还面临着光照问题。图像在采集过程中,很难保证光照强度的 一致与均衡,而光照的不同会造成数字图像矩阵元素的差异,不利于表情特征的 提取。在数字图像处理中,直方图的作用是描述图像中各个灰度级的像素个数, 反映图像的灰度分布。因此,通过直方图均衡化,把原始图像的灰度直方图从比 较集中的某个灰度区间变成在全部灰度范围内的均匀分布,有效地降低了光照因 素对图像的影响。均衡化后的图像与原图像大小一致;

步骤(2),数据降维

因为图像中的某些元素本身没有区分性,比如某个元素在所有的样本中都为 1,或者与1差距不大,那么这个元素本身就没有区分性,用它做特征来区分, 贡献会非常小。所以采用主成分分析(Principal Component Analysis,PCA)算 法,找那些变化大的元素,即方差大的那些维,同时去除掉那些变化不大的维, 这样就留下了图像的主要特征。减少了冗余数据;

步骤(3),采用改进的DCA算法实现特征提取,该步骤是本发明的创新点, 以下主要分两部分:获取样本子集、计算投影矩阵。

步骤(3.1),生成样本子集

算法将样本子集作为数据组织形式,所谓样本子集是指一些小的样本集合, 每个子集里面包含的样本都属于同一类,但是类别未知。每一个样本子集代表一 类样本。生成样本子集的步骤如下:

第一步,将样本按照类别是否相同的准则,两两组合为若干样本对。如x1 和x2属于同一类,则样本对(x1,x2)属于集合S;如x3和x4不属于同一类,则 样本对(x3,x4)属于集合D;

第二步,分别从集合S和D中随机抽取部分样本对,组成新的集合S1和 D1;

我们在实际应用中发现,DCA随机抽取样本对,进而生成样本子集的做法 存在两个严重的缺点:一方面,随机选择不能保证选取的样本信息有利于分类, 极大地影响了表情识别的准确率;另一方面,随机选择使每次生成的样本子集都 不尽相同,在运算过程中经常出现奇异矩阵,使算法无解,极大地影响了算法的 稳定性;

本发明从信息论的角度来考虑这一问题。信息来源于不确定性,不确定性越 大,信息越丰富。从样本之间的距离上看,距离较远的同类样本和距离较近的不 同类样本,比距离较近的同类样本和距离较远的不同类样本,在分类时具有更大 的不确定性,也包含更多的分类信息;

因此,本发明在第二步中不再采用随机选择的方式抽取样本对,将距离较远 的同类样本和距离较近的不同类样本作为样本对选择依据。

首先,计算同类样本对集合S中的样本对之间的距离。如样本对 (x1,x2),(x5,x6),(x7,x8),(x8,x9)属于S,则计算每个样本对元素之间的马氏距离 d12,d56,d78,d89,将这些距离值按照从大到小的顺序排列,然后按照比例选取排 列靠前的距离值对应的样本对,如d12>d78>d56>d89,比例为0.5,则选择(x1,x2) 和(x7,x8)两个样本对得到新的样本对集合S2。这样做的目的是选取距离较远的 同类样本;

其次,计算不同类样本对集合D中的样本对之间的距离。将这些距离值按 照从小到大的顺序排列,然后按照设定的比例选取排列靠前的距离值对应的样本 对,得到新的样本对集合D2。这样做的目的是选取距离较近的不同类样本;

第三步,从S2中生成样本子集。此时我们需要利用每一对样本同类的已知 条件,将S2中的全部样本按照类别分成一个个小集合,这些小集合内的样本同 类,但是具体类别未知。这些小集合就是样本子集。

具体做法如下所示:首先确定S2中的样本数量,如S2中的部分样本对 (x01,x02),(x02,x03),(x04,x05),其中包含的样本为x01,x02,x03,x04,x05,令-1表示 样本还没有被分配到一个样本子集,因此上述样本是否被分配的初始化状态为 [-1,-1,-1,-1,-1];

然后依据条件依次判断每一个样本对中的样本归属哪个样本子集。对于S2 中的样本对(x01,x02)而言,因为二者都未分配,所以将x01和x02归入同一个样 本子集C1,此时样本的分配状态就等于[1,1,-1,-1,-1],表示前两个样本已经被分 配;

对样本对(x02,x03)而言,x02已分配而x03未分配,因为二者属于同一个样 本对,所以按照x02所属的样本子集将x03归入C1,此时样本的分配状态为 [1,1,1,-1,-1];

对样本对(x04,x05)而言,二者都未分配,因此将x04和x05归入同一个样本 子集C2,此时样本的分配状态就等于[1,1,1,2,2];

以此类推,最终生成样本子集C1,C2,C3…,Cn,其中n表示子集的数量,即 样本的类别数量,每个子集中包含一类样本。若同一个样本对中的两个样本被分 配到两个子集,如C3和C9,则将标号大的子集归入到标号小的子集,即取消 C9,同时将C9内的样本并入C3;

步骤(3.2)计算投影矩阵

获取样本子集C1,C2,C3…,Cn后,DCA算法要计算投影矩阵,通过投影矩 阵,将样本映射到新的数据空间,使同类样本的距离最近,不同类样本的距离最 远,以此达到最佳的分类效果。具体方法分为以下步骤:

步骤(3.2.1),每个样本子集都包含若干样本,计算每个样本子集的均值;

步骤(3.2.2),计算样本子集的类内散度,公式如下:

S^w=1nΣj=1n1njΣi=1nj(xji-mj)(xji-mj)T---(1)

其中表示n个样本子集的类内散度,mj表示第j个样本子集的均值,Xji表示第j个样本子集内的第i个样本,nj表示第j个样本子集包含的样本个数,T 表示转置。的物理意义是描述同类样本之间的距离关系;

步骤(3.2.3),计算样本子集的类间散度,公式如下:

S^b=1nbΣj=1nΣiDj(mj-mi)(mj-mi)T---(2)

其中表示n个样本子集的类间散度,mj表示第j个样本子集的均值,Dj称为第j个样本子集的判别集合,它是由其他样本子集中与第j个样本子集不同 类的样本组成的,这些样本可以通过D2获得。nb表示判别集合的数量。的物 理意义是描述不同类样本之间的距离关系;

步骤(3.2.4),通过优化准则,获得投影矩阵

W*=argmaxW|WTS^bW||WTS^ww|---(3)

其中W表示投影矩阵,W*表示满足“同类样本之间的距离最小,不同类样 本之间的距离最大”这一条件的最优投影矩阵。

步骤(4)采用欧氏距离最近邻法实现特征分类。通过留一法,取实验的平 均结果为表情识别率,最终完成人脸表情识别。整个算法流程如图1所示。

本发明解决了对样本子集选择方法不当的问题,在保证算法识别率的同时, 提高了算法的稳定性。最终达到了95.71%的平均识别率,效果优于采用JAFFE 图像库的主流算法。

附图说明

图1是算法流程图;

图2是本发明与DCA算法的对比实验图;

图3是在不同的样本对比例下,本发明的实验结果图;

具体实施方式

本发明采取的技术方案为:

一种基于DCA的人脸表情识别方法,该方法首先按照最大类内距离和最小 类间距离的准则获得样本子集;然后计算样本子集的投影矩阵;最后将样本与投 影矩阵相乘,通过最近邻法判断样本的类别,完成人脸表情识别任务。本发明不 但将DCA算法迁移到人脸表情识别领域,而且根据实际情况,提出了基于DCA 的改进算法,实验结果证明了算法的有效性,最终达到了95.71%的平均识别率。

本发明具体步骤如下:

1、样本的初始化

1.1、选取213幅图像为实验数据。采用交叉验证(Cross Validation)中的留 一法(Leave-one-out cross validation),将样本分为若干组,每次仅测试每组中的 一个样本,余下所有样本全部参与训练,然后取实验的平均结果;

1.2、以人眼位置为基准获取人脸范围,对人脸图像进行分割;

1.3、采用直方图均衡降低光照因素对图像造成的影响;

1.4、采用PCA算法对训练样本进行数据降维;

2、采用改进的DCA算法对样本进行特征提取;

3、采用欧氏距离最近邻法实现特征分类。通过留一法,取实验的平均结果 为表情识别率,最终完成人脸表情识别。

DCA算法主要分两部分:获取样本子集、计算投影矩阵。

2.1、生成样本子集

算法将样本子集作为数据组织形式,所谓样本子集是指一些小的样本集合, 每个子集里面包含的样本都属于同一类,但是类别未知。每一个样本子集代表一 类样本。生成样本子集的步骤如下:

步骤(2.1),生成样本子集

算法将样本子集作为数据组织形式,所谓样本子集是指一些小的样本集合, 每个子集里面包含的样本都属于同一类,但是类别未知。每一个样本子集代表一 类样本。生成样本子集的步骤如下:

步骤(2.1.1),将样本按照类别是否相同的准则,两两组合为若干样本对。 如x1和x2属于同一类,则样本对(x1,x2)属于集合S;如x3和x4不属于同一类, 则样本对(x3,x4)属于集合D;

步骤(2.1.2),计算同类样本对集合S中的样本对之间的距离。如样本对 (x1,x2),(x5,x6),(x7,x8),(x8,x9)属于S,则计算每个样本对元素之间的马氏距离 d12,d56,d78,d89,将这些距离值按照从大到小的顺序排列,然后按照比例选取排 列靠前的距离值对应的样本对,如d12>d78>d56>d89,比例为0.5,则选择(x1,x2) 和(x7,x8)两个样本对得到新的样本对集合S2;

步骤(2.1.3),计算不同类样本对集合D中的样本对之间的距离。将这些距 离值按照从小到大的顺序排列,然后按照设定的比例选取排列靠前的距离值对应 的样本对,得到新的样本对集合D2;

步骤(2.1.4),从S2中生成样本子集。首先确定S2中的样本数量,如S2 中的部分样本对(x01,x02),(x02,x03),(x04,x05),其中包含的样本为 x01,x02,x03,x04,x05,令-1表示样本还没有被分配到一个样本子集,因此上述样 本是否被分配的初始化状态为[-1,-1,-1,-1,-1];

然后依据条件依次判断每一个样本对中的样本归属哪个样本子集。对于S2 中的样本对(x01,x02)而言,因为二者都未分配,所以将x01和x02归入同一个样 本子集C1,此时样本的分配状态就等于[1,1,-1,-1,-1],表示前两个样本已经被分 配;

对样本对(x02,x03)而言,x02已分配而x03未分配,因为二者属于同一个样 本对,所以按照x02所属的样本子集将x03归入C1,此时样本的分配状态为 [1,1,1,-1,-1];

对样本对(x04,x05)而言,二者都未分配,因此将x04和x05归入同一个样本 子集C2,此时样本的分配状态就等于[1,1,1,2,2];

以此类推,最终生成样本子集C1,C2,C3…,Cn,其中n表示子集的数量,即 样本的类别数量,每个子集中包含一类样本。若同一个样本对中的两个样本被分 配到两个子集,如C3和C9,则将标号大的子集归入到标号小的子集,即取消 C9,同时将C9内的样本并入C3;

步骤(2.2),计算投影矩阵

获取样本子集C1,C2,C3…,Cn后,就可以得到样本子集的投影矩阵。算法通 过计算样本子集的类内散度,获得同类样本之间的距离。采用D2计算样本子集 的类间散度,获得不同类样本之间的距离。在使同类样本的距离最近,不同类样 本的距离最远的约束条件下,得到最佳的投影矩阵,投影矩阵对样本的映射结果 就是样本的表情特征。

采用欧氏距离最近邻法实现特征分类。通过留一法,取实验的平均结果为表 情识别率,最终完成人脸表情识别。

为了检验本发明所提出的方法的性能,共设计了两组实验。实验一的目的是 比较本发明与DCA算法的分类效果。本次实验设S和D采用同一个比例系数。 比例分别为10%、30%、50%和70%。实验以最近邻法为基础分类器,采用 AdaBoost算法对JAFFE图像库的七种表情进行分类,循环次数为30次。实验结 果如图2所示,图中横坐标表示算法的迭代次数,纵坐标表示人脸表情识别的错 误率,即测试样本中被错分的样本占所有测试样本的比率。其中靠近上方的曲线 表示DCA算法的错误率,下方曲线表示本发明算法的错误率。实验分别在选取 10%、30%、50%和70%比例的样本对集合的条件下,生成样本子集,最终实现 对人脸表情的分类。两种算法的平均识别率如表1所示:

表1 ERDCA与DCA算法对比实验

从结果中可知,在上述条件下,本发明的平均识别率要高于DCA算法。原 因主要有两个方面:一方面,与本发明相比,DCA算法不能充分地利用样本信 息。例如,在样本对选取比例较小的时候,该算法会出现某类样本选取过少的情 况。使得算法无法准确地区分样本的类别;另一方面,本发明不易出现零矩阵的 情况,算法具有较好的稳定性和收敛性。因此和DCA算法相比,识别效果得到 了更好地保证。

实验二的目的是在采用JAFFE图像库的条件下,将本发明与现有的表情识 别算法进行比较。实验结果如图3所示。从结果可以看出,在比例大于0.7时, 算法的平均识别率能达到95.71%,与现有算法相比具有明显优势。

去获取专利,查看全文>

相似文献

  • 专利
  • 中文文献
  • 外文文献
获取专利

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号