设计应用

基于图像处理的疲劳驾驶预警研究

作者:刘朝涛,张雪佼
发布日期:2019-08-19
来源:2019年电子技术应用第8期

0 引言

    据实验调查,有50%的驾驶员承认自己曾疲劳驾驶,且疲劳驾驶是导致交通事故的一个重要因素。如果要减少由于疲劳驾驶导致的事故,可以对驾驶员在疲劳状态时进行一定的警醒。越来越多的疲劳驾驶预警系统在国内外被相继提出[1],本文研究的方法——基于图像处理的监测算法也是其中被广泛应用的一种,这些预防疲劳驾驶的研究方法对交通事故的减少有着十分重要的现实意义。

1 系统结构

    驾驶员一旦出现疲劳状态,他们的生理信号(例如脑电信号或心电信号)会产生相应的改变,一般情况还会伴随眨眼过快、频繁打哈欠、点头、注意力难集中等一系列生理状态。这样就可能会导致驾驶员在长时间不动油门或转向盘时发生车道偏移等危险行为[2]。各种疲劳驾驶预警系统的研制则是为了能够第一时间快速识别到司机的疲劳特征信息,且能实时产生报警对驾驶员进行提醒。疲劳驾驶系统的部分组成如图1所示。首先由传感器来采集司机驾驶时的各种生理参数与行为特征等疲劳参数,再采用信号处理的方法提取和识别疲劳参数值,将识别后的疲劳特征参数送入传感器与多传感器进行信息融合,最后使用疲劳判别准则对驾驶状态进行预判以及发出警报。

jsj2-t1.gif

2 疲劳驾驶监测系统

    疲劳驾驶监测系统主要由人脸检测、面部关键点定位以及疲劳判定这几个部分组成,检测系统的大体流程图如图2所示。通过处理驾驶员的面部图像,将驾驶员的生理状态转化疲劳状态,最后用判定准则对驾驶员是否疲劳进行判定[3]

jsj2-t2.gif

3 图像预处理

    驾驶员实际驾驶时,车内的光照强度会随行车过程发生改变,因此提取不同图像的亮度信息也存在一定偏差。因而对图像进行预处理操作十分重要,它可以改善图像分析的稳定性[4]。本实验对图像预处理的操作主要是对图像进行图像增强和光照补偿处理。

3.1 图像增强

    图像增强是对图像进行加工与处理,突显相应被测区域,并使无关区域衰减,让图像在特定场合实用性更强。其目的是:(1)提高视觉效果,使图像变得更加清晰明了;(2)方便计算机处理被测图像。作为在图像处理中非常实用的工具——形态学,它能够快速识别图像中骨格、躯壳以及边界线等被测图像分量[5]。基本操作有膨胀和腐蚀,定义如式(1)、式(2)所示。

jsj2-gs1-4.gif

jsj2-gs5-6.gif

    顶帽原理主要是完成原图对开运算后的减运算,显现了相对原图边界四周明亮的区域;黑帽原理反之,它显现了相对原图边界四周昏暗的区域[7]。可以将原图(img)经过顶帽运算和黑帽运算后的图像通过式(7)实现对比度提高,以此改善图像和增强图像效果。

    jsj2-gs7.gif

    利用形态学的方法对原始图像进行图像增强,效果如图3所示,实验表明图像质量被大幅度提高。

jsj2-t3.gif

3.2 光照补偿处理

    光照补偿处理主要应用在图像颜色发生改变(例如照片发蓝、发红、或色偏冷、暖)的情况。一般按照像素的高清顺序排列图像,先用低像素图像的亮度作为标准白色,并调节图像的R、G、B分量值到255[8],将剩下的像素点按照尺度改变进行调节,以此来改善因为光照不均引起的色彩改变。图4所示即为对图像进行光照补偿后的效果图。

jsj2-t4.gif

4 人脸检测

    由于传统SVM统计方法在背景颜色与肤色比较接近时难以提取人脸特征,且适用于背景静止的场合[9]。考虑到实验的场合多需要对人脸的实时监测,因此,本文选用AdaBoost算法为人脸检测的核心方法。AdaBoost算法实际上就是将若干个弱分类算法合并成一种强分类算法的算法[10],且每种弱分类器都有本身的分类方向、类Haar特征以及分类阈值。上述由弱分类器组合而成的强分类器以及弱分类本身都设有本身分类阈值,若累加的权值到达强分类器阈值,就说明该区域的强分类器会被通过。因此,AdaBoost算法具有很高的识别率,且算法的拟合性好[11]

    多种基于AdaBoost的人脸检测的算法的差异性来源于其弱分类器的不同组织方式。例如级联分类器,它是按照每级的强分类器都由些许弱分类器构成[11],这就能够更加迅速地区分人脸部位和非人脸部位。图5所示是人脸检测算法的检测结果示意图,在确定有无人脸的基础上进一步划分人脸的大致位置。

jsj2-t5.gif

    由于级联分类器的高效性,基于AdaBoost的人脸检测算法也很容易对多个人脸图像进行检测。

    图6为多个检测对象的人脸检测效果图。在该图像中存在人脸姿态、对比度以及光照程度的区别。

