基于改进YOLOv5的学生面部表情识别 | ![]() |
2. 马鞍山学院, 安徽 马鞍山 243000
2. Ma'anshan University, Ma'anshan 243000, China
随着人工智能技术的发展, 面部表情识别在安防、医疗和疲劳驾驶等领域有广泛的应用, 但大多采用的是基于卷积神经网络(CNN)实现的, 基于YOLOv5的表情识别研究还不多, 同时把表情识别应用到智慧课堂教学质量保障的研究也不多。冯满堂等[1]将表情识别用到了智能教学系统中; 程萌萌等[2]在构建的智能教学系统中用面部表情识别实现情感模块的反馈; 詹泽慧[3]通过运用表情识别技术提高了学生学习状态判断的准确率。
现如今, 教师在课堂上课时, 学生的面部表情在一定程度上反映了对当时知识的掌握情况, 教师有时通过他们的表情能辅助自己判断出他们对知识点的理解程度, 从而调整教学策略。但是课堂教学中一个班级普遍有四五十个学生, 而教师在课堂授课中不可能时时刻刻顾及到每个学生, 这样造成了教师不能有效地了解每个学生对知识点的掌握程度, 影响教学质量。即使通过人工查看课堂视频数据等方式来监管学生诸如学习掌握情况、心理是否异常等等, 也已不能满足目前课堂教学的需求。本课题通过计算机视觉对学生面部表情进行识别, 实现实时检测学生面部表情、提高效率、降低漏检误检等情况, 进而辅助授课教师了解学生课堂学习情况, 这样也有利于学校管理者发现学校教育教学中存在的问题。
现阶段, 面部表情识别多是通过CNN完成特征提取, 最后通过分类回归完成目标分类定位。如乔桂芳等[4]提出一种改进卷积神经网络与支持向量机结合的面部表情识别算法, 该算法实验结果表明, 所提算法在Fer2013数据集上取得了73.4%的识别准确率。郑瑞等[5]提出自适应卷积网络, 经验证在Fer2013数据集上, 改进的模型识别精度分别为73.51%, 进一步提高了卷积神经网络模型的识别精度。
然而上述面部表情识别检测都是基于非单阶段式算法, 不足之处在于一是随着样本的增加会出现数据稀疏, 进而造成空间浪费、计算复杂度增高[6]; 二是对目标的实时检测速度较慢。为了减少计算量、满足对学生课堂面部表情实时检测需求以及环境背景复杂的特点, 本文选用了YOLOv5目标检测算法, 目前基于YOLOv5的面部表情识别研究还不多。原始YOLOv5算法在Fer2013数据集以及自构建数据集上对研究内容所涉及到的开心、伤心和中性(无感)三种表情整体识别精度为72%和83.1%。通过对原始算法的NMS改进、损失函数改进以及添加注意力机制模块, 改进后的YOLOv5算法在Fer2013数据集和自构建数据集上的识别精度有了进一步提升。
1 数据采集与处理Ekman和Friesen早在1971年就提出了表情编码系统的概念, 他们把人脸表情变化总结为6种: 生气、惊讶、厌恶、高兴、恐惧、悲伤, 并分析了这6种表情, 得到这6种表情是人类共性的结论[7]。随着研究的深入, 也有学者提出了7种、8种以及9种的面部表情。根据文献资料, 有以下研究涉及了学生面部表情, 如表 1所示。
表 1 学生面部表情分类表 |
![]() |
但是以上表情并不能直接应用到课堂教学反馈中。由于学生对知识的掌握程度大致可以分为掌握、困惑和未掌握三种情况, 为了更准确了解以上三种程度所对应的面部表情反馈, 笔者通过发布问卷的形式调查了掌握程度与面部表情反馈的关系, 调查对象涉及中职、高职和本科院校, 回收问卷430份(男: 265, 女: 165), 选用基本的生气、惊讶、厌恶、高兴、害怕、悲伤和中性(无感)7种表情, 调查结果如表 2所示。
表 2 掌握程度与面部表情反馈关系 |
![]() |
通过调查发现, 课堂上掌握教师所讲内容后更多的学生面部表现出的是开心和中性(无感); 困惑和未掌握时面部表现出最多的是伤心和中性(无感)。基于此, 本文最终将学生课堂面部表情识别定为每项占比较高的前两个表情, 最终确定为3个: 开心、伤心和中性(无感)。
本文将采用Fer2013数据集和自构建的学生课堂表情数据集。其中, Fer2013数据存在一些非人脸、标签错误的图像, 为了提高实验准确性进行了筛选删除清理后, 留下共计11 000张图片; 自构建的学生课堂表情数据集通过视频监控采集了学生的面部表情数据, 自构建数据集共计668张图片, 图片通过视频监控每帧画面提取标注。自构建数据集采样实例如图 1所示, 以某帧图像为例, 由于涉及学生面部隐私, 已马赛克处理:
![]() |
图 1 视频监控画面采样实例 |
由于摄像头角度限制、图像清晰度及远近的不同, 并非所有每帧画面的学生都可以用正常捕捉到面部表情数据, 故帧画面里有一部分学生面部表情无法采集标注。由于样本集属于小规模样本, 课题组采用马赛克数据增强的方式提高泛化能力。增强流程如图 2所示。通过以上方式弥补样本少量的不足, 丰富数据, 加强鲁棒性。
![]() |
图 2 马赛克数据增强流程 |
2 YOLOv5算法改进 2.1 YOLOv5算法概述
目前, 目标检测算法有很多, 代表性算法有RetinaNet、SSD(Single Shot MultiBox Detector)、以及YOLO[18-21](You Only Live Once)等。YOLO是目前用的最多的目标检测算法, 并且现阶段到了YOLOv5版本[22], 逐渐成为物体检测的主流框架[23]。YOLO系列算法是将目标检测当作回归问题来解决, 直接从特征提取阶段来获得检测框边界和类别概率。YOLO算法具有检测速度快、准确率高的特点, 经过发展, 目前有四个版本, 分别是YOLOv5m、YOLOv5l、YOLOv5x和YOLOv5s。YOLOv5s相较于前面几个具有模型小、检测速度快等优点, 所以本文选用YOLOv5s模型。YOLOv5 v6.0网络模型结构如图 3所示。
![]() |
图 3 YOLOv5 v6.0网络模型结构 |
YOLO首先将输入分成s×s个栅格, 每个小格子会生成不同长宽比的边界框, 当目标框的中心点在某个小格子si上时, 则检测由该格子负责, 同时会预测边界框位置、分类概率以及置信度。相比于之前YOLOv5 v5.x版本, YOLOv5 v6.x版本的网络结构更加简洁, 主要目的是提高速度和推理性能。v6版本更新包括了用Conv(k=6, s=2, p=2) 替换原网络中的Focus, 以便导出其他框架; SPPF代替原网络的SPP, 并且将SPPF放在主干最后一层, SPPF的引入保证在准确率相似的条件下减少计算量以提高速度, 使用3个5×5的最大池化, 代替原来的5×5、9×9、13×13最大池化; 主干中的C3层重复次数从9次减小到6次。本文将在YOLOv5 v6.0基础上改进以实现学生课堂面部表情的识别。
2.2 非极大值抑制NMS改进学生课堂面部表情识别在某种程度上属于密集目标检测, 尤其是在机房这种复杂环境下还可能存在机器遮挡问题。传统的NMS(Non Maximum Suppression, 非极大值抑制)主要用来筛选预测框, 通过IoU(Intersection over Union, 交并比)来抑制冗余的预测框, 而重叠部分会使筛选存在错误。为了保证召回率候选框输出有时会有多个, 多余的候选框会影响检测精度, 因此需要利用NMS过滤掉多余的候选框进而得到最佳的预测输出[24-25]。非极大值抑制NMS方法简单且效果明显, 对检测的结果也起到了重要作用, 因此在检测算法中有着非常广泛的应用。目前几种常见的NMS有基本NMS、Soft NMS、Softer NMS、Iou-Net和DIoU-NMS等多种方法。其中基本NMS方法是利用得分高的边框抑制得分低且重叠度高的边框。然而基本NMS存在一些缺陷, 当两个物体较近重叠时, 简单地过滤掉得分低且重叠度高的边框可能会导致漏检。
针对以上问题陆续产生了一系列改进的方法, 其中, Soft NMS方法相比较基本NMS做了改进, Soft NMS中对于IoU交并比大于阈值的边框并没有像基本NMS那样将其得分直接置为0, 而是降低了边框的得分, 具体公式如下:
$ N_i=\left\{\begin{array}{c} N_i, \operatorname{iou}\left(B, b_i\right)<T \\ N_i\left(1-\operatorname{iou}\left(B, b_i\right)\right), \operatorname{iou}\left(B, b_i\right) \geqslant T \end{array}\right. \text { 。} $ | (1) |
从公式中可以看出通过利用边框得分, 与IoU交并比共同来确定新的边框得分, 如果当前边框与边框B的IoU交并比超过阈值T, 边框得分线性衰减。但是上述公式是非连续函数, 即当某个边框与边框B的IoU交并比超过阈值时会产生跳跃, 进而对检测结果造成影响, 所以进一步对Soft NMS做了改进, 最终Soft NMS计算公式如下:
$ N_i=N_i \mathrm{e}^{\frac{\operatorname{iou}\left(B, b_i\right)^2}{\sigma}}, \forall b_i \notin D_{\circ} $ | (2) |
采用这种方式对于某些得分很高的边框在后续计算中可能被作为正确检测框。NMS与Soft NMS都使用了预测分类置信度作为衡量指标, 即置信度越高位置也更准确。本文用Soft NMS替代原有NMS从而有效提升了检测的性能。
2.3 引入注意力机制CA模块注意力机制模块有很多, 比如SE(Squeeze and Excitation)、CBAM(Convolutional Block Attention Module)、ECA(Efficient Channel Attention)等。但现有的注意力机制对通道的处理一般是采用最大池化或者平均池化, 这样会损失掉物体的空间信息。本文引入CA(Coordinate Attention)注意力机制, 该机制将位置信息嵌入到了通道注意力中。
为了获得对图像宽和高的注意力并对精确的位置信息进行编码, CA注意力机制将输入的特征图分为两个方向, 分别是高和宽, 经过全局平均池化后得到两个方向的特征。假设给定输入X, 每个通道分别使用池化核的两个空间范围(W, 1)或(1, H), 分别沿水平和垂直坐标进行编码。则在c通道在高度h处的输出可以表示为:
$ z_c^h(h)=\frac{1}{W} \sum\limits_{0 \le i < W} x_c(h, i)。$ | (3) |
第c通道在宽度w处的输出可以写成:
$ z w_c(w)=\frac{1}{H_0} \sum\limits_{0 \le j < W} x_c(j, w)。$ | (4) |
最后通过乘法加权计算得到在高度和宽度方向上带有注意力权重的特征图[26]。
对于课堂面部表情识别来说, 当课堂学生过多或者后排学生面部距离摄像头较远时, 经过试验, 在网络Backbone中引入CA注意力机制模块后可以提升一定的检测精度。因为在Backbone中引入CA模块可以对特征图中的通道特征进行增强, 进而学习到更多有效的细节信息。CA模块在Backbone嵌入后的网络结构如图 4所示。
![]() |
图 4 改进后的Yolov5网络结构 |
2.4 损失函数改进
在原损失函数基础上改进, 采用了更为全面的EIOU(Efficient-IOU)。YOLOv5原作者采用CIOU(Complete-IOU)作为边界框回归损失函数, CIOU是在DIOU(Distance-IOU)基础上改进而来的, 其计算公式如下:
$ L_{\mathrm{CIoU}}=1-\mathrm{IoU}+R(P, G)=1-\mathrm{IoU}+\left(\frac{\rho^2(p, g)}{c^2}\right)+\alpha v, $ | (5) |
其中:
$ v=\left(\frac{4}{\pi^2}\right)\left(\arctan \left(\frac{w g}{h^g}\right)-\arctan \left(\frac{w p}{h^p}\right)\right)^2, $ | (6) |
$ \alpha=\frac{v}{(1-\mathrm{IoU})+v}。$ | (7) |
从以上可以看出, CIoU和DIoU的不同之处在于最后一项αv, v度量了两个框的长宽比的距离, α相当于一个平衡系数, 取值由IoU和v共同决定。在计算v关于wP和hP的梯度时, 会在分母上出现wp2+hp2, 而CIoU中wP和hP均是归一化后的值, 会导致wp2+hp2的结果很小, 容易出现梯度爆炸。因此, 官方对损失函数做了优化, 把wp2+hp2移除了。
CIOU虽然考虑了边界框回归的重叠面积、中心点距离以及纵横比三个方面, 但是纵横比是相对值, 存在一定的模糊, 同时也未考虑到难易样本的平衡问题。针对这一问题, 2021年有学者在CIOU的基础上将纵横比拆开, 提出了EIOU。EIOU损失定义如下[27]:
$ L_{\mathrm{EloU}}=L_{\mathrm{IoU}}+L_{\mathrm{dis}}+L_{\mathrm{asp}}=1-\mathrm{IoU}+\frac{\rho^2(b, b g t)}{e^2}+\frac{\rho^2(w, w g t)}{e_w^2}+\frac{\rho^2(h, h)}{e_w^2} 。$ | (8) |
由上述公式可知, 该损失函数由重叠损失, 中心点距离损失和宽高损失三个部分组成, 前两部分延续CIOU中的方法, 但是收敛速度相比之前更快。其中ew和eh是覆盖两个Box的最小外接框的宽度和高度。考虑到回归中也存在训练样本不平衡, 尤其是样本困难问题, 所以在EIOU里融合了Focal Loss。Focal Loss为了同时调节正、负样本与难易样本, 给出了如下损失函数:
$ F L\left(y_t\right)=-\alpha_t\left(1-y_t\right) \beta \ln p_{t}。$ | (9) |
上式该损失函数中, 引入了αt权重以此来改善样本的不均衡问题, 进而提升精度。式中(1-yt)β是为了调节难易样本的权重。当一个边框被分类错误时yt较小, 则(1-yt)β接近于1, 损失几乎不受影响; 当yt接近于1时, 表明分类预测较好, 是简单样本。式中β是一个调制因子, β越大则简单样本对损失的贡献就会越低。综上, EIOU在CIOU基础上分别计算宽高的损失取代纵横比, 同时引入Focal Loss解决样本不平衡问题。
3 实验对比与结果分析本文实验平台是64位Windos10操作系统, 处理器为Gen IntelR Core TM i5-11400H CPU, NVIDIA RTX 3050显卡, 采用Pytorch深度学习框架, 开发环境为pytorch1.8, python3.7。训练轮数epochs设置为300, 按照6∶2∶2划分了训练集、验证集和测试集。为了有效评价实验效果, 本次实验分自构建数据集和Fer2013数据集在算法改进前后的对比实验, 并采取检测精度(P)和平均检测精度(mAP0.5)两个指标作为主要评判标准。
3.1 YOLOv5算法改进前后在自构建数据集上的对比实验本文将改进后的算法命名为YG-YOLOv5s。按照6∶2∶2划分了训练集、验证集和测试集。自构建数据集在原始YOLOv5s模型中和改进算法YG-YOLOv5s模型中的检测精度和mAP0.5曲线如图 5所示。
![]() |
图 5 算法改进前后在自构建数据集中的三种曲线对比图 |
算法改进前后在自构建数据集上的检测结果对比如表 3所示。
表 3 实验数据对比表 |
![]() |
从表中可以看出, 改进后算法相比改进前, 在自构建数据集中检测精度P由原来的83.1%提高到88.3%, 精度提升5.2%;mAP0.5大致在训练150轮后相比较原算法逐渐提升, 由原来的85.7%提高到了87.4%, 提升1.7%。对于多目标检测分类问题, 以上说明改进后算法对检测效果起到了一定的提升作用。
3.2 YOLOv5算法改进前后在Fer2013数据集上的对比实验为了进一步验证所提算法模型的有效性, 如前所述, 将Fer2013表情数据集进行了筛选清洗处理处理后, 开心、伤心和中性(无感)3类表情共计11 000张图片。YOLOv5改进前后在Fer2013数据集上的检测精度与mAP0.5曲线如图 6所示。
![]() |
图 6 算法改进前后在Fer2013数据集中的三种曲线对比图 |
算法改进前后在Fer2013数据集上的检测结果对比如表 4所示。
表 4 实验数据对比表 |
![]() |
从表中可以看出, 改进后算法相比改进前, 在Fer2013数据集中检测精度P提升2.5%;mAP0.5提升1.6%。以上说明, 所提算法在两种不同数据集中有一定的提升效果。
4 结论本文针对学生课堂面部表情在环境复杂情况下实时检测率低、时效性差等问题, 以YOLOv5s网络模型为基础, 用Soft NMS替换原有的NMS方法来改进非极大值抑制, 添加CA注意力机制模块来提高算法的特征提取能力, 用EIoU替换CIoU来提高算法目标框的表示能力。实验结果表明, 改进后的算法在自构建数据集与基本不影响速度的前提下对学生课堂面部表情进行识别, 其检测精度P提高了5.2%, mAP0.5提高了1.7%。该方法在一定程度上能有效提高面部表情检测精度, 辅助教师判断学生学习状态。
[1] |
冯满堂, 马青玉, 王瑞杰. 基于人脸表情识别的智能网络教学系统研究[J]. 计算机技术与发展, 2011, 21(6): 193-196. |
[2] |
程萌萌, 林茂松, 王中飞. 应用表情识别与视线跟踪的智能教学系统研究[J]. 中国远程教育, 2013(3): 59-64. |
[3] |
詹泽慧. 基于智能Agent的远程学习者情感与认知识别模型: 眼动追踪与表情识别技术支持下的耦合[J]. 现代远程教育研究, 2013(5): 100-105. |
[4] |
乔桂芳, 侯守明, 刘彦彦. 基于改进卷积神经网络与支持向量机结合的面部表情识别算法[J]. 计算机应用, 2022, 42(4): 1253-1259. |
[5] |
郑瑞, 付文涵, 杜俊霄, 等. 自适应卷积神经网络在面部表情识别中的应用[J/OL]. 电讯技术, 2022: 1-9. [2022-04-15]. https://kns.cnki.net/kcms/detail/51.1267.TN.20220413.2001.002.html.
|
[6] |
宋丹, 陆奎, 戴旭凡. 基于改进的卷积神经网络邮件分类算法研究[J]. 重庆工商大学学报(自然科学版), 2022, 39(3): 20-25. |
[7] |
潘仙张, 陈坚, 马仁利. 基于面部表情识别的课堂教学反馈系统[J]. 计算机系统应用, 2021, 30(10): 102-108. |
[8] |
唐康. 人脸检测和表情识别研究及其在课堂教学评价中的应用[D]. 重庆: 重庆师范大学, 2019.
|
[9] |
WHITEHILL J, SERPELL Z, LIN Y C, et al. The faces of engagement: Automatic recognition of student engagementfrom facial expressions[J]. IEEE Transactions on Affective Computing, 2014, 5(1): 86-98. |
[10] |
GÜRAY, TONGUÇ. Automatic recognition of student emotions from facial expressions during a lecture[J]. Computers & Education, 2020, 148: 103797. |
[11] |
孙波, 刘永娜, 陈玖冰, 等. 智慧学习环境中基于面部表情的情感分析[J]. 现代远程教育研究, 2015(2): 96-103. |
[12] |
徐振国, 张冠文, 孟祥增, 等. 基于深度学习的学习者情感识别与应用[J]. 电化教育研究, 2019, 40(2): 87-94. |
[13] |
SHARMA P, JOSHI S, GAUTAM S, et al. Student engagement detection using emotion analysis, eye tracking and head movement with machine learning[M]. Cham: Springer Nature Switzerland, 2022: 52-68.
|
[14] |
GRAESSER A, CHIPMAN P, KING B, et al. Emotions and learning with AutoTutor[J]. Frontiers in Artificial Intelligence and Applications, 2007, 158: 569-571. |
[15] |
LEHMAN B A, ZAPATA-RIVERA D. Student emotions in conversation-based assessments[J]. IEEE Transactions on Learning Technologies, 2018, 11(1): 41-53. |
[16] |
D'MELLO S, PICARD R W, GRAESSER A. Toward an affect-sensitive AutoTutor[J]. IEEE Intelligent Systems, 2007, 22(4): 53-61. |
[17] |
CALVO R A, D'MELLO S. New perspectives on affect and learning technologies[M]. New York: Springer, 2011.
|
[18] |
JOCHER G, STOKEN A, BOROVEC J, et al. ultralyt-ics/yolov5: v5.0 - YOLOv5-P6 1280 models, AWS, Su-pervise. ly and YouTube integrations [M]. Zenodo, 2021.
|
[19] |
BOCHKOVSKIY A, WANG C Y, LIAO H Y M. YOLOv4: Optimal speed and accuracy of object detection[EB/OL]. [2022-04-15]. https://arxiv.org/abs/2004.10934.
|
[20] |
REDMON J, FARHADI A. YOLOv3: An Incremental Improvement[EB/OL]. [2022-04-15]. https://doi.org/10.48550/arXiv.1804.02767.
|
[21] |
REDMON J, FARHADI A. YOLO9000: better, faster, stronger[C]//2017 IEEE Conference on Computer Vision and Pattern Recognition (CVPR). Honolulu, HI, USA. IEEE, 2017: 6517-6525.
|
[22] |
张漪, 张美月. 基于改进YOLOv5的交通监控视频车辆检测方法研究[J]. 内蒙古公路与运输, 2022(2): 50-55. |
[23] |
王婉婷, 姜国龙, 褚云飞, 等. 从RCNN到YOLO系列的物体检测系统综述[J]. 齐鲁工业大学学报, 2021, 35(5): 9-16. |
[24] |
刘高亮. 基于注意力机制和神经网络结构搜索的目标检测方法研究[D]. 西安: 西安电子科技大学, 2020.
|
[25] |
宋周. 基于多尺度特征的城市车辆检测与识别[D]. 徐州: 中国矿业大学, 2021.
|
[26] |
褚文杰. 基于YOLOv5的坦克装甲车辆目标检测关键技术的研究[D]. 北京: 北京交通大学, 2021.
|
[27] |
ZHANG Y F, REN W Q, ZHANG Z, et al. Focal and efficient IOU loss for accurate bounding box regression[J]. Neurocomputing, 2022, 506(C): 146-157. |