基于PCA的人脸识别流程
2016-12-03 15:06
274 查看
人脸识别技术是基于人的脸部特征,对输入的人脸图象或者视频流 . 首先判断其是否存在人脸 , 如果存在人脸,则进一步的给出每个脸的位置、大小和各个主要面部器官的位置信息。并依据这些信息,进一步提取每个人脸中所蕴涵的身份特征,并将其与已知的人脸进行对比,从而识别每个人脸的身份。人脸图像一般用二维矩阵表示,在有大量图片的情况下,维数很高,直接计算则耗时较长,效率极低。因此进行降维处理则会大大提高效率和准确率,这里我们采用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]用欧氏距离法求出与其最相近的一个图像,识别为该类。所有测试集识别完后,最后求出识别率。
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]用欧氏距离法求出与其最相近的一个图像,识别为该类。所有测试集识别完后,最后求出识别率。
相关文章推荐
- 基于PCA的改进人脸识别算法—2DPCA(上篇)
- 基于PCA和SVM的人脸识别
- 基于PCA的人脸识别步骤
- 基于PCA的人脸识别
- 基于PCA(主成分分析)的人脸识别
- 基于PCA的人脸识别步骤
- 基于PCA和SVM的人脸识别系统-error修改
- 基于PCA和SVM的人脸识别
- 基于PCA和SVM的人脸识别之一.基本知识
- 基于PCA和SVM的人脸识别
- 基于PCA的人脸识别的Matlab实现代码
- Python基于Numpy和PIL库的PCA人脸识别
- 基于LBP和PCA的人脸性别识别方法
- 基于PCA和SVM人脸识别之二.MATLAB实现
- 【基于PCA的人脸识别算法】从QR分解到PCA,再到人脸识别
- 【CSDN下载】第三期:多AGV调度系统软件、基于PCA的人脸识别系统
- 基于MATLAB的PCA人脸识别实现
- 机器学习作业1--基于PCA方法的人脸识别
- 基于MATLAB,运用PCA+SVM的特征脸方法人脸识别
- 基于MATLAB,运用PCA+SVM的特征脸方法人脸识别