本节讲如何训练人脸模型,所用平台为opencv3.4.0+VS2017+win10。因为人脸模型训练模块在opencv_contrib模块中,而在opencv2.x版本中是有这个模块的,但考虑到此模块的不稳定性,opencv3.x版本将此模块去掉了,所以若需要应用opencv_contrib模块,需自行下载opencv_contrib_3.4.0模块,然后用cmake软件将opencv3.4和opencv_contrib_3.4.0一起进行重新编译。
此处需注意,opencv_contrib的版本要和opencv的版本相一致,不然程序无法运行。
一.说明
首先说明:opencv3.x较opencv2.x在FaceRecogna的使用区别:
- 首先需要配置contrib模块,这在很多博客中有介绍
- OpenCV3.4.0的人脸识别API相较于之前opencv2.x的版本有些变动
- 原3.x以前的是createEngenFaceRecognize()
- 现更改为EigenFaceRecognize::create()
- 其他几个创建函数也做了如上改变。
- 包含头文件#include< face/face.hpp >
- 命名空间using namespace cv::face;
opencv中有三种方法可以使用:
EigenFaceRecognizer::create()、FisherFaceRecognizer::create()、LBPHFaceRecognizer::create()。
我选择的是EigenFaceRecognizer