APP下载

基于头部姿态特征的列车司机疲劳驾驶检测系统研究

2014-12-14李勇达孟令君

交通信息与安全 2014年5期
关键词:角速度人脸头部

李勇达 张 超 孟令君

(北京交通大学交通运输学院 北京 100044)

0 引言

目前,我国铁路运输进入快速发展时期,但是现有机车交路较长,排班过密等现象日益突出,并且驾驶室的噪声、振动、高温等因素容易导致列车司机疲劳驾驶。根据1项调查结果显示,机车乘务员在列车运行4~7h,出现了视觉疲劳或者精神疲劳的征象[1],并出现打哈欠、眼睛闭合、头部不能正视前方的情形。国内研究人员曾专门做过1项研究,结果显示驾驶员合理连续驾驶时间阈值为235 min[2]。我国铁路系统事故表明,列车事故的人为因素中有相当一部分是由于司乘人员的疲劳引起的[3-4]。为此,各路局想了很多应对办法,包括在司机室布设视频监控装置,以及在司机脚下布置提醒装置,但这些方法增加了铁路局的人员负担。且容易分散司机的注意力。

目前,疲劳驾驶检测方法主要可以分为3类,分别是基于驾驶人生理指标的疲劳驾驶检测方法[5]、基于计算机视觉的疲劳驾驶检测方法[6]、基于多信息融合的疲劳驾驶检测方法[7]。在这些方法中,基于计算机视觉的疲劳驾驶检测方法以其非侵入式、准确、高效的特点正成为目前该领域的研究热点。基于计算机视觉的疲劳驾驶检测方法主要针对于人的面部表情、眼睛的闭合程度、眨眼频率、嘴巴张开程度进行检测,其中以人眼检测的方法[8]最为流行,但在实际应用过程中,驾驶人会出现低头或者眼部受遮挡的情形,导致无法捕捉到人眼,更无法判断驾驶人是否疲劳驾驶,因此,在驾驶人处于低头或者眼部受遮挡等无法捕捉人眼的情况下,需要有辅助的疲劳判断方法。研究表明,头部姿态与疲劳程度有很好的相关性,ASCI公司研制出头部位移传感器,实时记录各个时间段头部位置的变化,判断驾驶人的疲劳程度[9]。该方法采用电子传感设备,虽然检测精度较高,但是开发成本也高。受这一思路启发,笔者采用计算机视觉技术,充分发挥其低成本、检测精确度高的特点,提出基于头部姿态特征的疲劳驾驶判别方法。

1 算法介绍

1.1 人脸检测算法

人脸检测是人脸跟踪,以及后续头部姿态分析的关键一步,因此,选择合适的检测算法至关重要。基于AdaBoost的检测方法其实是1种样本学习的方法,是人脸检测的常用方法。它需要事先进行样本学习以及训练,训练前先从原始样本图像中提取出具有代表性的特征,然后把这些特征作为训练过程的输入变量,利用事先设计的算法挑选出某些分类能力强的特征分别构成各自对应的弱分类器,最后利用AdaBoost方法按目标驱动的方法将多个弱分类器组合成1 个强分类器。该方法的优点为检测正确率较高、能够检测单帧图像的特定目标,缺点为需要大量的样本、检测算法运行时间较长。近年来,很多学者对Ada-Boost的算法进行改进,并取得了较好的效果。张君昌等[10]提出了基于自适应权重更新和遗传算法的人脸检测算法,有效改进了训练样本出现的过拟合现象和特征冗余问题。邱炯等[11]提出了1种结合图像增强和肤色分割的AdaBoost算法检测人脸,较好地解决错检和漏检的问题,并提高了检测速度。

由于训练分类器需要大量的样本,为方便起见,笔者直接采用Opencv提供的基于类Haar特征的Adaboost算法。图1为该算法的人脸检测结果,圆圈标记的范围即为检测到的人脸区域。

图1 基于AdaBoost的人脸检测结果Fig.1 The results of face detection based on AdaBoost

1.2 人脸跟踪算法

基于AdaBoost分类器的人脸检测算法容易受到光线以及目标运动的影响,并且帧与帧之间没有相关性,因此,需要在人脸检测之后加上人脸跟踪,保证对特定目标跟踪的连续性和惟一性。

2002 年,Dorin Comaniciu[12]将mean-shift算法引入到目标跟踪领域,极大减少了跟踪算法的计算量。mean-shift算法是1种基于无参数估计目标跟踪方法,已经广泛应用于目标实时跟踪领域,但其容易收敛于局部极值点,所以在出现某些遮挡及背景干扰的情况下不能保证跟踪的实时性。基于颜色跟踪的Camshift算法,它是meanshift的修改算法,克服了mean-shift不适合实时跟踪的缺点。Camshift算法的计算量小,并且能够自动调节窗口的大小,在简单背景环境中能够取得较好的跟踪效果,本系统的目标跟踪部分正是采用此方法。

