基于面部多特征融合的学生网课疲劳检测研究

2023-10-29 01:32黄丽凤陈建华
计算机仿真 2023年9期
关键词:网课嘴巴人脸

黄丽凤,陈建华

(泉州信息工程学院软件学院,福建 泉州 362000)

1 引言

科学技术的发展带动远程教育,使其成为了一种在某些特殊情况下非常有效的教育方式[1]。远程教育不仅学习方式灵活,时间安排自由,资源利用率高,更能够为学生提供较好的师资和丰富的学习资源,更加满足了学生的个性学习需求。但远程教育由于师生之间没有面对面授课,彼此之间互动性不足,监管力度不够,个别学生学习主动性不积极,容易产生较差的学习效果。同时,远程教育中,通常由学生独自完成,没有家长或者教师的监督,因此,在学习过程中,极容易出现走神和磕睡等情况[2]。为了约束网课课堂,帮助教师了解学生在网络课堂中是否具有疲劳状态并根据学生的疲劳状态作出相应的预警是目前远程教育需要研究的一个问题。

目前,基于计算机视觉的人脸识别疲劳检测是一个研究热点。张闯[3]等提出了基于人脸特征的MTCNN检测方法,根据人脸面部特征计算眼睛纵横比,眼睛闭合百分比和嘴巴纵横比,然后按不同的权重相加得到疲劳值,根据疲劳值判定驾驶员疲劳程度并对其提出预警。该方法能够有效地检测出驾驶员正视的状态,如果驾驶员的头部发生偏转,检测出来的结果就会有一定的误差。陈潘等提出了基于卷积神经网络的学生课堂疲劳检测算法,通过Leaky ReLU定位眼部特征[4],融合嘴部特征状态进行疲劳检测,据此判定学生上课的疲劳状态。武昆亮等[6]提出了一种基于眼部特征与头部姿态自适应的疲劳检测系统。通过BFR(Blinking Frequency ratio)与头部姿态算法进行综合判定[6],检测出疲劳状态,但参数过于单一。基于前面研究方法中的不足和计算机视觉研究的发展,本文提出了一种改进的面部多特征融合疲劳检测算法[5]。

本文以2020级软件工程1班学生为研究对象,要求学生在网课期间打开摄像头。首先,通过学生端摄像头识别学生的眼睛、嘴巴关键特征点,实时计算学生眼部的纵横比Er值和嘴部纵横比Mr值,采用了眼部自适应闭眼阈值和基于欧拉角的特征校正算法降低了个体中由于眼睛大小不同,头部偏转所产生的面部特征偏差,进一步提高了检测算法的准确性。接着计算学生眨眼频率、眼睛闭合时间、打哈欠频率等数据,并对这些数据进行加权求和,得出学生的疲劳状态。最后根据学生的疲劳状态提示学生。这样可以实时地监测学生磕睡情况,有效提高网课课堂的教学管理和教学质量,起到辅助教师管理课堂的功能。

2 相关工作

计算机视觉技术广泛应用于人脸识别,比如人脸打卡考勤、人脸账单支付等。本文主要利用计算机视觉技术[8],实现基于多特征因素融合检测学生在网络课堂中是否有疲劳状态。研究主要包括三个过程:1)采用OpenCV结合PHOG算法,通过学生端摄像头,检测学生的面部区域,如果末检测到面部,表明学生开着视频,并没有在上课,教师给予警告;如果检测到学生的面部区域,利用Dlib工具包标定学生的眼睛、嘴巴、面部等关键特征的坐标点。2)根据眼睛、嘴巴、头部的关键点坐标位置,计算出学生在平视状态和不同头部姿态下校正的眼睛纵横比Er值,嘴巴纵横比Mr值。3)根据Er和Mr的阈值,计算出学生在课堂中的眨眼频率fblink,PERCLOS和打哈欠频率fyawn,按照不同的权重对这三个特征融合相加,等到疲劳(Fat)值,根据Fat值判断学生是否有疲劳现象,并对有出现疲劳现象的学生进行分级并对学生提出相应的预警,系统实现流程图如图1。

图1 系统实现流程图

2.1 人脸检测关键点识别

本文人脸检测算法采用改进的PHOG(Pyramid Histogram of Oriented Gradients,分层梯度方向直方图)[8]。1)为了降低人脸在不同的环境中受光照强度和阴影等因素的影响,抑制图像的噪声干扰,用式(1-2)灰度化和归一化处理图像;2)根据图像的像素点f(x,y)利用式(3-5)分别计算水平x方向和垂直y方向的梯度以及梯度幅值和梯度方向。3)将图像分成若干个称为单元格cell区域,然后统计每一个cell的梯度大小和方向,建立梯度方向直方图。4)将多个cell单元组合在一个连通的大区域块block中,然后对每个block进行对比度归一化处理,串联出图像的特征;最后将图片分割成不同尺度,计算出每个尺度的HOG值并将这些HOG值按顺序拼接,得到Phog特征。如图2。

