C/C++知识点之OpenCV之识别自己的脸——C++源码放送
小标 2018-12-26 来源 : 阅读 1161 评论 0

摘要:本文主要向大家介绍了 C/C++知识点之OpenCV之识别自己的脸——C++源码放送,通过具体的内容向大家展示,希望对大家学习C/C++知识点有所帮助。

本文主要向大家介绍了 C/C++知识点之OpenCV之识别自己的脸——C++源码放送,通过具体的内容向大家展示,希望对大家学习C/C++知识点有所帮助。

前言

在将近一年之前,我在CSDN专栏《OpenCV实践之路》中连续发了三篇博客,完整地描述了基于OpenCV进行人脸识别的全过程。三篇都将近一万的阅读量和大量的评论的表明,人脸识别果然是大家在学习OpenCV过程中最感兴趣的课题,之一。当然,也有可能是本科生毕设老师最感兴趣的课题之一。。。

由于当时写的时候是按照前后流程来的,所以源码比较分散。加之我想当然地认为,很多源码是之前博客中已经放出来的,可以一句带过。这导致了很多同学学习的时候很不方面。但是我由于重装系统,导致当初的源码遗失,也一直没有抽出时间去重新整理一下。这个清明节,没有出门,根据之前的博客基于当下最新的OpenCV3.2重新整理了一遍源码。现在放出来,以飨读者。



小小的区别

当然了,重新整理也不是简单的把源码收集到一起,如果真的那么简单,也就不用去整理了,大家自行收集即可。因为OpenCV3.2人脸识别的内容也是有些小变动。所以现在的代码跟原来的三篇博客仍然是统一的,但是有一些细节不同。



1. 自动拍照

之前采集自己的图像的时候,程序设定是运行之后按’p’键拍照并保存图像,然后需要自己手动的去把图像大小转化为跟ORL人脸数据库中的图片大小一样。

现在一切自动,只需要运行即可拍照,变化尺寸,并保存。默认设定拍10张照片,与ORL人脸数据库一致。



2. Python脚本生成at.txt

当时写博客的时候还不会用Python,所以生成的at.txt并不是s1文件夹对应的label就是1,s2就对应2。而是比较混乱的。谁是谁需要自己去记忆。

经过修改后的Python脚本可以是文件夹可label完美对应起来了



3. 训练代码

训练人脸识别模型的代码部分有些改动,主要是因为OpenCV的变动。


头文件和命名空间需要各加一句:

#include

using namespace cv::face;
创建模型部分的改变,原来的代码是 
Ptr model = createEigenFaceRecognizer();

Ptr model1 = createFisherFaceRecognizer();

Ptr model2 = createLBPHFaceRecognizer();

现在改为: 
Ptr model = createEigenFaceRecognizer(); 
Ptr model1 = createFisherFaceRecognizer(); 
Ptr model2 = createLBPHFaceRecognizer();


其余部分没有太大变化。



下载办法

源码已经分别上传到Github、百度网盘。其中github由于大小限制,不含我训练好的模型。

Github:`https://github.com/LiuXiaolong19920720/recognise-your-own-face

百度网盘:链接://pan.baidu.com/s/1nuPFthR 密码:slh8



最近申请了微信公众号,分享机器视觉和机器学习的内容,感兴趣的同学可以扫码关注。 



        
            $(function () {
                $(‘pre.prettyprint code‘).each(function () {
                    var lines = $(this).text().split(‘\n‘).length;
                    var $numbering = $(‘

‘).addClass(‘pre-numbering‘).hide();


                    $(this).addClass(‘has-numbering‘).parent().append($numbering);


                    for (i = 1; i <= lines; i++) {


                        $numbering.append($(‘

‘).text(i));
                    };
                    $numbering.fadeIn(1700);
                });
            });

本文由职坐标整理并发布,希望对同学们有所帮助。了解更多详情请关注职坐标编程语言C/C+频道!

本文由 @小标 发布于职坐标。未经许可,禁止转载。
喜欢 | 1 不喜欢 | 0
看完这篇文章有何感觉?已经有1人表态,100%的人喜欢 快给朋友分享吧~
评论(0)
后参与评论

您输入的评论内容中包含违禁敏感词

我知道了

助您圆梦职场 匹配合适岗位
验证码手机号,获得海同独家IT培训资料
选择就业方向:
人工智能物联网
大数据开发/分析
人工智能Python
Java全栈开发
WEB前端+H5

请输入正确的手机号码

请输入正确的验证码

获取验证码

您今天的短信下发次数太多了,明天再试试吧!

提交

我们会在第一时间安排职业规划师联系您!

您也可以联系我们的职业规划师咨询:

小职老师的微信号:z_zhizuobiao
小职老师的微信号:z_zhizuobiao

版权所有 职坐标-一站式IT培训就业服务领导者 沪ICP备13042190号-4
上海海同信息科技有限公司 Copyright ©2015 www.zhizuobiao.com,All Rights Reserved.
 沪公网安备 31011502005948号    

©2015 www.zhizuobiao.com All Rights Reserved

208小时内训课程