一种人脸表情的识别方法与流程

文档序号:15983957发布日期:2018-11-17 00:39阅读:199来源:国知局

本发明涉及人脸识别技术领域,具体涉及一种人脸表情的识别方法。

背景技术

面部表情通过人脸不同部位的形状变化表现出来,进而表达各种不同的情绪状态,传达不同的情感。利用图像几何形状变化分析识别人脸表情具有十分广泛的应用前景。

人脸表情识别可应用于个性化定制,根据用户脸部表情识别判断其情感状态,进而推荐符合用户需求的各项服务,包括娱乐内容推荐,生活服务信息推荐等;可应用于网上在线学习,根据表情变化判断用户对所学习内容的兴趣程度,对学习内容进行自动评价及调整,引导用户进行有效性学习;可应用于自动产品或广告评价,通过用户使用及欣赏产品或广告时的表情变化,判断用户喜好程度,从而产生评价内容;可应用于智能虚拟人交互,通过用户情感识别,调整虚拟人的表情,达到自然人机交互的目的。对人脸表情的识别还可以应用于司法、安全、医疗、通信、汽车制造等领域。

人脸表情识别技术大都建立在美国心理学家保罗·艾克曼(paul·ekman)对表情分类的基础上,保罗·艾克曼将人脸表情分为七个分类:中性、高兴、愤怒、悲伤、惊讶、厌恶及恐惧。根据人脸表情的分类,可以通过人脸图像在不同分类上的概率值分布识别不同的表情状态,因此对表情分类的准确性直接代表了表情识别的准确性。

现有表情分类方法分为两种:

第一种方法基于神经网络技术发展,通过对大规模不同表情人脸数据直接进行多层深度网络学习,训练分类模型,达到表情分类的目的。这种方法需要有两个必要条件保证分类结果的有效性。一个是样本数据量必须足够巨大,另外要求硬件计算能力足够强大。而现有样本数据量很难满足此类算法的要求,实时计算系统尤其是移动端设备无法支撑算法所需的计算量。

第二种方法的技术框架是先提取人脸表情形状特征,再用不同分类方法对高维特征进行分类。这种方法的有效性取决于准确的特征表达和分类方法。特征表达要求能够描述局部形状细节,针对小样本数据及特征的高维特性,应具有高效的非线性分类方法支持。



技术实现要素:

针对现有技术存在的缺陷,本发明提供了一种人脸表情的识别方法。

本发明的技术方案是:一种人脸表情识别方法,具体包括以下步骤:

步骤1针对人脸表情数据集中的各个图像,检测图像中的人脸及特征点:

步骤1.1针对人脸表情训练数据集中的各图像,检测图像中的人脸并实现特征点对齐,为了准确检测不同人脸特征点的准确位置,需要利用样本人脸中手工标注的特征点对平均人脸特征点的位置进行最优化回归计算,定义优化函数为如下公式(1):

其中表示平均人脸的特征点,经过回归计算后得出人脸的68个特征点,平均人脸的特征点是对样本人脸中特征点的位置进行平均计算得到,表示当前人脸特征点。函数用来计算特征点局部区域特征;

步骤1.2在步骤1.1的基础上,为了得到最优化结果,计算平均人脸特征点到当前人脸特征点之间的一条最佳迭代路径,即计算f(x)的最小值,也就是计算从x0位置到x位置的最优下降过程,而f(x)的最小值则由f‘(x)=0计算得到,基于泰勒展开得到和δx之间的一个线性关系为如下公式(2):

对于曲率以及偏移量无需计算,只需要利用样本人脸数据及其特征点位置对上式进行迭代回归,从而得到回归模型,即多组曲率和偏移量的下降参数值;

步骤2特征点形状描述:

步骤2.1在步骤1的基础上,生成人脸图像上各个特征点局部区域的特征向量,计算基于人脸特征点的表情特征,通过多尺度细节增强方法对人脸图像做预处理,利用层次化的梯度统计方法计算特征点局部区域特征;

步骤2.2在步骤1的基础上,对人脸图像进行旋转归一化,建立统一的人脸坐标系;

步骤2.3为了达到算法对人脸缩放的不变性,减少人脸缩放变化对于形状特征的影响,建立图像高斯尺度空间,形成图像金字塔结构,图像金字塔是多尺度计算的基础,通过对原图像进行上采样和下采样,建立图像的三层金字塔结构;

步骤2.4进行高斯模糊及图像差分计算,高斯拉普拉斯算子(log)能够得到图像局部细节,由于log算子计算成本较高,而不同尺度的高斯模糊图像差分(dog)能够近似的表征log算子,因此提出基于dog的图像局部细节计算方法;

为了计算图像细节,首先对于不同尺度下的图像,采用不同的高斯模糊核对同一尺度下的图像进行不同级别的模糊变化;模糊核计算按照以下公式(3)进行:

其中σ为平均差,r2=x2+y2决定了模糊核的大小;具体应用中利用离散的像素距离作为模糊核大小,在本方法中分别取模糊核大小为r=23和r=21,而为平均差的计算方法,不同模糊核具有不同的平均差取值;

