程紹琿,張元良,孫 源
(大連理工大學機械工程學院,遼寧大連116023)
健身有助于預防多種疾病,近年來越來越多的人意識到健身的重要性,健身行業發展迅速,已滲透到各個年齡階段的人群。然而不規范的健身動作會使健身效果不佳,嚴重時還會造成肌肉拉傷。近年來國內外學者針對健身輔助方法展開了很多研究。李卓茹[1]通過心率監控反映健美操運動員的訓練強度與疲勞程度,但只能從宏觀上判斷運動員的情況,并且信息量較少,不足以監督健身運動;吳海龍[2]通過加速度傳感器結合支持向量機(support vector machines,SVM)算法對游泳姿態進行檢測與分析,但加速度傳感器的頻率不穩定,需要重復采樣,使得信息量過多,處理時間過長,并且SVM算法在多元分類問題上表現不是很好;Depari等[3]通過陀螺儀慣性測量單元對身體姿態數據進行采集,以姿態信息作為健身監督信息,結合機器學習進行數據處理,可以對健身動作進行分類并計數,但姿態信息數據量較大,干擾數據較多,容易產生誤判,并且姿態信息無法直接反映肌肉狀態。以上研究中均通過身體某些信息間接反映肌肉狀態,這種間接的方式無法直接反映肌肉信息,可信度相對較低。
針對上述現狀,設計一套能有效規范健身動作的健身輔助系統具有重要意義。表面肌電信號是一種可以反映肌肉狀態的微弱信號,目前醫療領域對于肌電信號的研究較為成熟。本文設計一套基于表面肌電信號的健身輔助系統,對人體肌肉的肌電信息進行采集并進行特征值提取,通過SVM算法與誤差反向傳播(back propagation,BP)神經網絡分類模型處理特征值,可以實現以下2個功能:(1)規范功能:在健身教練指導下使用標準動作進行SVM模型訓練,并用訓練好的模型判定訓練是否標準,動作規范輸出1,不規范則輸出0,通過觀察輸出結果為1的比例來判斷動作規范程度;(2)動作分類與計數功能:健身時對同一肌肉通常要借助多種動作進行鍛煉,針對同一肌肉不同健身動作的肌電信號進行BP神經網絡分類模型訓練,通過訓練好的模型可以對健身動作進行分類并計數。
健身輔助系統包括硬件電路與PC端軟件(如圖1所示)。硬件電路負責表面肌電信號的采集與處理。通過無線串口模塊將數據上傳至PC端軟件,PC端軟件對數據進行處理并實時顯示。PC端軟件內含有機器學習程序,進行判定模型訓練及分類模型訓練。

圖1 健身輔助系統的硬件實物圖及PC端軟件界面
表面肌電信號是一種非平穩的微弱信號,具有強度弱、噪聲干擾強的特點[4]。其信號幅度范圍為0~5 mV,主要能量集中在20~1000 Hz[5]。由于環境中存在高頻干擾、低頻干擾、工頻干擾等干擾源,需要對信號進行放大與濾波處理。
圖2為表面肌電信號采集裝置結構框圖。采集裝置由外部12 V適配器電源進行供電,通過穩壓單元降壓。選用LM2575S芯片將12 V電壓降至5 V,選用LM2937芯片將5 V電壓降至3.3 V。電壓采樣芯片供電電壓精度要求較高,選用LT1761二次穩壓得到5 V電壓;選用ICL7660得到-6 V電壓,之后選用LT1964二次穩壓得到-5 V電壓。二次穩壓后得到的±5 V電源為濾波電路、放大電路、AD采集電路供電,3.3 V電源為STM32F103芯片與無線串口模塊供電。人體表面肌電信號通過電極片接入電路后經過前置放大電路、高通濾波電路、低通濾波電路、50 Hz陷波電路、二級放大電路后,通過AD采集電路實現模數信號轉換,等待主控芯片采樣[5]。前置放大電路選用AD8221芯片,濾波電路選用AD8625芯片,AD采集電路選用14位LTC1417芯片。采用STM32F103作為主控芯片,以200 Hz的采樣頻率獲取AD采集電路的表面肌電信號,嵌入式軟件對其進行濾波處理后通過無線串口模塊以115200 bit/s傳至PC端軟件。

圖2 表面肌電信號采集裝置結構框圖
常用濾波器有橢圓濾波器、巴特沃斯濾波器、切比雪夫濾波器。巴特沃斯濾波器通帶平坦,但衰減特性較差;橢圓濾波器與切比雪夫濾波器通帶會有紋波的起伏[6]。為保持表面肌電信號的完整性,本文選用十階巴特沃斯濾波器,通過增加階數來改善衰減特性。整個濾波電路(如圖3所示)由五階高通巴特沃斯濾波器和五階低通巴特沃斯濾波器串聯組成,兩部分均選用前奇后偶的連接方式,可以避免輸出信號中混有高頻泄漏信號[7]。其他部分電路均為常規電路。通過圖2(b)中所示的電路可以采集到放大倍數2000倍、通頻為20~1000 Hz、過濾掉50 Hz工頻干擾的表面肌電信號。

