梁利亭
(三门峡职业技术学院,河南 三门峡 472000)
课堂是教学主战场,科学的课堂评价体系对课堂教学质量的提高有着重要作用。近年来,人们陆续提出了多种课堂评价方法,常见的有问卷调查法、课后评价法。这些方法基本是通过课后在学生中进行调查,并以人工统计方法来评价教学质量,需要消耗大量人力、物力等,其结果也存在一定的滞后性和主观性[1]。计算机视觉方法是通过监控设备捕捉学生的到课、听课等信息,通过分析捕捉到的数据进而对课堂质量进行评价。目前市面上也出现了一些基于人脸识别的课堂质量评价系统,但由于精度、成本等问题,没有在课堂中被广泛推广。因此,引入高精度、客观以及成本可控的基于人脸检测和表情识别的现代化课堂评价系统很有必要。
本研究所开发的课堂评价系统,通过人脸检测对学生课堂上的抬头率和表情进行识别,进而客观、准确得到学生的听课状态,为课堂评价提供了参考,为教师提升课堂质量提供了依据。
人脸检测是计算机目标检测技术的一种,也是人脸识别的基础和前提,相对于计算机目标检测技术中的通用检测,因为人脸存在表情、肤色、饰物等因素,人脸检测有其特殊性,
因此对于人脸模型的检测训练,一般通过以下几个步骤进行:
第一、预处理数据集
近年来,随着FDDB、FaceDB、Wider Face等优质人脸数据集的公开,为人脸检测的快速发展提供了前提和基础,为了保证人脸模型的实用性,一般在人脸检测前,先对数据集进行如颜色转变、平移变换、随机裁剪等方式的预处理。
第二、定位人脸
预处理好图像后,首先确定图像中人脸的位置。对于单一人脸图像,我们采用“滑窗”的方法进行人脸定位:用特定大小的窗口对图像进行遍历,对得到的所有小窗口进行判断,分析是否存在人脸信息,最终得到人脸定位;对于多个人脸的图片,先对图片进行循环缩放,得到各种尺寸的图像信息,然后把图像信息构造成图像金字塔,接着用特定大小的窗口遍历整个图像金字塔,最后,用分类器分类、预测得到的每一个图像窗口,确定人脸位置[2]。
第三、边框回归
对于得到的人脸窗口,先和原图像进行IOU(Intersection over Union)比对,得到它们的交并比,接着优化确定交并比的阈值,将大于阈值的图像窗口作为目标窗口;然后使用NMS方法将目标窗口中置信度最高的窗口确定为人脸窗口;接着将人脸窗口的中心位置以及窗口的宽和长与原图像进行回归计算,通过微调人脸窗口的边框最终得到人脸检测结果。
人脸检测所用的模型有多种,卷积神经网络是其中重要的一种。广泛应用于图形、语音、深度学习等领域,并取得了很多突破性进展和成就。卷积神经网络与传统神经网络相比,其结构上除了都包含输入层、输出层等网络层,它的隐层一般还包括卷积层、池化层、全连接层等常用网络层,这些层的结构和功能如下所示:
(1)卷积层
卷积层的主要作用是进行卷积运算。首先设定卷积核,然后用卷积核根据特定的步长遍历输入图像的特征值并进行相应的卷积运算,卷积运算后,我们用激活函数处理运算结果,使得卷积运算的结果非线性化。
(2)池化层
池化层也被叫做下采样层,它的主要作用是减少计算量,降低图像处理技术中的维度,还可以防止图形计算过于拟合。池化层和卷积层在操作上比较类似,不同的是将取最大值、取随机值和取平均值等运算代替卷积运算。因此,池化又可以根据不同的池化运算分为随机池化、平均池化和最大池化等。
(3)全连接层
全连接层一般位于输出层之前,它使用如sigmoid、softmax等激活函数,将上一层传入的图像特征值与本层的神经元进行连接计算,最终将分类结果进行输出。
本层的网络参数整体是通过反向传播算法计算实现的,它是一种特别的前馈神经网络,在构建神经网络模型的时候,为了提高计算效率和精度,通常会加入跳跃链接、正则化等方法进行处理[3]。
(1)贝叶斯定理
贝叶斯定理,是解决随机事件的条件概率等问题所提出的推理,求解表达式如下所示:
P(A)指的是事件A发生的概率,P(B)指的是事件B发生的概率,P(A|B)指的是B确定发生,则A事件发生的概率。
(2)朴素贝叶斯分类器
朴素贝叶斯分类器假设各个事件的各个属性之间是相互独立的,在此基础上,对联合概率进行建模,并计算目标条件概率的方法。具体公式如下:
其中,x为待分类的图像特征集合,xm为待分类的某一个特征值,yn表示类别集合中的某一个类别项,P(x|yn)P(yn)为相互独立假设下,各特征值在各类别下的条件概率计算值。
(1)实现思路
本研究在联级的CNN基础上,提出了新的人脸检测模型,该模型由三个卷积神经网络采用级联的方式构造而成,这三个卷积神经网络都处在隐层中,它们的的复杂度从低到高,它们包含的卷积核和卷积层数也由少到多,它们分别命名为CNNa、CNNb 和 CNNc,模型的主要工作分为三个阶段来完成,如图1所示:
图1 基于联级CNN模型的人脸检测步骤
第一、得到较为准确的候选框。先使用CNNa网络模型,粗略的计算出可能存在的大量候选框,同时计算出每一个候选框的回归向量;接着,校准第一步得到的候选框的回归向量;然后,把重叠性高的候选框进行合并;最后得到较为准确的候选框。
第二、使用精确度和复杂度更高的CNNb模型对候选框进行进一步的筛选和边框校准,并用非极大值抑制的方法进行合并。
第三、调整边框回归的阈值,使用层次更深的CNNc模型进一步细化边框,得到更加准确的人脸特征,并输出结果。
(2)模型训练
本研究对CNN三级网络模型进行训练的人脸数据集均从开源FDDB里面进行挑选。先把尺寸为12x12,颜色模式为RGB的人脸图片输入至CNNa网络模型中,经过训练,得到大小为1x1x2的多维人脸分类信息,然后将人脸分类信息定位到定位框数组,转换成图片后,修改尺寸,通过CNNb的计算和处理进一步得到人脸框和定位数据,在此基础上,为了提高定位和识别的精度,CNNc采用边框回归的方式进行处理,最终得到检测结果。
(3)模型优化
课堂教学图片往往场景比较大,学生数量比较多,学生位置相对集中,使用网络模型对这类图片进行人脸检测时,往往会出现漏检率高、识别和计算效率低等问题,为了解决此类问题,本研究通过以下方法对模型进行优化和调整:
第一、图片预处理
在课堂教学此类场景中,学生数量较多,位置集中,人脸尺寸大小基本一致,同一节课学生座位也相对固定,因此我们使用图像金字塔法,生成大量小尺寸的图像金字塔,这样大大减少了课堂教学场景图片的尺寸转换的计算量,加快了网络模型的计算速度,提高了人脸检测的效率,具体公式如下:
其中,p_size表示待检测图片的大小,d_size为检测窗口的尺寸,f_sizemax和f_sizemin表示人脸的最大值和最小值,本模型取值18;i表示缩放次数,当公式中的第一个条件不满足时,停止缩放,图像金字塔初步形成。
第二、批量归一化
批量归一化的目的是在神经网络模型中,将神经元的输入值纠正回标准的正太分布区域中,这个标准的正太分布区域一般方差值为1,均值等于0。经过批量归一的过程,可以有效降低模型训练过程中梯度消失的现象,同时也能增加模型的计算速度,因此,本模型在每一层的激活函数前都先对卷积核进行了批量归一化的变换运算,以提高整个模型各个层的收敛速度,变换公式如下:
第三、融入注意力机制
2017年注意力机制被谷歌第一次引入到Encoder-Decoder模型中,此后,便引起了广泛的关注,目前在语音识别领域有较多应用。本研究将注意力机制的思路引入到CNNc网络的Conv层中,具体步骤如下:现将特征图像用平均池化的方法转换成浮点数,再对全连接层各个通道的权重值进行训练学习,接着使用激活函数将权重加入至特征图,最终加快整体运算速度。
第四、调试参数
在多次试验基础上,对参数进行不断调整,最终确定人脸的偏移度为正负25度之间,最大程度地获得学生人脸信息。
经过上述过程的运算、调试、优化后,人脸检测的准确率、速度和可靠性得到提升,漏检率明显下降,可以满足后续要求,测试效果如图2所示:
图2 模型优化效果图
(1)提取脸部特征
用Dlib工具提取人脸窗口的特征点,Dlib默认提取68个人脸关键特征点,这68个特征点中,鼻子、脸部轮廓等18个特征点对人脸表情意义不大,在此,我们将其去掉。
(2)获得HOG特征
首先,将检测到的窗口大小统一转换成36x36;接着使用matplotlib工具将图像灰度化;然后为了降低噪声对图像的干扰,使用Gamma校正法通过调整图像的对比度,对图像进行归一化处理;接着计算特征图像中每一个像素的大小和方向;然后将图形等分成方形小格(Cells),计算出梯度直方图;最后,将得到的Cells组成成块,再按每一块的特征向量进行串联组合,从而得到图像的HOG 特征。
(3)模型训练
表情识别的模型训练主要通过以下两个步骤完成:
第一、计算特征工程。先将每一个脸部的HOG特征图和计算得到的人脸特征点重新转换成向量图。再用scikit-learn提供的工具对得到的向量图进行筛选和预处理,形成特征工程。
第二、训练表情识别网络模型
先随机打乱特征工程提供的所有数据集,接着把他们平均分成4部分,然后使用交叉验证的方法对4个分类进行训练,整个训练过程均基于朴素贝叶斯网络接口,具体过程如下所示:首先建立基于贝叶斯分类模型,接着对网络模型中alpha平滑参数进行调整和优化,然后使用类先验概率的方法,得到样本中对于每一种课堂表情(“认真听讲”“疑惑状态”“理解掌握”“抗拒不屑”)所对应的概率值,最后使用joblib.dump函数多分类模型进行保存。
利用上述过程进行训练和调优,得到表情识别准确率为73%,因为人脸标签设置原因,“认真听讲”和“理解掌握”两种模型的人脸特征比较相似,分类器比较难对其作出特别准确的判断,因此,整个模型的准确率不是特别高。如果把“认真听讲”“疑惑状态”“理解掌握”“抗拒不屑”四种表情分为“听讲”和“不听讲”,表情识别的准确率可以提升至93%,符合预期要求。
本文主要通过计算学生课堂的“抬头听课率”和“学生面部表情”这两项指标来评价课堂效果。
学生“抬头听课率”情况可以反映其听课状态,本文首先每隔10秒钟对班级学生进行全面的人脸检测,因为同一节课中,学生位置相对固定,因此,本文对检测到的人脸信息按位置信息进行编号,每一个编号代表一名同学。接着计算检测到的某一编号人脸在总检测人脸中出现的次数,可得到该学生在课堂上的抬头听课率。最后用全班同学的抬头听课次数和总人数进行比较,再通过平均值计算,可得到课堂的整体抬头听课率,具体公式如下:
其中,t表示检测到的人脸次数,M表示总人数。
通过课堂整体抬头听课率的计算,可以从一定程度上反映班级学生在课堂上的听课和专注度等情况,经过多次真实实验以及对课堂视频进行分析对比,可以得出以下数据:对于普通课堂,当班级的整体抬头听课率高于0.75时,可以认为班级学生专注率很高,课堂效果特别好,当班级抬头听课率在0.55至0.75之间时,认为班级学生专注率比较高,当班级抬头听课率低于0.55时,认为班级学生专注率低,课堂效果不理想。这里还存在一种特殊情况,某一时间段里面,一名学生始终处于低头状态,那么可以同时参考当前时间段内班级的整体抬头听课率,如果班级整体抬头听课率低于0.4的话,说明在当前时间段内,大部分同学可能存在看书、记笔记等情况,也可以认为该同学专注度比较高,课堂效果整体较好。
将检测结果由特征工程输入到分类器,可以得到表情的分类,并计算“理解掌握”“认真听讲”“疑惑状态”“抗拒不屑”这四种表情的置信度Si,i=(0,1,2,3),在这里设置“理解掌握”“认真听讲”和“疑惑状态”评分为9、8和7,设置“抗拒不屑”的评分为-10,加权后可通过如下公式得到表情评分:
score=9s0+8s1+7s2-10s3
然后将得到的评分通过归一化方法进行处理,使得结果分布在[0,1]之间,归一化公式 如下:
最后,对结果进行分析,评分越高,表明该同学在当前时刻越认真听讲,专注度越高。把全班同学的评分情况取平均值,便可得到班级在当前课堂上的整体表情得分,实验表明,班级平均分高于0.6可认为该班级学习兴趣高,该课堂教学质量较好。
(1)课堂实验
实验时长约40分钟,拍摄设备为一般手机后置摄像头,得到视频的格式为MP4,帧率30FPS。对视频检测和计算的速率为2次/秒,40分钟共检测和计算了约1200次,对40分钟内班级整体抬头听课率进行检测和分析,结果如图3所示:
图3 班级整体抬头听课率
对图4的数据每隔10分钟对抬头听课率进行求平均计算,可以得出以下结果:班级抬头听课率随课堂时间而变化,课堂前十分钟的抬头听课率为0.55,班级活跃度为一般,10至20分钟抬头听课率为0.62,活跃度为良好,20至30分钟,抬头率为0.73,活跃度为优秀,30分钟以后,抬头率为0.41,活跃度为差。结果表明,学生的活跃度在10到30分钟之间是最好的,超过30分钟,活跃度急剧下降。这也与相关研究中人的注意力保持时间规律相吻合。因此,相关教师在组织课堂教学时,尽量把重点的教学内容放在10到30分钟这个时间段进行讲解,30分钟以后,尽量不要讲解重点和难点。
同时,本文也对班级50名同学在40分钟课堂时间里所采集的人脸图像进行了表情识别与表情评分实验,实验结果显示,课堂10到30分钟的时间段内,班级同学的表情得分明显高于其他时间的表情得分,说明这段时间内学生课堂专注度较高,可以利用这段时间讲解课程的重点和难点,这与课堂抬头听课率的实验结果相吻合。
(2)实验结论
通过对50名学生40分钟的实验结果进行分析,可以得出结论:抬头听课率可以反映学生在课堂上的活跃程度,通过表情识别得出的表情得分可以反映学生在课堂上的专注度。教师可以根据相应数据对课堂安排进行调整,以期得到最好教学效果。把两种评价方法进行结合,可作为课堂教学质量评价的一个重要参考指标。
教育信息化的关键在于教学方式现代化、教学方法科技化以及教学评价数字化[4],结合深度学习技术的基于人脸检测和表情识别的课堂评价,将数字化技术用于课堂教学评价环节,有助于课堂管理和教学评估信息化,具有一定的理论价值和推广意义。