1. 项目简介 ‍

本项目使用Python3.6编写,Qt Designer(QT5)设计主界面,PyQt5库编写控件的功能,使用开源 DeepFace人脸识别算法进行人脸识别,使用眨眼检测来实现活体识别,使用OpenCV3实现实时人脸识别。 ‍ 同时,将班级学生信息,各班级学生人数、考勤信息录入到MySQL数据库中,方便集中统一化管理。 ‍ 因为本项目仅由我一个人开发,能力精力有限,实现了预期的绝大多数功能,但是活体检测功能还存在bug,主要表现是界面卡死,如果小伙伴对本项目中有不懂的地方或者发现问题提出解决方案,欢迎私聊我或者在此博客评论亦或在github提交。 项目大概持续了两三个月的时间,在开发过程中,遇到过许多难题,参考了很多教程,才有了这个项目。 相信大家看到这里,一定是在比赛中或者是作业中遇到类似问题了,我也有过类似的经历,很清楚找不到解决方案,自己盲目摸索的苦恼,这也是我选择开源的原因,个人能力有限,但是希望本项目能给需要的小伙伴提供帮助,✨完整代码在文章结尾 。 如果对你有帮助的话,点个赞吧!

2. 系统前端设计

使用 Qt Designer 设计前端界面。

2.1 主界面
在这里插入图片描述
2.2 信息采集界面
在这里插入图片描述

3. 数据库存取信息

3.1 数据库可视化工具 Navicat
使用该软件是为了方便管理维护信息,如果有数据库基础,当然也可以选择其它方式。其主界面如下:
在这里插入图片描述

在这里插入图片描述
在这里插入图片描述
3.2 创建数据库流程
在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述
3.3 PyMySQL
项目中只使用了简单的写入、查询等几个常用命令,即使没有数据库基础的话,上手这个库也比较容易。看一下文档,基本就会了。

4. 系统功能介绍(正在更新 ···)

4.1 信息采集
4.2 人脸识别
4.3 活体检测(存在bug )

目前的bug是,活体检测开启关闭之后,关闭人脸考勤,再关闭相机的时候会卡死。

4.4 查询考勤信息
4.5 查询学生信息
4.6 请假登记

5. 使用教程

5.1 系统环境配置

opencv+contrib
安装步骤:
1.https://www.lfd.uci.edu/~gohlke/pythonlibs/ 搜索contrib
2.找到对应你系统python版本的opencv+contrib下载
3.我安装的是:opencv_python-4.1.2+contrib-cp37-cp37m-win_amd64.whl
4.打开anaconda命令行 pip install opencv_python-4.1.2+contrib-cp37-cp37m-win_amd64.whl

cmake
官网下载.msi安装包 下载即可,安装注意导入系统环境变量

dilib
直接anaconda命令行中 pip install dlib(时间比较长)

freetype
pip install freetype-py

pymysql
pip install pymysql

pyqt5
pip install pyqt5

5.2 需要修改源码
文件目录树:
在这里插入图片描述

  1. 安装 msqlservice 然后修改 exacute.py文件中的数据库连接代码。比如 db =pymysql.connect(“localhost”, “root”, “mysql105”,“facerecognition”)。这首先需要在 navicat中创建数据库。
  2. 如果不是通过本系统的信息采集功能采集的人脸照片,请将采集的人脸照片放到 face_dataset/XX
    路径下,其中XX是学号(唯一索引),如果是通过系统采集的,则会自动存放在该路径下,不需要修改。

5.3 使用步骤

  1. navicat创建数据库,打开数据库录入学生信息和班级信息;
  2. 修改源码,连接到创建的数据库
  3. 采集人脸照片,点击界面中的信息采集,在子窗口操作即可。
  4. 训练人脸识别模型,点击界面中的更新人脸库
  5. 开始考勤:打开相机 --> 开始考勤
  6. Have fun!

6.Github获取源码

https://github.com/datamonday/Face-Recognition-Class-Attendance-System

7.待完善功能

7.1 系统优化
解决bug,提升系统运行效率与稳定性。

7.2 人脸照片存储到数据库中
目前还是存储在本地,不安全。

7.3 生成考勤日志
自动统计每个班级的考勤信息,并生成日志。

7.4 从教务系统导入学生个人课表,保证判定的稳定性
目前仅仅通过设定的考勤时间统计,不够人性化,应该根据学生的各任课表来统计。

7.5 同时多人识别
提升识别效率,比如很多同学同时进教室,如果一人一人识别,则会造成拥堵。

7.6 上传图片识别
如果系统出现故障,老师可以用手机拍摄照片存档,然后上传系统进行人脸识别考勤。

7.7 开发更稳定的人脸识别
防止用照片或视频骗过系统。

7.8 开发更稳定的活体检测
防止视频等骗过系统。

关于Python技术储备

学好 Python 不论是就业还是做副业赚钱都不错,但要学会 Python 还是要有一个学习规划。最后大家分享一份全套的 Python 学习资料,给那些想学习 Python 的小伙伴们一点帮助!

朋友们如果需要这份完整的资料可以微信扫描下方CSDN官方认证二维码免费领取【保证100%免费】

一、Python学习大纲

Python所有方向的技术点做的整理,形成各个领域的知识点汇总,它的用处就在于,你可以按照上面的知识点去找对应的学习资源,保证自己学得较为全面。
在这里插入图片描述

二、Python必备开发工具

在这里插入图片描述

三、入门学习视频

四、实战案例

光学理论是没用的,要学会跟着一起敲,要动手实操,才能将自己的所学运用到实际当中去,这时候可以搞点实战案例来学习。在这里插入图片描述

五、python副业兼职与全职路线

在这里插入图片描述

在这里插入图片描述

👉[[CSDN大礼包:《python兼职资源&全套学习资料》免费分享]]安全链接,放心点击

Logo

瓜分20万奖金 获得内推名额 丰厚实物奖励 易参与易上手

更多推荐