圖3 濾波電路圖
PC端軟件具有實時采集、波形顯示、特征提取、模型訓練、模型判定、無線傳輸等功能[8],其流程圖如圖4所示。接收到數據后,增加相鄰表面肌電信號周期的間距,便于后續特征值的提取,消除相鄰表面肌電信號互相影響的隱患。分割結束后提取特征值,將表面肌電信號數據與特征值以xlsx.文件格式存儲至本地并實時繪圖。軟件有訓練模式與調用模式2種:在訓練模式下,調用模型訓練程序通過特征值對模型進行訓練,輸出模型并評估訓練效果。在調用模式下,調用訓練好的分類器模型進行規范判定與動作識別,最終輸出判定結果。

圖4 PC端軟件流程圖
通過將電極片貼在皮膚表面可以采集表面肌電信號,特征值提取的方法主要有時域分析法、頻域分析法、時頻分析法,本文主要采用時域分析法對信號進行特征值提取[9]。
積分肌電值與平均絕對值(mean absolute value,MAV)可以反映肌肉的能量信息。積分肌電值為所有采樣點的絕對值總和,可反映單個采樣周期內肌肉的總能量信息。MAV將積分肌電值取平均值,可反映單個采樣周期內肌肉的平均能量信息。
特征值方差(variance,VAR)與特征值均方根值(root mean square,RMS)可提取出更多信息。特征值VAR為所有采樣點值的絕對值(由于表面肌電信號有正負,所以在此需要取絕對值,與方差定義不完全相同)與MAV的差值平方,求其平均值再開方,可反映采樣周期內肌肉能量的離散程度。特征值RMS是將所有采樣點值的平方求和,求其平均值,再開方,可反映肌肉的有效能量值。
通過上述4種特征值判定健身動作是否標準。常用分類器算法有SVM算法、BP神經網絡算法、AdaBoost算法等[8]。SVM算法在二元分類問題下表現效果較好,本研究選擇SVM算法通過測試集進行分類器模型訓練,使用訓練好的模型對健身動作是否標準進行判定。超平面方程公式如下:

式中,ω為權值向量;b為偏置向量;x為特征值向量[10]。引入符號函數sign,當函數值大于0時為1,小于0時為-1,分類器函數公式如下[10]:

通過改變ω和b向量,使距離超平面最近的點距離最大化。由于函數為N個線性約束條件下的凸函數求最值問題,并且是強對偶問題,可通過引入拉格朗日乘子λ來求解。通過推導可以解得

式中,xk是滿足KKT(Karush-Kahn-Tucker)不等式條件的值。上述公式為使用線性核函數的推導結果,若數據為非線性,可以選取高斯核函數(radial basis function,RBF)進行計算,且引入RBF中唯一的超參數γ公式為

分別比較線性核函數、不同γ值下的RBF的訓練結果,輸出最優模型。
BP神經網絡是一種按照誤差逆向傳播算法訓練的多層前饋神經網絡,故選用BP神經網絡算法訓練動作識別模型[11]。本研究選用四輸入四輸出的BP神經網絡算法對分類器模型進行訓練,以提取的4個特征值作為輸入,以健身類型進行輸出,選取隱藏層節點數為8~12,對不同節點進行BP神經網絡分類器模型訓練。
圖5為四輸入四輸出二隱藏層五隱藏層節點的BP神經網絡示意圖,圖中每條連接線均代表含有一個權重系數與截距系數,記為和,其中j代表層數,k代表連線前單元在該層的序號,l代表連線后單元在該層的序號,例如:h2對h6的權重系數記為。由圖可知該BP神經網絡共有45個權重系數與截距系數,通過調節所有ω與b對模型進行修正。

圖5 BP神經網絡示意圖
訓練時需先輸入權重系數矩陣、特征值向量x以及理想輸出向量y[12]。通過正向傳播,得到輸出向量yˉ,選取誤差函數判斷誤差,作為修正參數[12]。通過反復訓練修正ω與b得到理想模型,流程圖如圖6所示。

