«上一篇 下一篇»
  计算机工程  2021, Vol. 47 Issue (7): 13-20, 29  DOI: 10.19678/j.issn.1000-3428.0060674
0

引用本文  

娄平, 杨欣, 胡辑伟, 等. 基于边缘计算的疲劳驾驶检测方法[J]. 计算机工程, 2021, 47(7), 13-20, 29. DOI: 10.19678/j.issn.1000-3428.0060674.
LOU Ping, YANG Xin, HU Jiwei, et al. Fatigue Driving Detection Method Based on Edge Computing[J]. Computer Engineering, 2021, 47(7), 13-20, 29. DOI: 10.19678/j.issn.1000-3428.0060674.

基金项目

国家自然科学基金面上项目(52075404);国家自然科学基金青年项目(51905397);武汉市科技局应用基础前沿专项(2020010601012176)

通信作者

严俊伟(通信作者), 讲师、博士

作者简介

娄平(1970-), 女, 教授、博士, 主研方向为工业大数据、分布式人工智能;
杨欣, 硕士研究生;
胡辑伟, 副教授、博士;
萧筝, 副教授、博士

文章历史

收稿日期:2021-01-22
修回日期:2021-03-10
基于边缘计算的疲劳驾驶检测方法
娄平1,2 , 杨欣1 , 胡辑伟1,2 , 萧筝3 , 严俊伟1,2     
1. 武汉理工大学 信息工程学院, 武汉 430070;
2. 宽带无线通信和传感器网络湖北省重点实验室, 武汉 430070;
3. 武汉理工大学 机电工程学院, 武汉 430070
摘要:现有疲劳驾驶检测方法通常将驾驶过程中采集的数据传输至云端进行分析,然而在车辆移动过程中网络覆盖范围、响应速度等因素会造成检测实时性差。为在车载嵌入式设备上对驾驶人疲劳状态进行准确预警,提出一种基于边缘计算的疲劳驾驶检测方法。通过改进的多任务卷积神经网络确定人脸区域,根据人脸的面部比例关系定位驾驶人的眼部与嘴部区域,利用基于Ghost模块的轻量化AlexNet分类检测眼部与嘴部的开闭状态,并结合PERCLOS和PMOT指标值实现疲劳检测。在NHTU-DDD数据集上的实验结果表明,该方法在树莓派4B开发板上的检测准确率达到93.5%且单帧平均检测时间为180 ms,在保障检测准确率的同时大幅降低了计算量,能较好地满足疲劳驾驶的实时检测需求。
关键词疲劳驾驶检测    边缘计算    多任务卷积神经网络    轻量化    AlexNet结构    
Fatigue Driving Detection Method Based on Edge Computing
LOU Ping1,2 , YANG Xin1 , HU Jiwei1,2 , XIAO Zheng3 , YAN Junwei1,2     
1. School of Information Engineering, Wuhan University of Technology, Wuhan 430070, China;
2. Hubei Key Laboratory of Broadband Wireless Communication and Sensor Networks, Wuhan 430070, China;
3. School of Mechanical and Electronic Engineering, Wuhan University of Technology, Wuhan 430070, China
Abstract: Most of the existing fatigue driving detection methods require the collected driving data to be sent to the cloud for analysis.However, the real-time performance of the methods is often affected by the network coverage, response speed and other factors as the vehicle moves.To improve the accuracy of fatigue alarms generated on onboard embedded devices, a fatigue driving detection method based on edge computing is proposed.The method employs an improved Multi-Task Convolutional Neural Network(MTCNN) to determine the facial area, and then the parts of the eyes and the mouth based on facial proportions.The lightweight AlexNet using the Ghost module is used to detect whether the eyes and the mouth are closed.On this basis, the fatigue driving detection is realized with the indicators of PERCLOS and PMOT considered, too.Experimental results on the NHTU-DDD dataset show that the method achieves an accuracy of 93.5% on Raspberry Pi 4B, and its average time for single-frame prediction is about 180 ms.The method ensures the detection accuracy while significantly reducing the amount of calculation, meeting the demand for real-time fatigue detection.
Key words: fatigue driving detection    edge computing    Multi-Task Convolutional Neural Network(MTCNN)    lightweight    AlexNet structure    

