張 露 張 靜 楊薛濤 陳忠強 游斌相 王銀玲
(西南科技大學智能機器人創新實踐班 四川綿陽 621010)
疲勞駕駛是誘發嚴重交通事故的重要原因之一,據統計,60%以上的交通事故與疲勞駕駛有關,防范疲勞駕駛刻不容緩。
在人眼狀態判別方面,眾多學者提出了不同的檢測方法。Tian等提出用Canny邊緣和半虹膜掩膜的方法檢測眼睛開、閉兩種狀態[1];李英等綜合5種方法來檢測開眼和閉眼狀態[2];胡濤等利用形狀特征判斷人眼狀態[3];Khan等提出實時眼睛跟蹤和分類駕駛員疲勞檢測[4];苑瑋琦等提出基于PERCLOS的眼睛張開程度檢測算法[5];Fei Yang等通過網絡攝像頭跟蹤眼瞼狀態判別疲勞[6];FAN Xiao等提出首先利用模板匹配方法獲得初始幀的準確眼睛位置,然后利用動態模板匹配方法跟蹤下一幀的位置,最后通過相似度檢測眼睛狀態[7];袁翔等人綜述了當前疲勞檢測研究進展,提出基于人眼視線的檢測方法,通過對眼球建模,把視線是否偏離正常范圍作為判別是否疲勞的特征之一[8]。
目前判別人眼開、閉狀態均依據單一指標進行判別,而且公認的疲勞判別標準PERCLOS能有效判別是否疲勞,經檢測PERCLOS方法檢測一般是在事故前10 s出現,留給司機的反映時間太短。在駕駛疲勞檢測過程中,人眼狀態并非只有睜眼和閉眼兩種狀態,而是有大量中間狀態,中間狀態包含了臨界疲勞的狀態,有效利用PERCLOS方法就須在臨界疲勞時發出預警。
本文在現有的疲勞駕駛檢測方法的基礎上繼續研究如何判別疲勞以及臨界疲勞,將PERCLOS檢測結果、眼瞼在單位時間的平均張開程度、單位時間眨眼次數、眼睛縱橫比4種檢測結果綜合分析,提出用模糊識別的方法,融合以上4種測量結果,加以權重分析,進而判別眼睛所屬的狀態。
PERCLOS[9]是指在一定時間內眼睛閉合時所占的時間比例,在具體實驗中有P70,P80,EM 3種測量方式,其中P80被認為最能反映人的疲勞程度。圖1為PERCLOS值的測量原理圖,圖中曲線為一次眼睛閉合與睜開過程中睜開程度隨時間的變化曲線,可根據此曲線得到所需測量的眼睛某個程度的閉合或睜開持續的時間,從而計算出PERCLOS值。圖中t1為眼睛完全睜開到閉合20%的時間;t2為眼睛完全睜開到閉合80%的時間;t3為眼睛完全睜開到下一次睜開20%的時間;t4為眼睛完全睜開到下一次睜開80%的時間。通過測量出t1到t4的值算出PERCLOS的值f。

其中f為眼睛閉合時間所占某一特定時間的百分率,對于P80測量方式來說,我們認為當PERCLOS值f>0.15時,認為駕駛員處于疲勞狀態。

圖1 PERCLOS值的測量原理圖Fig.1 The measuring schematics of PERCLOS value
由于人眼上下眼皮的兩條邊界線是約束在眼球球面上的兩段弧線段,正面拍攝時,在xOy平面的投影近似為兩段對稱的拋物線,這里只考慮上眼皮的運動,如圖2,用參數方程表示為:


圖2 人眼運動模型Fig.2 The movement model of human eyes
其中T為瞳孔切面方程,保證眼皮拋物線被約束在圓面內,r為瞳孔半徑,c(t)描述上眼皮張閉的控制函數,由眼睛大小及幾何特征可解方程中的參數。上眼皮張閉過程描述,t時刻:yt(x),經 △t后APB弧下移:

C(x1,y1),D(x2,y2)為拋物線下移時與圓的交點,S0為圓面積,即:

其中,S(t)為未閉合瞳孔面積。
眼睛平均張開程度:

攝像頭采集到的眼睛在橫向和縱向上所占像素值 Contour_X,Contour_Y,計算 Lenpr[i]=Contour_Y/Contour_X,即眼睛的縱橫比,這個比值對同一個人的睜眼或閉眼狀態來說是相對固定的。眨眼檢測流程如圖3。

圖3 眨眼檢測流程圖Fig.3 The flowchart of blink detection
瞌睡和眨眼檢測結果可統計眨眼次數[4],如圖4,當最大相關值在0.75~1之間,說明人眼處于覺醒狀態,當最大相關值在0.5~0.75之間時,說明是在眨眼或是瞌睡,此時若持續時間較長,則是瞌睡,若是瞬間情況則是眨眼,據此統計眨眼次數。

圖4 瞌睡和眨眼檢測結果Fig.4 The results of drowsiness and blink detection
模糊不確定性是指事物本身所固有的不精確狀況,擺脫了非此即彼的精確性,反映了事物間由于差異的中間過渡性所引起的不確定,而導致了概念的外延不分明性,也就是“亦此亦彼”的模糊性,人眼狀態并非只有睜眼和閉眼兩種狀態,而是有大量中間狀態,即在排中律上存在破缺,屬模糊不確定性一類。
一般的模糊識別過程可分為三步來實現:(1)信息獲取;(2)特征提取;(3)選擇、匹配分類。一般地,設所分類的事物有n個可提取特征,對某個具體的對象(模糊集)對應于這n個特征的n個隸屬度為:μ1,μ2,…μn。對于具體問題,這 n 個特征在模糊識別中的作用是不同的,所以對這些隸屬度分別賦予適當的權系數:a1,a2,…,an。求得:

通常在觀察一個人一段時間后,可根據其面部表情狀態,能判斷被觀察者目前是否處于疲勞狀態,這是經驗所得,而機器就不能辦到,甚至出現誤判,用模糊識別[10]可以更深入地模擬人腦思維的過程。
設論域 U={x1,x2,…,xn},用聚類方法按經驗以及大量試驗將人眼狀態行為分為3種類型,在U上表現為3個模糊子集 Ai∈ F(U)(i=1,2,3),其含義為:A1為正常狀態;A2為臨界狀態;A3為疲勞狀態,這就構成了論域U上的標準模型庫{A1,A2,A3},每個標準人眼狀態:(i=1,2,3,4)由4 個主要指標來描述,即:
η1:由PERCLOS方法檢測得到η1=總閉眼時間/總時間;η2:眼皮平均張開程度;η3:單位時間的眨眼次數統計;η4:眼睛縱向長度與橫向長度的比例。

