码迷,mamicode.com
首页 > 其他好文 > 详细

关于metric learning的人脸识别学习

时间:2014-08-18 16:08:52      阅读:179      评论:0      收藏:0      [点我收藏+]

标签:http   使用   io   数据   for   ar   问题   cti   

今年暑假在北京自动化所做“大学生研究计划”,从7月7号-8月20号。导师和师兄人都很nice,度过了一个有收获的暑假吧!

我对人脸识别的理解:比较两个人脸是不是相似,而图片的存储是矩阵,那我们就是比较这两个矩阵有多近,如果“很近”,那就是同一个人嘛,相反,如果相差很大,那就不是一个人。如何来判断两个矩阵离得“近”呢,答案是丰富多彩的嘛,所以有各种各样的方法。

然后说下人脸识别的整个过程:样本——提取特征——训练——得到分类器——测试

1 样本,我用的LFW(Labeled Face in Wild)数据库,点击LFW可以下到,一共13233幅图片,对应5749个人。
2 提取特征,我用的LBP方法,另外由于提的特征过大,如果直接训练,成本太高,建议进行压缩,我在这里用的是cai deng的PCA方法,小伙伴们可以直接从这里下工具箱,很方便。
3 训练过程,我在这里是用的metric learning

这里参考了cao qiong的Similarity Metric Learning for Face Recognition和Jason V. Davis的Information Theoretic Metric Learning他们都是有完整代码贴出来的,可惜都是matlab的。

前面说到怎么找一个合适的距离能够“恰好”的把同一个人和不同的人分开,我们当然可以用我们熟悉的欧式距离,d1=(X-Y)’(X-Y)(X,Y是两个人脸的矩阵),但是效果不好,这个时候大家就想办法了,还有什么距离的,通常,马氏距离d=(X-Y)‘G(X-Y),这个时候我们通过训练找到一个合适的G,这个G能使在X和Y相近时,得到一个很小的值;cao qiong还引入了另一个距离,d2=XMY,这个距离,当X和Y靠近时,会很大,而远离时,d的值很小。cao xiong综合以上两点,d=d2-d1。而Jason V. Davis只使用了d1。
metric learning本质上就是要找一个合适的矩阵G。

感觉这是转化为一个最优化问题,我们肯定是最优某一项指标,然后给出一些限制条件,这样就变成我们熟悉的运筹学的问题了。

4 得到分类器,有了G以后分类就简单了,可以采用KNN分类,也可以给个简单的阈值,如果d大于某个值就不是同一个人,如果小于某个值就是一个人。

5 训练的结果:我用400维的数据测试下来识别率是89.7%

关于metric learning的人脸识别学习,布布扣,bubuko.com

关于metric learning的人脸识别学习

标签:http   使用   io   数据   for   ar   问题   cti   

原文地址:http://www.cnblogs.com/zhk-sein/p/3919619.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!