陳莉莉,劉 翔,唐家勛,陳俊廷
(上海工程技術(shù)大學(xué)電子電氣工程學(xué)院,上海 201620)
疲勞駕駛是導(dǎo)致交通事故頻發(fā)的重要原因之一,每年約有20%的交通事故是由疲勞駕駛引起的[1]。目前可以通過(guò)主觀(guān)疲勞檢測(cè)和客觀(guān)疲勞檢測(cè)方法評(píng)價(jià)當(dāng)前駕駛員的精神狀態(tài)。主觀(guān)疲勞檢測(cè)以問(wèn)卷形式要求駕駛員進(jìn)行自我評(píng)估,結(jié)果缺少客觀(guān)性。而客觀(guān)疲勞檢測(cè)是從駕駛行為、生理信號(hào)和面部視覺(jué)信息等方面入手研究,由于面部視覺(jué)信息易于采集且具有非侵入性[2],越來(lái)越多的學(xué)者在這方面展開(kāi)疲勞駕駛的研究,常用的疲勞特征有眼睛和嘴巴的開(kāi)合狀態(tài)[3~4]、眨眼[5]和打哈欠頻率[6]等,文獻(xiàn)[6~9]以在面部表情檢測(cè)中常用的運(yùn)動(dòng)單元(Action Unit,AU)[10]作為特征檢測(cè)駕駛員的疲勞狀態(tài)。為了能夠更準(zhǔn)確地評(píng)價(jià)駕駛員的狀態(tài),需要提取更多的特征來(lái)綜合表征疲勞,但特征提取的越多,越有可能會(huì)帶來(lái)相同甚至無(wú)用的信息,即冗余特征和無(wú)關(guān)特征,最終影響模型泛化能力[11]。因此,當(dāng)利用高維特征綜合檢測(cè)駕駛員疲勞狀態(tài)時(shí),在不影響模型準(zhǔn)確率的前提下降低特征維度具有現(xiàn)實(shí)意義。特征選擇是一種有效的降維方式,被廣泛應(yīng)用于機(jī)器學(xué)習(xí)和模式識(shí)別等領(lǐng)域?;诨バ畔ⅲ∕I)的特征選擇方法[12]常被用來(lái)對(duì)高維數(shù)據(jù)進(jìn)行特征選擇,該方法能夠從全局上衡量特征和類(lèi)別之間的相關(guān)性,互信息值越高,則該特征與類(lèi)別的相關(guān)性越顯著,但缺乏對(duì)特征與特征之間相關(guān)性的研究,會(huì)帶來(lái)較大的冗余性。FCBF特征選擇算法[13]能夠通過(guò)計(jì)算對(duì)稱(chēng)不確定性去除冗余特征,但會(huì)出現(xiàn)過(guò)度刪減特征的極端情況,影響分類(lèi)精度。
本文結(jié)合面部動(dòng)作單元和頭部姿態(tài)作為疲勞指標(biāo),分別提取這兩種指標(biāo)的8種數(shù)學(xué)統(tǒng)計(jì)量作為疲勞特征。提出MI-FCBF特征選擇算法,通過(guò)計(jì)算互信息和對(duì)稱(chēng)不確定性,排除無(wú)關(guān)特征和冗余特征,并增加自定義特征維度參數(shù),避免出現(xiàn)被保留下的特征過(guò)少影響疲勞檢測(cè)精度的情況,本文的系統(tǒng)流程如圖1所示。
圖1 本文系統(tǒng)流程圖
本文采用動(dòng)作單元AU和頭部姿態(tài)兩種維度的視覺(jué)信息綜合表征疲勞狀態(tài),具體選擇文獻(xiàn)[8]中提出的5種最具疲勞特性的AU和3個(gè)頭部歐拉旋轉(zhuǎn)角即滾動(dòng)角(Roll)、平動(dòng)角(Yaw)以及轉(zhuǎn)動(dòng)角(Pitch)作為疲勞指標(biāo)。采用OpenFace面部行為分析工具[14]提取動(dòng)作單元AU和頭部姿態(tài)角。為了得到更深度的疲勞信息,本文在每個(gè)動(dòng)作單元AU和頭部姿態(tài)的指標(biāo)下分別提取8個(gè)常用的統(tǒng)計(jì)量作為最終的疲勞特征,如表1所示。
表1 選取的疲勞指標(biāo)
高維度特征可以更細(xì)致的評(píng)估對(duì)象,但同時(shí)也可能會(huì)帶來(lái)計(jì)算量增大、模型復(fù)雜以及存在大量冗余信息的問(wèn)題。而特征選擇算法可以通過(guò)評(píng)估原始數(shù)據(jù)集中所有特征的重要程度,舍棄無(wú)關(guān)和冗余的特征,以保留有效的特征子集,在不影響分類(lèi)算法準(zhǔn)確率的前提降低原始數(shù)據(jù)的特征維度。
信息熵能夠表征數(shù)據(jù)集中元素之間依賴(lài)關(guān)系的強(qiáng)弱。設(shè)不同類(lèi)別的概率是P(c),其中C表示類(lèi)別,m表示類(lèi)別數(shù),則C的熵可以表示為:
已知特征f后類(lèi)別c的不確定性由條件熵表示為:
其中n表示第n個(gè)特征,m表示類(lèi)別數(shù),P(f)是特征f的概率,P(c | f)是給定特征f時(shí)類(lèi)別c的條件概率。
特征與類(lèi)別之間相互依存關(guān)系的強(qiáng)弱可以用互信息刻畫(huà),互信息值越大,則說(shuō)明特征與類(lèi)別的相關(guān)程度越高?;バ畔⒖梢酝ㄟ^(guò)上述式(1)、式(2)表示為:
FCBF是一種過(guò)濾性特征選擇算法,該算法以對(duì)稱(chēng)不確定性(Symmetrical uncertainty,SU)作為特征間冗余性的衡量標(biāo)準(zhǔn)[13]。如果一個(gè)特征與類(lèi)別之間的對(duì)稱(chēng)不確定性高,且與其他已選特征之間的對(duì)稱(chēng)不確定性低,則將該特征被保留,否則剔除。
當(dāng)變量Y出現(xiàn)時(shí)變量X信息熵的變化量稱(chēng)為信息增益,表示為:
由此對(duì)稱(chēng)不確定性可表示為:
SU(X,Y)的值域?yàn)?0,1),SU越大,表示兩個(gè)隨機(jī)變量 X、Y 之間的相關(guān)性越大。當(dāng)SU(X,Y)=0時(shí),表示兩個(gè)隨機(jī)變量X、Y不相關(guān);反之,當(dāng)SU(X,Y)=1時(shí),表示隨機(jī)變量X、Y完全相關(guān)。
MI-FCBF算法首先利用特征與類(lèi)別之間的互信息,從整體上把握特征對(duì)于分類(lèi)效果的顯著性,再通過(guò)對(duì)稱(chēng)不確定性進(jìn)一步研究特征之間的冗余性,實(shí)現(xiàn)一種兩階段的特征選擇方法。同時(shí)加入了能夠自定義的特征維度參數(shù),避免特征被過(guò)度刪減影響分類(lèi)效果,使得特征選擇更具可靠性,算法流程如圖2所示。
圖2 MI-FCBF算法流程圖
定義1:MI-FCBF的特征選擇算法矩陣,可以表示為二元組D:(Fn,Cm)。其中Fn表示數(shù)據(jù)集中包含n維特征,Cm表示該數(shù)據(jù)集分為m類(lèi)。
定義2:MI-FCBF算法中的互信息值W,初始特征子集S,初始特征子集維度為M_1。將所有互信息值按照大小進(jìn)行降序排列,選取前M_1個(gè)互信息值所對(duì)應(yīng)的特征作為初始特征子集S。
定義3:MI-FCBF算法中的對(duì)稱(chēng)不確定性SU(Fn,Cm),最優(yōu)特征子集S_best,自定義最優(yōu)特征子集維度參數(shù)為M_2。任何一個(gè)特征Fi與類(lèi)別之間的關(guān)系記為SUFi,C;任意兩個(gè)不同特征Fi與Fj之間的關(guān)系記為SUFi,Fj,其中0≤i≤n-1,0≤j≤n-1,且i≠j。如果SUFi,Fj≥SUFi,C,則在初始特征子集S中移除特征Fj,并將Fi添加進(jìn)最優(yōu)特征子集S_best。
輸入:數(shù)據(jù)集D,參數(shù)M_1,M_2。
輸出:最優(yōu)特征子集S_best
1)輸入數(shù)據(jù)集D,特征維度為n。
2)計(jì)算數(shù)據(jù)集D上每維特征與類(lèi)別的互信息值,并以此對(duì)所有特征按照降序的方式排列。通過(guò)改變特征維度M_1并比較分類(lèi)模型的評(píng)估指標(biāo),得到初始特征子集S。
3)輸入初始特征子集S,計(jì)算S中特征與類(lèi)別的對(duì)稱(chēng)不確定性的SUFi,C和特征與特征之間的SUFi,Fj,按照定義從初始特征子集S中刪除冗余特征,并將非冗余特征添加進(jìn)最優(yōu)特征子集S_best。
4)若最優(yōu)特征子集S_best的維度大于或等于M_2,則直接輸出S_best;若S_best的維度小于M_2,則在被刪除的特征中選擇SUFiC的最大值所對(duì)應(yīng)的特征并加入到S_best中,直至S_best的維度等于M_2。
5)輸出最優(yōu)特征子集S_best。
環(huán)境:算法使用python3編寫(xiě),計(jì)算機(jī)系統(tǒng)為Win7(64位),CPU為Intel i3,內(nèi)存為4GB。
數(shù)據(jù)集:NTHU Drowsy Driver Detection(DDD)數(shù)據(jù)集[15]是通過(guò)紅外攝像頭拍攝的36名受試者在清醒和疲勞狀態(tài)下的駕駛視頻,這些受試者來(lái)自不同的種族,年齡在18到40歲之間,分別在白天和夜晚進(jìn)行拍攝。本文選取105段疲勞駕駛視頻和105段清醒的駕駛視頻作為實(shí)驗(yàn)的數(shù)據(jù)集,每段視頻長(zhǎng)度為10秒,視頻幀率為30fps。
實(shí)驗(yàn)評(píng)估指標(biāo)使用查準(zhǔn)率P、查全率R和F1值,表2為指標(biāo)矩陣。
表2 指標(biāo)矩陣
根據(jù)表2,分別給出了P、R和F1的計(jì)算公式:
F1值能夠綜合衡量查準(zhǔn)率和查全率,實(shí)驗(yàn)采用F1值作為主要性能評(píng)價(jià)指標(biāo)。
為了能夠客觀(guān)反映實(shí)驗(yàn)效果,本文選擇KNN、SVM和AdaBoost三種分類(lèi)器對(duì)數(shù)據(jù)集進(jìn)行實(shí)驗(yàn),并采用十折交叉驗(yàn)證法將數(shù)據(jù)集隨機(jī)分組,由于每次實(shí)驗(yàn)時(shí)分得的訓(xùn)練集和測(cè)試集可能有所不同,本文在實(shí)驗(yàn)過(guò)程重復(fù)進(jìn)行10次十折交叉驗(yàn)證,再求其指標(biāo)的均值,作為對(duì)實(shí)驗(yàn)的綜合評(píng)估。
4.4.1 MI-FCBF算法參數(shù)選擇
1)通過(guò)實(shí)驗(yàn)并結(jié)合KNN、SVM和AdaBoost分類(lèi)結(jié)果確定MI-FCBF特征選擇算法的參數(shù)M_1。根據(jù)MI-FCBF算法中的互信息公式計(jì)算各個(gè)特征與類(lèi)別的互信息值,將所有特征按互信息值進(jìn)行降序排列,通過(guò)依次擴(kuò)大特征維度的方式,觀(guān)察三種分類(lèi)方法的F1值,如圖3所示。
圖3 特征維度和F1值的關(guān)系
從圖3中可以看出,三種分類(lèi)器的F1值均大于80%,說(shuō)明面部動(dòng)作單元AU和頭部姿態(tài)角能夠較好的表征疲勞狀態(tài)。隨著特征維度的增加,AdaBoost分類(lèi)算法的F1值總體上都優(yōu)于KNN和SVM,比KNN算法平均高出4.36%,比SVM算法平均高出4.83%,說(shuō)明數(shù)據(jù)集在AdaBoost分類(lèi)器上展現(xiàn)了更好的性能。當(dāng)特征維度小于45時(shí),三種分類(lèi)器的F1值總體呈上升趨勢(shì),當(dāng)特征維度為45時(shí),F(xiàn)1值均達(dá)到一個(gè)峰值,當(dāng)特征維度大于45時(shí),F(xiàn)1值均呈現(xiàn)下降的趨勢(shì),說(shuō)明后加入的特征對(duì)提升F1值的作用不大,可將其視為不相關(guān)或相關(guān)性較小的特征而刪除。因此本文將初始特征子集S的維度定為45,即M_1=45。
2)為了研究MI-FCBF算法中最優(yōu)特征子集的維度參數(shù)M_2與疲勞檢測(cè)精度的關(guān)系,本文將M_2分別設(shè)定為5、10、15、20、25、30、35、40和45,觀(guān)察KNN、SVM和AdaBoost三種算法在不同最優(yōu)特征子集維度下的準(zhǔn)確率P、召回率R和F1值,結(jié)果如表3所示。
由表3可以看出,MI-FCBF算法在第二階段對(duì)從上一階段獲得的45個(gè)初始特征再次選出最優(yōu)特征子集,隨著最優(yōu)特征子集維度的增大,三種分類(lèi)算法的查準(zhǔn)率P、查全率R和F1值基本呈現(xiàn)出先升高后下降的趨勢(shì),當(dāng)最優(yōu)特征子集維度M_2為5時(shí),各個(gè)算法所達(dá)到的檢測(cè)效果與特征維度為45時(shí)相差不大,均達(dá)到了90%以上,表明本文提出的MI-FCBF特征選擇算法能夠在降低特征維度的同時(shí)還保持較高的分類(lèi)效果。由于Adaboost算法在查準(zhǔn)率P,查全率R和F1值三個(gè)指標(biāo)上明顯優(yōu)于其他兩種分類(lèi)器,因此本文選擇Adaboost算法進(jìn)一步研究。
表3 不同最優(yōu)特征子集維度下的疲勞檢測(cè)結(jié)果比較
4.4.2 實(shí)驗(yàn)對(duì)比結(jié)果
為驗(yàn)證本文提出的MI-FCBF特征選擇算法的有效性,通過(guò)單獨(dú)使用MI特征選擇算法、單獨(dú)使用FCBF特征選擇算法和不使用特征選擇(特征維度為64)的方法在不同特征維度上進(jìn)行對(duì)比實(shí)驗(yàn),并均采用AdaBoost作為分類(lèi)算法,實(shí)驗(yàn)對(duì)比結(jié)果如圖4所示。
圖4 四種方法的實(shí)驗(yàn)對(duì)比結(jié)果
從圖4中可得,隨著特征維度的增加,三種特征選擇算法在維度為10、20和30時(shí)的F1值不斷提高,在特征維度為40時(shí)略有下降,但基本不低于不進(jìn)行特征選擇所得的F1值,表明原始特征集中確實(shí)存在信息冗余的現(xiàn)象。在四種特征維度下,基于本文所提出的MI-FCBF算法的疲勞檢測(cè)F1值均高于其他方法,比基于其他兩種特征選擇的方法平均提升了3.3%~5.3%,比不進(jìn)行特征選擇的方法平均提升了7.25%,說(shuō)明本文提出的MI-FCBF特征選擇算法在疲勞分類(lèi)上具備有效性。
本文提出了一種基于多源視覺(jué)信息和MI-FCBF特征選擇的疲勞檢測(cè)方法,該方法結(jié)合面部動(dòng)作單元AU和頭部姿態(tài)作為疲勞指標(biāo),并分別提取這兩種指標(biāo)的8個(gè)統(tǒng)計(jì)量作為疲勞特征。由于高維度特征可能包含了無(wú)關(guān)和冗余信息,本文提出的MI-FCBF特征選擇算法分別通過(guò)比較互信息和對(duì)稱(chēng)不確定性,克服了傳統(tǒng)特征選擇算法僅能去除無(wú)關(guān)特征而不能去除冗余特征的缺陷,并自定義特征維度,解決了因被保留特征過(guò)于稀少而使檢測(cè)精度不高的問(wèn)題。該疲勞檢測(cè)方法能夠以較少的特征獲得更高的檢測(cè)精度,使檢測(cè)模型的泛化能力得到提升。