基于共轭梯度法的人脸图像非负特征表示与识别方法、系统及存储介质与流程

文档序号:18303086发布日期:2019-07-31 10:27阅读:284来源:国知局
基于共轭梯度法的人脸图像非负特征表示与识别方法、系统及存储介质与流程

本发明涉及数据处理技术领域,尤其基于共轭梯度法的人脸图像非负特征表示与识别方法、系统及存储介质。



背景技术:

随着信息化时代的到来,利用人体固有的生理特征和行为特征进行个人身份鉴定的生物识别技术成为了一个最活跃的研究领域之一。在生物识别技术的众多分支中,最容易被人们接受的一个技术是人脸识别技术,这是由于相对于其他生物识别技术而言,人脸识别具有无侵害性、非强制性、非接触性和并发性。

人脸识别技术包含两个阶段,第一阶段是特征提取,也就是提取人脸图像中的人脸特征信息,这一阶段直接决定了人脸识别技术的好坏;第二阶段是身份鉴定,根据提取出的特征信息进行个人身份鉴定。主成分分析(pca)与奇异值分解(svd)都是较为经典的特征提取方法,但是这两种方法提出的特征向量通常含有负元素,因此在原始样本为非负数据下,这些方法不具有合理性与可解释性。非负矩阵分解(nmf)是一种处理非负数据的特征提取方法,它的应用非常广泛,比如高光谱数据处理、人脸图像识别等。nmf算法在原始样本非负数据矩阵分解过程中,对提取的特征具有非负性限制,即分解后的所有分量都是非负的,因而可以提取非负的稀疏特征。nmf算法的实质也就是将非负矩阵v近似分解为基图像矩阵w和系数矩阵h的乘积,即v≈wh,且w和h都是非负矩阵。这样矩阵v的每一列就可以表示成矩阵w列向量的非负线性组合,这也符合nmf算法的构造依据——对整体的感知是由对组成整体的部分的感知构成的(纯加性)。传统的nmf算法是基于梯度下降法实现的,导致其收敛速度较慢。为了加快nmf算法的收敛速度,有学者提出用共轭梯度法来代替梯度下降法,来优化非负矩阵分解的目标函数。但是,共轭梯度法难以保证分解后的结果具有非负性。为了解决这一问题,有学者提出用投影梯度法直接将结果中出现的负数直接变为0。这样做很大程度上改变了共轭梯度法本身的性质。

相关的技术方案:

1.基于乘性迭代算法的非负矩阵分解(mu-nmf)

在非负矩阵分解中,乘性迭代算法是最常用的方法之一,具有易于实现,效果优良等优点。其算法框图如下:

2.基于加速乘性迭代算法的非负矩阵分解(accmu-nmf)

为了提高计算效率,避免重复计算,有学者提出了一种加速乘性迭代算法。

其算法框图如下:

3.基于投影非线性共轭梯度法的非负矩阵分解(pncg-nmf)

无论是乘性迭代算法,还是加速乘性迭代算法,它们都是基于梯度下降法实现的,会出现一个收敛速度较慢的问题。故有学者提出了基于投影非线性共轭梯度法的非负矩阵分解,其算法框图如下:

相关技术的缺点:

1、传统的基于乘性迭代算法的非负矩阵分解(accmu-nmf)和基于加速乘性迭代算法的非负矩阵分解(accmu-nmf)都是基于梯度下降法构建的,导致其收敛速度较慢。

2、基于投影非线性共轭梯度法的非负矩阵分解(pncg-nmf)用到了矩阵的克罗内克积,这大大增加了算法的计算量。



技术实现要素:

本发明提供了一种基于共轭梯度法的人脸图像非负特征表示与识别方法,包括训练步骤,所述训练步骤包括如下步骤:

第一步骤:将训练样本图像转化为训练样本矩阵v,设置误差阈值ε、最大迭代次数imax,并输入训练样本矩阵v、误差阈值ε和最大迭代次数imax

第二步骤:对基图像矩阵w和系数矩阵h进行初始化;

第三步骤:设置迭代次数n=0;

第四步骤:根据公式(7)更新基图像矩阵w和系数矩阵h;

第五步骤:使n=n+1;

第六步骤:判断目标函数f(w,h)≤ε或迭代次数n是否达到最大迭代次数imax,如果是,那么输出基图像矩阵w和系数矩阵h,否则执行第四步骤;

