PCA人脸识别算法研究成果.pptVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
系统功能描述;系统流程;开始;详细过程;CreateDatabase()流程;CreateDatebase函数;CreateDatebase函数的描述; 第三步 提取特征脸。 函数为EigenfaceCore(); 这一步中我们要对矩阵T做一些处理,其实就是PCA分解的过程。 A、取得图库矩阵T的行均值矩阵(m) 在上一步中我们得到矩阵T行数为H=M*N=irow*icol,列数为P=Train_number。 获得的行均值矩阵m大小为M*Nx1,其中 B、 则偏差矩阵的计算方法为A=double(T(:,i)) – m,显然矩阵A的大小和矩阵T一样为H=M*N.每一幅图像在矩阵T中体现为一个列向量,如此即可计算出没幅图像相对于均值矩阵m的偏差。下面为具体步骤:;如何取得图像库的偏差矩阵(A);; 训练库中可能存在某些干扰,为了找出人脸的主元向量,在此阶段设置一定的阈值将干扰隔离。代码如下: L_eig_vec = []; for i = 1 : size(V,2) if( D(i,i)1 ) L_eig_vec = [L_eig_vec V(:,i)]; end End 消除了影响因素,并对原特征向量矩阵V重新排序组成新的L_eig_vec特征向量矩阵。 Eigenfaces = A * L_eig_vec 让偏差矩阵A和特征向量基矩阵相乘,得到特征脸矩阵,该矩阵中每一列表示一副特征脸。L_eig_vec为P行L列的矩阵,其中L小于P,则Eigenfaces矩阵为H行L列的矩阵。 ;第四步 匹配识别;Recognition函数;一: 获取矩阵Eigenfaces矩阵的列数 Train_Number =size(Eigenfaces,2); Train_Number=L。 ProjectedImages= Eigenfaces‘*A(:,i) 。脸域中 的一个列描述了一副图像的主要特征。即在此,我们用一个L维的向量基表示每幅图像。ProjectedImage为L阶方阵。 将测试图像读入矩阵中,并用相同的方法处理测试图像矩阵,然后映射入测试脸域,得到ProjectedTestImage。 ProjectedTestImage为一个含有L个元素的单列矩阵。;二: 利用欧几里得几何距离的算法求解出测试图像和原来经过训练的图像所得参数进行最小距离的计算,此最小距离可以理解为测试图像和标准库中每个图像之间最大的相似度。 设a[i][j]表示脸域中地j列表示的一副图像(即一列数据),b[i]表示映射入脸域的测试图像,都含有L个元素。欧几里得距离: 将对比后的数据存入Euc_dist矩阵中,显然Euc_dist中含有L个元素。; ???到拥有最大相似度的图像,即欧氏距离最小,目标图像找到。 后边是matlab代码。;附注: 完整程序代码: clear all clc close all % You can customize and fix initial directory paths TrainDatabasePath = uigetdir(D:\Program Files\MATLAB\R2006a\work, Select training database_path ); TestDatabasePath = uigetdir(D:\Program Files\MATLAB\R2006a\work, Select test database_path); prompt = {Enter test image name (a number between 1 to 10):}; dlg_title = Input of PCA-Based Face Recognition System; 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); SelectedImage = strcat(Tra

文档评论(0)

yanxiaosa0 + 关注
实名认证
文档贡献者

大家好!本人在此声明:本账号所有文档均出自网络,如有侵权请联系删除。收集归纳不易,请手下留情。

1亿VIP精品文档

相关文档