基于人脸识别的课堂自动考勤系统

2019-11-05 08:10张正旺
科技视界 2019年27期
关键词:人脸识别深度学习

张正旺

【摘 要】传统考勤系统耗时耗力,且易出代考勤现象。基于人脸识别的课堂自动考勤系统借助深度学习技术和有摄像头的计算机可实现自动考勤,依据人脸自动生成标记好的考勤表,既省时又省力,并可有效防范代课现象。

【关键词】人脸识别;深度学习;自动考勤系统

中图分类号: TP183 文献标识码: A 文章编号: 2095-2457(2019)27-0017-002

DOI:10.19694/j.cnki.issn2095-2457.2019.27.007

0 引言

出勤率是实现课堂教学预期效果的基础和前提,学生末出席,教学效果自然无从谈起。对大多数教师而言,考勤是保证学生出勤率的一种必要手段。传统的考勤方法是教师借用上课时间一一点名,并对出席或缺勤的在考勤表上作出标记,这种方法既耗时耗力,又效果不佳。一些学生为了应付老师点名,甚至会花钱请人代课,部分高校内还出现了专门的有偿代课簇。由于学生人数众多,教师一般无法准确识别代课学生,对于代课这种现象,课堂点名方式有点束手无策。随着深度学习等计算机相关技术的发展,人脸识别的准确率大大提高,其实现成本也大为降低,借助人脸识别进行课堂考勤,可有效防止代课现象。为了减少课堂点名时间,提高考勤效果,作者开发设计了一个基于人脸识别的课堂自动考勤系统。

1 系统框架

如图1所示,基于人脸识别的课堂自动考勤系统的由三大模块构成:照片采集模块、人脸识别模块与考勤记录模块。照片采集模块负责采集学生的人脸信息;人脸识别模块将摄像头当前捕捉到的人像与数据库中的人脸进行对比,识别出学生姓名;考勤记录模块实现读取与自动记录考勤表(EXCEL表格)。

2 系统实现

2.1 实现基础

系统所采用的编程语言为Python。Python是一种强大的、面向对象的高级程序设计语言,由于它的简洁和稳健性,被广泛应用于软件开发、网页开发、数据科学等方面,在IEEE于2017年与2018年发布的编程语言排行榜上,连续两年高居榜首[1]。如图1所示,照片采集模块采用Python接口的OpenCV计算机视觉库;人脸识别模块需要用OpenCV、dlib、face recognition等Python库,dlib库[2]提供了非常优秀的人脸检测与人脸识别算法,face recognition是一个基于dlib的深度学习人脸识别库,其号称为全球最简单的Pyhton人脸识别API,使用该库可以轻易且准确地识别出各种人脸;考勤记录模块利用Openyxl庫实现。所需硬件为带内置或外置摄像头的计算机。

2.2 实现过程

从学校教务系统下载EXCEL格式的考勤表,以班级名称命名,保存在以班级名称命名的目录下。自动考勤系统首先利用Openyxl库的load_workbook函数载入考勤表,读取班级学生名单,班级名称与当前考勤次数由教师手工输入。首次上课时,要求学生面对摄像头进行人脸图像采集,使用Opencv库中的VideoCapture函数实时捕捉摄像头,将捕获的图像帧以学生名称命名并保存到当前班级目录,保存格式为jpg或png。采集好学生人脸信息后,系统即可正式开始自动考勤。上课前要求学生经过摄像头,系统读取到人像信息后,调用face recognition库中的face_locations函数识别当前图像中的人脸,并使用该库中的face_encodings函数对识别出的人脸编码,然后调用compare_faces函数将识别出人脸编码与采集到的人脸编码进行对比,判断当前人脸是否为班级中的某位学生,如是班上学生,在视频上提示学生名称,利用Openyxl库标记考勤表并保存,如与采集的人脸信息都对不上,则提示“您非本班学生或尚未采集照片,如需采集照片请按键盘上的X”。

3 系统应用

实例所采用操作系统为Ubuntu(Python为跨操作系统的编程语言,因此本系统在其他的操作系统下亦可无缝应用),考勤系统的源代码文件为autoattendence.py。假设被考勤班级名称为1811,则下载的考勤表应命名为1811.xlsx。首先建立一个名为autoattendence的目录 ,将1811.xlsx和autoattendence.py置于该目录下。在终端进入这个目录并输入命令;python autoattendence.py运行自动考勤系统。考勤过程如图2所示,最终得到的考勤表如图3所示,系统自动对出现在摄像头前的学生在考勤表中用大写的“O”作出标识。

4 结论

基于人脸识别的课堂自动考勤系统在设置好一些考勤信息后,无需人工干预,学生只需上课前经过摄像头,即可自动完成考勤工作并生成标记好的考勤表。该系统与传统的考勤系统相比,省时省力,并可有效防止代课现象,实现成本也不高,部署容易,人脸识别准确率高。由于此系统未进行“活体”检测(判断人像信息是一个真正的人还仅仅是一张照片或视频),手持照片亦可欺骗该系统,即某人拿上班级上某学生的照片,也可替该学生代考勤,但考勤时任课教师通常在教室,此现象一般难以出现。后续系统可增加“活体”检测模块,彻底避免代考勤现象。

【参考文献】

[1]https://spectrum.ieee.org/static/interactive-the-top-programming-languages-2018.

[2]Davis E. King. Dlib-ml:A Machine Learning Toolkit. Journal of Machine Learning Research,2009,10,1755-1758.

猜你喜欢
人脸识别深度学习
人脸识别 等
揭开人脸识别的神秘面纱
基于(2D)2PCA-LBP 的人脸识别方法的研究
人脸识别在高校安全防范中的应用
有体验的学习才是有意义的学习
MOOC与翻转课堂融合的深度学习场域建构
大数据技术在反恐怖主义中的应用展望
基于类独立核稀疏表示的鲁棒人脸识别
基于K-L变换和平均近邻法的人脸识别