孔康 李德盈 牛禹涵 孫中圣
(南京理工大學機械工程學院 江蘇省南京市 210094)
人體表面肌電信號在醫學領域有著非常重要的應用,能夠直觀地反應神經和肌肉的運動狀態,擁有極大的醫學價值。但其信號具有微弱性,突變性,在采集的過程中容易受噪聲的干擾,因此在采集和識別動作的過程中存在很大的難度。當前對肌電信號的特征提取主要分為時域分析法、頻域分析法和時頻域分析法。頻域分析法存在延遲性高、依賴計算能力等問題。時域分析法具有信號處理的速度快等優點,吳顏生[1]提取52 個時域和參數模型等特征進行分析和識別分類;馬迪[2]通過對時域和非線性動力學特征的提取完成對表面肌電信號的采集。但由于利用肌電信號幅值進行分類,受手勢動作力度等因素影響較大,存在識別率較低的問題。時頻分析法相較時域分析法有一定的延時性,識別率相對較高,吳庭丞[3]分析對比綜合時域和自回歸特征的信號特征提取方法與結合時域和功率譜描述的特征提取方法,采用LDA 降維的方法,但是可用維度最大只能是C-1,無法選擇全部可用維度;邱青菊[4]采用小波變換和小波包變換識取時頻特征。同樣的,也有一些研究者提取肌電信號的其他特征進行識別。石欣[5]提出LMS-隨機森林的方法實現快速準確分類。劉萬陽[6]使用幅值絕對值和小波系數奇異值作為特征值,選取支持向量機算法實現模型訓練和分類識別,識別率達到90.31%。
本研究從時域特征角度出發,力求保證識別速度的條件下提高動作識別率。對原信號進行頻譜分析,設計使用濾波器和陷波器,針對環境噪聲以及50Hz 的工頻噪聲進行降噪處理。創新使用多通道組合窗口能量法設置閾值,利用四通道的同時性,對采集到的信號進行活動段檢測,提取動作段信號。采用窗口法對信號進行分割,完成對五個手部動作產生的肌電信號時域特征的提取。在完成時域特征提取后,通過BP 神經網絡訓練進行手勢動作分類,并獲得良好的識別率。最后采用分通道PCA 的方式降維,減小計算量,提高計算速度。
肌電信號頻率主要集中在20-500Hz。本文采用的信號采集儀器是采樣頻率1000Hz 的按扣式電極連接四通道采集電路,在采集信號后首先利用頻譜分析找到電磁干擾、人工干擾和白噪聲等干擾頻率,將數據依次通過simulink 仿真中建立的高通濾波器(截止頻率20Hz)、陷波器(阻帶頻率48Hz,通頻帶頻率55Hz)、低通濾波器(截止頻率490Hz)的處理,完成信號的采集降噪[7]步驟,并在計算機中使用上位機程序完成信號預處理。

圖1:BP 神經網絡結構圖

圖2:BP 神經網絡流程圖

圖3:手臂肌群示意圖
使用多通道組合窗口能量法進行活動段檢測,降低無動作時肌電信號的干擾。將通過預處理降噪之后的肌電信號的電壓數值進行開平方計算,用數據的開平方數值代替該段的能量[8]。由于肌電信號存在交變和階躍性,為減小由于信波動較大而產生錯判,本文采用劃分窗口[9]求能量的方式,但窗口不宜過大,否則會造成漏判。窗口長度設置為4ms,計算無動作段窗口信號的平均能量,算法描述如下:

其中xn表示第n 段窗口肌電信號的能量,m 表示通道數。
為減小判斷誤差,檢測動作的閾值選取為無動作窗口能量的1.4倍,文中取閾值為0.0036uV2。考慮到進行同一次實驗時,四個通道存在同步性,為進一步減小檢測誤差,選擇多通道組合的方式,當存在兩個及以上通道數的某窗口能量大于該閾值,就認為該窗口段為動作段,計算方法如下:

