李娟,王富*,王维锋,汪恩军,杨阳
1.武汉工程大学资源与土木工程学院,湖北武汉430074;2.江苏省交通规划设计院智能交通设计研究中心,江苏 南京 210014
基于数据融合的疲劳驾驶检测算法
李娟1,王富1*,王维锋2,汪恩军1,杨阳1
1.武汉工程大学资源与土木工程学院,湖北武汉430074;2.江苏省交通规划设计院智能交通设计研究中心,江苏南京210014
为减少交通事故,采用基于数据融合的疲劳检测技术以提高疲劳检测精度.通过驾驶行为与车辆跟踪技术研究现状分析,选择眼睑遮住瞳孔的面积超过80%的P80和眨眼次数指标作为眼部特征参数、车辆越线指标作为驾驶行为特征参数.将两个特征参数分为3类,分别为:清醒状态、轻微疲劳状态、疲劳状态;最后通过支持向量机算法建立基于数据融合的疲劳检测模型.实验结果分别为灵敏度为86.45%,检测准确率为85.79%,特异度为84.63%,较单一数据源的疲劳检测方式精准,建立的融合模型提高了疲劳检测的准确性.
驾驶行为;疲劳识别;车道偏离;P80;支持向量机;数据融合
国内外交通管理机构对交通事故数据进行统计分析,得出疲劳驾驶、超速驾驶等危险驾驶行为是导致交通事故的重要原因.为了缓解危险驾驶行为引发的道路交通事故,各国普遍以法律法规的形式对营运车辆驾驶员作息时间进行了严格规定.然而,由于驾驶员安全意识薄弱、运输企业监管不到位、危险驾驶行为不易判别等原因,限制了政策法规在预防危险驾驶行为中所起的作用.因此,如果能利用技术手段对危险驾驶行为和车辆行驶状态实行有效的监测和预警,及时发现驾驶员疲劳驾驶、超速行驶等违法行为,一方面能从根源上有效避免交通运输事故发生,另一方面也有利于对驾驶员安全驾驶进行更为有效的管理,规范驾驶员行车驾驶习惯,减少交通事故率.
目前,疲劳驾驶行为与车辆跟踪的相关研究主要是从眼部特征、脑电波特征、驾驶行为特征等方面数据的数据融合研究,其中采用D-S证据理论的数据融合模型[2],采用贝叶斯理论的数据融合模型[3],采用SVM算法的数据融合模型[7],本文主要采用眼部状态特征和车道偏离驾驶行为特征,利用SVM数据融合算法整合基于人眼的疲劳判别、基于车道偏离的疲劳判别的数据,研究建立基于数据融合的疲劳判别模型.
数据采集为货车驾驶过程中产生的车载数据,结合眼部特征数据和车道偏离驾驶行为数据,提出采用支持向量机算法对两种数据源进行数据融合,进而解决单个数据源疲劳检测不准确的问题.算法具体流程如图1所示.
图1 算法流程图Fig.1Flowchart of algorithm
2.1眼部特征参数
采用PERCLOS算法关键是能够精准的判断出驾驶员眼睛的闭合状态.具体流程如图2所示.
图2 基于眼部特征的疲劳检测算法Fig.2Fatigue detection algorithm based on characteristics of eye
2.1.1人脸检测定位算法在进行数据预处理的基础上,选择AdaBoost分类器算法,根据人脸的特征完成检测定位.算法步骤如下:
1)人脸分类器的训练:每一个人脸特征训练弱分类器hi,其构造函数为
其中,fj为人脸特征,θj为相应阀值,pj是控制不等式方向的校验器,pj±1,x是图像中一个24×24像素大小的harr-like子窗口.计算出每个元素M(xn,yn)与相对应的弱分类器hj之间的误差εi=∑iωi|hj(xi)-yi|,选出容错率最小的弱分类器h,更新其权值,令ω=ωβ1-ei,其中
βt=εt(1-εt),ei=0表示xi分类正确,ei=1表示xi分类错误,通过上述一系列步骤形成了基于人脸某一特征的分类器,即
2)人脸分类器:训练出一系列基于人脸不同特征的分类器,并通过级联的方式形成人脸分类器.最后将所有分割好的人脸区域通过人脸分类器,精确定位出人脸的区域.
2.1.2人眼检测定位算法
1)粗定位:采用三庭五眼的几何方法粗略定位人眼在脸部的位置.
2)精确定位:在所有人脸器官中,眼睛的结构最为复杂,复杂度也最大.将上一步粗定位确定的搜索区域内等分为8×4的小块,进行复杂度计算,公式如下:
其中,Edge为边缘检测算子,S(A)为A区域的面积.
得到复杂度最大的10个小块,将相邻小块合并后剔除孤立小块,根据人眼分布的对称性,最终得到人眼的精确位置.
2.1.3人眼状态识别采用Hough变换的方法进行检测,将图像空间转换为参数空间,以参数的形式描述图像中的区域边界,可以有效减少噪声和曲线间断对识别结果的影响.Hough变换对圆的检测过程如下:
设定({xi,y)i|i=1,2,3,…,n}为图像平面内需要确定圆周上点的集合,集合中某一点(x,y)的参数坐标(a,b,c)可表示为方程:
通过Hough变换将参数空间进一步分割为累加器单元A(i,j,k),同时对累加器单元进行置零.以(x-a)2+(y-b)2=r2为根据对参数进行循环计算,当值a(m)得到了对应的b(p)、r(q),那么A(m,p,q)的值加1.取值最大的累加器所对应的参数(a,b,c)即为图像平面内所要求的圆心坐标和半径值.眼睛在睁开状态下,眼珠近似于圆形,用Hough变换去检测一个眼睛到底有没有露出眼珠,即可判断眼睛的开闭状态.
2.1.4人眼状态疲劳检测算法PERCLOS算法最早由卡内基梅隆研究所在1994年提出,美国联邦高速公路管理局在1999年,通过对比实验,证明了PERCLOS算法所反映驾驶员疲劳程度的有效性. PERCLOS算法的常用计算模型有P70、P80以及EM三种,其中P80被认为最能反映人的疲劳程度,其定义为眼睑遮住瞳孔的面积超过80%时判定眼睛为闭合状态.
其中,N表示一定时间内的人眼图片总帧数,n表示其中为闭合状态的人眼图片帧数.
大量研究表明,在PERCLOS算法中,取P值的阀值为40%能够很好的实现对驾驶员的疲劳检测.本研究计算单位时间内P值,当P>40%时,判断驾驶员处于疲劳状态;当P≤40%且每分钟眨眼次数小于5,同样判断驾驶员处于疲劳状态.疲劳检测的主要流程如下:
1)根据人眼状态识别结果,定义睁、闭眼状态表示分别为“+1”、“-1”,则驾驶员的眼睛状态就是一个“+1”、“-1”的时间序列.
2)计算P值.每隔30 s统计检测到的总帧数和闭眼的帧数,即时间序列中“-1”所占的比例,同时计算人眼状态由“+1”变为“-1”的次数,即眨眼次数fB.
3)根据P值和眨眼次数对驾驶员疲劳进行判断.
综合以上结果,将眼部特征参数对应于疲劳度,其中0代表清醒状态,1代表轻微疲劳状态,2代表疲劳状态.其对应结果如表1所示.
2.2驾驶行为参数
采用Hough变换方法对疲劳驾驶的检测,在此之前需要对道路数据进行图像预处理,并利用车道线模型构建模拟车道线数据.算法流程如图3所示.
表1 眼部特征疲劳度Tab.1Fatigue degree of eye characteristics
图3 基于车道偏离的疲劳检测算法Fig.3Fatigue detection algorithm based on lane departure
2.2.1图像预处理对采集到的图像数据经灰度化处理、平滑处理、Sobel算子边缘检测、阈值分割的图像预处理后得到的结果,将最终结果应用于模型的构建.
中国和欧盟是《公约》和《京都议定书》重要的参与者,双方开展气候合作始于1996年。1996年,欧委会制定《欧盟对华新战略》,不仅将“推动改善环境和可持续发展战略”作为欧盟对华四大战略之一,还讨论了推动中国改善环境和可持续发展战略的领域和手段[5]。2012年签署的《中欧能源安全联合声明》标志着中国和欧盟结成能源消费国战略合作伙伴关系。2016年,中国和欧盟签署《中国-欧盟能源合作路线图》,指出发展可再生能源是中欧能源合作的基础。
2.2.2建立车道线模型
1)道路形状
当车辆在高速公路行驶时,拐弯处弯度变化比较缓慢.因此,可以用回旋曲线来描述高速公路的形状,对直线与弯道连接部分进行平滑处理,模型表达式为
其中,C0为曲线初始点曲率,C1为曲率变化率,C(L)为距离初始点距离为L时的曲率.由公式(2~6)可知,回旋曲线中任一点的曲率和改点到初始点的距离成正比,只需要确定C0、C1两个参数就可以确定道路的形状.
2)道路宽度和道路平坦假设
假设道路的宽度基本保持不变且较为平坦,这样就可以把对车道线的检测转换为对图像中平行区域的监测,同时利用车道线特征将图像从二维空间映射到三维空间.道路的透视情况如图4所示.
图4 车道线模型Fig.4Model of lane line
其中,Vp为车道线在二维空间中的消失点,hz为经过消失点的水平线,P1(x1,y)为左车线上点,其在右车道线上的对应点位Pr(xr,y),M(xe,y)则为左右车道线中点,根据透视原理可得
其中,hz为横坐标值,y为纵坐标值,D为道路的宽度,k为比例系数.由道路宽度估计出M(xe,y)的值,则可由式(8)求出hz、k的值继而得到每一点的D值.
2.2.3车道偏离的疲劳检测Hough变换对噪声的干扰不敏感,可在很大的噪声下完成直线或者是曲线的检测,因此本研究选择该算法对经预处理得到的特征图像进行处理,求出参数K、车道中线、消失点,得到直线检测结果.
在(x,y)直角坐标系中的两点经过关系映射后在参数空间中成为两条相交的直线,表示为
其中,k为直线的斜率;b为直线的截距.可采用“投票机制”,遍历(b,k)空间中各个点得到票数,得票数高的胜出.但是(x,y)空间中的直线与x轴趋近于垂直时,斜率k会趋向于无穷,这时采用(β,θ)空间变换更便于直线的描述:
方程(2~10)将(x,y)空间中点变换为(β,θ)空间中的正弦曲线,利用点与正弦曲线的对偶性,实现对直线的检测.算法将特征点带入到处理好的θ∈[0,π)范围内值计算出β值,在两个值都已知的情况下对(β,θ)空间中对应的结构值加1,将所有的特征点进行一次变换,最后得到直线的参数.
选择数据结构中(x,y)对应累加器较大的点作为目标直线,将其进行Hough逆变换就可得到相应的直线方程中k、b的值与β、θ的关系,其公式为
消失点公式如下:
采用二阶TLC(Time to Lane Crossing)算法,对车辆的单次跨越车道线情况进行判别,进而计算一段时间内的跨越次数,从而对驾驶员是否疲劳驾驶进行判别.
整个判别过程中需要设定两个阀值:1)车辆将要触碰车道线边缘的时间阀值T;2)一段时间内车辆跨越车道线的次数阀值N.二阶TLC算法判断是否产生一次车道线跨越的公式为
其中,tc为计算出的车前轮边缘将要触碰车道线的时间,d为车前轮边缘与车道线边缘的距离,v1为车侧向速度,a1为车辆的侧向加速参数,T为车辆将要触碰车道线的时间阀值.根据上述方法判断车辆在一段时间内跨越车道线的次数,当超过阀值N时则认为驾驶员处于疲劳驾驶的状态.
综合以上结果,将驾驶行为参数对应于疲劳度,其中0代表清醒状态,1代表轻微疲劳状态,2代表疲劳状态.其对应结果如表2所示.
表2 驾驶行为特征疲劳度Tab.2Fatigue degree of driving behavior features
2.3基于支持向量机SVM的疲劳检测模型
基于SVM建立疲劳驾驶检测模型.按照上述所得的特征参数分别为:P值;眨眼频率fB;跨越车道线的次数t.建立过程分为以下4步:1)模型输入,输入特征参数;2)模型训练,采用径向基核函数训练模型参数;3)模型应用,将模型应用在实际采集数据中;4)模型检验,利用测试样本对数据融合模型进行评价检验.
2.3.1模型输入本文中的三项特征参数的量纲不一致,量纲的不一致将会影响数量级较小的特征参数对模型的贡献,因此需要对三项特征参数做量纲归一化处理.
其中,x是原始特征参数分量;x′i为归一化后特征参数分量,x′i∈[-1,1];xmax和xmin是训练样本的原始特征参数中的最大值和最小值;N是训练样本集的总数.
2.3.2模型训练由于疲劳驾驶状态的迁移规律复杂,采用径向基核函数作为疲劳特征子集从原始空间向线形空间转化的模型函数.径向基RBF核函数有两个重要的待定变量,惩罚系数C和核变量γ.惩罚系数C控制驾驶人疲劳检测模型的识别准确度,核变量γ决定原始空间的非线性问题变换到高维空间后的线形可分性.以模型在测试集上的识别准确度作为两个待定变量优化的目标函数,采用网格寻优法搜寻最优的变量组合(C,γ),即
2.3.3模型应用在实验视频数据截取选择时间大于60 s的数据段若干组,随机选择一定数量的驾驶样本,分为正常驾驶样本,疲劳驾驶样本,测试样本数据.
基于5重交叉验证法对疲劳驾驶检测模型的检测准确度进行评价,采用网格寻优法搜寻最优的变量组合(C,γ).当交叉验证准确率为90%时,模型达到最优,此时,C=3,γ=54.
2.3.4模型检验从样本集中选择70组正常驾驶样本和30组疲劳驾驶样本对本文搭建的疲劳驾驶检测模型进行测试.测试结果如图5所示,正常驾驶类标签为1,疲劳驾驶类标签为2.
图5 模型检测结果Fig.5Test results of model
综上所述,再对模型检测结果做数据挖掘分析,引入灵敏度S,准确率A,差异度SP3个模型评价函数,其计算公式为:
其中,A代表所有样本中正确识别率;S表示疲劳驾驶样本中疲劳检测输出的比率;SP表示正常驾驶中正常驾驶输出的比率;TRN为正确识别的样本数;TON为总样本数;TP为真阳性样本数,即实际状态与检测结果均为疲劳驾驶的样本数;FP为假阳性样本数,即实际状态为正常驾驶,输出为疲劳驾驶的样本数;TN为真阴性样本数,即实际状态与输出结果均为正常驾驶状态的样本数;FN为假阴性样本数,即实际状态为疲劳驾驶,输出为正常驾驶的样本数.各变量的相关关系如表3所示.
表3 评价函数相关变量关系Tab.3Relationship between relevant variables for evaluation function
综合以上描述,检测模型的检测结果如表4所示,灵敏度为86.45%,检测准确率为85.79%,特异度为84.63%.
表4 模型检测结果Tab.4Results of model test
结合驾驶人的眼部特征参数和车道偏离的驾驶行为特征参数,采用支持向量机的算法对两种特征参数进行数据融合,得出疲劳检测数据融合模型.经实际道路上的测试表明,本文算法研究结果实现了两种数据的数据融合,相对于单一数据源的疲劳检测结果,本文算法研究在疲劳检测准确性上得到很大提高.
感谢武汉工程大学智能交通研究中心与江苏省交通规划设计院智能交通设计研究中心的支持.
[1]沈永增,胡立芳,冯继妙.多源信息融合在驾驶疲劳检测中的应用[J],计算机应用与软件,2012.29(2):271-274,297. SHEN Y Z,HU L F,FENG J M.Multi-source informationfusionapplicationtodrivingfatigue detection[J].Computerapplicationsandsoftware,2012,29(2):271-274,297.
[2]YANG G,LIN Y,BHATTACHARYA P.A driver fatiguerecognitionmodelusingfusionofmultiple features[M].Hawei:IEEE,2005.
[3]GUO S Y,YING Z L,PRABIR BHATTACHARYA.A driver fatigue recognition model based on information fusion and dynamic Bayesian network[J].Information sciences,2010,180(10):1942-1954.
[4]王连震,裴玉龙.基于贝叶斯网络的驾驶疲劳程度识别模型[J].交通工程,2014,12(3):66-74. WANG L Z,PEI Y L.Driving fatigue recognition model based on bayesian network[J].Traffic engineering,2014,12(3):66-74.
[5]张晖.基于驾驶行为的疲劳程度识别研究[D].武汉:武汉理工大学,2009.
[6]杨述斌,金璐,章振保.疲劳驾驶检测中的快速人眼定位方法[J].武汉工程大学学报,2013,35(6):67-72. YANG S B,JIN L,ZHANG Z B.The method of quick eye location for fatigue test[J].Journal of Wuhan university of engineering,2013,35(6):67-72.
[7]袁翔,黄博学,夏晶晶.疲劳驾驶检测方法研究现状[J].公路与汽运,2007,18(3):51-54. YUAN X,HUANG B X,XIA J J.Fatigue test method of research status[J].Roads and trucks,2007,18(3):51-54.
[8]牛清宁.基于信息融合的疲劳驾驶检测方法研究[D].长春:吉林大学,2014.
[9]邵佳.基于眼部特征的疲劳驾驶实时检测算法研究[D].长沙:湖南大学,2013.
[10]王景丹.疲劳驾驶自主检测的研究与实现[D].成都:电子科技大学,2013.
[11]王雷.一种基于双曲线模型的车道线跟踪检测算法设计与实现[D].长春:吉林大学,2014.
[12]秦洪懋,刘志强,汪澎.基于多通道信息融合的疲劳驾驶行为分析研究[J].中国安全科学学报,2011,21(2):115-120. QING H M,LIU Z Q,WANG P.Research on drowsy driving behavior based on mult-i channel information fusion[J].Chinese journal of safety science,2011,21(2):115-120.
[13]刘佳兴.基于多参数融合的疲劳驾驶监测及预警系统[D].兰州:兰州大学,2013.
[14]肖献强,王其东,赵永.基于信息融合的驾驶行为识别技术的研究[J].汽车工程,2012,34(3):223-226. XIAO X Q,WANG Q D,ZHAO Y.A research on the technique of driving behavior identification based on information fusion[J].Automotive engineering,2012,34(3):222-226.
[15]刘莉.基于眼部信息的疲劳驾驶检测方法研究[D].长沙:湖南大学,2011.
本文编辑:陈小平
Detection Algorithm of Fatigue Driving Based on Data Fusion
LI Juan1,WANG Fu*1,WANG Weifeng2,WANG Enjun1,YANG Yang1
1.School of Resources and Civil Engineering,Wuhan Institue of Technology,Wuhan 430074 China;2.Intelligent Tansportation Design Research Center of Jiangsu Province Traffic Planning and Design Institute,Co.LTD,Nanjing 210014,China
To reduce traffic accidents,we adopted fatigue detection technology based on data fusion to improve the accuracy of fatigue detection.By analyzing the driving behavior and vehicle tracking technology,P80(the eyelids cover the pupillary area of more than 80%)and blink frequency were selected as the eye characteristic parameters,and the vehicle cross line was selected as the driving behavior characteristic parameters.The two characteristic parameters were divided into three categories,the waking state,mild fatigue and fatigue;finally,the fatigue detection model based on data fusion was established by supporting vector machine.Experimental results show that the sensitivity is 86.45%,the detection accuracy is 85.79%,and the specificity is 84.63%,which is more accurate compared with the fatigue detection method based on single data source.It is concluded that the established fusion model can improve the accuracy of fatigue detection.
driving behavior;fatigue detection;lane departure;P80;supporting vector machine;data fusion
TP305
A
10.3969/j.issn.1674⁃2869.2016.05.018
1674-2869(2016)05-0505-06
2016-05-26
李娟,硕士研究生.E-mail:1060306732@qq.com
王富,博士,副教授.E-mail:550616898@qq.com