# Class Attendance System based on Face Recognition
基于人脸识别的课堂考勤系统
---
> Contributor : datamonday
>
> Github Repo : https://github.com/datamonday/Face-Recognition-Class-Attendance-System
>
> Initial Blog : [基于人脸识别的考勤系统:Python3 + Qt5 + OpenCV3 + OpenFace + MySQL](https://blog.csdn.net/weixin_39653948/article/details/89291751?spm=1001.2014.3001.5502)
>
> Project Post : 2019.04.14
>
> Last Update : 2021.05.26
---
# Update: 2021.05.28
- 完善本地人脸和数据库ID核验功能;
- 完善随机答题点名功能;
![random_check](./images/random_check.jpg)
---
# Update: 2021.05.24-27
又到毕业季,终于有时间集中进行处理,为了让该项目更容易上手且更鲁棒,主要做了如下更新:
- 对项目进行了重构,使得风格更gayhuber;(!正在进行中)
- 将所有开放的接口汇总到一个模块 `GlobalVar.py` ,其他文件和目录无需修改,方便修改二次开发;
- 重新设计了主界面和信息采集界面(有些功能正在开发);
- 主界面设定考勤时间,方便调试;
- 添加了自动采集人脸图像功能;
- 考勤涉及大量的时间序列操作,因此使用了Pandas和Datetime模块进行处理;
- 增加了环境配置文件requirements.txt和environment.yaml,对小白更友好;
- 添加了详细的环境配置和使用教程,更容易配置;
- 增加了许多提示信息,方便定位错误。
- 添加了大量的异常处理语句,减少终止运行的情况,方便捕获异常和调试;
- 集中解决了之前存在的卡顿和闪退问题;
再看两年多前以前写的代码,发现很多都写死了,并且实现思路不甚清晰,导致修复bug的同时又会造成新的bug,所以重写了代码,并将需要修改的参数集中,方便移植。
新界面
![rf_check_sys_v2.0](./images/rf_check_sys_v2.0.jpg)
![rf_check_sys_info_collect_v2.0](./images/rf_check_sys_info_collect_v2.0.jpg)
![students_table](D:\Github\Face-Recognition-Class-Attendance-System\images\students_table.jpg)
暂未完成的一部分功能说明:
![Unfinished part of the function](./images/Unfinished part of the function.jpg)
---
# 1. 项目简介及声明
🎠**本项目使用Python3.6开发(2021-05-23更新到Python3.8)。主要包括四部分:(1)前端界面设计:使用Qt Designer(QT5)设计主界面,PyQt5编写界面控件的槽函数。(2)人脸识别算法:使用Google在2015年提出的人脸识别算法FaceNet进行人脸识别,其中人脸检测部分使用OpenCV提供的ResNet-SSD预训练模型,使用OpenFace开源的基于Inception的FaceNet预训练模型。(3)活体检测部分,使用dlib库的眨眼检测来实现活体识别。(4)信息管理:使用PyMySQL实现学生信息,教室及课表信息,考勤信息的集中统一化管理。**
本项目针对的是教师或者说是个人使用者这种小范围签到的情况,其实现机制也比较简单。近期也在探索实现全校人脸识别考勤信息统一集中管理,但具体实现比较复杂,相当于将考勤系统和人脸识别融合。一方面考勤系统本身逻辑比较复杂,考虑到的情况比较多,短期内难以实现;另一方面,人脸数据的采集和人脸识别算法的识别上限和准确率决定了能否落地,综合考虑时间因素和学习成本,故暂未更进一步。读者感兴趣可自行探索,欢迎提出建议和解决方案。
**🐱👓本项目开始于2018年年末,大概持续了两三个月的时间,2019年4月发布博客并开源,2021年5月重构了代码库。因为本项目仅由一个人开发,能力精力有限,实现了预期的一部分功能,没有经过完整周全的测试,部分功能存在bug(例如活体检测可能出现界面卡死。),但在空余时间还在积极修复,争取实现初衷。如果有不懂的地方或者更好的建议,欢迎在评论区,github,交流群提出。**
**在开发过程中,遇到过许多难题,参考了很多教程,才有了这个项目。相信大家看到这里,一定是在科创比赛或作业中遇到了类似的问题,我也有过类似的经历,很清楚找不到解决方案,自己盲目摸索的苦恼,这也是我选择开源的原因,个人能力有限,但是希望本项目能给需要的小伙伴提供帮助。**
<font color=red>**声明:本人不提供有偿写代码,代做毕业设计,代写毕业论文服务,有违初衷,有这样想法的不用私信和添加好友了!有这时间还不如干自己喜欢干的事!本人也并未授权任何人代表本人提供有偿服务,谨防上当受骗!欢迎提出问题与建议,但不欢迎投机倒把。代码和教程已经是掰开了揉碎了,算是保姆级教程了,多花点时间看代码,很多问题都可以自行解决,别老想着让别人把东西喂到嘴边。**</font>
最后,善用Google,善用Stack Overflow。
---
# 2. 环境配置🎡
## 2.1 Anaconda 创建虚拟环境
打开官方地址并下载对应版本:
https://www.anaconda.com/products/individual#Downloads
如果追求轻量化,使用miniconda也可以,只不过没有navigator。
安装完成后,打开 Anaconda Prompt,并按以下步骤输入:
1. 创建虚拟环境 `fr` ,设置Python版本为 3.8.0
```shell
conda create -n fr python==3.8
```
2. 激活虚拟环境
```shell
conda activate fr
```
---
## 2.2 安装所需要的包
在新开的命令行,激活虚拟环境后,按如下步骤操作。
方式一:requirements.txt 安装
该文件是我在本地新建的测试通过的环境中所使用的的包,可以直接安装,避免了一个一个包安装的繁琐步骤。打开命令行并切换到该文件所在的根目录,输入如下命令:
```shell
pip install -r requirements.txt
```
注:本地环境生成requirements.txt的命令:`pip freeze > requirements.txt`
---
方式二:environment.yaml 安装
这是我在本地的conda虚拟环境,实现功能类似 requirements.txt,如果安装了anaconda的话,可以直接安装。需要注意的是该方式是直接创建一个虚拟环境,如果想在已有的环境中进行配置,则只需要按方式一即可。
```shell
conda env create -f environment.yaml
```
注:导出本地的conda环境命令:`conda env export > d:/environment.yaml`
---
## 2.3 安装 dlib
- 官网:http://dlib.net/
- github:https://github.com/davisking/dlib
注意:需要先安装Visual Studio C++的Community版本或者专业版和企业版都可以,否则报错!只安装 installer 无效,仍会报错!如果之前没有安装VS内核,只安装了 installer,打开控制面板,右击修改安装,重启之后生效。
确认已经安装了VS,打开命令行,激活虚拟环境,直接命令安装即可:
```shell
pip install dlib
```
安装比较耗时,大概几分钟,成功安装截图:
![install dlib](./images/install dlib.jpg)
---
# 3. 系统前端设计🤖
使用 Qt Designer 设计前端界面。
## 3.1 主界面
![在这里插入图片描述](./images/main_window.png)
---
## 3.2 信息采集界面
![在这里插入图片描述](./images/info_window.png)
---
# 4. 系统功能介绍🛵
## 4.1 信息采集功能
通过信息采集界面实现,针对学生的人脸图片建库。
可以手动添加,可以自动采集人脸图像。注意:从自动转为手动方式时,画面会不显示,但不影响采集!
## 4.2 人脸识别简介
深度学习人脸识别流程可以总结如下(图自论文:I. Masi, Y. Wu, T. Hassner and P. Natarajan, "**Deep Face Recognition: A Survey**," 2018 31st SIBGRAPI Conference on Graphics, Patterns and Images (SIBGRAPI), 2018, pp. 471-478, doi: 10.1109/SIBGRAPI.2018.00067.):
![image-20210526000357643](./images/deep_face
没有合适的资源?快使用搜索试试~ 我知道了~
基于人脸识别的课堂考勤系统+源代码+文档说明(毕业设计)
共104个文件
png:26个
jpg:16个
pyc:15个
1.该资源内容由用户上传,如若侵权请联系客服进行举报
2.虚拟产品一经售出概不退款(资源遇到问题,请及时私信上传者)
2.虚拟产品一经售出概不退款(资源遇到问题,请及时私信上传者)
版权申诉
0 下载量 159 浏览量
2024-02-27
13:35:14
上传
评论
收藏 127.65MB ZIP 举报
温馨提示
项目使用Python3.8开发。主要包括四部分: (1)前端界面设计:使用Qt Designer(QT5)设计主界面,PyQt5编写界面控件的槽函数。 (2)人脸识别算法:使用Google在2015年提出的人脸识别算法FaceNet进行人脸识别,其中人脸检测部分使用OpenCV提供的ResNet-SSD预训练模型,使用OpenFace开源的基于Inception的FaceNet预训练模型。 (3)活体检测部分,使用dlib库的眨眼检测来实现活体识别。 (4)信息管理:使用PyMySQL实现学生信息,教室及课表信息,考勤信息的集中统一化管理。 不懂运行,下载完可以私聊问,可远程教学 该资源内项目源码是个人的毕设,代码都测试ok,都是运行成功后才上传资源,答辩评审平均分达到96分,放心下载使用!
资源推荐
资源详情
资源评论
收起资源包目录
基于人脸识别的课堂考勤系统+源代码+文档说明(毕业设计) (104个子文件)
res10_300x300_ssd_iter_140000.caffemodel 10.17MB
shape_predictor_68_face_landmarks.dat 95.08MB
.gitignore 47B
Face-Recognition-Class-Attendance-System.iml 433B
Read Excels and Datetime Development Logs I.ipynb 128KB
Unfinished part of the function.jpg 327KB
messi.jpg 226KB
students_table.jpg 180KB
rf_check_sys_v2.0.jpg 92KB
auxiliary_info.jpg 82KB
classroom_course_schedule.jpg 70KB
install dlib.jpg 68KB
info_icon.jpg 62KB
rf_check_sys_info_collect_v2.0.jpg 55KB
qrcode.jpg 40KB
college_class_info.jpg 29KB
attendance_logs.jpg 26KB
random_check.jpg 23KB
classroom_info.jpg 16KB
neymar.jpg 15KB
fcb_logo.jpg 14KB
README.md 21KB
LICENSE.md 1KB
recognizer.pickle 11KB
embeddings.pickle 7KB
le.pickle 268B
resnet-ssd-deploy2.png 3.16MB
resnet-ssd-deploy.png 2.44MB
brain.png 663KB
face_alignment.png 285KB
openface_nn4.small2.v1.png 227KB
deep_face_recognition_process.png 213KB
code_tree.png 201KB
build_mysql_in_navicat.png 175KB
build_mysql_in_navicat4.png 131KB
build_mysql_in_navicat5.png 124KB
al_qq_documents.png 122KB
build_mysql_in_navicat3.png 107KB
mysql_table1.png 106KB
mysql_table3.png 106KB
mysql_table2.png 101KB
face_detection.png 100KB
build_mysql_in_navicat2.png 57KB
fr_result_iu.png 39KB
facenet_architecture.png 35KB
main_window.png 30KB
qq.png 18KB
info_window.png 14KB
bkg2.png 10KB
bkg1.png 10KB
warn_icon.png 6KB
info.png 2KB
deploy.prototxt 27KB
execute.py 38KB
mainwindow.py 15KB
InfoDialog.py 14KB
MainUI.py 12KB
infoUI.py 8KB
AttendanceCheck.py 5KB
GeneratorModel.py 5KB
BlinksDetectionThread.py 5KB
RandomCheck.py 5KB
DetectBlinks.py 4KB
PutChineseText.py 4KB
RandomCheckUI.py 3KB
GlobalVar.py 2KB
PlotBKG.py 559B
model_architecture_visualization.py 255B
InfoDialog.cpython-38.pyc 8KB
MainWindow.cpython-38.pyc 7KB
MainUI.cpython-38.pyc 6KB
RandomCheck.cpython-38.pyc 4KB
InfoUI.cpython-38.pyc 4KB
main.cpython-38.pyc 4KB
main.cpython-36.pyc 4KB
MainUI.cpython-38.pyc 4KB
AttendanceCheck.cpython-38.pyc 4KB
GeneratorModel.cpython-38.pyc 3KB
PutChineseText.cpython-38.pyc 3KB
BlinksDetectionThread.cpython-38.pyc 3KB
InfoUI.cpython-38.pyc 3KB
RandomCheckUI.cpython-38.pyc 2KB
GlobalVar.cpython-38.pyc 1KB
facerecognition.sql 4KB
openface_nn4.small2.v1.t7 30.05MB
microsoft.ttf 20.66MB
requirements.txt 5KB
mainwindow.ui 14KB
MainUI.ui 12KB
infoUI.ui 8KB
RandomCheckUI.ui 3KB
Classroom_Course_Schedule.xlsx 58KB
Auxiliary_Info.xlsx 12KB
College_Class_Info.xlsx 9KB
Attendance_Logs.xlsx 9KB
Classroom_Info.xlsx 9KB
haarcascade_frontalface_default.xml 1.2MB
Project_Default.xml 659B
modules.xml 332B
aws.xml 294B
共 104 条
- 1
- 2
资源评论
程序员无锋
- 粉丝: 3683
- 资源: 2320
下载权益
C知道特权
VIP文章
课程特权
开通VIP
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
- 秋招信息获取与处理基础教程
- 程序员面试笔试面经技巧基础教程
- Python实例-21个自动办公源码-数据处理技术+Excel+自动化脚本+资源管理
- 全球前8GDP数据图(python动态柱状图)
- 汽车检测7-YOLO(v5至v9)、COCO、CreateML、Darknet、Paligemma、TFRecord、VOC数据集合集.rar
- 检测高压线电线-YOLO(v5至v9)、COCO、Darknet、VOC数据集合集.rar
- 检测行路中的人脸-YOLO(v5至v9)、COCO、CreateML、Darknet、Paligemma、VOC数据集合集.rar
- Image_17083039753012.jpg
- 检测生锈铁片生锈部分-YOLO(v5至v9)、COCO、CreateML、Darknet、Paligemma、VOC数据集合集.rar
- 检测桌面物体-YOLO(v5至v9)、COCO、CreateML、Darknet、Paligemma、TFRecord、VOC数据集合集.rar
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功