人脸图像中的相关特征向量?

Sid*_*Sid 3 matlab image-processing linear-algebra pca

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

lig*_*ist 5

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

特征脸的局限性

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

更多并不一定更好

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

结论

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