基于YOLOv8的学生情绪实时评估与舒缓系统研究
作者: 王浩羽 韦咏琪 莫雪梅 朱小吉 王凤领
摘要:在当代社会,学生群体在高强度学习的压力下,容易出现焦虑、抑郁等心理状态。然而,由于对心理健康疾病缺乏正确认识,学生往往错误地将焦虑和迷茫的心态等同于精神疾病,从而产生病耻感,不愿正视自我和现实问题。学生是国家未来的担当者,其心理健康不仅深刻影响校园的和谐氛围,也关系到社会风貌的塑造。因此,对学生群体进行及时的心理健康筛查已刻不容缓。本研究设计了一套系统,通过实时人脸捕捉技术,结合个性化的舒缓措施,实现对学生情绪变化的实时监测和分析。将人工智能领域中的人脸识别技术应用于学生心理情绪评估,是一个充满潜力和创新性的挑战。本研究还对该技术的潜在应用场景进行了相关探讨。
关键词:YOLO算法;深度学习;实时性;情绪识别;心理舒缓
中图分类号:TP18 文献标识码:A
文章编号:1009-3044(2024)34-0024-04 开放科学(资源服务)标识码(OSID) :
0 引言
心理测评是早期预防和发现心理疾病的有效方法。然而,传统的心理评估方法通常依赖于主观报告或自述,存在信息获取量不足、评估标准不统一以及时间成本高等问题。近年来,随着现代技术的快速发展,人工智能技术已被逐步应用于心理测试领域,其中基于计算机视觉和深度学习的自动化情绪评估技术逐渐受到广泛关注。
本文研究了一种基于YOLOv8算法的动态人脸实时捕捉学生情绪评估与舒缓系统。该系统将YOLO技术应用于人脸实时捕捉,能够在较低计算成本的情况下实现较高的检测准确率,有效提取学生的面部表情信息。同时,系统结合了个性化的心理舒缓措施,二者相辅相成,实现了对情绪变化的实时监测与分析[1]。
1 本系统相关理论和技术
1.1 卷积神经网络(CNN) 的结构[2]
1) 数据输入层(Input Layer) 。 主要负责处理原始图像数据,包括去均值、归一化、PCA白化等预处理步骤,以确保数据的一致性和可处理性。
2) 卷积计算层(Convolutional Layer) 。卷积计算层是CNN最核心的层次,包含两个关键操作:局部关联和窗口滑动。局部关联指每个神经元(或滤波器,fil⁃ ter) 仅与输入数据的一个局部区域连接。窗口滑动是指滤波器在输入数据上滑动并进行卷积运算,以提取局部特征。
卷积运算的公式:
S (i, j )= (I∙ K )(i,j )= ΣmΣnI (i -m,j -n)∙ K (m,n)
式中:I 代表输入数据,K 代表滤波器,S 代表卷积结果。
卷积层还包含一些重要参数,例如卷积核的大小、步长(stride,即滤波器每次滑动的长度)和填充值(zero-padding,用于处理边界问题)等,这些参数对卷积操作的效果有重要影响。
3) ReLU 激励层(ReLU Layer) 。 ReLU 激励层位于卷积层之后,用于对卷积结果进行非线性变换,从而增强模型的非线性表达能力。
4) 池化层(Pooling Layer) 。池化层通常用于减少数据的空间大小(降维),降低网络复杂度,同时保留重要的特征信息。常见的池化操作包括最大池化(Max Pooling) 和平均池化(Average Pooling) 。
5) 全连接层(Fully Connected Layer) 。全连接层位于网络的后端,实际上是一个传统的多层感知机(MLP) ,用于将前面提取的特征映射到样本的标记空间。
6) 输出层(Output Layer) 。输出层的结构取决于具体任务的需求。例如,在分类任务中,通常使用softmax函数实现多分类;而在回归任务中,则使用单个神经元输出预测值。
1.2 YOLOv8算法的发展历程
YOLO算法经历了从YOLOv1到YOLOv10的发展历程,如图1所示。
本系统采用了成熟的YOLOv8算法,该算法继承了YOLO系列的实时检测特性[3],即使在低硬件配置下也能实现高帧率。与前代版本相比,YOLOv8的核心优势在于支持目标检测、分割、分类、追踪、姿态估计等多种计算机视觉任务,并显著提升了mAP(平均精度),这表明模型的检测精度得到了大幅提高[4]。
YOLOv8采用了先进的CSPDarknet53骨干网络和PANet特征聚合模块,进一步优化了特征提取和物体检测性能。同时,YOLOv8引入了无锚的Ultralytics头(Ultralytics Head) ,相较于传统的基于锚点的方法,无锚设计提高了检测过程的准确性和效率。此外,为了在资源有限的设备上实现实时目标检测,YOLOv8还推出了轻量化版本,如YOLOv8-tiny。
1.3 YOLOv8算法介绍
YOLOv8的模型结构如图2所示,由Backbone、Neck 和Head三部分组成。其主干网络(Backbone) 包含卷积层 (Conv,Convolution) 、c2f(CSPDarknet53 to 2-Stage FPN) 结构和SPPF(Spatial Pyramid Pooling) 模块[5]。
其中,卷积层用于提取目标特征,第一个卷积核采用3×3卷积。在YOLOv7版本中,开始将卷积操作(Conv) 与批归一化(Batch Normalization) 进行了合并处理,从而大幅提高了模型的运行速度。批归一化(tuBraet cmha Npso)r m进a行liza归tio一n)化 是处指理对,卷其公积式后如得下到:的特征图(fea⁃ture maps)进行归一化处理,其公式如下:
其中:γ 是缩放系数,β 是平移系数, μ 和σ2 分别为均值和方差,且均由每个通道(channel) 单独计算。 同时,YOLOv8使用了SiLU(Sigmoid Linear Unit) 作为模型的激活函数。SiLU函数的定义如下:
f (x) = x∙ sigmoid ( x )
与ReLU(Rectified Linear Unit) 函数相比,SiLU函数具有更强的非线性表达能力,从而显著提升了网络的表征能力。
此外,YOLOv8在c2f模块中相较于YOLOv5的c3 模块,增加了更多的分支跨层连接和切分(split) 操作。通过对特征图进行切分、提取新的特征并拼接,c2f模块能够更好地学习残差特征,从而提升模型的特征表达能力。
在损失函数方面,YOLOv8取消了YOLOv5中的对象损失函数(Objectness Loss) ,而采用分类损失和回归损失两种损失函数。损失函数用于计算网络模型预测值与真实值之间的距离,通过优化损失函数,可以确定模型的改进方向。损失函数的值越小,代表模型的预测能力越强,精准度越高。
YOLOv8的分类损失函数为二元交叉熵(BCE,Bi⁃nary Cross Entropy),其公式如下:
式中:yi=1时表示属于该类,yi=0时表示不属于该类。二元交叉熵损失把属于该类和不属于该类的熵相加,保证了损失函数在结果上不会为零。
在回归损失函数上,YOLOv8采用了以下公式,
IoU(Intersection over Union) 是指检测到的预测框与真实框的交集面积与并集面积之间的比值,用于衡量检测框的定位精度。公式中,ρ 表示矩形框之间的欧式距离,c 是矩形框的对角线距离,α代表权重系数。此外,引入了 DFL(Distribution Focal Loss) 损失,大幅提升了模型的泛化能力[7]。
2 学生情绪评估模块
2.1 图像输入
YOLO模型通过 OpenCV或 PIL库对输入图像进行预处理,具体步骤包括:1) 像素调节:对图像像素值进行调整以适配模型输入需求;2) 双线性插值尺寸调整:将图像调整为固定尺寸;3) 卷积操作与特征提取:通过卷积层提取图像的局部特征;4) 归一化处理:对像素值进行归一化处理,使数据分布更均匀; 5) 颜色空间转换:将图像从 RGB 转换为灰度或其他颜色空间。 为了提高模型的训练效率和鲁棒性,还会采用随机裁剪和随机缩放等数据增强方法[8]。
2.2 数据集分析
本研究基于经典的FER2013人脸表情识别数据集对模型进行训练。
FER2013是一个在深度学习社区中被广泛用于人脸表情识别任务训练和评估的数据集,最初由 Pierre-Luc Carrier 和 Aaron Courville 创建,并于 2013 年发布。 该数据集包含 35 887 张灰度图像,每张图像的分辨率为48×48 像素,并标注了七种不同的情感类别:开心(Happy) 、愤怒(Angry) 、悲伤(Sad) 、害怕(Fear、惊讶(Surprise) 、厌恶(Disgust) 和中性(Neutral) 。
FER2013 数据集中的图像来源于互联网,图像质量各异,但具有较高的真实性,能够很好地反映真实世界中的数据多样性。这种多样性为模型的训练和评估提供了良好的基础[9]。
本研究使用 YOLO 算法对 FER2013 数据集进行训练[10],并使用其中四分之一的数据作为测试集。同时,邀请了 1 000 名学生志愿者对训练好的模型进行多次验证。
在模型训练过程中,损失函数值不断减小,验证集的 loss 值在 380 次训练后趋于稳定,最终达到 0.128。模型对多种情绪的平均准确率为 96.41%,召回率为 97.98%。
图 5展示了模型训练过程中损失函数的变化趋势,可以看出模型在训练过程中逐渐收敛。图 6和图 7分别展示了模型的精度和召回率曲线,表明模型在情绪识别任务中取得了良好的性能。
经过多次测试后可以得出结论,系统能够有效捕捉测试者的面部表情,并准确评估其情绪状态。
2.3 识别的准确性分析
通过混淆矩阵分析模型的平均精度(AP) 和平均精度均值(mAP) ,可以评估模型的训练性能和准确性。在分析中,将真实标签设定为正类。
Precision(精确率)表示正确预测的正类样本占所有预测为正类样本的比例,其公式为:
precision = TP/TP + FP
其中,TP 表示真正类样本数,FP 表示假正类样本数。
Recall(召回率)表示正确预测的正类样本占所有实际正类样本的比例,其公式为:
recall = TP/TP + FN
其中,FN表示假负类样本数。
AP值是通过 Precision-Recall 曲线计算得出的,用于表示单一类别的预测平均精度;而mAP 值则表示所有类别的平均精度均值。模型的AP值和mAP值越高,表明模型的预测准确性越高。
3 学生舒缓心理模块
3.1 趣味测试
系统的趣味测试是学生心理缓解模块的核心部分。该模块包括性格测试和情绪测试,配备了丰富的题库,旨在帮助学生通过答题测评更好地了解自己的性格特征和情绪状态。当学生进入系统并选择趣味测试后,可以根据自身需求选择不同类型的测试。
1) 性格测试。性格测试模块具备完善的测试题库,帮助学生发现自己的性格特征。测试过程中的问题充满趣味性,有效缓解了学生在测试过程中可能产生的枯燥感,保障测试的顺利进行。测试完成后,系统会将测评结果汇总并反馈给学生,帮助其更好地认识自己。
2) 情绪测试。情绪测试旨在帮助学生了解自己的情绪状态及情绪管理能力。通过测试问题和系统建议,学生可以更好地理解和控制自己的情绪,从而提升情绪管理水平。