基于主分量分析(PCA)的人脸识别算法设计工程设计报告题目类型(小组题目)班级:021212姓名:学号:联系方式:西安电子科技大学电子工程学院摘要:此次我组工程设计所选的题目是:基于主分量分析(PCA)的人脸识别算法设计。在工程设计完成过程中,首先需了解人脸识别技术的背景及发展现状等情况,其中较重要的是几个不同算法的实现。由于我组所选为基于PCA的算法,所以所查资料也偏重于PCA相关。通过百度学术和谷歌学术搜索相关资料,结合前人的设计代码并加以改进实现人脸的训练及匹配,并最终验证匹配率为0.88.1.绪论人脸识别,是基于人的脸部特征信息进行身份识别的一种生物识别技术。用摄像机或摄像头采集含有人脸的图像或视频流,并自动在图像中检测和跟踪人脸,进而对检测到的人脸进行脸部的一系列相关技术,通常也叫做人像识别、面部识别。人脸识别系统的研究始于20世纪60年代,80年代后随着计算机技术和光学成像技术的发展得到提高,而真正进入初级的应用阶段则在90年后期,并且以美国、德国和日本的技术实现为主;人脸识别系统成功的关键在于是否拥有尖端的核心算法,并使识别结果具有实用化的识别率和识别速度;“人脸识别系统”集成了人工智能、机器识别、机器学习、模型理论、专家系统、视频图像处理等多种专业技术,同时需结合中间值处理的理论与实现,是生物特征识别的最新应用,其核心技术的实现,展现了弱人工智能向强人工智能的转化。人脸识别主要用于身份识别。由于视频监控正在快速普及,众多的视频监控应用迫切需要一种远距离、用户非配合状态下的快速身份识别技术,以求远距离快速确认人员身份,实现智能预警。人脸识别技术无疑是最佳的选择,采用快速人脸检测技术可以从监控视频图象中实时查找人脸,并与人脸数据库进行实时比对,从而实现快速身份识别。生物识别技术已广泛用于政府、军队、银行、社会福利保障、电子商务、安全防务等领域。例如,一位储户走进了银行,他既没带银行卡,也没有回忆密码就径直提款,当他在提款机上提款时,一台摄像机对该用户的眼睛扫描,然后迅速而准确地完成了用户身份鉴定,办理完业务。这是美国德克萨斯州联合银行的一个营业部中发生的一个真实的镜头。而该营业部所使用的正是现代生物识别技术中的“虹膜识别系统”。此外,美国“9.11”事件后,反恐怖活动已成为各国政府的共识,加强机场的安全防务十分重要。美国维萨格公司的脸像识别技术在美国的两家机场大显神通,它能在拥挤的人群中挑出某一张面孔,判断他是不是通缉犯。当前社会上频繁出现的入室偷盗、抢劫、伤人等案件的不断发生,鉴于此种原因,防盗门开始走进千家万户,给家庭带来安宁;然而,随着社会的发展,技术的进步,生活节奏的加速,消费水平的提高,人们对于家居的期望也越来越高,对便捷的要求也越来越迫切,基于传统的纯粹机械设计的防盗门,除了坚固耐用外,很难快速满足这些新兴的需求:便捷,开门记录等功能。人脸识别技术已经得到广泛的认同,但其应用门槛仍然很高:技术门槛高(开发周期长),经济门槛高(价格高)。人脸识别产品还广泛应用于金融、司法、军队、公安、边检、政府、航天、电力、工厂、教育、医疗及众多企事业单位等领域。随着技术的进一步成熟和社会认同度的提高,人脸识别技术将应用在更多的领域。1、企业、住宅安全和管理。如人脸识别门禁考勤系统,人脸识别防盗门等。2、电子护照及身份证。中国的电子护照计划公安部一所正在加紧规划和实施。3、公安、司法和刑侦。如利用人脸识别系统和网络,在全国范围内搜捕逃犯。4、自助服务。5、信息安全。如计算机登录、电子政务和电子商务。在电子商务中交易全部在网上完成,电子政务中的很多审批流程也都搬到了网上。而当前,交易或者审批的授权都是靠密码来实现,如果密码被盗,就无法保证安全。但是使用生物特征,就可以做到当事人在网上的数字身份和真实身份统一,从而大大增加电子商务和电子政务系统的可靠性。2.理论描述2.1.人脸图像的计算机表述在图像处理系统中,计算机可以用函数f(x,y)来表示一幅灰度图像,在这个函数里,变量x和y代表着图像二维空间的坐标,函数f值和人脸图像在该点的亮度是成正比的。灰度图像函数f(x,y)在空间坐标上和亮度上在计算机中被离散化了。因此,根据数学知识,我们可以把一幅数字图像看做一个二维矩阵或者一个数组。该矩阵的行和列表示图像上的一个像素点,而该点的灰度等级则对应矩阵中相应元素的值。这样的数字阵列中国的元素叫做图像元素或者像素。一幅大小为P行,Q列的图像,可以用P行Q列的矩阵表示在计算机系统内。在接下来的阐述中,人脸图像尺寸在不同的人脸数据库是不同的,比如说,在Yale人脸库中的图像尺寸表示和ORL人脸库中的图像尺寸表示是完全不同的。因此,对于在ORL人脸库中的图像,根据上述理论,可以用112行92列的二维矩阵表示,当然也可以用长度为10304的一维列(行)向量来进行有效描述。2.2.PCA原理在上述的章节中,我们讲到,主成分分析法是完全从数据的统计性质出发实现的变换,因此它在统计识别中有重要的应用。我们同样可以做下列假定:设x是一个N×l的随机向量,也就是说X的每个元素都是一个随机变量。随机向量X的均值mx可以用K个这样的样本向量进行估计:∑(1)它的协方差矩阵可由下面公式给出估算:[()()](2)从上述公式可知,协方差矩阵是一个N×N的实对称矩阵,它的对角线元素为各个随机变量的方差,而它的非对角线元素则为各随机变量的协方差。矩阵变换K—L变换用矩阵A来定义一个线性变换,这个变换可以将任意向量x通过下面线性变换得到一个向量y:()(3)考虑到K—L变换所得的向量Y具有零均值特性,这样就能得Sy的协方差矩阵与Sx的协方差矩阵的关系为:(,,,)(4)在上述公式中,矩阵A的各列为Sx的特征向量,且各列均正交归一,即。是Sx的特征值。矩阵Sx的特征向量按照这样的规则构成:先将Sx的特征值入进行非升序排列,同样相应的特征向量也进行重新排列。由公式(4)可知,y的各个元素之间互不相关,这样就说明线性变换A消除了变量之间的相关性。对应K.L逆变换为:X=Ay+(5)这个变换公式正是对原向量进行重构的过程。人脸识别在实际使用K.L逆变换时,我们如果选取较大的特征值对应的特征向量,同时也舍弃那些在所有特征值中所占比重较小的特征值所对应的特征向量,在这种情况下,我们既可以降低变换后向量Y的维数,同时又可以近似重建向量X。.我们不妨取矩阵A的前M列(MN)构成MXN新的矩阵A,通过矩阵变换向量Y就减小为MXl维,即̅()(6)向量x的近似重建为:̅()(7)对应的近似重建均方误差为:σ=∑∑∑(8)而均方误差σ为被舍弃特征向量对应特征值的代数和,如果均方误差越小,那么重建数据与原数据越近似。综上可知,主成分分析算法处理可以产生几个重要结果:第一,随机向量间的相关性被消除,第二,近似重建的图像保留了原图像的大部分能量,在某种程度上来讲,主成分分析算法最优,最后是成功完成了对原随机变量的降维。2.3.基于PCA的人脸识别考虑到人脸之间的结构具有一定的相似程度,因此,我们一些具有十分相似的人脸图像进行处理后,我们发现这些图像具有一定的规律性,而不是随机散乱的。也就是说存在这样的规律:相同的人的人脸图像在同一个空间上它的距离相隔很近但是不同的人脸图像则距离很远。所以,通过比较图像的相似度,我们可以对人脸图像进行有效识别。另一方面,由于图像的像素点一般比较多,如果直接比较运算量大且识别率较低,因此我们可以通过K.L变换,将人脸图像用一个低维子空间进行描述,这样能很好地降低人脸图像的维数同时又保留所需要的识别信息。接下来我们在ORL人脸库中进行识别实验。我们可以取该人脸数据库中的若干训练样本进行测试,在本文中,我们取数据库中的训练样本数量为200个,同样,为了保证一致性,也取了200个测试人脸图像样本。以主成分分析算法为基础的人脸识别算法步骤如下:第一步,我们把人脸图像矩阵化,并将人脸图像矩阵转换成列向量,从而得到了人脸图像的训练样本集。第二步,通过K.L变换后,计算得到的生成矩阵。第三步,根据SVD定理计算出图像的特征值和特征向量。第四步,求出最优投影矩阵。第五步,将训练后的人脸图像和人脸测试图像投影到特征空间,从而得到特征向量。最后,通过对比测试图像和训练图像,从而确定待识别样本类别。2.3.1.成训练样本经过一系列的预处理后,人脸库得到了初步构造,我们将训练库中的每人选择一定数量的图像构成训练集,剩下的人脸图像构成测试集。不妨假如人脸库中共有M个人脸图像。假设人脸图像矩阵为Ai,其中i=I,2,⋯,M,同时将其每幅人脸图像矩阵按列重排成m×n的列向量,得到训练样本集Φ=[Φ1,Φ2,⋯,Φm],Φ表示的是长度为m×n的列向量。2.3.2.K-L变换的生成矩阵从计算的简化角度来考虑,我们首先求出训练样本的均值,也就是平均脸。而平均值代表了这K幅人脸图像所共有的特征成分,由于这些图像具有不同性,从突出差异性来考虑,必须将共有的成分减去,这样就得到K幅差图像向量。经过去均值后构成的矩阵X=[xl,X2,⋯,Xm],其中xi=Φi-M。。通过求出矩阵协方差矩阵Sx=,我们接下来对该协方差矩阵进行特征分解,考虑到矩阵是一个N×N的超大矩阵,N=m×n,要得到它的特征值和特征向量需要规模很大的工作量,所以在这里,我们将其转换为求矩阵的分解。2.3.3求特征值和特征向量首先我们来构造一个矩阵,然后求得其对应的特征值,,,其中≥≥⋯,这m个特征值对应的特征向量为Vl,V2⋯,Vm。利用奇异值分解的结论可以知道、的正交归一化特征向量。√,(,),求得的这个向量就是我们需要的特征脸。2.3.4.求特征空间我们可以选择前k个特征脸进行识别,如果这k张特征脸对应的特征值越大,那么与之对应的特征向量上的投影对方差的贡献也就越大,所以在这里我们定义一个方差贡献率:β=∑∑(9)这个公式在后面的章节中有详细介绍。我们可以通过这个公式求得方差贡献率,进而通过它来选择k值,最后形成特征空间U=[ul,u2⋯,uk]。2.3.5.提取特征特征提取就是将人脸中最能代表人脸信息的特性提取出来,通过特征提取,我们能很有效地进行后续的识别。我们把每一幅人脸图像向特征脸子空间投影,在取得一组坐标系数后,我们认定此坐标系数就对应于特征空间中的一个点。采用同样的道理,任一点在特征空间中也对应于一幅图像。根据这组系数,我们便可把它们作为人脸识别的依据,同样,它们也就是这张人脸图像的特征向量。3.PCA算法的功能实现3.1.人脸空间的建立假设一幅人脸图像包含N个像素点,它可以用一个N维向量Γ表示。这样,训练样本库就可以用Γi(i=1,...,M)表示。协方差矩阵C的正交特征向量就是组成人脸空间的基向量,即特征脸。将特征值由大到小排列:λ1≥λ2≥...≥λr,其对应的特征向量为μk。这样每一幅人脸图像都可以投影到由u1,u2,...,ur张成的子空间中。因此,每一幅人脸图像对应于子空间中的一点。同样,子空间的任意一点也对应于一幅图像。3.2.特征向量的选取虽然协方差矩阵Ω最多有对应于非零特征值的k(k远小于M)个特征向量,但是通常情况下,k仍然很大,而事实上,根据应用的要求,并非所有的特征向量都有需要保留,而特征空间投影的计算速度是直接与创建子空间所用的特征向量的数目相关,若考虑到计算时间的因素,可以适当的减去一些信息量少的特征向量,而且,去掉这些特征向量之后不一定不利于分类结果,有的情况下反而能够提高识别性能。3.3.人脸识别有了这样一个由特征脸张成的降维子空间,任何一幅人脸图像都可以向其投影得到一组坐标系数,这组系数表明了该图像在子空间中的位置,从而可以作为人脸识别的依据。换句话说,任何一幅人脸图像都可以表示为这组特征脸的线性组合,其加权系数即是K-L变换的展开系数,也可以称为该图像的代数特征。因此,在获得特征脸之后,就可以对每一类别的典型样本进行投影,由此得到每个人脸的投影特征从而构成人脸特征向量,作为下一步识别匹配的搜索空间。输入图像及其在人脸空间上的投影(重构图像),人脸图像在人脸空间中的投