基于人脸姿态识别的课堂学习状态反馈系统的设计与实现

2022-08-22 07:52吴丽娟任海清关贵明梁岱立
关键词:边框准确度人脸

吴丽娟, 任海清, 关贵明, 梁岱立, 黄 尧

(1. 沈阳师范大学 物理科学与技术学院, 沈阳 110034; 2. 北部战区31441部队, 沈阳 110001)

0 引 言

传统的课堂教学评价通常采取专家听课和课后学生打分等方式,具有一定的滞后性和不客观性[1-4]。随着素质教育的推行,课堂上教师和学生的互动越来越成为评价课堂质量的一个重要指标。因此,实时、客观的教学评估体系,是有效培养高素质人才必不可少的保障。随着电子设备的普及,当代课堂中出现了大批的“低头族”,这也成为师生互动、提升教学效率的一大障碍。“抬头率”已成为判断学生的专注程度、检验课堂教学效果的重要因素之一[5-8],因而设计和开发基于人脸识别的课堂学习状态反馈系统是非常必要的。在如今科技飞速发展的环境背景下,人脸识别已经从20世纪60年代时的理论层面发展到现在运行稳定的应用层面。目前,应用较为广泛的算法中,YOLO算法颇受研究者的青睐,但在某些应用场景中,也具有一定的局限性。本文在YOLO算法的基础上进行改进,完善了它的局限性。通过精确、实时的课堂人脸检测和姿态识别,该系统可以对学生的听课状态和课堂教学质量进行客观可靠的判断,为教师对课堂的整体把控和教学方案实施提供参考,对课堂上学生的表现也起到了监督和评价的作用。

1 人脸识别方法

1.1 卷积神经网络

卷积神经网络包括输入层、隐含层、输出层,其中,输入层和输出层各1个,隐含层设置多个。隐含层包含卷积层、池化层及全连接层。经过卷积运算产生的图像具有和原始图像相似的特征,卷积过程中,卷积核尺寸、深度、移动步长的设置都会影响结果的准确性,应根据需要将其调整到适当值。将卷积后生成的图像经过激活函数重新赋值,再进行池化处理,在保留原图像基本信息不被改变的情况下将冗余信息舍弃,按比例将图像调整到适当尺寸。全连接层将所有像素依次进行全连接处理完成输出。

1.2 YOLOv5s的网络结构

1.2.1 YOLOv5s模型

YOLOv5算法所采用的卷积神经网络模型有4种,按照复杂程度从简到繁分别是YOLOv5s, YOLOv5m, YOLOv5l以及YOLOv5x,模型越复杂,其识别速度越慢,识别准确度越高。本文选取YOLOv5s模型的速度优势,在其基础上进行识别准确度的提升。

1.2.2 YOLOv5s的损失函数

输出层对于每个输入的神经元有权重的取舍,将最终识别出来的结果与真实结果进行对比,之间的误差形成损失函数,经过梯度下降法进行反向传播,并对卷积核的参数进行迭代调整,这样循环计算不断调整权重,直到将损失函数降到最低,最终完成训练过程。总体采用梯度下降法解决回归问题。

1.3 YOLOv5s的识别原理

输入图像经过卷积神经网络的变换得到一个三维的张量输出,主要原理如图1所示。在目标图像没有重叠的情况下,将原图像划分成K×K个网格,每个网格预测出2个边框,作为检测对象的候选区域。

图1 YOLOv5s识别原理图Fig.1 The principle of YOLOv5s recognition

边框中心点的x坐标,y坐标,边框的高度h,以及宽度w,2个边框共需要8个数值来表示。边框置信度表示使用该边框的可能性。边框的置信度=该边框内存在对象的概率×该边框与该对象实际边框的IOU(即2个边框的交并比),每个边框只代表一个类,因而有其唯一的置信度,而每个网格预测出2个边框,每个网格共有2个置信度。

YOLOv5s支持识别80种不同的对象,所以有80个值表示该网格位置存在任一种对象的概率,那么每个网格就有8+2+80=90个维度。

2 人脸识别定位的设计与实现

2.1 人脸姿态识别系统

基于SCV6544并行超算云平台,在pytorch 2.0环境中使用python 3.6.13运行完成训练,并在相同环境下进行人脸识别。人脸识别定位系统的主要处理环节如下:首先,进行图像采集,将采集来的图像进行图像增强预处理,再进行人工标注,框出人脸区域并打上人脸状态标签;然后,生成标签文件,导入到训练模型中,进行训练参数的改进,开始训练;其次,进行训练结果的分析,如果不理想,则继续修改训练参数,直到训练结果满意;最后,对训练结果进行识别参数的修改并识别,然后对识别结果进行分析,若结果不理想则进行识别参数的修改,直到识别结果满意为止,完成输出。

2.2 数据集的制作

2.2.1 图像采集与预处理

根据需要, 准备充足的正面人脸数据集。 考虑到课堂教学的实际情况, 具体标准为: 正脸面对镜头, 或者与摄像头方向水平旋转角度在10° 以内视为正面。 与摄像头水平旋转角度示例如图2所示。

(a) 向左旋转10°(b) 正面(c) 向右旋转10°

考虑到教室光线变化等情况[9-12],将分类完成的数据集按照改进的YOLOv5s网络模型进行设置。将每张图像像素设置为640×640,为了使识别效果更加准确,将原始图像进行RGB曲线变换预处理,再按照不同分类将数据集进行依次编号。预处理前后对比图像如图3所示。

(a) 原图(b) 增大曝光度处理图(c) 减小曝光度处理图

