【Python】基于人脸识别的智能考勤系统(Pyqt5+MySQL+Opencv) [PC端部分-已附源码]

本项目是基于Python3.6的智能考勤系统,利用Pyqt5进行前端设计,配合MySQL存储数据,OpenCV进行人脸识别。系统包括管理员权限验证、登录注册、班级管理、课表管理和统计分析等功能。已实现考勤签到、请假等操作,数据库采用MySQL 8.0.23,通过Navicat进行管理。后续将考虑与树莓派结合,提升人脸识别性能并实现更多功能。
摘要由CSDN通过智能技术生成

【Python】基于人脸识别的考勤系统 [PC端部分]


一、项目简介

本项目编程语言Python3.6,编程工具pycharm,其他工具QT Designer、Navicat,表单信息保存在本地MySQL数据库中,人脸识别算法主要用的OpenCV。

目前,已实现以下功能:

--------------------------------------------------------------------
一、【管理系统主界面】
1、管理系统主界面实现相对布局。

(一)输入部分
1、考勤班级:限制输入8位考勤班级编号。
2、考勤课程:限制输入中文/数字/大写字母。
3、考勤地点:
      2.1 教学楼:限制四选一:“仁智/同和/浦江/厚学”。
      2.2 教室号:限制输入大写字母/数字/“-”,最大长度6位。
4、禁止请假:
      3.1 单选框,默认不选中。
      3.2 选中且确定后,"个人请假"按钮不开放。
5、"确定"按钮:
      5.1 确认班级/课程/地点的输入合法性。不合法,则清空输入框内容。
      5.1 确认该班级当天是否有该课程的教学计划。不存在,则弹出提示框。
      5.2 检测“禁止请假”复选框选中状态。
      5.2 刷新Lcd/“已签到人员”表格/“迟到/请假人员”表格。
      5.3 锁定输入框和复选框,解锁前禁止编辑。
      5.4 开放“考勤签到”“个人请假”功能。
6、“解锁”按钮:
      6.1 “确认”前,“解锁”按钮无法点击。
      6.2 “确认”后,“解锁”按钮开放。
      6.3 点击事件:--->跳转至“管理员权限验证页面”。

(二)显示部分
1、表格控件:“已签到人员”和“迟到/请假人员”。
     1.1 已签到人员:2位学号-中文姓名-签到时间。
     1.2 迟到/请假人员:状态-2位学号-姓名-签到时间。
2、Lcd控件:"应到/已到/请假"人数。

(三)按钮部分
1、“考勤签到”:
       1.1 Qlabel显示摄像头视频。
       1.2 人脸检测--->框出人脸,打印身份--->每15帧人脸检测图像保存一次--->三次检测结果一致--->二次验证,用户本人确认--->通过后刷新数据库表单/界面表格/LCD控件--->关闭窗口。
       1.3 数据库:录入信息--->执行"签到状态判别"函数:判别当天该课程所有的签到时间对应的签到状态---(签到状态:未验证-“0”,成功-“1”,迟到-“2”,请假-“3”)
2、“个人请假”:
       1.1 Qlabel显示摄像头视频。
       1.2 人脸检测--->框出人脸,打印身份--->每15帧人脸检测图像保存一次--->三次检测结果一致--->二次验证,用户本人确认--->通过后刷新数据库表单/界面表格/LCD控件--->关闭窗口。
       1.3 数据库:录入信息--->执行"签到状态判别"函数:判别当天该课程所有的签到时间对应的签到状态---(签到状态:未验证-“0”,成功-“1”,迟到-“2”请假-“3”)
3、“登录/注册”--->跳转至“登录/注册”页面。
4、“退出程序”--->关闭整个系统页面。

(四)【管理员权限验证页面】【一级子页面】【QDialog类】
1、页面采用绝对布局。
2、账号、密码输入框:输入无限制。
3、登录:
     3.1 验证通过,解锁成功,关闭本窗口,返回主界面。
     3.2 验证失败,关闭本窗口,返回主界面。
4、退出:关闭本窗口,返回主界面。


--------------------------------------------------------------------
二、【登录注册界面】---->(登录页面注册页面)
1、登录注册页面均采用绝对布局,禁止用户放缩界面大小。
2、登录界面初次加载时,加载上次登录时的选框状态和用户信息。
3、登录注册页面输入框均设置提示信息,优化用户体验。

(一)登录界面
1、用户名:限制输入数字和英文。
2、密码:限制输入长度6-10位,首字母大写,密码组成字母数字。
3、记住用户名:
     3.1 可单独勾选。
     3.2 勾选时,下次加载登录页面时自动加载上次登录用户名。
     3.3 本地.pkl文件保存上次登录“用户名”。
     3.4 “登录”按钮被点击时,保存选项框选中状态。
4、记住密码:
      4.1 勾选时,“记住用户名”也被标记勾选。
      4.2 勾选时,下次加载登录页面时自动加载上次登录的用户名和密码。
      4.3 本地.pkl文件保存上次登录的“用户名和密码”。
      4.4“登录”按钮被点击时,保存选项框选中状态。
5、自动登录:
      4.1“登录”按钮被点击时,保存选项框选中状态。
      4.2  弹出登录页面时,自动加载信息。 
