-1

我正在尝试使用 python 构建用于人脸识别的代码。现在我可以将所有数据库图像放入一个二维数组中,以便能够对它们应用主成分分析 (PCA)。我在 matplotlib 中找到了一个名为 PCA 的类,但我想知道如何将它用于人脸识别。

以下是提到的类的描述:

class matplotlib.mlab.PCA(a)
compute the SVD of a and store data for PCA. Use project to project the data onto a reduced set of dimensions

Inputs:

a: a numobservations x numdims array
Attrs:

a a centered unit sigma version of input a

numrows, numcols: the dimensions of a

mu : a numdims array of means of a

sigma : a numdims array of atandard deviation of a

fracs : the proportion of variance of each of the principal components

Wt : the weight vector for projecting a numdims point or array into PCA space

Y : a projected into PCA space

The factor loadings are in the Wt factor, ie the factor loadings for the 1st principal component are given by Wt[0] 
4

1 回答 1

1

他们的关键概念是您将面投影到更高维度的空间中,然后在该空间中测量它们之间的距离。

我从这个文档中引用(看起来像一个班级的作业):

http://www.umiacs.umd.edu/~knkim/KG_VISA/PCA/FaceRecog_PCA_Kim.pdf

“PCA 计算由其训练向量表示的空间的基。这些基向量,实际上是特征向量,由 PCA 计算,是在训练向量的最大方差方向上。正如前面所说,我们称它们为特征面.

每个特征面都可以被视为一个特征。当一个特定的脸被投影到人脸空间时,它在人脸空间中的向量描述了每个人脸特征的重要性。人脸通过其特征面系数(或权重)在人脸空间中表示。我们可以处理一个大的输入向量,面部图像,只需要在面部空间中取它的小权重向量。这意味着我们可以在一定程度上重建原始人脸,因为图像空间的维数远大于人脸空间的维数。

在本报告中,我们只考虑人脸识别。训练集中的每个人脸都被转换为人脸空间,其组件存储在内存中。人脸空间必须填充这些已知的人脸。输入人脸给系统,然后投影到人脸空间。系统计算它与所有存储的人脸的距离。”

有几个教程可用。这是我的最爱:

于 2013-05-22T15:32:13.207 回答