APP下载

基于改进YOLOv4的课堂教学中学生姿态检测算法研究

2022-06-26黄昶蓉祁圣恩包雨杭郎子迅牛振华任相花

科技创新与应用 2022年18期
关键词:姿态特征模块

黄昶蓉,祁圣恩,包雨杭,郎子迅,牛振华,任相花

(哈尔滨理工大学 计算机科学与技术学院,黑龙江 哈尔滨 150080)

在评价学校办学水平和教学质量的依据中,课堂的教学质量最为重要,并且学生上课的听课状态可以直接反映其教学效果。获取学生姿态(学习行为)已经成为了在课堂中如何衡量学生听课效果的核心内容。学生在课堂上的姿态表现(玩手机,睡觉,低头,写笔记,认真听课,趴桌子等)是评价学生学习状态和课堂教学质量的重要依据。随着深度学习技术的发展,深度学习技术应用于课堂教学,对教室监控图像进行分析,获得真实、客观的学生上课状态,并将其作为评价课堂教学质量的数据支撑。然而,如何准确地获取学生上课状态的学习数据成为了研究中的一个难点,而解决这个问题需要一种精确的学生姿态检测算法。

本文使用改进的YOLOv4算法,并且在YOLOv4算法的基础上实现对课堂上学生姿态的准确检测。

1 YOLOv4算法

1.1 YOLOv4基本思想

YOLOv4通过提取输入图像的特征,获得一张S×S的特征图。依据每张特征图的大小,在输入图像上划分S×S个网格,每个网格用于检测在该网格中的对象[1]。ground truth中某个目标对象的中心位置坐标所在的网格,负责检测该目标对象[2]。

为了全面、精确地检测不同大小的目标对象和防止图像在多次卷积后压缩导致图像失真情况的出现,YOLOv4特征图的三种大小分为13×13、26×26和52×52[3],分别用来检测大、中、小目标对象。

1.2 YOLOv4检测流程

YOLOv4在输入图像上划分S×S个网格,其中每个网格将输出B个bounding box信息,以及C个目标对象所属类别的概率信息。每个bounding box信息包含5个数据值,分别是目标框的中心坐标(x,y)、宽高(w、h)和置信度confidence[4]。

置信度表示该bounding box内包含物体的可能性,其计算公式如式(1)所示:

式中,Pr(Object)的值为0或1,用于表示该格子是否存在目标对象。表示当前预测框bounding box和真实框truth box的交并比,其计算公式如式(2)所示:

YOLOv4对置信度进行筛选是以一个固定的阈值作为标准,如果预测框的置信度没有达到阈值,就将其抛弃。如果出现重叠率比较高的预测框,就采用非极大值抑制算法将其去除,得到最终的检测结果[5]。

2 YOLOv4网络结构

YOLOv4网络结构主要由CSPDarkNet53主干特征提取网络、特征金字塔和YoloHead三部分组成。

2.1 CSPDarkNet53主干特征提取网络

CSPDarknet53是基于YOLOv3主干网络Darknet53,并在其基础上进行修改完善,最终形成的一种包含了5个CSP模块的Backbone结构,其中CSP模块将基础层的特征映射划分为两部分,即将原来的残差块堆叠进行了拆分,拆成了左右两个不同的部分,主干部分用于继续进行原先的残差块堆叠,另一部分则类似残差边,经过一些少量处理直接连接到最后,然后通过跨阶段层次结构将它们合并起来。通过这种处理,在减少了计算量的基础上,还确保了模型的准确率。

2.2 特征金字塔

特征金字塔主要包括SPP模块和PANet模块。SPP模块通过融合不同大小的最大池化层来获得鲁棒的特征表示,与单纯的使用k*k最大池化的方式相比,采用SPP模块的方式具有更加突出的优点,例如其可以有效地扩大主干特征的接收范围和明显地分离最重要的上下文特征。PANet是融合了上采样、下采样以及特征融合的一个模块。在PANet模块之中,CSPDarknet53首先将针对输出的两个有效特征层单独进行一次卷积操作,再和SPP模块输出的有效特征层三者之间进行堆叠、卷积、上采样和下采样,在实现特征金字塔从下到上的特征提取后,还需要实现从上到下的特征提取,有利于更好地完成目标定位的功能。