对根据不同模糊核得到的统一尺度下的两层图像相减即得到高斯差分图像,如公式(4)~(6):

li,j(x,y)=gi*i′(x,y)……(4)

d1=l2-l1……(5)

d2=l3-l2……(6)

其中i′为尺度图像,l为不同模糊核模糊后的不同层的图像;

步骤2.5通过高斯差分后得到图像在不同尺度下的局部细节描述,局部细节描述叠加在图像中后能够增加人脸图像对于细节的表达能力,将高斯差分得到的图像与金字塔尺度空间的图像进行累加,得到不同尺度下细节增强后的人脸图像,如以下公式(7):

lj′=lj+d1j+d2j……(7)

其中:lj′表示细节叠加后的图像,j=1,2,3为表示不同尺度;

步骤2.6对于每个特征点选取以其为中心的16×16的局部区域,并将此16×16区域分为大小不同的四层结构,每层结构为不同数量的矩形块组成,三层结构分别是16个4×4的块,9个8×8的块,4个12×12的块以及1个16×16的块;

步骤2.7为了达到算法对于全局光照的不变性,对每一个块内所有像素计算梯度方向及幅值,对块内的像素梯度,按照不同方向分为四组并对每组的幅值进行累加统计,得到一个具有四个值的直方图,对于特征点的特征描述则由不同块直方图组合而成,从大块到小块,从左至右从上至下的顺序组合后局部特征的维数为30×4=120维,对于不同尺度下的特征点局部特征进行组合,则特征点形状描述为120×3=360维;

步骤3人脸图像的特征描述子来源与所有特征点局部区域特征的组合,脸部具有68个特征点,轮廓特征点对微表情的影响并不大,聚集于眼睛眉毛、鼻子及嘴巴周围的特征点能够更好的表达微表情变化,除去轮廓点外的剩余51个特征点,人脸图像的形状特征向量采取所述51个特征点点周边区域的特征,计算公式如以下公式(8):

至此,得到人脸表情特征向量为360×51=18360维;

步骤4步骤3中的特征计算后所生成的形状特征向量维数过大,影响了后续算法的时间复杂度采用自编码神经网络方法进行降维,自编码神经网络是一种无监督学习算法,使用了反向传播算法,尝试学习一个h(w,b)(x)≈x的函数,相对数量较少的隐藏神经元是原有神经网络的一个很好的近似,却大大降低了维度;按照步骤1~步骤4的方法计算形状特征并进行特征降维后的得到一个625维的向量;

步骤5利用人脸表情特征对已有样本数据集进行分类数据挖掘,选取100个不同人的1000副人脸表情图像,并将人脸图像按照表情分为七种类型;对于每一个样本人脸表情图像,按照步骤1~步骤4中的人脸图像特征计算方法,分别计算样本数据库中所有人脸图像的形状特征描述符,并按照预先分类分别建立标签,采用支持向量机的计算方法,同时按照分类及特征描述信息对已有数据进行分类训练,得到非线性高维分类模型;

步骤6当用户输入人脸视频后,针对输入的人脸视频帧中人脸图像,按照步骤1~步骤4方法构造新型较低维的形状特征描述符;

步骤7将输入视频人脸图像特征描述符与分类模型进行比较,从而确定出人脸表情图像在不同分类中的概率值。

本发明所述识别方法的有益效果是:利用多尺度高斯金字塔结构及形状细节增强的方法,提高表情特征的描述能力;利用基于层次机构的局部形状特征,提高局部特征点形状的细节表达能力;利用支持向量机方法处理小训练集及非线性分类;实现对视频中人脸图像的表情识别,克服了现有技术中存在的问题,进而在小样本数据前提下提高了表情识别的准确率。

附图说明

图1为本发明所述识别方法的人脸部的68个特征点分布示意图。

图2为本发明所述识别方法的人脸部的51个特征点分布示意图。

具体实施方式

下面结合说明书附图对本发明所述识别方法的具体实施方式做进一步详细说明。

如图1和图2所示,本发明所述识别方法,具体包括以下步骤:

步骤1针对人脸表情数据集中的各个图像,检测图像中的人脸及特征点:

步骤1.1针对人脸表情训练数据集中的各图像,检测图像中的人脸并实现特征点对齐,为了准确检测不同人脸特征点的准确位置,需要利用样本人脸中手工标注的特征点对平均人脸特征点的位置进行最优化回归计算,定义优化函数为如下公式(1):

其中表示平均人脸的特征点,经过回归计算后得出人脸的68个特征点,平均人脸的特征点是对样本人脸中特征点的位置进行平均计算得到,表示当前人脸特征点,函数用来计算特征点局部区域特征;

步骤1.2在步骤1.1的基础上,为了得到最优化结果,计算平均人脸特征点到当前人脸特征点之间的一条最佳迭代路径,即计算f(x)的最小值,也就是计算从x0位置到x位置的最优下降过程,而f(x)的最小值则由f′(x)=0计算得到,基于泰勒展开得到和δx之间的一个线性关系为如下公式(2):