6、“注册”按钮--->跳转至注册界面。
7、登录按钮:
     7.1 验证管理员身份,跳转至管理员界面。
     7.2 验证用户身份,跳转至用户界面。
           7.2.1 检索前8位班级编号
                   A. 未检索到该“班级编号”表单,检索班级管理表单。
	      a. 班级管理表单中存在该班级词条,则新建该“班级编号”的表单,提示前往注册。
	      b. 班级管理表单中不存在,提示联系管理员。
           7.2.2 存在该班级编号的表单,验证用户设置的密码。

(二)注册界面
1、用户ID:输入限制为数字。
2、用户密码:
     2.1 输入限制为6到10位数字字母,首字母大写。
     2.2 首次输入明文显示,焦点转移后掩码显示。
3、重复密码:
     3.1 首次输入明文显示,焦点转移后掩码显示。
     3.2 焦点转移后验证两次输入密码的合法性,不合法则清空密码输入框内内容。
           3.2.1 密码长度6到10位。
           3.2.2 两次密码的一致性。
4、姓名:限制输入中文。
5、英文名:限制输入英文,用于人脸识别打印出身份判定结果。
6、性别:“男/女”二选一选项框。
7、以上表单均填入信息后,开放“注册”按钮。
8、注册功能:
     8.1 检索“用户ID”前8位班级编号的表单。
  
  • 10
    点赞
  • 75
    收藏
    觉得还不错? 一键收藏
  • 4
    评论
### 回答1: 学生宿舍管理系统是基于PythonPyQt5MySQL开发的一个项目,旨在帮助学校高效管理学生宿舍的入住、退宿、维修等信息。下面是该项目的详细说明文档: 1. 系统功能 - 学生宿舍的入住管理:可以添加、删除、修改学生的宿舍信息,包括姓名、学号、宿舍楼号、宿舍号等内容。 - 学生宿舍的维修管理:可以记录宿舍的维修情况,包括宿舍号、维修日期、维修原因等信息,并能够查看历史维修记录。 - 学生宿舍的退宿管理:可以退宿学生,并更新宿舍的入住状态。 - 学生宿舍的查询功能:可以通过学号、宿舍楼号、宿舍号等信息,查询学生宿舍的相关信息。 2. 系统架构 - 前端界面使用PyQt5库实现,包括各个功能模块的界面设计。 - 后端数据存储使用MySQL数据库,存储学生宿舍的相关信息。 - Python作为开发语言,通过PyQt5库提供的方法与MySQL数据库进行交互。 3. 系统运行环境 - 操作系统:推荐使用Windows系统,也可以在Linux或Mac OS上运行。 - Python版本:推荐Python3.x版本。 - PyQt5安装:使用pip命令安装PyQt5库,pip install pyqt5。 - MySQL安装:安装MySQL数据库,并创建对应的数据库和表。 4. 运行方式 - 下载源码:从GitHub或其他源码托管平台下载学生宿舍管理系统源码。 - 配置数据库:在源码中修改连接数据库的相关信息,包括MySQL的地址、用户名、密码等。 - 运行程序:通过Python命令运行主程序文件,即可启动系统界面。 - 页面操作:根据界面提供的按钮和输入框进行相应的添加、修改、删除、查询等操作。 5. 注意事项 - 由于本项目是基于PythonPyQt5开发的,需要对Python和GUI界面开发有一定的了解。 - 在使用该系统之前,需要创建对应的数据库和表,并将相关信息配置到源码中。 - 可以根据实际需要进行功能的扩展和修改,例如增加宿舍楼管理、学生信息管理等模块。 这个学生宿舍管理系统源码提供了一个简单易用的GUI界面,方便学校管理学生宿舍的各项信息,并且可以快速查询和统计宿舍相关数据,帮助学校实现宿舍管理的自动化和规范化。 ### 回答2: 学生宿舍管理系统是基于PythonPyQt5MySQL实现的一款图形用户界面(GUI)应用程序。该系统旨在帮助学校管理学生宿舍的入住、退房和维护等事务。 系统的数据库设计如下: 1. 学生表(Student):包含学生的基本信息,如学号、姓名、性别、年龄等。 2. 宿舍楼表(DormitoryBuilding):记录宿舍楼的信息,如楼号、楼层数、可容纳人数等。 3. 宿舍房间表(DormitoryRoom):每个宿舍楼内包括多个宿舍房间,该表记录了宿舍房间的编号、所在楼号、可容纳人数等。 4. 入住记录表(CheckInRecord):记录学生的入住情况,包括入住日期、房间号、学生信息等。 系统的功能模块如下: 1. 学生管理:可以对学生的基本信息进行增加、删除、修改和查询操作。 2. 宿舍楼管理:可以对宿舍楼的信息进行增加、删除、修改和查询操作。 3. 宿舍房间管理:可以对宿舍房间的信息进行增加、删除、修改和查询操作。 4. 入住管理:可以对学生的入住情况进行登记、查询和退房操作。 5. 统计功能:可以统计宿舍楼的入住情况和宿舍房间的入住率。 系统的GUI界面采用PyQt5库进行开发,具有用户友好的操作界面,方便用户进行操作和管理。 总结起来,该学生宿舍管理系统使用Python编程语言PyQt5图形界面库和MySQL数据库,实现了学生、宿舍楼、宿舍房间和入住记录的管理功能,方便学校对学生宿舍的管理和维护。
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值