王国珲,张 璇,郑 浩
(西安工业大学 光电工程学院,西安 710021)
课堂是学校教育教学工作的主阵地,教学过程中学生的课堂表现对于任课教师把握学生的学习状态至关重要,同时也是教学质量评价的重要依据[1-2]。大多数高校在进行教学质量评价时,通常采用传统的问卷调查等课后调查方式[3],致使任课教师在教学过程中无法实时获得学生课堂状态的反馈。部分高校对学生上课过程进行视频采集,教师通过课后观察上课视频进行教学效果评估,这不仅耗费极大的精力和时间,而且无法兼顾到每一个学生[4]。近年来,随着科学技术的进步和计算机技术的迅速发展,人工智能技术已经走进课堂,成为教师有力的助手。研究人员开始致力于使用深度学习的方法检测课堂状况,分析学生课堂学习状态,有助于任课教师精准、实时地掌握学生的学习情况,及时改进和优化教学方式,调整教学策略,从而提升教学质量,并促进学生的学习效率。
现有关于学生课堂表现的识别和分析研究主要分为两类:行为识别和表情识别。针对学生课堂行为识别研究,廖鹏等[5]利用VGG 预训练网络模型迁移学习,提取学生课堂异常行为特征,实现玩手机、睡觉等行为的识别和分析;蒋沁沂等[6]通过训练残差网络识别到学生上课状态的6 种行为;徐家臻等[4]通过Boosting 算法和卷积神经网络算法提取了学生的骨架信息,从而识别到5 种课堂行为;何秀玲等[7]利用卷积神经网络(Convolutional Neural Network,CNN)CNN-10 提取人体骨架信息实现了7 种学生课堂行为识别。进行学生课堂行为识别时,骨架信息识别虽可以排除学生体态、着装和教室背景等无关信息,但是增加了识别过程的复杂性。事实上,足够深度的神经网络能够从复杂的场景中直接识别出学生的课堂行为。
针对学生课堂表情识别研究,侯凤芝等[8]构建了基于情感计算的适应性网络学习系统模型,并对情感缺失问题进行了描述。随着人工智能技术的发展,对于表情识别的研究更为深入,贾鹂宇等[9]利用机器学习SVM(Supporting Vector Machin,SVM)算法构建了人脸68个关键点,实现了学生课堂中高兴、愤怒、平常和困惑4种表情的识别;马晓玲等[10]通过建立双模态情感识别模型对学习者进行了全面的情感分析。
针对学生课堂状况分析的研究,贾鹏宇等[9]运用YOLO[11]神经网络对上课学生人数进行了统计,接着通过K-means聚类分析了学生的位置分布情况,最后利用SVM 算法对学生表情识别进而分析了学生上课的活跃度。本文提出仅通过YOLOX[12]深度学习网络即可实现对学生从整体到个人的考勤评估,统计学生出勤人数并对缺勤名单进行标注,并完成学生课堂状态的表情和行为识别分析,实现对课堂学习状态从个体到整体的分析。
用于人工智能和深度学习的神经网络模型为多层次神经网络,神经网络的每一层将上一层输出进行非线性映射,通过多层非线性映射的堆叠,神经网络可以在深层网络中计算出抽象的特征用于目标识别和分析。典型的神经网络包括输入层、卷积层、池化层及全连接层。由于学生课堂状态的复杂性,需要足够深度的神经网络来进行识别分析,该网络能够在复杂的场景下识别学生的面部表情,同时也能识别学生的肢体行为。本文在前人工作的基础上,仅利用YOLOX 深度学习网络,实现学生缺勤名单的统计并完成学生课堂表情和行为的同步识别。
1.学生课堂状态分析流程
基于YOLOX 深度学习网络的学生考勤及课堂表情和行为识别分析的流程如图1 所示。对学生进行考勤分析时,深度学习网络提取的人脸特征与人脸识别系统比对,统计学生出勤人数,从而可以进行班级学风评价,并对缺勤名单标注,完成学生课堂考勤的评估。对学生表情和行为识别分析时,首先,同时采集学生课堂表情和行为数据,具体包含2 种学生课堂表情和6种课堂行为的图像与标签;其次,通过Imgaug 软件对学生课堂表情和行为数据进行数据增强,满足复杂场景的训练需求;最后,将数据增强后的学生课堂状态图像与标签对应输入到YOLOX 深度学习网络中进行训练和测试。
图1 基于YOLOX 深度学习网络的学生考勤及课堂表情和行为识别分析流程
2.YOLOX 深度学习网络结构
用于学生课堂状态识别分析的YOLOX 深度学习网络结构如图2 所示,包括3 个部分:主体网络、Neck连接部分和预测部分(YOLO Head)。主体网络由连续卷积、池化等一系列残差网络结构组成,部分卷积层的激活函数为SiLU 函数[13]。输入的图片在主体网络进行特征提取,提取到的特征集合为特征层。在主体网络将得到3 个特征层,3 个输出尺度分别为:76×76×256、38×38×512 和19×19×1 024。Neck 连接部分采用了特征金字塔结构,在主体网络获得的3 个特征层在Neck部分进行特征融合,以进一步提取特征。YOLO Head是YOLOX 的分类器和回归器,主要作用是判断特征点是否有物体与其对应。在主体网络的最后一个特征层进行3 次联合卷积后,分别利用4 个不同尺度的最大池化进行处理,池化核大小为13×13、9×9、5×5 和1×1。最大池化处理可极大地增加感受野,分离出学生课堂状态图像中最显著的上下文和高级抽象特征。鉴于YOLOX 深度学习网络足够复杂并经实验验证,其能够同时识别到学生的课堂学习状态,包括面部表情和肢体行为。
图2 YOLOX 深度学习网络结构图
在预测过程中,输入图像被划分S×S 个网格,每个网络由B 个bounding box 来检测物体,从而一张图像将生成S×S×B 网格。如果物体落在某个网格中,含有这个网格的bounding box 将用来预测该物体。此外,置信阈值的设置可以减少bounding box 的冗余。如果bounding box 的置信度高于此阈值,该bounding box 将保留;否则该bounding box 将被删除。置信度分数可由公式(1)获得。用于学生课堂状态识别分析的深度学习网络损失函数如公式(2)所示。
本文中,损失函数被分为3 部分:bounding box 回归损失lossReg、置信度损失lossObj和类别损失lossCls。训练过程中损失函数振荡下降直至最小值,即损失函数连续多次不下降或下降幅度小于阈值时,认为学生课堂状态识别分析的深度学习网络已训练好,训练过程结束。
学生课堂学习状态的数据集来源于课堂教学视频,将教学视频分帧为图像序列,选取其中的3 000 幅图像作为数据集,并利用LabelImg 软件进行标注。标注分为以下2 个部分:行为标注和表情标注。学生的行为和表情共同反映了课堂的学习状态,有助于任课教师及时改进和优化教学方式,从而提升教学质量和学习效率。
将序列图像的分辨率调整为608×608,并按照VOC2007 的格式进行标注。学生行为标注时,按以下6 种类型进行标注:举手、交头接耳、睡觉、抬头、低头学习和低头玩手机;学生表情标注是建立在学生行为的基础上,仅标注抬头时的表情,包括微笑和平常,标注图像如图3 所示。LabelImg 标注文件为xml 格式,每幅图像与其标注文件一一对应输入深度学习网络,同时将学生课堂状态数据集按8∶1∶1 的比例随机拆分为训练集、验证集和测试集。拆分完数据集后,利用Imgaug 软件进行数据增强,分别利用不同角度旋转、局部模糊、光强变化和镜像等图像处理方法,最终得到所有的训练图像,共计24 000 幅。
图3 数据集标注
本文的实验环境为Ubuntu 18.04,CPU 为Intel Core i9-9900X CPU(3.50 GHz),CPU 为NVIDA GeForce GTX 2080Ti(11 G RAM);在Pytorch 1.7 框架下对神经网络进行训练和测试,Python 版本为3.7,编辑器Pycharm版本为3.2.0。
(1)将课堂学习状态数据集随机分成训练集、验证集和测试集,神经网络获取所有标注类别的Ground-Truth。
(2)利用Adam 进行YOLOX 深度学习网络训练,以VOC 数据集的权重作为初始权重输入,epoch 设为100。训练分为2 个阶段,分别为冻结阶段和解冻阶段,其epoch 各为50。冻结阶段的batchsize 设为8,解冻阶段的batchsize 设为4。学习率初始值设为0.001,随着epoch 的变化而改变,此外可依据训练结果的好坏确定学习率的初始值。
(3)用训练好的深度学习网络对数据集验证及测试,根据验证结果得到mAP(mean Average Precision),可以评估神经网络的学习性能和对学生课堂学习状态的监测性能。
为避免侵犯学生隐私,所有学生的姓名皆以序号替代。对多个班级如A、B、C 班进行考勤时,将YOLOX 深度学习网络与学校的人脸识别系统相结合,统计多个班级学生出勤人数并给出缺勤名单,同时可针对某一班级分析多次课堂的学生出勤情况,结果分别见表1 和表2,实现对学生从整体到个人的考勤评估。表1 为某一课堂的A、B、C 3 个班级的学生课堂出勤情况统计表,表2为C 班6 次课堂的学生出勤统计分析情况。
表1 不同班级学生出勤情况统计
表2 C 班多次课堂学生出勤统计分析
从表1 中可知,B 班的出勤率为86.1%,高于A 班和C 班的出勤率,可以得出B 班的学风更为浓郁。对多次课堂学生出勤名单进行对比,可以发现哪些学生经常缺勤、学习态度不够端正,有助于任课教师进一步了解学生个人的学习情况。由表2 的多次缺勤学生名单中可以发现,C 班的31 号学生缺勤次数最多、学习态度可能存在问题,进一步结合缺勤次数较多的同宿舍30 号学生,应关注所在宿舍的整体学风,需要任课教师或辅导员及时帮助学生端正学习态度。
对学生课堂学习状态进行训练时,50 epochs 之后,网络主体部分开始训练,YOLOX 深度学习网络的loss值急速下降并收敛于2.44,此时训练得到的权重达到最好效果。根据数据集的划分比例,其中2 400 个数据样本用于深度学习网络对学生课堂状态的测试。本文以mAP为测试指标,对神经网络训练的效果进行评定,结果见表3,其中mAP 值越高,表示网络的训练效果越好。
表3 各种类别AP 和mAP
表3 表明神经网络的训练精度已经很高,由于学生微笑的样本相比于其他行为或表情偏少,测试时微笑的AP 值略低于其他几类,但精度也已达到69.86%。
YOLOX 深度学习网络能够实现实时动态检测,对学生课堂学习状态进行精准识别,识别效果如图4 所示。在实时动态检测过程中,教师可根据学生的表情和行为兼顾到所有学生的学习状态,观察每个学生的连续专注时间,进而判断学生对教学内容是否感兴趣,并及时改进和优化教学方式,实施更为合适的教学方案,从而提升教学质量,促进学生的学习效率。
图4 学生课堂表情和行为识别效果
学生课堂学习状态识别分析时,不可避免会出现部分学生被遮挡的情况,使得整体检测结果受到影响,降低检测精度。需要指出的是,本文无法处理学生面部和肢体被大比例遮挡的情况,这也是下一步研究工作的重点。
本文聚焦于学生课堂考勤、面部表情和肢体行为识别研究,提出了一种基于YOLOX 深度学习网络的学生课堂学习状态分析方法,实时获取到学生的课堂学习状态。经实验验证,该方法能够在复杂的场景下准确统计考勤情况、识别学生的表情和行为。今后工作中可以尝试深度学习网络与其他方法结合解决学生面部和肢体被大比例遮挡的情况,同时应采集样本量更大、课堂状态更加丰富的数据来完善本文研究工作。