APP下载

基于逆投影修正和眼睛凝视修正的列车驾驶员疲劳检测方法

2018-05-07陈小强雷嘉莹

铁道学报 2018年4期
关键词:特征参数人脸头部

杨 欢,陈小强,雷嘉莹,王 英

(1.兰州交通大学 自动化与电气工程学院,甘肃 兰州 730070;2.光电技术与智能控制教育部重点实验室,甘肃 兰州 730070)

随着我国高速铁路的快速发展,列车司机作业由传统的列车操纵型,转变为对列车实时运行信息的长时间监控[1]。长时间单调驾驶会导致驾驶员疲劳与嗜睡程度显著增加,在列车事故的发生原因中,列车司机疲劳驾驶所占比例最大。因此,如何减少由疲劳驾驶造成的列车事故,提高列车司机驾驶的安全性尤为重要。

国内外对疲劳驾驶检测方法的研究主要有三种:基于面部表现的疲劳检测方法[2-10]、基于生理指标的接触式测量方法[11]和基于驾驶行为特性的疲劳检测方法[12]。基于生理指标的检测方法需要驾驶员佩戴检测设备,会影响驾驶舒适度;基于驾驶行为特性的检测方法受驾驶员操作习惯和路况等因素的影响,检测效果受到限制;基于面部表现的检测方法易操作、成本低,无需穿戴特殊设备,但要求较高的实时性和鲁棒性,是近年来的研究热点。

通过机器视觉相关算法提取驾驶员面部特征来判断疲劳程度是基于机器视觉疲劳检测的主要方法。文献[2]将人脸图像进行Gabor变换并提取特征模型,再结合隐马尔可夫模型进行疲劳检测。文献[3]采用自商图弱化光照影响,建立全局形状模型,以适应大角度头部姿态变化。文献[4-5]提出了基于主动形状模型人脸特征定位算法,提高了疲劳检测的准确性和鲁棒性。文献[6-7]使用近红外照明方法,分别获得暗瞳图像和亮瞳图像并进行差分,从而准确定位瞳孔位置。文献[8-9]分别基于肤色特征和纹理特征,采用灰度投影获得投影曲线并结合有关人脸的先验知识定位眼睛位置。文献[10]通过模板匹配定位眼睛位置,提取眼睛位置的灰度特征进行眼睛状态判别。文献[2]采用机器学习的方法进行眼睛定位,提高了疲劳检测的准确性和鲁棒性,但要求脸部正视摄像头,多视角情况下难以准确测量眼睛的特征参数。文献[3-5]解决了多视角变化时面部特征定位困难的问题,但多视角情况下疲劳特征参数会随着头部姿态的不同发生变化。虽然文献[6-7]基于近红外照明的方法可以较好地定位眼睛位置,但该类方法需要稳定光源且环境光强度变化较小。由于眼眉和眼睑的影响,难以准确定位特征区域,因此文献[8-10]适用于人眼粗定位。

由于上述方法未考虑驾驶员头部姿态变化对眼睛特征参数的影响,因此本文深入分析了列车司机头部姿态变化和凝视方向对眼睛特征参数的影响,结合监督下降法SDM和头部姿态估计POSIT,提出了采用逆投影变换和凝视修正的眼睛疲劳特征参数提取算法,实现了眼睛特征参数的准确提取,减小了头部姿态变化对眼睛特征参数的影响。

1 疲劳检测流程

疲劳检测流程如图1所示。输入采集的驾驶员脸部图像,通过人脸检测算法和特征点定位算法获得感兴趣的参数——投影眼睛开合度和头部姿态角度。后续算法通过这些参数对原始眼睛开合度进行修正。首先,利用头部姿态角度分别计算逆投影修正因子p1和凝视修正因子p2。再利用两个修正因子对投影眼睛开合度进行修正。最后使用修正后的眼睛开合度进行疲劳检测。

图1 疲劳检测算法流程

2 人脸检测与特征点定位

为了解决驾驶员头部姿态变化导致人脸检测和特征点定位的困难,采用基于Adaboost的人脸检测算法搜索人脸区域,在人脸区域中运用SDM算法定位人脸特征点,根据眼睛特征点的分布计算眼睛疲劳特征参数。

2.1 人脸检测

