李小平,白 超
(蘭州交通大學(xué) 機(jī)電工程學(xué)院,甘肅 蘭州 730070)
火車司機(jī)是鐵路行業(yè)非常重要的技術(shù)崗位,其值乘過程中的精神狀態(tài)對(duì)于鐵路運(yùn)輸安全至關(guān)重要,一旦疲勞駕駛造成事故,將會(huì)造成巨大的生命財(cái)產(chǎn)損失,因此對(duì)火車司機(jī)疲勞駕駛狀態(tài)進(jìn)行檢測,對(duì)于保障鐵路運(yùn)輸安全至關(guān)重要。
火車司機(jī)疲勞駕駛檢測主要包括基于生理特征、視覺特征和語音特征的方法[1]?;谏硖卣鞯钠跈z測由于需要使用昂貴的可穿戴設(shè)備,并且傳感器的侵入可能引起司機(jī)不適,不便于普及推廣[2];基于視覺特征的疲勞檢測由于具有非接觸性及可直接根據(jù)司機(jī)面部特征(如眼睛睜閉、點(diǎn)頭低頭、打哈欠等)反映其疲勞狀態(tài)的優(yōu)點(diǎn),成為司機(jī)疲勞駕駛檢測領(lǐng)域的一個(gè)重要研究方向[3],如類Haar特征和極限學(xué)習(xí)的疲勞檢測[4]、基于MSP模型的多任務(wù)分層CNN疲勞檢測[5]、深層級(jí)聯(lián)LSTM疲勞檢測[6]、基于TPOT的多特征融合疲勞檢測[7]、基于深度學(xué)習(xí)的司機(jī)疲勞駕駛檢測[8]等;基于語音特征的疲勞檢測同樣具有非接觸式及成本低廉等優(yōu)點(diǎn),如基于語音遷移的疲勞檢測[1]、基于支持向量機(jī)的運(yùn)動(dòng)疲勞檢測[9]等。
上述研究主要針對(duì)單一語音模態(tài)或視頻模態(tài)的疲勞狀態(tài)檢測,在實(shí)際應(yīng)用中,基于視頻的疲勞檢測存在采集角度、光線變化及臉部遮擋等因素的影響[10],基于語音的疲勞檢測存在噪聲干擾[11]、數(shù)據(jù)維數(shù)高[1]、語音樣本數(shù)據(jù)分布偏移導(dǎo)致的非平穩(wěn)泛化誤差[12]等問題,導(dǎo)致單一模態(tài)的檢測手段往往誤判率較高。由于我國鐵路機(jī)車上安裝的視頻監(jiān)控裝置可以采集司機(jī)在值乘過程中的視頻信號(hào),司機(jī)在值乘過程中按司乘作業(yè)標(biāo)準(zhǔn)進(jìn)行的呼叫應(yīng)答語音信號(hào)也會(huì)被鐵路機(jī)車呼叫應(yīng)答裝置[1]記錄保存,因此在火車司機(jī)值乘過程中能夠同時(shí)采集視頻和語音兩種模態(tài)的數(shù)據(jù)。為此本文提出一種基于多模態(tài)信息融合的火車司機(jī)疲勞駕駛檢測方法,通過機(jī)車視頻監(jiān)控裝置與呼叫應(yīng)答裝置采集司機(jī)視頻信號(hào)與語音信號(hào),采用多模態(tài)深度學(xué)習(xí)技術(shù)[13]實(shí)現(xiàn)視頻與語音模態(tài)的疲勞檢測,利用隨機(jī)子空間算法(Random Subspace Method,RSM)[14]降低語音特征參數(shù)的維度,剔除模態(tài)間的冗余,減少系統(tǒng)耗時(shí),采用串行結(jié)構(gòu)的stacking集成學(xué)習(xí)模型[15]實(shí)現(xiàn)視頻與語音模態(tài)之間的互補(bǔ)與融合,以長短期記憶網(wǎng)絡(luò)(Long Short-Term Memory,LSTM)作為初級(jí)學(xué)習(xí)器,采用多折交叉驗(yàn)證(Cross-Validation, CV)提高非線性表達(dá)能力,降低泛化誤差[16],以梯度提升決策樹(Gradient Boosting Decision Tree,GBDT)作為次級(jí)學(xué)習(xí)器,最終實(shí)現(xiàn)司機(jī)疲勞狀態(tài)的精準(zhǔn)檢測。
基于多模態(tài)信息融合的火車司機(jī)疲勞駕駛檢測模型見圖1,采用stacking集成學(xué)習(xí)模型,由初級(jí)學(xué)習(xí)器和次級(jí)學(xué)習(xí)器組成,視頻信號(hào)初級(jí)學(xué)習(xí)器采用LSTM1,語音信號(hào)初級(jí)學(xué)習(xí)器采用LSTM2,次級(jí)學(xué)習(xí)器采用GBDT。stacking集成學(xué)習(xí)模型可以堆疊任何分類器,具有很好的適應(yīng)性,并且集成后的模型邊界更加穩(wěn)定,過擬合風(fēng)險(xiǎn)更低,提高了模型的非線性表達(dá)能力,降低了泛化誤差。
圖1 基于多模態(tài)信息融合的火車司機(jī)疲勞駕駛檢測模型
圖1中,視頻監(jiān)控裝置和呼叫應(yīng)答裝置首先采集司機(jī)值乘過程中的視頻和語音信號(hào),預(yù)處理后分別生成視頻和語音疲勞特征參數(shù)數(shù)據(jù)集,并分別將數(shù)據(jù)集劃分為訓(xùn)練集和測試集;然后將訓(xùn)練集分別輸入stacking初級(jí)學(xué)習(xí)器LSTM1和LSTM2進(jìn)行訓(xùn)練,采用k折交叉驗(yàn)證(輪流將其中k-1份作為訓(xùn)練數(shù)據(jù)集,另1份作為驗(yàn)證數(shù)據(jù)集),訓(xùn)練好LSTM1和LSTM2后,再用測試集進(jìn)行測試,視頻疲勞檢測的訓(xùn)練集、測試集輸出結(jié)果softmax1和語音疲勞檢測的訓(xùn)練集、測試集輸出結(jié)果softmax2融合構(gòu)成次級(jí)學(xué)習(xí)數(shù)據(jù)集;最后將次級(jí)學(xué)習(xí)數(shù)據(jù)集輸入stacking次級(jí)學(xué)習(xí)器GBDT進(jìn)行訓(xùn)練,最終得到司機(jī)疲勞駕駛狀態(tài)的預(yù)測結(jié)果。對(duì)于高維語音數(shù)據(jù)采用RSM降維后生成m個(gè)隨機(jī)子空間,分別導(dǎo)入m個(gè)LSTM2初級(jí)學(xué)習(xí)器進(jìn)行訓(xùn)練,可以減少冗余并提高處理效率。
(1)視頻數(shù)據(jù)預(yù)處理
根據(jù)臉部視頻圖像特征與疲勞相關(guān)性的最新研究成果[8],司機(jī)臉部的疲勞特征可通過fp、Kmouth、hdown及頭部偏航角θyaw、俯仰角θpitch、滾轉(zhuǎn)角θroll等6個(gè)參數(shù)來描述。其中fp為根據(jù)PERCLOS原則判斷眼睛睜閉狀態(tài)計(jì)算出的眼睛閉合時(shí)間占總時(shí)間的百分比;Kmouth為司機(jī)因打哈欠而嘴巴張開程度最大時(shí)的嘴部橫縱比;hdown為司機(jī)因疲勞而低頭(打盹)時(shí)低頭時(shí)間占總時(shí)間的百分比;θyaw為司機(jī)搖頭的角度;θpitch為司機(jī)點(diǎn)頭的角度;θroll為司機(jī)頭部旋轉(zhuǎn)的角度。
首先,車載視頻監(jiān)控裝置實(shí)時(shí)獲取司機(jī)的視頻關(guān)鍵幀圖像,通過MTCNN[17]網(wǎng)絡(luò)確定司機(jī)臉部區(qū)域,然后將檢測出的人臉區(qū)域采用PFLD模型[18]進(jìn)行人臉關(guān)鍵點(diǎn)檢測,最后計(jì)算生成臉部視覺疲勞特征參數(shù)fp、Kmouth、hdown、θyaw、θpitch、θroll,按照時(shí)間幀序列t[t∈(t1,t2,…,tn)]生成司機(jī)臉部視頻疲勞狀態(tài)參數(shù)矩陣Xvideo,司機(jī)臉部視頻數(shù)據(jù)預(yù)處理過程見圖2。
圖2中,fptn為tn時(shí)刻的fp,其他參數(shù)以此類推。
圖2 司機(jī)臉部視頻數(shù)據(jù)預(yù)處理過程
(2)語音數(shù)據(jù)預(yù)處理
首先將司機(jī)呼叫應(yīng)答語音文件轉(zhuǎn)換為沒有文件頭和文件結(jié)束標(biāo)志的二進(jìn)制pcm文件,便于運(yùn)用python進(jìn)行處理;然后采用Wiener濾波適用范圍廣的特點(diǎn)[19]濾除環(huán)境噪聲;最后根據(jù)語音特征與疲勞相關(guān)性的最新研究成果提取語音疲勞特征參數(shù)[1],選取韻律、音質(zhì)、語譜和非線性動(dòng)力學(xué)4類特征來描述語音信號(hào)中所包含的疲勞信息,包括語速、短時(shí)能量、短時(shí)平均過零率、基音頻率、基頻微擾、振幅微擾、共振峰、梅爾頻率倒譜系數(shù)(Mel Frequency Cepstrum Coefficient,MFCC)、最大Lyapunov指數(shù)、分形維數(shù)、近似熵等參數(shù),構(gòu)成司機(jī)語音疲勞特征參數(shù)Xvoice,如表1所示。
表1 司機(jī)語音疲勞特征參數(shù)Xvoice
(3)語音數(shù)據(jù)RSM降維
為了提高基分類器之間的差異性,從而提高組合分類器的性能,每個(gè)分類器構(gòu)造的隨機(jī)子空間特征子集合盡可能不同。將輸入的80維特征參數(shù)構(gòu)建出m個(gè)隨機(jī)子空間,每個(gè)子空間都包含r(0 ζt=f[Xvoice,kζ(t)] ( 1 ) 將特征子集在訓(xùn)練集Xvoice上進(jìn)行投影得到不同子空間上的訓(xùn)練數(shù)據(jù)集 Dt=MapζtXvoicet=1,2,…,m ( 2 ) 式中:Dt為不同子空間上的訓(xùn)練數(shù)據(jù)集;Map為將ζt在訓(xùn)練集Xvoice上進(jìn)行投影;m為基分類器數(shù)。通過隨機(jī)子空間的方法,將原本80維的語音數(shù)據(jù)降到r維,樣本數(shù)量為r×m,樣本維數(shù)小于原空間維數(shù)。 由于司機(jī)駕駛視頻和語音信號(hào)是時(shí)間序列信號(hào),因此stacking集成學(xué)習(xí)的初級(jí)學(xué)習(xí)器選用LSTM,通過基于時(shí)間序列的LSTM進(jìn)行預(yù)測,視頻信號(hào)初級(jí)學(xué)習(xí)器為LSTM1,語音信號(hào)初級(jí)學(xué)習(xí)器為LSTM2。由于初級(jí)學(xué)習(xí)器之間的差異性是影響融合分類器性能的重要因素,LSTM1的數(shù)據(jù)集為Xvideo,LSTM2的數(shù)據(jù)集為D1,D2,…,Dm,不同的數(shù)據(jù)集有效保證了LSTM1和LSTM2的差異性。在每個(gè)LSTM中, 輸入門:it=σ(Wi×[ht-1,xt]+bi) ( 3 ) 遺忘門:ft=σ(Wf×[ht-1,xt]+bf) ( 4 ) ( 5 ) ( 6 ) 輸出門:ot=σ(Wo×[ht-1,xt]+bo) ( 7 ) ht=ottanh(Ct) ( 8 ) LSTM關(guān)于火車司機(jī)疲勞狀態(tài)的預(yù)測屬于二分類問題(疲勞,非疲勞),其損失函數(shù)采用交叉熵?fù)p失函數(shù)L1,2,即 (9) (1)初級(jí)學(xué)習(xí)器LSTM1 將司機(jī)視頻疲勞狀態(tài)參數(shù)矩陣Xvideo分成k份,輪流將其中k-1份作為訓(xùn)練數(shù)據(jù),另1份作為驗(yàn)證數(shù)據(jù),按行輸入LSTM1網(wǎng)絡(luò)中,構(gòu)成k折交叉驗(yàn)證LSTM1網(wǎng)絡(luò),見圖3(其中Da1表示由視頻訓(xùn)練集得到的疲勞參數(shù)矩陣k折交叉中的第1份,以此類推),再將驗(yàn)證數(shù)據(jù)的預(yù)測結(jié)果進(jìn)行平均輸出即可得到司機(jī)值乘狀態(tài)下的視覺疲勞狀態(tài)判斷概率x11,x21,…,xz1(z為驗(yàn)證數(shù)據(jù)個(gè)數(shù))。由于引入了k折交叉驗(yàn)證,使得模型的魯棒性更強(qiáng),在使用測試集時(shí)不進(jìn)行k折交叉驗(yàn)證,選擇在k折驗(yàn)證集上表現(xiàn)最佳的模型進(jìn)行預(yù)測,從而提高預(yù)測效率和精度。 圖3 k折交叉驗(yàn)證LSTM1網(wǎng)絡(luò) (2)初級(jí)學(xué)習(xí)器LSTM2 k折交叉驗(yàn)證LSTM2網(wǎng)絡(luò)結(jié)構(gòu)見圖4,其中Db1表示語音訓(xùn)練集降維后得到的疲勞參數(shù)矩陣k折交叉中的第1份,其余以此類推。將RSM降維后的語音數(shù)據(jù)通過k折交叉驗(yàn)證的方式(方法同上)訓(xùn)練各個(gè)初級(jí)學(xué)習(xí)器LSTM2,k折交叉驗(yàn)證后的預(yù)測結(jié)果作為各個(gè)初級(jí)學(xué)習(xí)器的預(yù)測值,該預(yù)測結(jié)果取平均值即可得到司機(jī)值乘狀態(tài)下的語音疲勞狀態(tài)判斷概率x12,x22,…,xz2。 圖4 k折交叉驗(yàn)證LSTM2網(wǎng)絡(luò) LSTM1輸出視頻疲勞狀態(tài)判斷概率,LSTM2輸出語音疲勞狀態(tài)判斷概率后,為了將LSTM1和LSTM2的模態(tài)數(shù)據(jù)進(jìn)行融合從而使擬合能力更強(qiáng),將初級(jí)學(xué)習(xí)器輸出結(jié)果輸入次級(jí)學(xué)習(xí)器GBDT中,實(shí)現(xiàn)對(duì)視頻模態(tài)與語音模態(tài)的融合。LSTM1與LSTM2輸出結(jié)果構(gòu)成次級(jí)學(xué)習(xí)器GBDT的數(shù)據(jù)集Xz,即 (10) 式中:x11和x12分別為LSTM1和LSTM2的第一個(gè)輸出值,構(gòu)成第一個(gè)融合數(shù)據(jù)x1=[x11x12],其標(biāo)簽值為y1,其余參數(shù)以此類推。 GBDT是一種采用加法模型(以決策樹為基函數(shù)的線性組合),通過不斷減小訓(xùn)練過程產(chǎn)生的殘差來達(dá)到將數(shù)據(jù)分類或者回歸的算法。GBDT模型包含多輪迭代,每一輪迭代生成的基分類器在上一輪分類器殘差(殘差=真實(shí)值-預(yù)測值)基礎(chǔ)上進(jìn)行訓(xùn)練,然后不斷去擬合上輪殘差,并使殘差朝梯度方向減小,最后通過多棵樹聯(lián)合決策(將所有迭代產(chǎn)生的模型相加)從而獲得最終的預(yù)測模型,見圖5。本文中以x11,x21,…,xz1作為第一特征,x12,x22,…,xz2作為第二特征,因此GBDT處理的是由z個(gè)樣本x1,x2,…,xz構(gòu)成的二分類問題(疲勞,非疲勞),其樣本對(duì)應(yīng)的標(biāo)簽(即真實(shí)值)yi(i=1,2,…,z)取值分別為1,0(1代表非疲勞,0代表疲勞),選擇指數(shù)損失函數(shù)L(yi,c),GBDT的算法如下: 圖5 GBDT模型 先對(duì)學(xué)習(xí)器f0(x)初始化 (11) 式中:c為使損失函數(shù)達(dá)到最小的常數(shù);argmin為使后式達(dá)到最小值時(shí)變量的取值。 對(duì)于s=1,2,…,S,i=1,2,…,z,計(jì)算損失函數(shù)負(fù)梯度值作為殘差的估計(jì)值 (12) 式中:f(xi)為運(yùn)算到第i個(gè)數(shù)據(jù)時(shí)GBDT模型的預(yù)測值。 根據(jù)所有數(shù)據(jù)的殘差rsi得到了一棵由J個(gè)葉節(jié)點(diǎn)組成的決策樹,則其葉子節(jié)點(diǎn)區(qū)域?yàn)镽sj,j=1,2,…,J。對(duì)于每個(gè)節(jié)點(diǎn)的最優(yōu)解為 (13) 式中:csj為最佳殘差擬合值。 更新學(xué)習(xí)器fs(x) (14) 式中:I為指示函數(shù),若x∈Rsj則I=1,否則I=0。 經(jīng)過S輪迭代得到最終模型 (15) 式中:f(x)即為基于視頻與語音的司機(jī)綜合疲勞概率。 實(shí)驗(yàn)平臺(tái)采用Intel(R)Core(TM)i5-4210,主頻1.70 GHz,8 GB內(nèi)存。在Windows10環(huán)境下使用Tensorflow深度學(xué)習(xí)框架,采用Adam優(yōu)化器,stacking在python中使用mlxtend庫來完成。 實(shí)驗(yàn)數(shù)據(jù)集使用某機(jī)務(wù)段在司機(jī)值乘過程中采集的司機(jī)監(jiān)控視頻數(shù)據(jù)集和呼叫應(yīng)答語音數(shù)據(jù)集。數(shù)據(jù)集共有1 200個(gè)不同司機(jī)的駕駛數(shù)據(jù),其中劃分為1 000個(gè)訓(xùn)練數(shù)據(jù),200個(gè)測試數(shù)據(jù),訓(xùn)練數(shù)據(jù)集采用5折交叉驗(yàn)證(輪流將其中800個(gè)作為訓(xùn)練數(shù)據(jù),另200個(gè)作為驗(yàn)證數(shù)據(jù)),專業(yè)技術(shù)分析人員對(duì)視頻和語音數(shù)據(jù)中的司機(jī)狀態(tài)進(jìn)行了標(biāo)記(疲勞、非疲勞)。 視頻數(shù)據(jù)提取時(shí),關(guān)鍵幀幀間距選擇20 ms,幀長為320;語音特征提取時(shí),選擇語音采樣頻率為16 kHz,當(dāng)幀間距選擇20 ms時(shí),則幀長為320,幀移取160,預(yù)加重系數(shù)α取0.98。 首先將每個(gè)臉部視頻進(jìn)行分幀,將關(guān)鍵幀的人臉照片輸入MTCNN模型進(jìn)行人臉定位,再將人臉區(qū)域輸入到PFLD模型進(jìn)行關(guān)鍵點(diǎn)標(biāo)記即可得到所有關(guān)鍵幀照片的人臉關(guān)鍵點(diǎn)坐標(biāo),其中視頻32(非疲勞).mp4中的第10關(guān)鍵幀圖像的人臉關(guān)鍵點(diǎn)坐標(biāo)及姿態(tài)角見圖6。 圖6 32(非疲勞).mp4第10關(guān)鍵幀圖像人臉關(guān)鍵點(diǎn)坐標(biāo)及姿態(tài)角 將視頻數(shù)據(jù)集中同一視頻圖像關(guān)鍵點(diǎn)坐標(biāo)按照參考文獻(xiàn)[8]中的計(jì)算方法可計(jì)算出相應(yīng)的疲勞特征參數(shù),計(jì)算結(jié)果如表2所示(前10幀)。 表2 視頻32(非疲勞).mp4疲勞參數(shù)計(jì)算表(前10幀) 2.2.2 司機(jī)呼叫應(yīng)答語音數(shù)據(jù)疲勞參數(shù)采集 (1)語音讀取及轉(zhuǎn)換 讀取mp3、wav等格式文件,其中將mp3利用ffmpeg工具包轉(zhuǎn)換為pcm格式,wav利用wave工具包跳過包頭直接將裸流的bytes數(shù)據(jù)按照二進(jìn)制生成pcm文件。 (2)語音信號(hào)預(yù)處理 首先將每段語音分割成若干個(gè)短時(shí)幀,即對(duì)語音信號(hào)采用海明窗進(jìn)行處理,再進(jìn)行Wiener濾波去除環(huán)境噪聲,海明窗尺度因子a為1、2、4、8、16,窗寬為32、64、128、256、512,手指口呼_呼叫應(yīng)答1.mp3的疲勞特征參數(shù)預(yù)處理結(jié)果見圖7。 圖7 手指口呼_呼叫應(yīng)答1.mp3語音信號(hào)預(yù)處理 (3)語音特征提取 將經(jīng)過預(yù)處理的語音信號(hào)提取語音疲勞特征參數(shù)。首先對(duì)語音信號(hào)進(jìn)行預(yù)加重,即將語音信號(hào)通過一個(gè)高通濾波器,預(yù)加重系數(shù)α取0.98,再將語音信號(hào)進(jìn)行分幀處理,幀長為320,幀移取幀長一半為160,手指口呼_呼叫應(yīng)答1.mp3的疲勞特征參數(shù)圖像見圖8,表3為手指口呼_呼叫應(yīng)答1.mp3疲勞參數(shù)(前10幀)。 圖8 手指口呼_呼叫應(yīng)答1.mp3的疲勞特征參數(shù)圖像 2.2.3 基于LSTM的stacking初級(jí)學(xué)習(xí)器 (1)LSTM1的視頻數(shù)據(jù)集學(xué)習(xí) 將視頻數(shù)據(jù)集中每個(gè)視頻文件分解出100張關(guān)鍵幀照片,將檢測出的疲勞參數(shù)輸入LSTM1網(wǎng)絡(luò),其中將1 000個(gè)視頻作為訓(xùn)練集,采用5折交叉驗(yàn)證,200個(gè)視頻作為測試集,其中測試集不使用k折交叉驗(yàn)證,學(xué)習(xí)率為0.001,最后通過softmax1輸出。 (2)LSTM2的語音數(shù)據(jù)集學(xué)習(xí) ①RSM算法降低特征參數(shù)維度 選取初級(jí)學(xué)習(xí)器LSTM2的個(gè)數(shù)為5,r取40,每個(gè)子空間隨機(jī)生成一個(gè)索引向量kζ(1),kζ(2),…,kζ(5),根據(jù)索引向量在Xvoice中產(chǎn)生5個(gè)40維向量子集ζ1,ζ2,…,ζ5,將ζ1,ζ2,…,ζ5在Xvoice上進(jìn)行投影得到各個(gè)初級(jí)學(xué)習(xí)器LSTM2的數(shù)據(jù)集Dt=Mapζt(Xvoice)(t=1,2,…,5)。 ②LSTM2語音數(shù)據(jù)集學(xué)習(xí) 將每個(gè)呼叫應(yīng)答語音文件提取的特征經(jīng)過RSM降維后生成的數(shù)據(jù)集輸入到LSTM2網(wǎng)絡(luò)中,其中1 000個(gè)語音文件作為訓(xùn)練集,采用5折交叉驗(yàn)證,200個(gè)語音文件作為測試集,其中測試集不使用k折交叉驗(yàn)證,學(xué)習(xí)率為0.001,最后通過softmax2輸出。 softmax1和softmax2輸出結(jié)果匯總形成新的數(shù)據(jù)集,做為GBDT次級(jí)學(xué)習(xí)器的數(shù)據(jù)集,如表4所示。 表4 softmax1和softmax2輸出結(jié)果 2.2.4 基于GBDT的次級(jí)學(xué)習(xí)器 GBDT數(shù)據(jù)集為softmax1和softmax2的輸出,則訓(xùn)練集XT與測試集CP為 GBDT為黑箱模型,其參數(shù)設(shè)置為:基礎(chǔ)樹1 000棵,最大深度為5,決策樹劃分時(shí)的最小樣本設(shè)置為2,學(xué)習(xí)率為0.001,GBDT預(yù)測結(jié)果如表5所示。 表5 GBDT預(yù)測結(jié)果 經(jīng)過測試集200個(gè)數(shù)據(jù)測試,共計(jì)有6個(gè)數(shù)據(jù)分類有誤,測試集準(zhǔn)確率達(dá)到了97%。 2.2.5 實(shí)驗(yàn)過程偽代碼 實(shí)驗(yàn)過程部分偽代碼如下: (1)LSTM偽代碼(以語音數(shù)據(jù)為例) Load data #RSM降維 Fori=1,2,…,z Fort=1,2,…,m randomkζ(t)∈Zr ζt=f(Xvoice,kζ(t)) Dt=Mapζt(Xvoice) End for End for #LSTM2 Fori=1,2,…,k#k折交叉驗(yàn)證 trainset=[1,2,…,z]-[i,i+1,…,z/k] Inputtrainsettotrain Inputi,i+1,…,z/kto validatei Outputi=average validatei End for [x12,x22,…,xz2]=Output1+Output2+…+Outputk (2)GBDT偽代碼 Fors=1,2,…,Sdo: Fori=1,2,…,zdo: End for Forj=1,2,…,Jdo: End for End for 表3 手指口呼_呼叫應(yīng)答1.mp3疲勞參數(shù)表 為了驗(yàn)證本文方法的先進(jìn)性,將本文和文獻(xiàn)[1,4-6,10]的方法進(jìn)行對(duì)比實(shí)驗(yàn),結(jié)果如表6所示。從文獻(xiàn)[1,10]可以看出,目前單獨(dú)對(duì)語音特征進(jìn)行分析來判斷疲勞狀態(tài)的方法正確率不到90%,低于采用圖像進(jìn)行判斷的方法[4-6],而采用圖像和語音多模態(tài)融合后形成了語音和圖像特征的互補(bǔ),檢測正確率達(dá)到了97.0%,比文獻(xiàn)[10]的語音方法提高了7.4%,比文獻(xiàn)[6]的視頻圖像方法提高了1.17%,有效提高了疲勞檢測的正確率。本文所采用的方法為視頻與語音的多模態(tài)融合,導(dǎo)致檢測速度相比于文獻(xiàn)[4-6]的方法慢了0.1~0.2 s,該時(shí)間以高速列車350 km/h的運(yùn)行速度來計(jì)算行進(jìn)9.7~19.4 m,占高速列車6 500 m緊急制動(dòng)距離的0.15%~0.3%,對(duì)司機(jī)的應(yīng)急反應(yīng)和實(shí)施緊急制動(dòng)影響不大。 表6 不同疲勞檢測方法檢測結(jié)果對(duì)比表 本文針對(duì)火車司機(jī)的駕駛疲勞檢測問題,采用基于視頻監(jiān)控的圖像特征以及司機(jī)呼叫應(yīng)答的語音特征融合的方法,構(gòu)建了基于多模態(tài)信息融合的火車司機(jī)疲勞駕駛檢測模型,初級(jí)學(xué)習(xí)器采用LSTM,k折交叉驗(yàn)證,視頻信號(hào)和語音信號(hào)分別進(jìn)行處理,次級(jí)學(xué)習(xí)器采用GBDT,經(jīng)過兩級(jí)學(xué)習(xí)器后輸出預(yù)測結(jié)果,疲勞檢測正確率達(dá)到了97.00%。1.2 LSTM初級(jí)學(xué)習(xí)器
1.3 GBDT次級(jí)學(xué)習(xí)器
2 實(shí)驗(yàn)
2.1 實(shí)驗(yàn)環(huán)境及實(shí)驗(yàn)數(shù)據(jù)集
2.2 實(shí)驗(yàn)過程2.2.1 司機(jī)臉部視頻數(shù)據(jù)疲勞參數(shù)采集
2.3 對(duì)比分析
3 結(jié)論