張 霞,趙 東,陶思翰
(重慶交通大學機電與車輛工程學院,重慶 400074)
近年來,外骨骼等穿戴式機器人設備在軍事、醫療、康復、工業等領域獲得極為迅速的發展。穿戴式機器人在運動輔助過程中根據人體運動模式提供相應的輔助,是臨床應用環節人機共融的關鍵因素。因此,精準的人體動作識別是提高穿戴式機器人設備助力性能和適應能力的基礎,對實現柔順助力、促進運動功能康復等至關重要。
根據數據采集設備的不同,下肢動作模式識別方法主要分為基于圖像的步態識別方法和基于生物電信號及運動學參數的步態識別方法。例如,2009年美國明尼蘇達大學計算機科學與工程系人工智能、機器人與視覺實驗室利用基于圖像的重建及繪制的方法拓展了人體運動和步態識別系統的適用范圍[1],然而該方法的分類精度嚴重依賴攝像機與運動方向夾角以及訓練視角,從而限制了實際場景中的應用。CASTRO等[2]在2017年使用轉換或投影的方式使步態進行多角度轉換,從步行者的局部步行特征出發進行步態模式識別,但是局部運動特征并不能完全反映實驗者在不同場景、不同狀態下的運動步態情況,具有一定的主觀性。基于生物電信號及運動學參數的步態識別方法是一種使用生物電信號、腿部角度信號和足底壓力信號等多源信息融合的步態識別方法[3]。然而上述2類方法存在相機及信號采集設備精度要求高、實驗環境影響因素大、下肢步態分類精度低等問題。
表面肌電信號(surface electromyography,sEMG)作為重要的生物電信號類型[4],能夠實時地反映人體的運動意圖。同時由于采用穿戴式信號采集方式,人體下肢的運動空間不僅不受采集設備的限制,還可以通過測量多個肌肉的表面肌電信號來預測復雜的下肢運動類型,該方法具有信息量豐富和運動時干擾性小等特點,在步態識別方面具有天然優勢。如文獻[5]將表面肌電信號作為步態識別信息源,提取能反映步態特征的特征值,利用機器學習方式進行分類識別,提高步態識別率;文獻[6]提取步態初期前200 ms的表面肌電信號特征值,應用有監督的Kohonen神經網絡算法進行不同路況的下肢步態識別。
此外,隨著人工智能的發展,基于深度學習的步態識別技術也在不斷進步。針對大型sEMG信號數據集,利用深度學習進行步態識別,與傳統分類器方法相比,分類精度更高。ALOTAIBI等[7]提出了使用多層卷積核子采樣層的深度神經網絡來解決模型遮擋和噪聲問題,改進步態識別。CASTRO等[8]采集了步態圖像數據,利用步態序列中的時間信息設計卷積神經網絡,進行下肢步態識別。
總而言之,為進一步提高識別率,有的研究者傾向于在神經網絡算法方面進行優化[9],而有的研究者傾向于對原始表面肌電數據進行處理并利用傳統及優化后的機器學習方法進行分類識別[10]。然而,現有下肢動作模式識別方法仍面臨著識別分類能力弱、識別率低以及對下肢表面肌電信號數據量的需求高等挑戰。考慮到研究過程中數據采集方式、數據預處理、特征提取、神經網絡算法等環節的相互影響和約束,本文針對下肢運動模式識別率低的問題,構建一種以特征集作為輸入的卷積神經網絡,并比較本文方法與其他分類方法的識別率與工作特征。
采用OT Bioelettronicasrl表面肌電記錄設備及其分析軟件采集表面肌電信號。以無負重上樓、無負重下樓、負重上樓、負重下樓、無負重平地行走等5個動作為對象,共選擇股直肌、股外側肌、股內側肌、半膜肌、股二頭肌、外側腓腸肌、內測腓腸肌和脛骨前肌[11-12]等8塊肌肉的肌電作為信息源進行人體下肢動作識別研究。實驗地點為實驗樓走廊,采集信號場景如圖1所示。一共征集了6位男性受試者,年齡(24±2)歲,身高(172±8)cm,體重(56±5)kg,身體各項指標正常。采集上述5種步態動作,每一種動作重復30次。考慮人體肌肉疲勞影響,每種步態完成后休息30 min再進行下一步態動作,各步態動作下信號采集時間為1 min,6位受試者在節拍器的指引下保持步行節奏的一致性。在設備穿戴過程中每一次都應對黏貼位置進行消毒處理,保證電極貼片和皮膚貼合良好。采集過程遠離強磁強干擾環境,避免信號受外界環境干擾。按照同樣的方式,信號采集工作持續進行30 d,即總共采集6×5×30×30=27 000 min。sEMG數據通過藍牙實時傳輸到電腦端保存。