由于SDM算法收敛到人脸特征点前,需要获得人脸区域,再从该区域定位初始位置进行迭代计算。因此,人脸检测的定位直接影响SDM算法的准确性和收敛稳定性。此外,人脸检测的速度会影响疲劳检测的实时性,是疲劳检测算法能否快速做出反应的重要因素。Viola快速人脸检测算法[13]使用简单的Haar特征构成大量弱分类器,Adaboost算法从众多的弱分类器中挑选出分类能力最强的若干弱分类器,并将其“串联”为一个强分类器。为了提高效率和准确率,使用积分图加快了Haar特征的计算速度,且将不同复杂度的强分类器“串联”形成最后的人脸检测器。

2.2 基于SDM的特征点定位

SDM算法是一种比较新的人脸对齐算法[14],从非线性最小二乘函数在不同点的采样值出发,试图寻找一个函数值下降的方向序列,即{R}和{b}。由于SDM 算法无需目标函数二次可导,也不需要计算Jacobian和Hessian矩阵,因此具有广泛的应用领域。其训练步骤如下:

步骤2最小化损失函数。SDM算法采用平方误差函数作为损失函数,评估预测的特征点坐标与真实坐标的差距。设xk为第k次迭代后的特征点位置,φk为xk处的SIFT特征。可得

( 1 )

( 2 )

求解式( 2 )可以得到Rk和bk。

xk+1=xk+Rkφk+bk

( 3 )

从而获得新的特征点位置xk+1。经过若干次迭代,直到收敛至x*。整个过程中产生一系列{R}和{b}的值,这些参数可进行人脸特征点定位的预测。人脸检测与特征点定位结果如图2所示。

图2 人脸检测与特征点定位结果

3 眼睛特征参数提取与修正

3.1 头部姿态估计

为了不增加成本,避免驾驶员穿戴额外设备,采用软件估算头部姿态角度。如图3所示,任意多视角头部姿态可由图3中表示的3种基本头部姿态(分别称为Pitch、Roll和Yaw)叠加而成。采用头部姿态评估算法POSIT[15-16]计算这3种基本头部姿态角度。

图3 多视角分解示意图

头部姿态估计分为两步:

步骤1用解线性方程组的方法求解旋转矩阵R和平移向量T。

R=Rx(α)Ry(β)Rz(γ)

( 4 )

( 5 )

Rx(α)、Ry(β)和Rz(γ)分别为

( 6 )

( 7 )

( 8 )

式中:α、β和γ分别表示绕x、y和z轴旋转的角度。

步骤2利用旋转矩阵和平移向量,更新比例系数,再由比例系数更新所有点,迭代求解。

( 9 )

式中:n为人脸特征点个数;qi为第i个待测人脸特征点;pi为第i个标准模型特征点;C为伸缩因子;R为旋转矩阵;T为平移矩阵。

3.2 眼睛特征提取

脸部疲劳信息中最明显且最重要的判断依据是眼睛开合度。驾驶员在清醒时眼睛是处于自然睁开状态;若驾驶员处于中度疲劳时,会频繁眨眼且闭眼时间加长;若驾驶员处于疲劳状态,眼睛则处于闭合状态。因此,在基于机器视觉的疲劳检测方法中,以眼睛的开合度表征驾驶员的疲劳程度最为直接。如图4所示,眼睛的特征参数是通过计算其宽高比获得的,即

(10)

式中:h和w分别表示眼睛的高度和宽度。

图4 眼睛特征参数提取方法

由于驾驶员在驾驶过程中较难保持某一姿态不变,其头部姿态的变化也难以得到预测。因此,传统的基于机器视觉的疲劳检测方法往往因驾驶员头部变化而产生干扰,在驾驶员低头时会发生误检。研究发现,引起误检主要有两方面原因:头部姿态变化导致眼睛的特征参数在摄像机感光平面上投影的变化;由于凝视方向导致眼睑位置发生变化。

3.3 眼睛开合度的逆投影修正

在不眨眼和凝视方向固定的情况下,眼睛的开合度不受头部姿态变化影响。但头部姿态的不同,会影响眼睛在成像平面的投影形状。表1列出了不同状态和不同头部姿态下眼睛的开合度均值,其中Pitch旋转和Yaw对眼睛开合度影响较大。

表1 不同状态和不同头部姿态下眼睛的开合度均值

图5 眼睛开合度参数建模

