开发基于深度学习的人脸识别【考勤/签到】系统

  • 人脸识别介绍
  • 平台环境需求
  • 技术点
  • 系统流程
  • 细节设计
    • 人脸检测
    • 人脸关键点定位
    • 人脸特征提取
      • 模型的训练
      • 模型的部署
    • MySQL数据库的使用
    • MFC工程的搭建
  • 软件使用

人脸识别介绍

人脸识别技术是一项非接触式、用户友好、非配合型的计算机视觉识别技术。随着机器学习、深度学习等技术的发展,人脸识别的应用正日趋完善和成熟。本文将介绍人脸识别技术如何用于考勤/签到系统。

本文将主要从以下几个方面阐述:

  • 平台环境需求
  • 涉及的技术点
  • 人脸识别系统流程
  • 细节设计

平台环境需求

  • 操作系统:Windows 64位
  • 第三方库:OpenCV,Caffe,boost
  • 开发语言:C++
  • 数据库:MySQL

技术点

adaboost算法和CNN用于人脸检测与定位; 
随机森林算法/CNN用于人脸关键点标定; 
卷积神经网络用于人脸特征提取; 
MFC用于设计系统操作界面; 
MySQL数据库用于管理人物-人脸特征数据库; 
Caffe框架用于上述环节中CNN模型的训练; 
使用Caffe的C++接口进模型行部署和使用; 
使用connector C++进行MySQL数据库的连接。

系统流程

考勤系统主要包含两个操作:注册和实时识别记录。

注册是指管理员通过软件界面将需考勤人员登记入库。 这里要输入待考勤人员的信息。 
实时识别记录是系统自动对来往人群进行人脸识别,并记录通行者的身份。

进行注册的流程如下:

开始注册?人脸检测特征提取插入数据库yes

实时识别的流程如下:

开始实时识别?人脸检测特征提取搜索数据库并记录身份yes

细节设计

人脸检测

使用OpenCV的人脸检测器进行人脸的初步检测,使用Caffe训练CNN网络进行人脸的二分类判定,将两部分合在一起完成人脸检测。此环节需注意根据应用场景调整参数,做到性能与召回率的平衡。

也可使用Python+OpenCV进行视频中的人脸检测,参考这篇文章。

人脸关键点定位

关键点定位的目标是在确知人脸位置的基础上,精确定位面部的关键点,如下图示意:

获得面部关键点的目的是进行人脸的对齐和标准化。标准化的人脸输入可以获得更高的人脸识别精度。

人脸特征提取

人脸特征提取是根据上述标准化的人脸区域图块,提取出数字化的特征。即完成从RGB信息到数值特征的变换。此环节需要尽量使得同一个人物的不同人脸所提取到的特征尽可能相似,而不同人物的人脸所提取的特征尽可能相异。

模型的训练

人脸识别的CNN网络模型的训练采用CASIA-Webface数据库,具体训练方式参见我的这篇文章。训练模型的流程参考我的github项目。

本模型在LFW评测集上达到了接近97%的准确率。具备一定的实用性。

模型的部署

部署主要考虑Caffe在Windows平台的移植,官方的Caffe对Windows系统并不支持,为了使用Caffe的C++接口,我们需要使用Windows版本的Caffe,微软出了一个版本的Caffe,参考这里。

MySQL数据库的使用

MySQL的安装和配置详见这里。 
我们使用默认的3306端口,配置好账户密码后,即可创建数据表。

MFC工程的搭建

使用Visual Studio 2013创建MFC工程,设计本软件的界面。详细的配置流程参考这里。

本软件设计界面如下 

主要包括注册和搜索两个功能。点击注册时,按钮下方出现输入框,用于输入待考察人物的信息。

软件使用

注册,点击注册按钮,并选定需要注册的人脸。 
 
输入人物信息,并提交到数据库。 
 
搜索,点击搜索,界面中实时识别人物,并将识别到的信息展示在人脸上。 