圖1 肌電信號采集場景Fig.1 sEMG acquisition scene
由于sEMG的有效信號在0~500 Hz之間,主要能量集中于20~300 Hz,使用ButterWorth濾波器對原始信號進行20~300 Hz的帶通濾波[13],目的是為了除去高頻噪聲干擾,使信號具有很好的通帶和阻帶特性。圖2顯示了無負重直立行走情況下某受試者的股直肌(BF)濾波前后的信號。結果表明,該濾波方法不僅能有效過濾通帶之外的頻率,還保留了基波分量。

圖2 濾波前后的肌電信號Fig.2 Before and after filtered sEMG signal
sEMG常見的特征分為時域特征(TD)、頻域特征(FD)和時頻域特征(TFD)3類。本文提取均方根值(RMS)、平均絕對值(MAV)、過零點率(ZC)、斜率變化率(SSC)4個時域特征和平均功率頻率(MNF)、中值頻率(MDF)2個頻域特征值。相對于頻域特征而言,4個時域特征具有易于提取、計算量小、計算快速的優點[14]。MDF和MNF則在展現肌電信號頻率分量情況方面更具有優勢,而且相較于時域特征具有更好的魯棒性[15]。采集的下肢肌電信號是隨時間累積的,自動滿足時間升序要求,同時考慮到sEMG的短時非平穩性,為保證特征值的連續性,采用了“時間窗 + 滑動步長”的方式[16]進行特征提取,滑動窗寬340個采樣點,滑動窗前進的步長為40個采樣點,即每340個采樣點提取1個特征,K時刻選擇大小為340個采樣點的滑動窗,在滑動40個采樣點的步長后將看作(K+1)時刻滑動窗口。在特征提取過程中,使原始肌電信號的時間窗及步長保持一致,從而保證各個時域特征長度相等,以利于特征數據集的整合。提取無負重平地行走時股直肌的時域和頻域特征圖如圖3所示。

圖3 股直肌時域與頻域特征圖Fig.3 Characteristics of rectus femoris in time domain and frequency domain
將提取的步態特征整合為30個樣本數據集,其中訓練樣本占80%,測試樣本占20%。樣本數據大小為20 480×48,列向量分別表示8塊肌肉的6個特征,共48列特征向量,行向量表示5個步態數據的時間序列點數,共20 480行。
由于輸入數據的行向量達到了20 480行,較高的數據維度不僅會對計算機的算力提出較高的要求,還會影響神經網絡的識別速度,故在導入網絡模型前利用主成分分析(principal component analysis,PCA)方法對數據集進行降維處理[17],以便在保留有效信息的基礎上,提升識別速度。參考文獻[18]介紹的PCA方法進行降維處理,提取總體解釋率接近80%的前16個因子變量代替原本48個維度的特征數據集。經整合降維后的數據大小為n×200×16×1,其中n×200為所有樣本總時間序列長度。
卷積神經網絡是一種前饋神經網絡,其基本結構由輸入層、卷積層、池化層、全連接層及輸出層組成,是由多層感知機(MLP)演變而來[19],能夠不斷調整內部神經元與神經元之間的權重關系,從而達到信息處理及分類識別的目的。卷積神經網絡具有局部連接、權值共享及降采樣的結構特點,其局部連接的特點使得卷積神經網絡有別于傳統神經網絡,卷積神經網絡相鄰層數之間的部分神經元相連接,其權值共享的特點使得卷積神經網絡更類似于生物神經網絡,這2個特點使得卷積神經網絡能夠降低網絡模型的復雜度、減少權值的數目,從而提升目標識別的效率。降采樣是卷積神經網絡的另一個重要概念,也稱其為池化(pooling),其目的是為了降低圖像分辨率,防止網絡出現過擬合問題。
卷積層的作用是提取圖像的特征,在該層中,通常包含多個可學習的卷積核,上一層輸出的特征圖與卷積核進行卷積操作,即輸入項X∈RM×N與卷積核W∈RU×V之間進行點積運算,并加上其對應閾值b,wu,v是卷積核W上第u行第v列的值,xi-u+1,j-v+1是輸入數據X上第(i-u+1)行、第(j-v+1)列的值,一般U?M,V?N。然后將結果送入激活函數δ(本文選用Relu激活函數),就可以得到輸出特征值y(i,j),其下標(i,j)從(U,V)開始;池化層的作用是對特征進行抽樣,可以使用較少訓練參數,即對上一層的輸出Yx,v,將其劃分為很多區域Rx,v,1≤x≤X,1≤y≤Y,xi為區域Rx,y內每個神經元活性值。本網絡結構選擇最大池化層,即對于一個區域Rx,y,選擇其最大值作為該區域輸出值,從而減少卷積層輸出的特征向量維數,同時還可以減輕網絡模型的過擬合程度。網絡的最后一般為1~2層全連接層,全連接層負責把提取的特征圖連接起來,一般選擇交叉熵損失函數(softmax)作為激活函數,用Loss表示,該層主要是將池化層輸出通過softmax函數映射成為ai∈(0,1)的值,而這些值的累加為1,滿足概率的性質。最后選取輸出節點概率最大值,作為最終預測目標yi。本文對5種步態進行分類識別,所以輸出節點為5個。卷積神經網絡具體計算方法如下所示。
(1)
δ=max(0,x),
(2)
(3)
(4)
本文采用卷積神經網絡(CNN)的方法對無負重上樓、無負重下樓、負重上樓、負重下樓、無負重平地行走5種步態動作進行識別。所構建的網絡模型一共有9層,主要包括1個輸入層、3個二維卷積層、2個二維池化層和3個全連接層,其數據處理流程如圖4所示。由于數據量龐大,在數據訓練過程中很容易出現過擬合問題,所以本文添加了2個dropout層以減小數據過擬合問題。CNN的第1層卷積核個數為32,核大小為20×3,步長為1;第2層卷積核個數為64,核大小為3×3;第3層卷積個數為128,核大小為3×3;第1層池化大小為2×1,步長為1;第2層池化大小為2×1。分別采用0,1,2,3,4作為下肢動作標簽,5作為錯誤識別標簽。

