陳莉莉,劉 翔,唐家勛,陳俊廷
(上海工程技術大學電子電氣工程學院,上海 201620)
疲勞駕駛是導致交通事故頻發的重要原因之一,每年約有20%的交通事故是由疲勞駕駛引起的[1]。目前可以通過主觀疲勞檢測和客觀疲勞檢測方法評價當前駕駛員的精神狀態。主觀疲勞檢測以問卷形式要求駕駛員進行自我評估,結果缺少客觀性。而客觀疲勞檢測是從駕駛行為、生理信號和面部視覺信息等方面入手研究,由于面部視覺信息易于采集且具有非侵入性[2],越來越多的學者在這方面展開疲勞駕駛的研究,常用的疲勞特征有眼睛和嘴巴的開合狀態[3~4]、眨眼[5]和打哈欠頻率[6]等,文獻[6~9]以在面部表情檢測中常用的運動單元(Action Unit,AU)[10]作為特征檢測駕駛員的疲勞狀態。為了能夠更準確地評價駕駛員的狀態,需要提取更多的特征來綜合表征疲勞,但特征提取的越多,越有可能會帶來相同甚至無用的信息,即冗余特征和無關特征,最終影響模型泛化能力[11]。因此,當利用高維特征綜合檢測駕駛員疲勞狀態時,在不影響模型準確率的前提下降低特征維度具有現實意義。特征選擇是一種有效的降維方式,被廣泛應用于機器學習和模式識別等領域。基于互信息(MI)的特征選擇方法[12]常被用來對高維數據進行特征選擇,該方法能夠從全局上衡量特征和類別之間的相關性,互信息值越高,則該特征與類別的相關性越顯著,但缺乏對特征與特征之間相關性的研究,會帶來較大的冗余性。FCBF特征選擇算法[13]能夠通過計算對稱不確定性去除冗余特征,但會出現過度刪減特征的極端情況,影響分類精度。
本文結合面部動作單元和頭部姿態作為疲勞指標,分別提取這兩種指標的8種數學統計量作為疲勞特征。提出MI-FCBF特征選擇算法,通過計算互信息和對稱不確定性,排除無關特征和冗余特征,并增加自定義特征維度參數,避免出現被保留下的特征過少影響疲勞檢測精度的情況,本文的系統流程如圖1所示。

圖1 本文系統流程圖
本文采用動作單元AU和頭部姿態兩種維度的視覺信息綜合表征疲勞狀態,具體選擇文獻[8]中提出的5種最具疲勞特性的AU和3個頭部歐拉旋轉角即滾動角(Roll)、平動角(Yaw)以及轉動角(Pitch)作為疲勞指標。采用OpenFace面部行為分析工具[14]提取動作單元AU和頭部姿態角。為了得到更深度的疲勞信息,本文在每個動作單元AU和頭部姿態的指標下分別提取8個常用的統計量作為最終的疲勞特征,如表1所示。

表1 選取的疲勞指標
高維度特征可以更細致的評估對象,但同時也可能會帶來計算量增大、模型復雜以及存在大量冗余信息的問題。而特征選擇算法可以通過評估原始數據集中所有特征的重要程度,舍棄無關和冗余的特征,以保留有效的特征子集,在不影響分類算法準確率的前提降低原始數據的特征維度。
信息熵能夠表征數據集中元素之間依賴關系的強弱。設不同類別的概率是P(c),其中C表示類別,m表示類別數,則C的熵可以表示為:

已知特征f后類別c的不確定性由條件熵表示為:

其中n表示第n個特征,m表示類別數,P(f)是特征f的概率,P(c | f)是給定特征f時類別c的條件概率。
特征與類別之間相互依存關系的強弱可以用互信息刻畫,互信息值越大,則說明特征與類別的相關程度越高。互信息可以通過上述式(1)、式(2)表示為:

FCBF是一種過濾性特征選擇算法,該算法以對稱不確定性(Symmetrical uncertainty,SU)作為特征間冗余性的衡量標準[13]。如果一個特征與類別之間的對稱不確定性高,且與其他已選特征之間的對稱不確定性低,則將該特征被保留,否則剔除。
當變量Y出現時變量X信息熵的變化量稱為信息增益,表示為:

由此對稱不確定性可表示為:

SU(X,Y)的值域為(0,1),SU越大,表示兩個隨機變量 X、Y 之間的相關性越大。當SU(X,Y)=0時,表示兩個隨機變量X、Y不相關;反之,當SU(X,Y)=1時,表示隨機變量X、Y完全相關。
MI-FCBF算法首先利用特征與類別之間的互信息,從整體上把握特征對于分類效果的顯著性,再通過對稱不確定性進一步研究特征之間的冗余性,實現一種兩階段的特征選擇方法。同時加入了能夠自定義的特征維度參數,避免特征被過度刪減影響分類效果,使得特征選擇更具可靠性,算法流程如圖2所示。

圖2 MI-FCBF算法流程圖
定義1:MI-FCBF的特征選擇算法矩陣,可以表示為二元組D:(Fn,Cm)。其中Fn表示數據集中包含n維特征,Cm表示該數據集分為m類。
定義2:MI-FCBF算法中的互信息值W,初始特征子集S,初始特征子集維度為M_1。將所有互信息值按照大小進行降序排列,選取前M_1個互信息值所對應的特征作為初始特征子集S。
定義3:MI-FCBF算法中的對稱不確定性SU(Fn,Cm),最優特征子集S_best,自定義最優特征子集維度參數為M_2。任何一個特征Fi與類別之間的關系記為SUFi,C;任意兩個不同特征Fi與Fj之間的關系記為SUFi,Fj,其中0≤i≤n-1,0≤j≤n-1,且i≠j。如果SUFi,Fj≥SUFi,C,則在初始特征子集S中移除特征Fj,并將Fi添加進最優特征子集S_best。
輸入:數據集D,參數M_1,M_2。
輸出:最優特征子集S_best
1)輸入數據集D,特征維度為n。
2)計算數據集D上每維特征與類別的互信息值,并以此對所有特征按照降序的方式排列。通過改變特征維度M_1并比較分類模型的評估指標,得到初始特征子集S。
3)輸入初始特征子集S,計算S中特征與類別的對稱不確定性的SUFi,C和特征與特征之間的SUFi,Fj,按照定義從初始特征子集S中刪除冗余特征,并將非冗余特征添加進最優特征子集S_best。
4)若最優特征子集S_best的維度大于或等于M_2,則直接輸出S_best;若S_best的維度小于M_2,則在被刪除的特征中選擇SUFiC的最大值所對應的特征并加入到S_best中,直至S_best的維度等于M_2。
5)輸出最優特征子集S_best。
環境:算法使用python3編寫,計算機系統為Win7(64位),CPU為Intel i3,內存為4GB。
數據集:NTHU Drowsy Driver Detection(DDD)數據集[15]是通過紅外攝像頭拍攝的36名受試者在清醒和疲勞狀態下的駕駛視頻,這些受試者來自不同的種族,年齡在18到40歲之間,分別在白天和夜晚進行拍攝。本文選取105段疲勞駕駛視頻和105段清醒的駕駛視頻作為實驗的數據集,每段視頻長度為10秒,視頻幀率為30fps。
實驗評估指標使用查準率P、查全率R和F1值,表2為指標矩陣。

表2 指標矩陣
根據表2,分別給出了P、R和F1的計算公式:

F1值能夠綜合衡量查準率和查全率,實驗采用F1值作為主要性能評價指標。
為了能夠客觀反映實驗效果,本文選擇KNN、SVM和AdaBoost三種分類器對數據集進行實驗,并采用十折交叉驗證法將數據集隨機分組,由于每次實驗時分得的訓練集和測試集可能有所不同,本文在實驗過程重復進行10次十折交叉驗證,再求其指標的均值,作為對實驗的綜合評估。
4.4.1 MI-FCBF算法參數選擇
1)通過實驗并結合KNN、SVM和AdaBoost分類結果確定MI-FCBF特征選擇算法的參數M_1。根據MI-FCBF算法中的互信息公式計算各個特征與類別的互信息值,將所有特征按互信息值進行降序排列,通過依次擴大特征維度的方式,觀察三種分類方法的F1值,如圖3所示。