jsj2-t6.gif

    从表1可以看出,用AdaBoost算法检测人脸在不同光照强度的情况下几乎未出现误检测效果,准确性较高,但是人脸检测受光照影响也会出现相应的漏检。随着加入光照补偿,漏检率会随之降低[12]

jsj2-b1.gif

5 人脸关键点定位

    在基于人的生理状态来进行疲劳驾驶检测的过程中,人的面部关键点是最能直接体现出人是否疲劳的重要因素。

    基于被约束局部模型的自动特征点定位——CLM,首先是将关键点定位问题转化为对函数求解最优解的问题,再建立局部模型的一种定位方法[13]。CLM一般使用SVM来建立局部模型,它建立的全局形状模型一般以主成分分析法为主,且将主要的维度参数化为函数矩阵,以此来分析人脸形状的改变。构建的局部模型如式(8)所示。

    jsj2-gs8.gif

其中,λ和β为单个关键点的SVM训练结果,λ为特征值矩阵,β为一个列向量。整个局部模型由组合序列所表示。具体CLM算法的求解过程如下[14]

    (1)大致预计初始的关键点区域;

    (2)快速搜索检测到模型的关键点四周区域,得出SVM响应曲线图;

    (3)用二次函数来拟合选中关键点:

     jsj2-gs9-10.gif

其中,A、B、C为常系数,ε表示偏差。

    (4)利用数学方法得出函数的最优解,并得到各个特征点的位置,完成上述操作后对模型进行更新;

    (5)循环步骤(2)~(4),直到达到设定的迭代次数或者函数呈现收敛的情况。

6 疲劳判定

    由于眼睛闭合状态是直观反映一个人是否疲劳的重要参数[15],因此本文采用PERCLOS准则与人眼闭合曲线相结合的判定方法检测疲劳参数。  

6.1 PERCLOS准则

    PERCLOS为单位时间内眼睛开闭时间比,分为P70、P80、EM 3种标准类型[16]。一般判定多采用P80标准(以眼睑遮挡瞳孔面积的80%以上为闭合状态),其测量原理如图7所示。

jsj2-t7.gif

    若明确在一定时间内司机眼睛开闭时间,确定出t1、t2、t3、t4的参数值,PERCLOS值就可计算出来,计算方法如式(11),从而就能够判定司机的疲劳状态。

    jsj2-gs11.gif

其中,f为眼睛闭合时间比。为了简化计算,一般将时间比转化为图像帧数比,如式(12)所示:

    jsj2-gs12.gif

其中,Nc为闭合眼睛帧数[17-18],No为张开眼睛帧数。

6.2 人眼变化曲线法

    瞬目反射是一种快速的闭眼动作[19],据统计,一般人每分钟瞬目反射大约10~18次,通常2~5 s就要眨眼一次。每一次眨眼要用0.1~0.3 s。人在双眼凝视或者高度集中注意力时,就会减少到4~5次/min。出现疲劳后,人的眨眼频率则会变快且每次眨眼所用时长变慢。因此可以对得到的每一帧图像进行人眼信息统计,可按照人的眨眼频率判断司机疲劳状态,本实验得到人眼变化曲线如图8所示[20]。纵坐标为人眼相对大小n值,横坐标为每秒通过的图像帧数。

jsj2-t8.gif

    其中,人眼开闭状态的判定步骤为,在图像帧中,首先找到人眼区域中面积的最大值M。后续其余值顺次与最大值M进行相比,比值n为人眼的相对大小值,n的取值范围在0~1之间,因为人在闭眼时会预留一些基本面积,所以n值大于0,本次实验中标定n小于0.28时为闭眼状态的临界值。

7 检测结果及分析

    通过摄像头采集30位测试者的视频序列作为数据集,包括15位男性和15位女性。采集每位测试者配戴眼镜时和不佩戴眼镜时的视频集。每位测试者取30张图像进行样本实验,采集帧率为30 帧/s,图像像素为720×360。

    测试人员戴眼镜与未戴眼镜的人脸定位测试结果如图9所示,人脸定位平均耗时如表2所示,眼部定位准确率如表3所示。

jsj2-t9.gif

jsj2-b2.gif

jsj2-b3.gif

    从实验结果可以得出,在不同坏境的拍摄下配戴眼镜样本测试的识别率高于未配戴眼镜样本。原因主要是配戴眼镜的样本由于镜面反光对图像识别产生了部分干扰,对睁眼和闭眼状态的识别准确度有部分偏差[21]

    通过完成图片预处理、人脸检测以及关键点定位部分的识别工作,采用多个测试样本在疲劳状态和健康状态下的数据序列计算相应的PERCLOS参数值,结合人眼变化曲线图的n值,得到眨眼频率,采样时间均取60 s,统计结果如表4所示。

jsj2-b4.gif

    本次实验经过多次多样本测量,将检测PERCLOS值大于0.25,通过人眼变化曲线图得到眨眼频率大于18次/min为疲劳临界值[22],结合测试样本的实际状态作为对照,疲劳试验结果如表5所示,该阈值具有较好的可行性和较高的准确度。

