APP下载

一种基于人脸识别的课堂教学监控系统

2020-02-14王昌海申红雪张王卫孙玉胜王博

软件工程 2020年1期
关键词:人脸检测人脸识别

王昌海 申红雪 张王卫 孙玉胜 王博

摘  要:设计并开发了一款基于人脸识别的课堂教学监控系统,该系统通过识别学生上课的表情信息,分析课堂教学情况。首先提出一种基于图像递归切割和OpenCV的人脸检测方法,以提高人脸检测召回率;然后使用百度AI开放平台的在线接口识别人脸表情信息,并将信息插入数据库;最后根据学生表情信息分析低头率、活跃度等课堂情况。实际部署测试后分析了系统的运行效果及时间消耗,结果表明该系统可有效监控课堂教学情况。

关键词:教学监控;人脸检测;人脸识别;情绪识别

中图分类号:TP399     文献标识码:A

Abstract:A classroom teaching monitoring system is designed based on the face recognition technology.The facial emotions of students are recognized and the situation of teaching is analyzed further.First,a face detection method based on the image recursive cutting and OpenCV is proposed in order to improve the recall rate.Then,the facial emotions are recognized with the online face recognition interface of Baidu AI open platform,and the recognized results are inserted into the database.Finally,the attendance rate and activity of classroom are analyzed.The performance and time consumption of this system are evaluated after deploying,and the results show that the system can effectively monitor classroom teaching.

Keywords:teaching monitoring;face detection;face recognition;emotion recognition

1   引言(Introduction)

课堂教学作为当前中国教育培养学生的主要形式,对学生知识结构的形成以及能力的锻炼有着深远的影响。如何在课堂教学过程中监控学生的学习情况,并对授课方法进行针对性改进是教师教学过程中的重要议题[1]。传统的课堂教学监控方法包括现场记录[2]、视频监控[3]等。这些方法一般依赖于人工分析,需要消耗大量人力。目前,使用人工智能技术辅助课堂教学已有一些尝试,如课堂点名系统[4]、智能监控系统[5]等。但这些方法仍然面临人脸检测率较低[6]等问题。

本文设计并开发一款基于人脸识别的课堂教学质量监控系统。该系统使用教室中部署的通用摄像设备采集上课图像,利用人工智能技术分析学生的上课状态,并给出学生学习情况的综合评估结果。本系统的创新点如下:其一,提出一种基于图像递归分割的人脸检测方法,提高了课堂人脸检测召回率;其二,提出一种基于人脸情绪识别的课堂教学质量评估方法。

2   系统架构(Architecture)

本系统使用教室中部署的视频监控设备采集学生上课视频,利用人脸检测及识别接口识别视频中的人脸及情绪,并通过统计识别结果评估课堂教学质量。系统主要分为视频采集、人脸检测、人脸识别、统计反馈四个子系统[7],子系统的划分如图1所示。

如图1所示,视频采集子系统包括视频的采集存储和图像预处理两部分。视频采集存储模块将采集到的视频存储于硬盘中。图像预处理的目的是将采集到的图像做灰度化、校正等操作,以更好的检测图像中的人脸。人脸检测子系统包括图像分割和人脸检测两大功能,其目的是对图像递归切割,并检测每幅子图像中的人脸。人脸检测结果传递给人脸识别子系统。该部分的检测精度直接影响系统的运行效果。人脸识别子系统使用百度AI开放平台的接口实现人脸的识别以及人脸情绪的识别。该模块可以得出当前教室中学生是否在听课,以及脸部的表情情况。统计反馈子系统包括整体教学质量评估和反馈两部分,用于统计不同学生听课情况、不同时间段学生听课情况等,并将结果反馈给授课教师。

3   系统关键技术(Key technology)

3.1   图像分割

人脸检测子系统的目的是在课堂图像中检测出所有学生的人脸。此模块设计的难点在于如何保证检测的召回率,即不能漏掉任何一个学生。当前人脸检测的方法(如特征级聯方法[8]、深度学习方法[9]以及公开人脸检测库OpenCV[10]、百度AI[11]等)在人脸数较多的情况下皆无法保证召回率,因此这些人脸检测方法并不能直接应用于课堂环境。本节提出一种基于图像递归切割的人脸检测方法。图像递归切割的示意图如图2所示。

