基于计算机视觉的疲劳及注意力检测算法∗

2021-06-29 08:42杨国为陈雪鑫
计算机与数字工程 2021年6期
关键词:关键点头部驾驶员

孙 玥 杨国为,2 陈雪鑫

(1.青岛大学电子信息学院 青岛 266071)

(2.南京审计大学信息工程学院 南京 210000)

1 引言

随着交通运输业的发展,恶性交通事故频繁发生,这对人民的生命财产构成了威胁。其中,疲劳驾驶是导致交通事故频发的原因之一。现有的疲劳驾驶检测算法可根据疲劳特征分为三类:基于生理特征的算法、基于行为特征的算法和基于视觉检测的算法。文献[1~4]提出了一种基于脑电信号(Electro Encephalo Gram,EEG)的睡眠检测模型。然而,EEG信号易受噪声影响并且难以收集。EOG(Electro Oculo Gram,EOG)[5~7]比EEG更容易收集,可用于免疫轻微噪音。然而,安装用于收集的头部装置仍然相对麻烦。行为特征包括驾驶人行为特征和车辆行为特征,刘洋洋[8]提出的方法虽然可以检测司机疲劳状态,但是算法复杂,反映速度慢且识别率低。文献[9]使用驾驶模拟器来建立模拟驾驶场景。并根据需要确定要获得的数据,以确定车辆是否失控。但会受到路面条件和车辆型号的限制。基于视觉的方法是通过使用由相机拍摄的图片来检测疲劳,以检测驾驶员是否具有长时间的疲劳状态。文献[10~11]提出了一种基于机器视觉的头部姿态估计新方法。这类方法对驾驶员是非侵入式的,更为方便自然,成本也能得到很好的控制。

本文采用计算机视觉的方法首先利用Dlib构架人脸识别器,继而利用Dlib官方训练好的模型进行68点标定,提取出眼部、嘴部、下巴周围的特征点的坐标,根据双眼关键点计算眼睛纵横比,类比眼睛纵横比,提出一种新的哈欠检测方法—嘴部纵横比,根据计算结果判断驾驶员是否处于瞌睡状态和打哈欠状态,为了进一步判断驾驶员状态,本文相比较文献[12]加上了对驾驶员注意力的判断,进一步判断驾驶员的状态,如果出现不安全行为,发出预警进行提醒,从而实现驾驶员疲劳及注意力检测。实验证明,该方法在疲劳驾驶检测的准确率、实时性等方面取得明显的性能提升。

2 算法设计

本文提出的基于计算机视觉的疲劳及注意力检测算法,该算法主要分三个部分:包括根据双眼关键点计算眼睛纵横比的瞌睡检测、根据嘴部关键点计算嘴巴纵横比的哈欠检测以及根据关键点估计人脸姿态的注意力检测,具体算法流程图如图1所示。

图1 算法流程图

3 基于计算机视觉的疲劳及注意力检测算法

3.1 Dlib库

Dlib库是一个开源的人脸识别库,其提供了一个68关键点的检测模型,而且是按照顺序排列的,所以,使用时可以方便地找到、调用需要的关键点,模型如图2所示。

图2 68点模型图

3.2 瞌睡检测

本文使用基于Soukupova T[13]提出的眼睛周围特征点的眼睛纵横比(EAR)的概念。在Dlib中,左眼和右眼分别对应了6个特征点,图3中的六个特征点p1,p2,p3,p4,p5和p6是面部特征点中相应眼睛的六个特征点。基于这6个特征点可以计算眼睛纵横比EAR来实现眼部疲劳状态的判别。

当眼睛打开和关闭时,眼睛特征点之间的关系如图3中的曲线所示。可以看出,当眼睛打开和关闭时,纵横比是不同的。因而ERA在眼睛睁开和闭合时会有不同的数值范围,可以根据ERA的值判断眼睛是张开还是闭合。

由文献[13]可以得出眼睛纵横比EAR的计算公式:

图3 基于眼睛周围特征点纵横比EAR

在检测到ERA小于0.25时判断为闭眼状态,同时开始统计连续闭眼帧数,普通的眨眼状态一般持续3到5帧,若连续闭眼帧数达到20帧则可判定驾驶员处于瞌睡状态,发出瞌睡预警,如图4所示。

3.3 哈欠检测

鉴于Soukupova T提出的基于眼睛周围特征点EAR概念的结果的有效性,本文提出一种用于瞌睡检测的新方法—嘴部纵横比MAR(mouth aspect ra⁃tio)。在Dlib中,嘴对应于20个特征点,类似于瞌睡检测,如图5所示。选取其中相应的6个特征点p1、p2、p3、p4、p5、p6,基 于 这6个 特 征 点 可 以 计 算MAR:

纵横比在嘴巴张开和闭合时会有所不同,因而MRA在嘴巴睁开和闭合时会有不同的数值范围,我们可以根据MRA的值判断嘴巴是张开还是闭合。

图4 瞌睡状态预警

图5 嘴部特征点

