基于PCA的人脸识别算法实现 联系客服

发布时间 : 星期四 文章基于PCA的人脸识别算法实现更新完毕开始阅读78420204d5bbfd0a78567349

重庆邮电大学本科毕业设计(论文)

回原空间,则图像序列因为维数降低得到很大的压缩。例如上例中取出次要的5个维度,则图像就被压缩了1/4。但是这种有损的压缩方法同时又保持了其中最“重要”的信息,是一种非常重要且有效的算法。

第二节 基于PCA人脸识别算法的实现

主成分分析为一种统计学中特征提取方法,在实际中应用的非常广泛。PCA是通过提取原始数据的主元来减少数据的冗余,使数据在低维度的空间中被处理,同时它还能很好保持了原始数据的绝大部分信息,有效的解决了由于空间维数过高而导致的一系列问题。如下将详细介绍如何使用PCA算法进行人脸识别。

显示测试图像和匹配图像1主函数(main.m)13输入测试图像3OutputName2创建数据库(CreatDatabase.m)T计算特征脸(EigenFaceCore.m)m,A,EigenFaces人脸识别(Recognition.m)图

图4.6 基于PCA的人脸识别算法实现原理图

一、创建数据库

在本环节中主要分为两个阶段,分别为:

1. 读入系统人脸数据库,并将图像变换为相应的灰度图像

- 32 -

重庆邮电大学本科毕业设计(论文)

(a) (b)

图4.7 (a)图像为系统人脸数据库中的原始人脸图像,(b)图像为经过灰度转换后的人脸图像

2. 同时将变换后的二维人脸灰度图像变换为一维人脸向量矩阵

一个大小为M*N的二维人脸图像可以看成长度为MN的人脸图像列向量。为了将二维人脸图像变为以为列向量,我们采取的措施为:首先计算出人脸图像的大小,然后将人脸图像经行转置,最后按列依次取出取出所有灰度值形成大小为MN的一维向量,其实整个阶段的效果相当于将图像的灰度值按行取出依次连接成一维图像向量。

本环节完成后将会产生由一维图像向量组成的矩阵T。

二、计算特征脸

本环节主要包括三个阶段,分别为:

1. 对图像矩阵T进行规范化

首先计算出图像矩阵中一维列向量的平均值m,然后对图像矩阵的每一列都减去平均值形成规范化的图像矩阵A。

(a) (b)

图4.8 左图为人脸原始图像,右图为人脸规范化后的图像

- 33 -

重庆邮电大学本科毕业设计(论文)

2. 计算特征脸

人脸训练图像的协方差矩阵为C=AAT,其中人脸训练样本为A?[?1,...,?P],维度为

2M?N?P,则协方差矩阵C的维度为。这就出现问题,C的维度过高,在实际中直接(MN)计算它的特征值和特征向量非常困难。因此,本文使用奇异值分解定理来解决这个问题。

奇异值分解定理:

假设B为n?m维秩为p的矩阵,则存在两个正交矩阵和一个对角矩阵: 正交矩阵为

其中

U?[u1,u2,...,up]?Rn?n (4.23)

22V?[v1,v2,...,vp]?Rm?m (4.24)

对角矩阵为

12UTU?I (4.25)

VTV?I (4.26)

??diag[?1,?2,...,?p]?Rm?m

?1??2...??p

TTTTB?U?V 则可以得到,而且BB和BB有共同的非零特征值,ui和vi分别为BB和

BTB对应特征值的正交特征向量。

由上述定理可以得到

U?BV? (4.27)

TTm?m则可以由协方差矩阵C?AA,构造出矩阵L?AA?R,从而容易求出L的特征值和

?12特征向量,再根据上述(4-27)式可以求得协方差C的特征值和特征向量。

实际上我们并不需要协方差所有的特征值和特征向量, m个(m

Tm?m在本环节,本文通过直接构造L?AA?R,来计算出L的特征值,再挑选L特征值大

于100的作为C的特征值,最后通过C的特征值计算出它的特征向量,从而形成特征脸。

- 34 -

重庆邮电大学本科毕业设计(论文)

图4.9 特征脸

三、人脸识别

人脸识别过程分为训练和测试两个阶段。在训练阶段,主要是提取数据库人脸图像的特征,并形成特征库。在测试阶段,主要是提取待识别图像的特征和计算提取的特征和特征库中特征之间的距离测度,并输出最小距离测度对应的人脸图像作为结果。

具体步骤如下:

1. 训练阶段

将规范化的图像矩阵A中的每一列向量投影到特征子空间,形成特征库。

2. 测试阶段

1假设测试人脸图像为Y,在人脸识别前,先对其进行标准化,即??Y??。 ○

T2把标准化后的人脸图像向特征子空间进行投影得到向量??U?。 ○

3本文使用最近领法分类器欧几里德距离[14,15]进行判决分类。○测试图像与每个人脸图像间

的距离为?k?R?Rk (k=1,2,…,P),并将最小距离对应的训练图像作为测试图像的匹配图像。

- 35 -