如图2所示,图像沿长边遵循半重叠的原则进行切割,每幅图像切割为三幅子图像。沿长边切割保证了切割后的图像不会长宽比例失调,半重叠保证了切割后的子图像能够尽可能的有完整的人脸。图像切割过程实际上构造了一棵满三叉树,树中每个结点代表一幅切割后的图像。树的深度代表切割的次数,该值可根据图像中的人脸数动态调整。对于人脸数较多的图像,可将N设置为较大值,以保证原图像中较小的人脸会以较大的比例出现在子图像中,以提高检测的召回率。

3.2   人脸检测

图像分割完成后,对每幅图像执行人脸检测。基于图像递归切割的人脸检测算法如算法1所示。

算法1 基于圖像递归切割的人脸检测算法

(1) list face_set=NULL;

(2) int deep=0;

(3) void face_detection(image){

(4) face_list=opencv_detection(image); //使用opencv检测人脸

(5) deep_repeat(face_list,face_set); //人脸集去重

(6) if(deep

(7) deep++;

(8) for(i=0; i<3;i++){

(9) child=split(image,i); //图像分割

(10) face_detection(child); //检测子图像人脸

(11) }

(12) }

(13) }

算法首先使用OpenCV库中的CascadeClassifier分类器检测当前结点图像中的人脸,然后将检测到的人脸添加到人脸集中。添加过程中根据人脸在图像中的位置去掉重复的人脸。最后对图像进行分割,并分别对子图像执行本算法,直至达到设定的图像分割深度。人脸检测完成后,得到包含所有人脸的人脸集用于人脸识别及情绪识别。

3.3   人脸识别

本系统使用百度AI开放平台的在线人脸识别接口进行人脸的识别,该接口与当前其他公开的人脸识别接口相比有明显高的识别率,且提供了情绪识别等功能。在人脸识别之前,需要将所有学生的人脸上传至百度AI开放平台,以建立学生人脸库。识别过程中,将人脸做Base64编码后发送至指定URL,平台会返回该人脸最相似的学生id,以及人脸的情绪、旋转角度等信息。系统将返回的人脸信息插入数据库,以分析课堂学生学习质量。课堂人脸信息数据表设计如表1所示。

数据库中的每条记录保存一张人脸信息,包括人脸所属学生姓名、人脸在三维空间中的角度、表情、图像采集时间、识别的可信度等信息。

3.4   课堂教学分析

该模块通过检索一节课期间所有学生的人脸信息,评估学生学习情况,并通过网页端和手机APP端两种形式展示统计结果。统计的信息包括一节课中所有学生检测率变化趋势、特定学生检测率、所有学生人脸角度分布及变化趋势、特定学生人脸角度分布、人脸情绪分布及变化趋势、人脸缺失报警等。

所有学生检测率变化趋势主要用于分析一节课中所有学生被检测出来的比例,其统计结果可以为判断学生是否认真听讲、学生学习积极性提供参考。特定学生检测率指某一特定学生在整节课中被检测出来的比例,其结果与某特定学生的上课积极性有关。学生人脸角度分布及变化趋势可以分析人脸在检测出来的情况下,是否存在低头情况。人脸情绪分布及变化趋势用于分析学生的表情情况,以判断课堂是否活跃。人脸缺失报警用于提醒授课教师某学生长时间未被检测到,教师根据此提醒可查看该生是否睡觉或早退。

4   系统性能分析(Analysis of system performance)

4.1   系统运行效果

目前系统已经开发完成,并在郑州轻工业大学软件学院的智慧教室中部署测试。该教室可容纳50名学生上课,每次上课人数30-40人不等。视频采集所用的设备参数如表2所示。

为了测试本系统人脸检测方法的召回率,在课堂监控过程中随机抓拍100张图像用于测试。该100幅图像分别抓拍于四个上课班级的二十次课,每次上课学生座位分布皆不相同。去掉学生上课低头等人脸不可检测的特殊情况后,人脸总数为3143。将这100幅图像执行本系统的人脸检测算法,去掉重复人脸后统计人脸召回率,图像切割深度与人脸召回率的关系如图3所示。

从图3中可以看出,随着图像切割深度的变大,人脸的召回率明显升高。当图像的切割深度为5时,人脸的召回率可以达到99.8%,此时完全可满足课堂教学监控的需要。

4.2   系统性能分析

