李作進,史藍洋,馮世霖,陳智能,曹亞男,賀學樂,陳生富
(重慶科技學院 電氣工程學院,重慶 400000)
隨著我國經濟發展,汽車保有量已達到3.3億輛[1-2]。汽車數量的迅速增長使得道路交通事故發生數量逐年攀升,其中超過20%的交通事故是疲勞駕駛所致,疲勞駕駛已成為道路交通事故的頭號殺手[3-4]。駕駛員處于疲勞狀態時,對車輛的控制水平以及自身生理機能、辨識能力都在下降[5]。如果可以實時監測駕駛員狀態,對已處于疲勞狀態的駕駛員警示,就可以避免部分道路交通事故的發生。
當前疲勞駕駛檢測主要分為接觸式和非接觸式兩種。接觸式檢測主要是通過駕駛員的生理信號變化情況,如腦電信號[6-9]、心電信號[10-11]、脈搏波信號[12]等對駕駛員所處狀態進行分析,但這種檢測方式屬于入侵式檢測,駕駛員穿戴的電極式數據采集裝置會影響到自身的操作,出于安全考慮等原因,大部分研究工作者還是偏向于非接觸式的檢測方式。非接觸式檢測根據檢測目標的不同在車輛相應位置安裝數據采集裝置,不會影響駕駛員的操作亦不受環境變化的影響,其結果穩定性是最高的,且成本低,適合面向實際,已成為如今疲勞駕駛檢測方法的研究熱點[13-15]。
以駕駛操作行為為研究對象的疲勞駕駛檢測屬于非接觸式檢測。張希波等[16]提取方向盤的轉角零數百分比和角度標準差,采用Fisher線性判別方法對疲勞狀態進行識別,其試驗結果的準確率達到82%。Li等[17]采取滑動時間窗對方向盤轉角時間序列提取近似熵(ApEn)特征后利用二元決策分類器對駕駛員疲勞狀態進行辨識,在實車數據下的檢測準確率達到78.01%。然而現有文獻以單一特征比如方向盤轉角的居多,涉及多種特征信息融合的少。準確率能達到80%以上的多是在虛擬駕駛環境下采集的數據,缺乏在實車路況下的有效驗證[18-22]。
基于此,本文對實車路況下的駕駛操作行為展開研究,從方向盤轉角、車速、橫擺角速度、車輛橫向加速度中抽取表征疲勞水平的統計類特征指標,通過單因素方差分析篩選指標,采用鯨魚-決策樹算法(WOA-CART)搭建疲勞駕駛檢測模型,以實現對駕駛員疲勞狀態的監測和預警。
張希波等[16]在研究中發現,駕駛員疲勞狀態一般會持續15~75 s,但相應駕駛操作行為的變化只會出現1~2次,每次的持續時間一般為5~20 s。因此,為了避免特征削弱,本文采用雙時間窗方法。如圖1所示,其中樣本窗T為60 s,時間窗t在樣本窗上以步長l s滑動,計算每一時刻時間窗ti=6,11,16(i=1,2,3)內的駕駛操作行為變量值,取其最大值作為樣本窗T內的指標值。

圖1 雙時間窗示意圖
所提取的駕駛行為統計指標見圖2。分別就車速、方向盤轉角等4種操作行為,通過雙時間窗方法提取峰峰值、絕對值均值等6個有量綱統計特征和峰度、變異系數等3個無量綱統計特征以及頻數百分比[19]這一經驗類特征,隨后將對這些所提取的特征進行篩選,組成一個最優特征輸入集。

圖2 駕駛行為統計特征提取指標
部分公式如下:
(1) 絕對值均值:
(1)
式中:M為絕對值均值;n為三級疲勞樣本的個數;θ為樣本時間序列值。
(2) 標準差:
(2)
式中:Std為標準差,其值為方差的算術平方根,主要反映一個樣本數據集的離散程度。
單因素方差分析[20]是檢驗各因素對試驗指標是否存在顯著差異的一種統計方法,可以有效對駕駛行為指標進行篩選,去除冗余指標,提高分類模型的性能,減少模型搭建時間。其影響因子水平為駕駛員清醒、疲勞和非常疲勞三種狀態。基本思想就是用組間偏差平方和SA和組內偏差平方和Se的大小來衡量影響因子的影響效果。
檢驗的零設公式為:
H0:μ1=μ2=μ3=μ
(3)
式中:μ1為清醒狀態下總體期望;μ2為疲勞狀態下總體期望;μ3為非常疲勞下總體期望;μ4是所有總體的均值。
(4)
(5)

