孫 玥 楊國為,2 陳雪鑫
(1.青島大學電子信息學院 青島 266071)
(2.南京審計大學信息工程學院 南京 210000)
隨著交通運輸業(yè)的發(fā)展,惡性交通事故頻繁發(fā)生,這對人民的生命財產(chǎn)構(gòu)成了威脅。其中,疲勞駕駛是導致交通事故頻發(fā)的原因之一?,F(xiàn)有的疲勞駕駛檢測算法可根據(jù)疲勞特征分為三類:基于生理特征的算法、基于行為特征的算法和基于視覺檢測的算法。文獻[1~4]提出了一種基于腦電信號(Electro Encephalo Gram,EEG)的睡眠檢測模型。然而,EEG信號易受噪聲影響并且難以收集。EOG(Electro Oculo Gram,EOG)[5~7]比EEG更容易收集,可用于免疫輕微噪音。然而,安裝用于收集的頭部裝置仍然相對麻煩。行為特征包括駕駛?cè)诵袨樘卣骱蛙囕v行為特征,劉洋洋[8]提出的方法雖然可以檢測司機疲勞狀態(tài),但是算法復雜,反映速度慢且識別率低。文獻[9]使用駕駛模擬器來建立模擬駕駛場景。并根據(jù)需要確定要獲得的數(shù)據(jù),以確定車輛是否失控。但會受到路面條件和車輛型號的限制?;谝曈X的方法是通過使用由相機拍攝的圖片來檢測疲勞,以檢測駕駛員是否具有長時間的疲勞狀態(tài)。文獻[10~11]提出了一種基于機器視覺的頭部姿態(tài)估計新方法。這類方法對駕駛員是非侵入式的,更為方便自然,成本也能得到很好的控制。
本文采用計算機視覺的方法首先利用Dlib構(gòu)架人臉識別器,繼而利用Dlib官方訓練好的模型進行68點標定,提取出眼部、嘴部、下巴周圍的特征點的坐標,根據(jù)雙眼關鍵點計算眼睛縱橫比,類比眼睛縱橫比,提出一種新的哈欠檢測方法—嘴部縱橫比,根據(jù)計算結(jié)果判斷駕駛員是否處于瞌睡狀態(tài)和打哈欠狀態(tài),為了進一步判斷駕駛員狀態(tài),本文相比較文獻[12]加上了對駕駛員注意力的判斷,進一步判斷駕駛員的狀態(tài),如果出現(xiàn)不安全行為,發(fā)出預警進行提醒,從而實現(xiàn)駕駛員疲勞及注意力檢測。實驗證明,該方法在疲勞駕駛檢測的準確率、實時性等方面取得明顯的性能提升。
本文提出的基于計算機視覺的疲勞及注意力檢測算法,該算法主要分三個部分:包括根據(jù)雙眼關鍵點計算眼睛縱橫比的瞌睡檢測、根據(jù)嘴部關鍵點計算嘴巴縱橫比的哈欠檢測以及根據(jù)關鍵點估計人臉姿態(tài)的注意力檢測,具體算法流程圖如圖1所示。
圖1 算法流程圖
Dlib庫是一個開源的人臉識別庫,其提供了一個68關鍵點的檢測模型,而且是按照順序排列的,所以,使用時可以方便地找到、調(diào)用需要的關鍵點,模型如圖2所示。
圖2 68點模型圖
本文使用基于Soukupova T[13]提出的眼睛周圍特征點的眼睛縱橫比(EAR)的概念。在Dlib中,左眼和右眼分別對應了6個特征點,圖3中的六個特征點p1,p2,p3,p4,p5和p6是面部特征點中相應眼睛的六個特征點?;谶@6個特征點可以計算眼睛縱橫比EAR來實現(xiàn)眼部疲勞狀態(tài)的判別。
當眼睛打開和關閉時,眼睛特征點之間的關系如圖3中的曲線所示??梢钥闯觯斞劬Υ蜷_和關閉時,縱橫比是不同的。因而ERA在眼睛睜開和閉合時會有不同的數(shù)值范圍,可以根據(jù)ERA的值判斷眼睛是張開還是閉合。
由文獻[13]可以得出眼睛縱橫比EAR的計算公式:
圖3 基于眼睛周圍特征點縱橫比EAR
在檢測到ERA小于0.25時判斷為閉眼狀態(tài),同時開始統(tǒng)計連續(xù)閉眼幀數(shù),普通的眨眼狀態(tài)一般持續(xù)3到5幀,若連續(xù)閉眼幀數(shù)達到20幀則可判定駕駛員處于瞌睡狀態(tài),發(fā)出瞌睡預警,如圖4所示。
鑒于Soukupova T提出的基于眼睛周圍特征點EAR概念的結(jié)果的有效性,本文提出一種用于瞌睡檢測的新方法—嘴部縱橫比MAR(mouth aspect ra?tio)。在Dlib中,嘴對應于20個特征點,類似于瞌睡檢測,如圖5所示。選取其中相應的6個特征點p1、p2、p3、p4、p5、p6,基 于 這6個 特 征 點 可 以 計 算MAR:
縱橫比在嘴巴張開和閉合時會有所不同,因而MRA在嘴巴睜開和閉合時會有不同的數(shù)值范圍,我們可以根據(jù)MRA的值判斷嘴巴是張開還是閉合。
圖4 瞌睡狀態(tài)預警
圖5 嘴部特征點
在檢測到MRA大于0.60時判斷為張口狀態(tài),同時開始統(tǒng)計連續(xù)張口幀數(shù)。普通的講話,驚喜和其他狀態(tài)一般都有少量的連續(xù)幀。若連續(xù)張口幀數(shù)達到15幀即可判定駕駛員處于哈欠狀態(tài),發(fā)出哈欠預警,結(jié)果如圖6所示。
圖6 哈欠狀態(tài)預警
駕駛員的注意力狀態(tài)也是判斷一個駕駛員是否出現(xiàn)問題的重要指標[14]。進行注意力檢測首先根據(jù)眼角、鼻尖、下巴關鍵點估計人臉姿態(tài),然后判斷駕駛員的視線是否超出安全區(qū)域,如果實現(xiàn)超過安全區(qū)域達到指定幀數(shù)10幀時,則判斷駕駛員注意力分散,發(fā)出危險預警。
3.4.1 頭部姿態(tài)估計
近年來,頭部姿態(tài)估計已成為計算機視覺領域的一個重要研究課題,成為疲勞檢測和人臉識別研究的關鍵技術(shù)[15]。許多疲勞檢測系統(tǒng)可以顯示正面圖像的良好識別性能,但是對于越來越多的面部姿勢角度,其識別準確度將嚴重下降。因此,頭部姿勢估計是判斷駕駛員注意力是否集中的重要指標。
在本文中,將二位圖像用于姿勢估計,并且三維標準模型以特定角度旋轉(zhuǎn)直到模型上的“三維特征點”的“二維投影”與待測試圖像上的特征點(圖像上的特征點顯然是二維)盡量重合。然后,基于二維圖像中檢測到的關鍵點估計頭部姿勢。
在精細估計方法中,頭部姿態(tài)估計是三維頭部偏轉(zhuǎn)的精確測量,即頭部偏轉(zhuǎn)角度相對于某個坐標平面的推斷過程。理想情況下,頭部姿勢在三個軸上記為[16]X軸(Pitch方向)的磁頭范圍為-90°~90°、Y軸(Roll方向)的磁頭范圍為-90°~90°、圍繞Z軸(Yaw方向)頭部姿態(tài)范圍為-90°~90°。
利用Dlib獲取的六個人臉關鍵點(鼻尖、下巴、左眼左角、右眼右角、嘴角左側(cè)、嘴角右側(cè))的坐標與三維坐標對照后,估計頭部姿勢,得到的結(jié)果是Yaw,Pitch和Roll三個參數(shù)的結(jié)果。為了便于觀察和處理,將得到的旋轉(zhuǎn)向量進一步轉(zhuǎn)化為四元數(shù),再轉(zhuǎn)化為歐拉角(弧度),最后轉(zhuǎn)化為角度。最終結(jié)果為:X為左右轉(zhuǎn)頭的角度;Y為上下轉(zhuǎn)頭的角度;Z為扭頭的角度。結(jié)果如圖7所示。
圖7 頭部姿態(tài)估計結(jié)果
3.4.2 視線范圍檢測
基于視頻圖像處理的視線檢測方法因具有廣闊的發(fā)展前景并且越來越受到很大的重視。
本文設置左眼角p1、右眼角p2、下巴p3三個關鍵點的位置坐標,據(jù)此計算出視線安全區(qū)域的左上角p4、右下角p5的坐標,從而可以得到視線安全范圍。當視線連續(xù)超出該范圍達到10幀時,判定為注意力分散,發(fā)出危險預警。
實驗里用的視頻數(shù)據(jù)庫來自于YawDD數(shù)據(jù)庫,數(shù)據(jù)庫中的視頻,男女駕駛者被要求坐在汽車的駕駛座。該視頻是真實的和變化的照明條件。數(shù)據(jù)庫中包含兩個數(shù)據(jù)集,在第一個數(shù)據(jù)集中,攝相機安裝在車的前視鏡下面。每個參與者有三個或四個視頻,每個視頻包含不同的嘴巴狀態(tài)如正常、說話/唱歌和打哈欠。在第二個數(shù)據(jù)集中,攝像機安裝在駕駛員前面的儀表板上,并且每個參與者在同一視頻中具有不同嘴部狀態(tài)的視頻。
對視頻中的數(shù)據(jù)進行檢測,運用本文提出的疲勞及注意力檢測算法,實驗結(jié)果如下。
當駕駛員正常駕駛時,駕駛員的各項顯示正常,旋轉(zhuǎn)角度也正常,并且給出了safe提示,如圖8所示;當駕駛員出現(xiàn)打哈欠的狀態(tài)時,系統(tǒng)檢測到駕駛員出現(xiàn)問題,并且發(fā)出警告,如圖9所示;當駕駛員出現(xiàn)轉(zhuǎn)頭,即檢測到不在正常的視線范圍內(nèi)的時候,系統(tǒng)會給出danger的警告,如圖10所示。
圖8 正常駕駛結(jié)果
圖9 出現(xiàn)打哈欠狀態(tài)
圖10 出現(xiàn)轉(zhuǎn)頭狀態(tài)
本文針對駕駛員疲勞問題基于計算機視覺提出了一種新方法,首先利用Dlib構(gòu)架人臉識別器,繼而利用Dlib官方訓練好的模型進行68點標定,提取出眼部、嘴部、下巴周圍的特征點的坐標,根據(jù)雙眼關鍵點計算眼睛縱橫比,類比眼睛縱橫比,提出了一種新的哈欠檢測方法,即嘴部縱橫比。為了進一步判斷駕駛員狀態(tài),本文又加上了對駕駛員注意力的判斷,進一步判斷駕駛員的狀態(tài),如果出現(xiàn)不安全行為,則發(fā)出警報提醒。實驗證明,該方法在疲勞駕駛檢測的準確性和實時性方面取得了明顯的性能提升。但是本文在檢測駕駛員夜間行駛時準確率沒有白天時候的高,后續(xù)將繼續(xù)研究駕駛員在夜間行駛的情況。