如图5所示,假设成像平面与xoy平面平行。在成像平面上,眼睛的宽度和高度的投影与原来眼睛的宽度和高度比较,发生了不同程度的变化,直接计算眼睛开合度无法反映真实的眼睛状态。任意眼睛的空间方向可以看作是标准眼睛位置在3个坐标轴上的旋转结果。设眼睛的高度和宽度分别为向量H和向量W的模长。眼睛在空间中的旋转可视为H和W在空间中的旋转。设H=[0h0],W=[w0 0],绕坐标轴旋转的角度分别为α、β和γ,根据罗德里格旋转公式可计算出旋转后的向量为

H′=h[sinαsinβcosγ-cosαsinγ,sinαsinβsinγ-cosαcosγ,sinαsinβ]

(11)

W′=w[cosβcosγ,cosβsinγ,-αsinβ]

(12)

其在xoy平面的投影向量为

Hp=h[sinαsinβcosγ-cosαsinγ,sinαsinβsinγ-cosαcosγ,0]

(13)

Wp=w[cosβcosγ,cosβsinγ,0]

(14)

投影向量的模长分别为

(15)

(16)

将式(15)与式(16)相除可得

(17)

式(17)左边为眼睛在投影面的开合度,式(17)右边为眼睛的真实开合度乘以一个比例系数。将式(17)代入式(10)可得

(18)

rt=rp×P1

(19)

式中:P1为逆投影修正系数。

3.4 眼睛开合度的凝视修正

研究发现,凝视方向与头部姿态有关,且凝视方向对判断疲劳程度具有较大影响,其中向下凝视对眼睛特征参数的影响较大,向上凝视对眼睛特征的影响较小。实验分别测定了5组向下凝视0°、5°、10°、15°、20°、25°、30°时眼睑的位置,实验数据见表2,在向下凝视0°时认为眼睛无闭合。部分实验结果如图6所示。

表2 凝视方向与眼睛开合度实验数据

(a)向下凝视0°(b)向下凝视5°(c)向下凝视10°(d)向下凝视15°(e)向下凝视20°(f)向下凝视25°

(g)向下凝视30°图6 凝视与眼睑关系实验结果

使用最小二乘法将实验数据进行拟合,拟合结果见表3,三次多项式拟合误差最小,因此采用三次多项式作为拟合函数。

表3 凝视修正因子拟合误差

设基于凝视修正的眼睛特征修正系数p2=1-f(θ),其中f为三次拟合函数,其修正公式为

(20)

结合式(19)和式(20),综合两次修正方法可得

(21)

4 疲劳检测

CMU研究所经过实验和论证,提出了度量疲劳/瞌睡物理量的PERCLOS准则,目前该方法是公认最有效的疲劳评测方法。PERCLOS原理为单位时间内眼睛闭合一定时间所占的比例,若该值大于设定的阈值就认为产生了疲劳状态[17]。

(22)

视频中每帧的时间固定,将检测周期时间和眼睛闭合时间改为检测周期帧数和眼睛闭合帧数,且阈值设定为0.4时,检测效果最好,因此式(22)可以修改为

(23)

PERCLOS方法中有EM、P70和P80三种不同的疲劳判断标准,分别表示眼睛闭合了50%、70%和80%。其中P80标准判断疲劳程度效果最好,因此根据P80定义眼睛状态,如式(24)所示,当眼睛的开合度小于阈值T时,认为眼睛闭合了80%。通过反复测定眼睛在正常和疲劳状态下的开合度,设定阈值T=0.18。

(24)

由于疲劳检测缺乏公用测试数据库,因此本文采用自行拍摄视频对算法进行实验验证,使用web摄像机,分辨率为640×480,每秒15帧。在实验室环境下拍摄了两段视频,每段10 s。光源采用人工光照且光线均匀,实验人员无佩戴墨镜和口罩。实验环境,CPU为Intel E3-1231 v3四核 3.4 GHz;内存为8 G。考虑检测的灵敏性,PERCLOS检测周期设定为30帧。

图7的实验数据中无疲劳状态产生。如图7(a)和图7(b)所示,由于驾驶员头部姿态变化的影响,眼睛开合度修正效果较明显。当Pitch值增大时,眼睛的开合度逐渐减小。第100~110帧眼睛开合度过大是检测误差所致。如图7(c)所示,修正后的眼睛特征参数不会触发疲劳警戒条件。

