王富強,劉德勝,劉云鵬
(佳木斯大學信息電子技術學院,佳木斯154007)
隨著社會經濟的快速發展,汽車已經成為常用的交通工具之一,我國機動車擁有量已達到歷史新高[1]。汽車及駕駛者數量的劇增雖然提升了出行的便利性,但也造成了交通事故的激增、環境污染等一系列負面問題,給社會造成了不可忽視的損失。據公安部統計截至2020 年9 月9,我國機動車保有量已達3.65 億輛,汽車駕駛人4.1 億人,每年仍以10%左右的速度在快速增長。隨著機動車擁有量的增加,引發了一系列問題,其中最突出的就是疲勞駕駛[2]。近年來由于司機疲勞駕駛導致的交通事故已占所有交通事故的30%-40%,尤其在高速上,疲勞駕駛引起的交通事故高達40%以上,近幾年來疲勞駕駛已經成為軌道交通安全領域的研究熱點[3]。
疲勞駕駛檢測方法主要有主觀檢測和客觀檢測兩種方法,主觀檢測主要通過駕駛員自我評估來鑒定自己的疲勞狀態。客觀檢測主要包括基于生理信號的檢測(腦電信號、眼電信號、肌電信號等)[4-5]、基于駕駛行為的檢測(方向盤轉角、車道偏移量等)[6]和基于圖像的駕駛檢測方法(駕駛員面部表情等)[7]。其中,基于生理信號的檢測方法是一種接觸式檢測方法,對駕駛員的正常駕駛有一定的干擾,目前只應用于理論研究。基于駕駛行為的檢測方法由于駕駛員個體差異、駕駛水平、道路情況不確定等因素,對識別結果影響比較大。基于圖像的駕駛檢測方法是一種非接觸式的檢測方式目前被廣泛采用。曹昱聰等人提出了一種基于駕駛員眼睛開度信息和頭部姿態的疲勞駕駛檢測系統,此方法雖然提高了檢測的準確性,但未對駕駛員疲勞狀態進行分類[8]。史瑞鵬等人提出了一種基于卷積神經網絡的疲勞駕駛檢測方法,該方法在現實環境下測試,準確率達到了96%以上且具備良好的實時性[9]。本文通過駕駛模擬實驗,利用攝像頭采集的實時視頻,提取駕駛員眨眼頻率、閉眼百分率、打哈欠頻率,提出利用支持向量機的方法,實現各特征參數的融合,在現實環境下測試平均準確率達到了90.4%,且具有良好的實時性。
本次疲勞駕駛模擬實驗共招募十名駕駛員,其中五名男性,五名女性,其中有兩名男性一名女性駕駛員佩戴眼鏡,年齡分布在25-50 歲之間的健康駕駛員,通過卡羅林斯卡睡眠尺度表(Karolinska Sleepiness Scale,KSS)駕駛員進行疲勞測試,通過疲勞測試將駕駛員分為四種狀態,分別為清醒、輕度疲勞、中度疲勞、重度疲勞[9]。
閉眼百分率(Percentage of EyeIid CIosure over the PupiI over Time,PERCLOS)單位時間內眼睛閉合一定比例所占的時間。圖1 為駕駛員在不同疲勞程度下閉眼百分率箱型圖。通過研究發現,閉眼百分率與疲勞程度呈正相關,說明閉眼百分率是隨著疲勞程度的加深而逐漸增大。

P80為常用的PERCLOS 計算標準,是指單位時間內眼睛閉合度大于80%所占的比例。
P80計算公式為:

式中:f0為樣本采樣頻率;TP80為P80的計算時窗大小;np為單位時窗內眼睛閉合度超過80%的次數。
np的計算公式為:

式中:LELi為第i 幀圖像的左眼上下眼瞼的距離,RELi為第i 幀圖像的右眼上下眼瞼的距離,Lavg為駕駛員左眼上下眼瞼的平均距離Ravg為駕駛員右眼上下眼瞼的平均距離。
由于駕駛員之間存在個體差異,對此對每位駕駛員提取清醒狀態下眼瞼尺寸50 組并計算Lavg和Ravg:

眨眼頻率(Blink Frequency,BF)即單位時間內眨眼的次數。圖2 為駕駛員在不同疲勞程度下的眨眼時間箱體圖。通過研究發現駕駛員在進入中度疲勞之前,駕駛員的眨眼時間沒有明顯的變化趨勢,但在駕駛員進入中度疲勞之后,駕駛員的眨眼時間明顯增加,并且出現了長時間閉眼[10]。

圖1 駕駛員在不同疲勞程度下的閉眼百分率
第j 個時窗內BF 的計算公式為:

式中:BTej為第j 時窗結束時的總眨眼次數;BTsj為第j 個時窗開始時的總眨眼次數;Tbf為計算BF 的時窗長度。

圖2 駕駛員在不同疲勞程度下的眨眼時間
在正常駕駛中駕駛員存在與其他乘客進行交談的情形,為了避免將駕駛員說話和駕駛員打哈欠進行誤判,通過實驗數據分析,最終確定打哈欠閾值為0.8,即當e>0.8 時嘴部處于打哈欠狀態。打哈欠頻率計算公式為:

其中T 為時間窗長度。
圖3 為嘴巴閉合狀態,圖4 為正常說話狀態,圖5為打哈欠狀態。

圖3 嘴巴閉合狀態

圖4 正常說話狀態

圖5 打哈欠狀態
支持向量機(Support Vector Machine,SVM)是一種二分類模型,它的基本模型是定義在特征空間上的間隔最大的線性分類器。目前被廣泛應用于模式識別等領域[11]。
在疲勞駕駛檢測中,PERCLOS、眨眼頻率、打哈欠頻率這三個參數是最具有代表性,選取PERCLOS、眨眼頻率、打哈欠頻率3 個參數構成特征參數作為SVM模型的輸入
核函數的選擇對SVM 模型的訓練分類準確率起著決定性的作用,核函數的選擇決定著模型的好壞。常用的核函數主要有徑向基核函數(高斯核函數)、線性核函數、Sigmoid 核函數和字符串核函數。徑向基核函數在疲勞駕駛分類方面有明顯的優勢,因此本算法選擇徑向基核函數。
從拍攝的駕駛視頻中隨機選擇清醒、輕度疲勞、中度疲勞、重度疲勞樣本分別2500 組作為訓練集。
測試集為剩余的清醒、重度疲勞分別1500 組,輕度疲勞、中度疲勞1600 組,將測試集輸入構建的SVM模型進行測試。圖6 為閉眼百分率測試部分示例數據,總體測試結果如表1 所示。

圖6 閉眼百分率測試結果部分示例

表1 SVM 模型輸出結果
由表1 可以看出。該模型可以正確識別出清醒、輕度疲勞、中度疲勞、重度疲勞四種狀態,識別總體準確率為90.4%,輕度疲勞和中度疲勞特征不是特別明顯,識別的準確率分別為84.6%、82.8%。各特征在最優時窗內計算,確保了模型的實時性。
本文提出一種基于面部特征的疲勞駕駛檢測方法,通過對人臉關鍵點的標定來確定閉眼百分率、眨眼頻率、打哈欠頻率,構建了基于特征參數的SVM 分類模型,通過2500 組訓練樣本試驗,結果表明,該算法在駕駛員即使佩戴近視眼睛的情況下也檢測出駕駛員的疲勞狀態,算法具有良好的實時性和準確性。