【《基于PCA的人脸识别算法案例分析》4600字】_第1页
【《基于PCA的人脸识别算法案例分析》4600字】_第2页
【《基于PCA的人脸识别算法案例分析》4600字】_第3页
【《基于PCA的人脸识别算法案例分析》4600字】_第4页
【《基于PCA的人脸识别算法案例分析》4600字】_第5页
已阅读5页,还剩5页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

基于PCA的人脸识别算法案例分析目录TOC\o"1-3"\h\u14747基于PCA的人脸识别算法案例分析 1312151.1人脸识别 1255201.2基于PCA的人脸识别 1137331.2.1读入人脸数据库 291641.2.2K-L变换 2143893.2.3SVD定理 4321451.3MATLAB仿真 620911.4小结 101.1人脸识别人脸识别的有效性和精确性的关键就在于能否可以提取出有效的人脸特征,人脸构成非常的复杂,而且还在不断的变化,这是一个高维度下的模式识别问题。人脸图像进行特征提取的主要方法有两种,人脸几何特征和人脸代数特征提取法。结构特征主要是人脸五官之间的几何关系,包括角度,欧氏距离和区域的特征,代数特征提取法其实就是把人脸构建成一个数据矩阵,通过提取矩阵的特征进行人脸的识别。一般来说,人脸图像的维度是非常高的,这样处理起来,计算量会很大,不利于图像处理。而且在高维空间浏览的图像分布集中,非常不利于区分。为了区分出人脸图像,引入了主成分分析法,为了将高维空间中的主要提取出来,以次解决维数过高的计算量和数据过多问题。对人脸图像的特征提取一般指的是将待识别人脸图像投影到特征脸空间,投影满足两个条件,第一,人脸的主要信息保留在特征脸空间中,第二,投影后的图像维数要远远小于投影前的维数。1.2基于PCA的人脸识别我们将预处理后的人脸图像在高维空间进行投影,这些图像在高维空间中的分布存在一定的规律,同一个人的不同人脸图像在高维空间中相离会比较近,不同人脸的图像在此高维空间中相隔就比较远。我们可以通过比较图像在高维空间投影的距离对人脸进行识别。我们可以通过K-L变换解决运算量巨大的问题,可以用一个低维子空间来对高维空间的人脸图像进行描述,这样既可以减少运算量又可以保留我们所需要的识别信息。基于PCA算法的人脸识别算法步骤如下:读入人脸数据库;计算K-L变换的生成矩阵,得到图像的特征值和特征向量;利用SVD定理计算图像的特征值和特征向量;分别把训练图像和测试图像投影到特征脸空间;比较测试图像和训练图像在特征脸空间的距离,对测试图像进行分类识别。1.2.1读入人脸数据库首先要对人脸数据库的人脸进行预处理,对人脸图像进行归一化,然后将数据库中的每人选择一定数量的图像构成训练数据库集,其余构成测试数据库读入人脸识别系统。设归一化后的图像是100×100,则该图像就构成了10000×10000维矢量,我们可以通过K-L变换,用一个低维子空间来描述这个10000×10000维的图像。1.2.2K-L变换人脸图像属于高维数模型,要处理这种模型需要的计算量非常大,对识别速度影响非常大,同时,图像在高维空间中也非常不便于区分。因此,我们引入了K-L变换来解决计算高维空间计算量过大的问题。该方法为人脸识别研究开辟了一个主流的方向被称为中子空间分析法。此外,许多改进后新的识别方法在基于特征脸法的基础上层出不穷。人脸属于高维数模型,要处理这种模型计算量非常的大,对图像的处理十分不利。此外在高维空间中图像非常不便于区分。因此,人们就引入了主成份分析来区分人脸图像,这样就可以解决数据多余和计算量大等问题。提取人脸特征就是在特征脸空间投影需要识别的图像。投影一般需要具有:第一,投影之前的维数必须远大于投影之后的维数。第二,特征脸空间要保留人脸的主要信息和数据。应用基于PCA方法进行人脸识别时,首先要经过K-L变换,求出特征值,再对训练人脸空间的特征值进行取舍,然后就能构成一个新的低维正交基空间,将所有的人脸投影到这个低维空间,可计算出待测图像中最相似的值,最后把人脸识别出来。具体步骤有:第一步:对人脸图像做预处理。第二步:先训练人脸库,然后建立特征脸空间。第三步:在特征脸空间投影预存人脸图像和待识别图像。第四步:将人脸图像最近距离的待识别图像输出。K-L变换原理及性质K-L变换是指主成份变换或者霍特林变换。它指只有对角线上的元素不为零时,协方差矩阵可以保证数据间没有关联。这对数据压缩起到很大作用。1、定义协方差矩阵。设定f属于N×I的向量集合f={f1,f2,f3,...,fn},fi是变量f的均值,它可对N个样本向量进行估计如式f的协方差定义为μ=E(f)≈1CF计算出f的协方差矩阵的特征值λi和特征向量Φi。C其中λi为特征值,Φi为特征向量。变换矩阵Φ是由特征向量构成Φ=[Φ1,Φ2,…Φn],发生正交化后为Φ*(正交矩阵),将Φ*T记为A。因此定义一维K-L变换为F=ϕ反变换定义为如f−μK-L变换的基本思路:当F的均值为零μFF的协方差μF进行K-L变换前后向量信号相同,但各个分量的值却不同,在变换后将会出现很多非常小的值。这就能在保留主要信息基础上又能降低维数。利用这种性质就可以用作数据压缩。主特征分量有以下性质:当矩阵已经正交归一化并且具有映射的线性关系时,在训练空间的每一个对应的特征向量都有唯一的模式,这就说明主要信息的存在不会因为模式的转变而改变。稳定性。输入信息发生微小变化时,它所对应的主要特征受到的影响几乎不存在。这表明图像噪声等因素对图像灰度并不敏感,这样输入图像就会有更广泛的范围。当分量映射后,相应的模式间的距离就会变小,多维空间就可进行分类。一般主特征分量都具有图像重建的能力。因为主特征在重建发生在误差最小的情况下,这就表明了它具有重建的性能。所以重建后图像质量由主特征量的多少决定。3.2.3SVD定理SVD定理就是奇异值分解定理,人脸复杂度很高,维度也很高,普通矩阵的特征值和特征向量通常可以通过K-L变换来得到,但是人脸图像这种高维度举证求解特征向量很困难,所以需要通过SVD定理来解决该问题。根据SVD定理uiKKT的特征向量和特征值可以通过K在计算人脸识别时,一般人脸图像的维数很大。本文采用的人脸库中,一共十个人,一个人两张,共有二十张图像。都是分辨率为112×92的人脸图像。训练集中每人选取一张图像,在训练集人脸样本矩阵的维数为36000×200,协方差矩阵的维数为36000×36000,根据SVD定理可知,可通过矩阵获得协方差矩阵的特征向量与特征值,它只有200×200的维度,这样运算速度就有了较大的提高,这样就得到了特征脸空间。图4-1EigenfacesSpaces函数流程图基于特征脸的方法具有简洁、高效等特点,在该领域非常热门。由本节分析中可以得到特征脸方法存在很多优点。采用K-L变换原图像,可以去掉图像相关性。它不仅使变换后人脸在低维空间具有更好的表征能力,而且能使待测人脸图像由高维向低维空间转变时均方误差达到最小。但是,这种方法在使用中有许多缺点:尽管近似看作它组成的子空间最佳,但不能说明人脸识别达到了最佳效果;它求得的特征是最好的表征特征,但分类特征不一定最好。统计法的特征脸法是把所有图像做相同处理,这样识别率受到的影响就会下降,鲁棒性较差。由于特征脸的变化会根据人脸图像库的变化而变化,因此,当人脸库中人脸数目变化较大时该方法并不适于此种情况。人脸是一个特别的物体,它会随着时间而变化发生很大的改变,这些不确定的因素都会影响人脸识别的效果。这就要求不断地改进人脸识别技术的算法,构建更加完善的人脸识别系统。今后需要研究的方向有:(1)人脸识别系统随着图像库的增大,对算法的要求就会提高。现实生活中,人脸图像库中的图像有上千万甚至更大。所以,如何在如此庞大的人脸库中高速率的进行人脸识别,并得到准确、稳定的图像识别将成为今后研究的一个方向。(2)目前为止,人脸识别技术许多重大的成果都是在二维人脸图像的基础上取得。由于人脸是三维模型,获取全面且又真实的信息很重要。而二维人脸图像受人脸情绪、姿态、年龄、环境等因素的影响比较大,获取的图像就会受到干扰,识别结果不精准。相比较而言,三维图像比二维图像更能很好的完成图像信息的获取,识别效果更佳。所以如何实现三维人脸参数的建模,如何采用三维信息对人脸图像进行识别,这些都将成为未来最有意义和最有难度的研究难题。(3)人脸识别系统在大多数场合都需具备非静态识别能力,例如车站、学校、办案等必须识别动态的人脸图像。在很多方面,动态识别系统都比静态人脸识别系统有明显的优势,因此发展动态人脸图像的识别技术将具有十分广阔的使用价值。1.3MATLAB仿真本文所设计的人脸识别系统在MATLABR2016b上运行,系统的主流程图如图4-1所示。主要实现的功能是当输入一张人脸图像时,系统能够从预存人脸数据库中找出一张与待识别人脸图像中的人脸一致的图像。先创建一个预存人脸数据库,数据库中存放着尺寸大小相同的二十张人脸图像,其中共有十位测试者、每位有两张人脸图像。每张测试者的表情都有一定变化。在创建一个待识别人脸数据库,库中有这十位测试者的另外一张人脸表情图像。运行程序,分别选择预存人脸数据库和待识别人脸数据库的路径。输入待识别人脸数据库中图像的名称,最后显示识别人脸图像。图4-2主流程图系统进行人脸识别仿真是的详细运行步骤如下:1、选择预存人脸数据库系统首先提示选择预存人脸图像库。预存人脸数据库中包含有十个测试者,其中有九位测试者的人脸照片来自Essex人脸库。一位来自建的人脸库。每人共有俩张人脸图像,共有二十张人脸图像。每张图像的人脸拍摄角度都是正面,人脸也没有遮挡物。人脸照片都是在测试者说话的时候拍的,所以人脸表情都有一定幅度的变化。每张图像的大小都是180x200。每张图片按顺序命名。如下图4-3所示。图4-3选择预存人脸数据库预存人脸数据库中存储的人脸照片如下图所示:图4-4预存人脸数据库2、选择待识别人脸数据库图4-5选择待识别人脸数据库待识别人脸数据库中的测试者与预存人脸数据库中的测试者相同,这里采用与预存人脸数据库中不同的照片。每位测试者一张照片,共十张照片。待识别人脸数据库中图片的采集环境以及图像的尺寸和格式以及拍摄角度都相同。即预存人脸图像数据库中的测试者照片与待识别人脸数据库中的照片在同一环境下采集的。待识别人脸数据库中的人脸图像如图4-6所示。图4-6待识别人脸数据库3.输入待识别人脸图像图4-7输入待识别图像选择完预存人脸数据库以及待识别人脸数据库后就可以选择需要识别的人脸图像,因为本系统的人脸图像数据的提取方式是按照图片的名称提取的,所以所有图片的命名采用罗马数字并且必须是相连的,命名的数字不可以有间断否则系统会进行报错。所以输入的待识别人脸图像的名称必须是罗马数字而且输入的数字不可以超过待识别人脸图像的总数。实现的代码如下所示:%Asamplescript,whichshowstheusageoffunctions,includedin%PCA-basedfacerecognitionsystem(Eigenfacemethod)%%Seealso:CREATEDATABASE,EIGENFACECORE,RECOGNITION%OriginalversionbyAmirHosseinOmidvarnia,October2007clearallclccloseall%YoucancustomizeandfixinitialdirectorypathsTrainDatabasePath=uigetdir(strcat(matlabroot,'\work'),'Selecttrainingdatabasepath');TestDatabasePath=uigetdir(strcat(matlabroot,'\work'),'Selecttestdatabasepath');prompt={'Entertestimagename(anumberbetween1to10):'};dlg_title='InputofPCA-BasedFaceRecognitionSystem';num_lines=1;def={'1'};TestImage=inputdlg(prompt,dlg_title,num_lines,def);TestImage=strcat(TestDatabasePath,'\',char(TestImage),'.jpg');im=imread(TestImage);T=CreateDatabase(TrainDatabasePath);[m,A,Eigenfaces]=EigenfaceCore(T);OutputName=Recognition(TestImage,m,A,Eigenfaces);SelectedIma

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

最新文档

评论

0/150

提交评论