人脸识别源码运行指南

Posted 冰不语

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了人脸识别源码运行指南相关的知识,希望对你有一定的参考价值。

前言

人脸识别的源码放出来之后,不少小伙伴下载之后仍然不能运行成功。于是被逼无奈,把源代码改成了我认为最容易运行成功的版本。即使如此,我认为写下这个指南还是有必要的。因为反复回答相同的问题实在是太累人了。

重复一遍,本文环境为win7+vs2015+opencv3.2_with_contrib

源码下载地址

公众号回复:人脸识别源码

或者

网盘: http://pan.baidu.com/s/1b1J23O 密码:kv1e

几个问题

首先还是说明几个问题,虽然都说过,但是还是有人问。以后再有人问就直接给他这篇文章。

找不到FaceRecognizer

FaceRecognizer在opencv的contrib模块里的face模块里面。而opencv官方下载的opencv默认是不带contrib的,要实现人脸识别需要用编译了contrib模块的opencv。一般来说需要自己编译。但是自己编译比较麻烦,网上有人分享了编译好的opencv3.2的版本。在公众号回复“opencv”获取下载地址,或者用下面的下载地址:

链接:http://pan.baidu.com/s/1qYx3v8S 密码:i0c0


csv文件(也即at.txt)难以自动生成。

源码中我已经写了一个名为add_label.py的python脚本,运行此脚本可以自动生成at.txt。

有时程序崩溃但是黑窗无报错信息。

一个可能的原因是,添加附加依赖项的时候,debug模式最好只添加*d.lib。而release模式最好只添加*.lib

运行指南

方便起见,下载的源码的文件夹下已经包含了需要用的ORL人脸数据库。在配置好opencv的情况下,需要以下几步。

  1. 首先用VS打开face-rec.sln。在解决方案管理器中的源文件下添加take_photos.cpp,如果源文件下还有其他cpp文件,请它们排除到项目之外。然后运行此拍照程序。如果拍照效果不好,请自动调整人脸与摄像头之间的距离,或者调节光照条件。拍好的照片会保存在att_faces\\s41文件夹下。

  2. 生成csv文件。需要电脑上安装有Python2,如果是Python3的话需要把print语句注释掉,没有实际测试过。如果对python有了解,应该不难。在add_label.py所在文件夹下shift+右键然后选择在此处打开命令行窗口。在命令行输入命令:python add_label.pyEnter运行即可。

  3. 回到VS。把take_photos.cpp排除到项目之外,添加train.cpp到源文件,运行。最后输出3行类似下面的语句表示训练模型成功。此时打开工程文件夹可以看到生成的后缀为xml的模型文件。

    Predicted class = 9 / Actual class = 9.

  4. 回到VS。把train.cpp排除到项目之外,添加rec-your-own-face.cpp到源文件,运行。此时应该会打开摄像头并识别自己的脸。

最后

此人脸识别程序只能做学习研究,因为这个正确率略低。有更高要求的小伙伴请自行探究更好的方法,在这方面我能指点内容的有限。

另外

发现一个有意思的东西,小密圈。据说可能是最好的微信公众号读者论坛。也尝试一下,名字就叫OpenCV实践之路。出了平时发文章之外,也会发一些我平时的参考资料,欢迎加入。

以上是关于人脸识别源码运行指南的主要内容,如果未能解决你的问题,请参考以下文章

如何使用 gpu 运行 dlib 人脸识别

人脸识别基于HOG特征KNN算法实现人脸识别matlab源码

TensorFlow人脸识别OpenFaceFace-recognitionInsightface和FaceNet源码运行

TensorFlow人脸识别OpenFaceFace-recognitionInsightface和FaceNet源码运行

人脸识别基于PCA+LDA实现人脸识别matlab 源码

虹软人脸识别怎么样