摘" 要: 人體在運動過程中會產(chǎn)生微弱的生物電信號,其中蘊含著大量的控制信息。為了使用生物電信號中的信息控制機械臂動作,提出一種基于DTW算法的sEMG手勢識別控制系統(tǒng),利用該系統(tǒng)對采集的原始信號進行濾波和放大。為了確定有效的sEMG,采用移動平均法對處理信號進行劃分。使用平均絕對值從數(shù)據(jù)片段中提取有效段數(shù)據(jù),應(yīng)用DTW算法將3路表面肌電信號融合,計算樣本與模型之間的相似度,實現(xiàn)手勢識別;再將識別后的信號通過無線模塊發(fā)送到控制指令,以控制機械臂的動作;最后,采用提出的算法并結(jié)合6種類型的手勢分類模型創(chuàng)建最佳特征模型。實驗測試結(jié)果表明,使用動態(tài)時間規(guī)整(DTW)算法進行手勢識別的平均準確率為93.752%,6種手勢的平均模型匹配率達到92%,實現(xiàn)了肌電信號對機械臂的精確控制。由此證明所提方法的手勢識別比傳統(tǒng)的閾值控制開關(guān)更準確。
關(guān)鍵詞: 手勢識別; 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" 引" 言
肌電信號是肌肉活動狀態(tài)中產(chǎn)生的動作電位序列,不同序列對應(yīng)不同的肌肉收縮模式,不同肌肉收縮模式對應(yīng)不同的sEMG信號特征,通過對肌電信號特征差異性研究,可以將肌電信號應(yīng)用于人工智能控制等領(lǐng)域[1?3]。本文提出了一種基于DTW算法的sEMG手勢識別控制系統(tǒng),系統(tǒng)通過肌電傳感器采集原始肌電信號,對原始肌電信號進行濾波和放大;為了確定有效的sEMG,采用移動平均法對信號進行處理并劃分信號段。然后使用平均絕對值(MAV)從數(shù)據(jù)片段中提取有效段數(shù)據(jù)。應(yīng)用DTW算法將3路表面肌電信號融合,計算出樣本與模型之間的相似度,實現(xiàn)手勢識別,識別后的信號通過無線模塊發(fā)送控制指令來控制機械臂進行動作。通過測試證明該手勢識別比傳統(tǒng)的閾值控制開關(guān)更準確,控制動作成功率在90%以上。
1" 系統(tǒng)的硬件模型
基于DTW算法的sEMG手勢識別控制系統(tǒng)可分為兩部分:一部分是以Arduino系列為微處理器的sEMG信號處理和手勢識別系統(tǒng);另一部分是以Cortex?M3系列為微處理器的機械手臂執(zhí)行系統(tǒng)。系統(tǒng)首先對肌電信號進行預處理、數(shù)據(jù)分割、特征提取和模板匹配識別,識別的手勢信息通過無線模塊發(fā)送給機械臂,機械臂執(zhí)行相應(yīng)動作。整個系統(tǒng)的框圖如圖1所示。
2" 實驗步驟設(shè)計及數(shù)據(jù)采集處理
2.1" 數(shù)據(jù)預處理
針對表面肌電信號的原始信號復雜性,對采集到的數(shù)據(jù)進行去噪處理,利用4階的巴特沃斯高通濾波器(f=10 Hz)去除運動偽跡和電纜引起的電噪聲,再利用帶通濾波(f=500 Hz)去除高頻噪聲[4]。通過陷波處理可以有效地消除電磁場引起的50 Hz工頻噪聲。系統(tǒng)設(shè)計了調(diào)零穩(wěn)壓電路確保系統(tǒng)的輸入和輸出能夠達到平衡,有效地減少系統(tǒng)的零點偏差。
2.2" 信號數(shù)據(jù)分割
為了滿足系統(tǒng)的實時需求,設(shè)計使用閾值比較法和移動平均法相結(jié)合的方法提取出有效數(shù)據(jù)的起始和終止時刻,移動平均法通過使用固定的滑動窗口,以獲取當前區(qū)域的平均能量,從而獲取當前區(qū)域的狀態(tài)。通過肌電信號把手勢動作分割出來,實現(xiàn)手勢識別的有效性。移動平均法示意圖如圖2所示。
每個人肌肉纖維的特性和肌肉信號的能量變化幅度不同,影響系統(tǒng)判斷動作的有效性。通過能量法可以得到不同的肌電信號中的有效動作段,可以提高診斷的準確性。圖3是握拳動作3個連續(xù)動作的能量圖,第一列顯示了每個動作的滑動平均值,第二列顯示了每個動作的滑動平均探測能量。圖中的虛線代表一個特定的閾值(T=0.76),由于人體肌肉纖維組織的差異性,不同人之間的閾值不同,所以每個人需要根據(jù)自身產(chǎn)生的表面肌電信號的動態(tài)范圍和噪聲水平,計算信號的移動平均值和標準差,然后根據(jù)標準差和一個可調(diào)節(jié)的系數(shù)來調(diào)整合適的閾值。如果一個動作的連續(xù)度超過了這個閾值,判斷其是一個有效的動作。經(jīng)過與閾值信號T的比較分析可得到有效的動作點,可以將其從整個時間序列信號中準確提取[5?8]。
2.3" 數(shù)據(jù)特征提取
由于分割后的肌電信號比較微弱,系統(tǒng)采用時域法對5種動作肌電信號進行特征提取。該方法不需要系統(tǒng)進行其他數(shù)據(jù)轉(zhuǎn)換操作及數(shù)據(jù)加工,方便系統(tǒng)計算,系統(tǒng)的負載工作量也比較小。該方法的基本思想是通過改變窗口信號的長度和寬度,獲得一個更加精確的平均能量[9]。式(1)~式(5)的運算可以提取到肌電信號對應(yīng)的時域特征值。
平均絕對值(MAV)反映了信號曲線函數(shù)偏離的程度,公式如下:
[MAV=1Ni=1Nxi] (1)
均方根(RMS)反映了肌肉活動產(chǎn)生的肌電信號能量的強弱,公式為:
[RMS=1Ni=1Nx2i] (2)
積分肌電值(IEMG)反映了肌肉運動時的活動強度,公式為:
[IEMG=i=1Nxi] (3)
標準偏差(STD)反映了肌電信號數(shù)據(jù)間的離散程度,公式為:
[STD=1Ni=1N(xi-x)2] (4)
Willison振幅(WA)反映了肌肉運動時的收縮能力,公式為:
[WA=i=1N-1fxi-xi-1] (5)
2.4" DTW算法實現(xiàn)
實驗采集的信號序列是離散的時間序列,人體的每一組動作執(zhí)行肌肉動作信號序列、肌肉運動的力度大小及頻率、肌肉動作時間節(jié)奏相差較小,算法設(shè)計可以控制數(shù)據(jù)穩(wěn)定在同一運動時間頻率范圍。使用動態(tài)時間規(guī)整(DTW)算法來實現(xiàn)直接對人體這些離散肌電信號序列進行快速的識別,可以避免因特征序列長短強弱不統(tǒng)一在某一階段引起無法正確有效地識別信號序列的問題。此方法可以大幅度提高肌電信號識別檢測的整體準確度。文中使用DTW算法來實現(xiàn)對特征序列的自動識別,生成準確的信號值序列[10?14]。設(shè)參考模板R中動作總幀數(shù)為M,即[Ri={r1,r2,…,rm,…,rM},i=1,2,…,8],rm表示第m幀的動作特征矢量,每個分量是一個3維的向量;設(shè)測試模板為T,[Tj={t1,t2,…,tn,…,tN},j=1,2,…,8],其是一個N維向量。其中,M和N的長度可以不同,但它們的維度值應(yīng)當保持一致。對于每一維向量,參考模板和測試模板之間的幀匹配距離用公式(6)計算得出。
[ditn,rm=tn-rm, i=1,2,…,8]" " "(6)
DTW算法示意圖如圖4所示。在一個二維的直角坐標系中,橫軸數(shù)為N位,即表示每一個被測試的樣本,縱軸數(shù)為M位,則表示其為一參考的測試樣本,而圖中的整數(shù)坐標點即表示每一個被參考的測試樣本和上一個參考測試的樣本坐標間關(guān)系的另一個交匯點。DTW算法就是尋找在每完成一條動作,通過坐標網(wǎng)格點之前的最后一條的最短路徑。由于在每個動作的變化軌跡之間的動作先后順序之間并不可能會隨時發(fā)生任何變化,因此路徑的選擇一定是從左下角開始到右上角結(jié)束。
路徑所通過的格點依次為(t1,r1),(t2,r2),…,(tN,rM) 。為了確保每一個點都不會出現(xiàn)太大的偏差,把斜率的大小設(shè)定為0.5~2,并且確保每一個點都不會超出設(shè)定的閾值,以便最終實現(xiàn)第一個(n,m)的目標,則前一個點只可能為(n-1,m)或(n-1,m-1)或(n-1,m-2)。通過計算Di(tN,rM)可以確定出各維度的特征向量之間的最短間隔,具體表現(xiàn)在公式(7)中。根據(jù)公式(7)和公式(8),表示出各維度的第3維度的特征向量之間的最短間隔DTW。
通過DTW算法可以將肌電信號中的兩個活動段進行定位,并將它們的兩個有效運動段進行匹配,從而得到更接近實際情況的結(jié)果。此外,由于干電極傳感器臂上有一個3維的輸出信息,可以利用DTW算法自動完成匹配,從而有效地減少由于測量角度不準等原因?qū)е碌木日`差。
3" 設(shè)計結(jié)果分析
3.1" 模板制作與匹配
創(chuàng)建手勢模板的目的是提高對手勢動作的有效識別率,克服視覺偏差、位置的不同、個體差異產(chǎn)生的影響。模板在制作模型的整個過程考慮了各種組織差異,為了構(gòu)建一個有效的模型,需要先從訓練階段的訓練樣本中提取數(shù)據(jù),然后估計它們的平均長度。識別出信號序列的有效部分,并選擇長度相似的樣本進行平均訓練,以確定最佳的樣本長度。對于每個訓練動作,選擇8個長度與其平均動作長度相差最小的樣本,然后使用這些樣本來匹配其他動作,以確保能夠找到最大、最小或最低的運動樣本。通過DTW算法可以從7個動作樣本中篩選出與之最匹配的時間序列點,并將其取平均,從而獲得每個練習動作的初始模板。該方法可以更好地參考和比較不同的動作,從而更有效地提高訓練效果。在實驗測試中僅使用了一個模板。表1所示為模板的匹配距離。
最終的識別結(jié)果用混淆矩陣表示,如表2所示。
從表2的實驗數(shù)據(jù)結(jié)果分析可得,手勢識別平均準確率為93.752%。在這6個動作中,握拳和展拳動作的特征最為明顯,握拳手勢和展拳手勢兩個動作的手勢準確率為100%,OK手勢的手勢準確率較低為84.38%。
3.2" 特征值提取結(jié)果分析
圖5a)是點贊手勢動作時獲取的一組較原始的肌電數(shù)據(jù),圖5b)是通過對圖例中的數(shù)據(jù)圖進行特征提取運算處理后而獲得的這一組原始數(shù)據(jù)圖。
圖中:橫坐標軸上為移動窗口后所對應(yīng)的序列號;圖上的散點表示特征提取運算結(jié)束后序列號所對應(yīng)的特征值。
從圖中可以清楚地看出,特征值的變化趨勢和實際變化的幅度都有明顯的差異。因此,在提取或處理特征信號數(shù)據(jù)時,應(yīng)當考慮到這些變化的實際情況,以便更好地分析出原始信號數(shù)據(jù)的幅度。
3.3" 實驗硬件控制效果
機械手臂使用3D打印進行實現(xiàn),動作執(zhí)行依靠無線傳輸數(shù)據(jù)指令來控制機械臂內(nèi)部舵機進行動作。整個測試平臺如圖6所示。
按照之前的采集數(shù)據(jù)操作過程進行模型匹配。測試動作的模板順序依次為握拳、展拳、手腕左旋、手腕右旋、OK手勢、點贊手勢,6種手勢所對應(yīng)的機械手臂動作如圖7所示。
實驗中,通過手部的動作和機械手的動作進行對比,來判斷識別是否準確,如果機械手的動作和對應(yīng)手部動作相同,認為識別成功。實驗共進行600次,每個動作識別100次。手部的動作和機械手的動作對比結(jié)果如表3所示。
由表3可以得出,握拳手勢和展拳手勢識別控制的準確率為96%,手勢控制平均準確率為92%,握拳手勢和展拳手勢準確率高是選取的測試肌肉區(qū)域?qū)@兩種手勢反應(yīng)比較強烈,其他的手勢的反應(yīng)較小。
4" 結(jié)" 論
本文設(shè)計了一種基于DTW算法的sEMG手勢識別控制系統(tǒng)。對于肌電信號的采集、處理、識別和機械手臂的控制,使用動態(tài)時間規(guī)整算法進行手勢檢測,平均準確率為93.752%,6種手勢的平均準確率達92%,實現(xiàn)了肌電信號對機械手臂的精確控制。結(jié)果表明,所提系統(tǒng)具有一定的實際應(yīng)用價值。
參考文獻
[1] 韓團軍,張晶,黃朝軍,等.基于sEMG信號和BPNN算法的機械臂控制系統(tǒng)設(shè)計[J].機床與液壓,2023,51(19):106?111.
[2] 王金瑋,曹樂,闞秀,等.基于表面肌電信號的LDA?BPNN雙臂手勢識別算法[J].傳感器與微系統(tǒng),2023,42(6):158?160.
[3] 馮凱,董秀成,劉棟博.基于多域融合與特征選擇的手勢識別研究[J].傳感器與微系統(tǒng),2023,42(5):37?40.
[4] 谷中歷,張霞,徐梓桓,等.一種基于sEMG信號多重分形的肌肉疲勞特征分析方法[J].河北科技大學學報,2023,44(2):103?111.
[5] 侯一帆,文斌,徐進,等.基于CC3200和ADS1299表面肌電無線采集系統(tǒng)[J].中國醫(yī)療器械雜志,2023,47(2):150?153.
[6] 李宏偉,張淑亮.DTW算法在地震時間序列信息挖掘中的應(yīng)用[J].山西地震,2023(1):37?40.
[7] 常銘,許孟華,楊建宏,等.面向動物機器人的新型可充電表面肌電信號采集系統(tǒng)設(shè)計與應(yīng)用[J].現(xiàn)代電子技術(shù),2022,45(24):136?140.
[8] 劉強,李玉榕,杜國川,等.基于sEMG信號的關(guān)節(jié)力矩NARX預測模型[J].儀器儀表學報,2022,43(11):123?131.
[9] 錢美超,黃琰,章芳,等.基于DTW算法的臺風運動軌跡相似性研究[J].電子技術(shù)與軟件工程,2022(19):230?233.
[10] 李林豐,薛波.基于改進DTW算法的窨井蓋盜損檢測方法[J].電聲技術(shù),2022,46(9):111?116.
[11] 劉光達,許藍予,肖若蘭,等.基于FGNN算法的sEMG肌肉疲勞分類方法[J].科學技術(shù)與工程,2022,22(19):8370?8377.
[12] 謝小雨,劉喆頡.基于DTW算法的肌電信號手勢識別方法[J].計算機工程與應(yīng)用,2018,54(5):132?137.
[13] 張應(yīng)祥,位少聰,張茜茜,等.基于遷移學習的表面肌電信號手勢識別[J].南京理工大學學報,2023,47(3):304?310.
[14] 杜妍辰,孫潔,汪曉銘,等.基于肌電信號的人體下肢運動意圖映射研究進展[J].上海理工大學學報,2023,45(2):128?136.