一种人脸表情识别方法
技术领域
本发明涉及图像处理,具体涉及人脸表情识别技术。
背景技术
人脸表情识别技术在近年来随着一些相关领域的飞速发展如机器学习,图像处理,人类识别等,成为了一个热点发展的技术。人脸表情识别系统的影响和潜力同时推广到广大的应用场合中,如人机交互,智能机器人,驾驶员状态监督等等。人脸表情识别系统是计算机理解人们情感的前提,也是人们探索智能、理解智能的有效途径。如何实现计算机的拟人化,使其能根据周围的环境以及对象的状态等内容,自适应地为交流对象提供最友好的操作环境,消除操作者和机器之间的障碍,己经成为下一代人机界面发展的目标,是智能机器人走进人们日常生活必须解决的问题,对建立多信息智能化人机交互系统有着重要意义。
人脸表情识别技术一般包括三部分内容:(1)人脸检测;(2)人脸表情特征的提取;(3)表情特征的分类。其中人脸表情特征提取是整个系统中最为核心的步骤,特征提取直接影响到识别的精度,鲁棒性,和实时性。常见的人脸特征提取的方法包括:基于几何特征,表观特征,动态特征的方法。
1)基于几何特征的方法,这类方法是对人脸特定的区域如眼睛,嘴,鼻等区域建立模型或者二维的拓扑结构,提取几何特征。这类方法很大程度上减少了数据量的输入,但对于基准点的准确性要求高,而且对于图像质量低的情况难以处理。
2)表观特征的提取方法,即对图像进行预处理后,获得局部区域像素之间的关系如梯度,纹理等。比如以Gabor小波作为初始特征,然后利用基因规划算法合成新的特征,最后通过SVM(支持向量机)分类器进行表情识别,Gabor特征虽然区分能力强,但是缺点在于其维数高,计算量大。详见文献:J.Yu,B,Bhanu.Evolutionary feature synthesis for facial expressionrecognition[J].Pattern Recognition Letters,2006,27(11):289-1298。
3)动态特征提取方法,此类针对图像序列的人脸特征提取的方法有光流法,特征点跟踪法等。如利用AAM(主动外观模型)在图像序列中提取多个特征点后,根据特征点估计其中特定特征点组成的运动特征向量,最后利用SVM的分类投票进行分类识别。但其存在的问题是AAM通过人工标点的位置信息结合纹理信息建立数学统计模型,其复杂度大,然后再利用最优化理论通过多次迭代进行特征点定位,运算量极大,特征点虽能够达到精确但无法实时。详见文献:S.Park,D.Kim.Subtle facial expression recognition using motion magnification[J].Pattern Recognition Letters,2009,30(7):708-716。
综上所述,人脸表情识别虽然经过多年的发展,精确提取出表情特征从而进行强鲁棒性人脸表情的识别仍就是一个亟需解决的技术难题,同时提升基于SVM进行表情自动识别时的实时性和准确性仍需要进一步提升。
发明内容
本发明的发明目的在于:提供一种识别准确度高的人脸表情识别方法。
本发明的人脸表情识别方法,包括下列步骤:
步骤1:构建表情特征库
步骤101:从表情库中选择R幅不同人的中性表情图像,其中所述R大于或等于20;
分别在各图像上定位N个表情特征点的位置信息,提取每幅图片的表情特征点信息向量vi=(x1,x2,...,xn,y1,y2,...yn),其中n=1,2,...,N;i=1,2,...,R;并分别对各特征点信息向量vi进行预处理得到 其中分别表示向量vi中N个xn的均值,N个yn的均值;
步骤102:从表情库中选择与步骤1中对应R人的各类表情图片各S幅,其中所述S大于或等于5;
分别在每幅图像上定位N个表情特征点的位置信息,提取每幅图片的表情特征点信息向量其中上标j用于标识不同的表情分类;并分别对各特征点信息向量进行预处理得到 其中分别表示向量中N个xn的均值,N个yn的均值;
步骤103:计算底层表情特征点信息向量
步骤104:基于底层表情特征点信息向量fei j训练各类表情对应的SVM分类器;
步骤105:将底层表情特征点信息向量fei j分别送入步骤4得到的各SVM分类器中,计算每一个底层表情特征点信息向量fei j分别到各SVM分类器的超平面的距离,由各个形成表情特征库;
步骤2:人脸表情识别
步骤201:输入待识别人的人脸中性表情图像,在当前图像上定位N个表情特征点的位置信息,提取位置信息向量v'=(x1,x2,...,xn,y1,y2,...yn),并进行预处理得到 其中分别表示向量v'中N个xn的均值,N个yn的均值;
步骤202:实时输入步骤201所述的待识别人的人脸图像序列,在每一幅图像上定位N个表情特征点的位置信息,提取位置信息向量u'=(x1,x2,...,xn,y1,y2,...yn),并进行预处理得到 其中分别表示向量u'中N个xn的均值,N个yn的均值;
步骤203:将送入步骤104得到的各SVM分类器中进行特征变换处理,得到特征向量featest;
步骤204:计算特征向量featest与表情特征库中各个向量的欧式距离,将欧式距离最小的特征向量j的所对应的表情类别确定为当前待识别人的表情。
本发明通过上述步骤将现有人脸表情识别处理时的分类投票问题在SVM映射的高维空间中转换成了一个向量匹配问题,从而完成了低层表情特征到高层表情特征的转换,低层特征与各个分类超平面的精确距离,使得高层的表情特征具有更强更准确的区分能力。
进一步,本发明对现有的在图像上定位N个表情特征点的位置信息,提取每幅图片的表情特征点信息的处理进行了改进,提出了一种基于随机森林的表情特征点的定位方法,以提升对人脸表情特征点定位的准确度和运算速度。
所谓随机森林,实质是一个组合分类器,将构成随机森林的基础分类器称作决策树。随机森林即是由多颗决策树形成。每课决策树为一个树状预测模型,它由节点和有向边组成的层次结构。决策树中包含3种节点:根节点,内部节点(中间节点),叶子节点(终节点)。每课决策树只有一个根节点,为全体训练数据的集合。决策树中的每个内部节点都是一个分裂问题,它将分到该节点的样本数据按某个特定的属性(分类规则)进行分割成2块。每个叶子节点是带有最终分类结果标签的数据集合。从决策树的根节点到叶子节点的每一条路径都形成一个分类。
本发明改进的在图像上定位N个表情特征点的位置信息具体包括下列步骤:
A.基于采样的人脸表情特征点,训练特征点定位的随机森林:
步骤a1:对训练样本图像进行特征点标记,并记录得到的N个特征点的位置信息;
步骤a2:将训练样本图像随机分为M组图像组,每组图像组分别对应特征点定位的随机森林的一颗决策二叉树Tm,其中m=1,...,M;分别在各图像组的每幅图像上随机抽取若干相同大小的方块bi,标识符i用于区分不同的方块,第m组图像组所包含的所有方块bi构成训练集落入决策二叉树Tm的根节点;
步骤a3:随机生成0到255之间的两个以上随机数τi,构成分离参数组G={τi},基于分离参数组G对决策二叉树Tm的节点进行分类处理:
确定当前待处理节点的最优分离参数τ*:
若方块bi的积分图均值或积分图的任一像素点的值小于分离参数τi,则方块bi属于子训练集PL,否则属于子训练集PR;设当前待处理节点所包含的方块bi构成训练集基于公式计算分离参数τi的分类信息增益IG(τi),即原训练集的不确定度减去分离后2个子训练集的不确定度,对任意训练集P的分类不确定度可通过分类不确定度函数 进行计算,其中p(cn|bi)表示方块bi属于第n个特征点的概率,且k∈(0,1),λ∈[0.1,0.15],其中表示方块bi的中心坐标到第n个特征点的坐标偏移量,|P|表示训练集P所包含的方块bi的个数,Σip(cn|bi)表示对训练集P中所有元素的p(cn|bi)求和;
从分离参数组G中选择分类信息增益IG(τi)最大的τi作为本次最优分离参数τ*,并记录τ*到分类分离参数集合
基于当前最优分离参数τ*,对待处理节点进行分类处理:若训练集中的方块bi的积分图均值或积分图的任一像素点的值小于分离参数τ*,则落入当前节点的左子女节点;否则落入当前节点的右子女节点;
步骤a4:当决策二叉树Tm深度等于预设阈值或当前分类信息增益IG(τi)均低于预设阈值时,创建决策二叉树Tm的一个叶子节点;否则对当前得到的子女节点继续执行步骤a3;
B.人脸表情特征点的定位:
步骤b1:将输入的待定位人脸图像分割成多个相同大小的子块pj,标识符j用于区分不同的子块,所述子块pj的大小与步骤a2中所述的方块bi相同;
步骤b2:将所有的子块pj全部投放到步骤A训练好的随机森林中的每一颗决策树Tm上进行判决,即将当前图像的全部子块pj分别落入M棵决策二叉树Tm的根节点,基于分离参数集合中所记录的决策二叉树Tm各节点的最优分离参数τ*,根据步骤a3所述的分类处理对各子块pj进行分类处理,直到各子块pj落入对应的叶子节点;
在决策二叉树Tm中,子块pj所在的叶子节点定义为由M个叶子节点构成子块pj的定位集Lj;
步骤b3:基于公式分别计算待定位人脸图像的每个像素点对不同特征点n的概率密度,其中函数ψ(·)表示向周围递减的概率密度函数,xn表示待定位人脸图像的各像素点,上标n用于区分计算不同特征点,oj表示子块pj的中心坐标,表示对应落在叶子节点l上的所有方块bi的坐标偏移量的均值;其中表示矩阵的主对角线元素之和,矩阵表示对应落在叶子节点l上的所有方块bi的坐标偏移量的协方差矩阵;
取特征点n的概率密度中最大者所对应的像素点为特征点n在当前待定位人脸图像上的定位位置。
为了进一步降低特征点定位的运算复杂度,在分别计算待定位人脸图像的每个像素点对不同特征点n的概率密度时,对参与计算的各训练集Pm的叶子节点设定限制条件,从而基于公式 分别计算待定位人脸图像的每个像素点对不同特征点n的概率密度,其中α为预设阈值,可基于应用的场景需求根据经验进行设定,通常设置为[0.5,0.8]中的任意实数;其中p(cn|l)表示叶子节点l所包含的各方块bi(定义叶子节点l所包含的所有方块bi构成训练集P)分别属于第n个特征点的概率p(cn|bi)的均值,即其中|P|表示对应叶子节点l的训练集P的元素个数。
综上所述,由于采用了上述技术方案,本发明的有益效果是:
(1)提出一种基于SVM的新的特征变换方法,将分类问题转换成特征匹配问题,比传统用SVM分类投票的表情识别更加准确。
(2)使利用精确定位的各特征点的运动向量形成表情特征,从而实现对特征点的精确定位,并且运算速度快,使得整个定位方法能够满足实时性的要求。
附图说明
图1是实施例中特征点的标记示意图;
图2是实施例中积分图均差的示意图;
图3是实施例中底层表情特征示意图;
具体实施方式
为使本发明的目的、技术方案和优点更加清楚,下面结合实施方式和附图,对本发明作进一步地详细描述。
实施例
步骤1人脸特征点定位。
步骤1-1:训练样本的准备。
从人脸表情图像库中采集多幅人脸图像(本实施例中以1000幅人脸图像为例),得到训练样本图像;
对训练样本图像分别进行特征点标记(共计N个特征点),并记录N个特征点在每幅图像上的位置坐标;本实施例中,设定每幅图像的特征点为34个,其中嘴部,鼻子,左右眼,左右眉毛分别包含6,4,6,6,6个特征点,具体如图1所示,当然本发明的人脸表情特征点的定位方法也同样适用于其他方式的特征点标记;
步骤1-2:将1000幅训练样本图像随机分为M组图像,每组图像组分别对应特征点定位的随机森林的一颗决策二叉树Tm,其中m=1,...,M;然后分别对每组图像进行以下步骤处理:
步骤(1)对一组图像中的每一幅图片,随机抽取若干大小为K*K(通常设定K的取值为8-15之间整数,本实施例中取值为10)像素大小的方块bi(标识符i用于区分不同的方块),并保留每一个方块bi的积分图像I和方块的中心坐标到每一个特征点的偏移向量信息
由每组图像所有的方块bi构成各组图像的训练集其中m=1,...,M;
步骤(2对决策二叉树Tm的节点(根节点,中间节点)进行分类处理,即确定决策二叉树Tm的各中间节点、叶子节点所包含的方块bi:
将训练集落入决策二叉树Tm的根节点;
随机生成0到255之间的两个以上随机数τi,构成分离参数组G={τi},本实施例中,从取值区间[0,255]中,生成20个随机数τi构成分离参数组G,对决策二叉树Tm的节点进行分类处理:
确定当前待处理节点的最优分离参数τ*:
基于方块bi的积分图均值或积分图的任一像素点(优选方块bi的积分图的中点的值)的值与分离参数τi的大小关系,对训练集进行预划分,从而获取分离参数τi的分类信息增益IG(τi),本实施例中,基于方块bi的积分图均差与分离参数τi的大小关系,对训练集进行预划分处理。方块bi的积分图均差f(bi)是指积分图最右下角的点(图2所示的点B)与中心点(图2所示的点A)的值之差的即其中常数C的取区间为[8,15],优选取值为10。
基于分类规则:PL(τ)={bi|f(bi)<τ}和PR(τ)={bi|f(bi)≥τ}对训练集进行预划分,将其分类为两个子训练集PL,PR,τ表示当前所选择的分离参数;
基于子训练集PL,PR所包含的各方块bi,根据公式(1)计算分离参数τi的分类信息增益IG(τi);
公式(1)表示原训练集的不确定度减去分离后2个子训练集的不确定度,其中表示训练集的分类不确定度,H(Ps(τi))表示训练集PL或PR的分类不确定度,|P|表示训练集P所包含的方块bi的个数;
对任意训练集P的分类不确定度可用函数H(P),H(P)的具体计算见公式(2):
公式(2)中,k∈(0,1),λ∈[0.1,0.15],表示方块bi属于第n个特征点的概率,其中其中表示方块bi的中心坐标到第n个特征点的坐标偏移量,|P|表示训练集P的所包含元素的个数;
基于公式(1)(2),分别计算分离参数组G每个分离参数τi的分类信息增益IG(τi),并选择其中分类信息增益IG(τi)最大的τi作为本次最优分离参数τ*,并记录τ*到分类分离参数集合
基于当前最优分离参数τ*,对待处理节点进行分类处理:若训练集中的方块bi的积分图均差值小于分离参数τ*,则落入当前节点的左子女节点;否则落入当前节点的右子女节点;
步骤(3)当决策二叉树Tm深度等于预设阈值(通常取[0.3,05]间的一个实数值,本实施例中设定为0.3)或当前分类信息增益IG(τi)均低于预设阈值(通常取[8,12]间的一个整数值,本实施例中设定为10)时,创建决策二叉树Tm的一个叶子节点;否则对当前得到的子女节点继续执行步骤(2)。
步骤(4)基于训练集完成对决策二叉树Tm的训练完成后,决策二叉树Tm的每个叶子节点l都保存如下信息:
落到叶子节点l上的所有方块bi的中心坐标分别到第n个特征点的坐标偏移量di n的均值(n=1,...,N),N个构成坐标偏移量矩阵Dl;
关于落到叶子节点l上的所有方块bi的中心坐标分别到第n个特征点的坐标偏移量di n的协方差矩阵;
叶子节点l对第n个特征点投票正贡献概率。
由M颗决策二叉树Tm构成本发明的人脸表情特征点定位的随机森林。
步骤1-3:基于步骤1所训练好的随机森林,在待待定位的人脸图像上定位特征点。
步骤(1)对于待定位的人脸图像,将其分割成多个相同大小子块pj,其中块pj的大小与方块bi相同,子块pj的中心坐标用oj表示
步骤(2):将所有的子块pj全部投放到步骤A训练好的随机森林中的每一颗决策树Tm上进行判决,即将当前图像的全部子块pj分别落入M棵决策二叉树Tm的根节点,基于分离参数集合中所记录的决策二叉树Tm各节点的最优分离参数τ*,根据步骤a3所述的分类处理对各子块pj进行分类处理,直到各子块pj落入对应的叶子节点;
在决策二叉树Tm中,将子块pj所在的叶子节点定义为每棵决策二叉树Tm中仅存在一个叶子节点),由M个叶子节点构成子块pj的定位集Lj;
(3)通过一个中心最大,向周围递减的概率密度函数ψ(·)(即ψ(0)=1,ψ(∞)=0)完成各特征点的回归定位计算,本实施例中采用高斯核函数,基于公式分别计算待定位人脸图像的每个像素点对第n个特征点的概率统计投票,公式中xn的上标仅用于区分不同的特征点,即基于当前待定位图像的所有子块pj的中心坐标oj、各子块所对应的集合Lj中所包含的M个节点上的信息和累计得到待定位人脸图像的每个像素点对第n个特征点的概率统计投票值,并从待定位人脸图像的所有像素点中,确定最大概率统计投票值所对应的坐标为第n个特征点的位置信息,从而在待定位人脸图像上完成N个特征点的定位。
步骤2:为了实现本发明的人脸表情识别,首先计算底层表情特征点信息,如图1所示,基于步骤1训练所的随机森林完成对表情图像的表情特征点提取(当然,在该步骤中,也可以基于现有的表情特征点定位方法完成对表情图像的表情特征点提取),并基于与中性表情的表情特征点信息的差分信息,获取包括中性表情在内的不同表情类别的底层表情特征点信息(即图中所示的特征点运动向量图),再基于SVM训练对应的高层表情特征,得到用于表情识别的表情特征库,具体实现过程如下所示:
步骤201:从表情库中选择20幅不同人的中性表情图像,通过上述步骤训练好的随机森林,分别在各图像上定位N(本实施例中N=34)个表情特征点的位置信息,提取每幅图片的表情特征点信息向量vi=(x1,x2,...,xn,y1,y2,...yn),其中n=1,2,...,34;i=1,2,...,20;将其与对应横纵坐标均值做差(预处理)以便于去除偏移的影响,得到 其中分别表示向量vi中N个xn的均值,N个yn的均值;
步骤102:从表情库中选择与步骤1中对应20人的不同表情类别(本实施例针对的表情类别为6种,分别指高兴,愤怒,中性,惊讶,悲伤,厌恶)的表情图片各5幅,并分别在每幅图像上定位N个表情特征点的位置信息,提取每幅图片的表情特征点信息向量其中上标j=1,2...6用于标识不同的表情分类;并分别对各特征点信息向量进行预处理得到 其中分别表示向量中N个xn的均值,N个yn的均值;
步骤103:计算底层表情特征点信息向量
步骤104:基于底层表情特征点信息向量fei j训练各类表情对应的SVM分类器,即将底层表情特征点信息向量fei j中的某一类表情特征作为正样本,其他所有表情特征作为负样本,训练一个SVM分类器。以此类推每一种表情产生一个SVM分类器,一共训练6个SVM分类器;
步骤105:将底层表情特征点信息向量fei j分别送入6个SVM分类器中,计算每一个底层表情特征点信息向量fei j分别到6个SVM分类器的超平面的距离,由各个形成一个6维的高层表情特征库,这就将一个分类投票问题在SVM映射的高维空间中转换成了一个向量匹配问题,从而完成了低层表情特征到高层表情特征的转换,低层特征与各个分类超平面的精确距离,使得高层的表情特征具有更强更准确的区分能力;
步骤2:人脸表情识别
步骤201:输入待识别人的人脸中性表情图像,基于训练好的随机森林,在当前图像上定位34个表情特征点的位置信息,提取位置信息向量v'=(x1,x2,...,xn,y1,y2,...yn),并进行预处理得到 其中分别表示向量v'中N个xn的均值,N个yn的均值;
步骤202:实时输入步骤201所述的待识别人的人脸图像序列,在每一幅图像上定位N个表情特征点的位置信息,提取位置信息向量u'=(x1,x2,...,xn,y1,y2,...yn),并进行预处理得到 其中分别表示向量u'中N个xn的均值,N个yn的均值;
步骤203:将送入步骤104得到的各SVM分类器中进行特征变换处理,得到特征向量featest;
步骤204:计算特征向量featest与表情特征库中的600个向量的欧式距离,欧式距离最小的特征向量j的所代表的表情,即是与之匹配的表情。
以上所述,仅为本发明的具体实施方式,本说明书中所公开的任一特征,除非特别叙述,均可被其他等效或具有类似目的的替代特征加以替换;所公开的所有特征、或所有方法或过程中的步骤,除了互相排斥的特征和/或步骤以外,均可以任何方式组合。