圖4 特征集為輸入的卷積神經網絡結構框圖Fig.4 Structure of the convolutional neural network with feature sets as input
使用前述訓練樣本集對該模型進行訓練,通過誤差反向傳播和梯度下降算法,不斷迭代和更新權重和偏置,達到設定的誤差或迭代次數后,保存模型的交叉熵損失(Loss)和識別準確率(Accuracy)2個參數。采用前述測試集對模型的誤差和準確率進行驗證。該深度學習模型的批大小為155,學習精度設置為0.01,迭代次數為1 000。實驗采用的電腦操作系統為Windows10,處理器為i5-9400FCPU,使用的深度學習框架為Tensorflow,集成開發環境是spyder。
采用混淆矩陣統計了某受試者的步態識別結果,如表1所示。受試者平地行走識別準確率為96.83%,上樓識別準確率為95.97%,下樓識別準確率為96.27%,負重上樓識別準確率為95.75%,負重下樓識別準確率為96.55%。可見,平地行走的步態識別準確率最高,而負重上樓的步態識別準確率最低。

表1 測試者步態動作識別結果
造成平地行走步態識別準確率最高的主要原因,可能是上(下)樓過程不僅需要在水平方向上做功還需在豎直方向上做功,平地行走過程只需在水平方向上克服較小的阻力,下肢肌肉克服阻力做功較少,腿部懸空時涉及到的腿部肌群的向心收縮和離心收縮較弱。相同運動時間條件下,平地行走過程中下肢肌肉群的疲勞程度更低,采集到的肌電信號數據幅值和頻率更為穩定,因此,平地行走的步態識別準確率和其他4種步態的關聯性最弱。同時由于上、下樓的動作相似,當測試者上(下)樓及負重上(下)樓時,采集到的下肢肌肉的肌電信號部分特征相似,從而提升了分類器訓練的難度,最終因少量樣本的錯誤識別,導致步態識別的準確率較平地行走略低。
下樓步態的識別準確率高于上樓步態識別的準確率。從做功導致肌肉疲勞的角度分析,當人體上樓時需要克服重力做功,下樓時則沒有,較多的克服阻力做功導致下肢肌肉在相同時間內更容易疲勞,導致肌電信號數據幅值和頻率變化不穩定,從而影響步態識別準確率。
為提高識別速度和簡化神經網絡的復雜性,采用了主成分分析法對輸入集進行特征降維。主成分分析法存在將小部分原始有效信息過濾的可能,雖然這在一定程度上影響了步態識別準確率,但總體而言,下肢5種步態識別率都達到了95.75%以上,體現了表面肌電信號特征提取方法的有效性和下肢動作可分性。
采用識別準確率、分類時間和交叉熵損失作為評價指標,用卷積神經網絡方法對特征數據集進行模式識別得到的結果如圖5所示。由圖5可知,5種步態正確分類的樣本約占總樣本的96.27%,交叉熵損失約為8%。該實驗結果表明,本文以特征數據集代替原始數據集能夠更大程度上體現sEMG的特性,進而使卷積神經網絡的輸入數據更加規范,最終達到提高識別率的目標。