图2 人脸关键点识别

利用PHOG算法,可以在各种不同的情况下检测出人脸并识别出眼睛、嘴巴等特征的关键点信息,如图3。

图3 人脸68个关键点定位

2.2 人脸眼部和嘴巴状态分析

根据人体生理研究发现,当一个人处于疲劳状态时,面部会出现眨眼频繁,嘴巴张大打哈欠,眼睛闭合等现象。因此,学生是否处于疲劳状态可以通过人体面部特征进行判断。

1)眼睛纵横比

人体疲劳状态的一种有效判断方法是眼部的运动和眨眼信息。实时计算眼睛纵向坐标与横向坐标之间的欧式距离比值[10]得到的眼睛纵横比是眼部疲劳检测有效的方法之一。根据前面dlib 提取人脸的68个点可以得到眼睛的特征点。假设以右眼为例,如图4。用式(1)计算眼睛Er值。

图4 眼睛特征点标定

(1)

由于人的眼睛有大有小,存在差异,为了减少这种差异带来的Er值精准性判断,本文在闭眼阈值中加入了自适应计算。这样可以根据单位时间Er值的变化范围相对准确地计算出不同人的闭眼阈值,自适应闭眼阈值Ert[12]用式(2)计算。

Ert=Ermin+q*(Ermax-Ermin)

(2)

其中q取值0.2。

2)嘴巴纵横比

人体疲劳状态的另一种有效参考依据是嘴巴的张大程度。dlib 提取人脸的68个点中分别用12个点表示嘴巴外轮廓和8个点表示嘴巴内轮廓,由于嘴巴内部更能表示嘴巴的张开程度[13],因此,在这里计算8个点的内轮廓。嘴巴内轮廓如图5,用式(3)计算嘴巴Mr值。

图5 嘴巴内轮廓特征点标定

(3)

2.3 人脸特征较正

头部姿态指的是人体在3D空间中头部发生偏转产生的。头部姿态通常指的是人的抬头、低头、摇头和转头等状态。当人的头部姿态发生变化时,检测出来眼睛和嘴巴张开的长宽就会发生变化。在人脸特征中,眼睛和嘴巴张开的宽度长度比值是决定Er值和Mr值的关键。但由于头部姿态位置的不同,Er值和Mr值也随之变化。因此,在人脸检测中,需要对特征数据进行校正。

通常来说,头部姿态可以表示成俯仰角(抬低头)、偏航角(摇头)及翻滚角(转头)组成的欧拉角。下面以学生抬头低头为例,分析Er值的校正。

当学生出现抬头或低头现象时,人脸头像映射到图像时,俯仰角和眼睛长度发生变化,而眼睛的宽度不变。假设平视状态下测得学生眼睛长度为h0,俯仰角为α0,而在点头或抬头状态下测得眼睛长度为h1,俯仰角为α1[11],因此有:

(4)

公式转换可得:

(5)

同理推断,学生在摇头时,w0和w1表示学生在平视和摇头时眼睛映射的长度,β0和β1表示学生在平视和摇头时眼睛的偏航角。因此有

(6)

所以,当学生头部发生变化时,眼睛的纵横比Er1可表示为:

(7)

(8)

同理,学生在平视姿态下嘴巴长宽比Mr0和头部姿态发生变化时嘴巴长宽比Mr1的关系可表示为

(9)

根据学生上课时眼睛的正常活动,当眼睛平视屏幕时,Er值会保持在设定的阈值0.28之间,当眼睛睁到一定时间,会出现眨眼现象,这时Er值会迅速下降,间隔几帧后眼睛睁开,Er值又回到阈值周围,保持相对平稳的状态。但是当学生出现疲劳时,眼睛闭上时间较长,Er值偏离阈值的持续帧数较长。学生不同状态的Er值波动折线图如图6和图7。

图7 眼睛疲劳Er值分布

根据学生上课时嘴巴的正常活动,当学生没有张嘴,认真听课时,Mr值保持在一个相对平稳的阈值中,当张嘴回答问题时,嘴巴张大,Mr偏离阈值,但是又迅速回归平稳。但是当学生出现打哈欠情况时,Mr值会持续偏离阈值并保留一定的时间。学生不同状态的Mr值波动折线图如图8和图9。

图8 嘴巴正常说话Mr值分布

图9 嘴巴打哈欠Mr值分布

2.4 疲劳参数计算

1)PERCLOS

