冯宇航 叶辉 黄文禧 徐梓浩 林锦樱
摘要: 疲劳预警在各领域都有重要意义,如工作学习状态的预警、驾驶疲劳预警等。通过从用户端摄像头提取出人脸,选取眼部、嘴部等特征,计算人眼睛的开合程度、嘴部开合度、头部偏移程度,并结合罗德里格斯旋转公式的头部姿态检测算法,设计一个适用于多场景的疲劳检测融合算法,并且同时介绍了疲劳检测预警系统设计架构和核心算法过程。实验结果表明,通过以上三种特征信息融合进行疲劳检测具有较高的准确度,可适用于多种场景的疲劳检测。
关键词:人脸识别;特征提取;疲劳检测;头部多姿态;融合识别
中图分类号:TP302 文献标识码:A
文章编号:1009-3044(2021)13-0012-03
Abstract: Fatigue early warning is of great significance in various fields, such as the early warning of work and learning status, driving fatigue and so on. By extracting the face from the client camera, selecting the eye, mouth and other features, calculating the opening and closing degree of human eyes, opening and closing degree of mouth, head offset degree, and combining with the head posture detection algorithm of Rodriguez rotation formula, a fatigue detection system suitable for multi scene is designed. The system architecture and core algorithm process are introduced. The experimental results show that the fatigue detection based on the above three feature information fusion has high accuracy and can be applied to a variety of scenes.
Key words:Face recognition; Feature extraction; Fatigue detection; head multi poses; fusion recognition
1 引言
1.1 疲勞检测方法研究现状
目前业内已经有采用物联网数字化技术实现驾驶员精神状况的检测系统,它基于车联网应用的,以适应行驶安全检测的新需求。这种数字化的系统的应用融合姿态信息的多姿态人脸检测方法,基于生物特征的头部姿态估计方法,融合驾驶员自身多种生物特征的疲劳驾驶模型。大多数以嵌入式为主,普及率也比较低,目前研究疲劳驾驶预警系统的成果较以往增多了,但是还未见到一种方法被大家所公认。其原因主要是:虽然每一种方法都在某一方面具有了一定的说服力和可操作性,但是距离车载、实时、客观的本质要求还有其不可克服的弊端。同时,不仅是驾驶疲劳,在工作和学习中也需要有疲劳预警系统,但目前的预警系统多是以疲劳驾驶为主,对于在办公桌前工作或是在书桌前学习都不太好能够适应需求。
1.2 背景分析
据不完全统计,50%的交通安全事故起源驾驶员意识不清醒从而酿成车祸。引起驾驶员主动驾驶意外最多的原因包括疲劳驾驶、注意力不集中。同时很多上班族长时间看电脑、手机对眼睛的影响是非常明显的,会引发视疲劳。为了避免这种现象的发生,人们在工作时就应该给自己留出休息的时间。但许多人在工作时往往会过度投入,在自己眼睛疲倦时也毫无察觉,而疲劳预警系统就能够通过对员工的眼睛进行实时的检测以获取当前的精神状态,当精神状态过于疲劳时会发出警告,告知员工应该适当休息,防止视疲劳的加深。
1.3 疲劳检测预警目标
对目前的种种现状,无论是疲劳驾驶、学习或者工作,研究出一款疲劳预警系统显得十分的重要,无论对于社会方面还是对于经济方面。它既要能够正确的判断使用者的疲劳状况,又要能够便于用户的使用方便,因而设计一款基于移动端和PC端的预警系统是比较合适的。驾驶者通过使用手机实时监测当前的疲劳情况,长期坐在办公室工作的用户使用电脑检测要更加方便一些,对于学习的学生而言,他们可以自行选择使用手机或者是电脑进行检测。我们希望通过系统能够减少道路上因疲劳而产生的交通事故,让工作和学习的用户能够更好地调整自己的休息时间,从而提高效率。
2 研究方法
2.1 基于头部多姿态融合识别的疲劳检测方法
2.1.1 基于眼睛闭合程度
研究了基于卡内基梅隆提出的度量疲劳的物理PERCLOS。PERCLOS方法通过眼睛闭合所占时间比例进行疲劳的判断,目前有三种判断准则:EM准则:瞳孔被眼睑覆盖超50%,判定眼睛为闭合;P70准则:瞳孔被眼睑覆盖超70%,判定眼睛为闭合;P80准则:瞳孔被眼睑覆盖超80%,判定眼睛为闭合。计算原理如图1。
2.1.2基于嘴巴开合程度
基于MAR算法的哈欠检测,此算法同样利用了Dlib提取了嘴部的8个特征点,计算嘴部纵横比,若纵横比提升至MAR阈值之上,再迅速下降,则判断为打哈欠。
2.1.3 基于头部的偏移
基于罗德里格斯旋转公式的头部姿态检测算法,并使用PERCLOS中的P70算法,以0度俯仰角(pitch)与0度滚转角(roll)作为基准,若偏移程度超过最大值的30%,则判断处于疲劳状态。
2.2 单一生物特征阈值的设定
眼部阈值的设定:计算眼睑实时值与用户录入的初始值对比,利用PERCLOS中的P80定理,若计算得出的PERCLOS值>P80,则判断用户处于疲劳;同时检测眼睛闭合时长,若眼睛持续闭合超过3s,则判断用户处于疲劳状态。
嘴部阈值的设定:人在打哈欠时,与说话不同,嘴巴的张开程度相对于正常说话明显更大,且持续的时间更长,团队通过定义PMRCLOS参数作为打哈欠的判断标准,若PMRCLOS值维持在60%以上并保持3s以上,则判断用户处于打哈欠的疲劳状态。
头部偏移阈值的设定:当用户处于疲劳状态时,会产生打瞌睡现象,头部则会发生一定程度的偏移,在使用程序时,要求用户录入一张坐姿端正的图片,并以此作为基准的初始值,在往后的检测过程中,当头部的偏移程度超过初始值的30%,判断用户处于打瞌睡的疲劳状态。
2.3 系统运行与实验
系统通过摄像头对用户实时检测,获取用户人脸并框定头部位置,标记人脸特征点,分别通过计算眼部闭合程度、嘴部张合程度以及头部的偏移程度,结合三种计算值与设置的阈值比较,当用户出现一种以上条件超过预设阈值,则通过铃声等方式提醒用户合理安排时间休息。融合多姿态后的疲劳检测预警系统运行流程如图4所示。
通过设备相机采集用户正面头部的情况,每隔2s提取一帧图像,再利用Dlib库和头部姿态检测算法选取眼部、嘴部的特征点和框定头部的位置并设为初始值,通过融合PERCLOS、MAR及头部姿势3个指标计算,通过计算眼睛长宽比确定用户是否出现瞌睡,通过计算嘴部长宽比确定用户是否打哈欠,通过头部偏移程度确定是否打瞌睡。当系统检测到用户处于疲劳状态时,即以P80>40%,MAR>60%,头部偏移程度>30%为判定疲劳标准时,系统将通过主动发出提示音等方式,提醒用户适当休息,合理安排时间。
4 结论
使用单一指标检测用户处于疲劳状态有一定的准确性,以眼睛作为检测指标的准确度与以嘴部为检测指标的效果更好,且在实验测试过程中团队发现以头部姿态作为指标的检测方法的难度较高,系统在多帧静态图片的对比中较难做出正确判断。与单一指标作为检测指标相比,融合三种检测指标后得到的用户疲劳检测的准确度更优,误差性较小。
以头部面部多姿态作为疲劳检测指标的可行性,通过算法搭建检测系统,仍存在以下不足需要进一步开展研究:本文基于头部面部多姿态作为指标,系统在采集用户数据后判断用户是否处于疲劳,但改为对疲劳的等级进行划分,仅有疲劳和正常两个标准,而疲劳不是一个瞬间的过程,以防用户接近设定阈值时系统未能及时提醒。目前的算法是基于Dlib库的应用,通过Dlib基于C++编写的优势,让其拥有良好的跨平台特性,本文的研究对开发完备功能的App的开发提供了基础。
参考文献:
[1] 武昆亮.基于面部特征与头部姿态的疲劳驾驶检测[D].上海:东华大学,2020.
[2] 孙显彬,唐洪伟,文妍.疲劳驾驶预警系统的研究现状和发展趋势[J].青岛理工大学学报,2007,28(3):91-94.
[3] 龚淑娟.基于面部多指标的货运司机疲劳驾驶检测[J].物流技术,2020,39(9):74-81,95.
[4] 趙雪娟.基于ASM与信息融合的驾驶员疲劳检测技术的研究[J].科学技术创新,2020(30):120-121.
[5] 陈梅芬,陆蓉.在线学习疲劳状态识别方法及应用研究[J].深圳职业技术学院学报,2020,19(5):23-29.
[6] 敖邦乾,杨莎,令狐金卿,等.基于级联神经网络疲劳驾驶检测系统设计[J/OL].系统仿真学报:1-9[2021-03-08].https://doi.org/10.16182/j.issn1004731x.joss.20-0703.
[7] 刘佰强.基于人脸视频智能分析的日间驾驶员不安全行为检测分类与预警系统[D].西安:西安理工大学,2020.
[8] 陆权.关于公交车驾驶员安全驾驶视觉特性的分析[J].时代汽车,2021(4):197-198.
【通联编辑:唐一东】