ST=SA+Se
(6)
引入均方和排除自由度不同所產生的干擾,定義F統計量來檢驗H0,即:
F=MSA/MSe=(SA/fA)/(Se/fe)
(7)
式中:MSA為組間均方和;MSe為組內均方和;fA和fe為自由度。給定顯著水平α,H0的拒絕域為:
W={F≥F1-α(fA,fe)}
(8)
若拒絕域成立,則可以認為所選的疲勞特征指標對三級疲勞水平有顯著影響。
本文采用決策樹類別中使用基尼系數生成分類樹的CART(Classification And Regression Tree)算法。構造CART分類樹的過程是根據數據特征將數據集分類的遞歸過程,有特征選擇、決策樹生成和剪枝3個部分。如圖3,將疲勞樣本數據集放到根節點中,根據基尼系數從數據集各個疲勞特征中選擇一個特征作為當前節點的分裂標準,從上至下遞歸生成內部節點,直到所有訓練數據集被基本正確分類,生成二叉決策樹。葉節點即為分類標簽。剪枝則是由于決策樹容易過擬合,通過縮小樹結構規模來予以緩解,以實現更好的泛化能力。

圖3 決策樹結構圖
鯨魚優化算法(Whale Optimization Algorithm,WOA)是2016年由Mirjalili等[23]提出的一種群體智能優化算法,源于對自然界中鯨魚群體狩獵行為的模擬。整個算法過程包括包圍獵物、泡泡網捕食、搜索獵物3個階段。
(1) 包圍獵物
假設在k維空間中,已有鯨魚找到包圍獵物的最佳位置,則其他鯨魚會選擇這個位置靠近,數學模型為:
(9)
(10)

C=2r1
(11)
A=a(2r2-1)
(12)
a=2(1-t/Tmax)
(13)
式中:r1和r2為區間[0,1]中的隨機變量;a的值隨著迭代次數t的增加,由2至0線性遞減;Tmax為最大迭代次數。
(2) 泡泡網捕食
鯨魚在驅趕包圍獵物時有收縮包圍圈和螺旋式向獵物游走2種方式。螺旋式向獵物游走是利用螺旋更新位置表示這種圍捕行為,其數學模型為:
(14)
(15)
式中:Dk為鯨魚到獵物的最優間距;b為對數螺旋形狀常數;l為均勻分布在[-1,1]區間的隨機數。
另一種圍捕行為是利用收縮環繞機制,與包圍獵物的數學模型公式基本一致,不同在于A的取值區間由[-a,a]調整為[-1,1]。
那么在鯨魚捕食過程中以50%的概率為標準選用這2種方式的其中一種,即:
(16)
式中:p的取值區間為[0,1]。
(3) 搜索捕食
A值決定鯨魚是向著最優個體游動還是向著隨機個體游動,當|A|≤1時,鯨魚選擇向最優個體游動,如式(9),式(10);當|A|>1時,鯨魚選擇向隨機個體游動,將會增強鯨魚群體的全體搜索能力,數學模型為:
(17)
(18)
式中:Xrand是一個隨機位置向量。
鯨魚-決策樹疲勞狀態識別算法(WOA-CART)流程見圖4。

