曲仕茹,彭紀昌
(西北工業大學自動化學院,陜西西安 710072)
隨著我國經濟建設的蓬勃發展,城市的人口和機動車保有量也在急劇增長,交通流量日益加大,交通擁擠堵塞現象日益趨于嚴重,交通事故時有發生,交通安全問題更是嚴重威脅著人們的生命財產安全。駕駛員的疲勞駕駛已經成為造成交通死亡事故的重要原因,因此,開發出一種駕駛員疲勞檢測和警示系統來避免由于駕駛員因疲勞而導致的交通事故很有必要[1]。
目前,利用駕駛員視覺信息進行疲勞檢測方法主要有以下幾種:1)頭部位置監測方法;2)眼部狀態監測方法;3)瞳孔特征監測方法;4)視線跟蹤監測方法;5)嘴巴狀態監測方法[2]。上述這些方法通常關注于單一的視覺特征,雖然能較成功地運用計算機視覺技術提取駕駛員的視覺特征信息,但其準確性、實用性不高。例如:當駕駛員帶著墨鏡時,使用單一的眼睛特征便很難得到正確的結果。如果能將這些方法系統地組合使用就能得到準確的結果,多個視覺特征的融合已經成為疲勞駕駛檢測的一種發展趨勢。
本文設計了一種融合眼睛和嘴巴2個疲勞特征的檢測方法,最終通過實驗得出該檢測算法較單一疲勞特征的檢測算法有更高的檢測率和更好的檢測效果。
系統總體流程可以描述為:首先,通過攝像頭動態獲取駕駛員的圖像,將駕駛員圖像數據傳送到系統的存儲器中;然后,通過人臉檢測算法定位出其中的人臉圖像,經過運算處理得到人眼圖像并判斷其狀態;最后,通過疲勞檢測算法判定駕駛員是否疲勞[3]。為了實現這些功能,系統除了基本的接口單元,還需要一些必要的儲存空間擴展和輔助的資源。概況地說,系統主要包括圖像傳感器、液晶顯示屏、外擴存儲器以及帶有嵌入式處理器的現場可編程門陣列(FPGA)系統版。FPGA芯片集成相應的NiosⅡ軟核處理器,將部分圖像處理算法在FPGA內部以硬件的形式實現,將其余的算法通過NiosⅡ軟核處理器通過軟件來實現,系統的結構框圖如圖1所示。

圖1 疲勞檢測系統流程圖Fig 1 Flow chart of fatigue detection system
本文設計的檢測算法需要通過檢測人眼和嘴巴的狀態來進行疲勞的判定。人眼和嘴巴定位的基本方法是先確定人臉大致位置,再定位人眼和嘴巴。本文改進了一種人眼和嘴巴的定位方法,首先將提取出的人臉圖像利用圖像的垂直灰度積分投影曲線,根據凸峰寬度確定人臉的左右邊界,然后利用人臉區域的水平灰度積分投影曲線確定眉眼區域和嘴巴區域形成的波谷,將人臉圖像的范圍縮小在雙眼區域和嘴巴區域,如圖2。

圖2 灰度投影用于區分人臉的左右邊界Fig 2 Gray projection used for distinction of left and right borders of face
根據圖像預處理模塊得到人臉二值化的圖像,設圖像為I(x,y),其大小為W×H,則該圖像的垂直灰度投影函數為

式中PW稱為垂直灰度投影曲線。為了去除噪聲的影響,平滑處理函數為

式中K為濾波窗口的寬度,其取值與人臉圖像大小有關,本文中K取值為8。以圖中的人臉圖像為例,其平滑前后的垂直灰度投影曲線如圖3所示。
確定了人臉的左右邊界之后,需要確定眼睛和嘴巴的水平位置,設人臉左右邊界寬度為w,則此時的圖像大小為w×H,同樣對該圖像區域的水平灰度投影函數為

圖3 人臉垂直灰度投影曲線Fig 3 Vertical gray projection curve of face

式中PH稱為水平灰度投影曲線。為了去除噪聲的影響,采用與式(2)類似的方法對PH進行平滑

L的取值跟人臉在圖像中的大小有關,實驗中取L=8。以圖2的人臉圖像為例,平滑后的水平灰度投影曲線如圖4。

