基于PCA地人脸识别研究计划报告.doc

上传人:一*** 文档编号:820141 上传时间:2019-07-19 格式:DOC 页数:14 大小:1.24MB
返回 下载 相关 举报
基于PCA地人脸识别研究计划报告.doc_第1页
第1页 / 共14页
基于PCA地人脸识别研究计划报告.doc_第2页
第2页 / 共14页
点击查看更多>>
资源描述

《基于PCA地人脸识别研究计划报告.doc》由会员分享,可在线阅读,更多相关《基于PCA地人脸识别研究计划报告.doc(14页珍藏版)》请在得力文库 - 分享文档赚钱的网站上搜索。

1、课程设计课程设计设计课程:设计课程:模式识别模式识别题题 目目 基于基于 PCA 方法的人脸识别方法的人脸识别学生姓名学 号学 院专 业指导教师 2013 年年 12 月月 25 日日目目 录录摘要摘要一、一、 课程设计目的课程设计目的.3二、二、 课程设计要求课程设计要求.3三、三、 题目分析题目分析.3 四、四、 总体设计总体设计.3五、具体设计具体设计.4 6.1、创建数据库.4 6.2、计算特征脸.5 6.3、人脸识别.6六、六、 结果分析结果分析.9七、七、 心得体会心得体会.9八、八、 参考文献参考文献.10摘摘 要要随着人类社会的进步,以及科技水平的提高,一些传统的身份认证的方法

2、逐渐暴露出各种问题,因此人们需要采用一种更加可靠安全的身份认证方法。毫无疑问人体的生物特征的独一无二的,特别是其不容易丢失及复制的特性很好满足了身份识别的需要。并且随着计算机科学技术和生物医学的发展使得利用生物特征识别成为了可能。因此基于指纹、人脸、视网膜等生物特征的识别方法也越来越多。由于人脸识别的操作快速简单,结果直观,准确可靠,不需要人的配合等优点已成为人们关注的焦点。主成分分析(PCA)法通过提取高维度的人脸图像的主元,使得图像在低维度空间中被处理来降低了图像处理的难度。由于其有效的解决了图像空间维数过高的问题,已经成为人脸识别领域非常重要的理论。此次研究的就是基于 PCA 的人脸识别

3、算法的实现。本文按照完整人脸识别流程来分析基于 PCA 的人脸识别算法实现的性能。首先使用常用的人脸图像的获取方法获取人脸图像。本文为了更好的分析基于 PCA 人脸识别系统的性能分别选用了 Essex 人脸数据库和 ORL 人脸库,并在后期采用了自建的人脸库。接下来是人脸图像预处理方法。由于采用的人脸图像质量较好,而且已经做过相应的预处理,所以本文试验中只使用灰度处理。接着使用 PCA 提取人脸特征,使用奇异值分解定理计算协方差矩阵的特征值和特征向量以及使用最近邻法分类器欧几里得距离来进行人脸判别分类。在实验中我们发现基于 PCA 的人脸识别系统的识别率很高,而且具有一定鲁棒性,所以基于 PC

4、A 的人脸识别算法的实现的研究还是有意义。【关键词关键词】人脸识别 PCA 算法 欧几里得1 1、课程设计的目的课程设计的目的介绍基于 PCA 的人脸识别算法的实现,先介绍 PCA 算法的理论基础,其次介绍了其在数字图像领域的应用,最后结合具体研究详述了研究过程。2、课程设计的要求课程设计的要求1:一张新的图片也表示为 d 的向量,记为 D,D 的大小 1n2: D 乘以上面训练得到的 T, 得到这个图片向量 D 在 T 下的投影向量 P,p 的大小1k。3: 计算 p 与上面所有的 pn 的向量距离,与 p 最小的那个向量所对应的人脸图片跟这张新人脸图片最像。3、题目分析题目分析应用程序的功

5、能需求分析应用程序的功能需求分析 该软件最主要的功能就是要能识别出人脸,首先该系统需要对通过摄像头拍照而获取到的原始的人脸图片进行一系列处理才可进行下一步的工作,该处理过程也称图像预处理。预处理这个模块在整个人脸识别系统的开发过程中占有很重要的地位,只有预处理模块做的好,才可能很好的完成后面的人脸定位和特征提取这两大关键模块。因此本设计中所要完成的主要功能如下所述:1)图像获取功能:该模块主要是从摄像头拍照后进行获取图片,也可以从图片库中获取,获取后的图片可以在软件的界面中显示出来以便进行识别。2)图像预处理功能:该模块主要包括图像光线补偿、图像变成灰色、高斯平滑、均衡直方图、实现图像对比度增

6、强、二值化变换等。3)人脸定位功能:该模块主要是将处理后的人脸图片进行定位,将眼睛、鼻子、嘴巴标记出来,以便进行特征提取。4)特征提取功能:该模块是在定位后的人脸图片中将眼睛、鼻子、嘴巴的特征值提取出来。5)识别功能:该模块是将从图片中提取的特征值和后台数据库中的值进行比较来完成识别功能。四、总体设计四、总体设计主成分分析为一种统计学中特征提取方法,在实际中应用的非常广泛。PCA 是通过提取原始数据的主元来减少数据的冗余,使数据在低维度的空间中被处理,同时它还能很好保持了原始数据的绝大部分信息,有效的解决了由于空间维数过高而导致的一系列问题。如下将详细介绍如何使用 PCA 算法进行人脸识别。主

