基于車輛運行數據的疲勞駕駛狀態檢測分析
引言:
疲勞駕駛是導致交通事故的主要原因之一,及時檢測疲勞駕駛,并提醒駕駛員 集中注意力,對保證安全行車具有重要意義. 本文基于 CAN(Controller Area Network)總線采集的車輛運行狀態數據,提取了 18項與駕駛行為相關的特征,并采用隨機森林算法對疲勞駕駛進行識別。
結果表明整體的識別準確率為 0.785,其中召回率為 0.61,即 61%的疲勞駕駛狀態可被識別出來. 實驗表明,基于車輛運行狀態的疲勞駕駛檢測具有一定的效果,且與其他客觀的疲勞駕駛檢測方法(基于駕駛員生理指標和圖像面部特征)相比,具有簡單方便,不影響駕駛,且成本低的優勢.
目前, 國內外對疲勞駕駛的客觀檢測方法主要有三種:
(1) 基于駕駛員 生理指標, 如腦電信號、心電信號 、脈搏等;
(2) 基于駕駛員行為特征,如眼動特征 、瞳孔大小、眨眼頻率等;
(3) 基于車輛運行狀態,如車道偏離、轉向盤握力、轉向盤轉角、油門剎車等.
第一種方法依賴于直接接觸駕駛員, 需駕駛員佩戴設備進行疲勞檢測 . 通過駕駛員處于疲勞狀態時在生理指標(如腦部組織含氧情況、心電信號、肌電信號等)特征上的變化,檢測駕駛員是否處于疲勞狀態 . 這種方法檢測疲勞駕駛準確度高,但是成本高且有可能影響駕駛.
第二種方法依賴于圖像檢測, 根據駕駛員的眼動特征對駕駛員的疲勞狀態做出判斷. 這種方法受周圍環境(如光暗)及攝像頭位置的影響較大.
第三種方法中,通過分析正常與疲勞駕駛時, 車速、發動機轉速、方向盤轉角、剎車、油門、車道偏離等數據的差異,生成用于檢測疲勞駕駛的模型 . 目前已有很多學者研究從車輛運行時的方向盤轉角速度、車輛行駛速度、發動機轉速等數據判斷疲勞駕駛員的疲勞狀態. 如利用 BP神經網絡對駕駛員疲勞駕駛時的車輛行駛特性進行訓練, 并建立疲勞駕駛行為的檢測模型.
其中,車道偏離依賴于道路車道情況(清晰度)的影響,較難采集. 而轉向、油門剎車、車速等數據采集較為簡單, 同時較為穩定可靠. 研究表明, 當駕駛員處于疲勞狀態時, 對油門剎車、換擋及轉向盤等操作能力會下降 .
當前主流的疲勞駕駛檢測是通過防疲勞監控設備對司機面部圖像進行判別, 這種方法在實際應用中受到周圍環境及司機眼部大小的影響較大,同時設備較為昂貴. 而通過車輛運行數據進行判別,成本較低,且數據較為可靠.
目前,基于車輛運行數據的疲勞駕駛研究大部分采用特定的實驗數據, 與實際司機的駕駛有一定的偏差. 本文以CAN(Controller Area Network)總線采集的真實的車輛運行數據為基礎, 綜合分析疲勞駕駛的數據規律模式,其結論更符合實際情況,可有效用于司機的疲勞檢測與預警.
1
車輛運行數據與疲勞駕駛檢測
本文基于CAN總線采集實際的車輛運行數據和防疲勞監控設備上報的疲勞預警數據,將車輛運行數據切分為清醒狀態樣本與疲勞狀態樣本,構建判斷疲勞駕駛的模型,實現通過車輛運行數據檢測疲勞駕駛狀態的目的.整體流程如圖 1 所示.
(1) 數據采集與傳輸.
數據采集部分包括實時采集車輛的運行數據和疲勞預警的數據, 并通過 GPRS/GSM/3G/4G網絡將數據傳輸到數據庫. 其中,CAN總線采集的車輛運行數據包括的維度主要有記錄日期和時間、車輛ID、駕駛員、位置經度、位置緯度、CAN速度、上下行方向、電機轉速、發動機轉速、檔位、電子剎車、手剎、油門踏板百分比、點火信號、司機制動踏板開度、開關狀態(轉向燈信號、門開關信號).
防疲勞監控報警數據主要包括記錄時間、線路ID、車牌號、駕駛員 ID、預警的行為(疲勞相關的行為包括打哈欠、分神提醒和危險駕駛)及視頻圖片. 其中,分神提醒:當發現駕駛員進入瞌睡狀態,或者低頭看手機 1~3 s 等分神動作, 設備將發出分神提醒;危險駕駛:觸發分神提醒后,仍然沒有恢復正常的駕駛姿勢,則觸發危險駕駛報警.
(2) 疲勞駕駛與清醒狀態的數據切分.
疲勞駕駛數據的判斷規則為:當某段時間持續上報疲勞駕駛相關的行為預警時, 專家根據上報的圖片和視頻再判斷該段時間司機是否為疲勞駕駛。
若是, 則為這段時間打上疲勞駕駛的標簽.若未出現預警信息, 則為這段時間打上清醒狀態的標簽. 基于時間段標簽,將車輛運行狀態數據切分為疲勞狀態數據和清醒狀態數據. 不同狀態數據最后再以 1 分鐘的時長切割為一個樣本.
(3) 構建疲勞駕駛檢測模型.
基于疲勞駕駛樣本與清醒狀態樣本, 構建二分類模型,使得可基于 CAN采集的車輛運行數據識別出疲勞駕駛,從而可在司機駕駛過程中,對疲勞狀態進行預警,以提高駕駛安全.
2
求解算法
本文基于車輛運行數據, 構建疲勞駕駛檢測模型,主要分為以下幾個步驟:首先從樣本數據中提取駕駛行為特征,包括司機對車速、油門踏板開度、剎車踏板開度、轉彎等的操作特征;
再通過分析各個特征之間的相關關系以及特征與是否疲勞的關系;最后, 采用隨機森林(Random Forest)算法對疲勞駕駛數據進行判別,達到預警的目的. 整體的模型框架如圖 2所示.
2.1 數據樣本描述
數據源來自 某公交公司同一條線路, 通過詢問 3 名公交司機來人工篩選出其疲勞駕駛和清醒狀態駕駛的 CAN數據(車輛運行狀態數據), 數據采集間隔為0.2 s. 時間窗口設定為1 min,收集到的樣本數如表1 所示.
疲勞駕駛樣本數量占比 32.19%, 將近 1/3 的比例 .
2.2 駕駛特征提取
當司機處于疲勞駕駛時, 其對于車輛的駕駛預判能力和感知外界環境的能力會有所下降, 導致司機對于車速、油門踏板、剎車踏板、轉彎等的控制穩定性和靈活度與清醒狀態有一定的差異.
因此, 我們可從這些維度中提取與疲勞駕駛相關的特征.
CAN采集的與司機駕駛行為相關的車輛運行數據維度包括:記錄時間、車牌號、駕駛員 ID、檔位、速度、加速度、油門踏板開度、剎車踏板開度、轉向燈信號、門開關信號以及GPS經緯度. 根據業務理解和數理統計的知識, 對收集的駕駛數據進
行特征提取,包括以下特征:
(1) 車速的均值、中位數和標準差:車速均值表示車速的快慢、中位數描述車速的集中趨勢,標準差表現司機對車速控制的平穩性.
(2) 車速的樣本熵. 樣本熵(SampEn)是一種用于度量時間序列復雜性的方法.
(3) 加速度的均值、中位數和標準差.
(4) 加速度絕對值>2 m/s 2 的比例:統計每分鐘記錄的加速度絕對值>2 m/s 2 的記錄次數占總記錄數的比例. 加速度絕對值超過閾值2 m/s 2 說明司機急加速或急剎車.
(5) 油門踏板開合度的均值、中位數、標準差、最大值和樣本熵.
(6) 剎車踏板開合度的均值、中位數、標準差、最大值和樣本熵.一共提取了 18個與司機駕駛行為相關的特征.
2.3 特征分析
通過分析駕駛特征與是否疲勞駕駛之間的關系,可用于獲取與疲勞駕駛最相關的特征,為判別疲勞駕駛提供數據基礎. 所提取的特征數量共18個, 它們之間與是否疲勞的相關關系可采用皮爾森相關系數表示.
皮 爾 森 相 關 系 數 (Pearson Correlation Coefficient) 是一種線性的相關系數,可以用來體現兩個變量之間的相關程度. 兩個特征之間的皮爾遜相關系數,為兩者的協方差和標準差的之商:
式中:X,Y 表示兩個變量的特征值所構成的向量;μ 為特征的均值;σ 為特征的標準差. ρ 的值范圍在[-1,1]之間, 越接近 1, 則兩個特征正相關性越強, 越接近-1, 則兩個特征負相關性越強 . 各駕駛行為特征與是否疲勞駕駛的相關性程度如表2所示 .
從相關系數看來, 單個特征與疲勞駕駛的相關度不高.
2.4 疲勞駕駛識別(隨機森林)
隨機森林(Random Forest,RF) 是一種基于分類樹的集成學習算法, 由 Breiman于 2001 年提出 .隨機森林是由隨機子空間算法和裝袋算法集成的一種算法, 其基本原理是通過隨機采樣特征和樣本, 生成很多決策樹, 每一顆決策樹是不相關的,將多棵決策樹組合在一起就形成森林. 通過各決策樹進行投票決策, 最終選擇多數投票(Bagging)的策略來決定結果 .
具體的算法步驟如下:
(1) 記原始訓練集中有 M 個特征,樣本總數為N . 采用 Bootstrap抽樣技術,從訓練集中抽取 N 個樣本形成訓練子集.
(2) 隨 機 選 取 m 個 特 征 作 為 特 征 子 集( m≤M ), 從這 m 個特征中選擇最優的切分點再做節點分裂, 直到節點的所有訓練樣例都屬于同一類. 節點通常按基尼指數、信息增益率、均方差等規則分裂,且在分裂過程中完全分裂不剪枝.
(3) 重復(1)、(2)步驟 k 次即可得到由 k 棵決策樹構建而成的隨機森林.
(4) 使用隨機森林進行決策. 若設 x 代表測試樣本, k 代表決策樹數量, h i 代表單棵決策樹,i∈ { 1,…,k }, Y 代表輸出變量即分類標簽, I 為指示性函數, H 為隨機森林模型,則決策公式 [16] 為
基于采集的車輛運行數據(檔位、速度、油門踏板開度、剎車踏板開度、時間等), 共提取了駕駛行為特征 18 項. 隨機森林在處理高維特征的樣本數據時, 通常能得到極好的準確率.
且在訓練完之后,隨機森林能夠給出特征重要度的排名 . 隨機森林算法還具有很強的抗干擾能力 . 如果數據有很大一部分的特征遺失, 用隨機森林算法仍然可以維持準確度. 此外, 該算法的抗過擬合能力也很強 .
3
模擬計算與結果分析
本文集中于分析疲勞狀態下的駕駛行為特征,并通過差異性來檢測疲勞. 通過隨機分配的方式, 將數據集的 70%拆分為訓練集, 30%拆分為測試集.本次實驗使用了隨機森林(RF)對數據進行訓練, 算法經過剪枝和參數調優 , 得到最終的實驗結果如表3 所示.
考慮到本文所使用數據的樣本標簽分布并不均勻, 因此在評價實驗結果所采用的指標中除了判斷算法的準確率以外, 也使用了召回率和精確率來進一步對有偏數據的實驗結果進行評價. 具體指標說明如下.
Recall:召回率, 表示疲勞駕駛被正確檢測出來的概率, 即預測為疲勞駕駛實際也為疲勞駕駛的樣本數與總的實際疲勞駕駛的樣本數的比值,即 20/(20+13) = 0.61.
Precision:精確率, 表示正確預測出疲勞駕駛的比例, 即預測為疲勞駕駛實際也為疲勞駕駛的樣本數與總的預測為疲勞駕駛的樣本數的比值,即 20/(20+10)=0.67.
Accuracy:準確率,識別正確的概率,實際為清醒駕駛預測也為清醒駕駛的樣本數與實際為疲勞駕駛預測也為疲勞駕駛的樣本數之和, 再除以總的樣本數,即(64+20) / (64+20+13+10) = 0.785.將邏輯回歸、支持向量機和決策樹算法應用
于本次實驗的數據,實驗結果如表4所示.
將各類算法的結果與隨機森林做比較,如圖 3所示.
可以看出隨機森林的準確率和召回率均大于其他三種算法, 說明隨機森林算法相比較更適用于對疲勞駕駛的判別.
4
結 論
本文基于車輛運行時采集的車速、油門踏板開合度、剎車踏板開合度等數據,提取與駕駛行為相關的 18 項特征, 對駕駛員的疲勞狀態進行了分析和檢測。
與基于駕駛員生理指標和圖像面部狀態的疲勞駕駛檢測相比, 具有方法簡單且成本低的優勢. 本文實驗采用了隨機森林、邏輯回歸、支持向量機和決策樹這幾種算法對樣本數據進行訓練并測試訓練結果.
實驗表明,隨機森林算法對疲勞狀態的識別效果最好,其中:召回率為0.61,即表明其中有 61%的疲勞狀態能被識別出來;精確率為0.67,即識別出來的疲勞駕駛狀態有67%的概率是真的疲勞駕駛狀態;總體的準確率為0.785,表明隨機森林算法的識別準確率為 78.5%. 結果表明通過車輛運行狀態數據檢測駕駛員疲勞狀態具有一定的可行性和實用性.
工程師必備
- 項目客服
- 培訓客服
- 平臺客服
TOP




















