李作進(jìn),史藍(lán)洋,馮世霖,陳智能,曹亞男,賀學(xué)樂(lè),陳生富
(重慶科技學(xué)院 電氣工程學(xué)院,重慶 400000)
隨著我國(guó)經(jīng)濟(jì)發(fā)展,汽車(chē)保有量已達(dá)到3.3億輛[1-2]。汽車(chē)數(shù)量的迅速增長(zhǎng)使得道路交通事故發(fā)生數(shù)量逐年攀升,其中超過(guò)20%的交通事故是疲勞駕駛所致,疲勞駕駛已成為道路交通事故的頭號(hào)殺手[3-4]。駕駛員處于疲勞狀態(tài)時(shí),對(duì)車(chē)輛的控制水平以及自身生理機(jī)能、辨識(shí)能力都在下降[5]。如果可以實(shí)時(shí)監(jiān)測(cè)駕駛員狀態(tài),對(duì)已處于疲勞狀態(tài)的駕駛員警示,就可以避免部分道路交通事故的發(fā)生。
當(dāng)前疲勞駕駛檢測(cè)主要分為接觸式和非接觸式兩種。接觸式檢測(cè)主要是通過(guò)駕駛員的生理信號(hào)變化情況,如腦電信號(hào)[6-9]、心電信號(hào)[10-11]、脈搏波信號(hào)[12]等對(duì)駕駛員所處狀態(tài)進(jìn)行分析,但這種檢測(cè)方式屬于入侵式檢測(cè),駕駛員穿戴的電極式數(shù)據(jù)采集裝置會(huì)影響到自身的操作,出于安全考慮等原因,大部分研究工作者還是偏向于非接觸式的檢測(cè)方式。非接觸式檢測(cè)根據(jù)檢測(cè)目標(biāo)的不同在車(chē)輛相應(yīng)位置安裝數(shù)據(jù)采集裝置,不會(huì)影響駕駛員的操作亦不受環(huán)境變化的影響,其結(jié)果穩(wěn)定性是最高的,且成本低,適合面向?qū)嶋H,已成為如今疲勞駕駛檢測(cè)方法的研究熱點(diǎn)[13-15]。
以駕駛操作行為為研究對(duì)象的疲勞駕駛檢測(cè)屬于非接觸式檢測(cè)。張希波等[16]提取方向盤(pán)的轉(zhuǎn)角零數(shù)百分比和角度標(biāo)準(zhǔn)差,采用Fisher線性判別方法對(duì)疲勞狀態(tài)進(jìn)行識(shí)別,其試驗(yàn)結(jié)果的準(zhǔn)確率達(dá)到82%。Li等[17]采取滑動(dòng)時(shí)間窗對(duì)方向盤(pán)轉(zhuǎn)角時(shí)間序列提取近似熵(ApEn)特征后利用二元決策分類(lèi)器對(duì)駕駛員疲勞狀態(tài)進(jìn)行辨識(shí),在實(shí)車(chē)數(shù)據(jù)下的檢測(cè)準(zhǔn)確率達(dá)到78.01%。然而現(xiàn)有文獻(xiàn)以單一特征比如方向盤(pán)轉(zhuǎn)角的居多,涉及多種特征信息融合的少。準(zhǔn)確率能達(dá)到80%以上的多是在虛擬駕駛環(huán)境下采集的數(shù)據(jù),缺乏在實(shí)車(chē)路況下的有效驗(yàn)證[18-22]。
基于此,本文對(duì)實(shí)車(chē)路況下的駕駛操作行為展開(kāi)研究,從方向盤(pán)轉(zhuǎn)角、車(chē)速、橫擺角速度、車(chē)輛橫向加速度中抽取表征疲勞水平的統(tǒng)計(jì)類(lèi)特征指標(biāo),通過(guò)單因素方差分析篩選指標(biāo),采用鯨魚(yú)-決策樹(shù)算法(WOA-CART)搭建疲勞駕駛檢測(cè)模型,以實(shí)現(xiàn)對(duì)駕駛員疲勞狀態(tài)的監(jiān)測(cè)和預(yù)警。
張希波等[16]在研究中發(fā)現(xiàn),駕駛員疲勞狀態(tài)一般會(huì)持續(xù)15~75 s,但相應(yīng)駕駛操作行為的變化只會(huì)出現(xiàn)1~2次,每次的持續(xù)時(shí)間一般為5~20 s。因此,為了避免特征削弱,本文采用雙時(shí)間窗方法。如圖1所示,其中樣本窗T為60 s,時(shí)間窗t在樣本窗上以步長(zhǎng)l s滑動(dòng),計(jì)算每一時(shí)刻時(shí)間窗ti=6,11,16(i=1,2,3)內(nèi)的駕駛操作行為變量值,取其最大值作為樣本窗T內(nèi)的指標(biāo)值。
圖1 雙時(shí)間窗示意圖
所提取的駕駛行為統(tǒng)計(jì)指標(biāo)見(jiàn)圖2。分別就車(chē)速、方向盤(pán)轉(zhuǎn)角等4種操作行為,通過(guò)雙時(shí)間窗方法提取峰峰值、絕對(duì)值均值等6個(gè)有量綱統(tǒng)計(jì)特征和峰度、變異系數(shù)等3個(gè)無(wú)量綱統(tǒng)計(jì)特征以及頻數(shù)百分比[19]這一經(jīng)驗(yàn)類(lèi)特征,隨后將對(duì)這些所提取的特征進(jìn)行篩選,組成一個(gè)最優(yōu)特征輸入集。
圖2 駕駛行為統(tǒng)計(jì)特征提取指標(biāo)
部分公式如下:
(1) 絕對(duì)值均值:
(1)
式中:M為絕對(duì)值均值;n為三級(jí)疲勞樣本的個(gè)數(shù);θ為樣本時(shí)間序列值。
(2) 標(biāo)準(zhǔn)差:
(2)
式中:Std為標(biāo)準(zhǔn)差,其值為方差的算術(shù)平方根,主要反映一個(gè)樣本數(shù)據(jù)集的離散程度。
單因素方差分析[20]是檢驗(yàn)各因素對(duì)試驗(yàn)指標(biāo)是否存在顯著差異的一種統(tǒng)計(jì)方法,可以有效對(duì)駕駛行為指標(biāo)進(jìn)行篩選,去除冗余指標(biāo),提高分類(lèi)模型的性能,減少模型搭建時(shí)間。其影響因子水平為駕駛員清醒、疲勞和非常疲勞三種狀態(tài)?;舅枷刖褪怯媒M間偏差平方和SA和組內(nèi)偏差平方和Se的大小來(lái)衡量影響因子的影響效果。
檢驗(yàn)的零設(shè)公式為:
H0:μ1=μ2=μ3=μ
(3)
式中:μ1為清醒狀態(tài)下總體期望;μ2為疲勞狀態(tài)下總體期望;μ3為非常疲勞下總體期望;μ4是所有總體的均值。
(4)
(5)
ST=SA+Se
(6)
引入均方和排除自由度不同所產(chǎn)生的干擾,定義F統(tǒng)計(jì)量來(lái)檢驗(yàn)H0,即:
F=MSA/MSe=(SA/fA)/(Se/fe)
(7)
式中:MSA為組間均方和;MSe為組內(nèi)均方和;fA和fe為自由度。給定顯著水平α,H0的拒絕域?yàn)?
W={F≥F1-α(fA,fe)}
(8)
若拒絕域成立,則可以認(rèn)為所選的疲勞特征指標(biāo)對(duì)三級(jí)疲勞水平有顯著影響。
本文采用決策樹(shù)類(lèi)別中使用基尼系數(shù)生成分類(lèi)樹(shù)的CART(Classification And Regression Tree)算法。構(gòu)造CART分類(lèi)樹(shù)的過(guò)程是根據(jù)數(shù)據(jù)特征將數(shù)據(jù)集分類(lèi)的遞歸過(guò)程,有特征選擇、決策樹(shù)生成和剪枝3個(gè)部分。如圖3,將疲勞樣本數(shù)據(jù)集放到根節(jié)點(diǎn)中,根據(jù)基尼系數(shù)從數(shù)據(jù)集各個(gè)疲勞特征中選擇一個(gè)特征作為當(dāng)前節(jié)點(diǎn)的分裂標(biāo)準(zhǔn),從上至下遞歸生成內(nèi)部節(jié)點(diǎn),直到所有訓(xùn)練數(shù)據(jù)集被基本正確分類(lèi),生成二叉決策樹(shù)。葉節(jié)點(diǎn)即為分類(lèi)標(biāo)簽。剪枝則是由于決策樹(shù)容易過(guò)擬合,通過(guò)縮小樹(shù)結(jié)構(gòu)規(guī)模來(lái)予以緩解,以實(shí)現(xiàn)更好的泛化能力。
圖3 決策樹(shù)結(jié)構(gòu)圖
鯨魚(yú)優(yōu)化算法(Whale Optimization Algorithm,WOA)是2016年由Mirjalili等[23]提出的一種群體智能優(yōu)化算法,源于對(duì)自然界中鯨魚(yú)群體狩獵行為的模擬。整個(gè)算法過(guò)程包括包圍獵物、泡泡網(wǎng)捕食、搜索獵物3個(gè)階段。
(1) 包圍獵物
假設(shè)在k維空間中,已有鯨魚(yú)找到包圍獵物的最佳位置,則其他鯨魚(yú)會(huì)選擇這個(gè)位置靠近,數(shù)學(xué)模型為:
(9)
(10)
C=2r1
(11)
A=a(2r2-1)
(12)
a=2(1-t/Tmax)
(13)
式中:r1和r2為區(qū)間[0,1]中的隨機(jī)變量;a的值隨著迭代次數(shù)t的增加,由2至0線性遞減;Tmax為最大迭代次數(shù)。
(2) 泡泡網(wǎng)捕食
鯨魚(yú)在驅(qū)趕包圍獵物時(shí)有收縮包圍圈和螺旋式向獵物游走2種方式。螺旋式向獵物游走是利用螺旋更新位置表示這種圍捕行為,其數(shù)學(xué)模型為:
(14)
(15)
式中:Dk為鯨魚(yú)到獵物的最優(yōu)間距;b為對(duì)數(shù)螺旋形狀常數(shù);l為均勻分布在[-1,1]區(qū)間的隨機(jī)數(shù)。
另一種圍捕行為是利用收縮環(huán)繞機(jī)制,與包圍獵物的數(shù)學(xué)模型公式基本一致,不同在于A的取值區(qū)間由[-a,a]調(diào)整為[-1,1]。
那么在鯨魚(yú)捕食過(guò)程中以50%的概率為標(biāo)準(zhǔn)選用這2種方式的其中一種,即:
(16)
式中:p的取值區(qū)間為[0,1]。
(3) 搜索捕食
A值決定鯨魚(yú)是向著最優(yōu)個(gè)體游動(dòng)還是向著隨機(jī)個(gè)體游動(dòng),當(dāng)|A|≤1時(shí),鯨魚(yú)選擇向最優(yōu)個(gè)體游動(dòng),如式(9),式(10);當(dāng)|A|>1時(shí),鯨魚(yú)選擇向隨機(jī)個(gè)體游動(dòng),將會(huì)增強(qiáng)鯨魚(yú)群體的全體搜索能力,數(shù)學(xué)模型為:
(17)
(18)
式中:Xrand是一個(gè)隨機(jī)位置向量。
鯨魚(yú)-決策樹(shù)疲勞狀態(tài)識(shí)別算法(WOA-CART)流程見(jiàn)圖4。
圖4 鯨魚(yú)-決策樹(shù)識(shí)別算法流程
算法輸入為構(gòu)建的最優(yōu)疲勞特征集D、基尼系數(shù)閾值和樣本個(gè)數(shù)閾值;輸出是CART分類(lèi)樹(shù);根據(jù)參數(shù)集D,從根節(jié)點(diǎn)開(kāi)始,遞歸地對(duì)每個(gè)節(jié)點(diǎn)計(jì)算節(jié)點(diǎn)內(nèi)特征對(duì)數(shù)據(jù)集的基尼指數(shù)。
具體步驟為以下4步:
(1) 對(duì)每一個(gè)疲勞特征A,計(jì)算A中的每個(gè)取值a,根據(jù)疲勞樣本點(diǎn)對(duì)A=a的測(cè)試為“是”或“否”,將D分割成D1和D2兩個(gè)部分,并計(jì)算A=a時(shí)的基尼指數(shù):
D1=(x,y)∈D|A(x)=a,D2=D-D1
(19)
對(duì)于參數(shù)集D,個(gè)數(shù)為|D|,在屬性A的條件下,樣本D的基尼系數(shù)定義為:
GiniIndexG(D|A=a)=
(20)
式中,基尼值公式為:
(21)
式中:p(xi)是分類(lèi)xi出現(xiàn)的概率;n是分類(lèi)的數(shù)目。
(2) 在所有可能的疲勞特征A以及它們所有可能的切分點(diǎn)a中,選擇基尼指數(shù)最小的特征及其對(duì)應(yīng)的切分點(diǎn)作為最優(yōu)特征與最優(yōu)切分點(diǎn),從而生成兩個(gè)子節(jié)點(diǎn),并將最優(yōu)疲勞特征參數(shù)集按特征分配到兩個(gè)子節(jié)點(diǎn)中去。
(3) 對(duì)兩個(gè)子節(jié)點(diǎn)遞歸地調(diào)用(1)、(2)直到滿(mǎn)足停止條件;停止計(jì)算的條件是樣本基本屬于同一類(lèi)。
(4) 在生成CART分類(lèi)樹(shù)的過(guò)程中,利用鯨魚(yú)優(yōu)化算法對(duì)樹(shù)中的max_depth(樹(shù)的最大深度)、min_samples_split(分裂一個(gè)內(nèi)部節(jié)點(diǎn)需要的最少樣本數(shù))、min_samples_leaf(每個(gè)葉節(jié)點(diǎn)包含的最少樣本數(shù))、max_leaf_nodes(葉節(jié)點(diǎn)的最大數(shù)量)4個(gè)超參數(shù)進(jìn)行優(yōu)化,使決策樹(shù)達(dá)到最好的分類(lèi)效果。
本文試驗(yàn)數(shù)據(jù)來(lái)源于VBOX平臺(tái),采樣路徑為北京至秦皇島的一段全長(zhǎng)約270 km的京哈高速公路。采集人數(shù)為5人,采集時(shí)長(zhǎng)根據(jù)駕駛員在午后駕駛車(chē)輛約1~2 h就進(jìn)入疲勞狀態(tài)的實(shí)際經(jīng)驗(yàn),定為1~3 h,采集頻率為100 Hz。根據(jù)同步脈沖信號(hào)可判定駕駛員面部視頻和操作行為的一致性。以約1 min為標(biāo)準(zhǔn)對(duì)所采集的數(shù)據(jù)進(jìn)行切分,隨后依據(jù)駕駛員面部疲勞評(píng)分標(biāo)準(zhǔn)[22]給每一個(gè)所切分的數(shù)據(jù)段以0(清醒)、1(疲勞)和2(非常疲勞)打分。得到一個(gè)全新的疲勞駕駛樣本數(shù)據(jù)集。將數(shù)據(jù)集中車(chē)速低于60 km/h的視為慢速路段,方向盤(pán)轉(zhuǎn)角超過(guò)20°視為超車(chē)變道。剔除這些異常數(shù)據(jù)后的清醒樣本有136個(gè),疲勞樣本71個(gè),非常疲勞樣本30個(gè),共計(jì)237個(gè)樣本,每個(gè)樣本包含12維6 000行的操作行為數(shù)據(jù)??紤]到三級(jí)疲勞樣本不均衡且樣本過(guò)少,采用smote方法擴(kuò)充清醒樣本106個(gè),疲勞樣本171個(gè),非常疲勞樣本212個(gè)。
在對(duì)所提取的統(tǒng)計(jì)指標(biāo)進(jìn)行正態(tài)性分析和方差齊性分析后,通過(guò)單因素方差分析,結(jié)合F值和P值,去除冗沉參數(shù)和相關(guān)性不大的特征參數(shù)后,最終選用了表1所示的5個(gè)指標(biāo)作為最優(yōu)疲勞特征集D。
表1 最優(yōu)疲勞特征參數(shù)集
本文搭建的WOA-CRAT疲勞駕駛識(shí)別模型采用交叉驗(yàn)證方法,樣本群數(shù)設(shè)置為10。對(duì)最優(yōu)特征參數(shù)集D進(jìn)行歸一化處理后按照8∶2的比例劃分為訓(xùn)練集和測(cè)試集。交叉驗(yàn)證結(jié)果見(jiàn)表2,其中清醒狀態(tài)識(shí)別準(zhǔn)確率為78.43%,疲勞狀態(tài)的識(shí)別準(zhǔn)確為90.48%,非常疲勞的識(shí)別準(zhǔn)確率為84.91%,總體的識(shí)別準(zhǔn)確率為84.25%。
表2 WOA-CART與CART算法識(shí)別準(zhǔn)確率 %
本文除了準(zhǔn)確率(Accuracy),還引入了精確率(Precision)、召回率(Recall)、漏報(bào)率(Condition positive)和F1-得分(F1-Score)4個(gè)評(píng)價(jià)指標(biāo)對(duì)疲勞駕駛檢測(cè)模型進(jìn)行了更全面的綜合評(píng)估。WOA-CART算法模型檢測(cè)結(jié)果見(jiàn)表3。
表3 WOA-CART算法模型檢測(cè)結(jié)果
根據(jù)表3中的混淆矩陣:TN表示為正確預(yù)測(cè)為清醒的樣本;TP表示為正確預(yù)測(cè)為疲勞的樣本;TR表示正確預(yù)測(cè)為非常疲勞的樣本;FN表示將清醒預(yù)測(cè)為疲勞和非常疲勞的樣本;FP表示將疲勞預(yù)測(cè)為清醒和非常疲勞的樣本;FR表示將非常疲勞預(yù)測(cè)為清醒和疲勞的樣本。以清醒樣本為例,各評(píng)價(jià)函數(shù)公式如下:
(1) 精確率:
P=TN/(TN+FN)
(22)
表示實(shí)際為正的樣本在被預(yù)測(cè)為正的樣本中的概率。
(2) 召回率:
R=TN/(TN+FP+FR)
(23)
表示被預(yù)測(cè)為正的樣本在實(shí)際為正的樣本中的概率。
(3) 漏報(bào)率:
CP=1-TN/(TN+FP+FR)
(24)
(4) F1-得分:
F1=2·R·P/(R+P)
(25)
根據(jù)以上定義,本文基于鯨魚(yú)算法優(yōu)化后的CART決策樹(shù)疲勞駕駛檢測(cè)模型評(píng)價(jià)結(jié)果如表4所示。模型精確率為84.60%、召回率為84.31%、漏報(bào)率為15.69%、F1-得分為84.16%。
表4 WOA-CART疲勞駕駛檢測(cè)模型評(píng)價(jià)結(jié)果
本文提出了一種基于鯨魚(yú)優(yōu)化的CART分類(lèi)樹(shù)方法對(duì)疲勞駕駛進(jìn)行識(shí)別。首先對(duì)實(shí)車(chē)路況下的駕駛操作行為數(shù)據(jù)進(jìn)行預(yù)處理,消除隨機(jī)誤差;然后利用單因素方差分析方法對(duì)提取的疲勞特征進(jìn)行篩選,減少了模型選擇疲勞特征的時(shí)間,響應(yīng)速度加快;最后基于WOA-CART算法進(jìn)行訓(xùn)練。經(jīng)過(guò)鯨魚(yú)算法優(yōu)化后的WOA-CART疲勞駕駛識(shí)別模型總體識(shí)別準(zhǔn)確率達(dá)到了84.25%,比未優(yōu)化的CART模型提高了約9個(gè)百分點(diǎn);相比于以單一方向盤(pán)轉(zhuǎn)角為研究對(duì)象的疲勞駕駛檢測(cè)[16],提高了約2%;漏報(bào)率為15.69%。本文提出的疲勞駕駛識(shí)別方法采用的實(shí)車(chē)駕駛操作行為數(shù)據(jù),貼近實(shí)際工程應(yīng)用,實(shí)用性得到提高。但本文所用試驗(yàn)數(shù)據(jù)樣本偏少,未考慮到駕駛員個(gè)體差異性。因此在后續(xù)的研究中,需要擴(kuò)充疲勞駕駛樣本數(shù)據(jù)庫(kù),探究不同駕駛員之間的操作行為差異化,從而提高疲勞駕駛識(shí)別準(zhǔn)確率和普及性。