7、函数(main.m)创建数据库 (CreatDatabase.m)1计算特征脸 (EigenFaceCore.m)人脸识别 (Recognition.m)Tm,A,EigenFaces23输入测试图 像3OutputName1显示测试图像 和匹配图像五、具体设计五、具体设计1 1、创建数据库、创建数据库在本环节中主要分为两个阶段,分别为:(1)读入系统人脸数据库,并将图像变换为相应的灰度图像(a) (b)图 (a)图像为系统人脸数据库中的原始人脸图像,(b)图像为经过灰度转换后的人脸图像(2)同时将变换后的二维人脸灰度图像变换为一维人脸向量矩阵一个大小为 M*N 的二维人脸图像可以看成长度为

8、MN 的人脸图像列向量。为了将二维人脸图像变为以为列向量,我们采取的措施为:首先计算出人脸图像的大小,然后将人脸图像经行转置,最后按列依次取出取出所有灰度值形成大小为 MN 的一维向量,其实整个阶段的效果相当于将图像的灰度值按行取出依次连接成一维图像向量。本环节完成后将会产生由一维图像向量组成的矩阵 T。2 2、计算特征脸、计算特征脸本环节主要包括三个阶段,分别为:1)对图像矩阵 T 进行规范化首先计算出图像矩阵中一维列向量的平均值 m,然后对图像矩阵的每一列都减去平均值形成规范化的图像矩阵 A。2)计算特征脸人脸训练图像的协方差矩阵为,其中人脸训练样本为,维度为TC=AA1,.,PA ,则协

9、方差矩阵 C 的维度为。这就出现问题,C 的维度过高,在实际中直MNP2MN()接计算它的特征值和特征向量非常困难。因此,本文使用奇异值分解定理来解决这个问题。奇异值分解定理:假设 B 为维秩为 p 的矩阵,则存在两个正交矩阵和一个对角矩阵:n m正交矩阵为2212 ,.,nn pUu uuR(4.23)12 ,.,m m pVv vvR(4.24)其中TU UI(4.25)TV VI(4.26)对角矩阵为 12,.,m m pdiagR 12.p则可以得到,而且和有共同的非零特征值,和分别为1 2TBUVTBBTB Biuiv和对应特征值的正交特征向量。TBBTB B由上述定理可以得到1 2

10、UBV(4.27)则可以由协方差矩阵,构造出矩阵,从而容易求出 L 的特征值和TCAATm mLA AR特征向量,再根据上述(4-27)式可以求得协方差 C 的特征值和特征向量。实际上我们并不需要协方差所有的特征值和特征向量, m 个(m4.5*1015)str = strcat(.,OutputName);disp(str)Euc_dist_min EndCreateDatabase.mfunction T = CreateDatabase(TrainDatabasePath) TrainFiles = dir(TrainDatabasePath); Train_Number = 0;for

11、 i = 1:size(TrainFiles,1)if not(strcmp(TrainFiles(i).name,.)|strcmp(TrainFiles(i).name,.)|strcmp(TrainFiles(i).name,Thumbs.db)Train_Number = Train_Number + 1; end endT = ; for i = 1 : Train_Numberstr = int2str(i);str = strcat(,str,.jpg);str = strcat(TrainDatabasePath,str);img = imread(str);img = rgb

12、2gray(img);irow icol = size(img);temp = reshape(img,irow*icol,1); T = T temp; endEigenfaceCore.mfunction m, A, Eigenfaces = EigenfaceCore(T) m = mean(T,2); Train_Number = size(T,2); A = ; for i = 1 : Train_Numbertemp = double(T(:,i) - m;A = A temp; endL = A*A; V D = eig(L); L_eig_vec = ;for i = 1 :

13、size(V,2) if( D(i,i)1 )L_eig_vec = L_eig_vec V(:,i);end end Eigenfaces = A * L_eig_vec; Recognition.mfunction OutputName, Euc_dist_min = Recognition(TestImage, m, A, Eigenfaces)ProjectedImages = ; Train_Number = size(Eigenfaces,2); for i = 1 : Train_Numbertemp = Eigenfaces*A(:,i); ProjectedImages =

14、ProjectedImages temp; endInputImage = imread(TestImage); %temp = InputImage; temp = rgb2gray(InputImage); %temp = InputImage(:,:,1);irow icol = size(temp); InImage = reshape(temp,irow*icol,1); Difference = double(InImage)-m; ProjectedTestImage = Eigenfaces*Difference; Euc_dist = ; for i = 1 : Train_Numberq = ProjectedImages(:,i);temp = ( norm( ProjectedTestImage - q ) )2; Euc_dist = Euc_dist temp; endEuc_dist_min , Recognized_index = min(Euc_dist); OutputName = strcat(int2str(Recognized_index),.jpg);

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 教育专区 > 教案示例

本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知得利文库网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

工信部备案号:黑ICP备15003705号-8 |  经营许可证:黑B2-20190332号 |   黑公网安备:91230400333293403D

© 2020-2023 www.deliwenku.com 得利文库. All Rights Reserved 黑龙江转换宝科技有限公司 

黑龙江省互联网违法和不良信息举报
举报电话:0468-3380021 邮箱:hgswwxb@163.com