在检测到MRA大于0.60时判断为张口状态,同时开始统计连续张口帧数。普通的讲话,惊喜和其他状态一般都有少量的连续帧。若连续张口帧数达到15帧即可判定驾驶员处于哈欠状态,发出哈欠预警,结果如图6所示。

图6 哈欠状态预警

3.4 注意力检测

驾驶员的注意力状态也是判断一个驾驶员是否出现问题的重要指标[14]。进行注意力检测首先根据眼角、鼻尖、下巴关键点估计人脸姿态,然后判断驾驶员的视线是否超出安全区域,如果实现超过安全区域达到指定帧数10帧时,则判断驾驶员注意力分散,发出危险预警。

3.4.1 头部姿态估计

近年来,头部姿态估计已成为计算机视觉领域的一个重要研究课题,成为疲劳检测和人脸识别研究的关键技术[15]。许多疲劳检测系统可以显示正面图像的良好识别性能,但是对于越来越多的面部姿势角度,其识别准确度将严重下降。因此,头部姿势估计是判断驾驶员注意力是否集中的重要指标。

在本文中,将二位图像用于姿势估计,并且三维标准模型以特定角度旋转直到模型上的“三维特征点”的“二维投影”与待测试图像上的特征点(图像上的特征点显然是二维)尽量重合。然后,基于二维图像中检测到的关键点估计头部姿势。

在精细估计方法中,头部姿态估计是三维头部偏转的精确测量,即头部偏转角度相对于某个坐标平面的推断过程。理想情况下,头部姿势在三个轴上记为[16]X轴(Pitch方向)的磁头范围为-90°~90°、Y轴(Roll方向)的磁头范围为-90°~90°、围绕Z轴(Yaw方向)头部姿态范围为-90°~90°。

利用Dlib获取的六个人脸关键点(鼻尖、下巴、左眼左角、右眼右角、嘴角左侧、嘴角右侧)的坐标与三维坐标对照后,估计头部姿势,得到的结果是Yaw,Pitch和Roll三个参数的结果。为了便于观察和处理,将得到的旋转向量进一步转化为四元数,再转化为欧拉角(弧度),最后转化为角度。最终结果为:X为左右转头的角度;Y为上下转头的角度;Z为扭头的角度。结果如图7所示。

图7 头部姿态估计结果

3.4.2 视线范围检测

基于视频图像处理的视线检测方法因具有广阔的发展前景并且越来越受到很大的重视。

本文设置左眼角p1、右眼角p2、下巴p3三个关键点的位置坐标,据此计算出视线安全区域的左上角p4、右下角p5的坐标,从而可以得到视线安全范围。当视线连续超出该范围达到10帧时,判定为注意力分散,发出危险预警。

4 实验结果与分析

实验里用的视频数据库来自于YawDD数据库,数据库中的视频,男女驾驶者被要求坐在汽车的驾驶座。该视频是真实的和变化的照明条件。数据库中包含两个数据集,在第一个数据集中,摄相机安装在车的前视镜下面。每个参与者有三个或四个视频,每个视频包含不同的嘴巴状态如正常、说话/唱歌和打哈欠。在第二个数据集中,摄像机安装在驾驶员前面的仪表板上,并且每个参与者在同一视频中具有不同嘴部状态的视频。

对视频中的数据进行检测,运用本文提出的疲劳及注意力检测算法,实验结果如下。

当驾驶员正常驾驶时,驾驶员的各项显示正常,旋转角度也正常,并且给出了safe提示,如图8所示;当驾驶员出现打哈欠的状态时,系统检测到驾驶员出现问题,并且发出警告,如图9所示;当驾驶员出现转头,即检测到不在正常的视线范围内的时候,系统会给出danger的警告,如图10所示。

图8 正常驾驶结果

图9 出现打哈欠状态

图10 出现转头状态

5 结语

本文针对驾驶员疲劳问题基于计算机视觉提出了一种新方法,首先利用Dlib构架人脸识别器,继而利用Dlib官方训练好的模型进行68点标定,提取出眼部、嘴部、下巴周围的特征点的坐标,根据双眼关键点计算眼睛纵横比,类比眼睛纵横比,提出了一种新的哈欠检测方法,即嘴部纵横比。为了进一步判断驾驶员状态,本文又加上了对驾驶员注意力的判断,进一步判断驾驶员的状态,如果出现不安全行为,则发出警报提醒。实验证明,该方法在疲劳驾驶检测的准确性和实时性方面取得了明显的性能提升。但是本文在检测驾驶员夜间行驶时准确率没有白天时候的高,后续将继续研究驾驶员在夜间行驶的情况。

猜你喜欢
关键点头部驾驶员
基于高速公路的驾驶员换道意图识别
基于眼动的驾驶员危险认知
论建筑工程管理关键点
水利水电工程施工质量控制的关键点
驾驶员安全带识别方法综述
自动驾驶走向L4 企业头部效应显现
利用定义法破解关键点
旅行休憩小头枕
请你发明
机械能守恒定律应用的关键点