張家潤
(四川大學電子信息學院,成都 610041)
人們在進行鍛煉時,隨著鍛煉時間的推移,人體會感覺到疲勞,這種疲勞會導致注意力難以集中、工作效率降低、大腦興奮度降低[1-2]。而人們的鍛煉通常在無醫生監督狀態下進行的,因而在鍛煉時的疲勞程度難以發現和評價。研究表明人體在產生生理疲勞時,生理參數隨即發生改變,這種改變在循環系統和心血管系統中表現明顯[3]而脈搏波能夠很好地展現出這種趨勢。國內外學者已對各種基于脈搏波信號的生理疲勞進行了研究。Stephen Paul Linder等人[4]讓九名身體健康的志愿者在跑步機上鍛煉直至疲勞,使用光電容積描記(PPG)在志愿者的耳垂和前額都檢測到了一種低頻紡錘波,隨著志愿者疲勞的加深,紡錘波變得更加明顯,該技術為運動誘發的身體疲勞自動檢測和表征提供了積極參考。Keiichi Horio和Ying Li[5]為了更好地分析受試者的疲勞狀態,通過PPG信號的二階微分獲得了SDPTG信號,從SDPTG提取拐點的振幅比(三維數據)、脈沖間隔(一維數據)、Lyapunov指數(一維數據)作為特征值,并且使用多重關系嵌入技術(MRE)將上述特征值降維成三維數據,結果表明,拐點的振幅比,尤其是最大波谷與最大波峰的比值和脈搏波周期間隔與受試者的疲勞緊密相關。Rajiv Ranjan Singh等人[6]對駕駛過程中的駕駛員進行了情緒和壓力研究,首先采集就駕駛員的PPG信號,對信號進行了中值濾波去除運動偽影,提取了PPG信號的瞬時心率、信號能量、信號周期、帶寬、時間帶寬乘積作為特征值,采用基于時間序列的分層遞歸神經網絡LRNN,對樣本進行訓練,最后壓力分類率達到88.3%。Hao Yin等人[7]研究了駕駛員疲勞檢測方法,選擇了脈搏波信號中的主波幅度、重播波前波幅值、重播波前波幅值與主波幅度的比值、快速射血期、心臟收縮期、快速射血期與心臟收縮期的比值、快速射血期與脈搏波周期的比值、脈搏波周期作為脈搏波疲勞特征值采用SVM分類法,最終測試準確性為83.82%。在國內,熊運霞等人[8]采集人體脈搏波信號后對其進行軟閾值濾波處理,然后運用改進的Welch方法對脈搏波進行功率譜估計,通過實驗研究發現人體疲勞時和清醒時脈搏波信號的功率譜有明顯的不同。于霞、金龍哲等人[9]通過有限空間100min極限載人實驗,利用提取光電容積脈搏波信號特征值法掌握了生理疲勞的循環系統和血液動力學的變化特征。研究表明,人體在疲勞狀態下,光電容積脈搏波傳導周期變長;下降支斜率增大,外周血管阻力增大;上升支斜率增大,心臟收縮射血量減小,射血速度變慢。在現有關于脈搏波識別生理疲勞的研究中,脈搏波特征值選擇與脈搏波特征值分類是分開進行的,這樣會使脈搏波特征值冗余,導致分類精度下降,計算量增大,為了定量分析脈搏波特征值與生理疲勞的內聯關系,以及提升脈搏波特征值辨識生理疲勞的分類率,本文提出了一種基于PSO-SVM的脈搏波特征選擇的生理疲勞辨識方法。
本次研究,召集了8個身體健康,年齡23歲到26歲,體重在55kg到85kg,身高從160cm到185cm的志愿者,進行脈搏波測量,測量步驟如下:
(1)在安靜的環境中,志愿者得到足夠的休息后,將手放平至桌上,均勻呼吸,采用PPG法測量8個志愿者的左手食指脈搏波數據,測量時間20s,采樣頻率100Hz。
(2)使8個志愿者往返六樓,再次測量8位同學的左手食指脈搏波波形,測量時間20s,采樣頻率100Hz。
(3)將在安靜無運動環境下測量的8位志愿者脈搏波定義為非疲勞狀態,標簽為0;將往返6樓的位志愿者脈搏波定義為疲勞狀態,標簽為1。
采集到的PPG脈搏波信號會有基線漂移的現象,本文采用零相位濾波器對脈搏波信號進行去基線漂移的處理。如圖1所示,原始PPG脈搏波信號經過零相位濾波器濾波后,基線漂移現象得到明顯改善,有利于對脈搏波信號做進一步處理。