表1 特征檢測指標Table 1 Index of feature detection
眼睛在人體不同生理條件下張合狀態是一個較復雜的模糊集合體,而所用到的4個指標在測量時也會有各種因素的影響,都是模糊概念,因此,對每個標準人眼狀態而言,以上4個指標也是模糊集=((i=1,2,3),這可以看作是一個廣義模糊向量集合族。
各種標準人眼狀態通過大量的試驗,η1(),η2(),η3(),η4()均為正態模糊集,相應的隸屬函數為:

4個指標對判別3種眼睛狀態的影響程度不相同,即4個指標的權重不同,令權重為wj(j=1,2,3,4),即:

攝像頭采集到的模擬圖像通過預處理,手工分割人眼圖像。統計不同狀態眼睛張開程度、單位時間眨眼次數、眼睛縱橫比例。試驗流程如圖5所示。

圖5 試驗流程圖Fig.5 The flowchart of testing
運用Matlab 2012軟件進行程序設計,軟件界面如圖6。

圖6 軟件界面Fig.6 The interface of the software

對眨眼進行檢測,將眼睛在縱向和橫向上的實際所占像素值,即眼睛的縱橫比作為眼睛的閉合度,圖7為眼睛在3種狀態下的縱橫比值。

圖7 3種狀態下眼睛的縱橫比Fig.7 The aspect ratio of the three states of the eyes
采用模擬拍攝的圖像,根據以上方法統計各特征值,在3種狀態下4個特征檢測的結果(平均值+方差)見表2,通過多次試驗,權重系數w={0.4,0.2,0.2,0.2}時準確率較高。

表2 特征檢測指標參考值Table 2 Index reference value of feature detection
該模糊識別系統的輸出值顯示為正常、臨界或疲勞。在一段時間內,攝像頭拍攝的測試者的眼部狀態,檢測出4個特征值,由模糊識別系統判別眼睛當前所屬的狀態,及時顯示結果及相應的預警和報警。表3為4位測試者的疲勞檢測結果,報警平均正確率達到94%。

表3 疲勞檢測結果Table 3 The results of fatigue detection
模糊綜合評價結果是被評價對象對各等級模糊子集的隸屬度構成的綜合評價向量,本文中對綜合評價向量的處理遵循常規的最大隸屬度原則,但是最大隸屬度原則在某些情況下存在失效問題。對同一個測試者來說,2指標和4指標在判斷是否疲勞時若差異較小,會出現誤報。針對這一問題,在進一步的研究中要結合實際情況改進最大隸屬度原則的算法。
本文結合已有的檢測方法,采用模糊識別對眼睛狀態的綜合判斷作了理論分析,并通過模擬的正常、臨界、疲勞狀態拍攝的圖像,檢測其特征值,最后由模糊識別綜合判斷眼睛所屬的狀態,作相應的預警或報警提示,模擬測試結果平均準確率達到94%。由于在本文中所采用的的權重系數只適用于本模擬實驗,為了確保該識別方法能適合不同環境,應該使用實時的駕駛拍攝的圖像,所以權重系數有待進一步完善,其次對最大隸屬度原則的算法應結合實際作相應的改進。
[1]TIAN Y L,KANADE T,COHN J F.Dual- state Parametric Eye Tracking[C].Proceeding of the 4th IEEE International Conference on Automatic Face and Gesture Recognition(FG'00),Grenoble,France,2000.110 -115.
[2]李英,賴劍煌,阮邦志.眼睛狀態檢測的組合方法[J].中國圖象圖形學報,2003,8A(10):1140-1145.
[3]胡濤,張兵.基于形狀特征的人眼狀態判斷[J].計算機工程與應用,2009,45(5):203-206.
[4]KHAN M I,MANSOOR A B.Real Time Eyes Tracking and Classification forDriverFatigueDetection[C].ICIAR,2008,LNCS5112,2008.729 -738.
[5]苑瑋琦,袁英.基于PERCLOS的眼睛張開程度檢測算法研究[J].微計算機信息(控制自動化),26(9-1):46-48.
[6]YANG Fei,YU Xiang,HUANG Jun-zhou,et al.Robust Eyelid Tracking for Fatigue Detection[D].978-1-4673-2533-2/12/2012IEEE.
[7]FAN Xiao,SUN Yan-feng,YIN Bao-cai,et al.Gabor-based dynamic representation for human fatigue monitoring in facialimage sequences[J].Patter Recognition Letters,2010,31(3):234-243.
[8]袁翔,孫香梅.疲勞駕駛檢測方法研究進展[J].汽車工程學報,2012,2(3):157-164.
[9]郭永彩,李文濤,高潮.基于PERCLOS的駕駛員疲勞檢測算法[J].計算機系統應用,2009,(8):54-57.
[10]梁保松,曹殿立.模糊數學及其應用[M].北京:科學出版社,2007.
[11]胡越,郭延齊,程文華.基于Matlab的人眼疲勞度檢測[J].信息技術,2009,(8):64-67.