由于RGB颜色空间对光照、亮度的变化比较敏感,而HSV空间不但更接近人类的色觉反映,而且H分量(色调)与V分量(亮度)相互独立,这样可以排除周围环境亮度变化对跟踪效果的影响,所以首先将图像从RGB 空间转换到HSV空间,然后建立H分量的颜色直方图,接着反投影建立肤色概率分布图像,再用Camshift算法计算跟踪窗口的大小和位置。

本文选取的V分量(亮度)和S分量(饱和度)分别为Vmin=10,Vmax=255,Smin=61,Smax=255,实验结果如图2 所示。图2(c)柱状条的颜色代表RGB空间的实际颜色,柱状条的高度代表该颜色的统计概率。

图2 原图、肤色概率分布图、归一化的H 分量颜色直方图Fig.2 The raw image,skin color probability distribution image and the normalized skin color histogram of the H channel

采用Camshift算法实现目标跟踪的具体步骤为:

步骤1 设置搜索窗口的初始大小和位置。

步骤2 对搜索窗口稍大的区域进行反向投影。

步骤3 运用mean-shift算法,计算并保存目标区域的质心位置及大小。

步骤4 将保存的上一帧目标的质心作为下一帧mean-shift运算时搜索窗口的中心,重复步骤(2)和(3),直至收敛。

Camshift算法流程见图3。

图3 Camshift算法流程图Fig.3 The flow chart of Camshift algorithm

早在1986年Horn[13]就通过寻找1 个与目标区域分布有着相同矩的长方形区域来准确定位出被跟踪目标区域的大小和旋转角度θ,从而可以自适应的改变和调整搜索区域的大小和位置。下1帧图像中搜索窗口的大小和旋转角度可以通过式(1)~(4)计算得到。

x轴,y轴方向二阶矩

目标的长轴和短轴的长度分别为

式中:a,b,c为中间变量,由以下公式计算得到,

Camshift算法的跟踪效果见图4。

图4 Camshift滤波算法跟踪效果图Fig.4 Effect drawings of tracking with Camshift algorithm

图4依次显示第127帧、第720帧、第1 362帧、第1 718帧、第3 096帧、第3 378帧的跟踪结果。其中,第3 096帧为引入肤色干扰后的跟踪效果图,从图中可以看出跟踪的矩形框明显变大,表明手臂对跟踪的目标形成了干扰,但是依然正确锁定跟踪的目标区域,在移开手臂后,如第3 378帧所示,依然能够保持很好的跟踪效果。

尽管手臂干扰后依然能够正常跟踪,但在被干扰的过程中目标连通区域的形状发生了变化,。这使得在计算目标区域的外接矩形旋转角度时遇到了困难,所以实际应用时应避免这种干扰情况的发生,使误报几率降到最低。

1.3 头部倾斜角度及头部运动速度计算方法

本文的前提假设条件是人的头部为刚体,而且假设头部是以两肩中心位置做旋转运动。人体在处于疲劳姿态时,头部不能正视前方,头部的中轴线与头部重心线存在一定的夹角,而且部分人进入疲劳状态时,头部会突然向1 个方向倾斜。因此,通过测定头部倾斜角度以及头部旋转角速度就可以判断司机的疲劳状态。

从人体解剖学的正面观来看,面部占据头部的绝大部分比例(剩余一小部分为头发遮挡区域),因此,面部姿态大体可以反映头部姿态。通过实现头部跟踪得到头部连通区域,然后求取连通区域的最小外接矩形顶点坐标,进而计算出头部的倾斜角度,并通过帧间倾斜角度的变化计算出头部旋转的角速度(注:这里指的是平均旋转角速度)。如图5为头部处于不同姿态下目标区域的外接矩形。

图5 头部处于直立和倾斜姿态时目标区域的外接矩形Fig.5 The object region of contour-rectangle when the head is vertical and tilting

旋转角度β的计算公式为

这里定义ω为头部旋转平均角速度,其计算公式为:

式中:β1 为前1帧的头部倾 斜角度;β2 为后1 帧的头部倾斜角度;t为相邻两帧时间差。

为了确定头部旋转过程中的角速度以及角加速度参数范围,建立头部旋转模型。假设头部为刚体,且在重力作用下发生定点转动,本文将头部等效为各处密度均匀的细杆,见图6。

图6 头部旋转过程的等效模型图Fig.6 The equivalent model graph when the head is rotating

细杆绕支点O的转动惯量为,根据转动定律M=Jα,从图6 可知,支撑力的力矩为O,则可以得到如下关系式