jsj2-b5.gif

8 结束语

    本文使用图像处理的方法先对图像集进行一定预处理,基于AdaBoost算法对人脸进行检测,在此基础上采用基于CLM的人脸关键点定位方法对样本进行眼睛和嘴巴区域图像的提取,最后对PROLOS参数值进行计算,结合参数结果和人眼变化曲线图阈值对样本疲劳状态进行判断。

    实验结果表明,本文方法的检测速率可被接受且具有较好的准确性。针对不同测试样本对眼睛及嘴部状态的识别准确性和鲁棒性较好。

参考文献

[1] 李明瑞,傅明,曹敦.基于肤色检测的AdaBoost人脸检测算法改进[J].计算机工程,2012,38(19):147-150.

[2] NOBE S A,WAG F Y.An overview of recent developments in automated lateral and longitudinal vehicle controls[C].Proceedings of IEEE International Conference on Systems,Man,and Cybernetics.Washington D.C.,USA:IEEE Press,2001:3447-3452.

[3] 刘在英,朱琳玲,杨平.基于肤色模型和中线定位的人脸检测算法[J].计算机工程,2013,39(1):200-203.

[4] 刘春生,常发亮,陈振学,等.改进的高斯肤色模型及其在人脸检测中的应用[J].仪器仪表学报,2012,33(5):1117-1121.

[5] LEE B G,JUNG S J,CHUNG W Y.Realtime physiological and vision monitoring of vehicle driver for non-intrusive drowsiness detection[J].IET Communications,2011,5(17):2461-2469.

[6] OMIDYEGANEH M,JAVADTALAB A,SHIMOHAMMADI S.Intelligent driver drowsiness detection through fusion of yawning and eye closure[C].Proceedings of IEEE International Conference on Virtual Environments Human Computer Interfaces & Measurement Systems.Ottawa,Canada:IEEE Press,2011:18-23.

[7] 赵文,张意,张卫华,等.基于红外图像的眼睛开闭检测方法[J].计算机工程与设计,2015,36(2):436-440.

[8] KNIPLING R R,WIERWILLE W W.Vehicle-based drowsy driver detection: current status and future prospects[C].Proceedings of IVHS′94.Atlanta,USA,1994:1-24.

[9] LECUN Y,BOSER B,DENKER J S,et al.Back propagation applied to handwritten zip code recognition[J].Neural Computation,1989,1(4):541-551.

[10] HENRIQUES J F,CASEIROR,MARTINS P,et al.High-speed tracking with kernelized correlation filters[J].IEEE Transactions on Pattern Analysis & Machine Intelligence,2015(3):583-596.

[11] HENRIQUES J F,RUI C,MARTINS P,et al.Exploiting the circulent structure of tracking-by-detection with kernels[C].Proceedings of ECCV′12.Roma,Italy,2012:702-715.

[12] 邓健康.基于级联回归模型的人脸配准研究[D].南京:南京信息工程大学,2015.

[13] 吴宇豪,安籽鹏.面向图像三维重建的无人机航线规划[J].电子技术应用,2019,45(3):76-79,87.

[14] CUN Y L,HAN C,WANG C,et al.The application of a convolution neural network on face and license plate detection[C].Proceedings of the 18th International Conference on Pattern Recognition.Washington D.C,USA:IEEE Press,2006:552-555.

[15] ZEILE M D,FERGUS R.Stochastic pooling for regularization of deep convolutional neural networks[J].Computer Science,2012,7575(1):702-715.

[16] 连佳佳,王志有,王利斌,等.基于JPEG2000算法的图像编码装置的设计[J].电子技术应用,2019,45(3):46-49.

[17] 吴康华.基于PERCLOS的驾驶疲劳检测系统设计[D].杭州:浙江大学,2008.

[18] JAVIE F M.Driver drowsiness warning system using visual information for both diurnal and nocturnal illumination conditions[J].EUASIP Journal on Advances in Signal Processing,2010(1):1-19.

[19] WANG H,ZHOU L B,YING Y.A novel approach for real time eye state detection in fatigue awareness system[C].Proceedings of International Conference on Robotics Automation and Mechantronics.New YORK,USA:ACM Press,2010:528-532.

[20] 姚胜,李晓华,张卫华,等.基于LBP的眼睛开闭检测方法[J].计算机应用研究,2015,32(6):1897-1901.

[21] 杨晋吉,李荣兵.基于Adaboost与Clifford代数的人脸检测[J].计算机工程,2013,9(9):214-217.

[22] 旷文腾,毛宽诚,黄家才,等.基于高斯眼白模型的疲劳驾驶检测[J].中国图象图形学报,2016,21(11):1515-1522.



作者信息:

刘朝涛,张雪佼

(重庆交通大学 机电与车辆工程学院,重庆400074)

此内容为AET网站原创,未经授权禁止转载。
疲劳判定 关键点定位算法 PERCLOS 人眼变化曲线分析法 Adaboost