彭梦冉
(安徽工商职业学院信息工程学院,合肥 231131)
人脸识别是利用计算机提取人脸的相关特征,并由此辨别人物身份的一种应用技术,与其他生物特征识别技术相比,它具有无侵犯性、便于安装、成本投入少、不需要人工完成就可以自动执行等优势,因此,人脸识别技术广泛应用于信息、公共、金融等安全领域。
整个人脸识别的流程如图1所示,其中人脸图像的特征提取是人脸识别过程中最关键的技术之一,它在寻求最具有鉴别性的描述特征的同时,可以在适当的情况下实现模式数据描述的维数约减。常用的人脸特征提取方法有基于几何特征方法、基于特征脸方法、局部特征法和基于弹性模型法等。而非负矩阵分解算法就是一种局部特征提取方法。
图1 人脸识别流程
非负矩阵分解算法是由日本学者Lee和Seung于1999年在《Nature》上发表的论文中提出的,与其他矩阵分解相比,其特点是找出表明事物中隐藏的特征,用局部特征的方式去辨别物体本身,同时加入了非负元素值的约束条件。
非负矩阵分解算法的基本思想是对于给定的任意一个n行m列非负矩阵V,能够找到一个非负矩阵W和一个非负矩阵V,使其满足V=WH,其中r的选择要满足(n+m)r Lee和Seung引入目标函数概念,该目标函数为K-L散度与欧式距离,度量时采用欧式距离时,目标函数如下: (1) 目标函数采用欧氏距离‖V-WH‖度量,从负梯度方向进行迭代,则在如下的更新规则下非增: (2) (3) 已知非负数据矩阵与可接受最大误差,计算得到非负分解矩阵。 1) 初始化矩阵; 2) 应用迭代公式运算,循环: (4) (5) 3)当误差小于给定的最小误差ε时,或者达到最大迭代次数时,停止。 非负矩阵分解在人脸识别中的应用原理是经过NMF分解,人脸可以分为各个局部特征(眼睛、鼻子、嘴巴),在压缩数据的同时,由于NMF不允许基图像中出现负值,只有相加组合得到正确基图像才被允许,因此,实际上是用基图像来代表眼、眉毛、鼻子、嘴、耳朵、胡子等,将它们相加组成了数据库中的脸,符合局部构成整体的可解释性。 图2 NMF误变化趋势 非负矩阵分解有个非常大的缺点,就是它的收敛速度非常慢,而且也不稳定,所以需要对传统的非负矩阵分解算法进行改进。 采用Lee和Seung提出的方法进行非负矩阵的分解,在每次进行迭代更新时,通常并不能直接计算出唯一的最优非负分解矩阵。但如果采用矩阵变换的方法,假设待分解矩阵V,基数矩阵W和系数矩阵H中,有两个矩阵是已知的,则对于变换后代价函数,就有可能获得唯一的最优非负分解矩阵。 改进的非负矩阵分解算法的基本思想是对于待分解矩阵V,除了非负约束条件外,并没有其他约束条件,而最速下降法是解无约束问题的一种最优化方法,故在本文中可以采用最速下降法来解局部最优解。同时,鉴于最速下降法在接近极小值点时收敛速度慢的缺点,可以在基于最速下降法对NMF分解的基础上填加稀疏约束条件,以此来获取相对稀疏的分解信息,从而提高计算速度。 假设f连续可微,取 (6) 步长λk由精确一维搜索得到,从而得到第k+1次迭代,即 xk+1=xk+λkdk=xk-λkf(xk), (7) 其中dk=-f(xk)是负梯度方向,是函数值减少最快的方向。 最速下降法的算法流程可以归纳如下: 1)选定某一初始点x0,ε>0,并令k=0; 3)dk=-f(xk); 4)由精确一维搜索确定步长λk,即由一个极小化问题求最佳步长: 令xk+1=xk+λkdk=xk-λkf(xk),k=k+1,转2)。 稀疏是指利用少量的元素有效地替代大量的数据和向量。即大多数元素为0,只有少量的元素不为0,通常度量稀疏程度的方法是利用一个从Rn→R的映射,度量标准是仅含有一个非零元的向量是最稀疏的,该向量的稀疏度为1,而所有元素都相等且都不为0的向量的稀疏度为0。显然稀疏度越接近于1越好。 通常利用向量1-范数和2-范数来度量稀疏度,且有如下定义: (8) 式中n是向量x的维度, ∴始终有0≤spa(x)≤1 显然,式(8)是关于x的连续函数,并且有如下性质: 1)当x1=x2=x3=…=xn≠0时,spa(x)=0; 2)当x只有一个非零元素时,spa(x)=1。 同理,假设W已知,最小化‖H‖1,就可以使矩阵H获得较高的稀疏度。 在可接受误差ε与非负数据矩阵V已知的条件下,计算非负分解矩阵: 1)通过初始化Wia>0,Haj>0,∀i,a,b,j矩阵; 2)运用迭代公式运行,重复执行k=1,2,…,st: 3)‖V-WH‖误差值低于ε,迭代次数达到最高后停止运行。 为了比较非负矩阵分解算法和基于最速下降法的非负矩阵分解算法在人脸识别中的识别效果。本实验选取英国剑桥大学创建的ORL人脸数据库,此数据库中的图像收集由40人组成,分别收集每个人在不同光照与不同表情、不同面部饰物与不同姿态情况下拍摄10张灰度图像,总共得到400张灰度图像,每张图像的像素大小均为112×92。每人取5张相片合计200张相片组成训练集,剩下的200张相片作为测试集,通过对训练集的矩阵V进行非负矩阵分解,得到特征基矩阵W和系数矩阵H。分别计算测试集中每张相片的数据向量在特征矩阵W上的系数矩阵H中的各列的相似程度最终确定相片的归属。 1)训练样本集中有200个训练样本,由40个人的每人5张人脸图像组成,每幅样本图像的像素为112×92。把每一个样本的像素矩阵的每一列元素串成一列,使每一个训练样本用一个列向量表示,这样整个训练样本是一个112×92行、200列的矩阵,记为V。 2)通过NMF的迭代公式求出W和H。 3)求出重构图像V=WH。 实验一:假设ε=0.05,λ1=0.02,λ2=0.01,降维维度r=30,迭代200次时,分别比较传统的NMF和本文提出的SNMF算法的误差变化趋势、运行时间和图像重构结果。误差趋势比较如图3所示。 (a)NMF误差变化趋势 (b)SNMF误差变化趋势图3 降维维度T=30,迭代200次时的误差趋势比较图 2)图像重构比较(如图4所示) NMF分解重构后的图像 SNMF分解重构后的图像图4 降维维度r=30,迭代200次时的图像重构结果比较图 3)运行时间比较(见表1) 表1 运行时间结果比较 实验二:仍然假设ε=0.05,λ1=0.02,λ2=0.01,迭代500次时,降维维度r分别取30和50,再分别比较传统的NMF和本文提出的SNMF算法的误差变化趋势、运行时间和图像重构结果(如图5~6所示): 1)误差趋势比较(如图5~6所示) (a)降维维度r=30的误差变化趋势 (b)降维维度r=50的误差变化趋势图5 NMF误差变化趋势图 (a)降维维度r=30的误差变化趋势 (b)降维维度r=50的误差变化趋势图6 SNMF误差变化趋势图 2)图像重构比较(见表2)。 NMF降维度x=30和x=50重构后的图像 SNMF降维度x=30和x=50重构后的图像图7 重构图像比较 3)运行时间比较(见表2) 表2 算法运行时间比较 当迭代次数均为200,降维维数均为r=30的时候,本文提出的算法和传统的NMF算法重构出来的图像都不够清晰,但是对比误差变化趋势和运行时间,本文提出的算法都要远高于传统的NMF算法。 当迭代次数和降维次数都增加的时候,重构出来的图像越来越清晰,可以很容易和测试集中的图片做对比,从运行时间和误差变化趋势来看,本文提出的算法相对于传统的NMF算法具有运行时间快、误差小的优点,是一种相对比较好的算法。1.2 目标函数与迭代规则
1.3 传统的NMF算法步骤
2 基于最速下降法的非负矩阵分解方法
2.1 最速下降法简介
2.2 稀疏性简介
2.3 基于最速下降法的非负矩阵分解算法原理
3 实验结果及分析
3.1 实验流程
3.2 实验结果比较
4 结语