摘要:课堂学习是学生获取知识、培养能力、提高素质的主要渠道,系统科学的课堂考勤是保证各项教学计划有效落实和顺利执行的重要条件。文章基于face_recognition库,使用Python编程语言设计并实现了一款基于人脸识别的课堂考勤管理系统。系统前端界面采用PyQt进行设计,后端系统数据采用MySQL数据库进行管理。系统通过调用人脸识别技术可自动对学生进行课堂考勤,还可根据需要生成出勤统计报表供教师参考。经反复测试,系统各项功能运行稳定且交互人性化,可有效提高课堂考勤的效率和准确率。
关键词:课堂考勤;face_recognition;Python;PyQt
中图分类号:TP391.41 文献标志码:A
0 引言
随着信息技术的不断发展,教育领域也逐渐迎来了数字化、智能化的深刻变革。课堂考勤作为课堂教学管理的重要环节,是教师对学生进行过程性学习评价的重要参考依据。传统的考勤方式主要通过教师课堂点名、系统签到码等方式实现,然而,这些方式不仅效率低下,并且容易出现学生代签、考勤数据不准确等问题[1]。因此,如何利用现代科技手段提升课堂考勤效率成了当前亟待解决的问题之一。随着计算机视觉技术的不断发展和日渐成熟,将最新人脸识别技术应用于课堂考勤管理系统中,不但可以有效应对传统考勤方式效率和准确率方面的不足,而且还可以为智慧教室的建设提供一定的技术支持。
1 人脸识别技术基础
人脸识别亦称面部识别,是一种基于人脸面部关键特征进行身份辨识的最新生物特征识别技术,鉴于其具有非侵扰、非接触、可扩展等方面的优势,目前已被广泛应用于签到考勤[2-3]、门禁管理[4]、刷脸支付[5]、安检安防[6]等领域。该技术的一般流程主要包括人脸检测与定位、人脸预处理(包括人脸对齐、尺寸变换、归一化等)、特征提取、特征匹配、识别结果输出等步骤,具体如图1所示。其中,人脸检测与定位是人脸识别的基础工作,特征提取往往基于传统特征提取方法或最新卷积神经网络模型进行实现[7];而特征匹配则是指将识别阶段提取到的面部特征与前期基于特征提取构建的人脸特征数据库中的面部特征进行相似度匹配,当相似度高于设定阈值时则匹配成功,否则匹配失败。
2 face_recognition库
face_recognition是一款基于深度学习技术开发的免费开源库[8],它在Labeled Faces in the Wild这一基准人脸库中的离线识别率高达99.38%。该库构建在Dlib(人脸关键点检测库)之上,为使用者提供了简单易用的接口以完成图像加载、人脸检测与定位、人脸关键特征点提取、面部特征提取、人脸特征匹配、人脸相似度计算等人脸识别相关任务,如表1所示。须要注意的是,face_encodings返回的面部特征是由图像中的人脸生成的面部特征向量(每张人脸均生成128维面部特征向量)组合而成的编码列表,同时这些面部特征是后续人脸匹配的重要依据。
3 课堂考勤管理系统设计与实现
该系统基于C/S架构,通过采用PyCharm开发工具和Python编程语言进行开发实现。其中,系统前端界面采用PyQt5框架搭配Qt Designer工具进行设计,系统后端数据库采用MySQL进行系统数据的管理与维护。
根据系统前期需求分析,课堂考勤管理系统主要包括管理员、学生、签到记录等实体,实体主要属性及实体间关系详情如图2所示。其中,系统管理员拥有该系统的最高权限,可以对其基本信息、学生用户和课堂签到记录等进行信息管理。
对学生进行考勤前,系统需要依托人脸信息录入功能和学生信息管理功能建立并完善学生信息及学生人脸特征库。其中,人脸录入功能支持上传图像和摄像头实时采集图像2种方式进行学生人脸头像的录入。在人脸图像录入过程中,系统通过调用face_locations函数对图像中的所有人脸区域进行定位,并自动调用人脸分割算法将最大人脸区域图像裁剪出来作为该学生的人脸头像,如图3所示。学生人脸对应的其他基本信息填写完毕后,在对学生信息保存过程中,系统通过调用face_encodings函数将得到的面部编码特征及该学生的其他信息一同存入系统数据库。
系统核心功能为基于人脸识别的系统自动考勤,如图4所示。鉴于face_recognition库接口支持单人脸和多人脸识别,该系统在自动考勤功能设计与实现时可支持单人脸考勤和多人脸同时考勤2种方式。系统自动考勤时,系统通过调用face_locations函数对摄像头实时采集到的人脸图像进行人脸检测和定位。当检测到人脸时,系统首先自动使用矩形框标定出人脸区域;接着调用face_encodings函数对人脸区域图像进行面部特征编码;然后调用compare_faces函数对提取出的人脸特征和已建立的人脸特征库进行相似度匹配以辨识出人脸图像的归属;最后将识别到人脸的详细信息在签到结果面板上进行展示,同时生成相应的签到记录进行存储。
为防止通过摄像头刷脸考勤失败,系统也支持管理员在签到记录管理模块中以人工方式进行手动签到。手动签到时,管理员可通过查询学号或姓名方式找到相应的待签到学生,并将该学生的签到状态设置为已签到。同时,系统为该学生自动生成一条签到记录。课程结束后,系统管理员可利用考勤统计功能对签到记录进行课程考勤统计分析,并将统计出来的结果以图表形式进行存储以便于后续任课教师、教务管理人员根据需要进行查看。
经对系统的反复测试,结果表明系统各项功能运行稳定,教室环境下基于人脸识别的课堂考勤准确率可达99%以上。另外,系统识别一张人脸图像平均用时约为0.1s,完全可满足自动考勤对该系统的实时性要求。
4 结语
为简化考勤流程,提高考勤效率和准确性,文章基于人脸识别这一生物特征身份认证技术,采用Python编程语言和PyQt库实现了一款稳定可靠的课堂考勤系统。该系统可以通过摄像头采集并结合人脸检测算法获取学生的面部图像,并通过人脸识别算法将其与数据库中的学生信息进行比对,进而实现了精准的学生自动考勤。除了用于课堂考勤外,系统还可扩展用于考试签到、活动打卡等其他实际场景应用中,这对于智慧教室建设和人工智能技术应用推广等方面具有较高的实践价值。
参考文献
[1]李新春,魏武,贾宝山,等.基于蓝牙和校园WLAN的课堂考勤系统设计[J].传感器与微系统,2022(5):87-90.
[2]方书雅,刘守印.基于学生人体检测的无感知课堂考勤方法[J].计算机应用,2020(9):2519-2524.
[3]SHUKLA A K,SHUKLA A,SINGH R.Automatic attendance system based on CNN-LSTM and face recognition[J].International Journal of Information Technology,2024(3):1293-1301.
[4]李萌昕.基于人脸识别的山东大学门禁系统建设与实现[J].深圳大学学报(理工版),2020(增刊1):92-94.
[5]ANDREJEVIC M,SELWYN N.Facial recognition technology in schools:critical questions and concerns[J].Learning, Media and Technology,2020(2):115-128.
[6]LIU T,YANG B,GENG Y,et al.Research on face recognition and privacy in China:based on social cognition and cultural psychology[J].Frontiers in Psychology,2021(12):809736.
[7]BUDIMAN A,YAPUTERA R A,ACHMAD S,et al.Student attendance with face recognition (LBPH or CNN):systematic literature review[J].Procedia Computer Science,2023,216:31-38.
[8]高艳,徐丽丽.基于face_recognition库的人脸识别课堂签到系统[J].现代计算机,2021(11):157-160.
Design and implementation of class attendance management system based on face recognition
Abstract: Classroom learning is the main channel for students to acquire knowledge, cultivate ability and improve quality, and systematic and scientific classroom attendance is an important condition to ensure the effective implementation and smooth execution of various teaching plans. Based on the face_recognition library, this paper designs and implements a class attendance management system based on face recognition using Python programming language. The front-end interface of the system is designed using PyQt, and the back-end data is managed using MySQL database. The system can automatically take classroom attendance for students by using face recognition technology, and can also generate attendance statistics for teachers according to their needs. After repeated tests, the system functions are stable and user-friendly, which can effectively improve the efficiency and accuracy of classroom attendance.
Key words: class attendance; face_recognition; Python; PyQt