`
haitaoandroid
  • 浏览: 27510 次
  • 性别: Icon_minigender_1
  • 来自: 广州
社区版块
存档分类
最新评论

简单理解基于PCA的人脸识别

 
阅读更多

PAC人脸识别的基本思想就是从人脸图像中找出最能代表人脸的特征空间,去除一些不能代表人脸特征的属性。一个单个的人脸图片映射到这个特征空间得到这个特征空间的一组系数,这组系数就表示这张人脸图片的特征脸特征。如果两张人脸图片映射到这个特征空间的系数差不多,就表示这两张人脸是同一个人。

训练阶段:

1:一张人脸图片在计算机表示为一个像素矩阵,即是一个二维数组,现在把这个二维数组变成一维数组,即把第一行后面的数全部添加到第一行。这样一张图片就能表示为一个向量d=(x1,x2......xn)。xn表示像素。

2:现在训练库里有m张人脸图片,把这些图片都表示成上述的向量形式,即d1,d2,。。。dm,把这m个向量取平均值得向量avg=(y1,y2......yn)。

3:用d1,d2...........dm分别减去avg后组成一个矩阵A,即矩阵A的第一行为d1-avg,后面类似。A的大小为m×n。因为找特征空间不能基于一张图片,而要在所有的人脸图片提取出共同特征,所以要取所有脸向量的平均,具体来说是各个人脸向量到平均人脸向量avg的向量差。依据这个每个人脸图片跟平均脸向量的向量差组成矩阵A,然后依据矩阵A来求解最特征空间。

4: 矩阵A乘以A的逆矩阵A‘得A的协方差矩阵B,B的大小m×m,求B的特征向量。取最大的K个特征向量组成新的矩阵T,T的大小m×k。

 5;使用A’乘以T得到特征脸C,C的大小n×k。

6:用图片向量d乘以C得到图片向量d在特征脸的投影向量pn,有多少张图片就有多少个pn。pn的大小1×k


识别阶段:

1:一张新的图片也表示为d的向量,记为D,D的大小1×n

2:D乘以上面训练得到的特征脸C得到这个图片向量D在C下的投影向量P,p的大小1×k。

3:计算p与上面所有的pn的向量距离,与p最小的那个向量所对应的人脸图片跟这张新人脸图片最像。

这里说明一下,为什么矩阵A的协方差矩阵的特征向量能最大的表示矩阵A的主要特征。其中有个解释是最大方差理论,意思是最好的n维样本投影到k维后,每一维样本的方差都要今年最大。而最佳的投影直线是协方差矩阵的特征值最大时对应的特征向量,其次是第二大对应的特征向量,依次类推。

当然以上只是最简单的PCA,而且PCA只对符合高斯分布的样本合适。


分享到:
评论

相关推荐

    基于PCA的人脸识别系统-python版

    综上所述,这个项目提供了一个实用的PCA人脸识别系统的实现,它展示了如何利用Python和相关的科学计算库来处理和分析图像数据,同时也体现了PCA在高维数据降维和特征提取方面的强大能力。通过理解和应用这些概念,...

    基于Python的PCA人脸识别算法的原理及实现代码详解.zip

    本项目基于Python实现了PCA人脸识别算法,适合大学生进行课程设计学习。Python作为一门简洁易读的编程语言,是进行数据分析和机器学习的良好选择。在这个项目中,我们将会涉及到以下几个知识点: 1. **numpy库**:...

    PCA人脸识别_人脸识别原理_pca人脸识别_

    "基于PCA的人脸识别介绍.pdf"和"人脸识别技术分析.pdf"则可能是详细的理论介绍和深入的技术分析文档,包含了PCA人脸识别的详细步骤和实际应用案例。 PCA人脸识别的优势在于其简洁性和计算效率,但也有局限性,如对...

    基于PCA人脸识别Matlab代码(毕设必备)

    在Matlab中实现PCA人脸识别,可以使用`pca`函数进行主成分分析,`svd`函数计算协方差矩阵的奇异值分解,以及` Project`操作将数据投影到主成分空间。Matlab提供了强大的矩阵运算和可视化工具,非常适合进行这种数值...

    基于PCA的人脸识别论文

    "基于PCA的人脸识别系统的设计与实现"则可能详细介绍了整个基于PCA的人脸识别系统的构建过程,包括数据预处理、PCA特征提取、识别算法设计以及系统性能评估等方面。 "基于主成分分析的人脸识别"这篇论文可能更加...

    基于PCA的人脸识别代码

    在MATLAB环境中,实现PCA人脸识别通常包括以下步骤: 1. 数据预处理:收集人脸图像,将其归一化,消除大小、位置差异,并转化为灰度图。这一步可以确保所有图像在同一尺度上,方便后续处理。 2. 构建样本矩阵:将...

    基于pca实现人脸识别matlab代码

    在提供的压缩包"pca_face recognition"中,可能包含实现PCA人脸识别的MATLAB代码示例,这将帮助我们理解PCA算法的具体实现细节,包括如何构建和操作协方差矩阵,以及如何进行特征值分解和选择主成分等步骤。...

    PCA.rar_PCA 人脸识别_pca人脸识别_人脸识别_人脸识别PCA_基于pca的人脸识别

    这个文件可能包括了数据预处理、PCA计算、特征选择和降维等关键步骤的代码,可以帮助理解PCA在人脸识别中的具体应用。 通过PCA进行人脸识别,不仅可以简化问题,降低计算成本,还能有效地处理光照、姿态变化等带来...

    PCA人脸识别.rar

    PCA人脸识别是一种基于主成分分析(PCA)的人脸识别技术,主要应用于图像处理和计算机视觉领域。PCA是一种统计方法,用于将高维数据集转换为低维表示,同时保持数据集中的方差最大。在人脸识别中,PCA的目标是提取...

    PCA人脸识别GUIORL+Yale人脸库,基于pca的人脸识别,matlab

    通过这个PCA人脸识别GUIORL+Yale人脸库项目,学习者可以深入理解PCA在人脸识别中的应用,同时掌握如何使用MATLAB开发GUI应用程序。此外,通过实际操作和测试,还能对不同人脸识别算法的性能有直观的认识,为后续的...

    pca人脸识别MATLAB程序

    PCA人脸识别MATLAB程序是一种基于主成分分析(PCA)的人脸识别技术实现,它在机器学习和计算机视觉领域具有广泛的应用。PCA人脸识别的核心是通过降维技术来提取人脸图像的主要特征,从而实现对人脸的识别。 PCA...

    PCA人脸识别_人脸识别_OPENCV_C++

    "库文件.txt"可能包含OPENCV库的相关信息,比如头文件和链接库的引用,这对于编译和运行PCA人脸识别程序至关重要。OPENCV库提供了许多函数和类,如`cv::PCA`,用于执行PCA操作;`cv::Mat`用于存储和处理图像数据;...

    基于PCA的人脸识别系统

    综上所述,"基于PCA的人脸识别系统"是一个利用统计学方法PCA来降低人脸识别问题的维度,提高识别效率的技术。在MATLAB环境中,我们可以方便地实现PCA算法,并结合人脸检测和匹配识别等步骤,构建出一个完整的系统。...

    pca人脸识别算法

    本项目提供了一个PCA人脸识别算法的完整实现,包含了所需的人脸库,用户可以直接运行。 PCA的基本思想是将高维数据通过线性变换映射到低维空间,同时保留原始数据的主要特征。在人脸识别中,PCA可以用于提取人脸...

    基于PCA的人脸识别matlab

    【基于PCA的人脸识别MATLAB实现】 人脸识别是一种生物特征识别技术,它利用人的面部特征进行身份验证。在MATLAB环境中,我们可以使用主成分分析(PCA)这种方法来实现人脸识别。PCA是一种统计学方法,用于将多维...

    PCA人脸识别vc++版

    在"PCA人脸识别vc++版"这个项目中,开发者已经实现了一个基于PCA算法的人脸识别程序。VC++是Microsoft开发的C++集成开发环境,用于创建Windows平台的应用程序。此程序可能包含了预处理、特征提取和分类等核心步骤。 ...

Global site tag (gtag.js) - Google Analytics