特征脸算法(Eigenface)
来源:互联网 发布:node v0.12.0 x64.msi 编辑:程序博客网 时间:2024/06/08 15:10
【本文为个人阅读摘录,全文访问:http://blog.csdn.net/zouxy09/article/details/45276053 感谢原创作者的无私分享!】
特征脸算法(Eigenface)
算法实现流程:
1)将训练集的每一个人脸图像都拉长一列,将他们组合在一起形成一个大矩阵A。假设每个人脸图像是MxM大小,那么拉成一列后每个人脸样本的维度就是d=MxM大小了。假设有N个人脸图像,那么样本矩阵A的维度就是dxN了。
2)将所有的N个人脸在对应维度上加起来,然后求个平均,就得到了一个“平均脸”。你把这个脸显示出来的话,还挺帅的哦。
3)将N个图像都减去那个平均脸图像,得到差值图像的数据矩阵Φ。
4)计算协方差矩阵C=ΦΦT。再对其进行特征值分解。就可以得到想要的特征向量(特征脸)了。
5)将训练集图像和测试集的图像都投影到这些特征向量上了,再对测试集的每个图像找到训练集中的最近邻或者k近邻啥的,进行分类即可。
另外,对于步骤4),涉及到求特征值分解。如果人脸的特征维度d很大,例如256x256的人脸图像,d就是65536了。那么协方差矩阵C的维度就是dxd=65536x65536。对这个大矩阵求解特征值分解是很费力的。那怎么办呢?如果人脸的样本不多,也就是N不大的话,我们可以通过求解C’=ΦTΦ矩阵来获得同样的特征向量。可以看到这个C’=ΦTΦ只有NxN的大小哦。如果N远远小于d的话,那么这个力气就省得很值了。那为什么求解C’=ΦTΦ矩阵的特征向量可以获得C=ΦΦT的特征向量?万众瞩目时刻,数学以完美舞姿登上舞台。证明如下:
其中,ei是C’=ΦTΦ的第i个特征向量,vi是C=ΦΦT的第i个特征向量,由证明可以看到,vi=Φei。所以通过求解C’=ΦTΦ的特征值分解得到ei,再左乘Φ就得到C=ΦΦT的特征向量vi了。也就是我们想要的特征脸。
具体MATLAB代码见原文。
- 特征脸算法(Eigenface)
- 人脸识别经典算法(一):特征脸(Eigenface)
- 人脸识别:特征脸(Eigenface)
- EigenFace (特征脸方法)
- 特征脸(Eigenface)理论基础
- 人脸识别经典算法一:特征脸方法(Eigenface)
- 人脸识别经典算法一:特征脸方法(Eigenface)
- 人脸识别经典算法一:特征脸方法(Eigenface)
- 人脸识别经典算法一:特征脸方法(Eigenface)
- 人脸识别经典算法一:特征脸方法(Eigenface)
- 人脸识别经典算法一:特征脸方法(Eigenface)
- 人脸识别经典算法一:特征脸方法(Eigenface)
- 人脸识别算法-特征脸方法(Eigenface)及python实现
- 人脸识别算法-特征脸方法(Eigenface)及python实现
- 8、人脸识别经典算法一:特征脸方法(Eigenface)
- 人脸识别经典算法一:特征脸方法(Eigenface)
- 人脸识别经典算法一:特征脸方法(Eigenface)
- 人脸识别经典算法一:特征脸方法(Eigenface)
- Html5添加文件上传组件美化插件教程
- 运行vs2010时,报未能加载包 .......错误,解决方法
- iOS UITableview 刷新指定的某一个section或cell
- SDK中 draw9patch的使用
- linux下主机之间传输文件命令
- 特征脸算法(Eigenface)
- php的一些学习经验
- C# socket
- Stanford机器学习---第一周.监督学习与梯度下降
- 句柄
- Phpwind v8.7怎么修改默认编辑器字体方法?
- linux发行版的分析比较
- Ubuntu openvpn with .ovpn file
- Spark-KMeans文本聚类