APP下载

基于PP-YOLOv2的高效课堂行为检测方法

2024-01-08陈憶悯李万益郑嘉颖翁汉锐钱焯贤黄靖敏伦家琪邬依林

现代计算机 2023年20期
关键词:卷积函数性能

陈憶悯,李万益*,郑嘉颖,翁汉锐,钱焯贤,黄靖敏,伦家琪,陈 强,张 谦,邬依林

(1. 广东第二师范学院计算机学院,广州 510303;2. 广州市南沙区金沙学校,广州 511455)

0 引言

借助姿态估计、动作识别和目标跟踪等计算机视觉任务,能够准确定位和跟踪教室内的人员,实现对教学行为的识别和理解。这一领域是“人工智能+教育”应用场景中的一个重要方向。在课堂环境中,教师和学生的行为反映了教学风格和学生专注度,也是评估课堂氛围和教学成效的重要指标。然而,传统的分析方法主要依赖于人工或课后学生反馈,存在主观性强、评价片面、效率低和无法回溯等问题。

为解决这些问题,本文提出了基于深度学习的目标检测技术,利用PP-YOLOv2 模型进行课堂行为检测。通过在两个开源大型数据集上进行大量实验,验证了网络的有效性,并将经过训练的模型应用于真实课堂环境,实现了对教学行为的准确检测。这项研究为教育领域的课堂行为分析提供了一种可行的解决方案,并具有潜力改进教学效果,有利于个性化学习方案的实施。

1 目标检测算法的研究

1.1 传统目标检测算法的缺陷

(1)在区域建议阶段,传统目标检测算法通过多次遍历输入图像的不同尺度滑动窗口产生大量感兴趣区域。然而,这种方法存在冗余计算开销、影响算法的运行速度等问题。此外,滑动窗口通常只有几种固定尺寸,很难完美匹配目标。

(2)特征抽取阶段仅能获得图像的低级特征,这些特征表达能力有限,且高度依赖于具体任务。一旦检测目标发生重大变动,就需要重新设计算法。

(3)传统目标检测算法将整个过程分割为独立的三个阶段,无法达到全局最优解。此外,算法的设计依赖于设计者对检测目标和具体任务的先验知识。

针对这些缺陷[1],本文旨在寻找更精巧的计算方法来加速目标检测算法,以满足实时性要求。同时,设计更多元化的检测算法以弥补人工特征表达能力不足的缺陷。通过采用新的计算方法和多元化的算法设计,本文旨在提高目标检测算法的性能和鲁棒性,以更好地适应各种检测任务和目标变化情况。

1.2 目标检测算法的发展

在深度学习出现之前,传统的目标检测方法主要由区域选择(滑窗)、特征提取(如SIFT、HOG 等)和分类器(如SVM、Adaboost 等)三个部分构成。然而,这些传统方法存在两个主要问题。首先,滑窗选择策略缺乏针对性,时间复杂度高且存在窗口冗余;其次,手工设计的特征鲁棒性较差,对于目标变化较大的情况需要重新设计算法。

自深度学习出现之后,目标检测取得了巨大的突破,最瞩目的两个方向有:基于区域建议的深度学习目标检测算法,以RCNN 为代表(如RCNN、SPP-NET、Fast-RCNN、Faster-RCNN 等),采用了两阶段的方法。首先,通过启发式方法(如selectivesearch)或CNN 网络(如RPN)生成候选区域(Region Proposal),然后在这些候选区域上进行分类和回归。基于回归方法的深度学习目标检测算法,以YOLO 为代表(如YOLO、SSD等),采用单一的卷积神经网络(CNN)直接预测不同目标的类别和位置。因此,基于深度学习的目标检测网络主要可以分为两大类:一是两阶段检测网络,如R-CNN 系列算法,该类算法通过生成区域建议并在这些候选区域上进行分类和回归来实现目标检测;二是单阶段检测网络,如YOLO 系列算法、SSD 和RetinaNet 等,该类算法直接在单个CNN 网络中预测目标的类别和位置。

1.3 目标检测算法在本文中的应用

本研究旨在对视频中学生的学习情况进行分析,以满足教师对学生学习行为的即时反馈和后续教学调整的需求。考虑到大规模视频数据和实时性要求,我们采用基于深度学习的目标检测方法。具体而言,选择了YOLOv3算法作为基础算法,并进行了针对性优化以适应我们的数据特点。YOLOv3算法在保持准确度的同时具有较高的训练速度,能够有效应对大规模视频数据的处理挑战。通过我们的优化措施,旨在提高学生学习情况分析的准确性和实时性,并为教师提供及时准确的反馈信息,以支持其教学调整和改进决策。本研究的目标是在保持足够准确度的前提下提高检测速度,以满足教学实际应用的要求。

2 模型优势

2.1 骨干网络的改进