开放科学(资源服务)标志码(OSID):

0 概述

随着汽车行业和道路交通网的不断发展,越来越多的人选择机动车出行,道路交通事故频繁发生。交通事故给人们的生命财产安全带来巨大的损失,与酒驾、超速等行为相比,疲劳驾驶的预防及治理更为困难。疲劳是指对体力劳动或者脑力劳动进行长时间重复作业形成的一种生理阻碍[1],疲劳会使驾驶人的驾驶操作水平下降,据相关数据统计,约有20%~30%的交通事故是由疲劳驾驶所引起的[2]。在交通事故发生前,若驾驶人可提前0.5 s做出反应,可避免60%的交通事故。在多数情况下,驾驶人很难意识到自身处于疲劳驾驶状态,且据调查显示,多数驾驶人在感知到疲劳时仍继续驾驶[3]。因此,针对疲劳驾驶检测的研究,在驾驶人疲劳驾驶时及时对其发出告警,对降低交通事故的发生率及保障人们安全出行具有重要意义。

目前,已有的疲劳检测方法主要分为基于驾驶人生理特征、车辆行为特征、驾驶人面部特征等3类参数。基于驾驶人生理特征参数的疲劳检测方法需要在驾驶人身上放置传感器,以得到其脑电(Electroencephalogram,EEG)、心电(Electrocardiograms,ECG)、肌电(Electromyogram,EMG)信号等生理参数,然后对其进行处理分析,判断驾驶人是否疲劳[4]。这类方法检测精度高,但其高昂的成本和侵入式的检测方式限制了其应用和发展。基于车辆行为特征的疲劳检测方法通过检测车辆方向盘的角速度、车辆行驶状态的改变等特征,判断驾驶人是否疲劳[5]。这类方法容易受车辆型号和实际道路情况的影响,准确率较低。基于驾驶人面部特征的疲劳检测方法通过检测驾驶人是否存在闭眼时间长、打哈欠等疲劳特征进行疲劳判断[6],相比于其他方法,该方法在保障准确率的同时具有成本低及非接触的优点,因此成为疲劳检测研究领域的主流方法。

李照等[7]设计一个基于数字信号处理(Digital Signal Processing,DSP)的嵌入式车载疲劳驾驶检测系统,该系统利用AdaBoost算法检测人脸并定位驾驶人眼睛区域,通过计算人眼闭合程度,并结合PERCLOS算法进行疲劳判断。徐明[8]利用ARM开发板设计了一套疲劳驾驶检测系统,该系统首先利用AdaBoost级联分类器依次定位驾驶人面部及眼部区域,接着采用积分投影算法定位嘴部区域,并根据眼部及嘴部的宽高比确定开闭状态,最后结合PERCLOS算法及打哈欠分析完成疲劳检测。这类方法可在车载嵌入式设备上独立完成疲劳检测,但基于手工提取的特征,准确率会受到个体差异、拍摄距离及角度的影响,鲁棒性较差。

由于深度学习技术在计算机视觉领域表现出优异的性能,因此研究人员对此进行了大量研究。郑伟成等[9]利用多任务卷积神经网络(Multi-Task Convolutional Neural Network,MTCNN)定位人脸,并利用PFLD深度学习模型进行人脸关键点检测,从而定位眼部、嘴部以及头部的位置,最后提取眨眼频率、张嘴程度、点头频率等特征进行疲劳检测。DU等[10]提出一种多模式融合的递归神经网络(Multi-mode Fusion Recurrent Neural Network,MFRNN),将眼睛和嘴巴的开合度以及心率作为疲劳特征,利用递归神经网络(Recurrent Neural Network,RNN)提取时间特征,提高了疲劳驾驶检测的准确率。这类方法相比基于手工特征的疲劳检测方法具有更强的鲁棒性,但是需要庞大的计算资源。若检测过程在计算资源丰富的云端进行,则需要边缘设备采集驾驶人视频数据并上传至云端服务器进行检测,再由服务器返回检测结果。然而,在车辆的行驶过程中,网络覆盖、响应速度等因素会造成检测实时性差,甚至无法完成检测。若检测过程在车载边缘端完成,则需要具有强大计算资源的检测设备,若每辆车上均安装此类设备,则成本过于高昂。

