羅旭 張巖 楊亮
(沈陽師范大學,沈陽 110034)
駕駛疲勞是導致交通事故發(fā)生的重要因素。在我國,疲勞駕駛引起的事故約占總事故數(shù)量的20%[1]。全球每年發(fā)生的交通事故高達10 多億次,且疲勞駕駛造成的事故死亡人數(shù)占所有交通事故死亡人數(shù)的70%左右[2]。因此,及時準確地識別駕駛疲勞并進行預警,對交通安全具有重要意義。
識別疲勞駕駛的方法主要有面部圖像識別法、眼動識別法、肌電信號分析法和腦電信號分析法等[3],其中腦電信號分析法被認為是識別疲勞駕駛狀態(tài)的“金標準”[4]。文獻[5]通過分析運動成像任務中的頂葉α 波和額葉θ 波,發(fā)現(xiàn)人感到疲勞時注意力水平下降,導致α 能量增加。文獻[6]提出了一種基于模型的特征提取策略,將主成分分析網(wǎng)絡(Principal Component Analysis Net,PCANet)實際應用于基于腦電圖(Electro-EncephaloGram,EEG)的駕駛疲勞識別研究,獲得了較高的識別精度和效率,并發(fā)現(xiàn)大腦的頂葉和枕葉與駕駛疲勞密切相關。文獻[7]提出了基于前額腦電信號的多尺度小波系數(shù)作為特征指標的識別方法,理論上駕駛疲勞識別的平均正確率達91.8%。文獻[8]基于疲勞駕駛者的腦電波和正常駕駛者的腦電波有明顯區(qū)別的特點,設計了一套實時疲勞駕駛檢測與自動報警系統(tǒng)。研究發(fā)現(xiàn),在駕駛員疲勞駕駛過程中,腦電信號的功率譜比值表現(xiàn)出規(guī)律性變化[9-11]。文獻[12]基于長短期記憶(Long Short-Term Memory,LSTM)網(wǎng)絡與卷積神經(jīng)網(wǎng)絡(Convolutional Neural Networks,CNN),以單通道腦電信號中的部分特征識別受試者獨立的嗜睡狀態(tài),平均識別準確率為72.97%。文獻[13]在時空域深度卷積雙向長短期記憶神經(jīng)網(wǎng)絡模型中,對非疲勞與疲勞2 種精神狀態(tài)進行分類測試評估,分類精度均約為87%。
現(xiàn)有的基于腦電的疲勞識別方法,特別是基于LSTM 分類網(wǎng)絡的識別方法,通常使用單通道或少數(shù)局部通道的腦電信號進行分析,且提取的腦電特征值維度較低,導致分類性能不穩(wěn)定。本文采集真實駕駛環(huán)境下的駕駛員非疲勞與駕駛疲勞狀態(tài)腦電信號,利用離散小波變換對腦電信號進行濾波并提取多維度特征值,采用LSTM神經(jīng)網(wǎng)絡對2類特征數(shù)據(jù)進行分類識別,通過試驗數(shù)據(jù)分析通道位置與通道數(shù)量對分類性能的影響,并采用合適的特征組合與通道組合獲得較好的分類性能。
在真實的高速公路駕駛環(huán)境下使用Emotiv 腦電儀采集腦電信號,采樣率為128 Hz,如圖1所示。
圖1 Emotiv腦電儀
Emotiv 腦電儀14 個通道布局參照10-20 系統(tǒng)國際標準,如圖2所示。
圖2 10-20系統(tǒng)國際標準的通道
被試者年齡范圍為30~55 歲,身體健康且無睡眠相關疾病,自愿參與試驗。在采集腦電前48 h內,禁止被試者飲用對神經(jīng)產(chǎn)生刺激的飲品,被試者沒有高水平的身心活動,保證正常的睡眠和飲食。
根據(jù)《中華人民共和國道路交通安全法實施條例》,駕駛員連續(xù)駕駛4 h 即認定為駕駛疲勞。在腦電采集試驗中,當駕駛員駕駛時間約為10 min 時,采集3 min的腦電數(shù)據(jù)作為非疲勞數(shù)據(jù),當駕駛時間達4 h 以上時,采集3 min 的腦電數(shù)據(jù)作為駕駛疲勞數(shù)據(jù),共采集了33名駕駛員的腦電數(shù)據(jù)。為提高駕駛疲勞數(shù)據(jù)的準確性,在駕駛4 h 后,每名駕駛員填寫《疲勞癥狀自評量表》[14],自評量表得分大于平均分的駕駛員(共16名)的腦電數(shù)據(jù)被選為試驗組數(shù)據(jù)。
在休息狀態(tài)下,經(jīng)過4 h 被試者也會積累一定的疲勞,因此還需要采集休息狀態(tài)開始時和休息4 h后的2種腦電信號作為對照組數(shù)據(jù)。試驗組和對照組數(shù)據(jù)都用于神經(jīng)網(wǎng)絡的分類訓練與測試,如果在測試結果中,試驗組的分類準確率明顯高于對照組,則可驗證算法對非疲勞與駕駛疲勞分類的有效性,即排除時間因素。對照組中采集了16個被試者的腦電信號,每次采集時長為3 min。
腦電信號在采集過程中摻雜大量噪聲,在識別前必須經(jīng)過濾波。針對腦電信號的非線性與非平穩(wěn)性的特點,考慮到小波變換是較為有效的時頻分析方法[15],因此本文采用快速離散小波變換(Discrete Wavelet Transformation,DWT)[16]設計濾波器。信號經(jīng)小波變換后,可產(chǎn)生壓縮式的小波系數(shù),分別為代表原信號低頻部分的逼近小波系數(shù)和代表高頻部分的細節(jié)小波系數(shù)。腦電信號經(jīng)離散小波變換多級分解,得到頻率低于32 Hz(腦電信號頻率主要分布在0~30 Hz范圍內)的4個子帶內的小波包系數(shù),從而過濾掉頻率較高的干擾信號。離散小波分解過程如下:腦電信號經(jīng)首次分解,得到第1層低通逼近分量A1和高通細節(jié)分量D1;對A1繼續(xù)分解得到第2層的逼近分量和細節(jié)分量AA2和DA2;以此類推,一直分解到第4 層。在第4 層中,將小波分解擴展為小波包分解,即除了分解逼近分量AAA3,得到AAAA4和DAAA4外,還分解細節(jié)分量DAA3,得到ADAA4和DDAA4。為表述方便,將這4 個分量分別標記為P1、P2、P3和P4。每個分量包含若干分解得到小波系數(shù),分解過程如圖3所示。
圖3 小波分解過程
為提高2 種狀態(tài)小波系數(shù)的區(qū)分度,將小波系數(shù)的多種特征值組合在一起構成特征向量,這些特征值包括小波系數(shù)的最大值、最小值、均值、標準差、能量值和相對能量值。設Ejmax、Ejmin、Ejavg和Ejstd分別為分量Pj中小波系數(shù)的最大值、最小值、平均值和標準差。
小波系數(shù)能量值計算如下:
式中,xj(i)為分量Pj的第i個小波系數(shù);Ej為分量Pj的能量值。
分量相對于整體的相對能量值為:
式中,Ejr為能量值Ej與全部4 個分量能量之和的比值。
分量之間的相對能量為:E1/E2、E2/E3、E3/E4、(E1+E2)/(E3+E4)。
由以上特征值構成含28 個特征值的特征向量為:[E1;E2;E3;E4;E1r;E2r;E3r;E4r;E1max;E2max;E3max;E4max;E1min;E2min;E3min;E4min;E1avg;E2avg;E3avg;E4avg;E1std;E2std;E3std;E4std;E1/E2;E2/E3;E3/E4;(E1+E2)/(E3+E4)]。
特征向量所用的腦電數(shù)據(jù)需要從固定周期的分析窗口時間內采集,分析窗口的時長和采集頻率決定采集腦電信號的數(shù)量??紤]到實際應用中的疲勞識別實時性要求,針對128 Hz 的采集頻率,本文設定分析窗口時長為1 s。對于1 個腦電儀通道,1 s 的分析窗口內可以采集128 組腦電數(shù)據(jù)。從128組腦電數(shù)據(jù)中提取與之對應的28個特征值,這樣由每次采集的3 min 腦電數(shù)據(jù),可構造一個180×28 的特征矩陣,這些特征矩陣將作為神經(jīng)網(wǎng)絡的訓練與測試數(shù)據(jù)。
LSTM 神經(jīng)網(wǎng)絡是一種特殊的遞歸神經(jīng)網(wǎng)絡[17],其單元體系結構如圖4 所示。LSTM 神經(jīng)網(wǎng)絡的核心部件是LSTM 單元,LSTM 單元通過使用3 個門對單元狀態(tài)進行移除或添加狀態(tài)信息。
圖4 LSTM單元體系結構
第1 個門(遺忘門)決定從單元中移除哪些信息,此門基于sigmoid函數(shù)構建:
式中,σ為sigmoid激活函數(shù),負責將數(shù)值壓縮在(0,1)范圍內;W為權值矩陣;x為t時刻輸入向量;h為(t-1)時刻單元隱藏狀態(tài);bf為偏移向量;ft為t時刻遺忘門狀態(tài)。
第2 個門(輸入門)由sigmoid 函數(shù)和tanh 雙曲正切激活函數(shù)組合構成,2 個函數(shù)分別負責決定哪些值將被更新和創(chuàng)建更新的向量,tanh 函數(shù)負責將數(shù)值壓縮在(-1,1)范圍內:
根據(jù)式(3)~式(5)的函數(shù)值更新t時刻單元狀態(tài)ct:
式中,Wi、Wc為權值矩陣;bi、bc為偏移向量;it為t時刻輸入門狀態(tài);c~t為t時刻長記憶輸出值;⊙為哈達瑪積(Hadamard Product)。
第3 個門(輸出門)基于更新的單元狀態(tài)和sigmoid 函數(shù)計算當前狀態(tài)的最后輸出,此sigmoid函數(shù)決定單元狀態(tài)的哪一部分作為輸出信息:
式中,ot為t時刻輸出門狀態(tài);Wo為權值矩陣;bo為偏移向量。
由LSTM單元構成的LSTM層為LSTM神經(jīng)網(wǎng)絡中的核心組成部分。
具有C個長度與S個特征的時序X通過LSTM 層的流程如圖5 所示。
圖5 LSTM單元體系結構
第1 個LSTM 單元使用網(wǎng)絡的初始狀態(tài)和第1 個時間步的序列來計算第1 個輸出和更新后的單元狀態(tài)。其中ht和ct分別表示t時刻的輸出和單元狀態(tài),h的長度為D。在時間步t上,該單元使用網(wǎng)絡的當前狀態(tài)(ct-1,ht-1)和下個時間步的序列來計算輸出和更新后的單元狀態(tài)ct,單元狀態(tài)包含從前面的時間步中獲得的信息。在每個時間步中,該層都會在單元狀態(tài)中添加或刪除信息,并使用不同的門控制這些信息的更新。
4.2.1 網(wǎng)絡結構
神經(jīng)網(wǎng)絡采用7層結構,分別為順序輸入(Sequence-Input)層、LSTM 層1、隨機失活(Dropout)層、LSTM 層2、全連接(FullyConnected)層、Softmax 層、類 輸 出(ClassOutput)層,如圖6所示。
圖6 神經(jīng)網(wǎng)絡結構
該網(wǎng)格結構中:SequenceInput 層為序列數(shù)據(jù)的輸入層;Dropout 層[18]用于控制輸入線性變換的神經(jīng)元斷開比例,設置合適的置零概率可以防止網(wǎng)絡過擬合;LSTM 層可以學習時間序列和序列數(shù)據(jù)中的時間步之間的長期依賴關系,與Dropout 層共同完成從原始腦電信號中學習特征的功能;Softmax[19]層負責將帶權輸入進行歸一化;FullyConnected 層將學到的特征映射到樣本標記空間;ClassOutput 層為輸出層,輸出0 或1,分別表示非疲勞與疲勞。2個LSTM 層與FullyConnected 層都使用sigmoid 激活函數(shù)。
4.2.2 關鍵參數(shù)確定
SequenceInput 層的輸入序列維度設置為28×n(對應n個通道的28個特征值)。通過試驗,確定2個LSTM 隱含層的節(jié)點數(shù)和Dropout 層的概率值,其他參數(shù)采用MATLAB 推薦值。測試方法為:以試驗組每個通道的特征矩陣作為輸入對網(wǎng)絡進行多次訓練,在每次訓練中,2 個隱含層分別取2i(i=1,2,…,10)個節(jié)點,Dropout 層的概率分別取0.1、0.2、……、0.9。通過統(tǒng)計對比14個通道(每個通道900次測試)的所有測試結果發(fā)現(xiàn),當?shù)?隱含層為128個節(jié)點,第2隱含層為64 個節(jié)點且Dropout 層的概率為0.2 時,網(wǎng)絡不會出現(xiàn)明顯的過擬合,同時神經(jīng)網(wǎng)絡具備較好的分類性能,平均分類準確率維持在73%以上,據(jù)此2個隱含層的節(jié)點數(shù)分別設置為128×n與64×n。
分類試驗利用構造的特征數(shù)據(jù)作為網(wǎng)絡輸入,分別在單通道和多通道方案下,對LSTM神經(jīng)網(wǎng)絡進行訓練和測試試驗,根據(jù)試驗結果對分類性能進行分析。
在單通道方案中,以每個通道的特征矩陣作為輸入數(shù)據(jù)對網(wǎng)絡進行分類訓練并測試。試驗組與對照組在單通道方案下的分類準確率的均值與標準差測試結果如表1所示。
表1 單通道分類準確率的均值和標準差 %
對比發(fā)現(xiàn),試驗組各通道下的分類準確率明顯高于對照組。這表明,單通道方案下LSTM網(wǎng)絡對非疲勞與駕駛疲勞的特征數(shù)據(jù)具備特定的分類能力。
然而,單通道分類能力仍然較低(分類準確率不到80%),較高的標準差也說明分類性能不穩(wěn)定。因此,本文將更多通道特征數(shù)據(jù)輸入神經(jīng)網(wǎng)絡,以改善分類性能。
在多通道方案中,為盡可能獲得較高的準確率,優(yōu)先選擇單通道分類準確率較高的通道進行組合。各單通道平均分類準確率在腦皮層上的分布情況如圖7 所示。由圖7 可知,處于腦皮層前端的通道分類準確率較高,而處于同一水平線上的左右對稱通道上的準確率接近。
圖7 LSTM網(wǎng)絡各通道平均準確率分布
據(jù)此,多通道方案采用7個通道組合方案,如表2所示。每個方案中,優(yōu)先選擇靠前的通道參與組合。
表2 多通道組合方案
在每個多通道組合方案中,將所選擇的多個通道的特征矩陣合并,并將合并的矩陣作為輸入矩陣對LSTM 網(wǎng)絡進行訓練并測試,得到試驗組與對照組的多通道分類準確率的均值和標準差,如表3所示。
表3 多通道分類準確率的均值和標準差 %
由表3可知,在每種多通道方案中,試驗組的分類性能都明顯較對照組高且更穩(wěn)定,分類準確率隨著通道數(shù)量的增多逐漸提高,從4通道方案開始,準確率明顯提高,特別是在通道數(shù)量最多的14通道方案中,試驗組的分類準確率可達96.1%。試驗結果表明,利用多通道方案,可使LSTM 網(wǎng)絡對非疲勞與駕駛疲勞2個狀態(tài)的腦電信號進行有效的分類識別。
駕駛疲勞識別準確率受采集環(huán)境、通道選擇、特征提取、分類算法等因素綜合影響,其中特征提取與分類算法為關鍵因素。為評估本文識別方法與其他方法的性能差異,以相同的14通道的多維特征數(shù)據(jù)分別在支持向量機(Support Vector Machine,SVM)、反向傳播(Back Propagation,BP)神經(jīng)網(wǎng)絡、CNN 分類器中進行分類測試,得到如表4 所示的平均分類準確率。
表4 LSTM 與其他分類器的平均分類準確率比較 %
從表4中可以看出,使用LSTM分類器對以統(tǒng)計值、能量值和相對能量值組成的多維特征值進行分類,可以獲得更高的分類準確率。
在計算機(CPU 主頻為2.4 GHz,內存為8 GB)中,用經(jīng)過訓練的LSTM 網(wǎng)絡(14 通道方案),對1 s的14 通道腦電數(shù)據(jù)進行1 000 次仿真分類運算,記錄運算平均運行耗時。結果顯示,小波濾波平均耗時10.6 ms,特征提取平均耗時5.2 ms,網(wǎng)絡對特征數(shù)據(jù)進行分類運算平均耗時1.8 ms,仿真過程合計平均耗時33.8 ms。
計算機的運算單元不代表車載駕駛疲勞實時識別單元,因此,以上仿真結果還不能直接說明疲勞識別算法在應用中的實時性。在實際應用中,為保證實時性,要求分類運算的合計耗時小于腦電信號采集窗口耗時(1 s)。因為單元計算能力主要取決于處理器的主頻(在內存等其他因素相同的情況下),因此根據(jù)仿真中2.4 GHz主頻對應33.8 ms耗時的情況,按比例計算得知,要實現(xiàn)耗時低于1 s,主頻需高于81.12 Hz。在實際應用中,符合該主頻要求的車載單元芯片容易獲取,采用頻率足夠高的車載芯片,可以保證疲勞識別算法的實時性。
本文在真實駕駛環(huán)境下采集非疲勞與駕駛疲勞腦電信號,經(jīng)小波濾波,從小波系數(shù)中提取多維特征數(shù)據(jù)對LSTM 神經(jīng)網(wǎng)絡進行分類訓練與測試。試驗結果表明,LSTM 神經(jīng)網(wǎng)絡對2種特征數(shù)據(jù)的分類性能與構造特征數(shù)據(jù)的通道數(shù)量相關,通道數(shù)量越多,分類準確率越高,特別是在14通道方案中,可以得到96.1%的分類準確率。仿真數(shù)據(jù)顯示,腦電數(shù)據(jù)的濾波、特征提取和網(wǎng)絡分類計算的總耗時遠小于信號的采集耗時,算法具備良好的實時性?;谛〔ㄌ卣髋cLSTM 神經(jīng)網(wǎng)絡分類器的分類方法可應用于駕駛疲勞的識別。