龚淑娟
(福州大学 经济与管理学院,福建 福州 350108)
近年来,随着经济发展以及交通环境的改善,网上交易额逐年上升,我国物流业蓬勃发展的同时推动了货运市场的增长,公路运输是当前最主要的运输方式之一,而同时带来的是疲劳驾驶隐患。据国家交通运输部门统计显示,我国人为因素造成的交通事故有近20%-30%的重大事故是由于疲劳驾驶引起的。在物流运输中,长途货运司机疲劳驾驶是行业内最为普遍存在的现象之一。重大货运卡车交通事故中因驾驶员疲劳驾驶引起的占57%。仅2018年,在特大事故中,有近40%以上是由疲劳驾驶造成的。交通安全一直是国民关心的热点问题,在物流业持续发展、货运量剧增的今天,长途货运司机承担的不仅仅是安全驾驶的责任,还有自身安全以及由此带来的人员伤亡、公共设施及巨大的财产损失,从而造成不良的社会影响。由于长途货运司机长时间、高强度驾驶车辆,极易疲劳驾驶,安全问题迫在眉睫,社会各界都在寻求该问题的解决方案,但国内尚无系统完善的方法快速、准确地识别长途货运司机的驾驶状态。
国内外学者对疲劳驾驶进行了大量研究,主要可以分为疲劳对驾驶员的影响研究、疲劳检测技术研究以及疲劳驾驶检测方法研究等。Philip 等详细阐述了驾驶性能对一天中时间和过去24小时睡眠时间的依赖性。如果在24小时内睡眠被限制在两小时以内,驾驶员不适的感觉会增加数倍[1]。Matthews 和Desmond 提出了任务诱导疲劳或主动疲劳对驾驶表现的影响。在经历疲劳车辆控制时,信号检测和行人检测都显示疲劳对驾驶会造成恶化[2]。驾驶员年龄和驾驶持续时间在疲劳对驾驶员的影响表现中起着重要作用[3]。当驾驶任务持续时间增加时,转向误差和反应时间都会增加。长时间工作后,驾驶性能明显下降[4]。美国在近几十年关于疲劳驾驶的研究中取得了突破性的发展。美国约翰霍普金斯大学(Johns Hopkins University)研发出瞌睡驾驶人侦察系统(DDDS),该系统依靠doppler radar 获取司机的眨眼频率、持续时间等相关的疲劳信息,并采用信号处理模型判断驾驶员是否处于打瞌睡或疲劳状态[5]。美国Electronic Safety Products 公司研制出疲劳报警装置S.A.M(Steering Attention Monitor),该系统通过传感器检测方向盘的转动情况,4s内无发生转动即认为司机为疲劳驾驶,随即发生警报直至方向盘转动[6]。一些汽车企业也着手研发,2008年款皇冠上安装了丰田的第一个疲劳检测模块,该模块根据眼睑活动来检测睡意。近期丰田在小型和大型车辆上都部署了丰田安全感知计划[7]。丰田安全感知计划包括车辆检测、车道偏离和行人检测。日产汽车驾驶员注意力警报通过建立基线来适应驾驶员的行为,对转向校正误差进行连续性统计分析,以检测偏离基线的情况[8]。大众汽车的休息辅助系统通过车道跟踪系统、踏板使用和不稳定的方向盘运动来判断驾驶员疲劳程度[9]。美国应用科学实验室(ASL)设计并开发了一种基于视频的眼睛追踪软件,该软件观察瞳孔反射以测量眼睛运动[10]。日本的先锋公司依据驾驶员的生理状态设计了一种基于心跳速率防止驾驶员疲劳驾驶的系统[11]。
目前疲劳检测研究已经较为成熟,司机疲劳驾驶指标主要包括车辆行为与驾驶员生理指标。但由于研究环境受限,仍然需要开发一种在所有可能的情况下都能很好地工作的实时和精确的技术。且在实际应用中,需要物流企业或者运输单位、司机个人采购设备,但这类设备的单价往往偏高,且安装程度复杂,操作繁杂,导致疲劳驾驶检测的普及程度不高。因此,本文将着手研究多生理信号融合的货运司机疲劳检测,研制一个低成本、易操作的疲劳检测和预警系统以改善现有状况。
随着科学技术的发展与进步,疲劳驾驶的检测方法由早期基于生理指标的客观评测发展到人体行为检测和车辆或司机操作行为检测,每种方法因其特点不同各有优缺点,专家学者们仍在不断完善疲劳驾驶检测方法的科学性。
生理指标是人体真实反应所产生的信号,具有一定规律且准确可靠。基于生理指标的客观评测法所采用的生理信号指标主要包括中枢神经生理指标和肌电信号(EMG)指标。
(1)中枢神经生理指标。人体中枢神经系统能够快速感知疲劳变化,二者间有着密切联系。人体感受器官的脉冲流与大脑皮质的反馈相结合,接收刺激后能够共同刺激网状激活中枢系统,并使其维持于高待命状态中。当刺激消失后脉冲流减少,激活水平降低,因此容易产生疲劳状态。当前生理信号可以分为心脏、大脑、眼睛信号。检测疲劳的生理信号变化的精确方法如EEG、PPG、ECG和EOG等。
(2)EMG 指标。表面肌电信号是对皮肤表面肌肉产生的电势进行测量。肌电信号传感器通过电极记录肌肉细胞产生的电势。从表面肌电信号的时域和频域信号中提取的特征可用于预测肌肉疲劳。
驾驶员面部和头部运动的特征是疲劳的一些最明显的症状。身体特征包括眨眼频率、闭眼持续时间、PERCLOS、姿势、凝视和点头频率。基于物理特征的人体行为疲劳检测系统可以大致分为基于眼睛、嘴和脸/头的技术。
(1)基于眼部状态参数。人类有上下眼睑,当人体产生疲劳时,眼部的运动会表现出明显特征,诸如闭眼率、眼睑距离、眼睛睁开百分比及眼睑的扫视运动等特征被证明是判断疲劳的合适指标。目前科学可靠的检测参数有PERCLOS 参数(眼睛在单位时间内的闭合程度)、AVRs参数(人体眨眼幅度与速度的比值、人体眼睛扫射幅度与速度的比值)等。
(2)基于嘴巴闭合。眼睛活动是疲劳检测的热门方法,打哈欠和张嘴也是检测疲劳的良好指标。通过相应技术识别画面中人脸,检测嘴巴是否处于打哈欠状态。一段时间内打哈欠计数决定了司机的疲劳程度。
(3)基于司机头部偏移。通常情况下当司机处于疲劳状态时,头部会不自觉的产生偏移,包括点头、歪头及摇晃。司机处于疲劳状态时头部会垂的更低,点头动作增多,幅度增大。通过传感器检测一段时间内司机头部位置变化情况可判断司机是否疲劳驾驶。
司机在正常状态下驾驶时,车辆保持稳定有序前进,疲劳降低了驾驶员的工作能力。车道交叉和方向盘角度等特征的偏差是驾驶能力下降的标志。当司机处于疲劳状态时容易产生一些不当操作或反应迟缓等异常活动,如刹车和油门上的压力变化,驾驶员座椅上的载荷分布和车速也是驾驶员疲劳的有力指标。车辆特征可分为方向盘角度、车道偏离和姿态变化。在车头安装摄像头或传感器获取车辆相关行为,以判断司机疲劳状态也是当下可靠的方法之一。
(1)车辆行驶状态。司机清醒状态下能够保证行驶平稳,其中SWA法就是获取车辆的方向盘转角,从方向盘角度数据计算近似熵。依据计算自适应分段线性近似(APLA)估计疲劳状态的相似性,以此判断司机疲劳驾驶是当下热点方法。除方向盘转角外,车道偏离也被广泛用于驾驶员疲劳检测中,
(2)汽车操作行为。汽车操作行为主要是基于人车交互特性的检测方式,疲劳对驾驶员的驾驶行为有直接影响,当驾驶员处于疲劳状态时,对外界反应较为迟缓。因此可以通过获取货车制动踏板、加速踏板、与前车车距,以及方向盘调整等行为信息,判断司机的驾驶状态。
各类检测方法对比分析见表1。生理指标提供可靠和准确的结果,因为它们代表真实的内部状态;然而,对于诸如脑电图、心电图和表面肌电信号的数据采集,必须将多个电极连接到身体。电极与身体的连接使得系统本质上是侵入性的,这对于实时驾驶员疲劳检测来说不太理想,且通过多个电极进行的脑电信号检索非常容易受到来自外部因素噪声的影响。生物传感器既复杂又昂贵,信号需要进行大量预处理(以避免噪音),并且容易导致驾驶员移动。对于实时驾驶员疲劳检测,由于人体行为的物理特征和车辆特征都不是侵入性的,似乎更可取。因为缺乏警惕会影响车辆控制或偏离,基于车辆特征的方法有利于确定困倦。疲劳可能不会对每个人的车辆特征产生相同的影响。与眨眼率相比,在横向位置的标准偏差中可观察到显著的个体差异。车辆特征很容易受到个人驾驶习性、天气和交通状况的影响。
表1 各类检测方法对比
考虑到本文是为了设计一套便捷有效且低成本的检测系统,为了更简易高效地提取司机疲劳特征,对比分析三种检测方法,选择采用人体行为检测。利用Vahid K 和Josehin S 提出的68 个驾驶员面部特征点获取眼睛状态,基于回归树集合得到的特征点具体分布如图1所示[14]。
图1 面部特征分布
(1)PERCLOS 评价指标。现有研究通过大量实验对比常用的面部疲劳驾驶指标后证实,在面部指标中PERCLOS 评价指标能够最有效地检测出司机的疲劳状态[12]。PERCLOS 指标(Percentage of Eyelid Closure over the Pupil Over Time)是指在单位时间内眼睛闭合时间超过某一阈值的时间在总时长的占比。将人眼在正常状态下的瞳孔进行量化,计算出被试者眼睑遮住瞳孔的比值。本文依据文献[13]将PERCLOS 指标分为三个不同阈值的指标,具体见表2,PERCLOS指标计算原理如图2所示。
图1描述了左眼和右眼位置的特征点,通过计算左右眼特征点的位置信息,即可获得双眼的高、宽等指标。
表2 PERCLOS指标的阈值
其中P80疲劳指标计算公式为:
(2)EAR 评价指标。眼睛纵横比EAR 是指眼睛两侧点与其对应垂直点之间变动距离以及水平两点之间的横向变动距离之比[15],如图3、图4所示。当司机处于疲劳状态时,可以从眼睛获得疲劳最直观的反应之一,因此EAR 是一种合适的疲劳检测指标。图3中的P1至P6点分别对应图1中36至41点,右眼同理。
图2 PERCLOS指标计算原理
图3 睁眼特征示意图
图4 闭眼特征示意图
眼睛活动是疲劳检测的热门方法,打哈欠和张嘴也是检测疲劳的良好指标。通过相应技术识别画面中人脸,检测嘴是否处于打哈欠状态。一段时间内打哈欠计数决定了司机的疲劳程度。根据打哈欠与说话过程的开闭口的区分,说话时嘴部上下张开幅度小,频率高,嘴型持续时间短,而打哈欠正好相反。因此利用嘴部的纵横比MAR判断司机的疲劳状态不失为有效的方法。同样利用68面度特征点检测算法,得到8 个嘴部特征点,嘴部张开及闭合特征点如图5、图6所示。
图5 嘴巴张开特征点示意图
图6 嘴巴闭合特征点示意图
通常情况下当司机处于疲劳状态时,头部会不自觉的产生偏移,包括点头、歪头及摇晃。司机处于疲劳状态时头部垂的更低,点头动作增多,幅度增大。通过传感器检测一段时间内司机头部位置变化情况可以判断司机是否疲劳驾驶。本文根据文献[16]利用头部的偏航角、俯仰角及滚转角等空间几何指标判断头部是否发生前后左右倾斜等姿势。
目前常见的三种疲劳检测方法中,基于人体的生理指标抗干扰性强,准确性高,对于判断疲劳驾驶相较其它方式更为准确。尽管有多种数据作为信号源,但普遍采用单一信号类别判断,由于误差和信号干扰的存在,判断疲劳驾驶的准确性和可靠性还需进一步完善。且生理指标不易获取,设备成本高,接触式设备对于司机的干扰、隐私以及舒适性都存在一定的影响。而非接触式设备虽能有效改善不足,但是容易受到外界环境的影响。因此本文采用上节3 个面部指标检测方法,从多个角度、多维度对司机进行疲劳检测,并根据相应的指标对司机进行疲劳驾驶预警。本文设计的检测系统流程如图7所示。
(1)实验平台搭建。带Windows 系统、Python 软件、屏幕分辨率为1 366*768 的电脑,带前置摄像头PC机。
(2)图像采集及处理。通过相机实时采集司机驾驶情况,提取采集到的视频中的每一帧图像,主要利用灰度变换、直方图均衡以及平滑滤波等数字图像技术处理,达到降噪目的,再将图像输入面部检测跟踪模块。
(3)人脸定位及检测。结合MTCNN人脸检测算法与DSST视频单目标跟踪算法,对采集到的司机图像同时进行司机面部区域检测定位及连续性稳定检测与跟踪,将面部区域输入关键点检测部分[17]。为保证检测的准确性,构造一个13 维的长宽比特征向量(第N帧、第N-6帧和第N+6帧),然后将该特征向量输入线性SVM进行分类。
图7 疲劳驾驶检测系统流程图
(4)面部关键点检测及多指标疲劳计算。采用ERT 人脸对齐算法和EPNP 检测算法提取司机面部特征。采用多指标计算疲劳状态,基于多重疲劳检测,可有效避免当某一项检测受到外界或自身特殊情况干扰时产生的误差,保证检测系统的正确性。利用PERCLOS、EAR、MAR及头部姿势共4个指标计算,通过计算眼睛的长宽比确定视频流中是否出现眨眼,通过计算嘴部长宽比确认是否出现打哈欠,通过头部位移变化确定是否点头。
(5)疲劳预警。当系统检测到司机处于疲劳驾驶状态时,即以P80≥40%,EAR≤20%,MAR≥75%,头部俯仰角>69.6°,滚动角大于36.3°为判定疲劳标准时,连续检查20帧画面,当单位时间内眨眼次数达到5,P80≥40%,打哈欠次数达到15,或点头15 次时,将立即主动发出对应提示预警,提示司机应当及时停车休息。同时将司机驾驶状态信息发送至后台服务器,当后台收到提示后,可联系司机确认是否对疲劳驾驶做出应对,也可利用该信息对司机的运输工作进行合理安排。
为了保证平台的可运行和系统真实性,我们真实模拟系统在不同状态下对人像进行实时监控测试,其检测流程如图7所示,结果如图8-图11所示。
图8 清醒状态下检测图
图9 疲劳状态下头部姿势达到疲劳预警标准
图10 疲劳状态下打哈欠达到疲劳预警标准
图11 疲劳状态下眨眼达到疲劳预警标准
从图8 可知,系统可以监测到嘴部是否张开,以及单位时间内眨眼次数、EAR指数,MAR指数以及点头次数。当受试者处于清醒状态时,眼睛睁开,EAR为0.29,嘴巴正常情况下紧闭,MAR<0.75。图9-图11 分别显示,当受试者处于疲劳状态时呈现眯眼状态,EAR<0.2,打哈欠时MAR>0.75,一旦当点头次数达到15 次,或是打哈欠次数达到15 次,眨眼次数达到50 次时,达到了单位时间内≥40%,系统显示屏触发警报“ALERT !Be Careful of Drowsiness”并发出警报音预警。
为保证系统的准确性,另采用10 张疲劳状态的脸部照片以及50 张正常状态下的脸部照片,输入系统进行检测,如图12、图13所示。
以人眼为检测指标的检测结果见表3。
图12 疲劳状态脸部图片
表3 人眼检测实验结果
通过实验结果可知,基于面部眼睛状态指标作为疲劳检测判断标准准确度较高,且抗干扰性强。分析影响正确率的可能性,通过测试发现,当测试对象佩戴眼镜时,因为镜片原因会在一定程度上影响EAR。因测试者自身五官大小导致EAR变化时以嘴部为检测指标的结果见表4。
表4 嘴部检测实验结果
通过实验结果可知,基于面部眼睛状态指标作为疲劳检测判断标准的准确度一般,抗干扰性低,判断影响准确性的原因为当司机处于重度疲劳,即将睡着或已睡着时多数人嘴巴是闭合的,因此以嘴部为指标时,仅通过静态图片检测疲劳的准确性存在误差。
基于眼睛状态及嘴部状态融合指标的检测结果见表5。
表5 融合检测实验结果
对比以上两个单一指标检测,可以发现多重疲劳检测,以多个指标同时检测疲劳状态更加准确。
图13 正常状态脸部图片
当前国内外对于疲劳驾驶的研究不在少数,专家学者们从各个角度展开研究,能够准确地进行疲劳检测。但在现实中,因环境的复杂性,干扰大,本文基于多生理信号融合检测长途货运司机疲劳驾驶水平,通过分析当前三种疲劳检测方法的优缺点,介绍当前较为方便可靠的面部识别检测方法及原理,选用PERCLOS、EAR、MAR及头部姿势共4个指标计算,判断货运司机疲劳状态,并使用Python软件设计出一套疲劳驾驶检测及预警系统。从实验结果可以得出以下结论:
(1)使用单生理信号检测司机疲劳驾驶有一定的准确性,以面部眼睛作为检测指标的准确度与抗干扰性比以嘴部为检测指标效果更好。实验过程中我们发现以头部姿势为指标的检测方法实验难度更高,在静态图片中无法正确判断,且驾驶过程中若出现道路环境差产生晃动会明显影响检测的正确性。相比之下,多重生理信号融合后得到的司机疲劳驾驶检测准确度更优于单生理信号检测,抗干扰性强,误差较小。根据本文的分析可知,没有单一特征可以可靠地检测疲劳。因此,多个特征的组合检测准确率更高。
(2)通过对比实时监测和图片检测结果,我们发现基于时间的特征向量和SVM分类器的结合有助于减少误报眨眼检测,并提高眨眼检测器的整体准确性。
(3)本系统经过试验证实具有较好的检测效果,以面部特征识别的疲劳检测方式主要使用无接触式设备,安装便捷,操作简单,对于受试者而言舒适度更高。在室内无外界环境干扰下检测准确度高,但在外界环境干扰下,准确率会受到一定影响。相对于其他检测方法成本更低,对于货运企业而言认可度更高。
本文分析了以面部特征作为疲劳驾驶检测指标的可行性,并通过Python搭建检测系统,模拟不同状态下系统实现对疲劳状态的评估及报警,初步证实系统的有效性。但仍存在以下不足需进一步开展研究:(1)本文基于面部特征识别作为评价指标来判断疲劳驾驶的检测系统在采集数据后能够判断司机是否疲劳,但仍未对疲劳的等级进行划分,仅以固定的标准分为疲劳和正常两个状态,而疲劳是一个渐进过程,接近临界点时,系统未进行及时预警。(2)目前基于头部姿势指标判断疲劳驾驶的标准还未具体量化,仅是一个较大的角度范围,存在一定的误差,还需要研究疲劳状态下头部姿势的变化从而寻找更为准确可靠的标准。