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