基于奇异熵和随机森林的人脸识别

2016-04-08 02:06全雪峰
软件 2016年2期
关键词:奇异值分解随机森林人脸识别

全雪峰

摘要:提出了一种基于奇异熵与随机森林的人脸识别方法。该方法以奇异熵来描述人脸特征。首先在整个人脸图上进行奇异值分解,应用整体奇异熵提取人脸全局特征。然后将人脸图像分成均匀子块,在各子块中进行奇异值分解,应用局部奇异熵提取人脸局部特征。之后将整体奇异熵和局部奇异熵融合形成最终分类特征。最后通过随机森林分类器对其进行分类。在Yale人脸库上的实验表明,该方法对表情、光照具有鲁棒性,且有较高的识别率和较短的识别时间。

关键词:人脸识别;奇异值分解;奇异熵;随机森林

中图分类号:TP391

文献标识码:A

DOI: 10.3969/j.issn.1003-6970.2016.02.009

引言

人脸识别是指利用各种技术手段获取人脸图像并从中提取有效的特征信息,进而借助已有的知识或经验来判断图像中人的身份的一种技术。人脸识别技术可广泛应用于金融、考勤、公共安防、证件制作等领域,已成为当前模式识别领域的一个研究热点。

由于在实际应用中人脸图像的采集往往是在非受控条件下进行的,这样所获得的图像在尺寸、表情、角度、光照、遮挡等方面都有很多不同,因而能否提取出好的人脸特征和设计一个好的分类器成为人脸识别技术的关键。1991年Hong将矩阵奇异值分解(Singular Value Decomposition,SVD)引入人脸识别中,利用奇异值作为人脸识别特征,并指出奇异值向量对图像噪音、光照条件变化具有良好的稳定性等,但错误识别率较高(42.67%)。王蕴红等提出了一种基于奇异值分解和数据融合的人脸识别方法,在ORL人脸数据库上的正确识别率达96%,但识别过程较烦琐。甘俊英等将奇异值分解和BP神经网络相结合进行人脸识别,正确识别率达到96.5%-98.5%。李晓东等在文献的基础上提出了一种基于奇异值分解和支持向量机(Support Vector Machine,SVM)的人脸识别方法,进一步提高了正确识别率。理论和实践已证明,矩阵奇异值可以对图像作出客观反映。由于神经网络和支持向量机等分类器都需要对所有数据做详尽的分析,而基于奇异值分解所得的是个高维数、大数据处理过程,因而必然需要大量的处理时间。随机森林是一种比较新的机器学习模型,它在没有显著提高运算量的前提下提高了预测精度。在多分类问题上,随机森林的泛化能力明显优于支持向量机。本文结合奇异熵理论,提出一种基于局部和整体相结合奇异熵构成人脸特征,利用随机森林进行分类的人脸识别方法。通过在Yale人脸数据库上的验证表明了该方法的有效性。

1 奇异值分解和奇异熵