本文提出一种基于边缘计算的疲劳驾驶检测方法,通过识别驾驶人的眼部及嘴部的开闭状态,结合PERCLOS及PMOT指标值进行疲劳检测,并且由于采用了轻量化的检测模型,因此可在车载嵌入式设备上独立完成疲劳检测。

1 疲劳驾驶检测模型

通过驾驶人的面部特征进行疲劳驾驶检测通常需要确定人脸与眼嘴的部位,并检测眼嘴的开合状态。为实现以上功能,本文利用改进的MTCNN完成人脸检测及关键点定位,并根据人脸三庭五眼比例关系进行眼部及嘴部图像的截取,接着利用改进的AlexNet识别眼部和嘴部的开闭状态,最后根据PERCLOS和PMOT参数进行疲劳判别。疲劳驾驶检测流程如图 1所示。

Download:
图 1 疲劳驾驶检测流程 Fig. 1 Procedure of fatigue driving detection
1.1 基于改进MTCNN的关键点定位

MTCNN是一种基于深度学习的人脸检测与对齐算法,利用图像金字塔检测各个尺度的人脸[11],不同于多目标人脸检测,在疲劳驾驶检测中只需精准定位驾驶人面部区域。因此,对MTCNN网络的图像金字塔部分进行改进,使其快速且准确地完成人脸检测及关键点定位,并在定位关键点后,利用人脸的三庭五眼比例关系获取驾驶人的眼部及嘴部区域。

1.1.1 人脸检测与关键点定位

MTCNN由P-Net(Proposal Network)、R-Net(Refine Network)和O-Net(Output Network)组成,采用候选框加分类器的思想,快速高效地进行人脸检测。MTCNN模型如图 2所示。

Download:
图 2 MTCNN模型 Fig. 2 MTCNN model

MTCNN为检测到不同尺度的人脸,将原图缩小为不同尺寸以生成图像金字塔。将原图按照一定比例进行压缩,使用固定尺寸为12像素×12像素的候选框遍历图片,循环往复,直到缩小后的图片长或宽小于候选框的边长时停止。此时得到尺寸为12像素×12像素、通道数为3的图片作为P-Net的输入,P-Net利用大小为3×3的卷积核通过卷积操作(Conv)提取图像特征,采用最大池化操作(MP)去除冗余,通过人脸分类器(face classification)判断该区域是否为人脸,并使用边框回归(bounding box regression)及一个面部关键点的定位器(facial landmark localization)初步定位人脸区域,并将这些区域输入R-Net。R-Net将重复P-Net的操作,滤除大部分干扰、保留较为可靠的人脸区域并将其输入到O-Net。对比P-Net利用全卷积输出尺寸为1像素×1像素、通道数为32的特征,R-Net在最后一个卷积层后使用一个128维的全连接层(FC),保留了更多的图像特征。O-Net进行更精细的人脸判别、边框回归及关键点定位,最终输出人脸区域的坐标与5个特征点,其中5个特征点分别为左眼中点、右眼中点、鼻尖点、左嘴角点和右嘴角点。实验室环境内采集的多人脸图像MTCNN人脸检测及关键点定位示例,如图 3所示。

Download:
图 3 MTCNN人脸检测 Fig. 3 Face detection using the MTCNN

MTCNN网络构建的图像金字塔包含大量图像,将其送入网络检测出图像中的所有人脸区域会花费大量时间。在疲劳驾驶检测场景中,由于需要排除多余人脸的干扰,精确定位驾驶人面部,因此对MTCNN网络生成图像金字塔的方式进行改进。考虑到驾驶人面部区域在视频帧中所占像素比例较大,本文根据驾驶人面部在图像中的比例对MTCNN网络中最小人脸尺寸进行放大,降低固定缩小比例,并略过第一次缩小与遍历过程,使得改进的MTCNN网络在准确定位出驾驶人面部区域的同时,能滤除背景中无关的人脸,并大幅缩减人脸检测时间。

1.1.2 眼部与嘴部区域提取

