Eigenface就是将人脸图像进行编码,映射到低维子空间上,在低维空间计算两幅人脸图像的距离,以此来进行人脸识别。映射到低维子空间的方法采用主成分分析(Principal Component Analysis,PCA)
1.将人脸图像(均为灰度图)拉成一个列向量存储在矩阵 A={A1,A2,⋯,An} 中, A∈Rd×n ,其中, d 是每张人脸图片的像素数目,
f = imread('face.jpg'); % f是uint8类型
f = im2double(f); % f转换成double类型
f = reshape(f, [d, 1]); % f拉成列向量
在我们的例子中包含25张人脸图像,如下图所示
2.计算平均脸 A¯¯¯=∑i=1nAi ,平均脸也可以看做是一幅人脸图像
3.将原始图像每个维度中心化, Φi=Ai−A¯¯¯ , Φ={Φ1,Φ2,⋯,Φn} ,