在第四步骤中,公式(7)如下:

在公式(7)中,θ表示步长,phk-1和pwk-1分别是h和w第k-1步的搜索方向,wk和hk表示w和h的第k次迭代值,ε为给定的较小正数,w表示基图像矩阵,h表示系数矩阵。

作为本发明的进一步改进:该人脸图像非负特征表示与识别方法还包括在训练步骤之后再执行识别步骤,所述识别步骤包括:

第七步骤:计算训练样本中每类的平均特征向量mj(j=1,…,c),c为不同人脸类别数,j为第j类的标记数;

第八步骤:输入待识别人脸图像y,计算其特征向量hy=w+y,其中w+为w的moore-penrose逆;

第九步骤:计算待识别人脸图像的特征向量hy到每类的平均特征向量mj的距离,若hy与mj的距离最小,则将待识别人脸图像y归于第p类;

第十步骤:输出类别p,从而完成人脸识别。

本发明还提供了一种基于共轭梯度法的人脸图像非负特征表示与识别装置,包括训练模块,所述训练模块包括:

输入模块:用于将训练样本图像转化为训练样本矩阵v,设置误差阈值ε、最大迭代次数imax,并输入训练样本矩阵v、误差阈值ε和最大迭代次数imax;

初始化模块:用于对基图像矩阵w和系数矩阵h进行初始化;

赋值模块:用于设置迭代次数n=0;

更新模块:用于根据公式(6)更新基图像矩阵w和系数矩阵h;

计数模块:使n=n+1;

判断模块:判断目标函数f(w,h)≤ε或迭代次数n是否达到最大迭代次数imax,如果是,那么输出基图像矩阵w和系数矩阵h,否则执行更新模块;

在更新模块中,公式(7)如下:

在公式(7)中,θ表示步长,phk-1和pwk-1分别是h和w第k-1步的搜索方向,wk和hk表示w和h的第k次迭代值,ε为给定的较小正数,w表示基图像矩阵,h表示系数矩阵。

作为本发明的进一步改进:该人脸图像非负特征表示与识别装置还包括在训练模块之后再执行识别模块,所述识别模块包括:

平均特征向量计算模块:用于计算训练样本中每类的平均特征向量mj(j=1,…,c),j为第j类的标记数,c为不同的人脸类别数;

特征向量计算模块:用于输入待识别人脸图像y,计算其特征向量hy=w+y,其中w+为w的moore-penrose逆,w表示基图像矩阵;

距离计算模块:计算待识别人脸图像的特征向量hy到每类的平均特征向量mj的距离,若hy与mj的距离最小,则将待识别人脸图像y归于第p类;

输出模块:用于输出类别p,从而完成人脸识别。

本发明还公开了一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,所述计算机程序配置为由处理器调用时实现本发明所述的方法的步骤。

本发明还公开了一种基于共轭梯度法的人脸图像非负特征表示与识别系统,包括:存储器、处理器以及存储在所述存储器上的计算机程序,所述计算机程序配置为由所述处理器调用时实现本发明所述的方法的步骤。

本发明的有益效果是:本发明通过利用共轭梯度法替代梯度下降法去求解非负矩阵分解,加快了收敛速度;本发明构建的非负矩阵分解算法在人脸数据库上能得到较为稀疏的基图像,通过在公开的人脸数据库中与相关算法进行实验比较,结果表明本发明开发的方法具有一定的优越性。

附图说明

图1是本发明的算法构造过程流程图;

图2是本发明的方法流程图;

图3是本发明的方法与相关算法(mu-nmf,accmu-nmf和pncg-nmf)

的收敛速率比较图;

图4是本发明方法与相关算法(mu-nmf,accmu-nmf,pncg-nmf)在yale人脸数据库上的识别率比较图。

具体实施方式

本发明主要通过对迭代更新公式中步长的限制,从而满足非负性的要求。这样做既保留了共轭梯度法本身的性质,同时使分解有一个较快的收敛速度。我们通过一个巧妙的方法从理论上证明了算法的收敛性,并通过实验验证了算法的有效性。在公开的人脸数据上的实验表明,我们的算法具有更好的人脸识别效果。

本发明的主要目的有:

1.提出了一种新的共轭梯度算法来代替梯度下降法作为非负矩阵分解的优化算法,通过限制每次更新的步长来保证非负性。

2.基于共轭梯度算法,开发出了一种新的具有高识别性能与收敛速度的人脸识别方法。

