葛文杰,陳 龍
(杭州電子科技大學電子信息學院,浙江杭州 310018)
世衛組織統計報告稱全球范圍每年大約有135 萬人死于道路安全事故[1],在這些重大事故的誘發因素中,疲勞駕駛占了極高比例。根據目前道路安全事故的增長速度,未來5 年交通事故將成為全球人員死亡的主要原因。
駕駛員處于疲勞狀態時,身體的各方面機能都有所下降,心理上處于一種松懈狀態,遇到行人闖出、路口車輛突然匯入等緊急情況,無法及時準確地作出反應、規避危險。在日常行車中,大部分駕駛員無法及時意識到自身處于疲勞狀態而繼續駕駛車輛[2],極易引發車禍,因此需要設計一款能夠便捷安裝在車輛中的系統,對駕駛員的疲勞狀態進行實時檢測,當駕駛員出現疲勞狀態時,發出警報,及時提醒駕駛員停車,避免因疲勞駕駛造成生命財產損失。
一直以來,全球對如何避免疲勞駕駛都極其重視,越來越多的公司、科研機構設計了各式各樣的裝置以避免疲勞駕駛。疲勞駕駛檢測方法一般分為基于生理信號、基于車輛信息、基于駕駛員面部3 種方法[3]。
生理信息檢測法通過與人體直接接觸的傳感器采集駕駛員的生理信號來判斷駕駛員行車中的疲勞狀態,這種方法得到的數據可靠,且生理信號直接來自人體,進行疲勞狀態分析時準確可靠,但是通常要在駕駛員身上安裝檢測生理信號的裝置,對駕駛員的干擾較大。
車輛信息檢測法根據檢測駕駛者對方向盤的操控力度[4]、轉動快慢變換以及對油門踏板的壓力是否平穩、車輛的行駛軌跡等信號特征檢測駕駛員的疲勞狀態。這種檢測實現方法簡單,但是容易受到環境因素的影響,如行駛的路面環境良好程度、氣候是否惡劣等,檢測系統抗干擾能力差[5]。此外,一些正常的駕駛操作如超車、并道等行為,也可能會引發誤判。
駕駛員面部信息檢測法在車輛內安裝高清攝像頭,當駕駛員啟動車輛,攝像頭就開始工作。通過計算機視覺的方式檢測駕駛員面部表情特征變化,如眨眼頻率、眼瞼閉合度PERCLOS、眼球跟蹤、瞳孔反應[6]、頭部轉動幅度及抬起高度、是否打哈欠等行為,評定駕駛員有無進入疲勞狀態,成本較低、實現簡單。但由于拍攝圖像清晰度由環境光照條件決定,這種方法對光線要求較高,且攝像頭一直對著駕駛員拍攝,會對駕駛員的隱私造成一定影響,駕駛員心理上容易出現抗拒、煩躁情緒,影響駕駛安全。
現有的疲勞駕駛檢測方法大多只采用了單一信號以判斷駕駛員疲勞狀態,實際行車過程中的信號采集容易受到各種因素干擾,有時采集到的數據不夠準確,由于判別依據單一,訓練出的模型魯棒性較差,容易發生誤報等情況,反而影響駕駛員的行車安全。因此,本文將隨機森林與多源信息融合相結合進行檢測。多源信息融合檢測方法運用多個精確度高的微型傳感器[7],同步采集駕駛員的呼吸、心跳以及脈搏、握力等信號,當某一個信號的采集有所偏差時,另一個信號的采集不受干擾,然后將這些信息進行濾波、傅里葉變換等處理,建立一個多源的疲勞駕駛狀態數據集,避免了單一信號抗干擾性差的缺陷[8],極大提升了疲勞檢測準確率。相較于SVM(Support Vector Machines)、GBDT(Gradient Boosting Decision Tree)等分類算法,隨機森林能夠平衡數據集的誤差,對缺失值不敏感,能并行運算且分類速度很高,滿足疲勞駕駛檢測中信號采集存在一定誤差且對實時性要求高的需求。
搭建的實驗環境如圖1 所示,采用模擬駕駛器模擬實際行車環境,保證測試人員安全。信號采集平臺主要包括多普勒雷達模塊、柔性握力傳感器模塊[9]及光電容積脈搏傳感器模塊三大部分。此外,將攝像頭記錄駕駛員行駛過程的面部圖像作為數據集信號分類的專家批判依據[10]。3個模塊硬件設計都采用了體積較小的傳感器,盡量減少與駕駛員的接觸,防止對駕駛員的操作造成影響。
采集到初始信號后,通過零相位橢圓濾波器將多普勒雷達采集到的駕駛員生理信號進行濾波處理,將呼吸、心跳信號分離出來[11]。通過零相位巴特沃斯帶通濾波器和ChebyshevⅡ型帶阻濾波器將脈搏信號中的低頻噪聲與50Hz 固定工頻干擾濾去,得到清晰完整的脈搏信號[12],方便特征提取。最后將得到各種的信號特征數據作進一步標準化處理,并建立多源信息融合數據集。