假如被测试人员的脸部长度为0.23m,角速度、角加速度的变化曲线如图7所示。根据计算公式,其角速度由0°时对应的0rad/s增加到90°对应的11.32rad/s。

图7 角速度、角加速度随旋转角度的变化曲线Fig.7 The change curve of angular velocity and angular acceleration along with the rotating angle

2 实验结果及算法性能分析

针对头部姿态做了3组对照实验,如图8所示,其中图8(a)为头部直立时的效果图,图8(b)为头部右倾(以人体躯干为参照物)时的效果图,图(c)为头部左倾(以人体躯干为参照物)时的效果图。从图中可以看出,当头部发生倾斜时,对应的十字轴也发生旋转,十字轴旋转角度与头部倾斜角度基本一致。图8中也显示出了头部偏转的具体角度。由图8可见,计算的偏转角度与实际的头部偏转角度相比偏小,导致疲劳检测结果存在漏报的可能,因此,偏转角度阈值的选取对于及时准确判断疲劳状态至关重要。

图8 3种不同姿态的头部倾斜角度对比Fig.8 The contrast among the rotating angle of three different postures

对头部缓慢向左旋转、缓慢向右旋转、突然向左旋转、突然向右旋转情形,各做20组对照实验,可以发现,缓慢左旋疲劳检测成功率为85%,缓慢右旋成功率为90%,突然左旋和右旋成功率皆为95%,综合以上情形,成功率为87.5%。实验中,缓慢左旋、右旋时判定疲劳姿态的指标为旋转角度,阈值大小为45°;突然左旋、右旋时判定疲劳姿态的指标为旋转角速度,阈值大小为10rad/s。

本文对采用的算法进行了测试,实验所用计算机内存2G,主频为2.27GHz,图像的尺寸为320×240。实验结果见表1。

表1 算法运行时间Tab.1 Running time of the algorithm

虽然基于类Haar特征的Adaboost算法的运行时间较长,但是其只负责对人脸的检测部分,人脸检测完成后可由Camshift算法完成跟踪任务,因此,本方法仍能满足实时监控的目标。

3 实验平台及疲劳驾驶检测系统功能介绍

3.1 疲劳驾驶检测系统介绍及软硬件系统构成

笔者设计的疲劳驾驶检测系统主要包括以下4个模块,分别为数据采集模块、人脸检测模块、人脸跟踪模块、头部倾斜角度及头部旋转角速度计算模块,其程序流程见图9。

图9 系统各个模块Fig.9 All modules of system

硬件平台。摄像头的最大分辨率为320×240,内存为2G,主频为2.27GHz。开发平台:采用Opencv计算机视觉开发库,软件开发平台为VC++6.0,操作系统为Windows 7。

3.2 系统功能介绍

实验时,人坐在摄像头的前面,摄像头首先会捕捉人脸,然后将人脸区域作为Camshift跟踪算法的初始搜索窗口,接着计算出头部旋转角度以及旋转角速度,最后根据设定的阈值判断人体是否疲劳。本系统选定的阈值:旋转角度为45°,旋转角速度为10rad/s。

当人脸捕捉成功后,状态指示灯(图10中的①)由红色转换为绿色,此时表明进入正常工作状态;软件视频显示区域的人脸跟踪窗口上部实时显示头部的旋转角度,图10中十字轴始终与人脸中心线保持一致。图11中头部倾斜角度为59°,超过了设定的阈值45°,此时低级警报灯(图10中的②)频繁闪烁,提醒司机注意驾驶,并且当该姿态(头部旋转角度大于45°的姿态)保持5s以上时,头部姿态显示区的状态由正常姿态转换为疲劳姿态。该系统还考虑列车司机瞌睡时头部突然偏转的情形,此时若头部旋转角速度超过10rad/s,系统直接触发最高等级警报,最高级警报灯(图10中的③)由绿色直接变为红色。另外,系统也提供了复位功能,当出现误报时,由司机手动取消安全警报。

图10 正常姿态的界面显示Fig.10 Interface display of normal posture

图11 疲劳姿态的界面显示Fig.11 Interface display of fatigue posture

4 结束语

本文主要采用基于AdaBoost的人脸检测算法以及基于Camshift的目标跟踪算法。经过实验验证,在简单的场景下,该方法弥补了人眼检测方法在眼部遮挡情况下的不足,可将其与人眼检测方法结合使用,提高疲劳检测的正确率。笔者提出的方法对头部大角度偏转以及突然偏转能够及时判断,同时对计算机软硬件平台的要求不是很高,开发和使用成本低。由于时间和水平的限制,该方法对复杂场景下头部多种姿态的识别度较差,且要求人脸检测时面部能够正视摄像头,因此,单独使用该种检测方法具有一定的局限性。采用本方法对目标进行跟踪容易受到手臂等类肤色干扰物的影响。寻找1种鲁棒且实时性能好的人脸检测和跟踪算法是下一步的目标。本方法与疲劳相关的头部旋转角度以及旋转角速度阈值设置有待进一步研究,从而减少疲劳检测的误报率。

