关于PCA+KNN下的人脸识别
来源:互联网 发布:人工智能利大于弊辩论 编辑:程序博客网 时间:2024/06/10 19:08
这相当于一个工作总结。
接触机器学习以后,首先感兴趣的就是PCA算法,通过降维将特征空间大大简化。并在matlab中写了下代码,本来想用C++实现,最后发现求特征向量还需要QR迭代法,算法非常麻烦,所以就在matlab中,通过调用已经写好的库函数,实现了一个简单的程序。接着就是后面的模式识别和多媒体课程,让我了解到人脸识别的大致过程。所以就根据所学的只是写了PCA+KNN的人脸识别。比较简单,有界面。
PCA的过程根据书上了解主要有五步:
1,均值化处理
2,求特征空间的协方差矩阵
3,求协方差的特征值和特征向量
4,将特征值按照从大到小的顺序排序,选择其中最大的k个,然后将其对应的k个特征向量分别作为列向量组成特征向量矩阵
5,将样本点投影到选取的特征向量上
其中,协方差矩阵的求法有两种,第一种就是按部就班的求解,一个一个求。第二种方法:用公式A*A'/(N-1);两种方法结果一致,第二种效率更高,时间复杂度更低。
实验证明,通过以上的五步,得到的识别率只有65.5%,然后发现还需要一个过程“方差归一化”,这样会大大减少误差,效果会更好。原因分析:比如,如果一个特征是汽车速度(0到100),一个是汽车的座位数(2到6),显然第二个的方差比第一个小。因此,如果样本特征中存在这种情况,在第一步之后,求每个特征的标准差a,然后对每个样例在改特征下的数据除以a;实验发现,这样的效果很明显,识别率达到86%;
网上有很多高效的人脸识别系统。比自己的准确率高的许多。自己的程序中还有许多问题可以改进。
通过人脸识别系统的完成,和模式识别老师给的建议,最大的体会就是语义层次的识别。例如:我们怎么通过人脸图像的信息来识别出此人的表情,是高兴,还是悲伤,还是....。这方面感觉主要问题在于1,高层语义该怎么描述?2,底层的特征怎么才能映射到高层特征。
最近看到一篇论文《基于层次分析法语义知识的人脸表情识别新方法》,这是通过层次分析法(AHP)对训练集中人脸图像进行高层语义描述,建立语义特征向量;目前正在学习中...
- 关于PCA+KNN下的人脸识别
- PCA人脸识别
- PCA、人脸识别
- PCA人脸识别
- PCA人脸识别
- PCA人脸识别
- PCA人脸识别
- OpenCV的PCA人脸识别
- 基于PCA的人脸识别算法
- 基于pca的人脸识别
- OpenCV的PCA人脸识别
- 基于PCA的人脸识别步骤
- 基于PCA的人脸识别
- PCA 的人脸识别源码
- 基于PCA的人脸识别流程
- PCA人脸识别的python实现
- 【基于PCA的人脸识别算法】从QR分解到PCA,再到人脸识别
- python下PCA算法与人脸识别
- Linux下多线程编程
- 将shell脚本用到实处
- 欧拉计划第一题(改进版)
- c++的一些知识
- Inventory Transfer To GL(11i)
- 关于PCA+KNN下的人脸识别
- DNS错误怎么办?专家教你怎么解决 DNS错误
- ActionContext和ServletActionContext小结
- c++inherit
- Java Map 集合类简介
- offset宏的讲解
- html5 canvas图像保存为图片文件
- 4款开源的中文分词系统介绍
- 关于字符集和Unicode的相关知识