孫 玥 楊國為,2 陳雪鑫
(1.青島大學電子信息學院 青島 266071)
(2.南京審計大學信息工程學院 南京 210000)
隨著交通運輸業的發展,惡性交通事故頻繁發生,這對人民的生命財產構成了威脅。其中,疲勞駕駛是導致交通事故頻發的原因之一。現有的疲勞駕駛檢測算法可根據疲勞特征分為三類:基于生理特征的算法、基于行為特征的算法和基于視覺檢測的算法。文獻[1~4]提出了一種基于腦電信號(Electro Encephalo Gram,EEG)的睡眠檢測模型。然而,EEG信號易受噪聲影響并且難以收集。EOG(Electro Oculo Gram,EOG)[5~7]比EEG更容易收集,可用于免疫輕微噪音。然而,安裝用于收集的頭部裝置仍然相對麻煩。行為特征包括駕駛人行為特征和車輛行為特征,劉洋洋[8]提出的方法雖然可以檢測司機疲勞狀態,但是算法復雜,反映速度慢且識別率低。文獻[9]使用駕駛模擬器來建立模擬駕駛場景。并根據需要確定要獲得的數據,以確定車輛是否失控。但會受到路面條件和車輛型號的限制。基于視覺的方法是通過使用由相機拍攝的圖片來檢測疲勞,以檢測駕駛員是否具有長時間的疲勞狀態。文獻[10~11]提出了一種基于機器視覺的頭部姿態估計新方法。這類方法對駕駛員是非侵入式的,更為方便自然,成本也能得到很好的控制。
本文采用計算機視覺的方法首先利用Dlib構架人臉識別器,繼而利用Dlib官方訓練好的模型進行68點標定,提取出眼部、嘴部、下巴周圍的特征點的坐標,根據雙眼關鍵點計算眼睛縱橫比,類比眼睛縱橫比,提出一種新的哈欠檢測方法—嘴部縱橫比,根據計算結果判斷駕駛員是否處于瞌睡狀態和打哈欠狀態,為了進一步判斷駕駛員狀態,本文相比較文獻[12]加上了對駕駛員注意力的判斷,進一步判斷駕駛員的狀態,如果出現不安全行為,發出預警進行提醒,從而實現駕駛員疲勞及注意力檢測。實驗證明,該方法在疲勞駕駛檢測的準確率、實時性等方面取得明顯的性能提升。
本文提出的基于計算機視覺的疲勞及注意力檢測算法,該算法主要分三個部分:包括根據雙眼關鍵點計算眼睛縱橫比的瞌睡檢測、根據嘴部關鍵點計算嘴巴縱橫比的哈欠檢測以及根據關鍵點估計人臉姿態的注意力檢測,具體算法流程圖如圖1所示。

圖1 算法流程圖
Dlib庫是一個開源的人臉識別庫,其提供了一個68關鍵點的檢測模型,而且是按照順序排列的,所以,使用時可以方便地找到、調用需要的關鍵點,模型如圖2所示。

圖2 68點模型圖
本文使用基于Soukupova T[13]提出的眼睛周圍特征點的眼睛縱橫比(EAR)的概念。在Dlib中,左眼和右眼分別對應了6個特征點,圖3中的六個特征點p1,p2,p3,p4,p5和p6是面部特征點中相應眼睛的六個特征點。基于這6個特征點可以計算眼睛縱橫比EAR來實現眼部疲勞狀態的判別。
當眼睛打開和關閉時,眼睛特征點之間的關系如圖3中的曲線所示。可以看出,當眼睛打開和關閉時,縱橫比是不同的。因而ERA在眼睛睜開和閉合時會有不同的數值范圍,可以根據ERA的值判斷眼睛是張開還是閉合。
由文獻[13]可以得出眼睛縱橫比EAR的計算公式:


圖3 基于眼睛周圍特征點縱橫比EAR
在檢測到ERA小于0.25時判斷為閉眼狀態,同時開始統計連續閉眼幀數,普通的眨眼狀態一般持續3到5幀,若連續閉眼幀數達到20幀則可判定駕駛員處于瞌睡狀態,發出瞌睡預警,如圖4所示。
鑒于Soukupova T提出的基于眼睛周圍特征點EAR概念的結果的有效性,本文提出一種用于瞌睡檢測的新方法—嘴部縱橫比MAR(mouth aspect ra?tio)。在Dlib中,嘴對應于20個特征點,類似于瞌睡檢測,如圖5所示。選取其中相應的6個特征點p1、p2、p3、p4、p5、p6,基 于 這6個 特 征 點 可 以 計 算MAR:

縱橫比在嘴巴張開和閉合時會有所不同,因而MRA在嘴巴睜開和閉合時會有不同的數值范圍,我們可以根據MRA的值判斷嘴巴是張開還是閉合。

圖4 瞌睡狀態預警

