之前一直在做一个功能比较简单的人脸识别系统,当然实验里的程序有部分是参考别人的,但是在整个实验过程中,我学到了不少东西,所以就记录一下,也供其它有需要的人参考。
实验的最终界面是这样的:
在做MFC界面前首先是参考了下面这几个链接,自己也实现了一遍
https://www.2cto.com/kf/201605/508553.html
http://blog.csdn.net/xingchenbingbuyu/article/details/51407336#reply
http://blog.csdn.net/xingchenbingbuyu/article/details/51472330
由于上面识别后出现的标签是数字,所以在上面的文章里都是使用if(predictPCA=“数字”)语句来实现对人脸的识别,我自己觉得不够好,但是在训练时所用的标签又是数字,自己也尝试去改成string,但失败了,去查了函数train的介绍,看到的是这样,不过估计也不能用string,如果知道的话麻烦告诉我一下。
另外,按照上面的方法用PCA识别率是比较低的,LBPH会相对高点,但自己没有去用过,在识别方面自己用了SURF特征匹配的方法,虽然识别准确率会提高,但由于使用匹配,即将摄像头所捕获的人脸与原先保存的人脸进行匹配,要进行遍历的过程,所以整体速度会变慢,这就导致视频显示比较卡。这里先贴出实现方法的代码,只做参考,自己实现还需做简单的修改。
视频中可以显示出中文,这里主要是参考下面的网站:
http://blog.csdn.net/wanggao_1990/article/details/52955056
需要程序的可以到下面网站进行下载,程序可以运行,但整体也有瑕疵的地方,不喜勿喷。
http://download.csdn.net/download/logan_lin/10262854
为了使显示画面不卡,我觉得应该可以使用线程而不是用定时器,后面有时间在进行修改