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

源码的下载地址和原理理论部分请走下面连接

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

上一节是人脸处理,链接如下:

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

这一节是模型训练,这个模型训练要做的功能就是调用Opencv生成一个XML文件,这个XML文件记录了每组的人脸的特征(本程序是10张图一个人,每一个人有唯一固定的编号)

功能如下,在点击功能再点击训练模型后会在此程序根目录下生成如下xml文件。

下面来看代码,如何实现这一功能:

void AddPeople::TrainingModel()
{//读取你的CSV文件路径.//string fn_csv = string(argv[1]);std::string fn_csv = "./Data/at.txt";// 2个容器来存放图像数据和对应的标签std::vector<cv::Mat> images;std::vector<int> labels;// 读取数据. 如果文件不合法就会出错// 输入的文件名已经有了.try{read_csv(fn_csv, images, labels);}catch (cv::Exception& e){std::cerr << "Error opening file \"" << fn_csv << "\". Reason: " << e.msg << endl;// 文件有问题,我们啥也做不了了,退出了return;}// 如果没有读取到足够图片,也退出.if (images.size() <= 1) {std::string error_message = "This demo needs at least 2 images to work. Please add more images to your data set!";CV_Error(CV_StsError, error_message);}// 下面的几行代码仅仅是从你的数据集中移除最后一张图片//[gm:自然这里需要根据自己的需要修改,他这里简化了很多问题]cv::Mat testSample = images[images.size() - 1];
//    int testLabel = labels[labels.size() - 1];images.pop_back();labels.pop_back();cv::Ptr<cv::FaceRecognizer> model = cv::createEigenFaceRecognizer();model->train(images, labels);model->save("MyFacePCAModel.xml");int predictedLabel = -1;double confidence = 0.0;model->predict(testSample, predictedLabel, confidence);qDebug()<<confidence;
}

其实就是调用了createEigenFaceRecognizer(),就实现了在第一节中,所说的理论,然后在train就能训练出xml文件。

下一节将说明人脸识别。

源码和理论部分在本博文开头有提供。

Qt5.7+Opencv2.4.9人脸识别(四)模型训练相关推荐

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

    [注意]本博文的档次适合Opencv初学者,和要做本科生毕业设计这类档次. 昨天晚上刚刚参加了某s*i*p的答辩,发现就是走个流程,与Q群里面其他学生的学校比起来,我们学校编程与其他学校差距较大,在此 ...

  2. Qt5.7+Opencv2.4.9人脸识别(六)Tcp,Mysql,3DES,XML综合

    [注意]本博文的档次适合OpenCV初学者,和要做本科生毕业设计这类档次. 源码的下载地址和原理理论部分请走下面连接 http://blog.csdn.net/qq78442761/article/d ...

  3. Qt5.7+Opencv2.4.9人脸识别(五)人脸识别

    [注意]本博文的档次适合OpenCV初学者,和要做本科生毕业设计这类档次. 源码的下载地址和原理理论部分请走下面连接 http://blog.csdn.net/qq78442761/article/d ...

  4. Qt5.7+Opencv2.4.9人脸识别(三)人脸处理

    [注意]本博文的档次适合OpenCV初学者,和要做本科生毕业设计这类档次. 上一节是人脸采集,链接如下: http://blog.csdn.net/qq78442761/article/details ...

  5. python opencv生成tf模型_基于TensorFlow+ Opencv 的人脸识别 和模型训练

    一.准备工作 本次实例的anaconda 环境 (有需要的自己导入anaconda) 链接:https://pan.baidu.com/s/1IVt2ap-NYdg64uHSh-viaA 提取码:g7 ...

  6. 用深度学习做命名实体识别(四)——模型训练

    通过本文你将了解如何训练一个人名.地址.组织.公司.产品.时间,共6个实体的命名实体识别模型. 准备训练样本 下面的链接中提供了已经用brat标注好的数据文件以及brat的配置文件,因为标注内容较多放 ...

  7. Qt5.7+Opencv2.4.9人脸识别(二)人脸采集

    [注意]本博文的档次适合OpenCV初学者,和要做本科生毕业设计这类档次. 源码的下载地址和原理理论部分请走下面连接 http://blog.csdn.net/qq78442761/article/d ...

  8. 使用Opencv2+Pyqt5实现人脸识别视频马赛克

    [视频马赛克系统]使用Opencv2+Pyqt5实现人脸识别视频马赛克功能 1.实现背景 2.开发资源.环境准备 3.实现目标 4.开发原理 6.编译实现 1.视频中人脸马赛克 2.电脑摄像头进行人脸 ...

  9. 【华为云技术分享】人脸识别算法的训练之路(下)

    人脸识别算法的训练之路(上) 人脸识别 人脸识别问题本质是一个分类问题,即每一个人作为一类进行分类检测,但实际应用过程中会出现很多问题.第一,人脸类别很多,如果要识别一个城镇的所有人,那么分类类别就将 ...

最新文章

  1. python合法关键字是_python练习题-day18
  2. 5款WordPress推荐文章幻灯片插件
  3. NodeJS(四)Mac下如何安装package.json里面会产生依赖项
  4. SpringBoot整合kafka之kafka分区实战
  5. NopCommerce支持友好路由
  6. 互联网之“死”:为什么开发者会排斥新技术?
  7. 19. 星际争霸之php设计模式--迭代器模式
  8. 史上最全的开源库整理
  9. 浏览器 主页 被篡改 ,怎么都修改不回来(包括 Firefox ,google Chrome) KMS激活问题
  10. 从Hadder看蛋白质分子中的加氢算法
  11. Windows部分快捷键命令/命令
  12. 残差连接(skip connect)/(residual connections)
  13. matlab中pwelch函数计算功率谱密度
  14. linux系统下载及安装(CentOS-7-x86_64-DVD-1810.iso)
  15. 物联网毕设选题 机器视觉人脸识别系统 - 单片机 stm32 嵌入式
  16. uniapp 中 Cannot read property ‘length‘ of undefined 报错处理
  17. Android3d结构光,安卓阵营独一份!OPPO完成3D结构光技术研发,某果开始慌了
  18. 使用matlab处理INCF采集数据,mdf(.dat)格式文件,并将将其写入excel文件
  19. Linux网卡名称命名
  20. 文本分类学习 (五) 机器学习SVM的前奏-特征提取(卡方检验续集)

热门文章

  1. C/C++基础语法复习(二):C++ 面向对象编程,你需要知道的点
  2. 想要 24 小时自学编程,那是不可能的,先自学 10000 小时再说!
  3. 程序员职场须知:公司如何衡量程序员的价值?别以为是经常加班!
  4. 开源即时通讯软件|最好的开源即时通讯软件——XEIM
  5. 用VC写Assembly代码(5) --函数调用(一)
  6. 博客,文字的卡拉OK版
  7. 程序员都很老实?你错了,其实程序员真实的样子是这样的
  8. 今天我不想发文了,对不起各位!
  9. 我想重构网站的前端!不,你不想....
  10. matlab segy文件,利用matlab实现segy格式数据的读写研究和分析.ppt