吳雪,王嬈芬
上海工程技術(shù)大學(xué)電子電氣工程學(xué)院,上海201620
隨著自動(dòng)化技術(shù)不斷的發(fā)展和更新,人機(jī)交互系統(tǒng)得到廣泛應(yīng)用,某些系統(tǒng)通過引入自動(dòng)化控制技術(shù)提高其工作精度和效率。由于自動(dòng)化技術(shù)的進(jìn)一步提高,操作員在自動(dòng)控制系統(tǒng)中的地位更加重要,完全取消人類操作員幾乎是不可能的。在對(duì)安全性要求較高的人機(jī)交互系統(tǒng)中,如鐵路、航空航天等領(lǐng)域,需要保證操作員有足夠的精神狀態(tài)去應(yīng)對(duì)可能發(fā)生的未知故障[1]。操作員是自動(dòng)控制系統(tǒng)工作的主體,要有能力完成不同負(fù)荷任務(wù)工作。操作員經(jīng)歷長(zhǎng)時(shí)間的高壓工作后,疲勞程度會(huì)不斷增加,可能出現(xiàn)操作失誤,造成嚴(yán)重后果。為確保操作員安全操作,避免發(fā)生事故,保持操作員的工作效率,實(shí)時(shí)監(jiān)測(cè)操作員的疲勞狀態(tài)具有非常重要的意義[2]。近年來,很多研究利用操作員的行為及面部表情進(jìn)行疲勞的監(jiān)測(cè),通常需要利用各種攝像頭采集面部表情圖像,結(jié)合圖像處理技術(shù)從中提取相關(guān)特征,實(shí)現(xiàn)監(jiān)測(cè)操作員疲勞狀態(tài)的目的,但該方法易受光照強(qiáng)度的影響[3]。研究表明人體心電、腦電、肌電等生理信號(hào)更能準(zhǔn)確地反映疲勞程度,利用操作員的生理信號(hào)特征監(jiān)測(cè)疲勞狀態(tài)得到廣泛研究[4],且已取得很大進(jìn)展。Liang 等[5]分析不同時(shí)期HRV 的變化,指出HRV 線性指標(biāo)的變化方向和程度在不同程度疲勞中是不一樣的。唐優(yōu)華等[6]將疲勞分為兩個(gè)等級(jí),提取心電信號(hào)(ECG)的8個(gè)特征作為模型輸入,采用支持向量機(jī)建立疲勞狀態(tài)識(shí)別模型對(duì)疲勞進(jìn)行判斷。鄭超英等[7]針對(duì)在疲勞狀態(tài)識(shí)別研究中采集到的腦電信號(hào)具有非線性特點(diǎn),提出基于樣本熵和核主成分分析的疲勞狀態(tài)分類方法。以卷積神經(jīng)網(wǎng)絡(luò)(CNN)為代表的深度學(xué)習(xí)技術(shù)在迅速發(fā)展,其優(yōu)勢(shì)在于通過訓(xùn)練網(wǎng)絡(luò)參數(shù),從大量數(shù)據(jù)中自動(dòng)學(xué)習(xí)得到有效的特征而無需人工進(jìn)行特征提取,其在圖像分類、語音識(shí)別等領(lǐng)域得到廣泛應(yīng)用[8]。葉成文[9]報(bào)道提取ECG、肌電生理信號(hào)特征參數(shù),采用學(xué)習(xí)向量量化神經(jīng)網(wǎng)絡(luò)建立疲勞模型,并驗(yàn)證了模型的有效性,同時(shí)使用K-fold方法對(duì)該模型進(jìn)行優(yōu)化。黃河[10]建立LSTM神經(jīng)網(wǎng)絡(luò)模型對(duì)疲勞狀態(tài)進(jìn)行分類訓(xùn)練,并取得了較好的分類結(jié)果。Zhang 等[11]構(gòu)建基于局部有向相干的CNN 用于疲勞檢測(cè),結(jié)果表明此方法可以準(zhǔn)確可靠地識(shí)別疲勞狀態(tài)。
在前期工作中,本研究首先將一維ECG 轉(zhuǎn)化成灰度圖:將原始數(shù)據(jù)轉(zhuǎn)換成每個(gè)樣本為1 000 個(gè)采樣點(diǎn)的數(shù)據(jù)集,轉(zhuǎn)化成灰度圖作為DCNN 的輸入,得到的準(zhǔn)確率并不是很好。然后考慮在極坐標(biāo)系中對(duì)ECG 進(jìn)行表示,通過格拉姆角場(chǎng)法轉(zhuǎn)化為圖像:信號(hào)的時(shí)間隨著位置從矩陣的左上角到右下角的移動(dòng)而增加,送入DCNN 中去訓(xùn)練,從而實(shí)現(xiàn)操作員的疲勞分類。結(jié)果表明這兩種方式都沒能達(dá)到較好的疲勞分類效果。為了能夠準(zhǔn)確監(jiān)測(cè)操作員的疲勞狀態(tài),避免操作員因疲勞操作而導(dǎo)致發(fā)生事故,本文提出一種將一維ECG 轉(zhuǎn)化為二維圖像的方法,將ECG 映射到二維空間直接轉(zhuǎn)化成時(shí)域圖像,并設(shè)計(jì)一種深層卷積神經(jīng)網(wǎng)絡(luò)(DCNN)模型,該模型需要訓(xùn)練的參數(shù)少,分類精度高,適用于操作員的疲勞分類,且該方法無需對(duì)ECG 信號(hào)進(jìn)行任何手動(dòng)預(yù)處理,如噪聲過濾[12]、特征提取和特征選擇[13]。
通過密閉艙大氣管理系統(tǒng)(Automation-enhanced Cabin Air Management System,AutoCAMS)模擬不同復(fù)雜程度的過程控制任務(wù)環(huán)境來設(shè)計(jì)疲勞實(shí)驗(yàn),用于采集被試者的ECG[14-15]。本實(shí)驗(yàn)中操作員的主要任務(wù)是將系統(tǒng)的溫度、氣壓、O2濃度和CO2濃度等指標(biāo)控制在適合人類生存的范圍之內(nèi),每個(gè)指標(biāo)由其對(duì)應(yīng)的子系統(tǒng)控制,每個(gè)子系統(tǒng)又被分為手動(dòng)控制和自動(dòng)控制。實(shí)驗(yàn)環(huán)境如圖1所示。
圖1 密封艙大氣管理系統(tǒng)內(nèi)部子系統(tǒng)相互關(guān)系圖Fig.1 Relationship between the subsystems of automationenhanced cabin air management system
被試者的身體狀況、睡眠習(xí)慣、年齡等均對(duì)試驗(yàn)進(jìn)行有非常重要的影響。在開展試驗(yàn)之前,需要對(duì)被試者進(jìn)行嚴(yán)格篩選,最終,征集8 名健康在校男性研究生作為被試者。在正式試驗(yàn)之前,需要被試者進(jìn)行AutoCAMS 操作方法的訓(xùn)練,確保每個(gè)被試者熟悉試驗(yàn)過程,掌握系統(tǒng)控制技能。此外,被試者在試驗(yàn)前1 天,避免食用任何有刺激性的藥品或者食品,充分休息,盡量保持良好狀態(tài)。
本試驗(yàn)采用日本光電公司的生物電信號(hào)采集設(shè)備,通過放置在心臟兩側(cè)的電極采集被試者的ECG。每次試驗(yàn)共8 個(gè)階段,試驗(yàn)范式如圖2所示。階段1和階段8 是基線測(cè)試階段,各持續(xù)5 min,不需要被試者手動(dòng)進(jìn)行控制,階段2 至階段7 是不同任務(wù)負(fù)荷階段,每個(gè)階段持續(xù)15 min,需要被試者手動(dòng)操控系統(tǒng)使各子系統(tǒng)的指標(biāo)控制在正常范圍內(nèi),各階段的任務(wù)難度等級(jí)分別為1、2、3、3、2、1。每個(gè)階段結(jié)束之后,需要被試者進(jìn)行主觀疲勞量表的填寫,對(duì)自己的疲勞程度做出主觀評(píng)定,疲勞值為0~100。對(duì)于疲勞程度而言,0 代表非疲勞,100 代表很疲勞。表1為試驗(yàn)中被試者1的的主觀疲勞量表,可以看出隨著任務(wù)難度的增加,被試者的疲勞程度升高。
表1 被試者1的主觀量表Tab.1 Subjective scale of subject 1
圖2 試驗(yàn)范式Fig.2 Experimental paradigm
ECG采樣頻率為500 Hz,為了保持樣本數(shù)量相對(duì)平衡,本文將C1和C2階段的心電數(shù)據(jù)作為非疲勞狀態(tài)數(shù)據(jù),C6階段的后5 min和C7階段的心電數(shù)據(jù)作為疲勞狀態(tài)數(shù)據(jù)。每1 000個(gè)點(diǎn)為1個(gè)樣本,每間隔100個(gè)點(diǎn)截取1個(gè)樣本,最終,每個(gè)被試者有11 960個(gè)數(shù)據(jù),分為5 980個(gè)非疲勞狀態(tài)樣本和5 980個(gè)疲勞狀態(tài)樣本。經(jīng)過數(shù)據(jù)分割之后,1個(gè)樣本的心電波形圖如圖3所示。
圖3 1個(gè)樣本的心電波形圖Fig.3 Electrocardiogram waveform of a sample
由于將ECG 轉(zhuǎn)化成灰度圖和格拉姆角場(chǎng)圖在一定程度上減少信號(hào)的信息量,導(dǎo)致原始數(shù)據(jù)部分丟失,不利于更加有效地提取特征。針對(duì)此問題,對(duì)原始心電數(shù)據(jù)預(yù)處理得到以1 000個(gè)采樣點(diǎn)為1個(gè)周期的ECG,并將處理后的ECG 直接投影到二維圖像空間上,將其轉(zhuǎn)換為時(shí)域圖像數(shù)據(jù),即1 張圖片包含1個(gè)樣本的心電圖波形。與此同時(shí),生成的圖片信息不會(huì)消除數(shù)據(jù)時(shí)間序列特征,原始時(shí)間序列之間的關(guān)系仍然是不變的。然后,將二維心電圖作為DCNN的輸入,通過DCNN 模型進(jìn)行訓(xùn)練,實(shí)現(xiàn)操作員的疲勞分類。將心電數(shù)據(jù)直接轉(zhuǎn)換成時(shí)域圖片信息,相對(duì)于另外兩種轉(zhuǎn)換圖像的方法而言,這樣做可以很好地保留一維ECG 原有信息的形態(tài)特征,不會(huì)忽略ECG 的時(shí)域特征,利用時(shí)間和空間的依賴性,在模型訓(xùn)練過程中更好地提取有效特征,以便實(shí)現(xiàn)疲勞狀態(tài)的準(zhǔn)確分類。
隨著深度學(xué)習(xí)技術(shù)的不斷進(jìn)步,如今有很多優(yōu)秀的CNN 模型發(fā)展成熟[16],其中VGG16是一種經(jīng)典的深度學(xué)習(xí)模型。在它之前,很多人都認(rèn)為卷積核要比較大才能識(shí)別更大的區(qū)域,不過根據(jù)計(jì)算可以知道,兩個(gè)3×3 的卷積核可以有效覆蓋5×5 的區(qū)域,同時(shí)還可以減少計(jì)算量。此外,VGG16 中擁有更多的非線性變換,這也是VGG系列模型的核心思想,就是減小卷積核,加深網(wǎng)絡(luò)。總的來說,VGG16 由13個(gè)卷積層、5個(gè)池化層和3個(gè)全連接層組成[17],它的特征提取部分只使用了3×3 的卷積核,以及2×2 的池化層,將得到的特征圖進(jìn)行全連接操作,通過softmax層,輸出分類識(shí)別的結(jié)果。與此同時(shí),CNN 數(shù)量的變化存在一定規(guī)律,由64變成128,再到256和512,3個(gè)全連接層神經(jīng)元的個(gè)數(shù)分別為4 096、4 096、1 000。為了對(duì)VGG16 進(jìn)行培訓(xùn),在ImageNet 數(shù)據(jù)庫的一個(gè)子集上進(jìn)行了訓(xùn)練,使用上百萬張圖像,將這些圖像分為1 000 個(gè)類別,從此有了大規(guī)模的圖像數(shù)據(jù)集,CNN 變得更加強(qiáng)大?;趫D像的識(shí)別、分類等操作,CNN 可以直接將圖像數(shù)據(jù)作為網(wǎng)絡(luò)輸入,不僅無需人工對(duì)圖像進(jìn)行預(yù)處理,而且具有高精度特點(diǎn)。
據(jù)此,本文考慮將遷移學(xué)習(xí)技術(shù)應(yīng)用到操作員的疲勞分類上?;赩GG16 的思想,設(shè)計(jì)了一個(gè)結(jié)構(gòu)相對(duì)簡(jiǎn)單、訓(xùn)練參數(shù)較少的DCNN 模型,用于操作員的疲勞狀態(tài)分類,網(wǎng)絡(luò)模型結(jié)構(gòu)如圖4所示。該結(jié)構(gòu)的5 個(gè)卷積塊是VGG16 模型的前13 層,通過全局平均池化層和1 個(gè)神經(jīng)元個(gè)數(shù)為128 的全連接層,對(duì)預(yù)先訓(xùn)練的VGG16 模型進(jìn)行調(diào)整,最后使用softmax函數(shù)作為二分類的分類器進(jìn)行分類。本文將心電數(shù)據(jù)轉(zhuǎn)換為二維圖像送入DCNN 中訓(xùn)練,經(jīng)過卷積層和池化層有效地提取相關(guān)特征,通過全連接層進(jìn)一步學(xué)習(xí)。除全連接層采用softmax 函數(shù)之外,其余各層均采用Relu 的激活函數(shù)。此外,采用dropout 層防止過擬合情況發(fā)生。該網(wǎng)絡(luò)減少了模型訓(xùn)練的參數(shù)數(shù)量,減少了計(jì)算復(fù)雜度,同時(shí)提高了模型訓(xùn)練的速度,并達(dá)到了較好的疲勞分類識(shí)別效果。
圖4 DCNN網(wǎng)絡(luò)模型結(jié)構(gòu)Fig.4 Deep convolutional neural network model structure
為了驗(yàn)證所設(shè)計(jì)網(wǎng)絡(luò)結(jié)構(gòu)的性能,將8名被試者的ECG 輸入DCNN 中進(jìn)行訓(xùn)練,檢測(cè)每位被試者的疲勞狀態(tài)。對(duì)于每位受試者,將11 960組心電樣本分成兩部分,隨機(jī)選擇80%的樣本進(jìn)行模型訓(xùn)練,剩下20%用于驗(yàn)證。本文模型是在python3.6 環(huán)境下進(jìn)行的,使用基于Tensor flow-GPU 和Keras 的框架對(duì)ECG 進(jìn)行疲勞分類。對(duì)前文所述的DCNN 進(jìn)行訓(xùn)練,訓(xùn)練過程以Adam 梯度下降算法為優(yōu)化方法,學(xué)習(xí)率設(shè)置為0.005,訓(xùn)練的迭代次數(shù)設(shè)置為30 次,batch_size 值為128,設(shè)置dropout 值為0.5,使用交叉熵作為損失函數(shù)。
將8 位被試者的ECG,通過不同方法轉(zhuǎn)換為圖像,分別送入DCNN 模型中進(jìn)行訓(xùn)練,得到的非疲勞和疲勞分類準(zhǔn)確率如表2所示,可以看出直接轉(zhuǎn)時(shí)域圖像的方法,疲勞識(shí)別準(zhǔn)確率最高,8 位被試者的平均非疲勞準(zhǔn)確率為96.69%,疲勞分類準(zhǔn)確率達(dá)95.79%。結(jié)果顯示本文方法優(yōu)于其他兩種方法,能夠較好地保留時(shí)域有效特征,基于DCNN 的網(wǎng)絡(luò)模型在整個(gè)數(shù)據(jù)集上穩(wěn)定有效,得到了較好的疲勞識(shí)別效果,所有被試者的分類精度均超過了90%,其中被試者4的分類總準(zhǔn)確率最高,達(dá)99.79%。從總體性能來看,將遷移學(xué)習(xí)應(yīng)用到操作員的疲勞分類上具有高效的性能。
表2 不同轉(zhuǎn)換圖像方法的非疲勞和疲勞狀態(tài)分類準(zhǔn)確率(%)Tab.2 Classification accuracies of non-fatigue and fatigue states using different image conversion methods(%)
鑒于直接將ECG 映射到二維空間轉(zhuǎn)化成圖像的效果較好,本文考慮到疲勞分類準(zhǔn)確率可能與心電數(shù)據(jù)的長(zhǎng)度有一定關(guān)系,故使用操作員不同長(zhǎng)度的心電數(shù)據(jù)分析疲勞分類的準(zhǔn)確度。將ECG 分成每個(gè)樣本長(zhǎng)度分別為500、1 000、1 500、2 000 和2 500 的數(shù)據(jù),基于直接轉(zhuǎn)時(shí)域圖像的方法,送入DCNN 中去訓(xùn)練,得到的疲勞分類準(zhǔn)確率如表3所示。
表3 基于時(shí)域圖像方法的不同數(shù)據(jù)長(zhǎng)度疲勞分類準(zhǔn)確率(%)Tab.3 Fatigue classification accuracies for different data lengths based on time-domain image method(%)
結(jié)果表明,以500 個(gè)采樣點(diǎn)為1 個(gè)周期的數(shù)據(jù)長(zhǎng)度得到的分類準(zhǔn)確率較差,平均準(zhǔn)確率僅有91.90%;而以1 500個(gè)采樣點(diǎn)為1個(gè)周期的數(shù)據(jù)長(zhǎng)度得到了較好的分類準(zhǔn)確率,平均準(zhǔn)確率達(dá)97.36%,在8 名被試者中有7 名的疲勞分類準(zhǔn)確率達(dá)到95%以上,另外1名也超過93%;數(shù)據(jù)長(zhǎng)度為2 000 和2 500 時(shí),分類準(zhǔn)確率不再隨著數(shù)據(jù)的長(zhǎng)度增加而迅速升高,與長(zhǎng)度1 500 的數(shù)據(jù)相比,分類準(zhǔn)確率沒有太大變化,而且當(dāng)數(shù)據(jù)長(zhǎng)度大于2 000 時(shí),信號(hào)長(zhǎng)度相對(duì)較長(zhǎng),難以實(shí)現(xiàn)實(shí)時(shí)監(jiān)測(cè)操作員的疲勞狀態(tài)。此外,雖然數(shù)據(jù)長(zhǎng)度越長(zhǎng),CNN 能學(xué)習(xí)到的有用信息相對(duì)較多,可以提取更有效的特征,達(dá)到較好的分類準(zhǔn)確率,但當(dāng)達(dá)到一定長(zhǎng)度之后,準(zhǔn)確率將不再大幅度增加,并趨于穩(wěn)定。最終使用長(zhǎng)度為1 500 的數(shù)據(jù)作為1 個(gè)樣本,基于短時(shí)ECG 對(duì)操作員的疲勞狀態(tài)進(jìn)行實(shí)時(shí)準(zhǔn)確地分類。
以1 500 個(gè)采樣點(diǎn)為1 個(gè)樣本的數(shù)據(jù)長(zhǎng)度在被試者6 得到的疲勞分類結(jié)果如圖5所示,其中圖5a 是被試者6 的疲勞分類準(zhǔn)確率,隨著迭代次數(shù)的增加,疲勞分類準(zhǔn)確率逐漸上升趨于穩(wěn)定,最終收斂于98%左右,圖5b 是被試者6 的損失函數(shù)變化圖,隨著迭代次數(shù)的增加,損失函數(shù)逐漸下降并趨于穩(wěn)定,最終收斂于0.04左右。
圖5 被試者6的分類識(shí)別結(jié)果Fig.5 Classification and recognition results of subject 6
為了進(jìn)一步驗(yàn)證該方法在識(shí)別疲勞分類上的效果,將本文方法與傳統(tǒng)K 近鄰(KNN)[18]、支持向量機(jī)(SVM)[19]以及當(dāng)前比較流行的LSTM[10]方法進(jìn)行對(duì)比分析,KNN、SVM 和LSTM 的分類識(shí)別準(zhǔn)確率分別達(dá)到76.37%、85.10%和92.30%,本文方法比LSTM方法的準(zhǔn)確率高5%,達(dá)到97.36%,更好地實(shí)現(xiàn)了操作員的疲勞分類。
疲勞狀態(tài)的檢測(cè)在生活中應(yīng)用普遍,疲勞狀態(tài)的判斷對(duì)于操作員的安全操作有一定幫助,可以減少事故的發(fā)生,保護(hù)操作員的身心健康。傳統(tǒng)的疲勞分類算法,需要對(duì)生理信號(hào)進(jìn)行去噪、特征提取和特征選擇等過程,但很難準(zhǔn)確知道需要提取哪些特征[20]。本文將心電數(shù)據(jù)分為每個(gè)樣本為1 500 的數(shù)據(jù)長(zhǎng)度,即3 s為1個(gè)樣本,將ECG映射到二維空間直接轉(zhuǎn)換為時(shí)域圖像,通過DCNN 模型,基于短時(shí)ECG進(jìn)行操作員疲勞分類,分類準(zhǔn)確率達(dá)到97.36%,較好地實(shí)現(xiàn)了疲勞狀態(tài)分類。與此同時(shí),避免了傳統(tǒng)算法中復(fù)雜的特征提取過程,有利于實(shí)時(shí)、準(zhǔn)確地檢測(cè)操作員的疲勞狀態(tài)。此外,將同一模型應(yīng)用到不同的被試者中,每個(gè)被試者的疲勞狀態(tài)分類準(zhǔn)確率均超過93%,能夠較好地消除個(gè)體差異性的影響。