圖1 脈搏波去基線漂移
脈搏波信號采集到后,會有噪聲,而卡爾曼濾波器對這種基于時間和非線性的生物醫學信號有較好的濾波效果。所以對脈搏波信號進行卡爾曼濾波預處理,其中狀態的一步預測方程[10]:

均方誤差的一步預測:

濾波增益方程:

濾波狀態估計:

濾波狀態均方誤差更新矩陣:


卡爾曼濾波前后的PPG信號如圖1所示,濾波后的信號更加平滑,尖點消失,更好地反映原有的信息。

圖2 PPG信號卡爾曼濾波前后
圖3 是原始PPG脈搏波信號經過上述預處理后,在數學仿真軟件MATLAB中得到的脈搏波極值提取圖,本文提取的脈搏波極值有上升支波峰點、降中峽點Min(xi,yi)、重搏波波峰點以及下降支波谷點而PPG脈搏波極值的提取對接下來特征值的提取有重要的意義。

圖3 脈搏波極值提取
脈搏波極值提取圖中,波段Pvallev(xi-1,yi-1)至稱為上升支,左心室開始收縮,主動脈瓣開啟,對應心臟搏動收縮期,此時心臟快速向全身射血而壓力迅速上升,對應血壓是收縮壓也就是高壓;Ppeek(xi,yi)至Pvallev(xi,yi)稱為下降支,此時血液往心臟回流,對應心臟搏動舒張期,對應血壓為舒張壓也就是低壓;在下降支中波段Ppeek(xi,yi)至Min(xi,yi)稱為降中峽,是在主動脈瓣關閉前的瞬間,在脈搏波下降支中形成的切跡;波段Min(xi,yi)至Max(xi,yi)稱為重播波,這是主動脈瓣關閉后折返回來的短暫血流,使得主動脈管壁擴張形成的峰值[11]。本文采用上升支幅度HUAM=Ppeek(yi)-Pvallev(yi-1);上升支幅度與下降支幅度比值UDOR1=HUAM/HDAM,其中HDAM=Ppeek(yi)-Pvallev(yi);上升支時間TUAM=Ppeek(xi)-Pvallev(xi-1);上升支時間與下降支時間的比值UDOR2=TUAM/TDAM,其中TDAM=Ppeek(xi)-Pvallev(xi);脈搏波周期WPT=Pvallev(xi)-Pvallev(xi-1)作為PPG脈搏波特征值。
提取的PPG脈搏波特征并非都完全反映疲勞信息,一部分脈搏波特征具有較大噪聲和冗余信息,這會導致分類精度和速度的下降,所以要選擇合適的特征。特征向量的選取主要有監督式和非監督式兩種方法。非監督式方法有K-means聚類和主成分分析法(Principal Component Analysis,PCA)[12],這種方法利用特征向量內在關聯性,將高維向量映射到低維空間從而實現特征向量的降維。而非監督式的方法是利用算法求解出各個特征向量的權重系數矩陣,從而選取權重高的特征向量。本文采用了特征工程中常用的監督式ReliefF算法[13]關聯生理疲勞和脈搏波特征向量,實現特征值向量選取和降維。首先將上述8位志愿者的5維特征向量和第6維標簽向量制作為數據集如(7)所示:

式中y(n)——表示第n個樣本的疲勞狀態(疲勞標1;非疲勞標 0);Fi(n)——表示第n個樣本的第i個特征值。ReliefF算法的實現流程圖如圖4所示。

圖4 ReliefF算法流程圖
基于ReliefF算法關聯的脈搏波信號特征向量與生理疲勞的權值W(Fi),從預選向量中選出權重最大和次之的特征向量,W(Fi)更新計算方法如(10)-(11)所示。

