基于Python的人脸识别课堂考勤系统(毕设)

  • 阿里云国际版折扣https://www.yundadi.com

  • 阿里云国际,腾讯云国际,低至75折。AWS 93折 免费开户实名账号 代冲值 优惠多多 微信号:monov8 飞机:@monov6

    一个菜鸟搞毕业设计的过程分享可能对迷茫的你起到一点点作用

    序言

    在着手开发项目之前我们一定要对系统进行一个初步的规划比如系统可以实现什么功能是否需要开发GUI页面大部分导师都会让你搞一个仅仅少的导师不用你搞如果需要可以对GUI页面就行一个简单的规划设计。当我们已经确定好了系统的大致框架开始配置开发环境下载所需要的包这里本人在做的时候花费大量的时间。

    最后在这里说一下仅对小白\菜鸟多查多看多参考着去做。开源精神YYDS

    系统设计——初级阶段

    系统名称睿课人脸识别课堂考勤系统v2.0

    系统Logo设计系统的Logo可以寻找一下外援在这里本人找了热爱画画的小姐姐

     说明在这里本人设计了两个logo联名的形式。左一白泽右一睿课主要logo。

    该系统本人设计了五大功能模块不含登录和注册功能模块分别是课堂考勤功能模块、信息采集功能模块、数据分析功能模块、使用指南功能模块简易、意见反馈功能模块简易、融媒体功能模块、数据与账户仓储功能模块、随机抽检功能模块。

     系统设计——中级阶段

    一、搭配开发环境

    完成了系统的规划之后我们就可以着手开发了。首先搭配我们的开发环境。其次下载所需要的包这里我不进行阐述安装与配置教程遇到打开CSDN都可以解决。最后当我们调试开发环境的时候已经下载这个包了但是系统还是报错我们可以尝试重启一下电脑试一下亲测有效。

     二、绘制GUI界面

    本人绘制GUI页面所使用的工具是 QtDesigner。

    1.欢迎界面设计欢迎界面一般都是设计自动关闭跳到登录\注册功能模块但是这里我采用了手动。设计与运行效果图如下所示。

     2.登录功能模块图一登录页面为设计效果图图二为登录页面运行结果图。

    功能说明对于登录界面主要承担的任务校验使用者所输入的账户与密钥是否合规、是否能与数据库中信息匹配成功如果校验成功将跳转至主界面。同时该功能模块还具有跳转至注册账户界面的功能以及用户操作提示信息功能。当出现账户或者密钥为空与不对的情况下将弹出对话框加以提示。

      3.注册功能模块这里只展示设计效果图了不在展示运行效果图了以下均是。

    功能说明注册模块分成了两个GUI界面这里我们把它称为注册_1界面与注册_2界面。注册_界面主要功能是检索用户设置的账户名称是否合规以及设置账户密钥的功能。在数据库中对设置的账户进行检索是否与其有重复的如果出现重复了的情况系统将会给出提示信息对话框当然注册成功系统也将会给出提示信息对话框。

    除了上述的功能之外当单击“返回”按钮时将返回至登录界面单击“下一页”按钮时将把使用者设置的账户信息与密码信息写入到数据库中并跳转至注册_2界面。

    注册_2界面的功能主要是采集注册者的基本个人信息当单击“注册”按钮时校验注册者重复录入的账号与密钥。当重复录入的账号与密钥信息相匹配时将会把个人信息写入到数据库中并会弹出提示信息对话框。如果出现错误将拒绝把个人信息写入到数据中并且也会弹出相应错误信息的提示信息对话框给使用者加以参考。

    另外当使用者单击“注册”按钮时除了上述的功能外还具有跳转至登录界面的功能。当单击“退出”按钮时将会中止注册并且退出睿课系统。

     4.主界面功能模块 主界面模块的功能主要是实现考勤功能模块、信息采集功能模块、数据分析模块、随机抽检功能模块、账号仓储功能模块等共计十大功能模块之间的跳转功能以及一键退出系统的功能。

     5.课堂考勤功能模块对于考勤功能模块主要设计实现人脸识别、重置考勤、简略统计出勤信息的功能。当使用者单击“开始考勤”命令按钮时系统调用设备上的摄像头实时获取人脸信息对比人脸结束考勤时系统将自动统计出勤信息反馈给使用者。当使用者单击“重置考勤”命令按钮之后系统将会给出提示信息是否将所有已经标记为出勤的人员更改为未出勤如果用户选择了“NO”将会取消本次操作反之执行。除此之外该界面还设置了实时显示系统时间与日期。

     6.信息采集功能模块对于信息采集功能模块主要设计实现采集人脸信息、收集个人基本信息、训练人脸图像数据模型的功能。当使用者单击“人脸采集”命令按钮时系统调用设备上的摄像头抓取人脸信息并将以保存。当点击“确认”命令按钮系统将会检查用户录入的个人信息是否符合规定假若不符合标准将会拒绝用户的操作并给出错误信息加以参考反之系统将会把个人的基本信息写入数据仓库之中并给出提示信息告知使用者操作成功。当单击“取消”命令按钮时系统将视为用户放弃了个人信息采集流程将会中止数据库的写入曹操并且清除用户录入的信息。 

    另外当单击“Home”命令按钮时将会回到主界面。

    7.数据分析功能模块数据分析模块承担了分析综合出勤数据情况、分析个人出勤情况、列出缺勤的学生名单的这些主要功能。当用户使用了分析个人出勤情况功能时系统不但反馈给用户该生的出勤次数出勤率而且系统还会计算出出勤评分当评分小于7.0时系统将会显示标签“重点关注”来提示用户。

    另外当用户从主界面跳转至数据分析界面时综合数据分析看板区域将会实现数据的可视化分析。在使用者单击“数据分析”命令按钮后系统将会统计出勤人数缺课人数显示缺勤名单。除此之外系统将会根据出勤率评判本节课的出勤情况。当出勤率大于等于90%时系统将会评定为优秀大于等于80%评定为良好大于等于70%评定为一般小于70%系统将会弹出提示信息提醒当堂授课教师并且系统评定为危险。

     8.随机抽检功能模块本系统设置随机抽检的功能模块是为了防着出现“考勤不出勤”的现象简单来说是学生只来参加考勤环节等待考勤结束便离开教室而参加剩下的教学活动。为了避免此类情况的发生所以本系统设置了该功能模块。当使用者单击“随机抽检”命令按钮之时系统将会从数据库查询考勤状态被标记为“出勤”的学生进行筛选从而在这部分人里面进行随机选择。假若被抽检到的该生恰好是“考勤不出勤”使用者就可以通过单击“改为缺勤”命令按钮将其的考勤状态变更为缺勤。如若抽检到的该生出勤了使用者却误操作将该生设置成立未出勤也可通过单击“撤销操作”命令按钮。该功能模块不仅有上述的功能之外还可以显示被抽检学生的姓名、学号、班级、性别、出勤次数、出勤率的信息。

     9.数据仓储功能模块数据仓储模块的功能主要包括对学生个人信息方面的变更例如学院、专业、姓名、班级、E-mail等个人信息但是性别与学号字段是不允许用户进行变更的为只读信息。在进行变更学生个人信息之前操作者必须完成信息校验只用通过了信息校验才有权操作编辑个人信息否则系统将不允许操作者的任何请求。

    当单击“信息变更”命令按钮时系统将会检验使用者录入的信息是否合规一个区域内的信息项是关联的不允许有空项所以系统也会对是否含有空项。假若含有则会驳回操作者的请求并给出相应的错误信息进行参考。

     10.账户仓储功能模块

    对于账户仓储功能模块的设计意图与数据仓储功能模块是一样的只不过账户仓储面向教职工服务而数据仓储面向学生服务。该模块所具有的功能如下所示

    账户保护该功能主要是提升账户等级开启账户保护功能后所有人都不能对该账户进行任何操作包括这个账户的所有者该账户只能所用于登录。

    注销账户当使用者触发该功能信号系统将会执行对应的槽函数。将其在数据库中的所有信息删除这个账号将不乏存在不能在用于登录本系统了。

    变更账户 该功能主要是支持使用者修改账户名。

    变更密钥该功能主要是支持使用者修改账户密钥。

    信息变更主要包括对教职工个人信息方面的修改例如教职工ID、姓名、学院的个人信息修改但是性别与学校字段是不允许用户进行变更的为只读信息。

     11.其他模块对于融媒体、使用指南以及意见反馈功能模块的设计其实没有什么实质性的意义在设计之初是为了主界面布局合理些等作用。所以这里就不在阐述功能说明只放上一些图。

    使用指南↑

     意见反馈↑

      系统设计——尾声阶段重要阶段

    一、将设计的GUI界面转换成.py脚本文件

    这里我们将涉及到PyUIC与PyRCC。

    使用Qt Designer所设计的GUI将会生成格式为.ui、.qrc的文件Python是不能够识别的所以我们要使用PyUIC和PyRCC这两个工具分别将.ui、.qrc格式的文件转换称为Python所能够执行的.py格式的文件。

    详细的配置方法移步搜索学习一下这里简单叙述一下。

     首先单击“+”按钮在弹出的编辑设置框中的“名称”一栏中填写参数“PyUIC”“程序”一栏中填写python.exe可执行程序的文件路径。其次在“实参”一栏中填写“-m PyQt5.uic.pyuic $FileName$ -o $FileNameWithoutExtension$.py”命令。最后在“工作目录”一栏中填写“$FileDir$”均输入完毕之后单击“确定”按钮完成配置。PyUIC配置过程如图下所示。

     PyRCC工具以类似 PyUIC的方式来配置同样在“外部工具”设置中单击“+”按钮在设置框中“名称”一栏填写参数“PyRcc”在弹出的编辑设置框中“名称”一栏中填写“PyRCC”“程序”一栏中填写python.exe程序的文件路径“实参”一栏中填写“$FileName$ -o $FileNameWithoutExtension$_rc.py”命令。最后在“工作目录”一栏中填写“$FileDir$”均输入完毕之后单击“确定”按钮完成配置。PyUIC配置过程如图下所示。

     二、编写代码

    按照模块依次完成。遇到困难利用好网络开源精神YYDS

    我将自己组合的粗略代码非常之低级整合后发布在标题为基于Python的人脸识别课堂系统毕设——附录

    三、系统测试

    在毕业设计中系统测试是一个非常关键的环节。它的重要意义是对整个系统的开发过程进行最终的审查以保证系统的质量和可靠性。虽然对整个系统的开发过程都进行了严格的技术审核但我们还是期望能够在系统测试的过程中及早的发现和纠正这些问题。在正式启用之前若不能及时发现并修正错误将会给整个考勤系统带来很大的影响。

     

  • 阿里云国际版折扣https://www.yundadi.com

  • 阿里云国际,腾讯云国际,低至75折。AWS 93折 免费开户实名账号 代冲值 优惠多多 微信号:monov8 飞机:@monov6
    标签: python