人脸识别之PCA


1.PCA人脸检测

Eigenface算法 

在利用PCA进行特征提取的算法中,特征脸方法(Eigenface)是其中的一个经典算法。特征脸方法是从主成分分析导出的一种人脸识别和描述技术。特征脸方法就是将包含人脸的图像区域看作是一种随机向量,因此可以采用K-L变换获得其正交K-L基底。对应其中较大特征值的基底具有与人脸相似的形状,因此又称为特征脸。利用这些基底的线性组合可以描述、表达和逼近人脸图像,因此可以进行人脸识别与合成。识别过程就是将人脸图像映射到由特征脸构成的子空间上,比较其与己知人脸在特征空间中的位置,具体步骤如下:

(1)初始化,获得人脸图像的训练集并计算特征脸,定义为人脸空间,存储在模板库中,以便系统进行识别;

(2)输入新的人脸图像,将其映射到特征脸空间,得到一组关于该人脸的特征数据;

(3)通过检查图像与人脸空间的距离判断它是否是人脸; 

(4)若为人脸,根据权值模式判断它是否为数据库中的某个人,并做出具体的操作。

计算特征脸

  设人脸图像I(x,y)为二维N*N灰度图像,用N维向量R表示。人脸图像训练集为{Ri|i=1,…,M},其中M为训练集中图像总数,这M幅图像的平均向量为:


每个人脸Ri与平均人脸ψ的差值向量是:


训练图像的协方差矩阵可表示为:

C=AAT.

其中,A=[φ1,…φM].

特征脸有协方差矩阵C的正交特征向量组成。对于N*N人脸图像,协方差矩阵C的大小为N2*N2,对它求解特征值和特征向量是很困难的。一种取而代之的方法是令L=ATA

即协方差矩阵的转置阵,则可以知道此矩阵是M*M(M是训练人脸的数量)的一个较小的矩阵。首先计算M*M矩阵L的特征向量vi(l=l,…,M),则矩阵C的特征向量ui(l=1,…,M)由差值图像φi(i=1,…,M)vi(l=l,…,M)线性组合得到:U=[u1,…,uM]=[[ψ1,…,ψM]T][v1.…,vM]。实际上,m(m<M)个特征值足够用于人脸识别。因此,仅取L的前m个最大特征值的特征向量计算特征脸。


Robust Face Recognition via Sparse Representation


opencv pca


opencv 中SVM + PCA 人脸识别

PCA原理及人脸识别应用

Face Recognition Homepage Dataset

从QR分解到PCA,再到人脸识别



  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: Python人脸识别PCA算法可以用于进行ORL人脸识别。ORL人脸识别数据库是一个经典的人脸识别数据库,包含了40个人的每个人各10张不同表情变化下的人脸图像。在Python中使用PCA算法进行ORL人脸识别,需要先将ORL数据库进行预处理,包括读取图像,转换为PCA算法输入形式的矩阵,进行标准化,对数据进行降维等步骤。然后,利用Python中的sklearn库进行PCA降维处理,提取出特征向量,并使用k-近邻算法、支持向量机算法,卷积神经网络等算法进行分类和识别PCA思想是通过线性变换将高维数据降维到低维空间,减少模式识别中分类器的计算时间和存储空间,提高模式分类的准确率。在Python中使用PCA人脸识别算法,可以有效地提取人脸特征,实现高效准确的人脸识别。同时,基于Python的强大科学计算和机器学习库,能够配合使用多种算法,使得人脸识别的效果更加优秀,具有广泛的应用前景。 ### 回答2: Python是一种流行的编程语言,它提供了各种各样的库和工具,用于人脸识别PCA(主成分分析)是其中一种常见的技术,可以用来提取人脸图像中的主要特征,并将其压缩为低维度。ORL(Olivetti Research Laboratory)是一个公共数据库,其中包含了40个人的400张照片,可用于人脸识别研究。 Python的scikit-learn库提供了一个PCA类,可以使用ORL数据库进行演示。使用该类可以将ORL数据库训练为人脸识别模型,并对新的人脸图像进行预测。在使用PCA进行人脸识别时,可以在执行识别之前使用属性提取方法按比例缩小图像,以使算法在存储和计算时更加有效。此外,还可以使用其他技术来提高性能,例如局部二值模式(LBP)和人脸对齐。 总而言之,Python和PCA可以在人脸识别方面提供很多帮助,ORL数据库是一个常见的基准,可以用来评估算法的准确性。通过使用这些工具和技术,可以在保持高准确性的同时加速人脸识别的过程。 ### 回答3: Python人脸识别是一种通过计算机程序自动检测、识别和比对人脸的技术,可以广泛应用于人脸识别解锁、人脸识别支付、人脸识别门禁等场景中。而PCA(Principal Component Analysis)算法和ORL人脸数据库则是Python人脸识别技术中非常重要的两个部分。 PCA算法是一种基于降维思想的算法,在处理高维数据时非常实用。在Python人脸识别领域,通过PCA算法可以对图像进行降维,减少图像处理的计算量和存储空间,从而提高识别速度和准确率。 而ORL人脸数据库则是一个经典的人脸数据库,包含了40个人的400张面部图像,每个人有10张不同姿态下的面部图像。这个数据库因为它丰富的数据集、易于使用的API以及出色的性能而被广泛使用。 在Python人脸识别中,我们可以利用PCA算法对ORL人脸数据库中的面部图像进行降维处理,并进行人脸识别,从而实现高效准确的人脸识别。因此,Python人脸识别技术中的PCA算法和ORL人脸数据库都具有极其重要的作用。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值