式中diff(Fi,R1,R2)是R1,R2的特征Fi值的差;Rt是數據集中隨機抽取的 r個樣本值,t=(1,…,r);class(Rt)是樣本Rt所屬類別;Hj是在class(Rt)類中選擇的k個和Rt相鄰的數,j=(1,…,k);P(class(Rt))是class(Rt)類別在總樣本中的占有比比例;Mj是非class(Rt)類中選擇的k個和Rt的相鄰數,j=(1,…,k);C是Mj所屬的類別,P(C)是類別C在樣本中所占比例。
將采集到的8位志愿者的脈搏波信號特征向量輸入到ReliefF算法中,得到如表1的特征向量權重值,設置特征向量權重閾值為0.045,因此選擇UDOR2、WPT作為最終的特征向量。

表1 ReliefF算法脈搏波特征權
SVM是一種基于統計學的機器學習算法,結合了VC維(Vapnik-Chervonenkis Dimension)和結構風險最小化原則理論,具有良好的小樣本數據學習能力[14],適合處理脈搏波特征值分類這種非線性問題。
脈搏波的生理疲勞識別是一個非線性可分的二分類問題,其約束條件和優化目標函數可以視為二次回歸,可以描述為:

式(12)中:C是懲罰因子,表示對錯誤分類的懲罰評價;ξ是考慮分類誤差引入的松弛變量,引入拉格朗日乘子αi,將原問題轉化為:

根據核函數K()xi,xj,得到優化目標函數為:

核函數的作用是將低維輸入向量映射到高維空間,從而實現線性可分,本文選擇徑向基核函數,此函數描述為:

粒子群支持向量機是粒子群與向量機的混合模型,利用適當的特征子集來提高分類精度[15],本文采用PSO優化算法對徑向基核函數參數σ和懲罰因子C進行優化。PSO算法的粒子速度和位置的更新式(16)所示。

式(16)中,k是迭代次數;vi(k)是粒子i的飛行速度;xi(k)是粒子i的當前位置;pi記錄了第i個粒子所到過的最優位置;pk是種群到過的最優位置;c1,c2是局部學習因子和全局學習因子[16];ω是慣性因子;r是0到1之間的隨機數。
優化SVM的懲罰因子C和徑向基函數參數σ就是PSO算法中粒子的位置xi。計算最優參數的步驟如下:
(1)初始化模型參數xi,vi(k),最大迭代次數K。
(2)粒子個體適應度f,以及計算pi、pk。
(3)通過式(15)更新粒子群速度和位置。
(4)達到迭代最大次數,算法終止。
PSO-SVM的具體模型參數是:粒子群粒子數量100;粒子維度2;c1,c2均設為2;慣性因子ω為0.8;迭代次數50次;懲罰因子C的范圍[1,100];徑向基函數參數σ范圍[0.1,10]。所用樣本總數63,疲勞樣本28,非疲勞樣本35。將樣本輸入PSO-SVM算法中,訓練迭代次數與正確率如圖5所示。

圖5迭代次數分類精度情況
圖5 中橫坐標為訓練迭代次數,縱坐標為樣本分類精度可以看出樣本分類總迭代次數50次,在前6次迭代中PSO-SVM分類精度為93.7%,6次迭代以后計算收斂且分類精度達到95.2%。最終粒子群優化SVM懲罰因子C值為5.57,優化后徑向基函數參數σ值為0.001。樣本訓練分類結果如圖6所示。

圖6訓練樣本分類效果
圖6 中橫坐標為上升支時間與下降支時間的比值UDR2;縱坐標為脈搏波周期WPT,紫色區域為非疲勞區域,藍色樣本圓點為非疲勞特征點;橙色區域為疲勞區域,紅色樣本圓點為疲勞特征點。從圖中訓練效果可以得出如下結論:疲勞樣本有27個分類正確,有1個分類錯誤,疲勞分類正確率為96.4%;非疲勞樣本有33個分類正確,有2個分類錯誤,非疲勞分類正確率為94.3%;總樣本分類正確率為95.2%。
本文提出了一種基于脈搏波特征選擇的生理疲勞辨識方法,通過對脈搏波極值的提取,選擇了5維關于生理疲勞的特征預選值,采用ReliefF特征權重分析法,對5維特征向量做了生理疲勞權值分析,得到了關于生理疲勞的脈搏波5維特征向量的權值向量,選擇了權值大于設定值的特征預選值作為最終特征值。通過PSO參數優化的SVM模型對生理疲勞進行辨識。結果證明經過選擇的脈搏波特征值的PSO-SVM方法生理疲勞辨識率高于傳統SVM多分類方法。