圖3 特征維度和F1值的關系
從圖3中可以看出,三種分類器的F1值均大于80%,說明面部動作單元AU和頭部姿態角能夠較好的表征疲勞狀態。隨著特征維度的增加,AdaBoost分類算法的F1值總體上都優于KNN和SVM,比KNN算法平均高出4.36%,比SVM算法平均高出4.83%,說明數據集在AdaBoost分類器上展現了更好的性能。當特征維度小于45時,三種分類器的F1值總體呈上升趨勢,當特征維度為45時,F1值均達到一個峰值,當特征維度大于45時,F1值均呈現下降的趨勢,說明后加入的特征對提升F1值的作用不大,可將其視為不相關或相關性較小的特征而刪除。因此本文將初始特征子集S的維度定為45,即M_1=45。
2)為了研究MI-FCBF算法中最優特征子集的維度參數M_2與疲勞檢測精度的關系,本文將M_2分別設定為5、10、15、20、25、30、35、40和45,觀察KNN、SVM和AdaBoost三種算法在不同最優特征子集維度下的準確率P、召回率R和F1值,結果如表3所示。
由表3可以看出,MI-FCBF算法在第二階段對從上一階段獲得的45個初始特征再次選出最優特征子集,隨著最優特征子集維度的增大,三種分類算法的查準率P、查全率R和F1值基本呈現出先升高后下降的趨勢,當最優特征子集維度M_2為5時,各個算法所達到的檢測效果與特征維度為45時相差不大,均達到了90%以上,表明本文提出的MI-FCBF特征選擇算法能夠在降低特征維度的同時還保持較高的分類效果。由于Adaboost算法在查準率P,查全率R和F1值三個指標上明顯優于其他兩種分類器,因此本文選擇Adaboost算法進一步研究。

表3 不同最優特征子集維度下的疲勞檢測結果比較
4.4.2 實驗對比結果
為驗證本文提出的MI-FCBF特征選擇算法的有效性,通過單獨使用MI特征選擇算法、單獨使用FCBF特征選擇算法和不使用特征選擇(特征維度為64)的方法在不同特征維度上進行對比實驗,并均采用AdaBoost作為分類算法,實驗對比結果如圖4所示。

圖4 四種方法的實驗對比結果
從圖4中可得,隨著特征維度的增加,三種特征選擇算法在維度為10、20和30時的F1值不斷提高,在特征維度為40時略有下降,但基本不低于不進行特征選擇所得的F1值,表明原始特征集中確實存在信息冗余的現象。在四種特征維度下,基于本文所提出的MI-FCBF算法的疲勞檢測F1值均高于其他方法,比基于其他兩種特征選擇的方法平均提升了3.3%~5.3%,比不進行特征選擇的方法平均提升了7.25%,說明本文提出的MI-FCBF特征選擇算法在疲勞分類上具備有效性。
本文提出了一種基于多源視覺信息和MI-FCBF特征選擇的疲勞檢測方法,該方法結合面部動作單元AU和頭部姿態作為疲勞指標,并分別提取這兩種指標的8個統計量作為疲勞特征。由于高維度特征可能包含了無關和冗余信息,本文提出的MI-FCBF特征選擇算法分別通過比較互信息和對稱不確定性,克服了傳統特征選擇算法僅能去除無關特征而不能去除冗余特征的缺陷,并自定義特征維度,解決了因被保留特征過于稀少而使檢測精度不高的問題。該疲勞檢測方法能夠以較少的特征獲得更高的檢測精度,使檢測模型的泛化能力得到提升。