[1]储钢,徐晓梅,李新海,等.铁路机车乘务员的驾驶疲劳调查[J].环境与健康杂志,2009,25(12):1098-1100.Chu Gang,Xu Xiaomei,Li Xinhai,et al.Driving fatigue investigation of railway locomotive attendants[J].Journal of environment and health,2009,25(12):1098-1100.(in Chinese).

[2]滕 靖,宋兴昊,姬利娟,等.连续驾驶条件下公交驾驶员疲劳特征实验研究[J].交通信息与安全,2013,31(3):87-92,97.Teng Jing,Song Xinghao,Ji Lijuan,et al.Experimental Study of Fatigue Characteristics of Bus Drivers Under the Condition of Continuous Driving[J].Journal of Transport Information and Safety,2013,31(3):87-92,97.(in Chinese)

[3]宋志雄.机车司机行车安全监控系统应用研究[J].中国安全科学学报,2005,15(10):110-112.Song Zhixiong.Application of monitored control system for safe driving of locomotive engineer[J].China Safety Science Journal,2005,15(10):110-112.(in Chinese).

[4]王国来,柳甲贤.机车乘务员值乘中疲倦瞌睡问题探讨[J].铁道劳动安全卫生与环保,2004,31(2):73-74.Wang Guolai,Liu Jiaxian.Discussion of fatigue sleepy problem for locomotive attendants[J].Railway Occupational Safety,Health & Environmental Protection,2004,31(2):73-74.(in Chinese).

[5]宋志雄.机车司机行车安全监控系统应用研究[J].中国安全科学学报,2005,15(10):110-112.Song Zhixiong.Application of monitored control system for safe driving of locomotive engineer[J].China Safety Science Journal,2005,15(10):110-112.(in Chinese).

[6]李洪研,赵学敏.基于人眼PERCLOS特征的列车驾驶员疲劳检测系统[J].中国铁路,2011(12):32-34.Li Hongyan,Zhao Xueming.Fatigue detection system for train driver based on the characteristics of human eye PERCLOS[J].China railway,2011,12:32-34.(in Chinese).

[7]刘佳兴,王 炜.基于多参数融合的疲劳驾驶监测及预警系统[J].计算机仿真,2013,30(5):171-175.Liu Jiaxing,Wang Wei.Fatigue monitoring and warning system based on multi-parameter fusion[J].Computer Simulation,2013,30(5):171-175.(in Chinese).

[8]胡 卓.基于人眼检测的疲劳驾驶监测技术研究[D].北京:北京交通大学,2009.Hu Zhuo.Fatigue monitoring research based on the human eye detection[D].Beijing jiaotong university,2009.(in Chinese).

[9]Popieul J C,Simon P,Loslever P.Using driver's head movements evolution as a drowsiness indicator[C]∥Intelligent Vehicles Symposium,2003 Proceedings.IEEE,2003:616-621.

[10]张君昌.基于自适应权重更新和遗传算法的人脸检测[J].西北工业 大学学 报,2011,29(2):290-294.Zhang Junchang.Face detection based on adaptive weight update and genetic algorithm[J].Journal of Northwestern Polytechnical University,2011,29(2):290-294.(in Chinese).

[11]邱 炯,李伟生.结合图像增强和肤色分割的人脸检测新方法[J].计算机工程与应用,2011,47(26):189-192.Qiu Jiong,Li Weisheng.A new method of face detection based on image enhancement and skin color segmentation[J],Computer Engineering and Applications,2011,47(26):189-192.(in Chinese).

[12]Comaniciu D,Ramesh V,Meer P.Real-time tracking of non-rigid objects using mean shift[C]∥Conference on.Computer Vision and Pattern Recognition,Hilton Head Island SC:IEEE 2000:142-149.

[13]Horn B.Robot Vision[M].Cambridge,Massachusetts,Unitedstates:MIT Press,1986.

猜你喜欢

角速度人脸头部
有特点的人脸
一起学画人脸
头部按摩治疗老伴失忆
火箭的头部为什么是圆钝形?
三国漫——人脸解锁
圆周运动角速度测量方法赏析
半捷联雷达导引头视线角速度提取
自适应统计迭代重建算法在头部低剂量CT扫描中的应用
基于构架点头角速度的轨道垂向长波不平顺在线检测
长得象人脸的十种动物