我正在使用PCA和SVM进行人脸识别。我的训练集有400个图像阵列,我已经在其上执行了PCA并将数据映射到本征空间。现在进行测试我只有一个图像,其主要组件我需要提取以匹配先前提取的功能。但是我使用的任何PCA算法甚至内置命令(princomp)都会出现尺寸错误。因为PCA需要形成本征空间并将数据投影到这个空间,我如何形成单个图像的本征空间?
您应该使用与训练数据获得的相同的本征空间。
Here你有一个很好地解释它的教程。这些是主要步骤:
训练:
% step: 1: find the mean image
mean_face = mean(images, 2);
% step 3 : calculate the eigenvectors and eigenvalues
[evectors, score, evalues] = princomp(images');
测试:
% calculate the feture vector
feature_vec = evectors' * (input_image(:) - mean_face);
正如你所看到的,evectors
and mean_face
在训练阶段受到了影响。