Fig.1 Physiological signal acquisition platform for fatigue driving圖1 疲勞駕駛生理信號采集平臺
目前尚無人體疲勞狀態分類的統一標準,本文將主觀評價法與專家評判機制相結合,先由測試駕駛員對自己的疲勞狀態進行等級劃分,然后將錄像中記錄的駕駛員模擬駕駛過程中的面部表情特征對照如表1 所示的疲勞狀態評價機制[13]再次劃分等級。對于兩次劃分結果,差異在一個疲勞等級的,以他人評價機制分類結果為準,差異在兩個等級及以上的,直接舍棄。這種主觀加專家評判相結合的疲勞等級分類標準更具專業性,對于實際疲勞狀態的劃分更具有可靠性。

Table 1 Standards for classification of fatigue levels表1 疲勞等級劃分標準
系統搭建并調試完成后,安排實驗人員進行數據采集。為了增加采集效率,選取在午后進行實驗,該時間段人體的活躍水平一般較低,容易困倦,以便測試駕駛員可以較好地進入疲勞駕駛狀態。
隨機森林是經典集成學習算法中的一種,它的基本單元與梯度提升樹算法[14](GBDT)一樣,也是決策樹,但是其基礎決策樹的類型根據實際數據集的不同可以有所差異,不需要全部采用同一種基學習器。此外,與GBDT 不同的是,它采用Bagging 的思想,提高了決策樹分類的穩定性。
隨機森林算法的核心就是兩個詞,一個是“森林”,另一個就是“隨機”。“森林”是因為它集成了許多棵決策樹,隨機森林算法使用了基礎的決策樹模型作為弱學習器。本文隨機森林主要采用基尼系數計算模型節點的不純度,節點樣本計算得到的基尼系數越小,說明數據的不純度[15]越低,代表特征選擇效果越好。
假設某個分類問題一共有K個不同的類別,第k個類別的概率為pk,則它的概率分布基尼系數表達式為:

在隨機森林中每個決策樹的節點,在輸入樣本的特征中選擇用于拆分數據集的值,使劃分后的基尼不純度最低。除非每個樹節點下只含有同一類別的樣本,否則繼續通過貪婪遞歸[16]方式進行這種拆分,一直到初始模型設計的最大決策樹深度。
“隨機”體現于隨機森林在Bagging 的基礎上,以決策樹為基分類器,不僅對決策樹訓練樣本數據集進行隨機構建,增加訓練數據集的擾動性[17],還引入隨機屬性,每棵決策樹的產生,在訓練前確定用于劃分的特征個數K,然后隨機從選擇數據集所有特征值中選取K個作為當前節點最優屬性劃分,而不采用所有的特征值作為樣本劃分。因為每個基學習器的樣本以及特征選擇構成都不同,泛化能力大大增強。如圖2 所示,隨機森林通過生成不同的決策樹進行多次訓練,分別得出結果后,測試信號數據的類別通過投票方式選擇,將得票最高的結果作為輸出。
假設一個訓練集中有k個樣本,對它進行隨機采樣,則同一個樣本每次采樣都被選取的概率是1/k。
連續k次隨機抽樣都沒有選擇它的概率則是:

Bagging 對訓練數據集的樣本進行采樣,依次選取,訓練集中大約有36.8%的樣本不會被選取,這部分數據就叫“袋外數據”。這些“袋外數據”沒有作為模型的學習數據,可以用它們進行“外包估計”[18],分析學習得到的分類模型是否具有良好的泛化性能。
對于隨機森林的生成,樹與樹之間相互獨立,不存在依賴性,可以并行訓練,因此運算速度很快。它的節點劃分特征屬性集是隨機選擇的,不用人工選取,相較于SVM和GBDT 算法,不害怕某些數據特征的缺失[19],對于異常值不敏感,對特征很多的高維數據也有很好的表現。

Fig.2 Algorithm model of random forest圖2 隨機森林算法模型
比較隨機森林算法在單一信號數據集與多源融合數據集下的性能表現,驗證了多源信息融合對于疲勞駕駛檢測模型精度提高效果很好,然后進一步將建立的多源信息融合數據集分別輸入基于SVM、GBDT 以及隨機森林構建的分類模型進行分析比較,驗證了隨機森林算法作為疲勞駕駛檢測分類算法模型的優越性,檢測方法流程如圖3 所示,調參后得到最優參數下的疲勞駕駛檢測分類模型。