圖5 特征集識別準確率與交叉熵損失 Fig.5 Classification recognition rate and classifi-cation error rate of feature set
為比較本文CNN方法與其他分類方法的識別分類效果,采用python機器學習庫Scikit-learn,實現傳統分類器K近鄰(KNN),隨機森林(RF),支持向量機(SVM)算法[20-21]對5種步態的分類識別,分類結果如圖6所示。結果顯示SVM的識別準確率為92.16%,RF的識別準確率為84.96%,K近鄰(KNN)的識別準確率為88.7%,表明本文所構建的卷積神經網絡模型的識別準確率高于這些傳統分類器,具有識別效率高、分類效果好、泛化能力強和算法性能穩定等特點。也表明了在基于肌電信號進行人體動作模式識別研究中,針對肌電信號個體差異大、短時不平穩、非線性等不利因素,采用肌電信號特征集作為輸入的卷積神經網絡方法可以彌補傳統分類器特征提取的有限性,從而獲得較優識別率。

圖6 不同分類識別模型的步態識別準確率對比結果 Fig.6 Comparison of gait recognition accuracy among different classification recognition models
表2顯示了所構建的CNN網絡與其他3種方法所需訓練時間。由表2可知,CNN網絡訓練時間平均為0.11 s,SVM,RF,KNN分別為1.13,3.47和1.69 s,表明CNN網絡訓練時間明顯少于SVM,RF,KNN等傳統分類識別方法。結合前述分類準確率的結果,可知本文所構建的卷積神經網絡在識別準確率和訓練時間上明顯優于其他傳統分類器,下肢步態的識別效果更加理想。

表2 各類分類識別模型的訓練時間
為充分說明本文方法的有效性,將未經特征提取且PCA降維的原始肌電信號作為卷積神經網絡的輸入,該情形下的步態識別準確率及訓練時間與本文方法的對比結果如圖7和表3所示,其中,CNN*表示原始肌電信號作為輸入的卷積神經網絡,CNN表示本文提出的16維特征集作為輸入的卷積神經網絡。觀察可知,CNN*方法的步態識別準確率為80.13%,識別時間為1.97 s;CNN方法的步態識別準確率為96.27%,識別時間為0.11 s。結果表明,提取原始信號特征的預處理技術能夠大幅度提升算法的識別準確率,并且降低算法訓練時間,證明了預提取sEMG信號的特征且構建以特征集為輸入的卷積神經網絡的方法是有效的。

圖7 原始信號集和特征信號集輸入的步態識別準確率對比結果 Fig.7 Comparison of gait recognition accuracy between input of original and characteristic signal sets

表3 原始信號集和特征信號集輸入的訓練 時間結果
針對目前下肢動作模式識別技術中的數據量少、識別率低的問題,提出了一種新的下肢動作模式識別方法,構建了以肌電信號特征集作為輸入的卷積神經網絡模型。以無負重平地行走,無負重上/下樓及負重上/下樓5種步態為識別對象,開展了步態識別實驗,并與其他幾種傳統分類方法的識別準確率和工作特征進行了比較。實驗結果表明,基于本文方法的步態識別準確率大于95%,平均訓練時間用時最少,
因此本文所構建的卷積神經網絡在識別準確率和訓練時間上明顯優于其他傳統分類器,下肢步態的識別效果較為理想。通過對比2種不同輸入數據集的卷積神經網絡模型的識別效果可知,本文提出的肌電信號特征預處理技術能夠大幅度提升算法的識別準確率、降低算法訓練時間。綜上所述,該方法可為康復醫療機器人、助力機器人等設備改善下肢運動功能提供理論參考。
本文采用傳統隨機梯度下降算法訓練卷積神經網絡,雖然實現了較高的識別準確率,但訓練耗時還需要進一步降低。未來將考慮改進網絡的學習算法,在保證識別準確率的同時,提升網絡的訓練速度及穩定性。