(a)眼睛开合度对比

(b)头部运动变化

(c) Perclos值对比图7 有头部姿态变化(Pitch、Yaw)检测结果

图8的实验数据中出现三次疲劳状态。分析图8(a)与图8(b),疲劳状态下驾驶员的头部姿态基本不变且闭眼时间加长。图8(a)说明疲劳状态下修正因子对眼睛开合度几乎无影响,第84帧未检测到人脸,眼睛开合度为0。图8(c)为修正前后Perclos值对比,修正后相比修正前有略微延迟,延迟时间不超过0.6 s。

(a)眼睛开合度对比

(b)头部运动变化

(c)疲劳状态下Perclos值对比图8 无头部姿态变化检测结果

表4为本文方法与文献[5]方法在头部姿态变化情况下疲劳检测率与疲劳误检率实验对比数据。在检测率方面,文献[5]较高,但在误检率方面,本文算法较低。原因如下:文献[5]采用多疲劳特征,对疲劳状态的判断更加细腻且准确;本文算法考虑了头部姿态对疲劳特征参数的影响,因此具有较低的误检率。文献[5]算法无法识别驾驶员头部运动状态,因此驾驶员低头动作被视为点头动作,判断为“疲劳”状态。

表4 头部姿态变化情况下疲劳检测准确率对比 %

图9 疲劳检测实验结果对比

图9为两种算法在同一实验中的对比结果。该实验分为两个阶段:疲劳程度逐渐增加再逐渐减小;头部姿态变化但无疲劳状态。从图9可以看出,第一阶段时文献[5]与本文算法基本一致,可以准确识别疲劳状态;第二阶段由于头部姿态变化,本文方法与实际疲劳状态较接近。从实验对比可以看出,本文的疲劳检测方法在保证疲劳检测准确率的同时,也可以在驾驶员头部姿态变化的情况下,降低误检率。

5 结束语

本文研究传统列车驾驶员疲劳检测算法的不足之处,并提出基于逆投影修正和凝视修正的疲劳检测方法。实验结果表明:该方法有效修正了因头部姿态变化引起的眼睛疲劳特征参数变化,从而为疲劳检测算法提供了更可靠的眼睛疲劳特征参数,使得疲劳检测算法鲁棒性更高。

由于SDM算法和头部姿态估计算法本身的限制,检测范围在-30°~30°之间(Pitch)和-45°~45°之间 (Yaw)变化,但由于抬头对检测影响较小,因此重点检测0°~30°(Pitch)和-45°~45°(Yaw)。由于头部姿态和凝视方向的共同影响,驾驶员低头至10°~14°时,传统的摄像机位置无法反映眼睛的真实状态。因此摄像头的安装位置应在10°~14°为最佳。

下一步考虑多视角多特征综合疲劳检测。由于疲劳是驾驶员生理和心理共同作用的结果,因此驾驶员操作特征、生理特征等其他重要特征也值得深入研究。

参考文献:

[1]郭孜政,潘毅润,吴志敏,等.疲劳对高铁司机持续性注意影响机制的ERP试验研究[J].中国安全科学学报,2015,25(8):81-86.

GUO Zizheng, PAN Yirun,WU Zhimin,et al. ERP-based Study on Influencing Mechanism of Fatigue on High-speed Railway Drivers’ Sustained Attention[J]. China Safety Science Journal, 2015,25(8):81-86.

[2]杨海燕,蒋新华,王雷.一种基于人脸序列模式的机车驾驶员疲劳检测方法[J].铁道学报, 2012,34(5):53-58.

YANG Haiyan, JIANG Xinhua, WANG Lei. A Fatigue Detection Method for Vehicle Drivers Based on Face Image Sequence Pattern[J]. Journal of the China Railway Society,2012,34(5):53-58.

[3]张伟,成波,张波.驾驶人眼睛区域的鲁棒性定位算法研究[J].物理学报,2012,61(6):104-112.

ZHANG Wei,CHENG Bo,ZHANG Bo. Research on Eye Location Algorithm Robust to Driver’s Pose and Illumination[J]. Acta Physica Sinica,2012,61(6):104-112.

[4]白中浩,焦英豪,白芳华.基于主动形状模型及模糊推理的驾驶疲劳检测[J].仪器仪表学报, 2015,36(4):768-775.

