MATLAB-PCA人脸识别算法

更新时间:2024-05-30 14:41:01 阅读量: 综合文库 文档下载

说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。

基于PCA的人脸识别算法

Alen Fielding

摘 要:文章具体讨论了主成分分析( PCA)人脸识别算法的原理及实现。它具有简单、快速和易行等特点,能从整体上反映人脸图像的灰度相关性具有一定的实用价值。 关键词:人脸识别;PCA;生物特征;识别技术 中图分类号: TP302 文献标识码: A

Face recognition method based on PCA

Zhangjinhua

(Information engineering college,Southwest university of science and technology,Sichuan,621010,China)

Abstract : The paper discussed the principal component analysis (PCA) face recognition algorithm of principle and realization. It is simple, rapid and easy wait for a characteristic, can reflect from whole face image gray correlation has certain practical value.

Key words : Face recognition; PCA; Biological characteristics; Recognition technology

1引言

PCA,即

Principal Component

换(简称K-L变换),是一种常用的正交变换。首先对K-L变换作一个简单介绍: 假设X为n维的随机变量,X可以用n个基向量的加权和来表示:

X= ?ai

i?1nAnalysis,主成分分析方法,是一种得到广泛应用的事实上的标准人脸识别方法。传统主成分分析方法的基本原理是:利用K-L变换抽取人脸的主要成分,构成特征脸空间,识别时将测试图像投影到此空间,得到一组投影系数,通过与各个人脸图像比较进行识别。这种方法使得压缩前后的均方误差最小,且变换后的低维空间有很好的分辨能力。

φ

i

式中:αi是加权系数,φi是基向量,此式可以用矩阵的形式表示:

X =(φ1 ,φ2,φ3 ,??,φn)( α1, α

2

,?? αn)= Φα

2 K-L变换

PCA方法是由Turk和Pentlad提出来的,它的基础就是Karhunen-Loeve变

1

系数向量为:

α=ΦTX 综上所述,K-L展开式的系数可用下列步

骤求出:

步骤一 求随机向量X的自相关矩阵

R=E[XTX],由于没有类别信息的样本集的μ均值向量,常常没有意义,所以也可以把数据的协方差矩阵?=E[(x-μ)(x-μ)T]作为K-L坐标系的产生矩阵,这里μ是总体均值向量。

步骤二 求出自相关矩阵或者协方差矩

阵R的本征值λi和本征向量φi,Φ=(φ1 ,φ2,φ3 ,??,φn)

步骤三 展开式系数即为α=ΦX

K-L变换的实质是建立一个新的坐标

系,将一个物体主轴沿特征矢量对齐的转变换,这个变换解除了原有数据向量的各个分量之间相关性,从而有可能去掉那些带有较少信息的坐标系以达到降低特征空间维数的目的。

T

示。我们把这个子空间叫做“脸空间”。PCA的主要思想就是找到能够最好地说明图片在图片空间中的分布情况的那些向量。这些向量能够定义“脸空间”,每个向量的长度为N,描述一张N×N的图片,并且是原始脸部图片的一个线性组合。对于一副M*N的人脸图像,将其每列相连构成一个大小为D=M*N维的列向量。D就是人脸图像的维数,也即是图像空间的维数。设n是训练样本的数目;Xj表示第j幅人脸图像形成的人脸向量,则所需样本的协方差矩阵为: Sr= (1)

其中u为训练样本的平均图像向量: u (2)

令A=[x1-u x2-u??xn-u],则有Sr=AAT,其维数为D*D。

根据K-L变换原理,需要求得的新坐标系由矩阵AAT的非零特征值所对应得特征向量组成。直接计算的计算量比较大,所以采用奇异值分解(SVD)定理,通过求解ATA的特征值和特征向量来获得AAT的特征值和特征向量。

依据SVD定理,令li(i=1,2,??,r)为矩阵ATA的r个非零特征值,vi为ATA对应于li的特征向量,则AAT的正交归一特征向量ui为:

2

?(xj?1NT ?u)(x?u)ji=

1nxj ?nj?13 PCA方法

PCA方法,也被叫做特征脸方法(eigenfaces),是一种基于整幅人脸图像的识别算法,被广泛用于降维,在人脸识别领域也表现突出。一个N×N的二维脸部图片可以看成是N的一个一维向量,一张112×92的图片可以看成是一个10,304维的向量,同时也可以看成是一个10,304维空间中一点。图片映射到这个巨大的空间后,由于人脸的构造相对来说比较接近,因此,可以用一个相应的低维子空间来表

ui?1Avi(i=1,2,??r) (3) li则特征脸空间为:w=(u1 ,u2?? ur,)。

