2013-04-09 110 views
-1

我正在尝试使用python构建面部识别的代码。现在我可以将我的所有数据库图像放入一个二维数组中,以便能够对它们应用主成分分析(PCA)。我在matplotlib中找到了一个名为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] 

回答

1

他们关键概念是你项目面临到一个更高维空间,然后测量在这个空间他们之间的距离。

我是从这个文件引用(看起来像一个分配的一类):

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

“PCA计算这是由它的培训载体,这些基向量代表的空间的基础上,。实际上,由PCA计算得到的特征向量是在训练向量的最大方差的方向上,如前所述,我们称之为特征脸

每个特征脸可以被看作一个特征。脸部空间,它的矢量到脸部空间描述的重要性o f脸上的每一个特征。脸部通过其特征脸系数(或权重)表示在脸部空间中。我们只能通过在脸部空间中使用其小权重向量来处理大输入向量,面部图像。这意味着我们可以用一些错误来重建原始的人脸,因为图像空间的维度比脸部空间的维度大得多。

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

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

+0

虽然这些链接可能会回答问题,最好在这里包含答案的重要部分,并提供参考链接。如果链接页面更改,则仅链接答案可能会失效。 – Matsemann 2013-05-22 16:50:33