该文章由下面两部分组成:
1).经典人脸识别算法小结——EigenFace, FisherFace & LBPH(上),这部分介绍人脸开源库,和图片的读取等准备工作。
2).经典人脸识别算法小结——EigenFace, FisherFace & LBPH(下),这部分介绍三种人脸识别算法。
如果对于opencv中的人脸识别API感兴趣,可参看官方的说明:Face Recognition with OpenCV。
1.EigenFace
EigenFace(特征脸)在人脸识别历史上应该是具有里程碑式意义的,其被认为是第一种有效的人脸识别算法。1987年 Sirovich and Kirby 为了减少人脸图像的表示(降维)采用了PCA(主成分分析)的方法,1991年 Matthew Turk和Alex Pentland首次将PCA应用于人脸识别,即将原始图像投影到特征空间,得到一系列降维图像,取其主元表示人脸,因其主元有人脸的形状,估称为“特征脸”。
EigenFace是一种基于统计特征的方法,将人脸图像视为随机向量,并用统计方法辨别不同人脸特征模式。EigenFace的基本思想是,从统计的观点,寻找人脸图像分布的基本元素,即人脸图像样本集协方差矩阵的特征向量,以此近似的表征人脸图像,这些特征向量称为特脸。
下图对特征脸的应用进行了说明。从下图可以看出,一组特征脸基图像(特征脸1~d)组成一个特征脸子空间,任何一幅人脸图象(减去平均人脸后)都可投影到该子空间,得到一个权值向量(§1~d)。计算此向量和训练集中每个人的权值向量之间的欧式距离,取最小距离所对应的人脸图像的身份作为测试人脸图像的身份。而这里所提到的一组特征脸基图像(也就是特征脸,或者叫特征向量),正是利用PCA所求得的协方差矩阵的特征向量。具体可以参考