一.关键词解释:

1.符号说明

x矩阵

a,b向量

ab向量a与b的内积

xij矩阵x的第ij个元素

xtx的转置

矩阵a与b的克罗内克积

a⊙b矩阵a与b中对应元素的积

矩阵a与b中对应元素的商

ad矩阵a的第d次迭代

2.非负矩阵分解(non-negativematrixfactorization,nmf)

nmf的基本思想是将一个非负样本矩阵近似分解为两个非负矩阵的乘积,即:

v≈wh,

其中,分别被称为基图像矩阵和系数矩阵。并且,通过构建损失函数度量v与wh之间的逼近程度,通常损失函数是基于f-范数被定义的,为:

f(w,h)=||v-wh||2.(1)

这里||·||表示f-范数。

3.共轭梯度法(conjugategradient)

共轭梯度法是解大型线性方程组最有用的方法之一,它仅需利用一阶导数信息,克服了梯度下降法收敛慢的缺点。考虑求解线性对称正定方程组ax=b,其算法框图如下:

二.具体技术方案:

1.基于共轭梯度算法的非负矩阵分解(cg-nmf)

目标函数的构建

考虑非负向量v,固定非负矩阵w,则目标函数可写为:

求该目标函数的极小值等价于求wtwh-wtv=0的解。这是一个线性对称正定方程组,故可以用共轭梯度算法来求解。

我们先初始化h0,计算残量p0=wtv-wtwh。

下面,我们推导h的迭代公式:

这里θ∈[0,1],ε≥0。由于pk中可能含有负数,故我们把它分成两个部分:

为保证非负性,我们令θhk-αk((pk)-+ε)=0,则有

带入h的迭代公式(3),化解可得:

搜索方向pk的更新规则如下:

pk+1=-gk+1+bkpk(5)

这里-gk+1=-(wtwhk-wtv)表示负梯度,为保证沿搜索方向,目标函数的值是下降的,我们要求搜索方向pk与负梯度方向-gk的內积pk·(-gk)大于0,即它们的夹角小于90度。

接下来,我们将证明算法的收敛性。为此,首先记则由h的迭代公式(4)可以看出hk+1-hk=θηk,即ηk是hk的搜索方向。对于收敛性我们有如下定理:

定理1:固定w,取且ηk满足ηk·(-gk)>0,则目标函数f(h)在h的迭代公式(4)下是单调非增的。

证明:令δh=hk+1-hk=θηk,由泰勒公式可得:

移项可得

又由于这里由于ηk·(-gk)>0,可知是一个正数。将θ的值带入(6),可得f(hk+1)-f(hk)≤0。故可知目标函数f(h)在迭代公式(4)下是非增的。

综上,我们可得对于非负矩阵分解v=wh,通过共轭梯度算法求得的迭代公式如下:

其中,θ表示步长,phk-1和pwk-1分别是h和w第k-1步的搜索方向。类似定理1,可证目标函数在w的迭代下也是单调不增的。故我们的基于共轭梯度的非负矩阵分解迭代公式(7)是收敛的。

下面是基于共轭梯度算法的非负矩阵分解的算法框图:

综上,利用共轭梯度相关知识得到了一种高效的非负矩阵分解算法,运用巧妙的方法证明了本发明算法的收敛性,从理论上保证了算法的合理性。

如图2所示,本发明提供了一种基于共轭梯度法的人脸图像非负特征表示与识别方法,包括训练步骤,所述训练步骤包括如下步骤:

第一步骤:将训练样本图像转化为训练样本矩阵v,设置误差阈值ε、最大迭代次数imax,并输入训练样本矩阵v、误差阈值ε和最大迭代次数imax;

第二步骤:对基图像矩阵w和系数矩阵h进行初始化;

第三步骤:设置迭代次数n=0;

第四步骤:根据公式(7)更新基图像矩阵w和系数矩阵h;

第五步骤:使n=n+1;

第六步骤:判断目标函数f(w,h)≤ε或迭代次数n是否达到最大迭代次数imax,如果是,那么输出基图像矩阵w和系数矩阵h,否则执行第四步骤;

在第四步骤中,公式(7)如下:

在公式(7)中,θ表示步长,phk-1和pwk-1分别是h和w第k-1步的搜索方向,wk和hk表示w和h的第k次迭代值,ε为给定的较小正数,w表示基图像矩阵,h表示系数矩阵。

