改进PCA-LDA的人脸识别算法研究
2019-04-19马帅旗
马帅旗
(陕西理工大学 电气工程学院, 陕西 汉中 723000)
本文结合PCA与LDA算法的优势与不足,提出PCA子空间与LDA子空间的融合算法,利用PCA将高维空间的样本投影到低维空间,以保证样本类内离散度矩阵非奇异,再利用LDA算法进行特征提取,实现两种特征子空间融合,再将人脸测试集投影至融合的特征空间,依据最近邻分类准则进行分类,从而整体上提高识别系统的鲁棒性和识别效率。
1 图像的预处理
由于识别的图像易受外部光照强度、拍摄角度、焦距等因素影响,因而需要对输入图像进行预处理。图像的预处理主要涉及输入图像的几何位置规范化[4]和图像灰度归一化。几何位置规范化是对原始输入图像进行旋转、缩放和裁剪等操作[5],灰度归一化用于消除噪声对输入图像灰度分布的影响,从而使预处理后的图像的尺度、方向和灰度分布基本相似。
若(x1,y1)和(x2,y2)分别表示旋转前、后点的坐标,则图像中的像素点旋转变换关系可表示为
(1)
(2)
为了使预处理后的人脸图像的宽度width=130,高度height=150,左眼睛距图像的左边界距离和右眼睛距图像的右边界距离为30,双目的对称中心与图像的上边界和下边界的距离分别为50和100,需要对图像进行平移和裁剪处理。若(xl,yl)和(xr,yr)分别为图像平移前的左眼、右眼中心纵横坐标,Δx和Δy分别表示水平偏移量和垂直偏移量,则水平和垂直方向的平移距离为Δx=width/2-(xl+xr)/2、Δy=height/3-(yl+yr)/2。若像素点(x3,y3)和(x4,y4)分别表示平移前后图像像素点的坐标,则图像中像素点的平移变换可以表示为
(3)
图1为经过上述旋转、缩放和平移预处理后的人脸图像,像素(x,y)经预处理后的坐标(x′,y′)可以表示为
(4)
(a) 原始图像 (b) 旋转、缩放并剪切后的图像图1 人脸图像的几何归一化
在人脸图像预处理时,可以选择双眼、双眉、鼻尖与嘴巴中线作为特征点进行归一化处理。如在双眼部分或全部被遮挡的情况下,选择两眉毛中点进行归一化处理。为了使预处理后的人脸图像的宽度width=130,高度height=150,左眉毛中点距图像的左边界距离和右眉毛中点距图像的右边界距离为30,双眉毛的对称中心与图像的上边界和下边界的距离分别为30和120。同理,若双眼、双眉都被遮挡时,选择鼻尖和嘴巴中线为特征点进行归一化,鼻尖距离上边界距离为110,嘴巴中线距离下边界为20,鼻尖距离左右边界75。
2 基于PCA与LDA的特征融合与识别
PCA与LDA特征融合与识别步骤如下:
步骤2 计算特征差值的协方差矩阵
(5)
步骤3 求取差值协方差矩阵Ф的非零特征值λ=(λ1,λ2,…,λN),进而求取对应特征向量V=(v1,v2,…,vN),并对特征向量按照特征值降序方式进行排列:
Ф·V=λ·V。
(6)
步骤5 将输入图像x、每类平均图像μj和总体平均图像μ投影到PCA子空间[5]:
(7)
(8)
(9)
步骤6 分别计算LDA算法中的每个类内散布矩阵Sj、总体类内散布矩阵SW及类间散布矩阵SB:
(10)
(11)
(12)
步骤7 根据Fisher准则,使样本在LDA投影空间内的类间离散度SB最大和类内离散度SW最小,可知最佳投影子空间W满足
(13)
步骤8 依据拉格朗日乘数法可得
(14)
步骤9 将PCA和LDA的特征空间进行融合[2]:
(15)
对于任意一图像列向量x,在融合特征空间的投影关系可表示为
(16)
将训练图像及测试图像分别投影至融合的特征空间,若y和Yi分别表示测试样本x和训练样本类Xi投影后特征,则定义在融合投影空间中测试样本x到训练样本类Xi的距离为
D(x,Xi)=‖y,Yi‖,
(17)
3 实验结果及分析
采用英国剑桥大学Olivetti实验室的ORL人脸库进行实验,该人脸库包含400幅人脸图像,分为40类不同年龄、不同性别和不同种族的人脸,而每类人脸又包含10幅不同方向、光照、面部表情和面部遮挡物的图像。对40类人脸库中每类人的前5幅图像进行训练,后5幅图像进行测试。表1给出了PCA和PCA-LDA融合算法的识别率与投影特征维数之间的关系。
表1 识别率与特征维数关系
从表1可知,当特征空间维数小于25时,虽然PCA和PCA-LDA融合算法的识别率都较低,但随着特征维数的增加,二者的识别正确率增长较快;当融合特征空间维数继续增加且小于65时,识别率逐渐增加并趋于稳定,PCA算法正确识别率的极值点为93%,PCA-LDA算法的正确识别率的极值点为96%;若融合特征空间的维数继续增加时,融合特征空间的维数过多,所有的特征向量并不都代表有效的投影方向,部分特征向量可能表征与人脸特征无关的噪声、背景等投影方向,正确识别率也不会超过极值点,反而随着维数增加而逐渐减小。
ORL人脸库中共计40类人,每类人共10幅图像,其中i幅用于训练,则10-i幅图像用于实验测试。设定PCA算法的累计贡献率为0.9,表2给出了不同算法下识别率与训练样本个数之间的关系。
表2 不同算法下识别率比较
由表2可以看出,当训练样本为1时,LDA的识别率仅为61.11%,受LDA算法影响,PCA-LDA融合算法识别率相对于PCA略大;当训练的人脸图像小于3,PCA、LDA和PCA-LDA算法的识别率都相对较低,PCA-LDA最高不超过89%;训练的样本数增加时,PCA、LDA和PCA-LDA的识别率逐渐增加,且PCA-LDA的增长率高于PCA和LDA;当训练样本数为8时,PCA-LDA的识别率达到100%。表3给出了不同的训练样本下,LDA的最佳投影维数与识别率之间关系。
表3 不同训练样本下的PCA-LDA识别率
另外在实验中发现,PCA算法侧重于提取图像数据原始特征,LDA算法侧重于提取同类之间及不同类之间的差别,当每类样本较少时,样本类别信息不足,LDA识别效果较差;当训练的样本数增加时,同类及不同类的特征信息增加,识别率有显著提高。PCA-LDA算法能够结合PCA及LDA算法的优势,对样本类别具有较好的鲁棒性,能获得较好的正确识别率。
4 小 结
本文首先将原始图像投影至PCA特征空间,实现数据降维;然后用LDA的类别标签信息,获得类内样本特征及类间样本特征;进而实现PCA与LDA特征融合,获得一个有效的分类器。实验结果表明,该PCA-LDA融合算法能够结合二者优势,有效解决小样本问题,对光照不均匀、表情变化及拍摄方向具有一定鲁棒性,其识别率高于传统的PCA算法,具有一定的应用价值。