王子純 方嬌 邱敏霞 李鑫 楊雪



摘? ?要:隨著我國經濟的快速發展,汽車持有量逐年增加,與之相關的交通安全問題也日益突出,而疲勞駕駛是造成交通事故的主要因素之一。因此,關于疲勞駕駛的檢測和預防成為現主要階段研究的內容,包括對人臉進行檢測定位、識別并判斷眼睛狀態從而判斷駕駛人是否疲勞。目的在于用非接觸式的設備實時監測駕駛人的生理狀態并分析,有效檢測出駕駛員的疲勞狀態,以大大降低事故發生的概率,對解決當下交通安全問題有十分重要的現實意義。
關鍵詞:疲勞駕駛;人臉檢測;眼睛狀態;模板匹配;眨眼頻率
1? ? 國內外研究現狀
隨著社會經濟的發展,汽車已成為人們日常生活中不可或缺的交通工具,由汽車引起的交通事故也逐漸增多。根據世界衛生組織(WTO)2014年發布的《世界預防道路交通安全傷害報告》相關數據顯示,疲勞駕駛在十大“影響交通事故發生的危險因素”中高居第3位。在我國,依據公安部交通管理局提供的數據,每年約有9 000人死于疲勞駕駛。疲勞駕駛被列為繼超速行駛、酒后駕車之后引發道路交通事故的又一主要原因[1]。
駕駛員處于疲勞狀態的主要表現為反應遲鈍、思考能力與判斷能力下降、視線模糊、注意力下降、眨眼頻率加快等。疲勞時駕駛員動作失調,容易造成車輛失控,影響其他車輛駕駛、阻礙交通運輸,大大增加了意外發生的可能性。因此,駕駛員疲勞狀態的實時監測對降低事故發生的概率和解決交通安全問題都有十分重要的現實意義。
1.1? 國外研究現狀
(1)三菱的高級安全車通過測量方向盤及車輛運行過程中的相關參數,判斷駕駛員的疲勞情況[2]。(2)日本東風日產汽車研究實驗室設計出了駕駛員瞌睡檢測裝置[3]。該裝置通過判斷駕駛員眼睛的開閉狀態,計算統計一定時間內的眨眼次數從而判斷駕駛員的疲勞水平。
1.2? 國內研究現狀
(1)浙江大學研究的駕駛員防瞌睡裝置[4],基于灰度投影的人眼定位,用邊緣檢測的方法對眼睛開閉狀態進行判斷,分析駕駛員當前的生理狀態。
(2)鄭州的工程師董世衍研制了一種防止駕駛員打瞌睡的報警系統[5]。裝置主體是眼睛框架,通過紅外線技術測試人眼的運動變化,由傳感器將采集到的變化信息傳送到主機,使其分析并報警或進行剎車操作。
2? ? 人臉檢測與眼睛定位
在疲勞駕駛檢測技術中,要對圖像中駕駛員的面部進行定位,以便進行下一步的眼睛定位。人臉的檢測與眼睛定位過程如圖1所示。
2.1? 人臉檢測與定位方法
人臉檢測算法的本質就是確定一幅圖像中是否有人臉存在,進而確定人臉在整幅圖像中的位置。本文主要采用基于特征的人臉檢測法,通過從處理后的圖像中提取出某些特征與人臉特征進行對比,從而判斷某一區域是否為人臉?;具^程為建立樣本庫,提取特征,訓練分類器,獲取視頻,檢測人臉,人臉跟蹤。
人臉定位與跟蹤使用KTL(Kanade Lucas Tomasi Tracking)算法[6],算法假設檢測目標在視頻中只產生小位移,并且目標的灰度變化不大[7]?;贙LT跟蹤算法的過程如圖2所示。
支持向量機(Support Vector Machine,SVM)是一種應用統計理論開發的新的學習機器[8],被廣泛應用于數字識別、人臉檢測識別等領域,是一個具有稀疏性和穩健性的分類器,可以進行非線性分類,其核心思想是:首先,將原始數據通過某個非線性映射嵌入到合適的高維特征空間中;其次,利用普通線性學習器對新空間中的模式進行分析和處理。訓練好SVM后就可以根據相關特性進行人臉定位。
2.2? 人眼定位方法
KLT算法和支持向量機可得到人臉的相關特征,面部位置確定后,開始定位眼睛。在眼睛定位時,本文使用Matlab工具箱中的vision包檢測,檢測器使用提琴瓊斯檢測算法和檢測訓練分類模型。采用SVM方法采集眼睛樣本和非眼睛樣本,其中,x表示眼睛向量,通過多次訓練得到分類向量W和常數b。對眼睛進行檢測的公式[9]為:
若f(x)的值大于0,則表示此模塊為眼睛模塊。
眼睛跟蹤同樣使用KLT算法,但是當相鄰兩幀的圖像中眼睛位移偏大或特征點被遮擋時,眼睛可能會跟蹤失敗。對此,將在下一步的研究學習中進行相關算法的改進。
3? ? 眼睛狀態識別與疲勞判斷
為了檢測駕駛員的疲勞程度,先要識別駕駛員的眼睛狀態,即判斷眼睛的睜閉情況。本文主要采用模板匹配法進行眼睛狀態的識別,并與眨眼頻率相結合的方法對駕駛員疲勞狀態進行檢測。
3.1? 眼睛狀態識別方法
模板匹配法給出了眼睛的3個狀態模板,分別是“睜”“閉”“半睜半閉”模板,還包括定義好的固定狀態模板。處理視頻流后,系統會把采集到的眼睛模塊與固定模板進行比較,以模板相似度的最大值來決定眼睛的狀態。此外,還有一種更靈活的可變模板,可以根據不同圖像生成不同的狀態模板,識別更準確,但是過程比較復雜,可進行更深入的研究。模板匹配計算相關系數[10]的公式如下:
其中,T為模板,S為待搜索圖像。式中第二項反映了模板與圖像的相關性,當模板與圖像匹配時,該項有最大值。將其歸一化,得到的相關系數如下。
當模板與圖像匹配時,找出R的最大值,其對應的S(i,j)為匹配目標。
眼睛的閉合程度可以通過邊緣復雜度法來計算,先要進行邊緣提取。本文采用Sobel 算子[11],本質是反映相鄰或相距一定距離的像素點的灰度差異特征,可得到邊緣的梯度方向信息,具有較強抑制噪聲的能力,計算簡單,易于實現。計算眼睛邊緣復雜度公式如下:
其中,含左右眼睛的圖像大小為 m×n,b(i, j)為二值圖中的 0或1,a,b為調整權重。如果眼睛區域復雜度較大,說明眼睛為開眼,否則為閉眼。
3.2? 判定疲勞算法
眨眼是眼睛從睜開到閉合再睜開的過程。正常情況下,人的眼睛每分鐘10~15次,平均眨眼間隔4~5 s,眨眼持續時間在大多數情況下都可以有效判斷疲勞[12]。基于眼睛狀態識別,可以判斷出每幀圖像眼睛的睜閉狀態。當前后兩幀圖像左右眼的狀態相同,且分別為睜眼和閉眼時,可以定義為進行了一次眨眼。在1 min的時間內統計眨眼次數n,計算頻率m,與定義好的閾值T進行比較。
4? ? 研究結果
4.1? 特征提取與睜閉眼的識別結果
基于相關人臉檢測與跟蹤算法,運行后的仿真結果如圖3所示。在實際使用過程中,劉海和眼鏡邊框等相關因素會對眼部特征的提取產生影響,可能還會出現使用者面部側偏等情況。
4.2? 疲勞狀態判斷
本課題在PC機上進行了仿真模擬,利用攝像頭采集實驗者圖像,進行人臉以及眼睛的識別定位,通過相關算法判別眼睛的狀態并計算眨眼頻率,從而判斷使用者是否處于疲勞狀態。圖4為實現仿真分析的程序界面。
5? ? 結語
為了完成基于眨眼檢測的駕駛員疲勞檢測技術的實現,本文做了大量的調查研究工作,學了各種相關知識與算法。利用攝像頭采集實驗者圖像,之后進行人臉以及眼睛的識別定位,通過相關算法判別眼睛的狀態并計算眨眼頻率,從而判斷使用者是否處于疲勞狀態。
[參考文獻]
[1]郝王蕾.基于人眼特征的駕駛員疲勞檢測技術的研究與實現[D].沈陽:東北大學,2011.
[2]黃雄.基于人眼檢測的疲勞駕駛預警研究[D].蕪湖:安徽工程大學,2015.
[3]PHILIPPA H G,NATHANIEL S M,IAN J,et al.Investigating driver fatigue in truck crashes:trial of a systematic methodology[J].Transportation Research Part F:Psychology and Behaviour,2005(1):112-114.
[4]李峰,曾超,徐向東.駕駛防瞌睡裝置中人眼快速定位方法研究[J].光學儀器,2002(4):70-72.
[5]王華容.道路交通心理學中的眼動研究[C].北京:第八次全國心理衛生學術大會論文匯編,2015.
[6]陳瑜,李錦濤,徐軍莉,等.基于眼動特征的駕駛員疲勞預警系統設計[J].軟件導刊,2020(3):1-4.
[7]趙團.基于計算機視覺的駕駛員疲勞檢測技術的研究與實現[D].沈陽:東北大學,2010.
[8]宋普云.虹膜識別系統與支持向量機算法研究[D].天津:河北工業大學,2003.
[9]謝秀珍.基于機器視覺的駕駛員疲勞檢測研究[D].長沙:中南大學,2010.
[10]郝王蕾.基于人眼特征的駕駛員疲勞檢測技術的研究與實現[D].沈陽:東北大學,2011.
[11]ZHICHAO T,HUABIAO Q.Real-Time Drivers Eye State Detection[J].IEEE,2005(4):285-289