本研究在目标检测领域采用了一种改进的架构,将ResNet50-vd 作为整个网络的主干(backbone),替代了原来的DarkNet53。为了提高模型的表达能力,我们引入了可变形卷积,将部分卷积层替换为可变形卷积,并在最后一层的3*3 卷积中使用了DCN 卷积。整个网络由backbone、neck 和head 三部分组成,如图1 所示。通过使用ResNet50-vd 和可变形卷积,我们增加了网络的复杂度,从而提升了模型的性能和准确度。这一改进架构的引入为目标检测任务带来了显著的改善,并在实验中取得了良好的效果。

图1 骨干网

为了改进目标检测算法,本研究采用了ResNet50-vd 作为整个架构的替代方案,以取代YOLOv3 中使用的较为庞大的DarkNet53。这一选择是基于ResNet 在广泛应用和多样化分支方面的优势,以及其在执行优化和参数数量方面的表现优于Darknet53 等因素。实验结果表明,通过将DarkNet53 替换为ResNet50-vd,模型的mAP得到了明显的提升。

此外,为了避免性能下降,我们并非直接替换ResNet50-vd,而是采用可变形卷积层替换其中的一些卷积层。在这个过程中,我们选择将最后阶段的3*3 卷积层替换为可变形卷积层(DCN),而不是对整个网络进行替换。DCN 本身并不显著增加模型的参数量和FLOPs 数量,但在实际应用中,过多的DCN 层会显著增加推断时间。为了平衡精度和速度,本研究只将最后阶段的3*3卷积层替换为DCN[2]。

以上改进策略的应用使得模型在精度与速度之间取得了平衡,进一步提升了目标检测算法的性能。

2.2 采用路径聚合网络

与PP-YOLO 使用FPN 构建特征金字塔不同,我们的模型采用路径聚合网络(path aggregation network,PAN)。该网络通过自底向上的路径利用低层定位信号增强特征层次结构,从而缩短低层与顶层之间的信息传递路径(见图2绿色线)。此外,PAN 还引入自适应特征池,将特征网格与所有特征层连接,实现自上而下的特征聚合。通过这种方式,每个特征层的有用信息都能够直接传播到提案子网,从而实现了特征信息的全局聚合。

图2 路径聚合网络

激活函数(activation function)是神经网络中神经元输入映射到输出的函数。目前广泛应用的激活函数包括ReLU、TanH、Sigmoid、Leaky ReLU 和Swish。本文采用了一种新的激活函数Mish,用于PP-YOLOv2。

Mish 函数的优势在于它没有上限,可以达到任意高度,避免了饱和问题。对于负值,Mish允许轻微的梯度流动,而不像ReLU 那样具有硬零边界。平滑的激活函数使得信息能够更好地传递到神经网络中,从而提高准确性和泛化性能。通过验证实验发现,与Swish 相比,Mish 的精度提高了0.494%,与ReLU 相比提高了1.671%[3]。

Mish 函数是在保障有信息流动的情况下而存在下限的,这样可以使函数规范正则化,

Mish 函数的表达如式(1)所示:

此函数是非单调的,可以使大多数的神经元得到更新,具备较好的稳定性,并且其效果优于其他激活函数,比如Swish、ReLU函数。

与其他大多数模型一样,PP-YOLOv2 也采用了Mish 激活函数,但此模型没有将其应用在骨架网络,原有骨架网络预训练参数已经让网络在ImageNet 上top-1 准确率高达82.4%,所以此模型仍倾向于采用原有的骨架网络,而将Mish 激活函数应用在了detection neck,使其能够更好地发挥作用(图3)[4]。

图3 PP-YOLOv2检测颈的架构

2.3 损失函数的改进

IoU Aware Branch[2]:在PP-YOLO 中,我们注意到IoU Aware Branch 的计算采用了一种与初衷不符的软权重格式(soft weight format)。为了改进这一问题,我们引入了soft label format。式(2)表示IoU aware loss。

t为锚点与ground-truth-bounding box 之间的IoU,p为IoU Aware Branch 的原始输出,为sigmoid激活函数。仅计算阳性样本的IoU aware loss,并通过替换损失函数进一步提高了模型的性能。这一改进使得模型在性能上比之前有了显著的提升。

3 实验

3.1 实验环境

实验中用到电脑配置以及系统环境如下:CPU 为12th Gen Intel(R)Core(TM)i9-12900HX;GPU 为GeForce RTX 3090;运行内存为24 GB;操作系统为Windows 10;Python 版本为3.9;深度学习框架为PyTorch 1.13.1。

3.2 实验数据集

本次实验数据集总数为5012 条,本文所分析的课堂五种典型学生行为状态包括:看手机、喝水、写字、听讲和走神,其中,数据集的人工标注部分共有2506 条(约占50%),半自动标注部分共有2506 条(约占50%),实验部分数据集如图4所示。

