












摘" 要: 人體在運動過程中會產生微弱的生物電信號,其中蘊含著大量的控制信息。為了使用生物電信號中的信息控制機械臂動作,提出一種基于DTW算法的sEMG手勢識別控制系統,利用該系統對采集的原始信號進行濾波和放大。為了確定有效的sEMG,采用移動平均法對處理信號進行劃分。使用平均絕對值從數據片段中提取有效段數據,應用DTW算法將3路表面肌電信號融合,計算樣本與模型之間的相似度,實現手勢識別;再將識別后的信號通過無線模塊發送到控制指令,以控制機械臂的動作;最后,采用提出的算法并結合6種類型的手勢分類模型創建最佳特征模型。實驗測試結果表明,使用動態時間規整(DTW)算法進行手勢識別的平均準確率為93.752%,6種手勢的平均模型匹配率達到92%,實現了肌電信號對機械臂的精確控制。由此證明所提方法的手勢識別比傳統的閾值控制開關更準確。
關鍵詞: 手勢識別; DTW算法; 表面肌電圖(sEMG); 特征提取; 機械臂; 手勢檢測
中圖分類號: TN911.71?34; TP242" " " " " " " 文獻標識碼: A" " " " " " " " " " " "文章編號: 1004?373X(2025)02?0131?06
Design of sEMG gesture recognition control system based on DTW algorithm
HAN Tuanjun, LEI Dongyuan, HUANG Chaojun, LU Chao
(School of Physics amp; Telecommunications Engineering, Shanxi University of Technology, Hanzhong 723000, China)
Abstract: The human body can produce weak bioelectric signals during movement, which contains a large amount of control information. In order to use the information from bioelectric signals to control the movement of robotic arms, a sEMG (surface electromyography) gesture recognition control system based on DTW (dynamic time warping) algorithm is proposed, which can be used to filter and amplify the collected original signal. In order to determine the effective sEMG, the moving average method is used to partition the processed signal. The MAV (mean absolute value) is used to extract the valid segment data from data fragments, the DTW algorithm is used to fuse three sEMG, and the similarity between the sample and the model is calculated, so as to realize the gesture recognition. The recognized signal is used to send the control command by means of the wireless module to control the action of the robotic arm. The proposed algorithm is used to create the optimal feature model by combining with 6 gesture classification models. The experimental results show that the average accuracy of the gesture recognition using the DTW algorithm is 93.752%, and the average model matching rate of 6 gestures can reach 92%, achieving the precise control of the robotic arm by sEMG. It proves that the gesture recognition of the proposed method is more accurate than traditional threshold controlled switches.
Keywords: gesture recognition; DTW algorithm; surface electromyography; feature extraction; mechanical arm; gesture detection
0" 引" 言
肌電信號是肌肉活動狀態中產生的動作電位序列,不同序列對應不同的肌肉收縮模式,不同肌肉收縮模式對應不同的sEMG信號特征,通過對肌電信號特征差異性研究,可以將肌電信號應用于人工智能控制等領域[1?3]。本文提出了一種基于DTW算法的sEMG手勢識別控制系統,系統通過肌電傳感器采集原始肌電信號,對原始肌電信號進行濾波和放大;為了確定有效的sEMG,采用移動平均法對信號進行處理并劃分信號段。然后使用平均絕對值(MAV)從數據片段中提取有效段數據。應用DTW算法將3路表面肌電信號融合,計算出樣本與模型之間的相似度,實現手勢識別,識別后的信號通過無線模塊發送控制指令來控制機械臂進行動作。通過測試證明該手勢識別比傳統的閾值控制開關更準確,控制動作成功率在90%以上。
1" 系統的硬件模型
基于DTW算法的sEMG手勢識別控制系統可分為兩部分:一部分是以Arduino系列為微處理器的sEMG信號處理和手勢識別系統;另一部分是以Cortex?M3系列為微處理器的機械手臂執行系統。系統首先對肌電信號進行預處理、數據分割、特征提取和模板匹配識別,識別的手勢信息通過無線模塊發送給機械臂,機械臂執行相應動作。整個系統的框圖如圖1所示。
2" 實驗步驟設計及數據采集處理
2.1" 數據預處理
針對表面肌電信號的原始信號復雜性,對采集到的數據進行去噪處理,利用4階的巴特沃斯高通濾波器(f=10 Hz)去除運動偽跡和電纜引起的電噪聲,再利用帶通濾波(f=500 Hz)去除高頻噪聲[4]。通過陷波處理可以有效地消除電磁場引起的50 Hz工頻噪聲。系統設計了調零穩壓電路確保系統的輸入和輸出能夠達到平衡,有效地減少系統的零點偏差。
2.2" 信號數據分割
為了滿足系統的實時需求,設計使用閾值比較法和移動平均法相結合的方法提取出有效數據的起始和終止時刻,移動平均法通過使用固定的滑動窗口,以獲取當前區域的平均能量,從而獲取當前區域的狀態。通過肌電信號把手勢動作分割出來,實現手勢識別的有效性。移動平均法示意圖如圖2所示。
每個人肌肉纖維的特性和肌肉信號的能量變化幅度不同,影響系統判斷動作的有效性。通過能量法可以得到不同的肌電信號中的有效動作段,可以提高診斷的準確性。圖3是握拳動作3個連續動作的能量圖,第一列顯示了每個動作的滑動平均值,第二列顯示了每個動作的滑動平均探測能量。圖中的虛線代表一個特定的閾值(T=0.76),由于人體肌肉纖維組織的差異性,不同人之間的閾值不同,所以每個人需要根據自身產生的表面肌電信號的動態范圍和噪聲水平,計算信號的移動平均值和標準差,然后根據標準差和一個可調節的系數來調整合適的閾值。如果一個動作的連續度超過了這個閾值,判斷其是一個有效的動作。經過與閾值信號T的比較分析可得到有效的動作點,可以將其從整個時間序列信號中準確提取[5?8]。
2.3" 數據特征提取
由于分割后的肌電信號比較微弱,系統采用時域法對5種動作肌電信號進行特征提取。該方法不需要系統進行其他數據轉換操作及數據加工,方便系統計算,系統的負載工作量也比較小。該方法的基本思想是通過改變窗口信號的長度和寬度,獲得一個更加精確的平均能量[9]。式(1)~式(5)的運算可以提取到肌電信號對應的時域特征值。
平均絕對值(MAV)反映了信號曲線函數偏離的程度,公式如下:
[MAV=1Ni=1Nxi] (1)
均方根(RMS)反映了肌肉活動產生的肌電信號能量的強弱,公式為:
[RMS=1Ni=1Nx2i] (2)
積分肌電值(IEMG)反映了肌肉運動時的活動強度,公式為:
[IEMG=i=1Nxi] (3)
標準偏差(STD)反映了肌電信號數據間的離散程度,公式為:
[STD=1Ni=1N(xi-x)2] (4)
Willison振幅(WA)反映了肌肉運動時的收縮能力,公式為:
[WA=i=1N-1fxi-xi-1] (5)
2.4" DTW算法實現
實驗采集的信號序列是離散的時間序列,人體的每一組動作執行肌肉動作信號序列、肌肉運動的力度大小及頻率、肌肉動作時間節奏相差較小,算法設計可以控制數據穩定在同一運動時間頻率范圍。使用動態時間規整(DTW)算法來實現直接對人體這些離散肌電信號序列進行快速的識別,可以避免因特征序列長短強弱不統一在某一階段引起無法正確有效地識別信號序列的問題。此方法可以大幅度提高肌電信號識別檢測的整體準確度。文中使用DTW算法來實現對特征序列的自動識別,生成準確的信號值序列[10?14]。設參考模板R中動作總幀數為M,即[Ri={r1,r2,…,rm,…,rM},i=1,2,…,8],rm表示第m幀的動作特征矢量,每個分量是一個3維的向量;設測試模板為T,[Tj={t1,t2,…,tn,…,tN},j=1,2,…,8],其是一個N維向量。其中,M和N的長度可以不同,但它們的維度值應當保持一致。對于每一維向量,參考模板和測試模板之間的幀匹配距離用公式(6)計算得出。
[ditn,rm=tn-rm, i=1,2,…,8]" " "(6)
DTW算法示意圖如圖4所示。在一個二維的直角坐標系中,橫軸數為N位,即表示每一個被測試的樣本,縱軸數為M位,則表示其為一參考的測試樣本,而圖中的整數坐標點即表示每一個被參考的測試樣本和上一個參考測試的樣本坐標間關系的另一個交匯點。DTW算法就是尋找在每完成一條動作,通過坐標網格點之前的最后一條的最短路徑。由于在每個動作的變化軌跡之間的動作先后順序之間并不可能會隨時發生任何變化,因此路徑的選擇一定是從左下角開始到右上角結束。
路徑所通過的格點依次為(t1,r1),(t2,r2),…,(tN,rM) 。為了確保每一個點都不會出現太大的偏差,把斜率的大小設定為0.5~2,并且確保每一個點都不會超出設定的閾值,以便最終實現第一個(n,m)的目標,則前一個點只可能為(n-1,m)或(n-1,m-1)或(n-1,m-2)。通過計算Di(tN,rM)可以確定出各維度的特征向量之間的最短間隔,具體表現在公式(7)中。根據公式(7)和公式(8),表示出各維度的第3維度的特征向量之間的最短間隔DTW。
通過DTW算法可以將肌電信號中的兩個活動段進行定位,并將它們的兩個有效運動段進行匹配,從而得到更接近實際情況的結果。此外,由于干電極傳感器臂上有一個3維的輸出信息,可以利用DTW算法自動完成匹配,從而有效地減少由于測量角度不準等原因導致的精度誤差。
3" 設計結果分析
3.1" 模板制作與匹配
創建手勢模板的目的是提高對手勢動作的有效識別率,克服視覺偏差、位置的不同、個體差異產生的影響。模板在制作模型的整個過程考慮了各種組織差異,為了構建一個有效的模型,需要先從訓練階段的訓練樣本中提取數據,然后估計它們的平均長度。識別出信號序列的有效部分,并選擇長度相似的樣本進行平均訓練,以確定最佳的樣本長度。對于每個訓練動作,選擇8個長度與其平均動作長度相差最小的樣本,然后使用這些樣本來匹配其他動作,以確保能夠找到最大、最小或最低的運動樣本。通過DTW算法可以從7個動作樣本中篩選出與之最匹配的時間序列點,并將其取平均,從而獲得每個練習動作的初始模板。該方法可以更好地參考和比較不同的動作,從而更有效地提高訓練效果。在實驗測試中僅使用了一個模板。表1所示為模板的匹配距離。
最終的識別結果用混淆矩陣表示,如表2所示。
從表2的實驗數據結果分析可得,手勢識別平均準確率為93.752%。在這6個動作中,握拳和展拳動作的特征最為明顯,握拳手勢和展拳手勢兩個動作的手勢準確率為100%,OK手勢的手勢準確率較低為84.38%。
3.2" 特征值提取結果分析
圖5a)是點贊手勢動作時獲取的一組較原始的肌電數據,圖5b)是通過對圖例中的數據圖進行特征提取運算處理后而獲得的這一組原始數據圖。
圖中:橫坐標軸上為移動窗口后所對應的序列號;圖上的散點表示特征提取運算結束后序列號所對應的特征值。
從圖中可以清楚地看出,特征值的變化趨勢和實際變化的幅度都有明顯的差異。因此,在提取或處理特征信號數據時,應當考慮到這些變化的實際情況,以便更好地分析出原始信號數據的幅度。
3.3" 實驗硬件控制效果
機械手臂使用3D打印進行實現,動作執行依靠無線傳輸數據指令來控制機械臂內部舵機進行動作。整個測試平臺如圖6所示。
按照之前的采集數據操作過程進行模型匹配。測試動作的模板順序依次為握拳、展拳、手腕左旋、手腕右旋、OK手勢、點贊手勢,6種手勢所對應的機械手臂動作如圖7所示。
實驗中,通過手部的動作和機械手的動作進行對比,來判斷識別是否準確,如果機械手的動作和對應手部動作相同,認為識別成功。實驗共進行600次,每個動作識別100次。手部的動作和機械手的動作對比結果如表3所示。
由表3可以得出,握拳手勢和展拳手勢識別控制的準確率為96%,手勢控制平均準確率為92%,握拳手勢和展拳手勢準確率高是選取的測試肌肉區域對這兩種手勢反應比較強烈,其他的手勢的反應較小。
4" 結" 論
本文設計了一種基于DTW算法的sEMG手勢識別控制系統。對于肌電信號的采集、處理、識別和機械手臂的控制,使用動態時間規整算法進行手勢檢測,平均準確率為93.752%,6種手勢的平均準確率達92%,實現了肌電信號對機械手臂的精確控制。結果表明,所提系統具有一定的實際應用價值。
參考文獻
[1] 韓團軍,張晶,黃朝軍,等.基于sEMG信號和BPNN算法的機械臂控制系統設計[J].機床與液壓,2023,51(19):106?111.
[2] 王金瑋,曹樂,闞秀,等.基于表面肌電信號的LDA?BPNN雙臂手勢識別算法[J].傳感器與微系統,2023,42(6):158?160.
[3] 馮凱,董秀成,劉棟博.基于多域融合與特征選擇的手勢識別研究[J].傳感器與微系統,2023,42(5):37?40.
[4] 谷中歷,張霞,徐梓桓,等.一種基于sEMG信號多重分形的肌肉疲勞特征分析方法[J].河北科技大學學報,2023,44(2):103?111.
[5] 侯一帆,文斌,徐進,等.基于CC3200和ADS1299表面肌電無線采集系統[J].中國醫療器械雜志,2023,47(2):150?153.
[6] 李宏偉,張淑亮.DTW算法在地震時間序列信息挖掘中的應用[J].山西地震,2023(1):37?40.
[7] 常銘,許孟華,楊建宏,等.面向動物機器人的新型可充電表面肌電信號采集系統設計與應用[J].現代電子技術,2022,45(24):136?140.
[8] 劉強,李玉榕,杜國川,等.基于sEMG信號的關節力矩NARX預測模型[J].儀器儀表學報,2022,43(11):123?131.
[9] 錢美超,黃琰,章芳,等.基于DTW算法的臺風運動軌跡相似性研究[J].電子技術與軟件工程,2022(19):230?233.
[10] 李林豐,薛波.基于改進DTW算法的窨井蓋盜損檢測方法[J].電聲技術,2022,46(9):111?116.
[11] 劉光達,許藍予,肖若蘭,等.基于FGNN算法的sEMG肌肉疲勞分類方法[J].科學技術與工程,2022,22(19):8370?8377.
[12] 謝小雨,劉喆頡.基于DTW算法的肌電信號手勢識別方法[J].計算機工程與應用,2018,54(5):132?137.
[13] 張應祥,位少聰,張茜茜,等.基于遷移學習的表面肌電信號手勢識別[J].南京理工大學學報,2023,47(3):304?310.
[14] 杜妍辰,孫潔,汪曉銘,等.基于肌電信號的人體下肢運動意圖映射研究進展[J].上海理工大學學報,2023,45(2):128?136.