随着图像切割次数的增大,需要做人脸检测的图像数量也呈指数级增长。当图像切割深度为5时,要检测的图像数量为364张。在这些图像中,根结点图像尺寸最大,使用OpenCV做人脸检测时最大耗时约80ms。随着切割深度的增加,图像尺寸呈指数级下降,人脸检测的耗时也急剧减少。第五次分割后的叶子结点图像的检测时间降低到4ms左右。一幅图像的人脸检测时间总耗时小于4s。

人脸检测完后,调用百度AI的在线人脸识别接口进行人脸识别。该接口对于企业级应用的QPS限制为10,即每秒允许最多调用十次。本系统采用多线程的方式调用该接口,在带宽良好的情况下,可稳定的实现每秒9—10次的调用。对于学生数约40的课堂,考虑到20%人脸的冗余,人脸识别总耗时小于6s。由于人脸识别的大部分时间为等待网络返回结果,所以将人脸检测与识别并发运行后,系统分析一幅图像的总时长约6—7秒。该耗时完全满足课堂教学监控系统的耗时要求。

5   结论(Conclusion)

本文设计并开发了一个课堂教学监控系统。为了解决多人场景下人脸检测召回率低的问题,提出基于图像递归切割和OpenCV的人脸检测方法,通过识别学生表情信息分析课堂学生学习情况。最后给出了人脸检测召回率的测试结果,并分析了人脸检测与识别的时间消耗情况。系统在部署测试中

发现了一些值得继续改进的地方。首先,课堂上学生的分布往往不均匀,如何感知学生分布,并针对学生数量多的区域做较深的递归切割是值得研究的问题。其次,部署环境的座位分布、光线等因素对系统效果有一定影响,目前该方面还没有相关测试结果。

参考文献(References)

[1] 蔡红梅,许晓東.高校课堂教学质量评价指标体系的构建[J].高等工程教育研究,2014,3(1):177-180.

[2] 杜祥培.试论教学质量监控的主要环节及其标准[J].中国大学教学,2005,11(2):47-48.

[3] Samet Refik,Tanriverdi Muhammed.Face Recognition-Based Mobile Automatic Classroom Attendance Management System[C].International Conference on Cyberworlds,2017:253-256.

[4] 荆洲,权伟,唐杰,等.基于人脸识别的智能课堂点名系统[J].软件工程,2017,20(5):43-46.

[5] 戴振泽,施艳,郑少伟,等.智能课堂监控与分析系统[J].软件工程,2018,21 (6):36-39.

[6] Zhang Quanbin,Huang Xiang,Su Juan.People counting in classroom based on video surveillance[C].International Symposium on Image Processing and Pattern Recognition,2014:9301-9308.

[7] 徐金凤,张路遥.高职院校教学质量监控信息化平台的设计——以无锡职业技术学院为例[J].无锡职业技术学院学报,2017,16(3):41-44.

[8] Lienhart Rainer,Maydt Jochen.An extended set of haar-like features for rapid object detection[C].Proceedings of International Conference on Image Processing.IEEE,2002:900-903.

[9] Ohn-Bar Eshed,Trivedi Mohan.To Boost or not to Boost? on the Limits of Boosted Trees for Object Detection[C].The 23rd International Conference on Pattern Recognition (ICPR).IEEE,2016:3350-3355.

[10] Laganière Robert.OpenCV Computer Vision Application Programming Cookbook Second Edition[M].Packt Publishing,2014.

[11] 田霖,陆国生,林睿,等.基于RFID和百度AI的无人值守电力仓库管理系统[J].工业控制计算机,2019,32(1):120-121.

作者简介:

王昌海(1987-),男,博士,讲师.研究领域:机器学习,人脸识别.

申红雪(1970-),女,讲师,高级实验师.研究领域:人工智能,计算机网络.

张王卫(1983-),男,博士,讲师.研究领域:机器学习,人脸识别.

孙玉胜(1963-),男,硕士,教授.研究领域:计算机信息系统.

王    博(1986-),男,博士,讲师.研究领域:云计算.

猜你喜欢

人脸检测人脸识别
人脸识别 等
揭开人脸识别的神秘面纱
基于(2D)2PCA-LBP 的人脸识别方法的研究
人脸识别在高校安全防范中的应用
JNI技术在基于OpenCV的人脸与微笑检测中的应用
基于人脸特征定位的SNS网站应用组件研究与设计
基于Android平台的人脸识别系统设计与实现
基于Matlab的人脸检测实验设计
基于类独立核稀疏表示的鲁棒人脸识别
基于JSeg和显著性检测的服装图像分割方法