人脸识别系统开发
文章平均质量分 82
逐步介绍基于Qt Quick+OpenCV+Dlib的人脸识别系统的开发过程。
项目地址:https://gitee.com/china_jeffery/HFR_OpenSource
优惠券已抵扣
余额抵扣
还需支付
¥19.90
¥99.00
购买须知?
本专栏为图文内容,最终完结不会低于15篇文章。
订阅专栏,享有专栏所有文章阅读权限。
本专栏为虚拟商品,基于网络商品和虚拟商品的性质和特征,专栏一经购买无正当理由不予退款,不支持升级,敬请谅解。
china_jeffery
持续学习者;
擅长开发开源组件及相关工具;
长期致力于应用各种IT新技术提升生产效率和解决实际问题;
展开
-
人脸识别系统开发(1) -- 系统及开发环境介绍
一、开发环境介绍Visual Studio 2015Qt 5.6.3 (该版本及以上版本都可以)dlib-19.7opencv-2.4.13.3-vc14mkl_2018.0.124 (编译dlib时需要) mkl下载地址:https://pan.baidu.com/s/1qYHriKs 密码:wl6z Visual studio+Qt的开发环境搭建参考:Visual Stud原创 2018-01-02 14:46:56 · 143483 阅读 · 10 评论 -
人脸识别系统开发(2) -- QML基础语法
本文以代码注释的形式来说明QML的基础语法。若需要了解相关布局、控件的详细用法可以参考Qt5的在线文档:http://doc.qt.io/qt-5/,Qt官方提供了详细的示例。 QML的教程可以参考《Qt Quick核心编程》qml文件可以直接使用qmlscene.exe(所在目录参考C:\Qt\Qt5.6.3\5.6.3\msvc2015\bin)来预览。如果使用了自定义注册类型,预览时会报错,原创 2018-01-02 17:09:46 · 134367 阅读 · 2 评论 -
人脸识别系统开发(3) -- C++与QML混合编程
使用Qt Quick技术可以快速的构建流畅的界面,而且具有动画等各种绚丽的效果。但它也有很多局限性,比如在网络访问、硬件操作、文件处理等方面,所以在很多时候我们需要混合使用C++和QML,比如使用QML构建界面,使用C++来实现非界面的业务逻辑等。这样也就涉及到了QML和C++之间的交互了。其实,QML的很多基本类型本来也是通过C++来实现的,比如Item对应QQuickItem类,Image对应Q原创 2018-01-02 19:18:17 · 134070 阅读 · 0 评论 -
人脸识别系统开发(4) -- 图片列表功能
在该人脸识别系统中,每次识别过程都会从摄像头实时捕获N(暂定为3)张人脸图片,用这N张图片来和证件上面的人脸进行比对。系统会将每次捕获的人脸图片显示在右侧的列表中,我们可以通过QML中的ListView来实现列表功能。MVC在说ListView功能前,就不得不提MVC设计模式了,因为ListView是采用这个模式来实现的。Model-View—Controller(MVC)是源自SmallTalk的原创 2018-01-03 13:19:41 · 136463 阅读 · 1 评论 -
人脸识别系统开发(5) -- QML显示QImage
QML显示QImage的流程大致如下:1. 定义一个QQuickImageProvider派生类,实现requestImage和requestPixmap接口,返回需要显示的图片。示例:#pragma once#include <QImage>#include <QMap>#include <QQuickImageProvider>class GrapImageProvider : publi原创 2018-01-03 15:43:16 · 117583 阅读 · 0 评论 -
人脸识别系统开发(6) -- OpenCV摄像头预览
OpenCV的使用起来非常人性化,是我见过为数不多的,体量大且在windows平台编译没警告的开源库,不得不承认开发opencv的科学家是真的严谨。 这里OpenCV使用的版本是2.4.13.3,使用cmake生成visual stuido工程,编译即可。OpenCV官方提供了丰富的示例,包括摄像头预览、人脸检测、人脸比对等等。 使用opencv操作USB摄像头,用户只需要指定设备ID原创 2018-01-03 16:35:54 · 118026 阅读 · 0 评论 -
人脸识别系统开发(7) -- cv::Mat与QImage相互转换
#include <QImage>#include <opencv2/opencv.hpp>#include <QDebug>QImage cvMat2QImage(const cv::Mat & mat){ // 8-bits unsigned, NO. OF CHANNELS = 1 if (mat.type() == CV_8UC1) { QIma原创 2018-01-03 16:47:44 · 117722 阅读 · 0 评论 -
人脸识别系统开发(8) -- OpenCV人脸检测
人脸检测使用cv::CascadeClassifier提供的功能实现,首先使用opencv自带的训练数据lbpcascade_frontalface.xml初始化CascadeClassifier,然后调用detectMultiScale得到图片中人脸的Rect.#include "opencv2/objdetect/objdetect.hpp"#include "opencv2/imgproc/原创 2018-01-03 17:10:37 · 121480 阅读 · 0 评论 -
人脸识别系统开发(9) -- Dlib人脸比对
这里的人脸识别准确的说是人脸比对,特征点比对。opencv是基于机器学习的,需要使用素材进行训练,不符合该系统的要求。所以这里使用dlib来实现。从dlib官方网站http://dlib.net/下载源码,使用cmake生成visual stuido工程,然后编译。使用dlib进行人脸图片比对的大致流程如下(代码摘要):#include <dlib/dnn.h>#include <dlib/gui原创 2018-01-04 10:42:55 · 130116 阅读 · 0 评论