馬 馳
北京航空航天大學軟件學院,北京 100083
目前,人眼檢測的具體方法很多,常用的有:積分投影法、灰度模板法、基于Hough變換方法、紅外輔助檢測等方法。Hough變換的方法在實時檢測的環(huán)境中,目標圖像序列中眼睛的大小會因人的頭部前后和側向運動而發(fā)生變化,參數搜索范圍無法實時更新。很多人眼檢測的方法都是首先進行人臉檢測,本文根據駕駛室中背景簡單,駕駛員頭部動作較少等特點,提出一種直接進行人眼定位的方法。這種方法在適用范圍、準確率等方面有了明顯改善。
第一步是初始化。根據差值圖像(由每一幅圖像和前一幅圖像的差值閥值形成)建立二值圖像。此二值圖像表明了這兩幅圖像之間運動的區(qū)域。一個3×3星型卷繞的核心被濾過在一個開始的形態(tài)學操作中,這樣做可以消去大量的噪音和因為照明變化帶來的自然顫動、Camera的移動和背景的移動。這個形態(tài)學操作會產生更少和更大的關聯(lián)組件(眨眼發(fā)生時),這對下一步的準確性和效率很關鍵。在恢復結果的二值圖像的關聯(lián)組件數目后,我們要實施一個遞歸的標定過程。組件數目的理想數字是兩個(左眼和右眼),如果有其他的運動產生,則會產生多得多的關聯(lián)組件。這時系統(tǒng)會放棄當前得到的二值差分圖像,等待著下一次眨眼再進行操作以保持定位眼睛的效率和準確性。
人眼具有一定的特征,例如寬度、長度和長寬比都有一定的范圍。根據每個組件的寬度、高度、和組件對在水平和豎直方向上的距離進行判斷,以去除不可能的組件。大量實驗得出的數據用于得出最有可能的代表眼睛的組件對。
第二步是創(chuàng)建模板。如果前一個階段只有一對組件通過了過濾器,那表明我們很有可能成功的得到了眼睛對。如果是這樣的話,我們選擇其中比較大的來創(chuàng)建模板。因為模板的大小和選中的組件的大小是成比例的。我們選擇大的組件是為了得到更多的亮度信息,這樣可以得到更準確的追蹤和相關數。因為系統(tǒng)會追蹤用戶睜著的眼睛,因此在眼睛被定位的時刻創(chuàng)建模板是錯誤的,因為這時用戶眨眼了。因此,一旦我們確定眼睛被定位了,計時器就應啟動。幾幀過后(時間由眨眼過后重新睜開的時間調整),模板被創(chuàng)建。因此,初始化時,假設用戶過一段時間就以正常的速度眨眼。我們不需要任何的離線模板,并且在線模板的創(chuàng)建完全獨立于任何原來在系統(tǒng)中可能已創(chuàng)建的模板。
我們需要用到模板匹配,因為用戶可能會有輕微的移動。追蹤需要用到一個標準相關系數。相關系數需要使用下面的公式在每一幀中計算。
F(x,y)是當前幀中點(x,y)的亮度,fu,v是當前搜索區(qū)域中幀的平均值。T(x,y)是模板圖像中點(x,y)的亮度,t是模板圖像的平均值。由公式得到的相關系數在-1到1之間,表明了圖像的每一點與模板的相似度。0附近表明相似度很低,1附件表明相似度很高。這個方法的好處是其不太受周圍照明情況變化的影響。結果區(qū)域表明這種眼睛追蹤和眨眼檢測在很暗或者很亮的情況下也同樣有效。
這種方法需要大量的計算,并且每秒執(zhí)行30次,因此這種方法限制在眼睛附近很小的區(qū)域內。
第四步是眨眼檢測。眨眼檢測和對眨眼周期的觀察只依賴于對上一步中相關數觀察的結果。例如,眼睛閉上的時候,相關數下降,睜開時,上升。眼睛睜開的時候相關數一般為0.85~1.0,閉上的時候一般為0.5~0.55。我們要特別注意相關數低于0.45的情況,這一般表明把眼睛跟丟了。這種情況下,必須要重新初始化和跟蹤。有研究表明:當相關數低于睜眼的閥值時,一個計時器便被啟動,當相關數保持低于這個閥值并且高于需要重新初始化的閥值一定幀數目的圖像時,此眨眼便會被設定為駕駛員疲勞的標志,便會對駕駛員作出警告。研究表明,一般情況下,人眼閉合時間在0.2s~0.3s之間,如果在駕駛時眼睛閉合時間達到0.5s~3s時,則很容易出現事故[3],因此系統(tǒng)中將上文中判斷是否疲勞的圖像幀數設為10幀。 將系統(tǒng)判斷疲勞的閥值定為0.5s。
為驗證上述系統(tǒng)的效果,我們需要在不同時間、光照條件、距離、面部表情、面部細節(jié)(戴眼鏡與否、睜閉眼)、臉部朝向等條件下進行驗證。實驗共有五人參與,在各種條件下進行測試,共進行1023次測試,37次判斷失敗,大多是由于這種方法戴眼鏡的時候有時因為屏幕的反光無法定位,成功率為96.3%。本系統(tǒng)與cam的距離在1到2英尺之間,并且能在三次自然眨眼之內定位人眼。本系統(tǒng)在各種照明下準確性都一樣高。當cam擺放在頭部下方時,比較準確。當擺放在頭部上方比較遠時,這時的角度比較大,眨眼檢測不再準確。這是由用戶眨眼時所引起的相關數的少量變化引起的。因為這時cam只能看到眼瞼。因此,放置cam的時候,最大化睜眼和閉眼時角度的差值對眨眼檢測是有利的。
從實驗結果可以看出,文中提出的眼睛定位、眼睛追蹤和疲勞檢測方法是有效的,其效果是令人滿意的。該算法不同于以往通過定位人臉來定位人眼的方法,減少了計算量,提高了速度和準確率。但是,這些算法僅是在實驗室進行了測試,與成功的產品還有一段距離,因此這些方法在可靠性和實用性方面還有待進一步研究。
[1]S A.Nobe,EY.Wang.An overview of recent developments in automated lateral and longitudinal vehicle controls[c].IEEE International Conference on SMC.2001,5:3447-3452.
[2]Qiang Ji and Xiaojie Yang.Real-Time Eye, Gaze, and Face Pose Tracking for Monitoring Driver Vigilance[J]. Real-Time Imaging 8,2002:357-377.
[3]成二康.眼睛狀態(tài)參數圖像檢測及其在瞌睡監(jiān)測中的應用[D],2009-06-01.
[4]張利偉.基于視覺的駕駛疲勞實時檢測系統(tǒng)研究[D],2009-05-01.