基于OpenCV的人脸 考勤系统
详细的设计流程点击链接:
https://wenku.baidu.com/view/871e4bb7974bcf84b9d528ea81c758f5f71f2952?fr=uc
修订记录
版本号 |
修改记录 |
修改者 |
修改日期 |
V1.0 |
初次编写 |
WenJie |
2019.05.11 |
目 录
第一章 引言....................................................................................... 5
1 编写目的.................................................................................... 5
2 项目背景.................................................................................... 5
3 参考资料.................................................................................... 5
第二章 程序软件结构........................................................................ 6
1 程序整体结构............................................................................ 6
2 数据交互层Controller................................................................ 6
3 实体模型层Entity...................................................................... 7
4 图像处理层ImageProcess.......................................................... 8
5 界面显示层View....................................................................... 8
6 资源文件.................................................................................. 12
7 其他文件.................................................................................. 13
第三章 开发环境搭建...................................................................... 14
1 MSVC 2015编译器安装............................................................. 14
2 QT IDE安装............................................................................... 14
3 OpenCV人脸识别库安装.......................................................... 15
3.1 下载opencv3.4.1源码与opencv_contrib3.4.1................. 16
3.2 Cmake3.11编译Opencv3.4.1............................................ 16
3.3 MCVC 2015编译............................................................... 17
第四章 系统详细设计...................................................................... 20
1 数据库设计.............................................................................. 20
2 人脸检测流程.......................................................................... 20
3 人脸录入流程.......................................................................... 21
4 人脸模型训练流程................................................................... 23
5 人脸识别流程.......................................................................... 24
6、打卡记录导出........................................................................ 26
第五章 总结..................................................................................... 28
第六章 参考文献.............................................................................. 29
第一章 引言
1 编写目的
为明确软件需求,安排项目规划与进度、组织软件开发与测试,为后续软件维护、修改提供技术支持,方便项目经理、设计人员、开发人员更快对本软件熟练操作提供技术参考。
2 项目背景
3 参考资料
第二章 程序软件结构
1 程序整体结构
2 数据交互层Controller
3 实体模型层Entity
4 图像处理层ImageProcess
5 界面显示层View
MainWindow主页面类界面如下图6所示。页面中包括日期时间显示、照片录入和模型训练、部门管理、员工管理、考勤记录和图像显示等内容。
DeptManager部门管理页面如上图7所示。在此页面中可以对单位企业内的部门进行增加、删除、修改部门编号或名称。
EmployeeManager员工管理页面如下图8所示。同图7中的部门管理页面的操作类似,在该页面中对员工信息进行管理。
QWaittingDialog等待页面如下图10所示。在用户对输入员工照片进行“模型训练”时,需要耗费比较多的时间,需要用户等到模型训练结束后才可进行再次操作。
6 资源文件
资源文件结构图如上图11所示。资源文件中包括软件系统运行的图片Image和软件风格配置style.qss文件。
7 其他文件
第三章 开发环境搭建
1 MSVC 2015编译器安装
对MSVC 2015 C++编译器的安装,基本为傻瓜式安装,需要注意的是在如下图13所示的选择页面上,记得勾选“Visual C++”选项。
2 QT IDE安装
从QT官网http://download.qt.io/official_releases/qt/中下载Qt5.7.1 For MSVC2015版本软件进行安装。如下图14为安装成功后,QT的版本信息。
在经过上述两个步骤的安装后,QT能够自动找到步骤一中安装的MSVC 2015编译器,如下图15所示。
3 OpenCV人脸识别库安装
3.1 下载opencv3.4.1源码与opencv_contrib3.4.1
下载需要的Opencv3.4.1版本源码:https://github.com/opencv/opencv/releases;
下载需要的opencv_contrib3.4.1版本源码:https://github.com/opencv/opencv_contrib/releases
3.2 Cmake3.11编译Opencv3.4.1
按照网上的Cmake3.11安装步骤,安装好Cmake3.11软件后打开。
图16 Cmake3.11编译Opencv3.4.1源码(1)
注意:这里选择的编译器版本要和自己本地的编译器版本一致。下载的MSVC编译器是64为就要用Win64,否则就用32位版本编译器。
图17 Cmake3.11编译Opencv3.4.1源码(2)
完成之后会在屏幕中间出现一堆Name和Value的参数,这里需要做两项改动。
1、勾选BUILD_opencv_world选项,这样,在调用动态库dll时,只调用这一个就行了,不用根据功能选择了,省了些麻烦。
2、找到OPENCV_EXTRA_MODULES_PATH将其设置成opencv_contrib的modules的路径,例如E:/opencv_contrib-3.4.1/modules。
再次点击Configure,然后点击Generate,这时你可以看到在E:/opencv/tools/opencv_contrib目录下已经生成了名为opencv.sln的VS工程。
3.3 MCVC 2015编译
进入上面过程中配置的“Build Path”文件夹下面,使用Visual Studio 2015打开opencv.sln工程,重新生成解决方案,如下图18所示。
然后打开VS项目后,在Debug x64模式下,再install操作。如下图19所示。
注意:记得生成完debug的库后,改为release x64,再来一遍上面install操作。
第四章 系统详细设计
1 数据库设计
如上图20所示,系统中使用到三个实体类部门、员工和记录,分别对应数据库中的DepartmentInfo表、EmployeeInfo表和RecordInfo表。
2 人脸检测流程
如下图22所示为人脸检测效果图。对于检测到的人脸,图像中用红色框图进行标记。
3 人脸录入流程
注意:此处的指定目录为运行环境下faces文件夹下,目录名“1”为员工编号。通过这种目录名和员工编号一致的操作,建立起图像标签编号(即目录名)和员工之间的对应关系。
4 人脸模型训练流程
注意:OpenCV3.4中有3中人脸识别算法(EigenFace、FisherFace和LBPH),所以本系统中对人脸图像进行模型训练时,可以对应得到3个算法的模型XML文件。
5 人脸识别流程
6、打卡记录导出
用户可以根据部门、员工和日期时间三种方式来选择导出记录类型。在日期时间的选择上,考虑到用户使用的习惯,设置今天、上周、上个月三个快捷方式对日期和时间进行快速筛选。
用户勾选导出条件后,点击“导出记录到文件”按钮,系统将记录文件导出到运行目录下的recordsFile子目录,记录文件名即为用户所勾选的条件选项。记录文件保存路径如下图33所示。
打开该csv记录文件,如下图34所示。导出的记录文件有员工编号、员工姓名、部门名称和打卡时间四个必要字段组成。
第五章 总结
本文档只是介绍作者在利用OpenCV3.4.1开发人脸考勤系统中的设计流程。文中所涉及的人脸识别算法的详细介绍,各位可以在第六章中的参考文献中查找。
本系统源码各位可以加以下微信号获取,作者会以压缩包的形式给各位发送。压缩包中内容包括:
1、编译好的Opencv3.4.1(包括opencv_contrib3.4)
第六章 参考文献
1、《人脸识别算法——EigenFace、FisherFace、LBPH
》网址:https://www.cnblogs.com/little-monkey/p/8118938.html
基于OpenCV的人脸 考勤系统相关推荐
- 【matlab选题推荐四】基于图像识别的人脸考勤系统
题目:基于图像识别的人脸考勤系统 背景 :课堂考勤系统的作用为督促学生参与到课堂教学中,让学生能够更好学习相关知识.传统的课堂教学采用课堂点名的方式,容易打乱教师的授课节奏.基于对人脸识别技术开发现状 ...
- 基于matlab的人脸考勤系统,gui界面,界面简洁,实现实时打卡考勤
基于matlab的人脸考勤系统,gui界面,界面简洁,实现实时打卡考勤,正确率高. 涉及图像处理,特征提取,数据降维,机器学习训练,支持把新照片新录入系统. ID:69400663195853731
- 基于face recognition OpenCV 的人脸考勤系统
人脸考勤系统客户端的主要功能有:人脸识别.网络通信.数据可视化,信息展示等:主要界面: 2.2.1 人脸识别模块 人脸识别模块是基于 face recognition 库实现的,face recogn ...
- 基于OpenCV的人脸识别系统的pyhon源代码
本论文主要阐述了基于OpenCV的人脸识别原型系统.基于生物特征识别的身份认证方法有指纹.掌纹.眼睛虹膜.人脸等,其中,由于人脸的稳定性和可见性,人脸识别的研究与应用成为热点,本文针对出租公寓安全管理 ...
- QT基于百度的人脸考勤系统
目录 一.百度智能云介绍 二.代码 1.camera类 2.widget类 3.register类 4.dialog类 三.效果演示 四.改进 获取完整代码请前往:GitHub - zhaohigh/ ...
- 基于opencv 的人脸签到系统
import cv2 import os import numpy as np from PIL import Image #pillow import pyttsx3 import sys impo ...
- 基于OpenCV的人脸识别考勤系统
考勤系统设计 学生上课考勤系统最初的方式是采用的人工纸质点名,目前仍旧有一部分学校依旧采用此种方法点名,这种方法也一直是被认为最有效的签到点名方式.但由于课程繁多加上学生人数众多, 代替点名现象普遍存 ...
- Python3:基于Opencv4.2和wxPython4可视化界面的人脸考勤系统
前言 主题:基于Opencv4.2的人脸考勤系统 功能模块 采集人脸:收集需要录入的学生信息,开启摄像头收集截取对应的人脸图片: 训练人脸数据模型:根据收集和整合好的人脸图片数据训练成人脸数据模型: ...
- 【优秀毕设】基于OpenCV的人脸识别打卡/签到/考勤管理系统(最简基本库开发、可基于树莓派)
[优秀毕设]基于OpenCV的人脸识别打卡/签到/考勤管理系统(最简基本库开发.可基于树莓派) 该系统利用Harr级联检测和LPBH进行人脸检测和训练.识别 利用Tkinter完成界面搭建 利用Fla ...
最新文章
- WEB登录H3C模拟器
- 登顶CLUE榜单,腾讯云小微与腾讯AI Lab联合团队提出基于知识的中文预训练模型...
- JSP笔记-发送邮件
- MySQL下备份和恢复简单介绍
- 关于JAVA的String类的一些方法
- mac下没有设置 SVN_EDITOR....错误解决方法
- 【LeetCode从零单排】No 114 Flatten Binary Tree to Linked List
- java垃圾回收之循环引用
- wxWidgets:wxStaticBoxSizer类用法
- [Lintcode]136. Palindrome Partitioning /[Leetcode]131. Palindrome Partitioning
- Luogu_2774 方格取数问题
- matplotlib使用GridSpec自定义子图位置 (非对称的子图)
- linux运维需要哪些网络知识,Linux运维学习笔记-网络技术知识体系总结
- 一、crontab 定时任务
- 暑假周进度总结报告2
- 洛谷P4458 /loj#2512.[BJOI2018]链上二次求和(线段树)
- java设计模式-可复用面向对象软件的基础(一)
- UserWarning: h5py is running against HDF5 1.10.5 when it was built against 1.10.4
- 计算机控制液压同步顶升系统,PLC多点控制液压同步顶升系统的运用
- 简单代码变出超个性化的QQ昵称
热门文章
- 自述从被坑70000到开工作室月入100000+:我做自动项目这一年辛酸史!
- 【神经网络】神经网络发展趋势及研究热点
- 大一c语言考试题信阳师范学院,zhaodapeng6
- 动作捕捉在动物神经与运动研究领域的应用
- ACM/ICPC 2018亚洲区预选赛北京赛站网络赛 D. 80 Days
- MMA8452加速传感器的应用(简)
- lol查询服务器角色信息,游戏账号角色查询
- 2022年艺术品和古董投资策略研究报告
- layout_gravity和gravity的区分和应用
- 步步为营 .NET 代码重构学习笔记 二、提炼方法(Extract Method)