基于深度学习的司机疲劳驾驶检测方法研究
随着全世界铁路运输里程及汽车营运数量的快速增长,火车司机和汽车司机人数也快速增加,同时由于司机疲劳驾驶引起的交通事故也逐年增高,以美国为例,交通事故中有25%~35%与疲劳驾驶有关[1-2],每年大约有1 500多人丧生于疲劳驾驶引起的车祸[3]。因此对司机疲劳驾驶状态进行检测并做出相应的预警,对于保障交通运输安全至关重要。
目前的疲劳驾驶检测主要有基于司机的测量方法及基于车辆的测量方法,基于司机的测量方法又分为生理特征、视觉特征[4] 和语音特征[5]等多种方法。基于车辆的检测方法受路况及驾驶员技能的影响,准确性较差[6];基于生理特征的疲劳检测由于使用了昂贵的传感器,并且传感器的侵入可能引起司机不适,不便于普及推广[7-8];基于语音特征的疲劳检测只适用于采用标准呼叫应答的驾驶场景且语音标记样本数据较为稀缺;基于视觉特征的疲劳检测具有非接触性及可直接根据司机面部特征(如眼睛睁闭、打哈欠等)反应其疲劳状态等优点,成为目前研究的主流方向[9]。传统的基于机器视觉的司机疲劳检测算法主要采用人工设计特征加分类器的方式,通过手动特征设计、制定检测标准来进行疲劳判断,检测速度较慢、准确性较低[10];随着以卷积神经网络CNN为代表的深度学习模型在计算机视觉领域的成功应用,如面部器官检测[11]、人体姿态估计[12]等,基于视觉特征深度学习的司机疲劳检测成为该领域的研究热点。
在基于视觉特征深度学习的疲劳驾驶检测研究领域,文献[13]提出了一种基于RNN的司机疲劳检测技术;文献[14]提出了一种类Haar特征和极限学习的疲劳检测方法;文献[15]基于嘴部特征疲劳检测,应用了功能校准深度卷积模型RF-DCM,解决了说话和打哈欠的区分问题;文献[16]提出了一种基于MSP模型的多任务分层CNN疲劳检测系统,实现了面部检测及眼睛和嘴巴状态检测;文献[17]通过直方图预训练梯度模型HOG和支持向量机SVM提取眼睛、鼻子和嘴巴的位置并评估眼睛长宽比、张口比和鼻子长度比率进行疲劳检测;文献[18]提出了一个深层级联LSTM的驾驶员疲劳检测方法;文献[19]提出了应用多面特征融合双流卷积网络的司机疲劳驾驶检测模型,实现了动态图像与静态图像的综合检测;文献[20]提出了基于多形态红外特征与深度学习的实时疲劳检测方法,解决了夜间驾驶疲劳的检测问题。
综上所述,目前基于视觉特征深度学习的司机疲劳检测算法主要有基于RNN的方法[13]、基于CNN的方法[14-17]以及RNN与CNN的融合方法[18-20],一般采用滑动窗口加分类器方式,由于输入图像较大而导致系统耗时多[21],检测效率不高,而且当司机头部姿态变化(如侧脸、有遮挡等)时成像质量较差,准确率不高。针对上述问题,本文在前人研究的基础上,提出一种基于MTCNN-PFLD-LSTM深度学习模型的司机疲劳检测算法,首先采用多任务卷积神经网络(Multi-task Cascaded Convolutional Networks,MTCNN)对视频图像帧的目标区域内人像进行由粗到细的定位[22],提高定位效率,降低后续输入图像的尺寸;然后对人脸图像采用精度高、速度快的PFLD(Praclical Facial Landmark Detector)模型[23]进行68个关键点定位;最后根据P80原则计算出每帧图像的眼部、嘴部、头部3个疲劳参数,融合PFLD检测出每帧图像中人脸关键点的3个空间姿态角(偏航角,俯仰角,滚转角)共6个参数,输入长短期记忆网络(Long Short-Term Memory,LSTM)进行疲劳检测。该算法由于采用由粗到细的方法建模,加上PFLD模型结构小,并通过合理设计6个疲劳检测参数及加权累积损失函数,使得司机疲劳检测的准确率和效率得到了有效提升。
1 脸部疲劳状态表征
1.1 脸部轮廓定位
常见的人脸轮廓定位方法有5点、68点、98点定位,见图1。图1(a)中,5点定位仅包含左眼、右眼、鼻子、左嘴角、右嘴角5个位置,只能进行人脸轮廓定位,无法判断是否处于疲劳状态;图1(b)中,98点定位包含的人脸信息过多,会导致系统运算量大、识别效率低、实时性较差;图1(c)中,68点定位可以比较准确地描述人的脸部轮廓以及眼睛、嘴巴等局部特征,又减少了运算时间,提高了人脸识别的实时性[24]。在68点定位中,左眼有6个关键点(37~42),右眼有6个关键点(43~48),嘴巴有20个关键点(49~68),其余为脸部轮廓关键点。
桩顶和基础之间应设置褥垫层[12-14],通常褥垫层厚度宜为桩径的40%~60%[15]。褥垫一般选用最大粒径不大于30 mm的中砂、粗砂、级配砂石和碎石等材料,采用静力压实法,夯填度不应大于0.90。当其他条件一定时,从图5可以看出桩土应力比随褥垫层厚度的增大而减小。当褥垫层厚度大于300 mm时,桩土应力比趋于稳定,充分发挥了桩间土的承载力。由于桩间土表面的荷载作用,会产生水平向和竖向附加应力在桩侧土单元体,水平向附加应力增大了侧阻力作用在桩表面上;竖向附加应力则大大提高了单桩承载力,褥垫层的作用得到充分地发挥。
图1 人脸面部轮廓定位(图中人像来源于YawDD数据集[25])
1.2 眼部疲劳状态表征
眼部特征是一个重要的疲劳表征参数,可以直观反映司机是否处于疲劳状态。本文采用PERCLOS原则[26]判断眼部的睁闭状态,当眼睑遮住瞳孔的面积超过80%时就记为眼睛闭合。为基于PERCLOS原则的眼睛睁闭曲线见图2。
图2 基于PERCOLS原则的眼睛睁闭曲线
图2中,纵轴为眼睛的睁开程度Eopen,横轴为时间t,0~t1为眼睛从完全睁开到20%闭合所用的时间,t1~t2是眼睛从20%闭合到80%闭合所用的时间,t2~t3是眼睛完全闭合所用的时间,t3~t4是眼睛从20%睁开到80%睁开所用的时间。设这一时段内眼睛闭合时间所占的百分比为fp,则
(1)
眼睛可以看作是两个嵌套的椭圆,见图1(c)。假设眼睛睁开的宽度为w,上下眼睑的垂直距离为h,则眼睛的面积近似为S=πwh。以左眼为例,根据眼部采集到的关键点,人眼部的w、h的计算式为
(2)
式中:x37、x40为人左眼两端的关键点横坐标;y41、y39为人左眼眼睑上下右侧的关键点纵坐标。右眼同理,则眼部睁开百分比计算为
(3)
式中:wmax、hmax分别为眼睛完全睁开时的宽度、高度。将计算得到的Eopen按照PERCOLS原理计算出t1、t2、t3、t4,代入式(1)即可计算出fp,fp输入LSTM网络进行训练即可判断司机是否处于疲劳状态。
临床安全用药监测网用药错误报告表由药品的品种、用法、用量、相互作用、患者身份及其他六大方面构成,其中因用量造成的用药错误所占比例高达42%,见图2。这六大方面又细化成20小类,见图3。
就我国当前的发展情况而言,在人力资源市场,良莠不齐,鱼龙混杂,企业往往花费较多的资金也难以招聘到高精尖的人才和适应于企业自身需求的员工。因此,企业急需建立一个信息化的人才储备系统,从而企业能够从多个角度参考应聘者的信息,确保企业在发展过程中优选到适应企业需求的高素质人才。
1.3 嘴部疲劳状态表征
嘴部的状态通常有3种:闭合、说话、打哈欠,人在疲劳时会较为频繁地打哈欠,因此嘴部的特征也是疲劳判定的一个重要参数。
嘴部的宽度wmouth、高度hmouth计算式为
(4)
式中:x49、x55为嘴部左右的两个关键点的横坐标;y51、y53、y57、y59分别为嘴部上下的4个关键点的纵坐标,通过计算其坐标的平均值获得嘴部高度。
司机在疲劳打哈欠时嘴巴的张开程度最大,嘴部会出现高度增加,宽度减少,为了衡量这两种指标表征的疲劳状态,引入嘴部纵横比Kmouth,其计算式为
(5)
将Kmouth输入LSTM网络进行训练即可判断司机是否处于疲劳驾驶状态。
1.4 头部疲劳状态表征
人在疲劳时头部容易出现频繁点头或者长时间低头的情况,因此可以将点头(低头)情况作为疲劳表征参数。人在低头时,摄像头拍摄的照片中两眼中点到达嘴巴的距离会比抬头时出现明显的缩短,故采用该距离的变化作为点头(低头)姿态的变化。
在图1(c)中,设
(6)
则两眼的直线函数为
(7)
式中:xleft、xright、yleft、yright分别为人左右眼中点的横纵坐标;x、y为两眼的直线函数横纵坐标。将式(7)化为标准型Ax+By+C=0时,可得到A,B,C的值为
(8)
再利用人脸两眼中点52号点计算到该直线的距离,即
(9)
d为图像上两眼中点到达嘴巴的距离。再以视频第一帧的pitch1计算俯仰角为0时的dmax,即
(10)
当d≤0.8dmax时可认定为司机处于低头状态。若低头超过3 s则直接判定为处于疲劳状态,若小于3 s则记入时间,计算头部低头时间所占时间的百分比,即
(11)
式中:tdown为低头时间;t为总时间;hdown为低头百分比,该数值越大则疲劳程度越深,hdown同样可以作为LSTM的输入进行疲劳状态判断。
2 基于MTCNN-PFLD-LSTM的疲劳驾驶检测模型
基于MTCNN-PFLD-LSTM的疲劳驾驶检测模型见图3。
图3 基于MTCNN-PFLD-LSTM的疲劳驾驶检测模型(图中人像来源于YawDD数据集[25])
首先通过车载摄像设备实时获取司机的视频关键帧图像,通过MTCNN确定司机人脸的区域,然后将检测出的人脸区域采用PFLD模型进行人脸关键点检测,最后计算生成脸部疲劳特征参数矩阵,并按照视频时间序列将参数矩阵输入LSTM模型进行疲劳检测,通过softmax分类输出疲劳与非疲劳状态。
星星还是那几颗星星,月亮没有出现,大概是月初吧,苏长河嘴上的烟头一红一红的,像两人的心思;柳红终于打破了院子里的沉默,她说:“爸,我穿了石头买的裙子,你看,漂亮不?”苏长河说:“我哪看得见啊。”柳红说:“你就不能说句好啊?爸,你摸摸,摸上去很得体的。”苏长河没有摸,他说:“你喜欢就好。”
2.1 人脸区域检测
MTCNN是基于级联思想的深度学习模型,由P-Net(Proposal Network)、R-Net(Refine Network)、O-Net(Output Network)三层网络构成,能兼顾性能和准确率,可实现由粗到细的人脸检测。MTCNN的图像金字塔可以进行初始图像的尺度变换,P-Net模型用于生成大量的候选目标区域框,R-Net模型对目标区域框进行精选和边框回归,进而排除大部分的负例,O-Net网络对剩余的目标区域框进行判别和区域边框回归,从而实现人脸区域的5关键点检测定位,MTCNN模型结构见图4。
图4 MTCNN模型结构
(1)构建图像金字塔
中学化学教材中呈现了大量图片,教师应开发利用这些现成的资源为教学服务。如借用教材九年级化学下册第57页图10-11氢氧化钠与盐酸反应示意图,引导学生进一步拓展深层次知识点,教师创设问题情境:中和反应的实质是什么?哪些粒子不见了?哪些粒子生成了?
对图片进行Resize操作,将原始图像缩放成不同的尺度,生成图像金字塔,便于实现多尺度人脸检测。
(2)P-Net网络
P-Net网络主要用于生成人脸候选框,其基本构造为一个全卷积网络FCN,通过FCN进行初步特征提取与标定边框,最后通过非极大值抑制NMS(Non-Maximum Suppression)的方法计算检测框中的重叠率,通过分类概率和重叠率综合判断进而过滤掉大部分重叠的窗口。P-Net网络属于二元分类问题,损失函数
计算式为
(12)
式中:
为人脸/非人脸判定的置信值。
(3)R-Net网络
R-Net网络比P-Net网络多了一个全连接层,用于精选由P-Net网络提供的窗口,去除掉大量的非人脸框。R-Net网络属于边界框回归问题,使用欧氏距离作为距离度量,损失函数
计算式为
(13)
式中:
为人脸框的真实值;
为人脸框的回归值。
(4)O-Net网络
O-Net网络比R-Net网络多了一层卷积层,处理结果更加精细,可以输出每个边界框的左边信息。R-Net网络同样属于回归问题,损失函数
计算式为
(14)
式中:
为特征点的真实值;
为特征点的回归值。
最终,MTCNN的损失函数L1为3个损失函数的加权累加,即
(15)
式中:P为训练样本数;j∈{det,box,Landmark};αj表示三层网络的权重不同;
2.2 PFLD人脸关键点检测
PFLD人脸关键点检测模型具有精度高、速度快、模型小的特点,特别适合算力不强的嵌入式移动设备,见图5。
图5 PFLD模型
PFLD不仅可以通过主网络输出人脸的68个关键点,还可以通过辅助网络输出人脸的3个姿态角(偏航角yaw,俯仰角pitch,滚转角roll)。通过68个关键点及姿态角,可以根据式(1)、式(5)、式(11)计算出疲劳参数fp,Kmouth及hdown。
PFLD损失函数L2表示为
(16)
式中:M为样本个数;N为特征点个数;
为m个样本中第n个特征点的距离度量;c为不同人脸类别数(侧脸、正脸、抬头、低头、表情、遮挡);
为与类别c对应的给定权重;k=3为人脸姿态的3个维度,即yaw,pitch,roll角度(角度越高,权重越大);θ为预测值在偏航角、俯仰角、滚转角三个角度的偏差值。
然而,一味倒向形式,却忽略了作为基础的意义,不再考虑影响意义理解的各种因素,也是顾此失彼了。以释意理论为开端的各种口译理论将语言形式和意义截然分开,使两者完全对立,实则源于西方二元对立的思想传统。这似乎已经成为一种定式。尝试跳出这种二元对立的僵化模式,形式与意义并重,一方面从认知科学、心理学、文化研究等方面考察影响意义理解的因素,另一方面从语言学角度研究不同语言的规律,寻找形式转换的捷径,或能推动口译实践的进一步发展。
2.3 脸部疲劳状态参数矩阵
人的脸部疲劳状态可以根据眼睛(睁、闭)、嘴巴(闭合、说话、打哈欠)及头部偏航角yaw、俯仰角pitch、滚转角roll来综合表达。
在PFLD获得人脸的68个关键点后,对于连续时间节点序列(t1,t2,…,tn)上采集的视频图像帧(第1帧,第2帧,…,第n帧),每一帧图像可根据眼部、嘴部和头部关键点及yaw、pitch、roll角度计算出状态参数,生成脸部疲劳状态参数矩阵Xt为
(17)
2.4 基于LSTM网络的疲劳检测
LSTM模型是一种时间递归神经网络,旨在解决RNN的长期依赖与梯度消失问题,LSTM网络能够记住长期依赖关系,将前一时刻的网络输出选择性地记忆下来,为后续的网络学习提供丰富的事件关联性。LSTM网络见图6。
图6 LSTM网络
LSTM在t时刻的表达形式如下:
输入门为
it=σ(Wi×[ht-1,xt]+bi)
(18)
遗忘门为
纵观近几年来的药物监管现状,我国农业部门对兽药的生产和运用施行了全方位的监督管理,不仅提高了兽药地方生产的标准,也为养殖业的用药规范提供了诸多便利。然而,部分未经过合法认证的地方制药企业则纷纷转变思路,从兽药生产经营转变为“非药品”的生产,从而脱离了农业部兽药监管范围。这些企业大多属于小型地方企业,生产成本低,产品质量低劣,未达到国家标准,甚至出现以次充好的行为,并以低廉的价格出售给养殖户,不仅无法保障水产动物的病害治疗效果,而且造成水产动物死亡概率增加,药物残留机率增大,对水产品的质量安全构成严重威胁。
ft=σ(Wf×[ht-1,xt]+bf])
(19)
记忆元胞单元为
(20)
(21)
输出门为
智和智拓营销咨询公司总经理颜东从宏观、原材料等多方面对肥料行业近期及未来发展进行了分析。据他介绍,尿素后势企稳,或有阶段性上涨;磷铵涨势已起;钾肥需结合国际大合同结果,呈上涨趋势。他表示,整体而言,化肥行业持续推进供给侧改革,安全、环保持续高压,能源和原料市场高位运行,复合肥的成本压力因此在不断扩大,拥有原料和品质优势的生产企业将会形成明显的竞争优势。
ot=σ(Wo×[ht-1,xt]+bo)
(22)
ht=ottanh(Ct)
(23)
式中:xt为t时刻的输入;it、ft、ot分别为t时刻输入门、遗忘门和输出门通过激活函数的值;Wi、Wf、Wc、Wo和bi、bf、bo分别为权重和偏差;
为t时刻记忆元状态;ht为最终类别输出。
在司机疲劳检测中,监控视频可以按帧分解成图片序列,按照时间顺序将每一帧图片的脸部疲劳状态参数矩阵Xt输入LSTM,即可实现运动状态下的司机疲劳状态判断。
LSTM输出为是否疲劳的分类状态,故采用softmax损失函数,由于softmax损失函数在分类时主要将不同类之间的差异最大化,但对于同类之内的样本差异不一定最小化,因此会使得模糊样本的特征提取效果不佳,从而影响分类的准确率,为此,本文引入中心损失函数Lcenter为
(24)
式中:xi为第i个视频疲劳特征矩阵;f(xi)为LSTM预测值;ci为该视频样本所属聚类的中心,聚类中心在初始阶段为随机确定;m为处理批次的大小,本文选用m=128,在之后每批次中更新聚类中心。则
L3=Lsoftmax+λLcenter
(25)
式中:L3为LSTM损失函数;Lsoftmax为softmax 交叉熵损失函数;Lcenter为中心损失函数;λ为中心损失权重。
采用加权累积方法计算MTCNN-PFLD-LSTM模型的损失函数L ,则有
(26)
式中:J为训练样本数;k∈{1,2,3};ωk为MTCNN、PFLD、LSTM 3个处理过程中的损失函数权重值。
3 试验验证
基于视觉特征的火车司机和汽车司机疲劳检测需要在司机驾驶台上方安装视频采集装置,本文算法的原理相同,但由于采集装置、采集环境以及所采数据集的不同,导致MTCNN-PFLD-LSTM深度学习模型的训练参数会有所不同。由于篇幅限制,本文仅对汽车疲劳驾驶进行试验,以对算法的有效性进行验证。
二是应适时扩大钾肥储备范围。日前,相关领导以及中国石化联合会、钾盐钾肥行业分会、中国农资传媒层多次呼吁将国产钾肥纳入储备范围。“钾肥观察家”认为,“钾肥国储”不仅要担当调节国内钾肥市场的“蓄水池”,更深远的意义在于平衡国际、国内两个市场,保证供给平稳。应当在流通主渠道发挥优势的前提下,扩大储备数量和范围,特别是将国内开发和境外开发资源统筹规划,纳入储备机制全盘考量。
3.1 试验环境及实验数据集
试验平台采用Intel(R)Core(TM)i5-4210,主频1.70 GHz,8 GB内存,配置较低。在Windows10环境下使用Tensorflow深度学习框架,采用Adam优化器,未使用GPU加速。
试验数据集使用YawDD视频数据集[25] 和自采人脸图像数据集。YawDD数据集是一个公开的视频数据集,共有351个汽车司机驾驶视频,每个视频都标注了正常、说话、唱歌和疲劳打哈欠4种状态,本文将正常、说话、唱歌的状态标注为非疲劳状态,将疲劳打哈欠标注为疲劳状态[27]。人脸定位的精确度对于疲劳检测的结果至关重要,由于YawDD数据集中司机人数相对较少,用这些视频关键帧图像训练MTCNN模型时,样本数量略显不足,因此,本文从网络上不同的人脸图像数据集中采集了4 792张不同的人脸照片构成自采数据集,通过大量自采样本数据提高MTCNN模型训练质量,训练好的MTCNN网络模型直接用来对YawDD视频数据集中的关键帧图像进行人脸定位检测,弥补YawDD数据集样本较少的缺陷。图7为自采人脸图像数据集和YawDD数据集部分示例。
图7 自采人脸图像数据集和YawDD数据集(部分)
3.2 试验过程
Step1 自采数据集人脸区域及关键点标注
样本标记的精确度对于深度学习的准确性至关重要,Labelimg是一个可视化的图像标定工具,通过可视化操作可保证标注的准确性,因此本文选用Labelimg软件为自采人脸数据集的4 792张照片添加人脸框以及关键点位置。自采集数据集中1419.jpg的Labelimg标注示例见图8。
图8 自采图像1419.jpg人脸区域及68关键点
标记Labelimg标记
Step2 MTCNN模型训练
萍萍给他取的绰号是从“心肝”开始的,接下去有“宝贝”,“王子”,“骑士”,“马儿”,这是比较优雅的,往后就是食物了,全是“卷心菜”,“豆干”,“泥肠”,“土豆”之类的,还有我们都听不明白的“气势汹汹”和“垂头丧气”。
将Step1中标注好的自采数据集的50%作为训练集,10%作为验证集,40%作为测试集。将训练集数据引入MTCNN进行训练,训练好的模型用验证集数据进行模型过拟合验证,然后用测试数据集进行测试,测试识别结果见表1。
表1 人脸区域识别结果
人脸照片数量/张识别出人脸数量/张识别率/%1 9171 90199.18
由表1可知,通过自采数据集对MTCNN模型进行训练,人脸区域识别率达到99.18%,取得了较好的训练效果。
Step3 YawDD数据集中人脸区域识别
将YawDD数据集的每个视频文件按照关键帧分解出100张图片,共35 100张照片,输入训练好的MTCNN模型进行人脸区域检测,识别结果见表2。
表2 YawDD数据集中人脸区域识别结果
人脸照片数量/张识别出人脸区域数量/张识别率/%35 10034 83299.24
表2的识别率达到99.24%,比表1的识别率增加了0.06%,这也反映了虽然MTCNN模型参数不变,但数据集不同,网络输出结果会有一定程度的变化。
这奉旨写下的赞美皇帝媳妇的诗成为唐明皇与杨贵妃的爱情故事千古佳句。云、花、露、玉山、瑶台、月色,一色素淡字眼,赞美了贵妃的丰满姿容,却不露痕迹,字字珠玑,拍功炉火纯青呀。贵妃明白李白的心意,在一旁柔声吟唱,李白真是陶醉,这以后全成了回忆。诗成后,玄宗满意,贵妃会意,李白最得意。
我们知道在无人机中有一个摄像机是搭载高清摄像机,若把其使用在飞行控制系统与地面控制系统之中的话,能够取得较好的效果,其一,基于使用此种摄像机,能够灵活转动摄像头完成拍摄工作,使拍摄数据图片成像更加清晰,以及清楚看到地形的层次分面与色彩层级。基于此,促进土地整治项目工作顺利完成。
Step4 YawDD数据集中人脸关键点检测
冬季修剪时,4个蔓性主枝的延长枝进行中短截,壮芽当头;培养长轴型结果枝组的枝轻短截,培养小型结果枝组的枝重短截,疏除过密枝和背上直立枝,其他枝缓放。
将Step3中检测出的人脸区域引入PFLD网络检测68个关键点,可得到所有关键帧照片的人脸关键点坐标,视频24-FemaleNoGlasses-Normal.avi中第10帧图像的人脸关键点坐标及姿态角见图9。
图9 24-FemaleNoGlasses-Normal第10帧图像人脸关键点坐标及姿态角
图9(a)为视频24-FemaleNoGlasses-Normal.avi中第10帧图像的人脸关键点及姿态角,蓝色关键点为标记点,红色关键点为检测点。35 100张视频帧照片的关键点检测结果见表3。
表3 人脸关键点检测结果
人脸照片数量/张正确检测出关键点照片数量/张识别率/%35 10034 84099.26
Step5 计算疲劳参数矩阵
将Step4中检测出的关键点坐标及姿态角按照式(1)、式(5)、式(11)可以计算出相应的疲劳特征参数。视频24-FemaleNoGlasses-Normal.avi的疲劳参数计算结果见表4(前10帧)。
表4 视频24-FemaleNoGlasses-Normal疲劳
参数计算结果(前10帧)
视频帧(时间序列)fpKmouthtdownpitchyawroll10.060.310.0216.98-27.34-7.1520.090.300.0216.48-26.73-7.2630.140.310.0018.41-25.47-7.1940.250.310.0017.86-25.97-8.5150.450.300.0217.45-25.62-7.3960.500.300.0119.55-27.55-8.3570.240.310.0218.73-26.01-8.2180.120.300.0219.22-27.17-7.6890.070.300.0219.02-27.02-8.91100.040.300.0017.08-25.95-9.95
Step6 LSTM疲劳检测
将Step5中计算出的疲劳参数输入LSTM网络,其中将223个视频(63.5%)作为训练集,128个视频(36.5%)作为测试集,学习率为0.001,最后通过softmax得到疲劳检测结果,见表5。
表5 疲劳检测结果
序号YawDD标注状态YawDD视频数量MTCNN-PFLD-LSTM单项疲劳检测结果MTCNN-PFLD-LSTM特征融合检测结果眼部非疲劳眼部疲劳嘴部非疲劳嘴部疲劳头部非疲劳头部疲劳非疲劳疲劳1非疲劳868248247798602疲劳42339438537141
3.3 试验结果分析
司机疲劳状态检测属于分类问题,可以采用准确率以及检测帧率FPS来进行评估[28]。
根据表5可以计算出MTCNN-PFLD-LSTM疲劳检测准确率,结果见表6。
表6 MTCNN-PFLD-LSTM疲劳检测准确率
疲劳特征参数准确率/%fp+ pitch+ yaw+ roll94.53Kmouth+ pitch+ yaw+ roll93.75tdown + pitch+ yaw+ roll89.06fp+ Kmouth+ tdown + pitch+ yaw+ roll99.22
从表6可以看出,分别使用fp、Kmouth、hdown与3个空间姿态角yaw、pitch、roll共4个参数训练网络时,检测准确率分别为94.53%、93.75%、89.06%,而将fp、Kmouth、hdown与yaw、pitch、roll角度共6个参数输入网络训练时,检测准确率达到99.22%。
3.4 损失函数loss
损失函数loss用来表现预测值和实际值之间的差异程度,权重ωk的不同取值对于实验结果影响较大。假定ω1变化、ω2=ω3,分析ω1的变化对loss的影响,选取ω1∶ω2∶ω3=0.1∶0.45∶0.45、ω1∶ω2∶ω3=0.3∶0.35∶0.35、ω1∶ω2∶ω3=0.5∶0.25∶0.25、ω1∶ω2∶ω3=0.7∶0.15∶0.15,损失函数图像见图10(a),可以看出,当ω1权重较低时模型收敛速度较慢,损失函数loss增大、准确率降低,故应增大ω1的权重,充分验证了人脸图像分割精度对于疲劳检测的重要性,但当ω1取值过高时(如ω1=0.7),模型收敛速度反而又会降低,经过反复试验,当ω1=0.5时模型收敛速度快、准确率高。当ω1=0.5时,分析ω2、ω3变化对loss函数的影响,分别取ω2=0.1、ω3=0.4,ω2=0.2、ω3=0.3,ω2=0.25、ω3=0.25,ω2=0.3、ω3=0.2,ω2=0.4、ω3=0.1,loss曲线见图10(b),可以看出,当ω2=ω3=0.25时模型收敛速度快、准确率高。经过反复试验,最终确定权重ωk的取值为ω1∶ω2∶ω3=0.5∶0.25∶0.25。
图10 权值ωk取不同值时的loss曲线
当ω1∶ω2∶ω3=0.5∶0.25∶0.25时,通过损失函数曲线可以看出该模型收敛速度较快,在训练了500张图像时的损失值和训练2 500张图像时的损失值相差不大,在训练到2 500张图像时损失函数波动很小,显示出模型具有较好的鲁棒性。
为验证本文算法的优越性,和其他最新的疲劳检测算法进行对比,结果见表7。
表7 对比实验结果
文献算法准确率/%FPS[12]LSTMs92.71—[13]Haar+ELM93.9020[14]RF-DCM89.42290(GPU)[15]MSP-Net95.36232(GPU)[16]HOG+SVM96.40—[17]FDRNet98.968[18]BFDN97.06—[19]CNN+DF-LSTM94.4815本文MTCNN-PFLD-LSTM99.2246
由表7可以看出,本文在低算力设备及无GPU加速情况下,采用MTCNN-PFLD-LSTM算法,准确率达到99.22%,检测帧率达到46;本文检测准确率比第2的模型(文献[17])增加了0.26%,检测帧率FPS比性能第2的模型(文献[13])增加了1.3倍。文献[14]和文献[15]由于采用了GPU加速,所以FPS较高,但是硬件配置要求较高;文献[17]的检测准确率较高,但是检测帧率为8,运算效率较低。对比试验结果表明,本文提出的算法在低算力设备上应用时耗时较少,检测准确率较高,综合检测效果较好。
4 结论
本文采用MTCNN-PFLD-LSTM模型进行司机疲劳驾驶检测,无须GPU加速,便于在移动设备等低算力设备上应用。通过优化MTCNN-PFLD-LSTM模型在不同阶段任务的损失函数权重,在YawDD数据集中的检测准确率达到99.22%,检测帧率达到46,检测的效率与准确性较好,能够满足基于视觉特征的司机疲劳驾驶检测要求。
参考文献:
[1] FATIGUE D.Road Accidents: A Literature Review and Position Paper[J]. Royal Society Prevention Accidents,2001,1(2):1-24.
[2] TEFFT B. Prevalence of Motor Vehicle Crashes Involving Drowsy Drivers[J].AAA Foundation for Traffic Safety,2014,45(1):1-8.
[3] MONAGI H A, WAZIR Z K, QURATULAIN A. Detecting Human Driver Inattentive and Aggressive Driving Behavior Using Deep Learning: Recent Advances, Requirements and Open Challenges[J]. IEEE Access,2020,8(1):105008-105030.
[4] RAMZAN M, KHAN H U, AWAN S M, et al. A Survey on State-of-the-Art Drowsiness Detection Techniques[J]. IEEE Access,2019,7(1):61904-61919.
[5] 李响,李国正,彭理群,等.基于语音特征迁移学习的驾驶疲劳检测[J].铁道学报,2020,42(4):74-81.
LI Xiang,LI Guozheng,Peng Liqun,et,al. Driver Fatigue Detection Based on Spaceh Feature Transfer Learning[J].Journal of the China Railway Society, 2020,42(4):74-81.
[6] 刘明周,蒋倩男,扈静.基于面部几何特征及手部运动特征的驾驶员疲劳检测[J].机械工程学报,2019,55(2):18-26.
LIU Mingzhou, JIANG Qiannan, HU Jing. Based on Facial Geometric Features and Hand Motion Characteristics Driver Fatigue Detection[J]. Journal of Mechanical Engineering,2019,55(2):18-26.
[7] ZHENG W L, GAO K, LI G, et al. Vigilance Estimation Using a Wearable EOG Device in Real Driving Environment[J]. IEEE Transactions on Intelligent Transportation Systems,2020,21(1):170-184.
[8] 胥川,裴赛君,王雪松.基于无侵入测量指标的个体差异化驾驶疲劳检测[J].中国公路学报,2016,29(10):118-125.
XU Chuan, PEI Saijun, WANG Xuesong. Driver Drowsiness Detection Based on Non-intrusive Metrics Considering Individual Difference[J]. China Journal of Highway and Transport,2016,29(10):118-125.
[9] LI K, GONG Y, REN Z. A Fatigue Driving Detection Algorithm Based on Facial Multi-feature Fusion[J]. IEEE Access, 2020, 8(1):101244-101259.
[10] 冯文文,曹银杰,李晓琳,等.基于改进的深度卷积神经网络的人脸疲劳检测[J].科学技术与工程,2020,20(14):5680-5687.
FENG Wenwen, CAO Yinjie, LI Xiaolin, et al. Face Fatigue Detection Based on Improved Deep Convolutional Neural Network[J]. Science Technology and Engineering, 2020,20(14):5680-5687.
[11] SUN Y, WANG X, TANG X. Deep Convolutional Network Cascade for Facial Point Detection[C]// 2013 IEEE Conference on Computer Vision and Pattern Recognition.New York:IEEE,2013:3476-3483.
[12] TOSHEV A, SZEGEDY C. Deep Pose: Human Pose Estimation via Deep Neural Networks[C]// 2014 IEEE Conference on Computer Vision and Pattern Recognition. New York:IEEE,2014:1653-1660.
[13] ED-DOUGHMI Y, IDRISSI N. Driver Fatigue Detection using Recurrent Neural Networks[C]//the 2nd International Conference.MOROCCO:NISS,2019:1-6.
[14] CHANG Z, BAN X J, WANG Y, et al. Fatigue Driving Detection Based on Haar Feature and Extreme Learning Machine[J]. The Journal of China Universities of Posts and Telecommunications,2016,23(4):91-100.
[15] HUANG R, WANG Y, LI Z, et al. RF-DCM: Multi-granularity Deep Convolutional Model Based on Feature Recalibration and Fusion for Driver Fatigue Detection[J]. IEEE Transactions on Intelligent Transportation Systems,2020,99:1-11.
[16] GU W H, ZHU Y, CHEN X D, et al. Hierarchical CNN-based Real-time Fatigue Detection System by Visual-based Technologies Using MSP Model[J]. IET Image Processing,2018,12(12):2319-2329.
[17] DEY S, CHOWDHURY S A, SULTANA S, et al. Real Time Driver Fatigue Detection Based on Facial Behaviour along with Machine Learning Approaches[C]// IEEE International Conference on Signal Processing, Information, Communication and Systems 2019.New York:IEEE,2019:423-435.
[18] XIAO Z, HU Z, GENG L, et al. Fatigue Driving Recognition Network: Fatigue Driving Recognition via Convolutional Neural Network and Long Short-term Memory Units[J]. Intelligent Transport Systems, IET,2019,13(9):1410-1416.
[19] LIU W, QIAN J, YAO Z, et al. Convolutional Two-stream Network Using Multi-facial Feature Fusion for Driver Fatigue Detection[J]. Future Internet,2019,11(5):115.
[20] 耿磊,梁晓昱,肖志涛,等.基于多形态红外特征与深度学习的实时驾驶员疲劳检测[J].红外与激光工程,2018,47(2):69-77.
GENG Lei, LIANG Xiaoyu, XIAO Zhitao, et al. Real-time Deriver Fatigue Detection Based on Morphology Infrared Features and Deep Learning[J]. Infrared and Laser Engineering,2018,47(2):69-77.
[21] 郭琳,秦世引.遥感图像飞机目标高效搜检深度学习优化算法[J].北京航空航天大学学报,2019,45(1):159-173.
GUO Lin, QIN Shiyin. Deep Learning and Optimization Algorithm for High Efficient Searching and Detection of Aircraft Targets in Remote Sensing Images[J]. Journal of Beijing University of Aeronautics and Astronautics,2019,45(1):159-173.
[22] 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.
[23] GUO X, LI S, YU J, et al.PFLD:a Practical Facical Landmark Petector[J/OL].Computer Science,(2019-03-03)[2020-12-11].https://arxiv.org/pdf/1902.10859.pdf.
[24] 孙铭堃,梁令羽,汪涵,等.基于级联卷积网络的面部关键点定位算法[J].中国科学院大学学报,2020,37(4):562-569.
SUN Mingkun, LIANG Lingyu, WANG Han, et al. Facial Landmark Detection Based on Cascade Convolutional Neural Network[J]. Journal of University of Chinese Academy of Sciences,2020,37(4):562-569.
[25] ABTAHI S, OMIDYEGANEH M, SHIRMOHAMMADI S, et al. YawDD: Yawning Detection Dataset [C]// Proceedings of the 5th ACE Multimedia Systems Conference.New York: ACM,2014:24-28.
[26] PENG Y, DONG Y, CHENG U. Design and Implementation of a Driver’s Eye State Recognition Algorithm Based on PERCLOS[J]. Chinese Journal of Electronics, 2014,23(4):669-672.
[27] GALLUP A C, ELDAKAR O T. The Thermoregulatory Theory of Yawning: What We Know from over 5 Years of Research[J]. Frontiers in Neuroscience, 2012, 6:1-13.
[28] 张彦楠,黄小红,马严,等.基于深度学习的录音文本分类方法[J].浙江大学学报(工学版),2020,54(7):1264-1271.
ZHANG Yannan, HUANG Xiaohong, MA Yan, et al. Method with Recording Text Classification Based on Deep Learning[J]. Journal of Zhejiang University (Engineering Science), 2020,54(7):1264-1271.