简单理解基于PCA的人脸识别

 PAC人脸识别的基本思想就是从人脸图像中找出最能代表人脸的特征空间,去除一些不能代表人脸特征的属性。一个单个的人脸图片映射到这个特征空间得到这个特征空间的一组系数,这组系数就表示这张人脸图片的特征脸特征。如果两张人脸图片映射到这个特征空间的系数差不多,就表示这两张人脸是同一个人。

训练阶段:

    1:一张人脸图片在计算机表示为一个像素矩阵,即是一个二维数组,现在把这个二维数组变成一维数组,即把第一行后面的数全部添加到第一行。这样一张图片就能表示为一个向量d=(x1,x2......xn)。xn表示像素。

   2:现在训练库里有m张人脸图片,把这些图片都表示成上述的向量形式,即d1,d2,。。。dm,把这m个向量取平均值得向量avg=(y1,y2......yn)。

   3:用d1,d2...........dm分别减去avg后组成一个矩阵A,即矩阵A的第一行为d1-avg,后面类似。A的大小为m×n。因为找特征空间不能基于一张图片,而要在所有的人脸图片提取出共同特征,所以要取所有脸向量的平均,具体来说是各个人脸向量到平均人脸向量avg的向量差。依据这个每个人脸图片跟平均脸向量的向量差组成矩阵A,然后依据矩阵A来求解最特征空间。

    4: 矩阵A乘以A的逆矩阵A‘得A的协方差矩阵B,B的大小m×m,求B的特征向量。取最大的K个特征向量组成新的矩阵T,T的大小m×k。

 5;使用A’乘以T得到特征脸C,C的大小n×k。

    6:用图片向量d乘以C得到图片向量d在特征脸的投影向量pn,有多少张图片就有多少个pn。pn的大小1×k


识别阶段:

   1:一张新的图片也表示为d的向量,记为D,D的大小1×n

   2:D乘以上面训练得到的特征脸C得到这个图片向量D在C下的投影向量P,p的大小1×k。

   3:计算p与上面所有的pn的向量距离,与p最小的那个向量所对应的人脸图片跟这张新人脸图片最像。

       

这里说明一下,为什么矩阵A的协方差矩阵的特征向量能最大的表示矩阵A的主要特征。其中有个解释是最大方差理论,意思是最好的n维样本投影到k维后,每一维样本的方差都要今年最大。而最佳的投影直线是协方差矩阵的特征值最大时对应的特征向量,其次是第二大对应的特征向量,依次类推。

当然以上只是最简单的PCA,而且PCA只对符合高斯分布的样本合适。


展开阅读全文

没有更多推荐了,返回首页