人脸识别技术是基于人的脸部特征,对输入的人脸图象或者视频流 . 首先判断其是否存在人脸 , 如果存在人脸,则进一步的给出每个脸的位置、大小和各个主要面部器官的位置信息。并依据这些信息,进一步提取每个人脸中所蕴涵的身份特征,并将其与已知的人脸进行对比,从而识别每个人脸的身份。人脸图像一般用二维矩阵表示,在有大量图片的情况下,维数很高,直接计算则耗时较长,效率极低。因此进行降维处理则会大大提高效率和准确率,这里我们采用PCA对人脸图像进行降维和特征提取,并用欧氏距离进行分类,从而进行人脸识别。流程如下:

    1、读取训练集下指定个数的图像,将人脸的像素其保存到到一个二维数组中,将该数组按列排成列向量,即每一列表示一张图像的像素信息。如果有S张人脸图像,则X=[MN,S];

    2、每一行取得均值,每行的元素减去均值,得到每张人脸与平均人脸的差值,组成新矩阵X;

    3、计算X的协方差矩阵C,大小为MN*MN;

    4、计算C的特征值即特征向量,共有MN个特征值及特征向量;

    5,、选择主成分,把特征值从大到小排序,选择前R个特征值使得R个特征值占所有特征值得90%以上,随后将特征向量按行排列,则P=[R,MN];

    6、将训练集投影到特征空间,Y=PX=[R,S]。

    7、将测试集也投影到特征空间,假如测试集有K张图像,那么降维后矩阵为[R,K]。

    8、每一张图像[R,1]与特征空间[R,S]用欧氏距离法求出与其最相近的一个图像,识别为该类。所有测试集识别完后,最后求出识别率。