基于人脸识别的高校课堂考勤系统

来源:河南中医药大学  作者:王忠义 王昂 王爱霞等  发表于:2019.12.31   960浏览

学生考勤,是高校教师对课堂和学生进行管理,了解和判定学生学习态度和学习情况,以及掌握学生个人健康及安全信息的重要手段。目前高校的考勤方式还是以传统的签到和点名答到为主,这种方式下不可避免地会出现替人答到或雇人代课现象,并且纸质版的签到数据不易于统计和保存。有些高校课堂已采用较先进的指纹签到方式进行考勤,但这种签到方式依旧存在不容忽视的弊端,教师并不能确保学生出勤的真实情况,很难掌握学生的真实去向。

目前,高校校园网设施已非常完善,而人脸识别技术准确率高达百分之九十以上,通过基于生物特征对比进行高校课堂考勤将使高校考勤更加高效、可靠。这对教师和管理人员而言,既能减轻学生和考勤管理压力又能及时掌握所带班级真实出勤情况。

基于高校考勤需求和技术发展支撑,河南中医药大学开发了一套基于人脸识别的高校课堂考勤系统。该系统已在河南中医药大学等学校部分班级使用,对提高学生考勤管理制度的执行效力,保障教学活动的质量与效率提供了高效且可靠的技术支撑,实现了相关数据的信息化存储与共享,为后续的大数据分析、数据挖掘等工作采集基础数据。

一、考勤系统的整体设计方案

1.技术路线

系统采用基于Python语言的Flask框架进行开发——Flask框架是比较流行的用于Python开发的Web框架,结合MySQL数据库存储并对数据进行管理,采用HTML+CSS语言设计展示页面。

2.设计方法

系统设计采用软件工程的思想,结合高校课堂签到需求,对业务逻辑和页面设计风格进行设计,对页面布局整体进行规划,使用软件进行Web界面的排版和设计,实现对系统数据结构设计,实现对数据流程和系统流程进行规划设计,根据需求设计相关模块及具体功能。

3.总体结构设计

系统结合结构化设计的思想,按照模块化的设计思路,将整个系统视为一个整体,然后将之分成几个小的子系统,将不同的子系统进行划分整理,使系统的代码使用和整体设计合理化。考勤系统的架构如图1所示。

1 考勤系统架构

4.系统子模块设计

根据高校课堂考勤管理的实际需求,系统分为前台教师考勤子系统和后台管理员管理子系统。系统结构模块设计图如图2所示。


2 系统的子模块设计图

教师管理模块是授课教师对当前上课的课程和所教班级进行考勤,可以查看班级信息、学生信息和课程信息,对班级考勤信息进行管理,统计出的考勤表格可以进行打印。

管理员是更高一级对系统进行管理的人员,可以对所有数据库中包含的信息进行管理操作,可以对人员和课程的基本系统进行管理,对所有考勤信息进行管理。

5.业务流程设计

前面设计了系统的主要功能模块,我们根据实际业务需求设计了系统功能流程图,如图3所示。

3 系统的功能流程图

因为人脸检测需要调用摄像头检测人脸是否存在,人脸检测的流程设计如图4所示。

4 人脸检测的流程图

6.系统E-R

我们绘制出的系统E-R图如图5所示,各个表之间存在一对多和多对多的关联关系。

5 系统的总体E-R

7.系统数据流程图设计

教师登录系统后对班级学生进行考勤。系统获取学生图像信息,查询到该学生信息返回考勤结果,并将结果存入数据库。教师系统的考勤数据流图如图6所示。


6 系统数据流图

二、人脸识别技术创新之处

通过调查研究、需求分析、功能设计与开发测试,我们设计开发出了基于人脸识别的高校学生课堂考勤系统。除了上文分享的系统整体设计方案,我们在人脸识别技术方面也做了探索和改进,具体创新之处有:

1.采用OpenCV3.0库平台下的人脸检测器。它可以检测出摄像头中的图像是否有人脸,基本的思路就是比较人脸图像的像素亮度直方图进行人脸的检测。

2.选定适合的公式对彩色图像进行灰度处理。例如,使用公式Y=0.3×R+0.59×G+0.11×B计算出彩色图像每个像素的有效亮度值,从而进行灰度处理。

3.采用主成分分析法进行人脸识别。主成分分析法(Principal Conponent Analysis,简称PCA),是一种对多个参数进行分类并提取少量主成分的问题解决方法。它可以将高维向量映射到低维向量,只留下少量的重要特征信息,将人脸信息提取为隐含人脸样本集合了内部数据和人脸结构关系的特征脸。

三、下一步计划

将人脸识别技术应用到考勤系统,通过识别人脸特征,提高了考勤准确性和高效性,塑造了良好的学习风气、提升了学生的学习积极性、维护了课堂教学秩序,对校园环境和校园文化的正向发展起到了深远影响,具有较强的可操作性和较高的可实用性。

目前该系统部分功能还有待进一步完善,例如:在对系统考勤的统计分析中,将数据通过图表的形势展现到页面中,方便教师管理与查看。同时系统后期将考虑:1.将系统移植入手机中,通过手机定位和手机摄像头进行人脸识别匹配;2.解决代码冗余问题,对系统设计进行简化,减少程序运行时所占内存资源,降低程序运行环境需求。(本项目获得河南省“2019年度教育信息化优秀成果(创新应用类)”一等奖。)