手势识别与人脸表情识别 matlab的训练方法一样么

1008人阅读
深度学习(1)
表情识别(1)
第一篇博客就不用Markdown(什么鬼)来写了。
今天主要是被老板一通说,然后说两月看10篇paper,算了,还是丫丫自己先多码码论文吧。再加之这几天有开博的想法,就索性一起开了,顺道总结下最近看的一篇中文的&
主要是找了 浙理工的施徐敢的毕设论文和他的一篇《融合深度信念网络和多层感知器的人脸表情识别》,再结合DL_toolbox里的DBN实例做个总结。再有其他什么想法再陆陆续续发哈。(轻喷。。。)
DBN(深度信念网络)的关键部分都是RBM(受限玻尔兹曼机)(Restricted Boltzmann Machines, RBM)的步骤,所以先放一张rbm的结构,帮助理解(网上找的图)。
V是可视层,h是隐藏层。b,c是相应的偏置单元(或者是b,a)。其对RBM的训练过程为如下:
其中某些公式的推导可参考
http://blog.csdn.net/hanzihan123/article/details/
伪代码如下
当RBM训练好后,对其叠加便构成DBN了。即DBN是一种深度学习结构,它是由多个受限玻尔兹曼机(RBM)叠加而成.
DBNs 的工作原理是:低层的输出作
为下一层的输入,下一层的输出再作为更高一层的输入,以此传递,通过微调参数和权重偏置来增强 DBNs 的抽取性能,结构如下图 所示
但DBN只能用来训练学习,是一种无监督学习模式,而无法单纯用来分类识别,故这里可结合多层感知器(MLP,Multilayer Perceptron)来进行识别。
MLP&&神经网络模型:
多层感知器是一种前馈人工神经网络模型,其把输入层的多个数据集映射到唯一的输
出层的数据集上。多层感知器的神经网络模型是由很多层神经元模型组成的,而每个节点都是一个独立的神经元模型。
深度信念网络与多层感知器的融合的方法包括DBN的学习,MLP 初始化和人脸表情识别。深度信念网络的特征学习,包括模型中的预训练和微调,对提取的原始人脸表情图像的初级特征(原始像素特征)
进行学习,得到更高层次的抽象特征。由于 DBNs 实际上是一种含有多层隐藏层的深度学
习神经网络,提取得到的更高层次的抽象特征可以用在每一个 DBNs 的隐藏层中。在这项
工作中,DBNs 的最高隐藏层学习得到的抽象特征用来初始化传统的多层感知器(MLP)
模型中的隐层网络权重值。被初始化的 MLP 模型具有和 DNBS 模型相同的参数,比如隐
藏层的数目,每个隐藏层上的节点数,以及每个隐藏层的权重。最后,我们使用初始化的
MLP 作为分类器来进行人脸表情识别。
这里主要是讲用于分类识别的MLP将用于学习的DBN结合一起,关键是将DBN得到的&参数应用于多层感知器的初始化,即指建立一个在隐层层数、 隐层节点数、 以及每一层隐层的网络权重值三个
方面上, 与训练好之后的深度信念网络完全一样的多层感知器模型. 这个就是其创新点所在。
& & & 所以,往后可以思考:
(1)是否可用CNN替换DBN
(2)是否可用其他分类法来于DL结合。
参考知识库
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
访问:1253次
排名:千里之外工具类服务
编辑部专用服务
作者专用服务
一种基于深度学习的人脸表情识别方法
申请(专利)号:
申请日期:
公开(公告)日:
公开(公告)号:
主分类号:
G06K9/66,G06K9/00,G,G06,G06K,G06K9
G06K9/66,G06K9/00,G06N3/08,G06N3/00,G,G06,G06K,G06N,G06K9,G06N3,G06K9/66,G06K9/00,G06N3/08,G06N3/00
申请(专利权)人:
台州学院,张石清,赵小明
发明(设计)人:
张石清,赵小明
主申请人地址:
318000 浙江省台州市市府大道1139号
专利代理机构:
杭州赛科专利代理事务所 33230
国别省市代码:
一种基于深度学习的人脸表情识别方法,其特征在于,该方法包含如下步骤:步骤1、从人脸表情数据库中提取人脸表情图像;步骤2、对人脸表情图像进行预处理;步骤3、将预处理后的全部图像分为训练样本和测试样本两部分;步骤4、将训练样本用于深度信念网络(DBN)的训练;步骤5、将深度信念网络(DBN)的训练结果用于多层感知器(MLP)的初始化;步骤6、将测试样本输送到初始化后的多层感知器(MLP)进行识别测试,实现人脸表情识别结果的输出;其中,(1)人脸表情图像的预处理,包括:对人脸表情数据库中的每一幅表情图像进行采样,以便降低表情图像的特征维数,并将表情图像的每个像素值归一化到方差为1和均值为0;(2)深度信念网络(DBN)的训练,包括:深度信念网络(DBN)的预训练(pre-training)和深度信念网络(DBN)的调优(fine-tuning)两个步骤。训练过程中采用的图像样本来源于人脸表情数据库中的训练样本;(3)多层感知器(MLP)的初始化,包括:首先建立一个在隐层层数、隐层节点数上与深度信念网络(DBN)完全一样的多层感知器(MLP)模型。然后,将训练好之后的深度信念网络(DBN)模型中的每一层隐层的网络权重值,直接输入给多层感知器(MLP)模型中相应的每一层隐层网络当中,从而使得多层感知器(MLP)模型与训练好之后的深度信念网络(DBN)模型,在隐层层数、隐层节点数、以及每一层隐层的网络权重值三个方面上都保持一样;(4)人脸表情识别结果的输出,包括:对于人脸表情数据库中的测试样本,采用初始化之后的多层感知器(MLP)模型进行人脸表情图像样本的识别测试,输出人脸表情识别结果。人脸表情识别测试时,采用5次交叉验证方法,即将全部表情图像样本平均分成5份,每次使用其中的4份数据作为训练样本用于训练,剩下的1份数据作为测试样本用于识别测试。这样的识别实验相应重复5次,最后取5次的平均值作为识别结果。
法律状态:
公开,公开
相关检索词
万方数据知识服务平台--国家科技支撑计划资助项目(编号:2006BAH03B01)(C)北京万方数据股份有限公司
万方数据电子出版社基于视觉的手势识别技术_图文_百度文库
两大类热门资源免费畅读
续费一年阅读会员,立省24元!
基于视觉的手势识别技术
上传于||暂无简介
阅读已结束,如果下载本文需要使用1下载券
想免费下载本文?
定制HR最喜欢的简历
下载文档到电脑,查找使用更方便
还剩1页未读,继续阅读
定制HR最喜欢的简历
你可能喜欢图像处理&&人脸识别(1)
如果把多个不同类的同种对象放入一个大型库中,那么当你需要把未知的一个实例进行分类的话,实际上你可以用大型库中每个样本的线性组合来描述,并且,最合适的描述一定是稀疏的,大多数项的系数都是零值或接近零值,直白但不严格的理解就是同一类的部分对象才是用来描述新来同类对象的主要“参与者”。基于这种思想,可以用稀疏表示来做分类(Sparse coding for recognition)。具体算法是SRC算法[1],先建立超完备的子空间A,然后解L1最优化问题[2],接着重构并观察残差,当残差呈现一类特别小其他类特别大的时候,就是残差最小的那一类,如果呈现比较均衡且都很大的情况,就表明测试对象根本不属于数据库中的这个种型(比如拿电视机放到人脸数据库训练出来的SRC来跑,就会算出这种结果,说明被测对象不是人脸)。这个方法很神奇的,优化L1就可以解出最近似的表示,实在奇特,难怪参考文献[2]中的l1优化算法叫做l1-magic。SRC形式化表述:
oOk. Let's begin our Exp journey:
基于JAFFE数据库,按人来分成10类,每个人二十来张,共7类表情。预处理,截取出脸部116X156。
构建出来的A矩阵mX212,m是降采样后的分辨率值,由于稀疏约束,m最好远小于212,但太小又会是图片过于失真,因此有一个度的把握。
测试图像:
她在数据库中的其他图像(此处截图缘故,少截了一张张口惊讶的表情,在下一个试验中有):
KA except the-mouth-open-surprise&one
图片降采样4X5 : 8X10 12X15时的重构残差(再大的分辨率就报错了,那就成超定方程而不是欠定方程了):
可以看出,识别的效果非常好,全部都正确的识别到了正确的分类。他们各自对应的稀疏系数为:
可以看出,随着分辨率不断升高,矩阵A越来越不扁平,系数也越来越不稀疏,识别效果最好的是最稀疏的。事实上,由于版面篇幅问题,我还做了2X3,3X4等没有截图的部分,发现,只要A矩阵的横纵比在3:1以上,对于这个实验,效果都非常不错(一个正确的低峰其他都是高峰,没有任何歧义)。
事实上,仔细观察这个测试图像在人脸库中是有比较接近的图像与其对应的,如果表情变化的“力度”比较大呢,实验结果如何?
在Exp 1.基础上用了大表情尺度的图片作为测试对象(测试对象在训练图库的类别中没有相同表情的图片,也即是没有张嘴瞪眼的图),同样图片全部降采样的4X5:
KA & & & & & & & & & & & & & & YM
重构残差分别是:
相当理想!
嘿嘿,邪恶的想法诞生了,给它来几笔吧,测测鲁棒性(对不起了KA姐姐,你为科学献身了,这个做法或许不是很妥当,但郑重声明没有对任何人的任何侮辱!No insult, with all respect):
看看重构结果:
你相信吗?第一张还是被认出来了,第二张失败了。再回顾一下大致算法,降采样,优化L1,重构,识别,就这么简单几步居然这么鲁棒。Unbelievable!
在上面的基础上,把上面实验的jaffe数据库不进行人脸剪裁进行同样实验(其他条件不变,测试图像仍然是KA姐姐的张嘴图)。
不剪裁的图示例:
exp 3.1 训练图、测试图都不剪裁:
训练图中不含有以及含有测试图片(含有也是一个剪裁过一个没剪裁过的)的重构残差:
第一个虽然识别对了但是不理想,说明背景(即便背景都很相似)的影响还是蛮大的。第二个当然完美识别出来了。
exp 3.2 训练图剪裁、测试图不剪裁:
训练图中不含有以及含有测试图片(含有也是一个剪裁过一个没剪裁过的)的重构残差:
很遗憾,都识别错了。
exp3.3 训练图不剪彩、测试图剪裁:
训练图中不含有以及含有测试图片(含有也是一个剪裁过一个没剪裁过的)的重构残差:
虽然都能正确识别,但是显然效果不好,因为低峰较多且不唯一。
exp3.4 剪裁,但是不对齐
上几个实验结果引起了我的好奇,背景和大小不对齐是存在影响的,那空间不对其会怎样呢?
基于剪裁的训练图,测试图如下:
为了比较,原对齐图(在训练图库中未出现)为:
重构的残差分别是:
前两个都识别错误了,第三个勉强正确。当然,由于测试图的表情(惊讶)在训练图的KA此人类别中并未出现,所以识别的难度本身就比较大,因此对于对齐的要求也比较高。
上面都是基于人脸的身份识别,现在尝试下表情识别,做法跟Exp 1.类似,都是用剪裁过后的测试图与训练图,为了排除身份的影响,将被测对象的所有图片都从训练图库中去除。
分别对应重构残差(纵轴依次为:anger disgust fear happy neutral sad surprise):
正确率很一般,就算正确也是差强人意的(低峰不唯一)。
如果用真实环境中采样来的图片(经过手工剪裁后)来做实验,更是要糟糕,识别率接近random,可见表情识别比身份识别要难做得多。
Conclusion
总的来说Spare coding是个很强大很鲁棒很神奇的东西。
在人脸识别中,对表情变化、光照和遮挡都有不错的效果(Exp 2.),但是对于对齐有一定的依赖(Exp 3.),实验效果很不错(尤其在训练总样本近两百左右的训练集来说),而且还是在没有任何特征提取的前提下(当然,[1]中已经证明足够稀疏,特征提取已经不重要)!
但在人脸表情识别中,单纯的移植人脸识别的做法却十分差强人意(Exp 3.),特别当测试对象延伸到训练对象(不同表情的测试者未在测试表情中出现)以外。
Reference:
[1]&Robust Face Recognition via Sparse Representation. &IEEE TRANS. PAMI, MARCH 2008.
[2] l1-magic: Recovery of Sparse Signals&via Convex Programming
posted at&<span style="color:#12-05-11 23:42:20
有一些同学发私信问我要代码。这个其实网上有一些优化包,用那些优化包改一改就可以跑实验了:
(1)l1-magic:http://www.acm.caltech.edu/l1magic/(this is good enough for above experiment)
(2)CVX: /cvx/ (however it might be slow if the number of points or their dimensions is very large)
(3)Sparsa: http://www.lx.it.pt/~mtf/SpaRSA/
(4) SPGL1: http://www.cs.ubc.ca/labs/scl/spgl1/
posted at&<span style="color:#12-05-12 12:27:22
更正:l1-magic的网址是:http://www-stat.stanford.edu/~candes/l1magic/
参考知识库
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
访问:6579次
排名:千里之外

我要回帖

更多关于 人脸表情识别数据库 的文章

 

随机推荐