圖4 人臉水平灰度投影曲線Fig 4 Horizontal gray projection curve of face
如圖5所示,算法可以準確地檢測出人的眼睛和嘴巴的位置,并且可以進一步提取出眼睛和嘴巴的寬度和高度(以像素為單位),求出寬高比,為下文眼睛和嘴巴狀態的確定打下基礎,進而完成疲勞的判定[4,5]。
人在有明顯疲勞癥狀時眨眼持續時間明顯增大[6],根據實驗數據繪出的眼睛寬高比曲線圖如圖6(a),(b)所示,由不疲勞狀態進入疲勞狀態的眨眼持續時間如圖7所示。
疲勞發生時眨眼速度明顯變慢,在不疲勞階段眼睛“開—閉—開”的過程只需要幾幀到十幾幀的時間,時間在0.5 s以內,而疲勞時則需要10幀或以上的時間,即需要0.5 s以上,而在不疲勞的時候,眨眼持續時間也有可能在0.5 s以上,但是卻不會長時間持續,如圖7中的t3,t4時刻。

圖5 提出的眼瞼和嘴巴圖像Fig 5 Extracted eyelids and mouth image

圖6 眼睛寬高比變化曲線Fig 6 Aspect ratio variation curve of eye

圖7 眨眼持續時間變化曲線Fig 7 Curve of blink duration
實驗是在室內模擬駕駛條件下進行的,被測者頭部放松左右旋轉不超過15°,無大幅度的左右前后移動;實驗結果如表1所示。實驗結果顯示眨眼頻率高于20次/min,或者眨眼持續時間大于0.5 s以及打哈欠頻率大于2次/min,即可判斷屬于疲勞。如圖8所示,當系統判定為疲勞狀態時,通過LED燈的點亮與蜂鳴器的不斷蜂鳴提醒駕駛員不要疲勞駕車。從實驗結果可以看出:系統可以檢測出所有的疲勞狀態,在實驗條件下檢測效率為100%。

表1 實驗一結果(部分檢測數據)Tab 1 Results of the first experiment(partial detection datas)

圖8 疲勞檢測Fig 8 Fatigue detection
正常狀態下的系統實驗已經完成。考慮到在實際應用的過程中可能會出現的一些特殊狀態。本文設計了一組特殊狀態下的實驗,在這組實驗中被檢測樣本通過佩戴墨鏡,來進行對疲勞的檢測,通過該組實驗驗證多特征融合系統的檢測優勢。
當被檢測樣本佩戴墨鏡時,相應的疲勞特征就無法檢測出來,本文所設計系統融合了眼睛和嘴巴2種疲勞特征可以通過另外的疲勞特征進行疲勞的判定。如圖9(a)中圖當駕駛員眼睛有遮擋物體無法檢測到駕駛員的眼睛狀態,而在圖4(b)使用本文所設計的多特征融合的疲勞檢測算法,通過檢測駕駛員的打哈欠頻率輔助進行疲勞的判定對比檢測結果如表2,成功地檢測出了駕駛員的疲勞狀態。

圖9 對比檢測Fig 9 Contrast detection
本文設計了一種多特征融合來進行疲勞檢測的檢測算法,并且在FPGA上進行了實現。該檢測算法檢測速度較快、抗干擾性強,滿足全天候的車載使用要求。從實驗結果可以看出:本文所設計的基于多特征融合的疲勞檢測算法,較之傳統的單一特征疲勞檢測算法擁有更高的檢測率、抗干擾能力更強。

表2 實驗結果Tab 2 Experimental results
[1] 黃博學.汽車駕駛員疲勞實時識別與監測系統研究[D].長沙:長沙理工大學,2008.
[2] 張 恒,劉艷麗.基于視覺信息融合的駕駛員疲勞監測方法綜述[J].信息技術,2008(6):8-11.
[3] Meyer-Baese U.Digital signal processing with field programmable gate arrays[M].3rd ed.New York:Springer Berlin Heidelberg,2007.
[4] Dai J,Zhang J.Information fusion system with wireless transmission for monitoring the status of driver[C]∥2007 The Second IEEE Conference on Industrial Electronics and Applications,2007:2670-2673.
[5] 吳康華.基于PERCLOS的駕駛疲勞檢測系統設計[D].杭州:浙江大學,2008.
[6] Viola P,Robust J M.Real-time object detection[J].International Journal of Computer Vision,2004,57(2):137 -154.