將該動作段的信號還原并提出,將各個動作段的信號按時間順序依次排列,構成活動段信號組。另四種動作重復上面的做法。
考慮到實驗測量和活動段檢測存在誤差,不同動作檢測出的活動段長度可能不同,因此需要對不同的動作進行長度的統一,濾除多余動作長度的后半段。
時域分析是將肌電信號的時域統計量作為模式分類依據,主要包括:平均絕對值、標準差、均方根、方差、過零點數、最大最小值等。本文選取平均絕對值、方差、均方根和過零點數[8]作為分類識別特征。
1.3.1 平均絕對值表示活動段表面肌電信號的平均強度,計算公式如下:

1.3.2 均方根
表示活動段肌電信號的平均功率,計算公式如下:

1.3.3 方差
表示活動段表面肌電信號與平均值的偏離情況,計算公式如下:

1.3.4 過零點數
反映的是活動段內肌電信號的幅值超過零軸的次數,計算公式如下:

其中,相鄰值threshold,即閾值,取無動作時電壓值均值的1.4倍,用以降低背景噪聲對過零點數的干擾。
考慮到肌電信號的突變性,所以選擇移動窗口法[10]對時域特征進行計算。窗口每次沿時間軸方向移動滑動窗的大小,移動窗口法較靜止窗口法能更多地利用數據段,更好地反映信號。滑動窗口和滑動距離大小的選擇,過小將無法排除肌電信號突變階躍的影響,過大又不能夠精確地反映每種動作特征的區別,為了完整地描述肌電信號,窗口長度在選擇時要能夠被動作段長度整除。在通過多次嘗試后,本文選擇窗口長度為8ms,滑動增量為4ms。對五種動作的四個通道依次進行以上操作。

圖4:采集電路圖
每種動作有四個通道四個時域特征,每個特征有2998 條數據。因此可以針對每種動作建立一個2998*16 的動作矩陣,共五種動作,列出5 個大小相同的矩陣。為區分每一種動作,給每一個動作設定一個標簽,屈食指為動作1,屈拇指為動作2,屈腕為動作3,屈四指為動作4,握拳為動作5。將動作標簽添加到每個樣本數據末尾,五種動作依次排序,組合成一個14990*17 的輸入矩陣,前十六列為每個動作四個通道的特征數據,最后一列為動作標簽。
為保證后續BP 神經網絡對動作數據選取的完整性,需要將各動作按時間順序依次插入排列,第一行為第一個運動段時刻屈食指的數據,即動作1;第二行為第一個運動段時刻屈大拇指的數據,即動作2。依次類推,得到行向量依次為動作1,動作2,動作3,動作4,動作5。
BP 神經網絡算法結構簡單,是一種按照誤差逆傳播算法訓練的多層前饋網絡。它的訓練過程由正向傳播、反向傳播、循環記憶訓練[11]和學習結果判別組成。結合圖1 和圖2,傳遞函數選擇Sigmoid 函數,計算方法如下:

輸入的每種動作包含16 個特征,輸入層的神經元個數為16。共有5 種手勢腕部動作,因此輸出層設置為5 個神經元。本文中涉及到的手勢動作較為復雜,單純依靠經驗公式選擇隱含層層數是不夠精確的,本文經過多次嘗試之后,最終選擇了隱含層的數目為18。學習速率設置為0.1,初始權值和閾值選擇1,最大迭代次數取1000。
將本文所需要測試的五種手勢動作共14990 條輸入樣本代入測試。訓練樣本數為70%,剩下的樣本作為神經網絡的驗證和測試,各占15%。經過神經網絡預測后,建立混淆矩陣[12]。
當前每一個通道的維數是16 維,為了降低維度,保留下最重要的一些特征,去除噪聲和不重要的特征,從而提升數據處理速度。本文決定通過主成分分析的方法實現特征向量的降維,減少BP 神經網絡的輸入節點數。
由于每個通道采集的信息是獨立的,所以本文將對各通道逐一進行主成分降維[13]。取通道一的四個特征指標:平均絕對值、方差、均方根、過零點數,分別用x1、x2、x3、x4表示,這四個指標構成的四維隨機向量x=(x1, x2, x3, x4),由于有14990 個樣本,所以每個通道可構成大小為14990*4 的樣本矩陣X:

