基于PCA和LDA融合算法的性别鉴别
扫描二维码
随时随地手机看文章
随着社会发展,快速有效的自动身份验证应用广泛。生物特征是人类的内在属性,具有很强的自身稳定性和个体差异性,所以它是身份验证最理想的依据。其中,人脸相比其他的人体生物特征具有直接、方便、友好等特点,所以利用人脸特征进行身份验证是最自然直接的手段,并易于为用户所接受。性别鉴别作为其中特殊的一部分,可以加强人机交互系统的灵活性,而且可以对特殊环境下与性别相关的地方出入进行限制,收集有价值的统计信息(如每天出入的男性、女性数量,对酒吧、商场、零售业提供有价值的服务)等。
1 性别分类算法
性别分类是一个典型的二类问题,一般方法是通过输入一副人脸图像X,通过预处理,特征提取,分类器等过程后来决定X的类别。这里的性别分类算法如图1所示,它是由预处理、特征提取、分类器3个部分组成。
其中预处理主要是几何变换和区域直方图处理。通过这些工作保障了人脸几何(方向,大小)的不变性。基本消除了背景的影响和部分光照影响,提高了识别的精度。然后再预处理的基础上进行主元分析提取特征,获得主元分析PAC(Principal components Analysis)主元子空间和线性鉴别分析LDA(Linear Discriminant Analysis)特征子空间,最后利用分离器(人脸样本训练获得)进行分类。
1.1 预处理
该性别分类算法主要采用,几何处理+整体直方图处理(HG),几何处理+区域直方图处理(RHG)2种方法进行预处理,并进行比较。
1.1.1 几何处理
1)图像的缩放
MATLAB图像处理工具箱中的函数imresize可对图像进行缩放操作,常用的格式为:
B是缩放后图片;A是原始图片;m表示缩放倍数(m>1时图片放大;m<1时图片缩小);method是缩放的插值方法(默认为最近邻插值法);[mrows,ncols]指输出图片大小为mrowsxncols。
2)图像的旋转处理
有些待分类的图像,人脸是歪斜的,这时要对图像进行旋转处理如图2所示。但旋转时各像素的坐标会发生变化,使得旋转之后不能正好落在整数坐标处,需要进行插值,工具箱中函数imrotate方法可以对图像进行插值旋转(默认方法是最近邻插值法)。常用的语法格式为:
其方法中对应的参数意义为:angle为图像A按照逆时针旋转的角度,method是选择的插值方法。
3)图像的剪切
当只需要图像中的一部分时,如实验中只需要人脸图片,就要对图像进行剪切处理,在MATLAB图像处理工具箱中提供函数imcrop用于剪切图像中的一个矩形子图,用户可以根据这个矩形顶点的坐标,也可以用鼠标指针选取这个矩形。该函数常用的格式如下:
其中前3种格式为交互式地对灰度图像、索引色图像和真彩色图像进行剪切。后3种方式是按指定的矩形框rect剪切图像,rect是一个四元向量[xmin,ymin width heigth],分别表示矩形的左上角坐标、宽度和高度。
1.1. 2 整体直方图处理(HG)
直方图方法是建立在概率论的基础上,是通过改变直方图的形状来达到增强图像对比度的效果。常用的方法有直方图均衡化和直方图规定化。直方图均衡化又称直方图平坦化,是将一已知灰度概率密度分布的图像,经过某种变换成一幅具有均匀灰度概率密度分布的新图像,其结果是扩展了像元取值的动态范围,从而达到增强整体对比度的目的。采用MATLAB工具箱中histeq方法对图像进行直方图处理。
常用B=histeq(A)。
1.1.3 区域直方图处理(RHG)
直方图处理是探讨了亮度标准化方法的一般计算模型,为了解决偏光问题,又提出了亮度标准化的分块策略,采用将图片等分4份,对偏光严重的人脸图片进行区域直方图处理后再合成原始大小图片。针对图像整体直方图和分块区域化后直方图取得的效果进行比较,如图3所示。
1.2 PCA算法的基本原理
主成分分析法PCA(Principal Component Analysis)其目的是在数据空间中找到一组向量以尽可能地解释数据的方差,从而用降维后的低维向量保存原数据中的主要信息,使数据更易于处理。主要原理就是基于对原始数据进行统计分析,利用线性变换,对高维数据进行分析与压缩。由于人脸结构的相似性,当把人脸图像样本进行规一化并抽成一个高维向量后,这些图像在高维空间中不是随机或散乱地分布的,
而是存在某种规律。通过主元变换进行人脸识别的方法被称为“特征脸”方法。
主成分分析是将分散在一组变量上的信息集中到某几个综合指标(主成分)上的探索性统计分析方法,以便利用主成分描述数据集的内部结构,实际上起着数据降维的作用。
假设有一幅大小为N1xN2的灰度图像P(x,y),其中x∈[1,N1],y∈[1,N2],且像素值P(x,y)满足P(x,y)∈[0,1],x为行索引值,y为列索引值。为了应用PCA技术,首先要将该人脸从二维矩阵转化为一维向量,这可以通过如下操作达到要求。
将kxl的矩阵C的第1行转置,然后将C的第2行转置拼接于其后,如此类推,直到最后将第k行转置并拼接起来。例如,矩阵在经过上述操作以后,就变为(a11 a12 a13 a21 a22 a23)T。一幅大小为N1xN2的灰度图像可以被转换为N1xN2维的向量,因此可以将一幅人脸图像视为高维空间中的一个点,并用PCA技术使用少数特征来近似描述人脸图像在高维空间中的分布。
考虑n(N1xN2)维空间中的m个向量x1,x2,…,xm为了降低维数,需要用一个m维的向量x’来近似模拟,其中m<<n,也就是寻找一个变换。PCA技术使用变换:
通常假设随机向量(x-μ)为零均值,即μ取值为随机向量x的期望
WT=(w1,w2,…,wm)为一个mxn的变换矩阵。(x-μ)是一个(nxl)n维的向量。y是m维的向量。这是一个线性的变换,式(1)是个内积,引述内积的定义:
图4为式(3)的物理意义。
如果使式(3)具有投影的意义,即z向量是y向量到x向量的方向上的投影,如图4所示,那么必须使得|x|=1,即z=|y|cosθ。
现在考虑PCA变换矩阵W第一个向量
如果在条件|w1|=1使ξ1的方差达到最大,希望最大程度的保持样本集x原有的差异(Variance)。也就是要的值最大。这成为了一个优化问题。目标函数是,条件是,使用拉格朗日乘数法
因此λ1是协方差矩阵M的一个特征值,w1是λ1对应的特征向量。要使其方差最大,就必须使的值最大,因为,所以,λ1应是M矩阵的最大特征值。
现在考虑PCA变换矩阵WT第2到第m个向量,这里的向量是互不相关的,代表着不同的投影方向,这样可以提取出不同的主特征。要满足这个条件,考虑协方差矩阵M,它是对称的阵,有多个特征值λi,i∈(1,n),因此,转换矩阵中w1,w2,…,wm应该如下取值:首先求出M的特征向量和对应的特征值,然后依据特征值排序为λ1≥λ2≥…≥λn,它们对应的特征向量分别为w1,w2,…,wn,则取最前面的m个向量w1,w2,…,wm组成PCA变换矩阵。
出于数值计算方面的考虑,通常不使用M矩阵求特征值,和特征值对应的特征向量,而使用奇异值分解(SVD,Singular Value Decompo-sition)来计算前m个主方向。
1.3 SVD奇异值分解定理
SVD定理:设A是秩为r的nxr维的矩阵,则存在两个正交矩阵:
由于M=AAT,其中,故构造矩阵,M为训练样本集中的样本个数。容易求出其特征值λi及其相应的特征向量vi(i=O,1,…,M-1)。由推论式可知,M的特征向量ui
1.4 LDA方法算法说明
LDA(Linear Discriminant Analysis)方法也称为线性判别分析方法。它选择与类内散布的正交的矢量作为特征脸空间,从而能够压制图像之间的与识别信息无关的差异,对光照及人脸表情变化都不太敏感。这种方法的最终目的就是找到一些特征使得类间离散度和类内离散度的比值最大。
式中,Pi是先验概率,mi是Ci类的均值,m是所有样本的均值。
如果Sw是非奇异矩阵,在投影以后,各类样本之间尽可能的分开一些,即类间离散度越大越好,同时各类样本的内部尽量密集起来,即类内离散度越小越好。因此可以定义Fisher准则函数如下:
如果Sw非奇异,就是求Sw-1Sb的特征值及其特征向量问题。其中该矩阵最多只有C-1个非零特征值,C是类别数目。
1.5 PCA-LDA算法的融合
将PCA算法与LDA算法构造的特征子空间进行融合,获得其融合空间,然后,将训练样本与测试样本分别朝该融合特征空间投影,获得识别特征,最后,利用最近邻准则完成性别鉴定。
PCA-LDA算法融合是根据PCA算法和LDA算法的特征子空间W1,W2进行融合,即:W1=W1*W2,得到融合特征空间:Ws。其中,其中行数表示训练样本维数,列表示LDA算法降维后的特征向量个数。在训练过程中,将训练样本矩阵X投影到融合特征空间Ws中,使得每一个向量代表一个训练样本的特征,在测试过程中,首先将测试样本规范化,即将测试样本减去平均值,在转化成列向量向PCA空间和融合空间投影获得识别特征,最后将测试样本的识别特征和训练样本的识别特征进行一一比较,依据邻近准则得到最小距离d所属样本的属性。
2 试验步骤与过程
2.1 试验步骤
2.1.1 样本的训练
1)照片的预处理,照片归一化;
2)求得训练样本的平均脸、零均值;
3)提取训练样本的PCA矩阵;
4)提取训练样本的LDA矩阵;
5)PCA矩阵和LDA矩阵融合获得分类器。
2.1.2 待测试照片的识别
1)将测试照片预处理;
2)测试照片向融合空间投影,得到低微空间上的点;
3)计算该点与训练样本的“特征脸”距离比较,输出距离最近的那张“特征脸”的信息,从而达到性别识别目的。
2.2 实验过程
本实验中所用到的图片来源于ORL人脸图像库和yale人脸图像库,ORL人脸图像库是英国剑桥大学从1992到1994年间在实验室采集到的人脸图像数据,由40人,每人10幅,共400幅照片,每幅分辨率为92xll2,主要包括拍摄时间、光照条件、人脸表情和面部遮掩物的不同。而yale人脸图像库是耶鲁大学提供的,共有15人,每人11张照片,分辨率为100x100,主要包括光照条件的变化表情的变化等。
该试验采用yale图像库中的人脸照片。利用平均脸公式,实验中所得到的平均脸如图5和图6所示。
PCA矩阵提取试验分析,图7为PCA算法实现流程图。
LDA矩阵提取试验分析,图8为LDA算法实现流程图。
然后再将LDA-PCA矩阵融合;利用欧式距离求出待识别人脸的特征脸再根据临近原则实现性别识别;采用直方图处理的识别实验(PCA+L-DA);采用整体直方图处理的识别实验(HG+PCA+LDA);采用直方图区域预处理的识别实验(RHG+PCA+LDA)。
3 实验结果分析与结论
实验结果如图9所示,表明:用PCA-LDA融合空间算法的识别正确率都在80%以上,是比较高的。采用直方图处理的识别实验(PCA+LDA)在3种方法的识别正确率比较中相对较低,且波动性较大,特别的,在样本数量为20,40时,出现了0.83,0.84的正确率,为整个曲线中的低谷,整体效果相对来说一般。采用整体直方图处理的识别实验(HG+PCA+LDA)正确率曲线相对来说较为平滑,随着样本数量的增加,整个曲线呈现递增趋势,但识别正确率不是特别理想。采用区域直方图预处理的识别实验(RHG+PCA+LDA)的正确率整体来说最高,整个曲线完全凌驾于前2种算法之上,虽然在小样本数量空间内出现波动,但波动为曲线的相对波峰,即识别正确率是提高的。3种方法在整个样本空间内均为随着样本数量的增加,识别正确率平稳上升,渐趋于完全正确。但采用区域直方图预处理的识别实验(RHG+PCA+LDA)后整体识别正确率最高,为三个算法中在整个样本空间内的相对最优算法。
经过以上实验结果分析,在进行人脸性别识别时,建议用PCA-LDA融合空间算法,采用区域直方图预处理(RHG+PCA+LDA),这样会达到理想的效果,并且样本数量应该尽量的多。