1.1 奇异值分解 定理1(SVD):若,则存在两个正交矩阵U=[u1,

成立。此处p=min(m,n),σ1≥σ2≥…≥σp≥0,σi(i=l,2,…,p)称为矩阵A的奇异值。

奇异值反映了矩阵分解后各子空间所含信息的多少,在一定程度上代表了该矩阵的特征。奇异值对于矩阵元素的扰动变化不敏感,具有相对稳定性,同时具有位移不变性、旋转变不变性和镜像变化不变性等重要性质。这些特性表明,当人脸图像存在噪声或是在不同条件下获得时,奇异值可以作为人脸图像一种有效的代数特征。

1.2 奇异熵

图像矩阵的奇异值可以对图像的信息量作出客观反映,不同图像的奇异值存在差异。为定量衡量差异大小,本文引入奇异熵概念,其定义式如下:

2 随机森林

随机森林是一种集成树形分类器,由多个决策树(h(x,θi),i=l,2,…)组成。其中h(x,θi)是用分类回归树CART算法构建的没有剪枝的分类决策树,θi是独立同分布的随机向量,决定单棵树的生长速度。在给定输入向量x的情况下,每个决策树分类器通过投票来决定最优分类结果。

随机森林一般构造过程如下:

(l)利用自助法(bootstrap)重抽样技术从原始样本集中有放回地随机抽取k个新的白助样本集,以此形成一个分类器。

(2)每个白助样本集生成单棵决策树。在树的每个节点处M个特征中随机抽取m(m

(3)重复步骤(2),构建k棵决策树,形成随机森林。

(4)根据每棵决策树的投票结果,选出票数最多的一个分类。

节点不纯度的度量方法是Gini准则。设P(ωi)是节点n上属于ωi类样本个数占训练样本总数的频率,则Gini不纯度表示为:

3 算法设计

3.1 图像预处理 人脸数据库或者采集到的图像其大小不一,为提高正确识别率,对图像进行几何归一化,使人脸图像中人眼位置处于同一水平坐标轴上,并将图像归一化为64x85。

3.2 特征提取

在基于奇异值分解提取人脸特征算法中,如果只对整体图像进行奇异值分解,这样得到的奇异值反映的是图像的整体特征,缺乏对对细节的描述。为此,本文提出了一种基于整体与局部奇异值分解相结合的人脸特征提取算法。具体步骤如下:

stepl对整幅图像进行奇异值分解,得到该图像的一个奇异值向量,截取该向量的前9个奇异值组成一个新的向量,利用公式(2)计算该图像的整体奇异熵Eall;

step2将64x85的人脸图像分成划分为4x5共20个子块,如图1所示。对每一个子块进行奇异值分解,得到相应的奇异值向量,每个向量截取前6个较大的奇异值,分别利用公式(2)计算奇异熵作为相应子块的局部奇异熵Ei(i=l,2,…,20);

step3将整体奇异熵与局部奇异熵组合,构成一个包含21个奇异熵的奇异熵向量E=[Eall,E1,E2,…,E20],这样就完成了人脸特征提取。

3.3 分类器设计

在提取出人脸特征之后就可以利用分类器进行识别了。本文采用Matlab2013a中随机森林工具箱函数TreeBagger()创建一个随机森林分类器,利用predict()函数对测试集数据进行预测。

4 实验结果与分析

本文实验是在Dell Inspiron 570台式机上进行的,采用Matlab2013a作为仿真实验平台,实验对象取白Yale人脸数据库。该数据库包含15人、每人II幅、大小为320x243像素、灰度级为256、共165幅人脸图像。这些图像是在不同光照条件、不同姿态和不同表情情况下拍摄的。实验之前按3.1节所述对图像做归一化预处理。经过预处理后的部分图像如图2所示。

实验时取每人的前6幅图像构成构成训练集,后5幅图像构成测试集,训练集和测试集中的样本不重叠。经过对每幅图像进行整体和局部奇异值分解、计算奇异熵、整体和局部奇异熵融合等步骤后构成人脸特征库,用于训练和测试。

表l是在选取不同奇异熵组合情况下的对比实验。方式l是选取整体奇异熵和全部20个子块的奇异熵组成人脸特征;方式2是仅由20个子块的奇异熵组成人脸特征;方式3是选取整体奇异熵和5、6、7、8、9、10、II、12、13、14、15、16子块的奇异熵组成人脸特征;方式4是仅由5、6、7、8、9、10、II、12、13、14、15、16子块的奇异熵组成人脸特征。

由表l可以看出,当选取整体奇异熵和全部20个子块的奇异熵组成人脸特征时的正确识别率最高,达到90.6%。其它方式的正确识别率训练时间虽然稍短,但它们的正确识别率显著降低。这说明,在利用奇异值分解提取人睑特征时,必须同时考虑整体和局部特征的提取。

图3所示是在选取方式1情况下选取不同奇异值个数计算奇异熵时的正确识别率。

注:线1:整体和局部奇异值个数同时变化;线2:固定整体奇异值个数为9。

由图3可以看出,随着参与计算奇异值个数的增加,正确识别率也迅速增大,但随后逐渐降低,趋于平缓。在整体奇异值个数取9,局部奇异值个数取6时,能达到最高识别率90.6%。本文以下实验均取特征选取方式1、整体奇异值个数9、局部奇异值个数6。

在随机森林算法中,决策树的个数K影响着分类器的性能。当K值较小时,随机森林的分类误差大、性能也比较差。但是构建随机森林的复杂度与K值成正比,若K值过大,则需要花费较多的时间来构建随机森林。图4所示是不同决策树个数对正确识别率的影响。

由图4可以看出,在决策树个数小于150时,正确识别率随决策树个数快速增大。当决策树个数增加到275个时,正确识别率达到最高值,继续增加决策树个数,正确识别率保持不变。本文选择决策树个数为300。

此外,本文还对不同算法的识别率进行了比较,如表2所示。其中,算法1采用奇异熵做特征,利用SVM进行分类;算法2直接用奇异值做特征,采用SVM进行分类;算法3以奇异值做特征,用随机森林进行分类。

从表2可以看出,同等条件下,无论用SVM还是用随机森林做分类器,基于奇异熵的人脸识别,识别率明显高于基于奇异值的人脸识别。从分类器看,在以奇异熵做特征时,SVM和随机森林的识别率相当;而以奇异值做特征时,SVM的识别率高于随机森林的识别率。

5 结束语

本文采用奇异值分解和奇异熵来提取人脸特征,并将整体奇异熵和局部奇异熵进行融合形成最后分类特征,用随机森林分类器对其进行分类。在Yale人脸库上的实验表明,本方法能够快速有效提取人脸特征,对表情、光照等具有鲁棒性且有较高的识别率。

猜你喜欢
奇异值分解随机森林人脸识别
人脸识别 等
揭开人脸识别的神秘面纱
结合PCA及字典学习的高光谱图像自适应去噪方法
拱坝变形监测预报的随机森林模型及应用
基于类独立核稀疏表示的鲁棒人脸识别
基于K-L变换和平均近邻法的人脸识别