BAI Zhonghao, JIAO Yinghao, BAI Fanghua. Driving Fatigue Detection Based on Active Shape Model and Fuzzy Inference[J]. Chinese Journal of Scientific Instrument, 2015,36(4):768-775.

[5]白中浩,刘浏,焦英豪,等.基于ASM的多特征融合驾驶员疲劳检测方法[J].电子测量与仪器学报,2016,30(12):1877-1883.

BAI Zhonghao, LIU Liu, JIAO Yinghao, et al. Driving Fatigue Detection Based on ASM and Fusion of Multi-clues[J]. Journal of Electronic Measurement and Instrumentation,2016,30(12): 1877-1883.

[6]郭永彩,苏渝维,高潮.基于FPGA的红外图像实时采集系统设计与实现[J].仪器仪表学报, 2011,32(3):514-519.

GUO Yongcai, SU Yuwei, GAO Chao. Design and Implementation of Real Time Infrared Image Collection System Based on FPGA[J]. Chinese Journal of Scientific Instrument, 2011,32(3): 514-519.

[7]GU H, JI Q, ZHU Z. Active Facial Tracking for Fatigue Detection[C]//Applications of Computer Vision.New York:IEEE, 2002:137-142.

[8]徐国庆.在线融合特征的眼睛状态识别算法[J].计算机应用,2015,35(7):2062-2066.

XU Guoqing. Eye State Recognition Algorithm Based on Online Features[J]. Journal of Computer Applications,2015,35(7):2062-2066.

[9]KE L, KANG J. Eye Location Method Based on Haar Features[C]//2010 3rd International Congress on Image and Signal Processing (CISP). New York:IEEE, 2010,2: 925-929.

[10]李强.基于PERCLOS的列车司机驾驶疲劳检测研究[D].北京:北京交通大学, 2014.

[11]白金蓬,黄英,江宜舟,等.驾驶状态实时监测系统设计[J].电子测量与仪器学报,2014,28(9):965-973.

BAI Jinpeng, HUANG Ying, JIANG Yizhou, et al. Design of Driving State Real-time Monitoring System[J]. Journal of Electronic Measurement and Instrumentation, 2014,28(9):965-973.

[12]吴超仲,张晖,毛喆,等.基于驾驶操作行为的驾驶员疲劳状态识模型研究[J].中国安全科学学报,2007,17(4):162-165,177.

WU Chaozhong, ZHANG Hui, MAO Zhe, et al. A Model for Identifying Fatigue Status of Vehicle Drivers Based on Driving Operation[J]. China Safety Science Journal, 2007,17(4):162-165,177.

[13]VIOLA P, JONES M J. Robust Real-time Face Detection[J]. International Journal of Computer Vision,2004,57(2): 137-154.

[14]XIONG X, DE LA TORRE F. Supervised Descent Method and Its Applications to Face Alignment[C]// Proceedings of the IEEE Conference on Computer Vision and Pattern Recognition. New York:IEEE,2013: 532-539.

[15]MURPHY-CHUTORIAN E, TRIVEDI M M. Head Pose Estimation in Computer Vision: A Survey[J]. IEEE Transactions on Pattern Analysis and Machine Intelligence,2009,31(4):607-626.

[16]历艳琨,毛建旭,刘仁明.基于特征点的3D人脸姿态跟踪[J].电子测量与仪器学报,2016,30(4):605-612.

LI Yankun, MAO Jianxu, LIU Renming. 3D Face Pose Tracking Based on Feature Matching[J]. Journal of Electronic Measurement and Instrumentation,2016,30(4): 605-612.

[17]DINGES D F, GRACE R. PERCLOS: A Valid Psychophysiological Measure of Alertness as Assessed by Psychomotor Vigilance[R].Report No. FHWA-MCRT-98-006. Washington DC: Federal Highway Administration, 1998.

猜你喜欢

特征参数人脸头部
有特点的人脸
自动驾驶走向L4 企业头部效应显现
一起学画人脸
冕洞特征参数与地磁暴强度及发生时间统计
火箭的头部为什么是圆钝形?
基于交通特征参数预测的高速公路新型车检器布设方案研究
三国漫——人脸解锁
基于PSO-VMD的齿轮特征参数提取方法研究
基于视频的车辆特征参数算法研究
长得象人脸的十种动物