Fig.3 Flow of the method of fatigue driving detection based on random forest and multi-source information fusion圖3 隨機森林與多源信息融合的疲勞駕駛檢測方法流程
3.2.1 多源信息融合數據集優越性
實驗分別用心跳、呼吸、脈搏、握力單一信號進行隨機森林分類算法模型訓練,對比分析多源信息融合數據集訓練的分類模型在疲勞駕駛檢測中的性能表現。測試中得到的最優檢測分類效果如圖4 所示。

Fig.4 Fatigue driving status detection effect of single signal and multi-source information fusion圖4 單一信號與多源信息融合疲勞駕駛狀態檢測效果
從表2 中各疲勞狀態等級的檢測準確率可以看出,基于單一信號的疲勞駕駛檢測模型可能在某一類別具有較好的分類精度,但總體上檢測準確度遠遠不如基于多源信息融合的疲勞駕駛檢測模型。

Table 2 Comparison of detection accuracy between single signal and multi-source information fusion表2 單一信號與多源信息融合檢測準確率比較
多源信息融合后的隨機森林算法模型最佳檢測精度達89%左右,而單一數據集的檢測精度只有75%左右。相較于單一數據集,基于多源信息融合的隨機森林模型對于疲勞狀態的檢測率提高了14%,驗證了多源信息融合的優越性。
3.2.2 不同分類算法下的檢測模型性能
通過建立的多源信息融合數據集分別訓練SVM、GBDT 以及隨機森林算法模型。將樣本數據集隨機劃分為訓練集和測試集,用訓練集訓練GBDT 分類模型和隨機森林分類模型,測試集測試得到分類模型效果[20]。隨機森林分類模型訓練過程中的主要調整參數為:決策樹建立的最大特征數目(max-feature)、決策樹的最大深度(max-depth)、生成決策樹個數(n_estimators)。通過多次訓練,分類模型最高檢測精度下的參數如表3 所示。

Table 3 Optimal parametersof random forest model表3 最優隨機森林模型參數
訓練得到多源信息融合數據集學習下的SVM、GBDT以及隨機森林算法模型后,將整個數據集輸入3 個疲勞駕駛檢測模型分別進行測試,得到不同分類算法下的疲勞駕駛狀態檢測分類輸出效果圖(見圖5)和相關準確率參數比較。

Fig.5 Fatigue driving status detection effects of Different algorithm models圖5 不同算法模型疲勞駕駛狀態檢測效果
結合圖5 所示的檢測效果可以看出,隨機森林算法模型對于各等級的疲勞狀態檢測都有很好的表現,在識別精度方面相較于SVM 與GBDT 都有不小提升。此外,隨機森林可以并行生產決策樹,檢測模型對于疲勞狀態的檢測速度也優于SVM 和GBDT。為了避免測試數據集劃分偶然性造成實驗效果的偏差,模型自動多次隨機抽樣建立測試集,分析不同分類算法的檢測精度,取實驗中多次檢測精度的平均值,實驗結果如表4 所示。

Table 4 Comparison of detection accuracy of different algorithm models表4 不同算法模型檢測精確度比較
以上實驗驗證了基于隨機森林與多源信息融合的算法模型能精確實現對疲勞駕駛狀態的檢測,多源信息融合后的隨機森林算法模型最佳檢測精度達89.18%。與GBDT和經典SVM 相比,其訓練速度更快、準確度更高,基本達到了對于疲勞駕駛狀態的實時高精度檢測要求。
本文基于隨機森林與多源信息融合的疲勞駕駛檢測方法,信號采集模塊均采用微型傳感器,減少與駕駛員的深度接觸,行車過程中不會對駕駛員造成身心上的干擾。將采集到的多種信號經過濾波處理后建立可靠度高的融合數據集,設計隨機森林模型對疲勞狀態數據集進行學習訓練,實現了對疲勞駕駛的高精度、高速度檢測,避免了只依據單一信號檢測誤差較大的問題。此外,針對不同駕駛員的個體差異性,疲勞駕駛檢測模型容易出現偏差,未來需分析更多能準確反映駕駛員疲勞狀態的信號特征,盡量選取那些受駕駛環境及個體差異影響較小的特征值,同時優化分類算法,使分類模型具有自學習能力,以通過自學習訓練達到適應個人的最優疲勞駕駛分類模型。