圖5 嘴部特征點
在檢測到MRA大于0.60時判斷為張口狀態,同時開始統計連續張口幀數。普通的講話,驚喜和其他狀態一般都有少量的連續幀。若連續張口幀數達到15幀即可判定駕駛員處于哈欠狀態,發出哈欠預警,結果如圖6所示。

圖6 哈欠狀態預警
駕駛員的注意力狀態也是判斷一個駕駛員是否出現問題的重要指標[14]。進行注意力檢測首先根據眼角、鼻尖、下巴關鍵點估計人臉姿態,然后判斷駕駛員的視線是否超出安全區域,如果實現超過安全區域達到指定幀數10幀時,則判斷駕駛員注意力分散,發出危險預警。
3.4.1 頭部姿態估計
近年來,頭部姿態估計已成為計算機視覺領域的一個重要研究課題,成為疲勞檢測和人臉識別研究的關鍵技術[15]。許多疲勞檢測系統可以顯示正面圖像的良好識別性能,但是對于越來越多的面部姿勢角度,其識別準確度將嚴重下降。因此,頭部姿勢估計是判斷駕駛員注意力是否集中的重要指標。
在本文中,將二位圖像用于姿勢估計,并且三維標準模型以特定角度旋轉直到模型上的“三維特征點”的“二維投影”與待測試圖像上的特征點(圖像上的特征點顯然是二維)盡量重合。然后,基于二維圖像中檢測到的關鍵點估計頭部姿勢。
在精細估計方法中,頭部姿態估計是三維頭部偏轉的精確測量,即頭部偏轉角度相對于某個坐標平面的推斷過程。理想情況下,頭部姿勢在三個軸上記為[16]X軸(Pitch方向)的磁頭范圍為-90°~90°、Y軸(Roll方向)的磁頭范圍為-90°~90°、圍繞Z軸(Yaw方向)頭部姿態范圍為-90°~90°。
利用Dlib獲取的六個人臉關鍵點(鼻尖、下巴、左眼左角、右眼右角、嘴角左側、嘴角右側)的坐標與三維坐標對照后,估計頭部姿勢,得到的結果是Yaw,Pitch和Roll三個參數的結果。為了便于觀察和處理,將得到的旋轉向量進一步轉化為四元數,再轉化為歐拉角(弧度),最后轉化為角度。最終結果為:X為左右轉頭的角度;Y為上下轉頭的角度;Z為扭頭的角度。結果如圖7所示。

圖7 頭部姿態估計結果
3.4.2 視線范圍檢測
基于視頻圖像處理的視線檢測方法因具有廣闊的發展前景并且越來越受到很大的重視。
本文設置左眼角p1、右眼角p2、下巴p3三個關鍵點的位置坐標,據此計算出視線安全區域的左上角p4、右下角p5的坐標,從而可以得到視線安全范圍。當視線連續超出該范圍達到10幀時,判定為注意力分散,發出危險預警。
實驗里用的視頻數據庫來自于YawDD數據庫,數據庫中的視頻,男女駕駛者被要求坐在汽車的駕駛座。該視頻是真實的和變化的照明條件。數據庫中包含兩個數據集,在第一個數據集中,攝相機安裝在車的前視鏡下面。每個參與者有三個或四個視頻,每個視頻包含不同的嘴巴狀態如正常、說話/唱歌和打哈欠。在第二個數據集中,攝像機安裝在駕駛員前面的儀表板上,并且每個參與者在同一視頻中具有不同嘴部狀態的視頻。
對視頻中的數據進行檢測,運用本文提出的疲勞及注意力檢測算法,實驗結果如下。
當駕駛員正常駕駛時,駕駛員的各項顯示正常,旋轉角度也正常,并且給出了safe提示,如圖8所示;當駕駛員出現打哈欠的狀態時,系統檢測到駕駛員出現問題,并且發出警告,如圖9所示;當駕駛員出現轉頭,即檢測到不在正常的視線范圍內的時候,系統會給出danger的警告,如圖10所示。

圖8 正常駕駛結果

圖9 出現打哈欠狀態

圖10 出現轉頭狀態
本文針對駕駛員疲勞問題基于計算機視覺提出了一種新方法,首先利用Dlib構架人臉識別器,繼而利用Dlib官方訓練好的模型進行68點標定,提取出眼部、嘴部、下巴周圍的特征點的坐標,根據雙眼關鍵點計算眼睛縱橫比,類比眼睛縱橫比,提出了一種新的哈欠檢測方法,即嘴部縱橫比。為了進一步判斷駕駛員狀態,本文又加上了對駕駛員注意力的判斷,進一步判斷駕駛員的狀態,如果出現不安全行為,則發出警報提醒。實驗證明,該方法在疲勞駕駛檢測的準確性和實時性方面取得了明顯的性能提升。但是本文在檢測駕駛員夜間行駛時準確率沒有白天時候的高,后續將繼續研究駕駛員在夜間行駛的情況。