本发明属于人脸面部识别技术领域,涉及一种改进的增量非负矩阵分解人脸识别算法。
背景技术:
人脸面部识别是一种基于人脸面部图像特征进行身份辨认技术,作为一种生物信息认证智能技术,已广泛应用于计算机视觉和模式识别等领域,比如身份识别、安全监控、电子商务等。人脸面部识别技术一贯是学者们探究的热门课题。但是大多数现有的面部识别技术仅在理想的情况下能够获得较好的结果,例如均匀光照,表情和姿势的微小变化,且没有遮挡下。但在实际应用中,很难保证其终端可以固定不动,导致很难保证理想的成像条件问题。因此,非理想条件下的人脸面部辨识方法已变成移动身份识别中需要解决的问题。特别是在非均匀光照下的人脸识别研究,依然是当前挑战和热点之一在人脸识别技术研究中。
近年来,人脸面部识别算法主要包括传统的局部二值模式(lbp)算法、传统增量非负矩阵分解(inmf)算法、sift特征算法、ldp算法等特征提取算法。这些算法虽然可以在一定程度上改善人脸辨识效果,但仍然会有一定的缺陷。传统的lbp对灰度和旋转具有不变性,为一种有效的非全局纹理描述算子,但过分依赖于中心点像素的灰度值,且对其一致的光照变化不敏感;传统增量非负矩阵分解(inmf)算法虽然有效地避免了向基矩阵添加新的人脸面部图像训练样本后的重新运算问题,但基于缺乏利用初始训练样本和新增训练样本的类别信息而导致判别力失效,从而影响到整个人脸面部识别分类的准确性;sift算法具有尺度不变性,可在图像中检测出关键点,是一种局部特征描述子,但是该算法特征对于尺度,旋转和仿射变换都具有不变性,且计算时间过于冗长,导致难以达到实时性要求;ldp算法虽然对噪声的鲁棒性好,可是ldp编码值很难反应出中心像素的局部表征向量。
技术实现要素:
本发明的目的在于提供一种改进的增量非负矩阵分解人脸识别算法。该方法是一种中心对称的局部二阶微分模式(cs-ldp)与改进增量非负矩阵分解(iinmf)相融合的算法。该算法采用中心对称的局部二阶微分模式(cs-ldp)算法和改进的增量非负矩阵分解(iinmf)算法分别提取其人脸面部图像的表征向量,并利用典型相关分析(cca)将其上述两种算法所提出来的人脸表征向量进行融合,得到最终的人脸面部图像特征。
其具体技术方案为:
一种改进的增量非负矩阵分解人脸识别算法,包括以下步骤:
(1)随机选择人脸面部图像中n幅图像当为训练样本,除此之外为测试样本人脸面部图像;将每幅人脸原始面部图像进行划分并分成相等大小的块以便于特征提取;
(2)将分块之后的每个训练样本子图像提取cs-ldp的特征向量用
(3)提取改进增量式非负矩阵分解(iinmf)用
(4)利用公式
(5)利用最近邻分类器进行分类识别。
含义:cs-ldp:中心对称局部二阶微分模式
与现有技术相比,本发明的有益效果:
本发明的算法采用中心对称的局部二阶微分模式(cs-ldp)算法和改进的增量非负矩阵分解(iinmf)算法分别提取其人脸面部图像的表征向量,并利用典型相关分析(cca)将其上述两种算法所提出来的人脸表征向量进行融合,得到最终的人脸面部图像特征。实验证明,提出的算法能够在非均匀关照具有很好地提取人脸特征,拥有很高的识别率,稳定的实时性和鲁棒性。
附图说明
图1是基于中心对称的局部二阶微分模式与改进增量非负矩阵分解相融合的人脸识别算法流程图;
图2是orl人脸数据库识别率;
图3是yale人脸数据库识别率。
具体实施方式
下面结合实施例对本发明的技术方案作进一步详细地说明。
1中心对称局部二阶微分模式(cs-ldp)
中心对称的局部二阶微分模式识别算法是二阶微分算法在图像识别中的应用,可以将相邻域像素值与中心像素值对比,在以gc为中心像素点的相邻域内,有n个相邻域像素点gi(i=0,1,…,n-1),将gi与gc的灰度值作对比,记作x1,进而进行比较gc与gi+(n/2)的值,记作x2。若x1与x2的乘积大于0则赋值为1,否则为0。当n=8时,恰好得到四个t(x1,x2)值来形成一个四位二进制数,并将其转换为十进制数之后即为cs-ldp的值。公式如下:
x1=gi-gc,x2=gc-gi+(n/2)(1)
其中,n是相邻域像素个数,为cs-ldp算法为8时相邻域的编码。cs-ldp算法提高了识别速率并利用了相邻域像素点和中心像素点之间的关系,但是,它仅在四个方向上提取其人脸面部图像特征值,这就会产生对人脸面部图像的特征识别提取不够准确。
2传统增量非负矩阵分解(inmf)
虽然传统的非负矩阵分解算法可以通过分解生成低秩矩阵,也就是利用较少的元素用于表达大量数据,以便节省数据存储空间,但也有一个需要重视的问题:当为每次训练添加新的样本数据时,需要再次迭代由先前分解生成的基本矩阵w和系数矩阵h。因此,在大规模初始训练数据的情况下,每次进行新的迭代求解所消耗的时间也非常大。增量式非负矩阵分解(inmf)算法利用了其分块矩阵的思想,并在添加新的训练样本时使用先前分解中获得的结果,这大大减少了重新学习阶段的计算时间。其算法思路如下:
假设初始数据有k个训练样本,当第k+1个训练样本参与后,其目标变量函数fk+1为:
将基矩阵w的每列wi被认为是构建训练样本的基本元素,并且系数矩阵h的每列hi被视为参与重建的每个基本元素的权重。通过这种方式,可以发现随着训练样本数量的增加,新训练样本的表达能力将逐渐降低。因此,当初始训练样本数足够大时,作为基本元素集的基础矩阵w由于添加新样本而不会改变太多。类似地,对应于初始训练样本vi的系数向量hi几乎是恒定的。于是可对目标函数fk做如下近似:
由此可以获得其目标函数fk与fk+1之间的关系如式(6)所示,其中fk+1是添加样本后目标函数的增量。
在获得目标函数的增量表达式后,利用梯度下降法用于交替迭代更新对基矩阵wk+1和系数矩阵增量部分hk+1,其更新原则如等式(7)、(8)所示:
3改进增量非负矩阵分解(iinmf)
虽然传统的非负矩阵分解算法可以被分解并构造为低秩矩阵模式,也就是用较少的元素数据阐述了众多数据的元素,节省了大量其数据的存储空间,但也有一个不可忽略的问题:当为每次训练添加新的样本数据时,需要再次迭代计算由先前分解生成的基本矩阵w和系数矩阵h。这样就在大范围的初始训练数据的结构下,解决重新迭代的耗时也相当大。尤其是传统增量式非负矩阵分解在利用梯度下降法对系数矩阵的增量部分hk+1进行更新时,其初始值设定为当前系数矩阵h的末端列向量,即:
(hk+1)init=hk(9)
尽管这种hk+1的初始化方法很方便,但它并不是很好地利用新添加的样本的类别信息,就必然干扰数据收敛的成效。同时,由于hk+1迭代初始数据设定不妥,使用梯度下降法进行优化时很容易偏离局部最小值,这进一步影响了分类精度。对于这一现象,改进了传统的增量非负矩阵分解算法(iinmf),基于训练样本和新样本之间的类别信息。方法如下:
给定k个训练样本及其相应的类别信息,其集合可表达为:
其中,
图像样本数据,c为样本类别的总量,kc为第c类数据的样本数据,并满足k=k1+k2+…+kc
在通过非负矩阵分解算法分解训练样本v之后,可以获得具有类别信息的系数矩阵h如等式(11)
一般认为当
然后,通过梯度下降法轮流迭代,以在添加新样本之后获得终极系数矩阵的增量hk+1和最新基础矩阵wk+1。其具体算法步骤如下:
(1)初始化非负矩阵w和h;
(2)对于涵盖k个初始训练样本的数据图像集v,按照以下要求来迭代,直至达到收敛条件为止:
(3)每次添加新的训练样本
(4)按以下要求更新wk+1和
(5)将更新后的
以上各式中i=1,2,…,n,c=1,2,…,c,j=1,2,…,m,a=1,2,…,r
4典型相关分析(cca)
典型相关分析是一种表示多变量之间关系的统计解析方法,即说明了两组特征向量之间的相关特性。即对于一对零均值特征向量x∈rp,y∈rq,rq,就是要寻求其一对基向量(wx,wy)让其特征向量投影
通常,基向量(wx,wy)可以利用以下等式(18)中的标准函数来获得。
在上面的等式中,sxy代表x与y之间的互协方差矩阵,且sxx与syy分别表示x和y的协方差矩阵。在本发明中,将线性变化的结果zf被用作特征向量,且x和y投影之后的组合特征向量被用于分类,如等式(19):
5本发明融合人脸识别算法概述
本发明提出的中心对称的局部二阶微分模式(cs-ldp)与改进增量非负矩阵分解(iinmf)算法相融合的算法。该算法采用中心对称的局部二阶微分模式(cs-ldp)算法和改进的增量非负矩阵分解(iinmf)算法分别提取其人脸面部图像的表征向量,并利用典型相关分析(cca)将其上述两种算法所提出来的人脸表征向量进行融合,得到最终的人脸面部图像特征。
本发明算法过程如下:
(1)随机选择人脸面部图像中n幅图像当为训练样本,除此之外为测试样本人脸面部图像;
将每幅人脸原始面部图像进行划分并分成相等大小的块以便于特征提取;
(2)将分块之后的每个训练样本子图像提取cs-ldp的特征向量用
(3)提取改进增量式非负矩阵分解(iinmf)用
(4)利用公式(19)的特征融合策略将cs-ldp的直方图特征与改进增量式非负矩阵分解(iinmf)直方图特征进行融合,得到最终的融合特征z。
(5)利用最近邻分类器进行分类识别。
本发明基于中心对称的局部二阶微分模式(cs-ldp)与改进增量非负矩阵分解(iinmf)相融合的算法识别流程图如图1所示:
6实验结果及分析
本发明仿真实验采用了orl和yale两个标准人脸面部图像数据库进行验证实验。orl人脸数据库共包含40人的400幅人脸面部图像,同一张人脸面部图像在姿态、表情以及面部配饰方面都有一定程度的改变。yale人脸数据库包含165幅共15人的人脸面部图像,并且相同的人脸面部图像在姿势、表情和光照等方面都有所不同。实验中的orl和yale两个标准人脸面部图像数据库中的每个人脸面部图像的原始分辨率都为112×92像素。我们通过预处理将orl和yale两个标准人脸面部图像数据库的面部图像均裁剪压缩为32×32像素的分辨率图像。
6.1基于不同特征维数的人脸识别率
在这部分仿真测试实验中,我们将orl人脸面部图像数据库和yale人脸面部图像数据库进行仿真测试,实验中采用了20人共200幅人脸面部图像作为人脸面部数据库进行训练,并将每幅图像转换为36*48像素大小。实验中采用了gabor算法、cs-ldp算法、改进非负矩阵算法和本发明算法。实验结果如图1、图2、所示。
表1不同特征维数下的orl人脸数据库识别率
表2不同特征维数下的yale人脸数据库识别率
从表1和表2可知,在不同特征维数下的orl人脸面部图像数据库和yale人脸面部图像数据库中本发明提出的算法即基于中心对称的局部二阶微分模式(cs-ldp)融合改进增量非负矩阵分解(iinmf)算法识别率为最高,人脸面部图像识别率最高达到了98.90%在orl人脸面部图像数据库中,比gabor算法高出14.45%,比cs-ldp算法高出7.84%;其次是改进增量非负矩阵分解(iinmf)算法,识别率为95.47%,比gabor算法高11.02%和cs-ldp算法高4.41%。在yale人脸面部图像数据库中识别率最高达到了98.95%,比gabor算法高13.39%,比cs-ldp算法高9.97%;其次是本发明改进增量式非负矩阵分解(iinmf)算法,最高识别率为95.83%,高于gabor算法10.27%和cs-ldp算法6.85%。说明本发明所提出的基于中心对称的局部二阶微分模式(cs-ldp)融合改进增量非负矩阵分解(iinmf)算法能够很好地提取出人脸特征,特别是在非均匀光照下的人脸面部图像特征的提取。
6.2改进非负矩阵分解算法识别率性能比较
为了反应改进增量非负矩阵分解(iinmf)算法的卓越性,比较了其识别率性能。通过非负矩阵分解提取的人脸面部图像特征量主要反应在人脸面部的表征量模块,免去了减去人脸局部表征信息量的情况,特别是利用改进非负矩阵分解(iinmf)算法分解出的人脸面部图像,反映了人脸面部图像的一般轮廓表征信息,其更好的仿照了人的视觉感知过程,也就是说对叠加图像的过程。根据迭代次数的不同,对比了基于传统的非负矩阵分解算法之间的消耗时间和改进的非负矩阵分解(iinmf)算法所消耗时间,通过表3可以看出,改进的非负矩阵分解(iinmf)算法的分解时间要快于传统的非负矩阵分解时间,提高了人脸面部辨识效果。
表3分解时间对比
6.3时间测试分析
最后,为了验证本发明算法的出色性,进行了时间测试。测试所用的硬件设备为intelcorei7,4g内存;仿真环境为matlab2014b。本发明采用yale人脸面部数据库为测试人脸面部数据库,并且选择每个人的5幅人脸面部图像为训练样本,然后将其他人脸面部图像作为测试样本。
由表4可见,本发明算法无论在训练平均时间还是在识别平均时间上都体现的最佳的状态,其次是改进增量非负矩阵分解(iinmf)算法,这也反应了改进增量式非负矩阵分解算法所消耗时间的优良性。所以本发明所提出的算法优于其他算法,具有良好的实时性。
表4不同算法的时间测试
7结论
本发明提出的中心对称的局部二阶微分模式(cs-ldp)与改进增量非负矩阵分解(iinmf)算法相融合的算法。该算法采用中心对称的局部二阶微分模式(cs-ldp)算法和改进的增量非负矩阵分解(iinmf)算法分别提取其人脸面部图像的表征向量,并利用典型相关分析(cca)将其上述两种算法所提出来的人脸表征向量进行融合,得到最终的人脸面部图像特征。实验证明,提出的算法能够在非均匀关照具有很好地提取人脸特征,拥有很高的识别率,稳定的实时性和鲁棒性。
以上所述,仅为本发明较佳的具体实施方式,本发明的保护范围不限于此,任何熟悉本技术领域的技术人员在本发明披露的技术范围内,可显而易见地得到的技术方案的简单变化或等效替换均落入本发明的保护范围内。