2.2.2 数据集的准备

将预处理之后的图像进行编号, 对带有序号的人脸图像进行标注(标注的人脸识别框的位置与尺寸作为训练与识别中IOU计算部分的参考依据), 选择对应的分类名称, 生成各自的标签文件, 再将训练图像和标签文件导入到训练程序中, 修改训练过程参数,准备训练。 图像标注过程如图4所示。

图4 图像标注过程图Fig.4 Image annotation process

2.3 数据集训练与算法改进

2.3.1 数据集训练

所有数据集充分准备后开始训练,训练过程中模型输出341×3=1 023个预测框,这些预测框共输出1 023个标签值,每个预测框都有对应的标签。在训练过程中将这些标签所对应的数与其标签进行拟合,通过损失函数的反向传播和梯度下降,对卷积层内的权重进行迭代更新,完成训练过程。

2.3.2 初训练结果分析

训练结束后,若发现系统的识别速度很快,但是识别的平均准确度达不到要求,则需要在不影响识别速度的条件下,进一步将训练模型进行改进,以提高其准确度。

2.3.3 训练算法改进

为了使YOLOv5s训练算法中设置的模型深度与宽度满足应用需要,将模型的深度由原来的0.33增加到0.50,宽度由原来的0.50增加到0.67,在不影响识别速度的情况下,提高了系统识别的准确度。

2.3.4 改进后的训练结果

根据训练结果显示,改进后的训练结果中检测框的损失函数、目标检测损失函数都可以降到0.1以下,准确度和召回率都可以达到0.99以上,达到了理想的效果,如图5所示。

图5 参数修改后训练结果图Fig.5 Training result after parameter modification

在YOLO算法的卷积神经网络模型中,YOLOv5s与YOLOv5m是由简到繁的相邻2个模型结构,因此将本文提出的改进的YOLOv5s模型与上述2种模型进行对比,结果见表1。改进后的YOLOv5s在人脸识别速度上并没有明显差异,但相比于YOLOv5m,可以达到快速的识别;在平均准确度上,改进的YOLOv5s增大了0.011,与YOLOv5m相差无几;从4种损失函数的指标也可以看出,改进的算法可以迭代到更低值,准确度更高;在召回率上,改进的算法可以使识别结果更加稳定。

表1 模型改进前后的识别结果对比Table 1 Comparison of recognition results before and after model improvement

综上所述,与YOLOv5s和YOLOv5m相比较,改进的YOLOv5s具有前者的速度和后者的准确度。

2.4 检测与识别结果

当训练达到最佳稳定状态时,进行图像的检测与识别,检测算法中的参数设置直接影响识别结果。其中,主要修改的参数为图像置信度阈值-conf及交并比阈值-iou。

2个阈值参数对识别结果起到筛选的作用。 置信度阈值-conf参数将所设置的数值以下的识别框全部过滤掉,在预测结果中不再显示。交并比阈值-iou参数负责筛选识别结果中的边框个数,如果将-iou参数设置为0.45,则2个边框的交并比在0.45以上的将只会显示出一个IOU值较大的边框,具体原理如图6所示。

图6 IOU原理示例图Fig.6 Illustration of IOU principle

IOU的计算方法如下:

IOU=S/M

其中:S表示2个检测框的交集区域;M表示2个检测框的并集区域;IOU为2个检测框的交并比。

通过-conf与-iou参数的改进,可以使识别结果更加清晰,可以看到每个人脸只有一个检测框对应的一种识别状态,使识别结果更具有实用价值,如图7所示。

(a) 参数改进前识别图(b) 参数改进后识别图

2.5 “抬头率”(T)的计算

由于教室环境的影响,人脸的识别不仅会识别到真正的课堂中的学生人脸数,还会识别出环境中(如画像)的人脸,这会影响“抬头率”的计算结果,本文暂不考虑这种因素。人脸识别结果会输出处于“认真状态”的学生人数V以及“抬头率”T。“认真状态”指根据课程性质所规定的学生上课姿态中的一种或几种。“抬头率”,即系统识别出的“认真状态”人数V与课堂上课总人数R之比:

T=V/R

其中,V根据课程的实际性质来规定,课程性质包括讲授课、复习课、习题课、自习课等。本文研究讲授课“抬头率”,因而规定“正面”为“认真状态”,识别结果中为“正面”的学生人数即V的值,如图8所示。

图像中一共有6(R)种不同姿态的人脸,而被识别出“正面”的人脸一共为4(V)个,则此时的“抬头率”T=4/6=66.7%。

将计算出的“抬头率”的值反馈给教师来总体分析学生课堂表现的状态,同时,帮助教师进一步调整教学计划和讲课内容,更好地完成每一节课。

3 结 论

改进的YOLOv5s算法识别无遮挡人脸图像平均检测速度为32 ms,平均识别速度为1.287 s,可以达到实际应用要求[13-15],平均识别准确度可以达到0.996,可以满足实际需要。对于较暗环境下的识别准确度也可以达到0.877,达到了课堂教学实时监测需求。然而,改进的YOLOv5s算法对于其他领域人脸不同姿态识别的应用有待进一步探索。

猜你喜欢
边框准确度人脸
有特点的人脸
一起学画人脸
三国漫——人脸解锁
幕墙用挂件安装准确度控制技术
用Lightroom添加宝丽来边框
给照片制作专业级的边框
外出玩
摆脱边框的束缚优派
动态汽车衡准确度等级的现实意义
一款基于18位ADC的高准确度三相标准表的设计