利用驾驶人的眼睛及嘴巴的状态变化特征进行疲劳判别,需要在人脸检测和关键点定位的基础上将驾驶人的眼部和嘴部区域进行截取。根据三庭五眼的人脸比例关系[12],人脸横向可分为三等份:前额发际线到眉骨,眉骨到鼻底,鼻底到下巴,即三庭;人脸纵向可分为五等份:左侧发际线到左眼外侧,左眼外侧到左眼内侧,左眼内侧到右眼内侧,右眼内侧到右眼外侧,右眼外侧到右侧发际线,即五眼。

假设通过MTCNN获取驾驶人的左眼坐标为${m_1}\left( {{x_1}, {y_1}} \right)$,右眼坐标为${m_2}\left( {{x_2}, {y_2}} \right)$,根据三庭五眼的人脸比例关系提取驾驶人眼部区域,其对应关系为:

$ \left\{ {\begin{array}{*{20}{l}} {{d_1} = \sqrt {{{\left( {{x_1} - {x_2}} \right)}^2} + {{\left( {{y_1} - {y_2}} \right)}^2}} }\\ {{w_1} = 0.5{d_1}}\\ {{h_1} = 0.5{d_1}} \end{array}} \right. $ (1)

其中:d1为双眼间的距离;w1为眼部区域的宽度;h1为眼部区域的高度。

假设通过MTCNN获取驾驶人的左右嘴角坐标分别为${n_1}\left( {{\alpha _1}, {\beta _1}} \right)$${n_2}\left( {{\alpha _2}, {\beta _2}} \right)$,根据三庭五眼的人脸比例关系提取驾驶人嘴部区域,其对应关系为:

$ \left\{ {\begin{array}{*{20}{l}} {{d_2} = \sqrt {{{\left( {{\alpha _1} - {\alpha _2}} \right)}^2} + {{\left( {{\beta _1} - {\beta _2}} \right)}^2}} }\\ {{w_2} = {d_2}}\\ {{h_2} = {d_2}} \end{array}} \right. $ (2)

其中:d2为左右嘴角间的距离;w2为嘴部感兴趣区域(Region of Interest,ROI)的宽度;h2为嘴部区域的高度。

对NTHU-DDD数据集[13]中示例进行关键点定位,并根据三庭五眼比例关系得到眼部及嘴部感兴趣区域,如图 4所示。

Download:
图 4 眼部与嘴部ROI定位 Fig. 4 ROI location of eyes and mouth
1.2 基于改进AlexNet的眼部与嘴部状态识别

通过计算眼睛和嘴巴的宽高比、眼部黑白像素比例等基于手工提取特征的眼部和嘴部状态识别方法受拍摄角度、拍摄距离以及个体差异的影响,鲁棒性较差。本文利用改进的AlexNet对眼部及嘴部的开闭状态进行识别,避免了对图像的复杂预处理操作,且具有较强的鲁棒性。

1.2.1 Ghost模块

Ghost模块[14]是一种轻量化神经网络单元,为了使疲劳驾驶检测模型能在边缘端获得更好的实时性,本文使用Ghost模块替换AlexNet中的所有卷积操作。传统卷积和Ghost模块示意图如图 5所示。

Download:
图 5 传统卷积与Ghost模块示意图 Fig. 5 Schematic diagram of traditional convolution and Ghost module

由于深度卷积神经网络所输出的特征图存在冗余,这些相似的特征图使得卷积神经网络的特征提取能力变强,因此Ghost模块利用简单的线性操作${\mathit{\Phi }_k}$来获得更多的相似特征图,以提高CNN性能。Ghost模块首先采用少量常规卷积得到本征特征图,然后对得到的本征特征图通过depthwise卷积这种简单的线性操作生成Ghost特征图,最后将本征特征图与Ghost特征图进行拼接得到最终的输出。相比直接使用常规卷积,Ghost模块在保障准确率的同时,大幅度降低了计算量。

1.2.2 轻量化AlexNet结构

AlexNet[15]基于8层网络结构在图像分类上表现出优异的效果。本文对AlexNet进行改进,用于眼睛及嘴巴的开闭状态分类。由于眼睛和嘴巴图像所占的像素点较少,将AlexNet的输入尺寸由224像素×224像素、通道数为3压缩至24像素×24像素、通道数为3,将11×11和5×5的卷积核修改为3×3的卷积核,并优化最大池化操作的步长stride以避免特征图的尺寸过小。由于AlexNet仅用于眼嘴状态4分类,不同于AlexNet的1 000分类,模型仅保留AlexNet中的第1个全连接层,并将全连接层的输出维度由2 048修改为128。最终利用Softmax回归函数输出样本属于眼嘴开闭状态的概率。模型保留第1层传统卷积用来全面提取图像特征,其余的卷积操作均由Ghost模块替代,使网络轻量化。改进的AlexNet结构如图 6所示。

Download:
图 6 改进的AlexNet结构 Fig. 6 Improved AlexNet structure
1.3 基于PERCLOS与PMOT参数的疲劳驾驶检测

当驾驶人处于疲劳状态时会产生一系列的生理反应,例如闭眼时间长、打哈欠等。改进的AlexNet识别眼嘴状态后,模型通过计算连续视频帧的PERCLOS及PMOT参数,并结合阈值对驾驶人的疲劳状态进行判断。

1.3.1 PERCLOS参数

PERCLOS是卡内基梅隆研究所提出的度量疲劳的物理量。美国联邦公路管理局在驾驶情景下对PERCLOS参数、眨眼频率、打哈欠参数等9种疲劳参数进行相关性分析,得出PERCLOS参数与疲劳驾驶状态相关性最高[16]。PERCLOS参数表示在单位时间内闭眼时长所占百分比,计算公式为:

$ {P_{{\rm{PERCLOS}}}} = \frac{{\sum\limits_i^N {{f_i}} }}{N} \times 100\% $ (3)

其中:N为单位时间内的视频总帧数;fi为闭眼帧数;${\sum\limits_i^N {{f_i}} }$为单位时间内闭眼的总帧数。在正常的驾驶过程中,驾驶人的PERCLOS参数值较小。当驾驶人处于疲劳状态时,闭眼帧数增多,PERCLOS参数值增大。

1.3.2 PMOT参数

PMOT参数类似于PERCLOS参数,代表单位时间内张嘴时长所占百分比,计算公式为:

$ {P_{{\rm{PMOT}}}} = \frac{{\sum\limits_i^N {{f_i}} }}{N} \times 100\% $ (4)

其中:N为单位时间内的视频总帧数;fi为张嘴帧数;${\sum\limits_i^N {{f_i}} }$为单位时间内张嘴的总帧数。在正常驾驶过程中,驾驶人的PMOT参数值较小。当驾驶人打哈欠时,张嘴帧数增多,PMOT参数值增大。

2 实验验证

实验平台为1台配置为Intel CoreTM i7-8750H CPU处理器、2.2 GHz主频、8 GB内存、显卡为GTX1060的PC机以及1块内存为8 GB的树莓派4B开发板。使用PC机对网络进行训练,并将训练好的模型下载到树莓派开发板上进行疲劳检测。

2.1 数据集

实验利用YawDD数据集[17]制作人脸检测数据集与眼嘴状态识别数据集,并在NTHU-DDD数据集上测试疲劳驾驶检测方法的准确率。YawDD数据集包含了不同性别、种族的驾驶人在不同光照条件下的真实驾驶视频。对该数据集进行帧采样,得到人脸检测数据集,用于人脸检测实验,YawDD数据集示例如图 7所示。

Download:
图 7 YawDD数据集示例 Fig. 7 Examples of YawDD dataset

在帧采样后截取出眼睛及嘴巴区域,制作眼嘴数据集,用于训练眼嘴状态分类网络。眼嘴数据集分为眼睛闭合、眼睛张开、嘴巴闭合、嘴巴张开等4类。眼嘴数据集示例如图 8所示。

Download:
图 8 眼嘴数据集示例 Fig. 8 Examples of eyes and mouth dataset

NTHU-DDD数据集包括36位不同种族的受试者在模拟驾驶场景下的视频数据,总时长约为9.5 h,包含不同光照条件下正常驾驶、打哈欠、说话、缓慢眨眼、频繁点头等状态。NTHU-DDD数据集示例如图 9所示。

Download:
图 9 NTHU-DDD数据集示例 Fig. 9 Examples of NTHU-DDD dataset

疲劳驾驶时所产生的打哈欠、缓慢眨眼等动作是一个持续的过程,其持续时间约为8 s,根据NTHU-DDD数据集的帧标注文件将视频数据进行裁剪,并将存在上述疲劳特征的视频标注为疲劳状态,不存在疲劳特征的视频标注为正常状态。裁剪后的数据集共包含600个视频,其中正常状态和疲劳状态的视频分别有300个。

2.2 实验结果 2.2.1 人脸检测结果

驾驶人面部区域在图像中所占比例为1/16~1/3,为了滤除背景中乘客面部的干扰,精确定位出驾驶人面部区域并加速检测过程,对MTCNN网络的图像金字塔进行改进,将视频帧短边的1/4作为最小人脸尺寸,将固定缩小比例减小为0.659,并直接从第2次缩小和遍历图片过程开始进行图像金字塔操作。实验将图片尺寸从640像素×480像素缩小至160像素×120像素进行检测,在确保正常检出人脸的情况下,缩短了检测时间。MTCNN及改进的MTCNN对实验室中模拟驾驶环境采集的图像进行人脸检测,示例如图 10所示。

Download:
图 10 人脸检测示例 Fig. 10 Examples of face detection

图 10可以看出,改进的MTCNN模型有效地滤除了背景人脸,在疲劳驾驶检测中能精确定位出驾驶人面部区域。为了进一步验证改进模型的有效性,实验利用从YawDD数据集中获取到的2 000张人脸图片进行人脸检测实验,计算改进前后MTCNN模型的检测准确率以及树莓派开发板上的平均检测时间。人脸检测结果如表 1所示。可以看出,改进的MTCNN模型在保障较高准确率的同时,平均检测时间下降至原来的53.9%,提高了疲劳驾驶检测的实时性。

下载CSV 表 1 人脸检测结果 Table 1 Results of face detection
2.2.2 眼部与嘴部状态识别结果

由YawDD数据集所得到的眼嘴数据集共15 000张图片,包括4 551张睁眼图片、3 912张闭眼图片、2 904张张嘴图片和3 633张闭嘴图片,其中睁眼和闭眼图片均包含佩戴眼镜及未佩戴眼镜2种情况。实验在PC机上对原AlexNet、调节参数的AlexNet以及调参并采用Ghost模块替换传统卷积的AlexNet这3种网络模型进行训练,按照6∶4的比例划分训练集和测试集,其中测试图片共6 000张,训练时将图像大小归一化为24像素×24像素,每次批处理32张图片,迭代次数为1 000次。模型训练完成后,将其下载到树莓派开发板上,测试平均识别时间。眼嘴状态识别结果如表 2所示。可以看出,改进的轻量化AlexNet模型不仅保持了眼嘴状态识别的准确率,并且模型大小减小至原有AlexNet模型的3.9%,平均识别时间下降至原有AlexNet模型的15.5%。

下载CSV 表 2 眼嘴状态识别结果 Table 2 Results of eyes and mouth state recognition

将改进的AlexNet与其他网络模型在眼嘴状态识别数据集上进行测试对比,结果如表 3所示。可以看出,调参+Ghost模块的AlexNet网络模型在保障准确率的同时,模型大小仅为其他模型的0.8%~9.6%,平均识别时间仅为其他模型的0.8%~3.1%。

下载CSV 表 3 基于4种网络模型的眼嘴状态识别结果对比 Table 3 Results comparison of eyes and mouth state recognition based on four network models
2.2.3 PERCLOS与PMOT参数阈值

现有研究表明:当PERCLOS参数值达到0.15、0.25、0.40时,驾驶人会出现疲劳状态。由于不同的眼部及嘴部状态判别方法中所得到的眼睛和嘴巴的闭合程度存在差异,因此PERCLOS及PMOT参数阈值与研究方法相关,可从实验中获得。本文设定帧率为5 frame/s、时长为8 s,采集30位驾驶人在正常及不同程度疲劳状态下的视频,并计算对应的PERCLOS和PMOT参数值,如图 11图 12所示。

Download:
图 11 PERCLOS参数阈值实验结果 Fig. 11 Experimental results of PERCLOS parameter threshold
Download:
图 12 PMOT参数阈值实验结果 Fig. 12 Experimental results of PMOT parameter threshold

图 11图 12中,以虚线表示正常和疲劳状态的分界线,当PERCLOS参数值达到0.35、PMOT参数值达到0.25时,驾驶人出现疲劳状态,因此本文分别将0.35和0.25作为PERCLOS和PMOT参数阈值。

2.2.4 疲劳驾驶检测结果

由NHTU-DDD数据集得到600个时长为8 s的视频,其中正常状态和疲劳状态分别有300个。在树莓派4B开发板上以5 frame/s的速率进行帧采样,并将图片分辨率由640像素×480像素缩小至160像素×120像素,计算视频帧序列对应的PERCLOS以及PMOT参数值,结合阈值进行疲劳判断。疲劳驾驶检测示例如图 13所示。

Download:
图 13 疲劳驾驶检测示例 Fig. 13 Examples of fatigue driving detection

实验测得模型在树莓派开发板上的单帧平均检测时间为180 ms,可满足疲劳驾驶检测的实时性要求。疲劳检测结果如表 4所示。本文方法与基于脑电信号[18]、基于方向盘操作特征[19]和基于人眼特征[20]的疲劳驾驶检测方法的对比结果如表 5所示。相比其他疲劳驾驶检测方法,本文方法具有非接触式、精度及鲁棒性高且能在低成本的硬件设备上完成检测的优点。

下载CSV 表 4 疲劳检测结果 Table 4 Results of fatigue detection
下载CSV 表 5 不同疲劳驾驶检测方法对比 Table 5 Comparison of different fatigue driving detection methods
3 结束语

为在成本低廉的车载嵌入式设备上对驾驶人疲劳状态进行准确预警,本文提出一种基于边缘计算的疲劳驾驶检测方法。采用改进的MTCNN网络获取人脸关键点,根据人脸的三庭五眼比例关系获取驾驶人的眼部及嘴部区域,同时利用基于Ghost模块的改进AlexNet对眼睛和嘴巴的状态进行分类,计算出PERCLOS和PMOT参数并结合阈值进行疲劳判断。实验结果表明,该方法在NHTU-DDD数据集上获得了良好的检测性能。后续将结合驾驶人的头部姿态特征,进一步提高疲劳驾驶检测算法的准确率及鲁棒性。

参考文献
[1]
BEIRNESS D J, SIMPSON H M, DESMOND K. The road safety monitor 2004: drowsy driving[EB/OL]. [2021-01-04]. https://trid.trb.org/view.aspx?id=794388.
[2]
ALVARO P K, BURNETT N M, KENNEDY G A, et al. Driver education: enhancing knowledge of sleep, fatigue and risky behavior to improve decision making in young drivers[J]. Accident Analysis and Prevention, 2018, 112: 77-83. DOI:10.1016/j.aap.2017.12.017
[3]
JIANG K, LING F, FENG Z, et al. Why do drivers continue driving while fatigued?An application of the theory of planned behavior[J]. Transportation Research Part A: Policy and Practice, 2017, 98: 141-149. DOI:10.1016/j.tra.2017.02.003
[4]
MIN J L, CAI M. Driver fatigue detection based on multi-scale wavelet log energy entropy of frontal EEG[J]. China Journal of Highway and Transport, 2020, 33(6): 182-189. (in Chinese)
闵建亮, 蔡铭. 基于前额脑电多尺度小波对数能量熵的驾驶疲劳检测分析[J]. 中国公路学报, 2020, 33(6): 182-189. DOI:10.3969/j.issn.1001-7372.2020.06.017
[5]
LI Z, YANG Q, CHEN S, et al. A fuzzy recurrent neural network for driver fatigue detection based on steering-wheel angle sensor data[J]. International Journal of Distributed Sensor Networks, 2019, 15(9): 147-198.
[6]
ZHAO L. Driver fatigue detection based on deep learning and multi-source facial dynamic behavior fusion[D]. Jinan: Shandong University, 2018. (in Chinese)
赵磊. 基于深度学习和面部多源动态行为融合的驾驶员疲劳检测方法研究[D]. 济南: 山东大学, 2018.
[7]
LI Z, SHU Z B. Design of driver fatigue real-time early warning system based on DSP[J]. Control Engineering of China, 2019, 26(1): 92-98. (in Chinese)
李照, 舒志兵. 基于DSP的驾驶员疲劳实时预警系统设计[J]. 控制工程, 2019, 26(1): 92-98.
[8]
XU M. Design and implementation of driver's fatigue detection system applications based on embedded system[D]. Zhengzhou: Zhengzhou University, 2014. (in Chinese)
徐明. 嵌入式驾驶员疲劳检测系统应用软件设计与实现[D]. 郑州: 郑州大学, 2014.
[9]
ZHENG W C, LI X W, LIU H Z, et al. Fatigue driving detection algorithm based on deep learning[J]. Computer Engineering, 2020, 46(7): 21-29. (in Chinese)
郑伟成, 李学伟, 刘宏哲, 等. 基于深度学习的疲劳驾驶检测算法[J]. 计算机工程, 2020, 46(7): 21-29.
[10]
DU G, LI T, LI C, et al. Vision-based fatigue driving recognition method integrating heart rate and facial features[J]. IEEE Transactions on Intelligent Transportation Systems, 2020, 22(5): 3089-3100.
[11]
ZHANG K, ZHANG Z, LI Z, et al. Joint face detection and alignment using multitask cascaded convolutional networks[J]. IEEE Signal Processing Letters, 2016, 23(10): 1499-1503. DOI:10.1109/LSP.2016.2603342
[12]
ZHANG H K, WANG M, LUO K, et al. A study of the best fixed-point of facial proportions[J]. Medicine & Philosophy(B), 2017, 38(5): 64-69. (in Chinese)
张华坤, 王敏, 罗开, 等. 三庭五眼的最佳定点探索[J]. 医学与哲学(B), 2017, 38(5): 64-69.
[13]
WENG C H, LAI Y H, LAI S H. Driver drowsiness detection via a hierarchical temporal deep belief network[C]//Proceedings of Asian Conference on Computer Vision. Berlin, Germany: Springer, 2016: 117-133.
[14]
HAN K, WANG Y, TIAN Q, et al. GhostNet: more features from cheap operations[C]//Proceedings of IEEE/CVF Conference on Computer Vision and Pattern Recognition. Washington D.C., USA: IEEE Press, 2020: 1580-1589.
[15]
KRIZHEVSKY A, SUTSKEVER I, HINTON G E. ImageNet classification with deep convolutional neural networks[J]. Communications of the ACM, 2017, 60(6): 84-90. DOI:10.1145/3065386
[16]
BISHOP R. A survey of intelligent vehicle applications worldwide[C]//Proceedings of IEEE Intelligent Vehicles Symposium. Washington D.C., USA: IEEE Press, 2000: 25-30.
[17]
ABTAHI S, OMIDYEGANEH M, SHIRMOHAMMADI S, et al. YawDD: a yawning detection dataset[C]//Proceedings of the 5th ACM Multimedia Systems Conference. New York, USA: ACM Press, 2014: 24-28.
[18]
WANG F, WU S C, LIU S L, et al. Driver fatigue detection through deep transfer learning in an electroencephalogram-based system[J]. Journal of Electronics & Information Technology, 2019, 41(9): 2264-2272. (in Chinese)
王斐, 吴仕超, 刘少林, 等. 基于脑电信号深度迁移学习的驾驶疲劳检测[J]. 电子与信息学报, 2019, 41(9): 2264-2272.
[19]
JIA L J. Research on drowsiness detection based on steering wheel operating characteristics under real road conditions[D]. Beijing: Tsinghua University, 2017. (in Chinese)贾丽娟. 基于实车方向盘操作特征的疲劳驾驶检测方法研究[D]. 北京: 清华大学, 2017.
[20]
FAN X, LIU Z W, LIN S, et al. Fatigue state detection model based on human eye features and deep learning[J/OL]. Computer Engineering: 1-17[2021-01-04]. https://doi.org/10.19678/j.issn.1000-3428.0059421.
樊星, 刘占文, 林杉, 等. 融合人眼特征与深度学习的疲劳状态检测模型[J/OL]. 计算机工程: 1-17[2021-01-04]. https://doi.org/10.19678/j.issn.1000-3428.0059421.