将训练样本投影到“特征脸”空间,得到一组投影向量Ω=wTu,构成人脸识别的数据库。在识别时,先将每一幅待是识别的人脸图像投影到“特征脸”空间,再利用最近邻分类器的比较其与库中人脸的位置,从而识别出该图像是否是库中的人脸,图像 如果是,是哪一个人脸。

该数据库提供了经过预处理的人脸训练集和测试集。选取前5 张人脸图像作为训练样本,后5 张人脸图像作为测试样本。本实验运行的环境是IntelCelero n CPU 2.00GHz 处 理器、512MB 内 存,Window s XP 操作系统,对ORL 人脸库样本训练时间为70. 91s,识别率为90% ,训练样本数目多增加人脸特征库的容量,会几何级增加人脸识别核心算法的时间和空间复杂度。在识别结果的显示窗口中, 一共显示了在整个人脸图像库中最小的10 个欧氏距离,它们的排列也是从小到大进行排列的,同时, 换句话说,这10 个欧氏距离,也就分别代表了与实验中选取的待识别的人脸图像最相近的10 幅人脸图像。距离最近, 当然也就是我们实验所需识别的人脸图像。 下面详细描述整个过程: 4.1 读入人脸库

归一化人脸库后,将库中的没人选择一定数量的图像构成训练集,其余的构成

3

图1 ORL 人脸数据库中的 5幅

4利用PCA进行人脸识别

完整的PCA人脸识别的应用包括几个步骤:人脸图像预处理;读入人脸库,训练形成特征子空间;把训练图像和测试图像投影到上一步骤中得到的子空间上;选择一定的距离函数进行识别。

本文采用matlab7.5作为工具平台, 实现了一个人脸自动识别的系统原型。实验在样本图库英国剑桥大学的ORL( Olivetti Research Laboratory) 人脸库上进行,它为网上下载的国外标准人脸数据库。ORL 库包含40 个人,每个人10副图像,共计400 幅人脸正面图像,每幅图像大小为92×112,图像是在不同时间,光线轻微变化的条件下摄制的,其中包括姿态、光照和表情的差别。其中部分如图1 所示:

测试集。设归一化后的图像时n*m维,按列相连就构成N=n*m维矢量,可视为N维空间中的一个点,可以空过K-L变换用一个低维子空间描述这个图像。 4.2 计算通过K-L变换的生成矩阵 所有训练样本的协方差矩阵为(以下三个等价);

a. C1=( ?xk.xkT)/M-mx.mxT

k?1M5结论与展望

人脸识别是目前较活跃的研究领域, 本文详细给出了基于主成分分析的人脸特征提取的原理与方法。并使用matlab 作为工具平台, 实现了一个人脸自动识别的系统原型。实验结果表明, 该系统识别率为85%, 达到预期的效果。如果想进一步提高人脸识别率, 可以考虑与其他方法结合。

仅单独使用任何一种现有的方法一般都不

b. C1=(A.AT)/M

会取得很好的识别效果, 将其他人脸识别

(1)

方法组合是今后研究的一种趋势。也可以c. C1=[ ?(xi?mx)(xi?mx)T]/M

i?1M考虑改进分类决策的方法。本系统采用的最小距离分类法属于线性的分类器, 而利用神经网络这类学习能力更强的非线性分类器对高维人脸识别问题可能会有更好的解决。

参考文献:

[1]邓楠, 基于主成份分析的人脸识别. 2006.06. [2]龚勋,PCA与人脸识别及其理论基础. 2007.04. [3]田印中, 董志学, 黄建伟, 基于PCA 的人脸识别算法研究及实现. 2010.03.

[4]李华胜,杨桦,袁保宗.人脸识别系统中的特征提取. 2001,06.

[5]温福喜, 刘宏伟. 基于 2D PCA和 2D LDA的人脸识别方法. 2007.08.

[6]李刚, 高政.人脸识别理论研究进展. 2003, 01. [7]张翠平, 苏光大.人脸识别技术综述. 2000, 05. [8] 罗昊, 孟传良.基于特征脸和LDA的人脸识别.2005,12

A=(φ1φ2,??,φm), φi=xi-mx,其中mx是平均人脸,M是训练人脸数,协方差矩阵C1是一个N*N的矩阵,N是xi的维数。

为了方便计算特征值和特征向量,一般选用第二个公式。根据K-L变换原理,我们所求的新坐标即由矩阵A.AT的非零特征值所对应的特征向量组成。直接求N*N大小矩阵的C1的特征值和正交归一特征向量是很困难的,根据奇异值分解原理,可以通过求解ATA的特征值和特征向量来获得AA的特征值和特征向量。 4.3 识别

利用公式Y=UT*X,首先把所有图片进行投影,然后对于测试图片也进行同样的投影,采用判别函数对投影系数进行识别。

4

T

本文来源:https://www.bwwdw.com/article/ut96.html

Top