图4 实验数据集

本次实验的数据集共有5012 条数据,每条数据包含一张图片和其对应的标签,分为以下五类:listen,write,phone,drink,trance,并按7∶2∶1的比例划分为训练集、验证集、测试集,具体情况如图5所示。

图5 实验数据集

3.3 实验说明

此次实验选择PP-YOLOv2 ResNet50 预训练模型作为本实验的目标检测模型,图像输入尺寸为128px×128px;图像均值为0.485、0.456、0.406;图像方差为0.229、0.224、0.225。迭代次数设定为300;学习率为0.0001;批大小为30;保存间隔为30。

数据集标注完后,分为两个文件夹,JPEGImage 文件夹存放图像,格式为JPG;Annotations 文件夹存放标注后以XML 格式的数据,文件分布如图6所示。

图6 实验文件分布

3.4 实验结果

为了评估模型性能,我们将针对listen、write、phone、drink 和trance 这五个标签,采用准确率(Precision)、召回率(Recall)和平均精度(Average Precision, AP)作为评估模型性能的指标,评估结果件表1。

表1 评估结果

在实验中,PP-YOLOv2 预训练模型在300 次迭代后,达到了99.3%的mAP 值,如图7所示,实验结果显示,在300 次迭代后,PP-YOLOv2 预训练模型在该5012 条数据集上表现出了很高的性能和准确率。整体mAP 值达到了99.3%,说明模型具有很好的目标检测能力。各个类别的mAP 均在96%~100% 之间,相对均衡,表明模型在识别不同类别的目标时具有相近的性能。

图7 实验数据集

实验中某次写的动作检测结果及准确率如图8所示。

图8 实验预测结果

3.5 实验分析

由于实验结果已经达到了较高的精度,可以认为模型在这个数据集上的泛化能力较好。但是,实验仅进行了300 次迭代,可能还存在进一步优化的空间。在实际应用中,可以尝试增加迭代次数或调整训练参数,以进一步提高模型的性能和准确率。同时,为了更好地评估模型的泛化能力,可以在更大规模的数据集上进行实验。

增加迭代次数:尝试将迭代次数提高到更高的水平,如500、1000 或更多次,观察模型在更多迭代次数下的性能变化。这将有助于了解模型是否已经收敛,或者是否还有进一步优化的潜力。

调整训练参数:尝试调整学习率、权重衰减、优化器等训练参数,以探索在不同参数设置下模型的性能表现。这可以帮助找到最佳的参数组合,进一步提高模型的准确率。

交叉验证:采用K折交叉验证的方法,将数据集划分为K份,依次将每一份作为验证集,其余K-1 份作为训练集。这将有助于评估模型在不同训练集和验证集上的性能,并减少过拟合的可能性。

测试实际场景:将模型应用到实际场景中,例如在线课堂、教室等环境,观察模型在实际应用中的表现。这将有助于验证模型在实际场景中的效果,以及发现可能存在的问题和需要改进的地方。

4 结语

课堂行为检测在教育领域具有重要意义,能够评估学生的参与度和专注度。然而,传统的行为检测方法通常复杂且耗时。为了解决这一问题,本文提出了基于PP-YOLOv2 的课堂行为检测方法。该方法充分利用了计算机视觉和深度学习技术,通过采集和标注学生样本数据集,并进行数据预处理,实现了高效准确的行为检测。

在研究中,我们采用了Mish 激活函数,这一创新的激活函数提升了模型的学习能力和行为检测的准确性。通过实验结果的分析,我们发现该方法在真实的课堂环境中展现出了良好的性能,并为教育工作者提供了高效准确的课堂行为检测工具。

这项研究对于实时监测和评估学生行为,改善教学效果以及促进个性化学习具有重要意义。它为教育工作者提供了一种可靠的手段,可以实时监控学生的行为表现,帮助他们更好地了解学生的学习状态和需求。这样的个性化反馈和指导能够提升教学质量,培养学生的自主学习能力。

未来的研究可以继续扩展该方法的应用范围,例如在不同年级、学科和教学场景下的行为检测。此外,还可以进一步优化算法,提高模型的性能和效率,以满足教育领域对于实时行为检测的需求。通过持续的研究和创新,我们可以不断推动教育技术的发展,为学生和教育工作者创造更好的学习和教学环境。

猜你喜欢

卷积函数性能
二次函数
基于3D-Winograd的快速卷积算法设计及FPGA实现
第3讲 “函数”复习精讲
二次函数
函数备考精讲
提供将近80 Gbps的带宽性能 DisplayPort 2.0正式发布
从滤波器理解卷积
基于傅里叶域卷积表示的目标跟踪算法
Al-Se双元置换的基于LGPS的thio-LISICON的制备与性能表征
强韧化PBT/PC共混物的制备与性能