圖4 鯨魚-決策樹識別算法流程
算法輸入為構建的最優疲勞特征集D、基尼系數閾值和樣本個數閾值;輸出是CART分類樹;根據參數集D,從根節點開始,遞歸地對每個節點計算節點內特征對數據集的基尼指數。
具體步驟為以下4步:
(1) 對每一個疲勞特征A,計算A中的每個取值a,根據疲勞樣本點對A=a的測試為“是”或“否”,將D分割成D1和D2兩個部分,并計算A=a時的基尼指數:
D1=(x,y)∈D|A(x)=a,D2=D-D1
(19)
對于參數集D,個數為|D|,在屬性A的條件下,樣本D的基尼系數定義為:
GiniIndexG(D|A=a)=
(20)
式中,基尼值公式為:
(21)
式中:p(xi)是分類xi出現的概率;n是分類的數目。
(2) 在所有可能的疲勞特征A以及它們所有可能的切分點a中,選擇基尼指數最小的特征及其對應的切分點作為最優特征與最優切分點,從而生成兩個子節點,并將最優疲勞特征參數集按特征分配到兩個子節點中去。
(3) 對兩個子節點遞歸地調用(1)、(2)直到滿足停止條件;停止計算的條件是樣本基本屬于同一類。
(4) 在生成CART分類樹的過程中,利用鯨魚優化算法對樹中的max_depth(樹的最大深度)、min_samples_split(分裂一個內部節點需要的最少樣本數)、min_samples_leaf(每個葉節點包含的最少樣本數)、max_leaf_nodes(葉節點的最大數量)4個超參數進行優化,使決策樹達到最好的分類效果。
本文試驗數據來源于VBOX平臺,采樣路徑為北京至秦皇島的一段全長約270 km的京哈高速公路。采集人數為5人,采集時長根據駕駛員在午后駕駛車輛約1~2 h就進入疲勞狀態的實際經驗,定為1~3 h,采集頻率為100 Hz。根據同步脈沖信號可判定駕駛員面部視頻和操作行為的一致性。以約1 min為標準對所采集的數據進行切分,隨后依據駕駛員面部疲勞評分標準[22]給每一個所切分的數據段以0(清醒)、1(疲勞)和2(非常疲勞)打分。得到一個全新的疲勞駕駛樣本數據集。將數據集中車速低于60 km/h的視為慢速路段,方向盤轉角超過20°視為超車變道。剔除這些異常數據后的清醒樣本有136個,疲勞樣本71個,非常疲勞樣本30個,共計237個樣本,每個樣本包含12維6 000行的操作行為數據。考慮到三級疲勞樣本不均衡且樣本過少,采用smote方法擴充清醒樣本106個,疲勞樣本171個,非常疲勞樣本212個。
在對所提取的統計指標進行正態性分析和方差齊性分析后,通過單因素方差分析,結合F值和P值,去除冗沉參數和相關性不大的特征參數后,最終選用了表1所示的5個指標作為最優疲勞特征集D。

表1 最優疲勞特征參數集
本文搭建的WOA-CRAT疲勞駕駛識別模型采用交叉驗證方法,樣本群數設置為10。對最優特征參數集D進行歸一化處理后按照8∶2的比例劃分為訓練集和測試集。交叉驗證結果見表2,其中清醒狀態識別準確率為78.43%,疲勞狀態的識別準確為90.48%,非常疲勞的識別準確率為84.91%,總體的識別準確率為84.25%。

表2 WOA-CART與CART算法識別準確率 %
本文除了準確率(Accuracy),還引入了精確率(Precision)、召回率(Recall)、漏報率(Condition positive)和F1-得分(F1-Score)4個評價指標對疲勞駕駛檢測模型進行了更全面的綜合評估。WOA-CART算法模型檢測結果見表3。

表3 WOA-CART算法模型檢測結果
根據表3中的混淆矩陣:TN表示為正確預測為清醒的樣本;TP表示為正確預測為疲勞的樣本;TR表示正確預測為非常疲勞的樣本;FN表示將清醒預測為疲勞和非常疲勞的樣本;FP表示將疲勞預測為清醒和非常疲勞的樣本;FR表示將非常疲勞預測為清醒和疲勞的樣本。以清醒樣本為例,各評價函數公式如下:
(1) 精確率:
P=TN/(TN+FN)
(22)
表示實際為正的樣本在被預測為正的樣本中的概率。
(2) 召回率:
R=TN/(TN+FP+FR)
(23)
表示被預測為正的樣本在實際為正的樣本中的概率。
(3) 漏報率:
CP=1-TN/(TN+FP+FR)
(24)
(4) F1-得分:
F1=2·R·P/(R+P)
(25)
根據以上定義,本文基于鯨魚算法優化后的CART決策樹疲勞駕駛檢測模型評價結果如表4所示。模型精確率為84.60%、召回率為84.31%、漏報率為15.69%、F1-得分為84.16%。

表4 WOA-CART疲勞駕駛檢測模型評價結果
本文提出了一種基于鯨魚優化的CART分類樹方法對疲勞駕駛進行識別。首先對實車路況下的駕駛操作行為數據進行預處理,消除隨機誤差;然后利用單因素方差分析方法對提取的疲勞特征進行篩選,減少了模型選擇疲勞特征的時間,響應速度加快;最后基于WOA-CART算法進行訓練。經過鯨魚算法優化后的WOA-CART疲勞駕駛識別模型總體識別準確率達到了84.25%,比未優化的CART模型提高了約9個百分點;相比于以單一方向盤轉角為研究對象的疲勞駕駛檢測[16],提高了約2%;漏報率為15.69%。本文提出的疲勞駕駛識別方法采用的實車駕駛操作行為數據,貼近實際工程應用,實用性得到提高。但本文所用試驗數據樣本偏少,未考慮到駕駛員個體差異性。因此在后續的研究中,需要擴充疲勞駕駛樣本數據庫,探究不同駕駛員之間的操作行為差異化,從而提高疲勞駕駛識別準確率和普及性。