【人脸识别】Eigenface、Fisherface、LBPface与CNNface

点击【阅读原文】查看我的推文

点击【获取代码】访问我的Github


难得轻松下来,完成任务、如释重负,最是舒服。今天,谈谈我这几天都做了什么,从中深受启发,希望分享给大家对大家有所帮助。

还是在五天前的晚上,晚风徐徐,与家人饭后散步。接到素未谋面的陌生同学的求助,希望能够帮她完成一项任务:

ATT数据集
图1: ATT数据集

对比现有的人脸识别算法,总结卷积神经网络用于人脸识别的优点,利用卷积神经网络的卷积和池化操作,通过卷积降维进行特征提取解决提取特征难问题……

由于以前曾亲自实现过CNN的细节部分,但是由于技术难题一直未能解决。所以心里有所不甘,抱着学习的态度,决心通过这次任务解决以前的困难问题。所以,尽管给的劳务费不高,但是毅然决然为她解决这项任务,希望通过这次任务学到不知道的东西。
Eigenface算法实验结果
图2: Eigenface算法实验结果

在决定帮她完成这项任务后,由于我的研究方向主要是信息安全领域的图像处理、压缩感知以及机器学习领域的支持向量机的研究,从来没有接触过人脸识别的算法,所以感觉这项任务圆满地完成还是有一定的难度的。

表1: Fisherface算法实验结果
Fisherface算法实验结果
于是,当晚查询相关资料及参考文献直到深夜,由于日有所思夜有所梦,晚上整晚脑子中浮现的就是如何帮她解决问题,所以根本就睡不着,就这样……

第二日,从头开始,一般地我不太喜欢找别人的程序,只要读懂算法,我喜欢自己写程序。所以,我查了Eigenface、Fisherface以及LBPface,这些都是很经典成熟的传统的人脸识别的算法,在Opencv中也有集成。从读论文到实用python写程序调试程序花了我一天半的时间,也就是平均每个算法从学习到实现应用需要半天的时间。

对人脸数据进行增强处理
图3: 对人脸数据进行增强处理

完成上述三个对比算法着实让我轻松了些许。但是,使用CNN搭建人脸识别模型着实不易,怎么交叉验证(往期推文中有)、怎么设置合适参数,怎么选择模型以及怎么对人脸数据进行增强都是需要解决的棘手问题。

算法要有自己的创新之处,不能拿现有的卷积神经网络人脸识别算法直接用,至少要改进一下。

CNNface网络模型
图4: CNNface网络模型

搭建模型倒是没有花费我太多的时间,大概半天吧,但是接下来就是漫长的调试摸索了……

问过老师、学姐、同学,但都没有解决问题。最后,绞尽脑汁,终于一点一点排查问题,在今天早上发现是因为没有把数据打乱顺序,实在太坑了……

验证集上精度VS损失
图5: 验证集上精度VS损失

纵观这么些年来完成的任务,发现:帮别人就是帮自己,自己从中学到的远比物质金钱更宝贵。有些事情,不做便罢,做就要做好!任务陌生,所以困难,一旦直面,静心解决,不抛弃、不放弃,总能战胜一切困难……当然,这一切的一切,自己的努力占着决定性因素。

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值