Python基于人脸识别的考勤系统(附源码)


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/ 搜索contrib2.找到对应你系统python版本的opencv+contrib下载3.我安装的是:opencv_python-4.1.2+contrib-cp37-cp37m-win_amd64.whl4.打开anaconda命令行 pip install opencv_python-4.1.2+contrib-cp37-cp37m-win_amd64.whl
cmake官网下载.msi安装包 下载即可,安装注意导入系统环境变量
dilib直接anaconda命令行中 pip install dlib(时间比较长)
freetypepip install freetype-py
pymysqlpip install pymysql
pyqt5pip 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!😊

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。本文链接:

https://blog.csdn.net/weixin_39653948/article/details/89291751


(完)

PS:欢迎在留言区留下你的观点,一起讨论提高。如果今天的文章让你有新的启发,欢迎转发分享给更多人。


Python读者交流群已成立


公众号运营至今,离不开小伙伴们的支持。为了给小伙伴们提供一个互相交流的平台,特地开通了官方交流群。扫描下方二维码备注 进群 或者关注公众号 Python人工智能编程 后获取进群通道。


添加好友,备注【进群


—————END—————


推荐阅读:

7个Python实战项目代码,让你分分钟晋级大神!

Google 内部的 Python 代码风格指南

教你如何用Python查看微信撤回的信息

用Python写了一个青年大学习提醒系统

Python数据可视化,完整版实操指南 !


最近面试BAT,整理一份Python资料《Python学习手册》,覆盖了Python知识点、人工智能、深度学习、机器学习等方面。

获取方式:关注公众号并回复 Python 领取,更多内容陆续奉上。

觉得不错,点个“在看”然后转发出去Python基于人脸识别的考勤系统(附源码)

原创文章,作者:栈长,如若转载,请注明出处:https://www.cxyquan.com/12852.html

发表评论

登录后才能评论

联系我们

400-800-8888

在线咨询:点击这里给我发消息

邮件:admin@example.com

工作时间:周一至周五,9:30-18:30,节假日休息