1、本科毕业论文(20 届)基于 PCA 算法的 Eigenfaces 人脸识别算法所在学院专业班级 计算机科学与技术学生姓名指导教师完成日期摘要人脸识别技术就是利用计算机分析人脸图像,提取有效的识别信息来辨认身份或者判别待定状态的一门技术。它涉及模式识别、图像处理、计算机视觉等诸多学科的知识,是当前研究的热点之一。然而影响计算机人脸识别的因素非常之多,主要是人脸表情丰富,人脸随年龄增长而变化,人脸所成图像受光照、成像角度及成像距离等影响,极大地影响了人脸识别走向实用化。基于 PCA 算法的人脸识别过程大致分为训练、测试、识别这三个阶段完成,在训练阶段,通过寻找协方差矩阵的特征向量,求出样本在该特
2、征向量上的投影系数;在测试阶段,通过将测试样本投影到特征向量上,得到测试样本在该特征向量上的投影系数。最后,采用最小欧氏距离,找到了与测试样本最相近的训练样本图像。关键词 Eigenfaces、PCA 算法、人脸识别算法、matlab、SVD。AbstractFace recognition technology is the use of computer analysis of facial images to extract valid identification information to identify or determine the identity of a techno
3、logy Pending state. It involves knowledge of pattern recognition, image processing, computer vision, and many other disciplines, is one of the hotspots of current research. However, factors affecting the computer face recognition very much, mainly rich facial expression, face changes with age, face
4、a picture of the affected light, imaging and imaging distance, angle, greatly influenced the Face to practical use.PCA algorithm based recognition process is roughly divided into training and testing, the identification of these three stages, in the training phase, to find the eigenvectors of the co
5、variance matrix is obtained on the sample feature vector projection coefficient; in the test phase by the test feature vector is projected onto the sample to obtain a test sample on the projection of the feature vector of coefficients. Finally, the minimum Euclidean distance, the test sample to find
6、 the closest sample images.Keywords Eigenfaces PCA Algorithm、Face Recognition Algorithm、matlab 、SVD.目录1 绪论 -11.1 计算机人脸识别技术及应用 -11.2 常用的人脸识别方法简介 -11.3 本论文内容安排 -12 PCA -32.1 PCA 简介 -32.2 PCA 的实质 -32.3 PCA 理论基础 -32.3.1 投影 -32.3.2 最小平方误差理论 -42.3.3 PCA 几何解释 -82.4 PCA 降维计算 -83 PCA 在人脸识别中的应用 -113.1 人脸识别技术简
7、介 -113.2 图片归一化 -113.3 基于 PCA 的人脸识别 -113.3.1 人脸数据特征提取 -113.3.2 计算均值 -123.3.3 计算协方差矩阵 C -123.3.4 求出协方差 C 的特征值和特征向量 -123.4 奇异值分解定理 -123.5 基于 PCA 的人脸识别的训练 -133.5.1 训练集的主成分计算 -133.5.2 训练集图片重建 -133.6 识别 -144 实验 -154.1 实验环境 -154.2 PCA 人脸识别实验过程 -154.2.1 训练阶段 -154.2.2 测试阶段 -214.2.3 采用欧氏最小距离识别 -234.3 实验结果 -23
8、5 总结 -265.1.1 内容总结: -265.1.2 工作总结: -266 致谢 -27参考文献 -2811 绪论1.1计算机人脸识别技术及应用计算机人脸识别技术就是利用计算机分析人脸图像,进而从中提取出有效的识别信息,用来“辨认”身份的一门技术,它涉及图像处理、模式识别、计算机视觉、神经网络、生理学、心理学等诸多学科领域的知识。这诸多因素使得人脸识别成为一项极富挑战性的课题,这也是研究的热点之一。人脸识别已成为计算机视觉及相关领域中的关键技术,而且人脸识别技术应用背景比较广泛,在身份验证、刑侦破案、罪犯身份识别、视频监视、驾驶执照及护照、银行及海关的监控系统以及自动门卫系统、机器人智能化
9、和医学等诸多方面具有广阔的应用前景和商业价值。然而影响计算机人脸识别的因素非常之多,主要是人脸表情丰富;人脸随年龄增长而变化;人脸所成图像受光照、图像角度及图像距离等影响;所以使得人脸识别技术的普遍使用具有挑战性。1.2常用的人脸识别方法简介目前国内外研究人脸识别的方法层出不穷,所采用的研究角度也各不相同,从不同的研究角度,可以对人脸识别方法进行分类,比如,根据输入图像中人脸的角度的不同,可以分为基于侧面、正面、倾斜人脸图像的人脸识别;根据图像来源的不同,可以分为静态和动态的人脸识别;根据图像的特点,可以分为灰度图像和彩色图像的人脸识别。本文的主要是采用正面,静态的灰度图像4。根据对灰度图像的
10、特征提取方式的不同,人脸识别方法大致可以分成三种:基于局部特征的人脸识别方法,基于整体的人脸识别方法和基于将局部和整体结合起来的人脸识别方法。而基于局部特征的人脸识别方法主要有:结构匹配的方法、隐马尔可夫模型(Hidden Markov Model,简称 H 瑚)的方法、弹性图匹配(E1astic Bunch Graph Matching 简称髓 GM)的方法;基于整体的人脸识别方法主要有:基于主成分分析(Principal component Analysis 简称 PCA)的方法、线性鉴别分析法(LDA) 、基于三维可变性模板(3D M0rphable Model)的方法、基于人工神经网络
11、(Artificial Neural Networks 简称 ANN)的方法、支持向量机(support Vector Machine 简称 s)的方法、小波变换(Wavelet Translation)的方法等,另外,第三种方法结合了前两种方法的优点,比如多分多分类器等4。本论文主要采取基于主成分分析的方法,虽然这种方法比较的简单,但技术却非常的古老、是人脸识别中比较经典的一种方法。1.3本论文内容安排第一章简单介绍了计算机人脸识别技术的主要方法及其应用,和本论文的主要论证与实现的典型的人脸识别方法。2第二章讲述了 PCA 的理论基础以及通过例子说明 PCA 的降维、重建过程。第三章讲述了
12、PCA 在人脸识别中的具体应用,采用简单的图片的归一化方法对人脸图像进行归一化出来,通过介绍 SVD 原理计算出协方差矩阵,计算人脸主成分,最后重建图片,再采用欧氏最小距离进行人脸识别。第四章仔细地讲解了基于 PCA 算法在 matlab 中的实现过程。第五章总结本编论文的成果。32 PCA2.1 PCA简介Principal Component Analysis 简称 PCA,它是多分量分析中最老的技术之一,来源于通信理论中的 K-L 变换。1901 年由 Pearson 第一次提出主要成分分析方法,主要经过 Karhuman 和 Loeve 归纳修改1。2.2 PCA的实质PCA 的实质是
13、在尽可能好地表达原始数据的前提下,通过线性变换将高维空间中的原始样本数据投影到底维空间中1,即利用低维空间来表示高维空间的样本数据,也就是降维。其本质是转换坐标表示。2.3 PCA理论基础2.3.1投影设 d 维样本 , , ,以及一个 d 维的基 ,那么标量 H 为: 1x2nxwkTxH13.2H 相当于 在 基上的坐标值。如果 为单位向量,那么 H 就是把 向方向为 的kw kxw直线进行投影的结果。如图 2-1以上是一维的情况,我们推广到 m 维,这样就有一组基(m 个)组成的空间,若样本 投影到 基上,可以得到:mwW,.211xW1xwHT23.其中 可以写成:eakk.为均值,
14、是单位向量,且直线 经过 。mem图 2-1 投影 x wH42.3.2最小平方误差理论问题 1:如上图 2-2,假设在二维坐标上有 N 个样本点,如何能找出一点(红色)能够很好的代表这 N 个样本点呢?问题 2:如上图 2-3,假设有这样的二维样本点,如何能求出一个线性函数使得直线能够最佳拟合样本点呢?问题 3:若存在 n 个 b 维的样本,如何能用一个 m(mb)维空间来代表这 n 个样本呢?以上问题归纳为:对于 d 维空间中的样本 , , ,如何能把 d 维空间的 n 个样本1x2nx投影到 ( d)维空间中来呢?(1) =0d此时和问题 1 相似,即对于 d 维空间中的 n 个样本 ,
15、 , ,将样本点1x2nx在 d 维向量 (d 维空间中的一点)上投影记为 ,则相当于要最小化kx0x 02k-kix 43.2这个公式称作最小平方误差,即当2100)(knkxxE 53.2取值为最小时,向量 能够代表这 n 个样本 , , 。假设 表示样本 ,0x2nxm1x, 均值,均值公式为2xnx63.2则有:图 2-2 二维样本表示yx图 2-3 最佳拟合样本点的直线LeX;kXkd;dxynkxm15212100 11 21020111 200)( 0)()()()()( mxxExnnmxxx mxxmxEknk kkknk nknkTk kknknk kk 73.2由于第二项
16、式与 无关,显然, 在 = 时取得最小值。这表明在最小平方误0x)(0差意义下能够最好的代表这 n 个样本 , , 的 d 维向量就是这 n 个样本的均1x2nx值。换句话说,样本均值是这 n 个样本 , , 在零维下的表达,所有的样本都在零维空间下被投影到同一个点 上。0(2) =1d如把所有的样本都投影到同一个点上,这将无法反映出各个样本之间的差异,也无法对样本进行分类,所以进一步考虑一维的情况。当 =1 时,和问题 2 一样,通过用一直线表示样本。同样是在最小平方误差意义下,d把样本点投影到直线上,因此这条直线通过 点,并确定直线的方向为 , 是这条通过me均值的直线的单位方向向量,所以
17、样本 , , 可以用直线可以表示为:1x2nxeak 83.2如下图 2-4,其中 k是一个实数,表示直线上的点 到 的距离。 是点 在直线akkxk上的垂直投影。e我们把 作为 的在直线 的一维表示,记作 上标(1)表示一维。因此样kakxekax)(本 , , 在一维空间上的表达式为:1x2nkxekakxm图 2-4 样本的一维表达6eamxkk 93.2把 看做是 在一维空间中的近似值。那么接下来怎么确定直线 呢?我们知kxk .道确定一条直线,一般只需要确定一个点,再确定直线的方向即可,现在我们已经确定了点 ,所以只要确定 的方向就行了。同样要在最小平方误差意义下使得 最小。me )
18、(1eE就是最小平方误差函数。所以我们求的是 的最小值,如下:)(1eE )(1eE21211 )()( nkknk xamxE 03.2其中 a1,a 2an和 是未知变量,将式(2.3-10)展开得:e2112121 )()()() nkkTnknk kkk mxxeae 13.2其中 ,对 进行求导得:12ea)(kTk123.这个结果意思是说,如果知道 了,那么将 与 e 做内积,就可以知道了 在exkx上的投影 离 的长度距离。ekxm我们的目标是在最小平方误差意义下,寻找 的方向,因此消去 ,把(2.3-12)ka式带入(2.3-10)式得:21 211212112 211221)()()(nkTnkkk kTkknkTnkkknknk nkkmxeSxexemxaxaeeE 13.2其中 S 为:Tknk)(1 143.2S 称为散布矩阵,是协方差矩阵 C 的 n-1 倍。在式(2.3-13)中,第二项跟 无关,所以,要使 最小,必须要让 最大,e)(1eEeST在这我们采用了拉格朗日数乘法来求解,这里有一约束条件是 。2令 ,其中 为拉格朗日乘数,对 求偏导得:)1(eeHTT