石錦璇,王 昆
(山西大學(xué) 物理電子工程學(xué)院,山西 太原 030006)
近年來(lái),隨著我國(guó)汽車保有量急劇增長(zhǎng),交通事故也頻頻發(fā)生。其中,疲勞駕駛是引發(fā)交通事故的主要原因之一,嚴(yán)重威脅著道路交通安全。研究表明,疲勞駕駛狀態(tài)下發(fā)生事故或接近發(fā)生事故的風(fēng)險(xiǎn)是清醒駕駛狀態(tài)下的4~6倍[1-2]。因此,開(kāi)發(fā)車載疲勞預(yù)警系統(tǒng),準(zhǔn)確快速檢測(cè)駕駛員疲勞狀態(tài)成為研究的熱點(diǎn)。
與傳統(tǒng)的主觀評(píng)價(jià)方法相比,利用生理電信號(hào)來(lái)評(píng)價(jià)駕駛員駕駛疲勞狀態(tài)能做到客觀準(zhǔn)確,是一種較有前景的疲勞狀態(tài)研究方法。在眾多的生理信息指標(biāo)中,腦電信號(hào)(EEG)一直被譽(yù)為疲勞監(jiān)測(cè)方法的“金標(biāo)準(zhǔn)”。它與精神和身體活動(dòng)密切相關(guān)。車輛駕駛涉及運(yùn)動(dòng)、推理、視覺(jué)和聽(tīng)覺(jué)處理、決策、感知和識(shí)別等各種功能。所有與駕駛相關(guān)的身心活動(dòng)都反映在腦電圖信號(hào)中[3]。近年來(lái),深度學(xué)習(xí)在許多具有挑戰(zhàn)性的分類任務(wù)中取得了成功,深度學(xué)習(xí)已成為腦電信號(hào)處理領(lǐng)域的一個(gè)熱點(diǎn)。例如,Ogino等[4]比較了功率譜密度(PSD)、自回歸(AR)建模和多尺度熵(MSE)3種方法對(duì)前額葉單通道腦電信號(hào)進(jìn)行特征提取。利用PSD特征和逐步線性判別分析(SWLDA)進(jìn)行特征選擇,利用支持向量機(jī)(SVM)進(jìn)行分類,獲得了72.7%的分類準(zhǔn)確率。Venkat和Chinara[5]提出了一種利用小波數(shù)據(jù)包變換(WPT)提取時(shí)域特征的單通道腦電信號(hào)疲勞檢測(cè)模型。Foong等[6]進(jìn)一步證實(shí)腦電圖的功率帶可以用來(lái)估計(jì)駕駛員疲勞狀態(tài),并在所試駕駛員的腦電圖中都觀察到了β波(12 Hz~35 Hz)功率帶在疲勞前后的明顯變化。張淞杰等[7]采用將經(jīng)驗(yàn)?zāi)B(tài)分解與能量譜算法相結(jié)合的特征提取方法,分析模擬駕駛時(shí)采集的EEG信號(hào),并在粒子群算法優(yōu)化的多層感知超限學(xué)習(xí)機(jī)分類器中實(shí)現(xiàn)對(duì)駕駛員疲勞狀態(tài)的檢測(cè)。Lin等[8]提出了一種4維卷積神經(jīng)網(wǎng)絡(luò)(4DCNN)算法,將腦電圖信號(hào)的所有信息與人類狀態(tài)和行為表現(xiàn)的變化聯(lián)系起來(lái)。4DCNN具有更好的預(yù)測(cè)性能。結(jié)果顯示,與3DCNN相比,4DCNN的均方誤差提高了3.82%,相關(guān)系數(shù)提高了11.98%。
目前,對(duì)于駕駛員腦電信號(hào)疲勞檢測(cè)大都使用單通道腦電信號(hào)作為識(shí)別依據(jù),然后進(jìn)行特征提取、分類檢測(cè)等過(guò)程。然而,這種方式雖然數(shù)據(jù)復(fù)雜度低,計(jì)算簡(jiǎn)便,但在識(shí)別過(guò)程中提取的特征不充分,沒(méi)有考慮到多個(gè)通道腦電信號(hào)間的特征,從而導(dǎo)致識(shí)別準(zhǔn)確率不高,而多通道腦電信號(hào)的維度較高,計(jì)算復(fù)雜。因此,本文提出了基于棧式自編碼的腦電信號(hào)疲勞檢測(cè)模型,對(duì)多通道腦電信號(hào)的疲勞特征進(jìn)行提取,同時(shí)能減少輸入數(shù)據(jù)的特征維度,提高計(jì)算效率。實(shí)驗(yàn)結(jié)果表明,該模型能夠有效識(shí)別駕駛員疲勞狀態(tài),對(duì)駕駛員疲勞檢測(cè)系統(tǒng)的開(kāi)發(fā)具有重要意義。
本文使用的是上海交通大學(xué)提供的SEED-VIG數(shù)據(jù)集[9],共21個(gè)受試者(平均年齡23.3歲,其中女性12人)參與23次模擬駕駛實(shí)驗(yàn),每次實(shí)驗(yàn)持續(xù)時(shí)間約為2 h,在實(shí)驗(yàn)過(guò)程中,以1 000 Hz采樣率收集17個(gè)通道的腦電信號(hào),通道位置如圖1 所示。
圖1 腦電信號(hào)采集通道電極分布圖(CPZ為參考電極)
此外,在實(shí)驗(yàn)過(guò)程中,通過(guò)SMI眼睛跟蹤眼鏡,用PERCLOS標(biāo)號(hào)(單位時(shí)間內(nèi)眼睛閉合時(shí)間所占的百分率)來(lái)標(biāo)記疲勞等級(jí),每8 s計(jì)算一次,每次實(shí)驗(yàn)共885次標(biāo)記。PERCLOS表示受試者當(dāng)前的警惕度,介于(0,1)之間,值越小表示警惕度越高。將PERCLOS指數(shù)按閾值0.35和0.7分為3類:清醒、疲勞、嗜睡,分別標(biāo)記0,1,2。SEED-VIG數(shù)據(jù)集各標(biāo)簽樣本數(shù)量如表1 所示。
表1 數(shù)據(jù)集標(biāo)簽樣本數(shù)量統(tǒng)計(jì)
預(yù)處理包括腦電信號(hào)降采樣和去噪處理。原始信號(hào)的采樣頻率為1 000 Hz,為了減小數(shù)據(jù)的復(fù)雜度,將信號(hào)降采樣到200 Hz。然后通過(guò)一個(gè)1 Hz~50 Hz的帶通濾波器,目的是對(duì)腦電信號(hào)進(jìn)行降噪和去偽跡處理。將得到的50 Hz頻帶進(jìn)行劃分,有兩種劃分方法,一種是傳統(tǒng)的5頻段劃分:δ(1 Hz~4 Hz),θ(4 Hz~8Hz),α(8 Hz~14 Hz),β(14 Hz~31 Hz),γ(31 Hz~50 Hz),另一種是在整個(gè)頻帶中使用2 Hz的頻率分辨率,共25個(gè)頻段。
腦電信號(hào)是一種非平穩(wěn)的隨機(jī)信號(hào),在研究中經(jīng)常使用功率譜密度(PSD)和熵來(lái)分析腦電信號(hào)的頻域特性。傅里葉變換只能單獨(dú)從時(shí)域或頻域表示信號(hào),不能處理時(shí)變信號(hào)。而短時(shí)傅里葉變換(STFT)的出現(xiàn)克服了傅里葉變換不能處理時(shí)變信號(hào)的缺陷。本研究通過(guò)STFT計(jì)算各個(gè)頻帶的功率譜密度和微分熵(DE)特征。
STFT的主要思想是對(duì)信號(hào)加窗,分段做傅里葉變化,減少頻譜泄露,加窗之后的信號(hào)被分割為一組短長(zhǎng)度子序列,子序列可以近似地看為平穩(wěn)序列。窗函數(shù)在整個(gè)時(shí)間軸上移動(dòng)可以得到任意位置附近的時(shí)間段頻譜,實(shí)現(xiàn)時(shí)間局域化。STFT的定義為
(1)
漢寧窗可以看成是升余弦窗的一個(gè)特例,適用于非周期性的連續(xù)信號(hào)。漢寧窗函數(shù)的具體定義為
(2)
本文繪制了幾種常見(jiàn)窗函數(shù)的振幅響應(yīng)以進(jìn)行比較,如圖2 所示。
圖2 幾種窗函數(shù)頻率響應(yīng)特性曲線
從圖2 中可以看出,矩形窗口較窄的主窗口更有利于識(shí)別指定的頻率,但側(cè)頻增益較高,頻譜泄漏嚴(yán)重。此外,從頻域響應(yīng)來(lái)看,漢明窗能夠減少附近的旁瓣泄露,但稍遠(yuǎn)一點(diǎn)的旁瓣泄露比漢寧窗嚴(yán)重。漢寧窗口的主要優(yōu)點(diǎn)是可以使旁瓣互相抵消,消去高頻干擾和漏能,且本文提取的主要特征與頻帶能量有關(guān),因此選擇漢寧窗。
功率譜密度是一個(gè)以頻率為自變量的映射,反映了在頻率成分上信號(hào)有多少功率。在對(duì)信號(hào)進(jìn)行加窗后采用Welch法[10]計(jì)算每一通道EEG信號(hào)的功率譜密度。
微分熵用于測(cè)量連續(xù)隨機(jī)變量的復(fù)雜度,是連續(xù)隨機(jī)變量的熵。與傳統(tǒng)的功率譜密度特征相比,其性能更優(yōu)越[11]。其計(jì)算公式可表示為
(3)
式中:X是一個(gè)隨機(jī)變量;f(X)是X的概率密度函數(shù)。對(duì)于服從高斯分布N(μ,σ2)的時(shí)間序列X,其微分熵可以定義為
(4)
由于頭皮腦電電極是與受試者的頭部皮膚接觸傳導(dǎo)電信號(hào),而腦電信號(hào)又十分微弱,很容易受到其它因素干擾,提取出來(lái)的腦電特征會(huì)包含一些異常值。所以,對(duì)其進(jìn)行特征平滑,不僅可以減小不相關(guān)特征造成的影響,而且特征表現(xiàn)的更加穩(wěn)定。本文采用線性動(dòng)力系統(tǒng)(LDS)平滑[12]的方法,利用疲勞變化的時(shí)間依賴性實(shí)現(xiàn)對(duì)數(shù)據(jù)的平滑和降噪處理。
將5頻帶和25頻帶腦電信號(hào)分別通過(guò)以上方法進(jìn)行特征提取,得到腦電信號(hào)通道、帶寬及特征維度如表2 所示。
表2 疲勞腦電特征維度
棧式自編碼(SAE)神經(jīng)網(wǎng)絡(luò)是一種無(wú)監(jiān)督的人工神經(jīng)網(wǎng)絡(luò),其主要工作是學(xué)習(xí)輸入數(shù)據(jù)的低維表示方式,最終目的是讓輸出近似等于輸入[13]。從結(jié)構(gòu)上看,它是由多個(gè)稀疏自編碼器堆疊而成,分為編碼器和解碼器兩部分。訓(xùn)練方法與普通單層自編碼不同,采用逐層貪婪訓(xùn)練獲得初始權(quán)重和閾值,然后采用反向傳播算法進(jìn)行調(diào)節(jié)優(yōu)化。此外,在訓(xùn)練過(guò)程中還需要加入稀疏性約束,不僅可以減少計(jì)算量,而且可以降低模型的過(guò)擬合風(fēng)險(xiǎn),提高模型的泛化能力,其結(jié)構(gòu)如圖3 所示。
圖3 棧式自編碼結(jié)構(gòu)示意圖
在編碼過(guò)程中,原始輸入信號(hào)為x,通過(guò)編碼器得到隱藏層h,通常隱藏層維度要比輸入層小,以達(dá)到降維的目的。其中,編碼器函數(shù)定義為
h=encoder(x)=f(W·x+b),
(5)
(6)
式中:W′是連接隱藏層和輸出層的權(quán)重矩陣;b′為偏置向量。在模型的訓(xùn)練過(guò)程中,讓輸出信號(hào)盡可能等于輸入信號(hào),即目標(biāo)函數(shù)為
(7)
在預(yù)訓(xùn)練完SAE模型之后,需要對(duì)樣本進(jìn)行有監(jiān)督的訓(xùn)練,以獲得模型準(zhǔn)確率。將訓(xùn)練好的SAE模型復(fù)用編碼器網(wǎng)絡(luò)參數(shù)作為神經(jīng)網(wǎng)絡(luò)初始值,之后通過(guò)反向傳播進(jìn)行微調(diào)至收斂。具體結(jié)構(gòu)如圖4 所示。
圖4 使用棧式自編碼進(jìn)行有監(jiān)督訓(xùn)練
為驗(yàn)證本文基于SAE神經(jīng)網(wǎng)絡(luò)疲勞檢測(cè)模型,搭建了基于Tensorflow-GPU2.2.0的Keras2.3.1深度學(xué)習(xí)框架,操作系統(tǒng)為Windows10,使用AMD Ryzen7 4800H處理器,內(nèi)存大小為16 G,同時(shí)使用NVIDIA RTX2060顯卡來(lái)加快GPU運(yùn)行速度。
SAE神經(jīng)網(wǎng)絡(luò)的輸入層為SEED-VIG數(shù)據(jù)集腦電疲勞特征向量,輸出層節(jié)點(diǎn)數(shù)為3,即3種疲勞狀態(tài)。通過(guò)實(shí)驗(yàn)選擇3個(gè)隱藏層,每個(gè)隱藏層節(jié)點(diǎn)個(gè)數(shù)通過(guò)循環(huán)訓(xùn)練對(duì)比來(lái)確定,第1隱藏層節(jié)點(diǎn)數(shù)為150,第2隱藏層節(jié)點(diǎn)數(shù)為75,第3隱藏層節(jié)點(diǎn)數(shù)為25,然后由全連接層連接到輸出節(jié)點(diǎn)。數(shù)據(jù)集中取20%作為測(cè)試樣本,其余為訓(xùn)練樣本,采用5折交叉驗(yàn)證作為最終結(jié)果。通過(guò)實(shí)驗(yàn)得到最終準(zhǔn)確率為88.61%,準(zhǔn)確率曲線和損失函數(shù)曲線如圖5 和圖6 所示。
圖5 棧式自編碼模型準(zhǔn)確率迭代曲線
圖6 棧式自編碼模型損失函數(shù)迭代曲線
此外,引入均方誤差(RMSE)和皮爾遜相關(guān)系數(shù)(PCC)兩個(gè)統(tǒng)計(jì)學(xué)參數(shù)作為評(píng)價(jià)指標(biāo),結(jié)果更具可靠性,計(jì)算公式為
(8)
(9)
為驗(yàn)證本文分類方法對(duì)腦電信號(hào)疲勞檢測(cè)的有效性,在相同環(huán)境下搭建了支持向量機(jī)(SVM)、多層感知機(jī)(MLP)和隨機(jī)森林分類器(RF)3個(gè)傳統(tǒng)機(jī)器學(xué)習(xí)模型作為對(duì)比實(shí)驗(yàn)。此外,根據(jù)他人研究結(jié)果,選擇對(duì)比了極限學(xué)習(xí)機(jī)(ELM)[14]、連續(xù)條件神經(jīng)場(chǎng)(CCRF)和連續(xù)條件隨機(jī)場(chǎng)(CCNF)[9]神經(jīng)網(wǎng)絡(luò)算法。在相同數(shù)據(jù)集條件下,各種模式識(shí)別方法對(duì)疲勞檢測(cè)的結(jié)果如表3 所示。
表3 不同疲勞檢測(cè)框架結(jié)果對(duì)比
從表3 可以看出,相較于傳統(tǒng)疲勞檢測(cè)方法,基于ELM的算法模型提升了識(shí)別性能,具有時(shí)間依賴性的方法CCRF和CCNF神經(jīng)網(wǎng)絡(luò)的性能提升了很多,但均低于所提出的棧式自編碼疲勞檢測(cè)模型,這也表明了該算法應(yīng)用于駕駛員疲勞檢測(cè)的有效性。
本文從腦電頻段劃分和特征提取兩方面比較不同疲勞特征對(duì)識(shí)別結(jié)果的影響,并獲得最佳特征組合,研究結(jié)果如表4 所示。
表4 不同疲勞特征對(duì)識(shí)別結(jié)果影響
表4 結(jié)果顯示,具有2 Hz頻帶分辨率的腦電特征比具有5個(gè)頻段的腦電特征表現(xiàn)出了更好的性能,使用腦電信號(hào)的微分熵特征比腦電信號(hào)的功率譜密度特征表現(xiàn)出了更好的性能。由此可以得出,在采用2 Hz頻帶劃分的基礎(chǔ)上,提取腦電信號(hào)的微分熵特征可以更好地表達(dá)疲勞狀態(tài),這也驗(yàn)證了前期研究者的結(jié)論[15-16]。
本文針對(duì)傳統(tǒng)駕駛員腦電信號(hào)疲勞狀態(tài)檢測(cè)模型準(zhǔn)確率低、計(jì)算維度復(fù)雜等問(wèn)題,提出了一種基于棧式自編碼的深度學(xué)習(xí)方法,檢測(cè)駕駛員疲勞狀態(tài)。在SEED-VIG數(shù)據(jù)集的基礎(chǔ)上測(cè)試了該模型的準(zhǔn)確率,與其他方法比較,驗(yàn)證了該模型的有效性。通過(guò)實(shí)驗(yàn)表明,不同的腦電頻帶劃分和特征提取對(duì)實(shí)驗(yàn)結(jié)果的影響較大。該研究也對(duì)開(kāi)發(fā)駕駛員疲勞檢測(cè)系統(tǒng)及腦機(jī)接口系統(tǒng)具有重要意義。