圖6 BP神經網絡訓練流程圖
選取臂力器正握與反握2種健身動作進行對比試驗,觀察4種特征值在對同一肌肉的不同訓練方法下的差異。2種健身動作如圖7(a)、(b)所示。電極片間隔需大于10 mm,否則會造成信號干擾。由于電極片間隔與表面肌電信號數值有一定程度的影響,本系統均選取12 mm的電極片間隔。電極片共3片,分別接到電路中的正電極、負電極與地。表面肌電信號為正負雙極性信號,正負電極所對應的電極片無特定順序,只需保證接地的電極片在中間即可。電極片粘貼位置如圖7(c)所示。電極片在身上的放置位置對表面肌電信號數值有較小的影響,只需保證在訓練與實驗時的電極片放置位置無較大差異即可消除影響。臂力器健身動作可以鍛煉上胸肌肉,但正握與反握對于肌肉的鍛煉效果不盡相同,故分別以2種方式進行胸部肌肉鍛煉,采集上胸表面肌電信號并進行特征值提取,如圖8、9所示。

圖7 實驗示范圖

圖8 臂力器正握特征值曲線圖

圖9 臂力器反握特征值曲線圖
通過對圖中臂力器正握與臂力器反握時特征值的曲線圖觀察可得:在臂力器正握實驗中,表面肌電信號的積分肌電值為170~250 V,MAV為1.1~1.6 V,VAR為1.0~1.8 V,RMS為2.6~3.6 V;在臂力器反握實驗中,表面肌電信號的積分肌電值為40~120 V,MAV為0.3~1.0 V,VAR為0.2~0.6 V,RMS為1.4~2.0 V。通過數據可以看出,臂力器正握與臂力器反握在4種特征值上均可以在不同程度上反映出臂力器正握比反握對上胸肌肉的鍛煉效果好。
判定模型可以判斷出健身動作是否標準,通過判定為標準的樣本個數可以反映出健身動作的標準程度。本章節對模型判斷正確率進行測試。
由于判斷動作標準與否的主觀因素較多,因此選用效果好的臂力器正握模擬標準健身動作,選用效果較差的臂力器反握模擬非標準健身動作。分別采集50組標準動作與50組非標準動作,分別對使用核函數為γ=1.0的RBF、γ=0.1的RBF和線性核的SVM模型進行訓練。從中選用10組標準動作與10組非標準動作對各個模型進行判定測試,若判定為標準動作則輸出1,反之輸出0,模型判定結果詳見表1。
觀察表1中數據可知,使用線性核SVM算法訓練生成的模型效果最好,判定成功率為95%;RBF訓練效果相對較差,在選用γ=1.0的RBF時,判斷成功率只有75%,但隨著γ的減小效果有所提升,在選用γ=0.1的RBF時,判斷成功率達到80%。通過不同模型判斷的情況可以推測訓練模型使用的特征值偏線性,使用線性核效果較好。由于不同肌肉的信息不盡相同,所以3種不同核函數的SVM算法均保留,通過比較測試結果選用輸出效果最為理想的SVM訓練模型。

表1 SVM模型判定結果
將健身動作進行分類并計數,對于健身人員的計劃制訂與完成有很好的輔助作用。
本研究選取訓練肱二頭肌的10 kg單臂啞鈴彎舉、5 kg單臂啞鈴彎舉、30 kg臂力器正握3個動作做分類實驗,分別標號為1、2、3。通過采集健身教練每個動作各20組的特征值作為樣本空間,進行BP神經網絡分類器模型訓練。選擇隱藏層層數為1,訓練次數為100次時,訓練結果與實際數據結果對比如圖10所示。圖10(a)為實際數據結果y,圖10(b)為經過BP神經網絡分類器模型訓練出的結果yˉ。當yˉ≥2.5時,判定為標號3動作;當1.5≤yˉ<2.5時,判定為標號2動作;當yˉ<1.5時,判定為標號1動作。
從圖10可看出有較多誤判點,并且在分類線附近的點也較多,分類效果較差,無法完全將3種動作區分開。通過增加隱藏層層數與增加訓練次數可以有效改善BP神經網絡模型。將隱藏層數提升為2層,訓練次數為1000次時,訓練結果與實際數據結果對比如圖11所示。

圖10 BP神經網絡模型訓練效果圖

圖11 改善后的BP神經網絡訓練效果圖
訓練準確率詳見表2,從表中數據可以得出,改善后的BP神經網絡模型能夠精確地識別出健身動作。

表2 改善前后BP神經網絡模型識別準確率結果單位:%
本文設計了一種基于表面肌電信號的健身輔助系統,提取表面肌電信號的積分肌電值、MAV、VAR與RMS 4種特征值,分別使用SVM算法與BP神經網絡算法進行模型訓練,通過模型進行健身動作標準判定與健身動作識別并計數。并提取健身教練的標準健身數據,對本系統進行了驗證。通過實驗驗證,表明系統可以很好地對健身動作是否標準做出判斷并且精確計數。本系統的設計對于有效的健身訓練有著非常重要的意義。由于健身動作的種類繁多,本系統僅挑選了常用的幾組動作驗證了原理的可行性,樣本量略有不足。后續將補充健身動作樣本庫,并嘗試建立統一量化標準。