2.3 YoloHead

YoloHead本质上是一个3×3和1×1的卷积,3×3的卷积是进行特征的整合,1×1的卷积则是把获取的特征转化为YOLOv4的预测结果。这个预测结果代表了每一个网格点上的3个先验框内部是否包含物体以及这个物体的种类,还有这个先验框的调整参数。

3 对YOLOv4网络模型的改进

3.1 采用Mosaic数据增强扩充数据集

为了实现有效地提高训练样本的多样性和充分地增强模型的鲁棒性的目标,以及避免模型产生过拟合的问题,采用了Mosaic数据增强进行数据集的扩充[6]。Mosaic数据增强每一次从数据集中随机抽取4张图像,分别对其进行翻转、缩放、色域变化等操作,并且按照4个不同的方位进行随机的裁剪和拼接,形成一张全新的图像,再将其反馈给神经网络用于训练。部分处理好的合成图像如图1所示。

从图1可以看出,合成图像与真实图像之间存在一定的区别,例如,与真实图像相比,合成图像时用于拼接的图片相互之间会覆盖,从而导致合成图像中的真实框显示不全。

图1 采用Mosaic数据增强方法生成的模拟数据

3.2 anchors参数值的设定

YOLOv4模型中使用的anchors参数值是对VOC2007数据集做聚类分析得出的,本文特有的学生姿态数据集具有拍摄空间小、拍摄背景较为单一、拍摄人员较为固定、人员较少和多为大目标等特点。VOC2007数据集的anchors与本实验的数据并不十分匹配。

为了获得大小比较合适的anchors,根据数据集样本上存在的标签信息,对目标的宽和高进行k-means聚类分析。传统的聚类方法一般使用欧氏距离来衡量差异,当anchors的尺寸较大时,其误差也会更大[7]。因此引入了IOU,并使用平均IOU作为其精确度评价标准,可以避免产生这个问题。

为了减少不必要的训练计算量,应该选择适当的anchor个数。本文选取的k值区间为[5,12],分别用其进行聚类分析,根据实验计算结果得到k的大小和精确度accuracy的关系如图2所示。从图2可以看出,k=9时,accuracy较高,效果比较优秀。因此本文选取anchor的参数个数为9。

图2 k的大小与accuracy之间的关系图

4 学生姿态检测实验

4.1 实验环境搭建

本次实验选择的操作系统为Windows10,实验显卡型号为NVIDIA GeForce GTX 1080Ti,GPU数量为1。使用Visual Studio Code的编译环境,预装环境包括python3.6、Tensorflow-GPU 1.13.2、cuda10.0以及cudnn7.4.1.5等。

4.2 数据集的建立和标记

本次实验通过4名实验人员相互合作,选择在不同教室内以及不同拍摄角度对实验人员摆出的学生姿态进行视频录制。将拍摄获得的视频进行帧截取,筛选出最具有学生姿态代表性的视频帧作为数据样本,最终获取的数据集样本数为10 387。经统计,该数据集共 有masked、play_phone、concentration、unfocused、abnormal、hands_up、sleep 7种学生姿态目标,每种目标所占数据集的比例如图3所示。

图3 数据集中每种学生姿态比例

在数据集建立之后,使用LabelImg软件对数据集中的所有样本进行标注并生成相对应的XML标签文件。记录该图像的宽高、通道数、对应的矩形框标签以及bounding box坐标值等。

为了提高模型检测不同学生姿态的准确性,采用Mosaic数据增强形成合成图像并扩充已经完成标记的数据集。表1为数据集加入合成图像前后的数量变化。

