面部图像中的相关特征向量?

时间:2013-12-24 01:30:57

标签: matlab image-processing linear-algebra pca

我正在使用PCA进行人脸识别。我已经为每个图像获得了特征向量/特征脸,这是一个colomn矩阵。我想知道如果选择前三个特征向量,因为它们相应的特征值达到总方差的70%,就足以进行人脸识别吗?

2 个答案:

答案 0 :(得分:4)

首先,让我们清楚一些事情。根据整个数据集形成的协方差矩阵计算特征向量,即,将一个面的每个灰度图像重新整形为一个单独的列并将其视为R ^ d空间中的一个点,从它们计算协方差矩阵并计算其特征向量。协方差矩阵。这些特征向量成为您脸部图像空间的新基础。您每个图像设置了特征向量。相反,您可以通过投影到它们(可能是子集)来表示每个面部图像的特征向量。

特征脸的限制

在这个新的基础上,你的脸部图像的表现是否足以进行人脸识别取决于很多因素。但总的来说,特征脸方法对现实世界不受约束的面部表现不佳。它仅适用于像素对齐,面向正面,并且在图像上具有相当均匀的照明条件的面。

更多不一定更好

虽然人们普遍认为(当使用PCA时)保留更多方差优于更少,但由于两个因素,事情要复杂得多:1)现实世界数据中的噪声和2)数据的维数。有时投射到较低维度并失去方差实际上可以产生更好的结果。

<强>结论

因此,我的答案是很难说预先保留一定数量的方差是否足够。维度的数量(以及因此保留的特征向量的数量和保留的相关方差)应通过交叉验证来确定。但最终,正如我上面提到的,除非你有一个“漂亮的”数据集,否则特征脸不是一个很好的人脸识别方法。使用“Fisherfaces”(即脸部图像上的LDA)或将这些方法与局部二进制模式(LBP)组合作为特征(而不是原始面部像素)可能稍微好一些。但严重的是,人脸识别是一个难题,而且一般而言,最先进的技术尚未达到可以在现实世界系统中部署的阶段。

答案 1 :(得分:2)

这并非不可能,但对我来说有点罕见,只有3个特征值可以达到70%的方差。你有多少训练样本(总维数是多少)?确保将每个图像从数据库重新整形为矢量,对矢量数据进行标准化,然后将它们对齐到矩阵中。特征值/特征向量是从矩阵的协方差中获得的。

理论上,70%的方差应该足以形成具有相应特征向量的人类可识别的面。然而,最佳数量的特征值最好从交叉验证中获得:您可以尝试每次增加1个特征向量,观察人脸形成和识别准确性。您甚至可以绘制交叉验证精度曲线,曲线上可能有一个尖角,然后相应的特征向量数有望应用于您的测试中。