圖5:實驗手部動作圖

圖6:濾波前后頻譜圖


圖7:四通道屈食指提取的活動段圖像

計算標準化樣本的協方差矩陣:

不同的手部動作將產生不同的肌電信號,從生物醫學角度,分析手部動作跟前臂肌肉肌群的對應關系。結合表1 給出的肌群和手部動作的關系,根據圖3 手臂肌群分布確定貼片位置。采集電路圖如圖4 所示。

表2:PCA 降維

圖8:優化前后分類結果

表1:肌肉群與動作對應關系
設計圖5 中五種手部動作。在采集的過程中,被測者需要完成并重復指定動作,每一個動作的肌電信號的采集需要完成12 組,一組測量中包括持續保持指定動作2s、保持放松狀態2s,采樣頻率為1000Hz。
將采集到的肌電信號進行頻譜分析,進行第一次預處理,結果如圖6 所示。
圖7 為屈食指特征活動段檢測后,活動段信號還原并按時間順序排列的圖像。
通過PCA 降維,得到表2 的結果。
由表2 分析可得,當主成分階數為3 個時,對應通道的累計貢獻率已經達到98.30%、98.88%、97.78%、97.91%。一般當主成分的累計貢獻率達到90%時就可認為這幾個主成分代表原數據的絕大部分重要特征,因此將每個通道的維數從4 維降為3 維,總的維數從16 維降為12 維。然后,利用降維后的數據,組成新的14990*13 的輸入矩陣代入BP 神經網絡,得到新的分類結果。
圖8(a)(b)分別為BP 神經網絡的分類結果和主成分分析法降維之后神經網絡的分類結果:
圖8(a)中四個矩陣從左到右,從上到下依次為訓練樣本混淆矩陣、驗證樣本混淆矩陣、測試樣本混淆矩陣和全部樣本混淆矩陣。標有數字1、2、3、4、5 的行和列分別表示屈食指、屈拇指、屈腕、屈四指、握拳的分類結果。對于同一行的數據意義是每一類動作的預測結果中,來自目標矩陣的手勢動作占多少。以全部樣本混淆矩陣為例,第一行2564+2+21+142+0=2729 個屈食指類動作的預測結果中,有2564 個屈食指動作被正確地分類,占所有樣本的17.1%,有2 個屈拇指動作,21 個屈腕動作,142 個屈四指動作被錯誤地分類為屈食指,所以屈食指動作實際上被正確識別的正確率為94.0%。對于同一列的數據意義是,實際某一類動作被識別為各種手勢動作的占比。以全部樣本混淆矩陣為例,第一列2564+1+77+335+21=2998 個屈食指動作中,被正確分類為屈食指的有2564 個,有1 個被錯誤分類到屈拇指,有77 個被錯誤分類到屈腕,有335 個被錯誤地分類到屈四指,有21 個被錯誤地分類到握拳,正確分類的占85%。總體平均而言,對于所有樣本被正確分類的占93.0%,被錯誤分類的占7.0%。
觀察降維前后的分類結果,可以看到降維后的平均分類正確率為92.5%,僅比降維前低了5%,但在維數上卻做到了降低,能夠提高分類器的分類速度,達到了優化的目的。
本文采用移動窗口法提取四個測量通道獲得的數據的平均絕對值、方差、均方根和過零點數四種時域特征,綜合考慮算法運算時間和識別精度,設計基于主成分降維的BP 神經網絡,使16 維輸入變為12 維,實現對屈拇指、屈食指、屈四指、屈腕、握拳5 種手勢動作的離線識別,整體的識別率達到92.5%。
本文創新使用多通道組合方式下的窗口能量法,將動作段的判別轉化為可測的窗口信號的能量,即幅值的平方。通過劃分窗口的方式,降低肌電信號階躍變化帶來的誤判,又通過多通道計數判斷的方式提高活動段檢測的精度。