卡内基梅隆研究所经过反复的实验与论证,提出了度量疲劳的物理量PERCLOS[12]。该算法是目前被国际上公认的最有效的疲劳检测算法。PERCLOS指测得眼睛在单位时间内闭合时间和总时间的占比,用式(10)计算,其中,单位时间指的是1分钟。本系统的眼部疲劳判定采用实验证明效果最好的P80标准。

(10)

2) 眨眼频率

表3中A1、A2、B1区域为可忽略风险区域. 风险水平可接受,当前风险应对措施有效,无须采取额外的技术、管理等控制措施;

人体的一种正常生理现象是眨眼,一般来说,正常人平均每分钟眨眼的次数是15~20次,如果一个人在一分钟内眨眼超过二十次甚至高达四十次,就可以判断为眨眼睛频率,用式(11)计算。当人处于疲劳时,眨眼的频率会随着疲劳的加深而逐渐明显。因此,本系统把眨眼频率也做为疲劳状态的判定标准之一。

(11)

3) 打哈欠频率

当人处于疲劳状态时,嘴巴会张开再闭合,出现打哈欠现象。因此,可以根据嘴巴这一特征用式(12)计算打哈欠频率,这也是评价疲劳状态的另一个重要指标。

(12)

4) 疲劳特征融合

由于每个个体在不同方面表现存在差异,如果单靠某一特征进行疲劳判定可能出现误差,准确率较低。因此,在疲劳状态判定时,需要从多个方面进行考虑,比如人体的眨眼频率,打哈欠的频率,眼睑闭合时间占比等。本系统用式(13)采用对不同的疲劳特征赋予不同的权重进行加权求和融合计算。

Fat=α0*PERCLOS+α1*fblink+α2*fyawn

(13)

3 实验测试与结果分析

本文通过网课模拟实验采集监测图像样本数据集。在该数据集中,包含了50名学生自愿者模拟了在不同室内光照下呈现的正常状态和疲劳状态。为了保证实验结果的准确性,摄像头的拍摄分辨率是每秒30帧,每个视频采集持续7秒。经过重复5次实验测试,将检测结果分成了几个不同的疲劳等级。

根据人体生理特征表现,当一个人处于严重疲劳时,闭眼瞌睡的症状比如眨眼、打哈欠更明显。因此,综合疲劳状态与每个特征的关联及对各项指标的认识,分别给不同特征分配不同的权重。为了使实验数据更有说服力,分别选择了两组不同的权重来对疲劳特征融合。见表1。

表1 各疲劳特征权重分配

根据疲劳特征融合公式及疲劳等级分配的权重,可以计算机出融合后的疲劳等级,见表2。

表2 疲劳等级划分表

传统的疲劳特征计算采用的是单特征完成,本文利用的是多特征的融合计算疲劳特征,不同的计算结果见表3。

表3 不同特征的疲劳分析表

不同特征不同权重计算出来的疲劳值见表4。

表4 不同特征不同权重的疲劳分析表

从上表可以看出,当学生出现多特征疲劳状况时,分配的疲劳特征分配的权重不同,计算出来的结里也有差异,方案1更为精确。因此,本文采用方案1的物权重对疲劳值进行计算。

如果采用单特征进行疲劳检测,当学生吃东西或者大笑时,会影响检测的准确率,为了进一步验证本文提出方法的有效性,随机抽取6段学生网课视频数据进行分析。实验结果见表5。

表5 两种疲劳检测方法数据对比

根据多特征融合计算出学生网课时的状态。以实际检测到的数值对学生的疲劳状态进行分级,当出现严重疲劳时,给予”warning”提醒,当出现轻度疲劳时,给予“Attention”提醒。效果如图10。

图10 学生上课状态截图

4 总结

本文提出的学生网课疲劳检测方法能及时有效地检测出学生在网课中的疲劳状态,帮助教师发现并提醒学生,提升课堂管理水平,保证网课课堂教学质量。该方法通过具有更强抗干扰能力的PHOG算法对人脸进行标定,通过计算眼睛纵横比(Er)和嘴巴纵横比(Mr),得到学生脸部的实时特征。为了减少不同个体的眼睛大小、头部姿态对Er值和Mr值的影响,采用了眼部自适应闭眼阈值和基于欧拉角的特征校正。最后分别为不同的疲劳特征设置权重,融合加权计算,得到学生的疲劳值,解决了单一特征疲劳值计算容易受外界影响的问题,进一步提高了检测的准确性。实验表明,在学生网课疲劳检测中,本文的算法准确性较高,实时性较好,对监管网课课堂、提升网课教学质量有明显的作用。

猜你喜欢
网课嘴巴人脸
有特点的人脸
对网课不能听之任之
遏止网课乱象重在落实
嘴巴嘟嘟
是什么“网课”让“学生们”好评如潮
嘴巴不见了
『选』网课
好好的嘴巴
三国漫——人脸解锁
马面部与人脸相似度惊人