呂 超,閆 超,徐亞茹,年錦濤
(長(zhǎng)春理工大學(xué),吉林長(zhǎng)春130021)
世衛(wèi)組織的報(bào)告中說明了道路交通事故已經(jīng)成為了全球一項(xiàng)重要的死亡原因[1]。而在頻發(fā)的交通事故中,由于駕駛員的疲勞駕駛導(dǎo)致的交通事故占據(jù)相當(dāng)大的比例。如果能夠?qū)︸{駛員的疲勞狀態(tài)進(jìn)行檢測(cè),并進(jìn)行相應(yīng)的等級(jí)劃分,就能夠充分地掌握駕駛員的精神狀態(tài),根據(jù)駕駛員的疲勞等級(jí)狀態(tài)進(jìn)行相應(yīng)的工作劃分,便能大大的減少疲勞駕駛所導(dǎo)致的交通事故的發(fā)生。近些年,對(duì)駕駛員疲勞狀態(tài)的客觀檢測(cè)研究主要圍繞肌電、眼電、心電以及腦電等生物電信號(hào)進(jìn)行。除此之外,還有研究人員使用眨眼頻率、方向盤軸承偏移量等行為信號(hào)進(jìn)行駕駛員的疲勞狀態(tài)分析。但是由于生物電信號(hào)具有良好的實(shí)時(shí)差異性和不可偽裝性等優(yōu)點(diǎn)[2],其對(duì)疲勞狀態(tài)檢測(cè)的精確度要高于行為信號(hào),而腦電信號(hào)相比于其它生物電信號(hào)的采集更加簡(jiǎn)單方便,對(duì)機(jī)體狀態(tài)的表征更為全面,因此使用腦電信號(hào)對(duì)駕駛員的疲勞狀態(tài)進(jìn)行檢測(cè)被認(rèn)為是最合適的方法之一[3]。隨著人工智能技術(shù)的快速發(fā)展,基于人工智能的分析方法在數(shù)據(jù)的處理和分類問題上越來越受到關(guān)注。Jianfeng Hu[4]將K-NN和SVM應(yīng)用到腦電信號(hào)的分析處理中。閔建亮[5]使用極限學(xué)習(xí)機(jī)對(duì)從腦電信號(hào)中提取到的特征值進(jìn)行分析進(jìn)行對(duì)疲勞狀態(tài)的檢測(cè)。Saeedi Maryam[6]將SVM和多層感知器應(yīng)用在腦電信號(hào)的分析處理中。上述的機(jī)器學(xué)習(xí)方法雖然在對(duì)清醒狀態(tài)與疲勞狀態(tài)的區(qū)分檢測(cè)中取到了不錯(cuò)的識(shí)別精度,但僅僅針對(duì)疲勞與清醒進(jìn)行相應(yīng)的劃分,而忽略了其中兩種狀態(tài)之間的過渡信息,并沒有建立一個(gè)客觀明確的疲勞等級(jí)劃分機(jī)制。由于前期進(jìn)行訓(xùn)練的數(shù)據(jù)狀態(tài)大多是由個(gè)體的主觀感受作為依據(jù),因此難免會(huì)出現(xiàn)誤差。為解決上述問題,本文采用無監(jiān)督學(xué)習(xí)方式的聚類學(xué)習(xí)算法直接對(duì)數(shù)據(jù)進(jìn)行處理。相對(duì)于有監(jiān)督的學(xué)習(xí)方式,無監(jiān)督學(xué)習(xí)的聚類算法自動(dòng)的將疲勞狀態(tài)相近的腦電信號(hào)劃分為同一等級(jí),實(shí)現(xiàn)對(duì)疲勞等級(jí)的客觀劃分。DPCA算法基于數(shù)據(jù)的局部密度與數(shù)據(jù)點(diǎn)之間的距離進(jìn)行分析,但是DPCA算法無法自動(dòng)確定類簇中心K的數(shù)值。因此本文引入貝葉斯信息準(zhǔn)則(BIC)對(duì)DPCA聚類算法進(jìn)行改進(jìn)的BDPCA算法對(duì)數(shù)據(jù)進(jìn)行分析。
腦電信號(hào)中蘊(yùn)含著豐富的節(jié)律波信息,當(dāng)疲勞程度加深時(shí),腦電信號(hào)中的慢波逐漸增多,快波逐漸減少,大腦系統(tǒng)的復(fù)雜性下降[7]。這種大腦系統(tǒng)和腦電信號(hào)與疲勞狀態(tài)的變化關(guān)系證明了通過腦電信號(hào)對(duì)疲勞狀態(tài)進(jìn)行劃分的可能性[8]。通過腦電信號(hào)的變化特性進(jìn)行疲勞狀態(tài)分析的步驟為:腦電信號(hào)的采集、聚類分析算法、腦電信號(hào)的預(yù)處理、腦電信號(hào)的特征提取、疲勞狀態(tài)劃分。研究者對(duì)腦電信號(hào)的特征提取方式研究通常從頻域和時(shí)域兩個(gè)方面進(jìn)行著手。時(shí)域分析方法簡(jiǎn)單直觀,一般提取信號(hào)的的幅值、均值、方差、正則性和同步性等參數(shù)。簡(jiǎn)單的時(shí)域特征提取方式并不適用于復(fù)雜的腦電信號(hào)分析。頻域分析方法將信號(hào)投射到頻率域進(jìn)行分析,但是腦電信號(hào)有著較強(qiáng)的隨機(jī)性,很多有用的信息都是瞬態(tài)的,根據(jù)“不確定性原理”,信號(hào)處理時(shí)無法同時(shí)擁有較好的時(shí)間與頻率分辨率,因此在時(shí)域和頻域結(jié)合起來進(jìn)行處理是非常必要的。而小波包變化既兼顧了頻率分辨率,又保留了時(shí)間分辨率,同時(shí)相對(duì)于小波變換,小波包變換對(duì)低頻信號(hào)的劃分更為細(xì)致。因此本文使用小波包變換對(duì)采集到的的腦電信號(hào)進(jìn)行特征提取。然后使用改進(jìn)的BDPCA聚類算法對(duì)提取的特征向量進(jìn)行訓(xùn)練,完成對(duì)不同疲勞狀態(tài)等級(jí)的聚類區(qū)分。一個(gè)完整的疲勞狀態(tài)等級(jí)劃分機(jī)制的流程圖如圖1所示。
圖1 疲勞狀態(tài)等級(jí)劃分機(jī)制的流程圖
通過實(shí)驗(yàn)采集到的原始腦電信號(hào)中含有大量的諸如肌電、心電等生物電噪聲和工頻干擾噪聲。因此在使用腦電信號(hào)進(jìn)行特征提取之前需要對(duì)腦電信號(hào)進(jìn)行預(yù)處理消除上述噪聲。首先對(duì)原始腦電信號(hào)進(jìn)行128Hz重采樣,128Hz重采樣不僅降低了信號(hào)所占內(nèi)存的大小并且有利于后續(xù)使用小波包分解進(jìn)行能量特征的提取。使用陷波濾波器去除50Hz的工頻陷波。使用0.45-35Hz的帶通濾波器去除低頻噪聲和高頻干擾。使用MATLAB自帶的EEGLAB工具箱進(jìn)行ICA成分分析,去除較為明顯的眼電噪聲成分。經(jīng)過上述預(yù)處理步驟后的腦電信號(hào)用于后續(xù)的特征提取。
特征提取的主要目的是從預(yù)處理后的腦電信號(hào)中提取到與機(jī)體疲勞狀態(tài)密切相關(guān)的信息用于后續(xù)的分析。腦電信號(hào)中主要包含δ波(0.5-4Hz)、θ波(4-7.5Hz)、α波(8-13Hz)、β波(14-30Hz)、γ波(30-45Hz)等五種不同頻帶范圍的電波分量[9]。當(dāng)疲勞狀態(tài)發(fā)生時(shí),大腦的反應(yīng)能力下降,同時(shí)大腦系統(tǒng)的復(fù)雜度降低。EEG信號(hào)中γ波較多出現(xiàn)于病變機(jī)體的腦電信號(hào)中,因此并不適用于對(duì)疲勞狀態(tài)的分析。隨著疲勞程度的變化,δ波、θ波、α波、β波均會(huì)發(fā)生相應(yīng)的變化,對(duì)疲勞狀態(tài)等級(jí)的劃分提供了理論支持[10]。根據(jù)腦電信號(hào)隨疲勞狀態(tài)程度的變化特性,本次研究采用小波包變換對(duì)腦電信號(hào)進(jìn)行分解,提取不同頻帶范圍的節(jié)律波能量值作為疲勞狀態(tài)劃分的特征值。將預(yù)處理后的腦電信號(hào)進(jìn)行4層的小波包分解,共得到16個(gè)節(jié)點(diǎn),節(jié)點(diǎn)位置及編號(hào)如圖2所示。
圖2 4層分解小波包樹
其中,與各節(jié)律波有關(guān)的節(jié)點(diǎn)編號(hào)及所屬的頻帶范圍如表1所示。
表1 小波包節(jié)點(diǎn)對(duì)應(yīng)頻帶范圍
根據(jù)不同節(jié)律波所處的分解子頻帶的系數(shù)通過式(1)計(jì)算求取該節(jié)點(diǎn)的能量。
(1)
除此之外選擇能反映系統(tǒng)復(fù)雜度的非線性特征來表征大腦系統(tǒng)的變化。最終,本次研究選擇使用樣本熵(F2)與節(jié)律波能量特征(F1)一同作為提取的特征向量進(jìn)行后續(xù)疲勞狀態(tài)等級(jí)的分析。
針對(duì)有監(jiān)督學(xué)習(xí)與無監(jiān)督學(xué)習(xí)的算法模型的特點(diǎn)。本文研究采用BDPCA聚類算法對(duì)腦電信號(hào)的疲勞狀態(tài)等級(jí)進(jìn)行相應(yīng)的劃分。BDPCA聚類算法由密度峰值聚類算法(DPCA)和貝葉斯信息準(zhǔn)則(BIC)融合而成。DPCA聚類算法的核心思想為類簇的中心點(diǎn)有著更大的局部密度值,而不同類簇的中心點(diǎn)之間與非類簇中心點(diǎn)之間有著更遠(yuǎn)的距離[12]?;谏鲜龊诵乃枷隓PCA聚類算法的聚類步驟如下所示:
1) 選取截?cái)嗑嚯xdc。
2)按照式(2)和式(3)求取局部密度。
(3)
3)按式(4)求取聚類中心距離。
(4)
4)使用求取到的局部密度與聚類中心距離畫圖。根據(jù)所做圖進(jìn)行數(shù)據(jù)點(diǎn)類型的判定。普通點(diǎn)靠近橫軸,異常點(diǎn)靠近縱軸。而聚類中心點(diǎn)同時(shí)遠(yuǎn)離橫軸和縱軸。
5)聚類劃分。將非中心點(diǎn)數(shù)據(jù)點(diǎn)劃分至局部密度大于該點(diǎn)中距離最近的點(diǎn)所屬的簇中。對(duì)每個(gè)點(diǎn)進(jìn)行判斷分析后結(jié)束算法。
DPCA算法雖然根據(jù)簇類中心圖提出了簇類中心點(diǎn)的選擇原則,但是在實(shí)際數(shù)據(jù)分析應(yīng)用中,研究者大多不知道數(shù)據(jù)集的分布形式,因此很容易出現(xiàn)疑似簇類中心的點(diǎn)被選作簇類的中心點(diǎn)。圖3為使用德國(guó)波恩大學(xué)癲癇腦電數(shù)據(jù)集提取到的特征值所畫的簇類中心圖。
圖3 波恩數(shù)據(jù)集簇類中心圖
(5)
在初始條件下,每個(gè)模型被選擇的概率相同的條件下,尋找后驗(yàn)概率最大的模型就是尋找邊緣概率P(x1,x2,…,xn|Mi)最大的模型。
(6)
其中θi為模型的參數(shù)向量,L為最大似然函數(shù),gi(θi)為參數(shù)向量的概率密度函數(shù)。BIC參數(shù)和最大似然函數(shù)的計(jì)算進(jìn)一步簡(jiǎn)化為式(7)[13]。
(7)
Pi為模型參數(shù)的個(gè)數(shù)。上述BIC參數(shù)表征的是模型與真實(shí)數(shù)據(jù)之間的損失,BIC參數(shù)絕對(duì)值越小,所選擇的模型越好。聚類算法的工作流程如圖4所示。
圖4 BDPCA算法工作流程圖
3.1所述的BDPCA聚類算法主要有如下不足:由于對(duì)不同的數(shù)據(jù)點(diǎn)計(jì)算的ρi和δi均為離散值。有可能造成不同數(shù)據(jù)點(diǎn)求取的局部密度ρi與聚類中心距離δi相等的情況。圖5為截取的疲勞測(cè)試采集到的腦電信號(hào)所產(chǎn)生的簇類中心圖。
圖5 簇類中心圖
觀察根據(jù)提取到的特征向量生成的簇類中心圖,可以發(fā)現(xiàn)局部密度相同的點(diǎn)有很多,因此局部密度最大的點(diǎn)所產(chǎn)生的疑似簇類中心點(diǎn)也很多,雖然可以通過計(jì)算BIC參數(shù)確定最佳簇類的個(gè)數(shù),但會(huì)大大增加運(yùn)算時(shí)間,并且會(huì)對(duì)后續(xù)的數(shù)據(jù)點(diǎn)所屬類別的判定造成困難。
因此,本文使用相似度的概念對(duì)ρi和δi的值進(jìn)行重新定義。根據(jù)(8)和(9)計(jì)算局部密度ρi與距離δi。
(9)
通過計(jì)算信號(hào)點(diǎn)之間的相似度代替原始的ρi和δi,極大地降低了不同數(shù)據(jù)點(diǎn)的ρi和δi出現(xiàn)相同的情況。但是,由于在計(jì)算相似度的時(shí)候單純的使用兩點(diǎn)的距離進(jìn)行計(jì)算,因此當(dāng)某一簇的邊緣數(shù)據(jù)點(diǎn)與另一簇的邊緣數(shù)據(jù)點(diǎn)相距較近時(shí),容易出現(xiàn)的誤判的情況。圖6為經(jīng)典雙月數(shù)據(jù)集的劃分結(jié)果。
圖6 相近數(shù)據(jù)點(diǎn)類別誤判的情況
從聚類結(jié)果圖中可以看出聚類效果并不理想。圖7為單通道腦電數(shù)據(jù)集提取到的二維特征分布圖。從圖中可以看出提取到的特征值數(shù)值大小十分接近,而且其分布狀態(tài)在二維平面并不明顯可分,因此直接使用相似度進(jìn)行腦電數(shù)據(jù)點(diǎn)的聚類分析并不可行。
圖7 二維腦電特征分布圖
為避免上述情況,本文研究引入共同鄰居參數(shù)(CNN)對(duì)相似度的計(jì)算進(jìn)行優(yōu)化[14]。優(yōu)化后的計(jì)算公式如(10)所示
(10)
其中CNN(sisj)表示數(shù)據(jù)點(diǎn)si和sj的dc鄰域范圍內(nèi)共同存在的數(shù)據(jù)點(diǎn)的個(gè)數(shù)。與傳統(tǒng)相似度計(jì)算方法不同,引入該參數(shù)后,后續(xù)數(shù)據(jù)點(diǎn)的類型判定由距離和兩點(diǎn)之間的局部密度共同決定。數(shù)據(jù)點(diǎn)將被劃分至局部密度大于其的數(shù)據(jù)點(diǎn)中距離最近的一個(gè),避免出現(xiàn)由于兩類不同簇的邊緣點(diǎn)距離過近造成的誤判現(xiàn)象。
BDPCA算法已經(jīng)應(yīng)用在一些工程的數(shù)據(jù)處理研究中,諸如航空發(fā)動(dòng)機(jī)故障數(shù)據(jù)標(biāo)記等工程信號(hào)中,并取得了較好的仿真結(jié)果[15]。由于腦電信號(hào)和大多數(shù)工程信號(hào)一樣具有隨機(jī)性、非平穩(wěn)性等特點(diǎn),本文將BDPCA算法應(yīng)用在腦電數(shù)據(jù)的處理分析工作中。
本文使用改進(jìn)后的BDPCA算法在部分波恩癲癇腦電數(shù)據(jù)中進(jìn)行聚類分析。通過聚類結(jié)果的準(zhǔn)確率進(jìn)行可行性分析。通過小波包變換提取腦電信號(hào)的δ波和θ波作為訓(xùn)練的特征向量。使用改進(jìn)后的BDPCA算法對(duì)提取到的特征向量進(jìn)行訓(xùn)練分析,生成的聚類中心圖如圖8所示。
圖8 波恩數(shù)據(jù)集簇類中心圖
根據(jù)簇類中心圖確定疑似中心點(diǎn)的個(gè)數(shù)為2-6個(gè),分別計(jì)算簇類中心點(diǎn)的個(gè)數(shù)為2-6個(gè)時(shí)的BIC參數(shù)。計(jì)算結(jié)果如表2所示。
表2 不同K值的BIC參數(shù)
根據(jù)BIC參數(shù)確定最佳聚類簇?cái)?shù)為3類。而選取的數(shù)據(jù)為健康受試者、癲癇患者未發(fā)病狀態(tài)與癲癇患者的發(fā)病狀態(tài)采集的腦電信號(hào)。其實(shí)際簇類個(gè)數(shù)與BIC參數(shù)的計(jì)算結(jié)果相符。BDPCA聚類算法的分析結(jié)果如表3所示。
表3 波恩癲癇腦電聚類結(jié)果
根據(jù)聚類結(jié)果可以看出BDPCA聚類算法在對(duì)發(fā)病的癲癇患者的劃分的準(zhǔn)確率達(dá)88%。證明了BDPCA聚類算法應(yīng)用在腦電信號(hào)分析中的可行性。
為保證實(shí)驗(yàn)數(shù)據(jù)與真實(shí)的駕駛腦電數(shù)據(jù)相一致與安全性,本文使用的數(shù)據(jù)為志愿者駕駛虛擬駕駛設(shè)備時(shí)采集到的腦電信號(hào)進(jìn)行分析。為更好的查看個(gè)體的差異性與消除實(shí)驗(yàn)的偶然性,實(shí)驗(yàn)選取身體健康、視力正常、近期無服藥病史且有駕照的一男一女共兩名志愿者同學(xué)參加。
實(shí)驗(yàn)選擇在易于產(chǎn)生疲勞狀態(tài)的午后進(jìn)行。正式進(jìn)行實(shí)驗(yàn)開始前,駕駛員需要進(jìn)行10min的試駕來熟悉操作過程。正式實(shí)驗(yàn)開始后要求駕駛員以固定的速度進(jìn)行駕駛,駕駛過程中前方屏幕會(huì)隨機(jī)出現(xiàn)障礙物,要求駕駛員操控方向盤進(jìn)行閃避,整個(gè)實(shí)驗(yàn)過程共持續(xù)150min,整個(gè)實(shí)驗(yàn)期間駕駛員如感覺身體不適可隨時(shí)停止,停止后實(shí)驗(yàn)隨之結(jié)束。如沒有出現(xiàn)特殊要求,駕駛員將沒有休息的持續(xù)駕駛150min,駕駛過程中,便攜式EMOTIV采集設(shè)備將一直以256Hz的頻率采集駕駛員的腦電信號(hào)。實(shí)驗(yàn)過程中還配有兩名工作人員,其中一名工作人員在側(cè)面每5min記錄一次駕駛員的眨眼次數(shù),另一名工作人員記錄下障礙物出現(xiàn)的時(shí)間以及避障結(jié)果。上述兩類參數(shù)將作為后期劃分疲勞狀態(tài)等級(jí)的判定標(biāo)準(zhǔn)之一。
采集到的腦電信號(hào)經(jīng)過預(yù)處理后,將信號(hào)劃分為20s的數(shù)據(jù)段,提取數(shù)據(jù)段中的10s作為特征提取的信號(hào)。通過小波包分解提取信號(hào)的能量特征與樣本熵作為算法的輸入向量。分別對(duì)提取的兩名駕駛員的腦電信號(hào)特征向量進(jìn)行BDPCA聚類分析。
駕駛員A生成的簇類中心圖如圖9所示。
圖9 駕駛員A簇類中心圖
根據(jù)簇類中心圖確定疑似中心點(diǎn)的個(gè)數(shù)為2-6個(gè),分別計(jì)算簇類中心點(diǎn)的個(gè)數(shù)為2-6時(shí)的BIC參數(shù)。計(jì)算結(jié)果如表4所示。
表4 不同K值的BIC參數(shù)
根據(jù)BIC參數(shù)BDPCA算法將腦電信號(hào)分為5種不同的狀態(tài)。不同狀態(tài)的特征值變化如圖10所示。
圖10 駕駛員A特征值變化圖
從圖中可以看出能量特征值是逐漸增加的,樣本熵是逐漸減小的這與疲勞程度加深時(shí)特征值理論變化趨勢(shì)相一致。從圖中可以觀察到的能量變化更為明顯,樣本熵雖然有減少的趨勢(shì),但并不如能量特征值明顯。
駕駛員B生成的簇類中心圖如圖11所示。
圖11 駕駛員B簇類中心圖
根據(jù)簇類中心圖確定駕駛員B疑似中心點(diǎn)的個(gè)數(shù)也為2-6個(gè),計(jì)算簇類中心點(diǎn)的個(gè)數(shù)為2-6時(shí)的BIC參數(shù)。計(jì)算結(jié)果如表5所示。
表5 不同K值的BIC參數(shù)
根據(jù)BIC參數(shù)BDPCA算法將腦電信號(hào)分為5種不同的狀態(tài)。不同狀態(tài)的特征值變化如圖12所示。
圖12 駕駛員B特征值變化圖
根據(jù)駕駛員B 的特征值變化圖,可以發(fā)現(xiàn)其變化趨勢(shì)與駕駛員A的變化趨勢(shì)相同,符合理論變化趨勢(shì)。
在BDPCA聚類算法對(duì)數(shù)據(jù)進(jìn)行分析訓(xùn)練后,使用實(shí)驗(yàn)過程中記錄的避障結(jié)果、眨眼次數(shù)與特征值數(shù)值一同進(jìn)行疲勞狀態(tài)等級(jí)的劃分。在通過對(duì)每一狀態(tài)對(duì)應(yīng)的時(shí)間段記錄的眨眼次數(shù)與特征值數(shù)值的分析過后,發(fā)現(xiàn)駕駛員A與B的狀態(tài)5時(shí)間分布較為普遍,并不集中在某一時(shí)間段,進(jìn)一步觀察行為信號(hào)發(fā)現(xiàn),在提取該狀態(tài)的10s時(shí)間段信號(hào)內(nèi),均發(fā)生過3次及以上的避障操作,因此將該狀態(tài)作為多次連續(xù)動(dòng)作造成的特殊狀態(tài),并不納入疲勞狀態(tài)等級(jí)中。對(duì)其余四種狀態(tài)進(jìn)行分析發(fā)現(xiàn)駕駛員B的狀態(tài)1避障率要高于駕駛員A狀態(tài)1的避障率,眨眼次數(shù)也遠(yuǎn)小于駕駛員A的狀態(tài)1次數(shù)。繼續(xù)對(duì)比發(fā)現(xiàn)駕駛員A的狀態(tài)1的各種行為信息與駕駛員B的狀態(tài)2相近,而能量特征的數(shù)值也有這種對(duì)應(yīng)關(guān)系,證明駕駛員A在前10min預(yù)駕駛時(shí)已出現(xiàn)了疲勞狀態(tài)。最終通過避障率、眨眼次數(shù)確定了各狀態(tài)所表征的疲勞程度,確定駕駛員A和B的不同疲勞狀態(tài)分布如圖13所示。
圖13 駕駛員疲勞狀態(tài)等級(jí)圖
表6 基于能量特征F1疲勞等級(jí)劃分條件
本文針對(duì)腦疲勞等級(jí)劃分缺乏客觀性判斷的問題,提出了一種基于BDPCA的改進(jìn)型聚類算法進(jìn)行腦疲勞狀態(tài)的等級(jí)劃分。實(shí)驗(yàn)中采集不同駕駛員的腦電信號(hào)進(jìn)行驗(yàn)證研究,并通過避障率與眨眼次數(shù)等行為信號(hào)進(jìn)一步為疲勞等級(jí)劃分提供依據(jù)。實(shí)驗(yàn)結(jié)果表明兩名駕駛員相同疲勞狀態(tài)等級(jí)的能量特征值的平均值相近,當(dāng)駕駛員處在清醒(F1<0.9)與輕度疲勞狀態(tài)(0.9