廖建國,賀勇標(biāo),魯國峰(湖南科技大學(xué)機(jī)電工程學(xué)院,湘潭 411201)
基于人眼狀態(tài)的疲勞駕駛檢測系統(tǒng)的實(shí)現(xiàn)
廖建國,賀勇標(biāo),魯國峰
(湖南科技大學(xué)機(jī)電工程學(xué)院,湘潭411201)
設(shè)計(jì)一個(gè)疲勞駕駛檢測系統(tǒng),該系統(tǒng)首先利用AdaBoost算法檢測人臉區(qū)域,通過改進(jìn)掃描方式減少檢測時(shí)間。利用人眼幾何分布特征定位人眼位置,同時(shí)利用雙線性插值法矯正傾斜人臉。基于PCA算法和灰度投影法對人眼狀態(tài)進(jìn)行分析,最后通過計(jì)算PERCLOS值判定駕駛員是否處于疲勞狀態(tài)。實(shí)驗(yàn)結(jié)果表明,構(gòu)建的監(jiān)測系統(tǒng)對駕駛員頭部姿態(tài)和光照變化具有較好的魯棒性,并且能準(zhǔn)確檢測駕駛員的疲勞狀態(tài)。
人眼定位;AdaBoost算法;PCA;PERCLOS
隨著社會的快速發(fā)展,國民消費(fèi)能力逐年提高,汽車數(shù)量的大幅增加給整個(gè)交通系統(tǒng)帶來了更多的安全隱患。疲勞駕駛是引發(fā)交通事故的重要因素之一,據(jù)統(tǒng)計(jì),20%的交通事故與疲勞駕駛有關(guān)[1]。因此,如果能及時(shí)對疲勞駕駛進(jìn)行預(yù)警措施,對于交通安全來講具有重要意義。
目前,駕駛員疲勞狀態(tài)檢測方法主要分為三類[2]:一是基于駕駛員生理信號的檢測[3],該檢測方法主要是通過檢測腦電圖、心電圖、肌電圖等一系列生理特征的變化作為檢測標(biāo)準(zhǔn);二是基于駕駛員的操作行為和車輛狀態(tài)的檢測[4],此類方法是利用駕駛員對方向盤操作時(shí)出現(xiàn)的一些特性,以及汽車在一定時(shí)間內(nèi)的行駛軌跡來判斷駕駛員是否處于疲勞狀態(tài);三是基于駕駛員面部器官行為特征的檢測[5],這種方法主要是通過眼睛、嘴巴、鼻子等面部器官的一些行為特征和幾何特征來判斷疲勞狀態(tài)。
通過檢測人眼睜開幅度、眨眼頻率和閉眼時(shí)間等眼部狀態(tài)信息,可以反映出駕駛員的疲勞狀況[6]。本文所采用的疲勞檢測方法是基于駕駛員的人眼狀態(tài)的檢測,整個(gè)檢測系統(tǒng)的實(shí)現(xiàn)主要有四大流程:人臉檢測、人眼檢測、狀態(tài)識別和疲勞檢測。下面對系統(tǒng)各流程分別進(jìn)行闡述。
1.1人臉圖像的預(yù)處理
經(jīng)攝像頭拍攝的視頻幀圖像是不能直接用來進(jìn)行人臉的檢測的,圖像在傳輸過程中會受到各種噪聲的污染,因此,需要對圖像進(jìn)行預(yù)處理,包括濾波降噪處理和光照補(bǔ)償處理。圖1是駕駛員在不同光照條件下其灰度圖像經(jīng)過光照補(bǔ)償處理后的對比圖。
1.2人臉檢測
在定位人眼之前,采用基于Haar特征的AdaBoost學(xué)習(xí)算法先檢測出人臉位置[7]。Papageorgiou等最初是將Haar特征用于表示人臉[8]。后來,Viola和Jones在此基礎(chǔ)上提出了三類不同類型的Haar特征,分別為邊緣特征、線性特征、中心特征和對角線特征,并將這些特征組合成特征模板。特征模板的特征值是白色區(qū)域的像素同黑色區(qū)域像素的差值,特征的選取和特征值的計(jì)算是影響AdaBoost檢測速度的兩個(gè)重要因素。
AdaBoost算法是一種自適應(yīng)迭代算法,基本思想就是通過訓(xùn)練多個(gè)弱分類器,并將分類器組合成強(qiáng)分類器。最初,訓(xùn)練集中每個(gè)樣本所對應(yīng)的權(quán)重大小是一樣的,將樣本排好序進(jìn)行分類,找分類誤差最小的區(qū)間,然后判斷此時(shí)的樣本是否有錯(cuò)分情況,如果有樣本分類錯(cuò)誤,則將加大樣本權(quán)值,若樣本分類正確就降低它的權(quán)重。于是,被錯(cuò)誤分類的樣本就更加凸顯,從而又形成一個(gè)新的樣本,也就形成第一個(gè)弱分類器h1(x)。然后再把這個(gè)新形成的弱分類器再一次分類,得到弱分類器h2(x),就這樣經(jīng)過T次迭代循環(huán)訓(xùn)練,最后可以訓(xùn)練得到T個(gè)弱分類器,然后再將這T個(gè)弱分類器疊加起來組合成強(qiáng)分類器,用于最后的人臉檢測。
圖1 光照處理圖
給定n個(gè)訓(xùn)練樣本集:S={(x1,y1),…,(xn,yn)},正負(fù)樣本的類別標(biāo)簽用0和l表示,即yi={0,1},假如訓(xùn)練集里共有m個(gè)正樣本,l個(gè)負(fù)樣本,則m+l=n。
步驟1:首先將正負(fù)樣本的概率分布初始化,即:
步驟2:For t=1,2,...,T(T為訓(xùn)練次數(shù));
(1)權(quán)重歸一化
(2)hj是每個(gè)特征j對應(yīng)的弱分類器,計(jì)算此時(shí)弱分類器權(quán)重的分類誤差,即:
(3)假如當(dāng)前弱分類器ht的分類誤差εt是最小誤差,則把此分類器放入強(qiáng)分類器的組合中;
其中,若xi的分類正確,即ht(xi)=yi時(shí),ei=0,否則ei=1;
步驟3:輸出強(qiáng)分類器
圖2是部分人臉檢測結(jié)果圖,紅色方框以內(nèi)即為駕駛員在不同狀態(tài)下檢測到的人臉圖像。
圖2 人臉定位圖
2.1基于質(zhì)心點(diǎn)精確定位眼睛
定位好人臉之后,將人臉區(qū)域裁剪出來。根據(jù)三庭五眼原則,人眼在臉部的上半部分,再裁剪出人臉的上半部分。圖像二值化后,首先采用形態(tài)學(xué)處理將圖像中小面積連通域和部分噪點(diǎn)全部刪除。
為了統(tǒng)計(jì)連通域的數(shù)量,首先要標(biāo)記處理后的圖像中的連通域,本文采用八鄰域標(biāo)記算法。標(biāo)記好圖像中每個(gè)連通域后,利用幾何矩算法求取每個(gè)連通域的質(zhì)心點(diǎn),式(6)的高階具有旋轉(zhuǎn)不變性,可以用來實(shí)現(xiàn)圖像的比較分類,它的低階M00,M01,M10可以用來計(jì)算質(zhì)心,零階幾何矩M00代表一幅圖像的總亮度,對于剪影圖像,M00表示目標(biāo)區(qū)域的幾何面積,一階幾何矩M10,M01是圖像關(guān)于x軸和y軸的亮度矩。
在二維圖像中建立坐標(biāo)系,設(shè)定質(zhì)心坐標(biāo)為(x,y),則,x=M10/M00,y=M01/M00。
求取每個(gè)連通域的質(zhì)心后,并標(biāo)記每個(gè)質(zhì)心點(diǎn)的坐標(biāo)的位置,然后基于眼睛的幾何分布特征確定最終的眼睛質(zhì)心點(diǎn)坐標(biāo)。圖3是部分人眼定位圖。
圖3 人眼定位圖
2.2基于雙線性插值法矯正人臉
考慮到駕駛員在駕駛汽車過程中頭部會有不同角度的擺動,這樣會造成拍攝到的圖像眼睛處于傾斜狀態(tài),因此需要先對人臉進(jìn)行矯正。本文采用雙線性插值法對人臉圖像進(jìn)行矯正,雙線性插值法的核心思想是在兩個(gè)方向分別進(jìn)行一次線性插值。圖4是部分人臉矯正結(jié)果圖。
圖4 人臉矯正圖
3.1基于PCA算法和灰度投影法的人眼狀態(tài)分析
定位好眼睛之后,需要對人眼的狀態(tài)進(jìn)行識別,考慮到不同駕駛員眼睛的差異性,為了能夠精準(zhǔn)定位不同個(gè)體的眼睛狀態(tài),本文采用的是一種針對不同個(gè)體先計(jì)算出該個(gè)體完全睜眼和完全閉眼時(shí),其灰度化后眼睛區(qū)域的最大灰度值h1和最小灰度值h2,其中h1和h2采用的是PCA算法,該算法是一種主成分析法[9],主要是通過對大量樣本進(jìn)行降維以達(dá)到分類的目的。最后再通過灰度投影法計(jì)算后續(xù)眼睛狀態(tài)的灰度變化值h,并以下式來判斷眼睛的狀態(tài):
其中,f值就是眼睛狀態(tài)判別值。
3.2基于PERCLOS和人眼開度的疲勞狀態(tài)判別
PERCLOS(percentage of eyelid closure over the pupil over time)是指眼睛閉合時(shí)間占某一特定時(shí)間的百分率。PERCLOS已經(jīng)被證明是一種有效的疲勞檢測手段[10]。PERCLOS原理的判斷標(biāo)準(zhǔn)有下面三種:
①P70:當(dāng)眼皮遮蔽瞳孔的面積超過70%時(shí),認(rèn)為此時(shí)眼睛處于閉眼狀態(tài),并計(jì)算在特定時(shí)間內(nèi)閉眼時(shí)間所占的時(shí)間比;
②P80:眼皮遮蔽瞳孔的面積超過80%時(shí),認(rèn)為此時(shí)眼睛處于閉眼狀態(tài),并計(jì)算在特定時(shí)間內(nèi)閉眼時(shí)間所占的時(shí)間比;
③EM:眼皮遮蔽瞳孔的面積超過50%時(shí),認(rèn)為此時(shí)眼睛處于閉眼狀態(tài),并計(jì)算在特定時(shí)間內(nèi)閉眼時(shí)間所占的時(shí)間比。
美國高速公路安全管理局(NHTSA)通過相關(guān)實(shí)驗(yàn)證明了P80標(biāo)準(zhǔn)跟疲勞駕駛程度的判斷相關(guān)性最好。因此,本文采用P80標(biāo)準(zhǔn)作為判斷標(biāo)準(zhǔn)。
為了方便統(tǒng)計(jì),將時(shí)間比轉(zhuǎn)化為特定時(shí)間內(nèi)閉眼幀數(shù)同總幀數(shù)的比值,則PERCLOS的值P可以用下式表示,即:其中,n為特定時(shí)間內(nèi)檢測到眼睛閉合狀態(tài)的幀數(shù),N為特定時(shí)間內(nèi)眼睛圖像的總幀數(shù)。
實(shí)驗(yàn)中為了測試實(shí)際駕駛環(huán)境中駕駛員在不同狀態(tài)下眼睛開度變化情況,分別拍攝多段不同個(gè)體疲勞狀態(tài)下的視頻圖像和同數(shù)量的多段不同個(gè)體非疲勞狀態(tài)下的視頻圖像,每段視頻的時(shí)間長度為30秒,視頻幀率為16幀每秒,按照3.1中的方法計(jì)算每段視頻的人眼開度分布情況,如圖5所示。
從圖5中可以看出,不同的個(gè)體由于眼睛大小不一樣,正常睜眼的程度也不一樣,所以,不同的個(gè)體其人眼開度情況都會有一定的差異,但并不影響疲勞的判斷,因此,可以通過設(shè)定一定的閾值來判定當(dāng)前人眼處于何種狀態(tài)。
3.3PERCLOS值的計(jì)算和實(shí)驗(yàn)分析
通過拍攝實(shí)驗(yàn)室里5個(gè)不同對象在不同光照條件下模擬不同狀態(tài)的視頻幀圖像,以實(shí)時(shí)視頻每60秒為一個(gè)時(shí)間統(tǒng)計(jì)段,利用本文方法判斷每幀圖像的眼睛狀態(tài),然后利用公式(9)求PERCLOS值,最后分別統(tǒng)計(jì)疲勞和非疲勞狀態(tài)下的PERCLOS值,如表所示。
圖5 部分不同狀態(tài)人眼開度曲線圖
表1 各對象非疲勞狀態(tài)下的PERCLOS值
表2 各對象疲勞狀態(tài)下的PERCLOS值
從表1和表2中可以看出,同種狀態(tài)不同條件下的PERCLOS值都非常接近,不同狀態(tài)下的差值都在一定范圍內(nèi)波動,為了更清楚地對比兩種狀態(tài)PERCLOS值的分布情況,再采集5個(gè)新的不同對象的視頻圖像,將實(shí)驗(yàn)中兩種狀態(tài)下的PERCLOS值在坐標(biāo)中表示,如圖6所示。
根據(jù)圖6中曲線分布,求得非疲勞狀態(tài)下的波峰的平均值,以及疲勞狀態(tài)下的波谷的平均值,然后再對兩種狀態(tài)下的平均值再次平均,得到的值作為最終的疲勞判斷閾值P,若求得的PERCLOS值大于P則判定駕駛員處于疲勞狀態(tài),同時(shí)疲勞駕駛系統(tǒng)做出預(yù)警通知,提醒駕駛員安全駕駛,尋找近距離安全服務(wù)區(qū)進(jìn)行休息。圖7是整個(gè)檢測系統(tǒng)的軟件界面圖。
圖6 不同狀態(tài)下PERCLOS值分布圖
圖7 疲勞檢測系統(tǒng)界面
本文基于人眼狀態(tài)構(gòu)建了一套駕駛員疲勞檢測系統(tǒng),系統(tǒng)首先采用基于Haar特征的AdaBoost算法檢測出人臉;其次利用質(zhì)心點(diǎn)精確定位人眼區(qū)域,并利用雙線性插值法矯正傾斜圖像,降低了直接提取傾斜圖像人眼的難度;然后采用PCA降維法和灰度投影法對眼睛狀態(tài)的識別進(jìn)行分析。最后通過求取PERCLOS值作為疲勞檢測系統(tǒng)的判別標(biāo)準(zhǔn),整個(gè)檢測系統(tǒng)能滿足實(shí)時(shí)檢測駕駛員疲勞狀態(tài)的要求,并且光照魯棒性較好。
[1]李都厚,劉群,袁偉,等.疲勞駕駛與交通事故關(guān)系.交通運(yùn)輸工程學(xué)報(bào),2010;10(2)∶104-110.
[2]姜兆普,許勇,趙檢群.基于眼部特征的疲勞檢測算法.計(jì)算機(jī)系統(tǒng)應(yīng)用,2014;23(8)∶91-96.
[3]彭軍強(qiáng),吳平東,殷罡.疲勞駕駛的腦電特性探索.北京理工大學(xué)學(xué)報(bào),2007;27(7)∶585-589.
[4]屈肖蕾.基于轉(zhuǎn)向操作和車輛狀態(tài)的疲勞駕駛檢測方法研究.北京∶清華大學(xué),2012.
[5]袁健.基于面部特征的駕駛員疲勞檢測.杭州∶浙江大學(xué),2009.
[6]朱真真,王偉,段曉東,等.基于Kinect的人臉眼部狀態(tài)實(shí)時(shí)檢測.大連民族學(xué)院學(xué)報(bào),2015;17(1)∶81-84.
[7]徐信.基于AdaBoost人臉檢測算法的研究及實(shí)現(xiàn).太原∶太原理工大學(xué),2015.
[8]Constantine P.Papageorgiou,Michael Oren,Tomaso Poggio.A General Framework for Object Deteetion.Proeeedings of International Conference on Computer Vision,1998,1:20-25.
[9]黃泉龍.基于PCA的人臉識別研究.西安∶西安電子科技大學(xué),2012.
[10]曹菊英.基于眼睛跟蹤技術(shù)的司機(jī)疲勞檢測方法的研究.長沙:中南大學(xué),2007.
Eye Location;AdaBoost Algorithm;PCA;PERCLOS
Implement of Fatigue Driving Detection System Based on Eyes'State
LIAO Jian-guo,HE Yong-biao,LU Guo-feng
(College of Mechanical Electronical and Engineering,Hunan University of Science and Technology,Xiangtan411201)
Designs a fatigue driving detection system,this system uses the AdaBoost algorithm to detect the human face,and reduces the detection time by improving scanning mode.Employs geometrical features of eyes to detect eyes,and uses bilinear interpolation to correct inclined faces.It is based on the PCA algorithm and gray projection method to analyze the state of human eyes.Determines whether the driver is in a state of fatigue by calculating the value of PERCLOS.The experiment indicates that the monitoring system of constructed for the pilot head tilt and illumination changes have good robustness and it can achieve the requirement of real-time detection to the state of drivers' fatigue.
1007-1423(2016)20-0064-05
10.3969/j.issn.1007-1423.2016.20.013
廖建國(1990-),男,湖南耒陽人,碩士研究生,研究方向?yàn)槟J阶R別、圖像處理
賀勇標(biāo)(1991-),男,湖南婁底人,碩士研究生,研究方向?yàn)闄C(jī)器視覺、圖像處理
魯國峰(1989-),男,安徽合肥人,碩士研究生,研究方向?yàn)槟J阶R別、圖像處理
2016-04-25
2016-07-11