基于RGB描述的PCA局部人脸重建的实验与局限性
来源:互联网 发布:linux qt程序打包发布 编辑:程序博客网 时间:2024/06/07 01:31
基于RGB描述的PCA局部人脸重建的实验与局限性
原创 学术 笔记 FER PCA 创新项目 机器视觉
*****2012-04-17 12:21:06 privacy:1
http://chentingpc.me/article/article.php?id=484
PCA的基本原理是寻找方差最大的投影方向来形成子空间,然后将原高维信息像子空间投影形成降维后的特征,但是由于做视觉的实验,我们还是希望“眼见为实”,所以我喜欢用重构的方法把投影的数据重新在特定的基(投影空间,亦即PCA训练时候前K大特征值的特征向量)的下反投影得重构出高维空间的数据,也就是人可以看得懂的图像。
实验基于图像数据库是JAFFE,截取嘴部66X36区域,PCA投影子空间为10维。
训练图集一览:
其中的anger子集:
Exp 1.
对除了netural在内的六类表情各自做了PCA训练,得到了类内的子空间,然后再将每一个”压缩“后的训练图片进行重构,得到重构图片进行比较:(其中第一行是原图像,第二行是在不同类别的子空间投影后重构出来的图像)
如果基于此进行分类,正确率可达到百分百。
然而Exp 1.是基于数据库里面有的图像,也就是每一个待重构的图像在数据库中都有相对应的原图像,可以看到,即便充66X36=2376维度空间压缩到了10维空间,重构误差仍然相当小。
Exp 2.
但是如果是原图像在数据库不曾出现过呢,看下重构效果:(同样,第一行是原图,第二行是在不同类别的子空间下投影并重构的图像)
效果是相当糟糕,不仅从肉眼看已经变得血肉模糊,从他们的数值距离上看,也呈现出了很大的差异以及分类上的不准确性。
Exp 3.
为了解释测试图像在训练数据库中的存在具有重大意义,我把上述图像加入了测试图像(所属类别正确:长大的嘴巴进入surprise子集,笑的嘴巴进入happy子集),并进行重构
可以看出,这个恢复非常完美。
但是,如果放到不同的类别中去呢?它们的子空间有冲突,效果如何呢?
Exp 4.
同样在训练图库中加入了待测图片,但是放在了错误的集合(把长大的嘴和笑的嘴巴都放入生气的子集),进行重构:
可以看得到恢复的效果还是不错的!虽然跟正确的子空间相还是差些(可以看出来跟Exp 3.相比变得模糊了),但是仍然是不错的效果。
Exp 5.
这次我把同一个人而且与待测图片相似的图片添加到正确的数据子集中去(将下面两张):
以下是重构结果:
效果好了多少呢?看看不加待测图片的相似图片之前的重构结果吧:
呼,差的有点远。。
Exp 6.
现在,在Exp 5.的基础上,我把同一个人的但是不相关的图像也放进同一子集中,happy子集中添加的图片如下:
与Exp 5.相比,多加了1r.tiff 2.tiff 6.tiff 三张与笑的表情无关的但是属于同一个人的表情。
重构结果如下:
可以看到重构结果在Exp 5.得到了一定的提升,令人感到一丝眼亮的是,加入的不相关图片居然有增强作用。
其实,将1r.tiff和2.tiff去除后,得到的重构结果也是相似的,因此事实上Exp 6.实验效果的增强来自于新加入的图片6.tiff,虽然与待测图片(微笑)很不相同,但是属于同一个人的,所以使得重构结果增强了。
Exp 7.
这次具体看看在训练数据库中加入测试图片与否的区别何在,测试图片仍是上面那张微笑的嘴部图片,如下:1.在训练图库happy中没有加入测试图
得到降维后前10大特征值的特征向量(构成了特征子空间,即特征"嘴"):
测试图片在该子空间投影的时候的投影系数值为:
254.8638-1044.95-582.823900.6475394.55847.42199-250.154280.7748-558.01358.816352.在训练图库happy中加入测试图:
得到降维后前10大特征值的特征向量(构成了特征子空间,即特征"嘴"):
测试图片在该子空间投影的时候的投影系数值为:
332.2779-1260.66771.95771200.439772.8162-136.6611379.055501.823-79.3003-362.7263.比较投影系数区别
发现在特征空间2与特征空间6上有比较大的差别,也就是对应上述特征向量的图片2.jpg与6.jpg.
这意味着什么呢?我认为,这意味着加入待测图片进行PCA后,在得到的子空间的基中加入了待测图片的信息(也就是上述的2与6这两个基中加入了其信息,并且相应的投影系数也改变了),从而使得待测图片的重构效果更好。
Conclusion
从上面实验看出,PCA重构的时候对待测图片本身或相似图片是否在数据库中出现过很依赖,虽然这种说法很不严格,但却符合实验的直观。
总的来说,PCA是要选择一组低维子空间的基来描述高维空间的数据,因此,基的完备性对于数据的重构是很重要的。
http://chentingpc.me/article/article.php?id=484
- 基于RGB描述的PCA局部人脸重建的实验与局限性
- 基于RGB-D图像的3D人脸重建
- LGBP-基于局部Gabor变化直方图序列的人脸描述与识别
- 基于PCA的人脸特征提取及人脸重建
- 基于PCA的人脸识别算法
- 基于pca的人脸识别
- 基于PCA的人脸识别步骤
- 基于PCA的人脸识别
- 基于PCA的人脸识别流程
- 基于PCA的人脸特征抽取
- 泛型类的约束与局限性
- 基于ORL人脸库PCA特征提取之“基于主分量人脸重建”
- 基于opencv RGB与YUV420的转换
- 模式识别课程作业 基于PCA与SVM的人脸识别算法
- python的全局变量与局部变量实验
- 基于PCA的人脸识别的Matlab实现代码
- 基于PCA的人脸识别系统(JAVA版)(二) PCA原理介绍
- 【基于PCA的人脸识别算法】从QR分解到PCA,再到人脸识别
- UNP函数笔记十四: 带外数据
- 在Linux下面去压缩文件或者目录。我们将学习zip, tar, tar.gz和tar.bz2等压缩格式的基本用法
- 基于移动平台的多媒体框架——NDK编译ffmpeg超简单方法
- 【原创】Bigtable架构图
- 汉语编程毫无意义,低科学素养者盲目赞同
- 基于RGB描述的PCA局部人脸重建的实验与局限性
- USACO Training Section 1.2 Dual Palindromes 解题报告&AC代码
- linux进程状态浅析
- shell中的数据计算
- WSAAsyncSelect模型
- U-boot 会给 Linux Kernel 传递很多参数
- spring +hibernate 的应用详解
- oracle卸载
- UNP函数笔记十五: 信号驱动式I/O