Qt5.7+Opencv2.4.9人脸识别(四)模型训练
【注意】本博文的档次适合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人脸识别(四)模型训练相关推荐
- Qt5.7+Opencv2.4.9人脸识别(一)项目介绍
[注意]本博文的档次适合Opencv初学者,和要做本科生毕业设计这类档次. 昨天晚上刚刚参加了某s*i*p的答辩,发现就是走个流程,与Q群里面其他学生的学校比起来,我们学校编程与其他学校差距较大,在此 ...
- Qt5.7+Opencv2.4.9人脸识别(六)Tcp,Mysql,3DES,XML综合
[注意]本博文的档次适合OpenCV初学者,和要做本科生毕业设计这类档次. 源码的下载地址和原理理论部分请走下面连接 http://blog.csdn.net/qq78442761/article/d ...
- Qt5.7+Opencv2.4.9人脸识别(五)人脸识别
[注意]本博文的档次适合OpenCV初学者,和要做本科生毕业设计这类档次. 源码的下载地址和原理理论部分请走下面连接 http://blog.csdn.net/qq78442761/article/d ...
- Qt5.7+Opencv2.4.9人脸识别(三)人脸处理
[注意]本博文的档次适合OpenCV初学者,和要做本科生毕业设计这类档次. 上一节是人脸采集,链接如下: http://blog.csdn.net/qq78442761/article/details ...
- python opencv生成tf模型_基于TensorFlow+ Opencv 的人脸识别 和模型训练
一.准备工作 本次实例的anaconda 环境 (有需要的自己导入anaconda) 链接:https://pan.baidu.com/s/1IVt2ap-NYdg64uHSh-viaA 提取码:g7 ...
- 用深度学习做命名实体识别(四)——模型训练
通过本文你将了解如何训练一个人名.地址.组织.公司.产品.时间,共6个实体的命名实体识别模型. 准备训练样本 下面的链接中提供了已经用brat标注好的数据文件以及brat的配置文件,因为标注内容较多放 ...
- Qt5.7+Opencv2.4.9人脸识别(二)人脸采集
[注意]本博文的档次适合OpenCV初学者,和要做本科生毕业设计这类档次. 源码的下载地址和原理理论部分请走下面连接 http://blog.csdn.net/qq78442761/article/d ...
- 使用Opencv2+Pyqt5实现人脸识别视频马赛克
[视频马赛克系统]使用Opencv2+Pyqt5实现人脸识别视频马赛克功能 1.实现背景 2.开发资源.环境准备 3.实现目标 4.开发原理 6.编译实现 1.视频中人脸马赛克 2.电脑摄像头进行人脸 ...
- 【华为云技术分享】人脸识别算法的训练之路(下)
人脸识别算法的训练之路(上) 人脸识别 人脸识别问题本质是一个分类问题,即每一个人作为一类进行分类检测,但实际应用过程中会出现很多问题.第一,人脸类别很多,如果要识别一个城镇的所有人,那么分类类别就将 ...
最新文章
- python合法关键字是_python练习题-day18
- 5款WordPress推荐文章幻灯片插件
- NodeJS(四)Mac下如何安装package.json里面会产生依赖项
- SpringBoot整合kafka之kafka分区实战
- NopCommerce支持友好路由
- 互联网之“死”:为什么开发者会排斥新技术?
- 19. 星际争霸之php设计模式--迭代器模式
- 史上最全的开源库整理
- 浏览器 主页 被篡改 ,怎么都修改不回来(包括 Firefox ,google Chrome) KMS激活问题
- 从Hadder看蛋白质分子中的加氢算法
- Windows部分快捷键命令/命令
- 残差连接(skip connect)/(residual connections)
- matlab中pwelch函数计算功率谱密度
- linux系统下载及安装(CentOS-7-x86_64-DVD-1810.iso)
- 物联网毕设选题 机器视觉人脸识别系统 - 单片机 stm32 嵌入式
- uniapp 中 Cannot read property ‘length‘ of undefined 报错处理
- Android3d结构光,安卓阵营独一份!OPPO完成3D结构光技术研发,某果开始慌了
- 使用matlab处理INCF采集数据,mdf(.dat)格式文件,并将将其写入excel文件
- Linux网卡名称命名
- 文本分类学习 (五) 机器学习SVM的前奏-特征提取(卡方检验续集)
热门文章
- C/C++基础语法复习(二):C++ 面向对象编程,你需要知道的点
- 想要 24 小时自学编程,那是不可能的,先自学 10000 小时再说!
- 程序员职场须知:公司如何衡量程序员的价值?别以为是经常加班!
- 开源即时通讯软件|最好的开源即时通讯软件——XEIM
- 用VC写Assembly代码(5) --函数调用(一)
- 博客,文字的卡拉OK版
- 程序员都很老实?你错了,其实程序员真实的样子是这样的
- 今天我不想发文了,对不起各位!
- 我想重构网站的前端!不,你不想....
- matlab segy文件,利用matlab实现segy格式数据的读写研究和分析.ppt