表1 数据集加入合成图像前后的数量变化

4.3 模型对比实验设计

为了比较YOLOv4模型改进前后的检测效果并选出合适的模型进行学生姿态的检测,根据是否使用Mosaic数据增强和是否使用k-means聚类生成新的anchor box,设计了两组实验作为对比,见表2。

表2 模型对比实验设计

第一组实验使用YOLOv4模型的预训练权重、原学生姿态数据集、VOC2007数据集聚类得到的anchor参数值和原损失函数,共同进行模型的训练。

第二组实验使用YOLOv4模型的预训练权重,加入了合成图像后的新学生姿态数据集,通过学生姿态数据集进行聚类从而得到的新anchor box参数值和原损失函数,共同进行模型的训练。

5 实验结果分析

(1)精确度precision和召回率recall

对于一个二分类任务,正例和负例分别表示目标对象是正确类别还是非正确类别。真正例TP表示分类器认为是正例并且确实是正例,假正例FP表示分类器认为是正例但实际上是负例,假负例FN表示分类器认为是负例但实际上是正例。因此,precision表示在该分类器预测的正例中有多少是准确的,recall表示实际是正例的有多少被分类器准确地预测。

(2)平均精度AP和平均精度均值mAP

为了综合precision和recall两个指标对模型进行评价,提出用AP这一度量标准,定义为所有recall值对应的precision值的均值。在计算AP的积分中,i表示目标类别i,P代表precision,r代表recall,P是一个关于r的函数。因此,AP表示的就是P-R曲线下的面积,而mAP就是对所有AP求均值。

(3)模型性能分析

利用4.3节设计的两组对比实验分别进行测试,计算并绘制出每个模型对应的AP值和mAP值,比较并分析数值的变化来判断模型的准确性和可靠性。测试结果如图4、图5所示。

图4 第一组测试得到的AP与mAP值

图5 第二组测试得到的AP与mAP值

图4展示了第一组模型训练后的检测结果,mAP值达到66.83%,masked、play_phone、sleep和concentration 4种姿态的AP值都达到了80%及以上,模型可以较好地预测这4种姿态。而hands_up、abnormal和unfocused 3种姿态的AP值均小于50%,unfocused姿态的AP值更是低至31%。

图5展示了第二组模型训练后的检测结果,mAP值达到68.90%,masked、play_phone、sleep和concentration 4种姿态的AP值都达到了80%及以上,模型可以较好地预测这4种姿态。abnormal姿态的AP值为56%,而hands_up和unfocused 2种姿态的AP值均小于50%。

从两组实验测试结果的对比发现,使用加入了合成数据的数据集和新的anchor组合的模型相比于原模型,play_phone、hands_up和abnormal 3种学生姿态的AP值有所提高,整个模型的mAP值也有了略微提升。这充分说明了改进的模型在一定程度上更有利于实现目标对象的检测。通过观察两组实验每种姿态的AP值,发现masked、play_phone、sleep和concentration 4种姿态的AP值较高,说明其训练数据质量较好。而hands_up、abnormal和unfocused 3种姿态的AP值较低。

6 结束语

本文针对如何客观准确地描述学生实时上课状态的问题,提出了一种融合了Mosaic数据增强和kmeans聚类分析的改进的YOLOv4网络模型。对比实验表明,改进的YOLOv4模型具有较快的处理速度和较高的准确性,对于某些学生姿态的检测具有更好的效果。该模型可以真实客观、科学合理地对学生上课状态进行量化检测,并且对提升学校的教学质量和提高学生在课堂上的听课效率具有重要意义。

猜你喜欢

姿态特征模块
根据方程特征选解法
28通道收发处理模块设计
“选修3—3”模块的复习备考
离散型随机变量的分布列与数字特征
攀爬的姿态
不忠诚的四个特征
全新一代宋的新姿态
跑与走的姿态
集成水空中冷器的进气模块
抓特征 猜成语