对于曲率以及偏移量无需计算,只需要利用样本人脸数据及其特征点位置对上式进行迭代回归,从而得到回归模型,即多组曲率和偏移量的下降参数值;

步骤2特征点形状描述:

步骤2.1在步骤1的基础上,生成人脸图像上各个特征点局部区域的特征向量,计算基于人脸特征点的表情特征,通过多尺度细节增强方法对人脸图像做预处理,利用层次化的梯度统计方法计算特征点局部区域特征;

步骤2.2在步骤1的基础上,对人脸图像进行旋转归一化,建立统一的人脸坐标系;

步骤2.3为了达到算法对人脸缩放的不变性,减少人脸缩放变化对于形状特征的影响,建立图像高斯尺度空间,形成图像金字塔结构,图像金字塔是多尺度计算的基础,通过对原图像进行上采样和下采样,建立图像的三层金字塔结构;

步骤2.4进行高斯模糊及图像差分计算,高斯拉普拉斯算子(log)能够得到图像局部细节,由于log算子计算成本较高,而不同尺度的高斯模糊图像差分(dog)能够近似的表征log算子,因此提出基于dog的图像局部细节计算方法;

为了计算图像细节,首先对于不同尺度下的图像,采用不同的高斯模糊核对同一尺度下的图像进行不同级别的模糊变化;模糊核计算按照以下公式(3)进行:

其中σ为平均差,r2=x2+y2决定了模糊核的大小;具体应用中利用离散的像素距离作为模糊核大小,在本方法中分别取模糊核大小为r=23和r=21,而为平均差的计算方法,不同模糊核具有不同的平均差取值;

对根据不同模糊核得到的统一尺度下的两层图像相减即得到高斯差分图像,如公式(4)~(6):

li,j(x,y)=gi*i′(x,y)……(4)

d1=l2-l1……(5)

d2=l3-l2……(6)

其中i′为尺度图像,l为不同模糊核模糊后的不同层的图像;

步骤2.5通过高斯差分后得到图像在不同尺度下的局部细节描述,局部细节描述叠加在图像中后能够增加人脸图像对于细节的表达能力,将高斯差分得到的图像与金字塔尺度空间的图像进行累加,得到不同尺度下细节增强后的人脸图像,如以下公式(7):

lj′=lj+d1j+d2j……(7)

其中:lj′表示细节叠加后的图像,j=1,2,3为表示不同尺度;

步骤2.6对于每个特征点选取以其为中心的16×16的局部区域,并将此16×16区域分为大小不同的四层结构,每层结构为不同数量的矩形块组成,三层结构分别是16个4×4的块,9个8×8的块,4个12×12的块以及1个16×16的块;

步骤2.7为了达到算法对于全局光照的不变性,对每一个块内所有像素计算梯度方向及幅值,对块内的像素梯度,按照不同方向分为四组并对每组的幅值进行累加统计,得到一个具有四个值的直方图,对于特征点的特征描述则由不同块直方图组合而成,从大块到小块,从左至右从上至下的顺序组合后局部特征的维数为30×4=120维,对于不同尺度下的特征点局部特征进行组合,则特征点形状描述为120×3=360维;

步骤3人脸图像的特征描述子来源与所有特征点局部区域特征的组合,脸部具有68个特征点,轮廓特征点对微表情的影响并不大,聚集于眼睛眉毛、鼻子及嘴巴周围的特征点能够更好的表达微表情变化,除去轮廓点外的剩余51个特征点,人脸图像的形状特征向量采取所述51个特征点点周边区域的特征,计算公式如以下公式(8):

至此,得到人脸表情特征向量为360×51=18360维;

步骤4步骤3中的特征计算后所生成的形状特征向量维数过大,影响了后续算法的时间复杂度采用自编码神经网络方法进行降维,自编码神经网络是一种无监督学习算法,使用了反向传播算法,尝试学习一个h(w,b)(x)≈x的函数,相对数量较少的隐藏神经元是原有神经网络的一个很好的近似,却大大降低了维度;按照步骤1~步骤4的方法计算形状特征并进行特征降维后的得到一个625维的向量;

步骤5利用人脸表情特征对已有样本数据集进行分类数据挖掘,选取100个不同人的1000副人脸表情图像,并将人脸图像按照表情分为七种类型;对于每一个样本人脸表情图像,按照步骤1~步骤4中的人脸图像特征计算方法,分别计算样本数据库中所有人脸图像的形状特征描述符,并按照预先分类分别建立标签,采用支持向量机的计算方法,同时按照分类及特征描述信息对已有数据进行分类训练,得到非线性高维分类模型;

步骤6当用户输入人脸视频后,针对输入的人脸视频帧中人脸图像,按照步骤1~步骤4方法构造新型较低维的形状特征描述符;

步骤7将输入视频人脸图像特征描述符与分类模型进行比较,从而确定出人脸表情图像在不同分类中的概率值。

本发明并不限于上述实施方式,在不背离本发明实质内容的情况下,本领域技术人员可以想到的任何变形、改进、替换均落入本发明的保护范围。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1