Qt5.7+Opencv2.4.9人脸识别(一)项目介绍

【注意】本博文的档次适合Opencv初学者,和要做本科生毕业设计这类档次。


昨天晚上刚刚参加了某s*i*p的答辩,发现就是走个流程,与Q群里面其他学生的学校比起来,我们学校编程与其他学校差距较大,在此我把我所做的东西开源展示给大家(其实都是调用Opencv进行识别,并不是什么好东西,网上已经烂大街了)


下面是程序的运行截图(这里我直接放我总结报告的里面的截图):


添加用户的截图:


拍照后:(在此文件夹有记录)


点击照片处理后Data中会根据编号创建文件夹


点击照增加csv和模型训练后,就会生成xml文件,随后就可以进行人脸识别



测试结果:

当人脸库中无此人数据时识别结果截图:


当增加此人数据后运行结果:


识别过程中,人突然跑开,或者人脸精度不大时:



本程序开源,在此是源码下载地址,

http://download.csdn.net/detail/qq78442761/9832957



【注意】此源码对Opencv2.4.9库的调用已经用CMake编译成MinGW可用的,在此不再说明

CMake然后编译OpenCV

http://blog.csdn.net/qq78442761/article/details/54342479


在本节的最后,我想简单交代下识别原理和流程,方面大家对程序的理解:

PCA的全称是Principal Component Analysis主成份分析。

原理简单说就是:提取人脸的主要成份,构成特征脸空间,将待识别的人脸投影到特征脸空间上得出特征向量,然后采用欧式距离算出这个特征向量与平均人脸的差值的距离,然后定义一个阈值,当满足这个阈值时则识别成功。(公式我就不写了,毕竟待会用Opencv调用的时候就几个函数,就能实现上述的功能)

在这里的提取人脸主要成分,其实是把图像矩阵向量化,计算平均值,然后计算差值,再构造协方差,提取协方差的特征向量和特征值,这些特征向量构成的总和就是特征脸空间,然后把每一幅人脸与平均脸的差值的矢量投影到特征脸空间,就达到了模型训练(这些都是理论,在Opencv里面就几个函数调用,极其简单)



在此再说下OPencv人脸识别的流程,方面下一节对程序的理解。

OpenCV人脸识别流程:
1.人脸采集;
2.人脸处理;
3.模型训练;
4.人脸识别;

所以在下几节的内容中我将逐步分析,这4个流程,最终达到人脸识别!



猜你喜欢

转载自blog.csdn.net/qq78442761/article/details/71157980