该人脸图像非负特征表示与识别方法还包括在训练步骤之后再执行识别步骤,所述识别步骤包括:

第七步骤:计算训练样本中每类的平均特征向量mj(j=1,…,c),j为第j类的标记数,c为不同人脸类别数;

第八步骤:输入待识别人脸图像y,计算其特征向量hy=w+y,其中w+为w的moore-penrose逆,,w表示基图像矩阵;

第九步骤:计算待识别人脸图像的特征向量hy到每类的平均特征向量mj的距离,若hy与mj的距离最小,则将待识别人脸图像y归于第p类;

第十步骤:输出类别p,从而完成人脸识别。

输出类别p,表示待识别人脸图像y被识别为第p个人脸类别,所以输出类别p后,人脸识别就完成了。

本发明还提供了一种基于共轭梯度法的人脸图像非负特征表示与识别装置,包括训练模块,所述训练模块包括:

输入模块:用于将训练样本图像转化为训练样本矩阵v,设置误差阈值ε、最大迭代次数imax,并输入训练样本矩阵v、误差阈值ε和最大迭代次数imax;

初始化模块:用于对基图像矩阵w和系数矩阵h进行初始化;

赋值模块:用于设置迭代次数n=0;

更新模块:用于根据公式(7)更新基图像矩阵w和系数矩阵h;

计数模块:使n=n+1;

判断模块:判断目标函数f(w,h)≤ε或迭代次数n是否达到最大迭代次数imax,如果是,那么输出基图像矩阵w和系数矩阵h,否则执行更新模块;

在更新模块中,公式(7)如下:

在公式(7)中,θ表示步长,phk-1和pwk-1分别是h和w第k-1步的搜索方向,wk和hk表示w和h的第k次迭代值,ε为给定的较小正数,w表示基图像矩阵,h表示系数矩阵。

该人脸图像非负特征表示与识别装置还包括在训练模块之后再执行识别模块,所述识别模块包括:

平均特征向量计算模块:用于计算训练样本中每类的平均特征向量mj(j=1,…,c),j为第j类的标记数,c为不同的人脸类别数;

特征向量计算模块:用于输入待识别人脸图像y,计算其特征向量hy=w+y,其中w+为w的moore-penrose逆,w表示基图像矩阵;

距离计算模块:计算待识别人脸图像的特征向量hy到每类的平均特征向量mj的距离,若hy与mj的距离最小,则将待识别人脸图像y归于第p类;

输出模块:用于输出类别p,从而完成人脸识别。

本发明还公开了一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,所述计算机程序配置为由处理器调用时实现本发明所述的方法的步骤。

本发明还公开了一种基于共轭梯度法的人脸图像非负特征表示与识别系统,包括:存储器、处理器以及存储在所述存储器上的计算机程序,所述计算机程序配置为由所述处理器调用时实现本发明所述的方法的步骤。

我们随机生成了40行30列的非负矩阵,使用基于乘性迭代算法的非负矩阵分解(mu-nmf),基于加速乘性迭代算法的非负矩阵分解(accmu-nmf),基于投影非线性共轭梯度法的非负矩阵分解(pncg-nmf)和本发明基于共轭梯度法的人脸图像非负特征表示与识别方法(cg-nmf)对其进行分解。这四种算法的收敛速度如图3所示。在公开的数据库上的实验表明,本发明具有更好的识别率,如图4所示。同时,我们将本发明基于共轭梯度法的人脸图像非负特征表示与识别方法(cg-nmf)应用于cbcl数据库中,得到了十分稀疏的基图像。

本发明的有益效果:

1.通过利用共轭梯度法替代梯度下降法去求解非负矩阵分解,加快了收敛速度。

2.本发明所提出的方法的收敛性,不仅在理论上进行了证明,而且在实验中也得到了验证,本发明的方法具有较高的收敛性。

3.通过在公开的人脸数据库中与相关算法进行实验比较,结果表明本发明开发的方法具有一定的优越性。

4.本发明构建的非负矩阵分解算法在人脸数据库上能得到较为稀疏的基图像。

以上内容是结合具体的优选实施方式对本发明所作的进一步详细说明,不能认定本发明的具体实施只局限于这些说明。对于本发明所属技术领域的普通技术人员来说,在不脱离本发明构思的前提下,还可以做出若干简单推演或替换,都应当视为属于本发明的保护范围。

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