开发基于深度学习的人脸识别【考勤/签到】系统相关推荐

  1. 手把手教你开发基于深度学习的人脸识别【考勤/签到】系统

    人脸识别介绍 平台环境需求 技术点 系统流程 细节设计 人脸检测 人脸关键点定位 人脸特征提取 模型的训练 模型的部署 MySQL数据库的使用 MFC工程的搭建 软件使用 人脸识别介绍 人脸识别技术是 ...

  2. 基于深度学习的人脸识别考勤系统设计

    写在前面:本文是本科阶段参加的第三次科创比赛项目,当时只有一个人做,能力精力有限,很多预期的功能都没有实现.最后的可展示程度不高,没有走得很远.本文是申报书部分,可以为除此参加科创的同学提供思路,可以 ...

  3. 基于深度学习的人脸识别与管理系统(UI界面增强版,Python代码)

    摘要:人脸检测与识别是机器视觉领域最热门的研究方向之一,本文详细介绍博主自主设计的一款基于深度学习的人脸识别与管理系统.博文给出人脸识别实现原理的同时,给出Python的人脸识别实现代码以及PyQt设 ...

  4. 基于深度学习的人脸识别综述

    本文转载自 https://xraft.github.io/2018/03/21/FaceRecognition/ (作者:Caleb Ge (葛政)),如有侵权请告知删除. (下文中的"我 ...

  5. python dlib caffe人脸相似度_基于深度学习的人脸识别系统(Caffe+OpenCV+Dlib)【一】如何配置caffe属性表...

    前言 基于深度学习的人脸识别系统,一共用到了5个开源库:OpenCV(计算机视觉库).Caffe(深度学习库).Dlib(机器学习库).libfacedetection(人脸检测库).cudnn(gp ...

  6. 基于深度学习的人脸识别系统(Caffe+OpenCV+Dlib)【三】VGG网络进行特征提取

    前言 基于深度学习的人脸识别系统,一共用到了5个开源库:OpenCV(计算机视觉库).Caffe(深度学习库).Dlib(机器学习库).libfacedetection(人脸检测库).cudnn(gp ...

  7. 基于深度学习的人脸识别系统系列(Caffe+OpenCV+Dlib)——【六】设计人脸识别的识别类...

    前言 基于深度学习的人脸识别系统,一共用到了5个开源库:OpenCV(计算机视觉库).Caffe(深度学习库).Dlib(机器学习库).libfacedetection(人脸检测库).cudnn(gp ...

  8. 毕业设计-基于深度学习的人脸识别方法

    目录 前言 课题背景和意义 实现技术思路 一.人脸识别介绍 二.基于深度学习的人脸识别方法 实现效果图样例 最后 前言

  9. 基于深度学习的人脸识别算法

    基于深度学习的人脸识别算法 简介 Contrastive Loss Triplet Loss Center Loss A-Softmax Loss 参考文献: 简介 我们经常能从电影中看到各种神奇的人 ...

最新文章

  1. Understanding PWA
  2. jvm七:数组创建本质
  3. 思考…求知(boolean和Boolean的区别)
  4. 通达oa oracle数据库,通达OA 2016系统连接ORACLE 11g数据库(图文)
  5. qdialog 返回值_python-PyQt QDialog返回响应是或否
  6. mysql从字符串中取子字符串_如何从开始于MySQL中特定位置的字符串中提取子字符串?...
  7. Cordova工程里android平台相关的index.html是怎么加载的
  8. 鸿蒙系统对小米的影响,“小米用鸿蒙系统”乌龙会对后续有影响吗
  9. 深度学习——夏侯南溪关注的深度学习任务
  10. OpenLayers之官网实例
  11. @postconstruct 不执行_【如何分析恶意软件在系统中执行了?】
  12. 雷神开机logo更改_笔记本电脑开机LOGO太丑?大神教你来更换
  13. html表单界面设计,ui界面表单设计的三个方面
  14. 国家开发银行软件测试工资待遇,一名省直公务员告诉你绝对准确的国家开发银行员工收入,与省厅公务员作详细对比...
  15. 使用Unity和A*插件实现LoL英雄联盟中的移动方式
  16. Linux openssl 生成证书的详解
  17. php二维数组取交集,PHP中二维数组怎么取交集
  18. 手机按键触发事件--隐藏APP到任务后台
  19. css3绝对定位垂直居中,CSS3绝对定位自适应居中 - 米扑博客
  20. 【OneAPM】极客编程挑战#025:发挥想象生成漂亮炫酷的SVG动画效果

热门文章

  1. Keil5 software packs和legacy device database分类讲解
  2. 大图社区搜索的调查综述(二)——预备知识
  3. 百度android定位 602 key mcode不匹配,我的Android进阶之旅------百度地图学习:BDLocation.getLocType ( )值分析...
  4. java 批量执行 sql_执行批量操作 - SQL Server | Microsoft Docs
  5. 贝叶斯网络+推理+近似推理+变分法
  6. 【LeetCode】剑指 Offer 07. 重建二叉树
  7. 微信小程序蓝牙模块BLE开发说明基础知识
  8. Android—修改button属性
  9. mysql查看表结构命令
  10. 一文读懂Java多线程原理