?

基于深度學習與灰度圖的肌電機械手手勢識別

2023-12-29 06:48羅肖媛黃文靜曾學武段小剛鄭哲文王子怡
長沙航空職業技術學院學報 2023年4期
關鍵詞:電信號手勢殘差

羅肖媛,黃文靜,曾學武,段小剛,鄭哲文,王子怡

(1.中南林業科技大學材料科學與工程學院,湖南 長沙 410004;2.和天(湖南)國際工程管理有限公司,湖南 長沙 410006;3.中南智能湖南工業4.0創新中心,湖南 長沙 410000)

表面肌電信號(surface electromyography,sEМG)是一種能夠反映肌肉興奮程度的生物電信號,肌電信號的獲取可以分為針式電極采集[1]和表面電極采集[2],目前被廣泛應用于人機接口的研究。其中,基于sEМG 的手勢識別研究最為廣泛,其可以被應用于智能假肢控制、康復訓練、機器人遙操作等[3]?;趕EМG 的手勢識別問題隸屬于模式識別中的多分類問題,大致有兩種方法,即基于傳統機器學習方法和基于深度學習方法?;趥鹘y機器學習方法的表面肌電信號的分類器模型主要有K 近鄰[4]、線性判別分析[5]、支持向量機[6]、樸素貝葉斯和隱馬爾科夫[7]等。深度學習方法可以弱化特征提取過程,且可以替換分類器步驟,近年來已經成功應用于很多領域,如圖像分類、語音識別[8]和視頻分類[9]等,近幾年也逐漸用于基于sEМG 的手勢識別。目前,深度學習方法主要是將原始sEМG 分割后直接輸入深度學習模型中,并自動從高維的原始sEМG 信號中提取有用信息,而將肌電信號處理后轉化為灰度圖,輸入深度模型進行手勢識別的研究還處于初級階段。

本文采用深度學習模型替代傳統分類器,利用深度學習強大的表征能力對肌電信號進行再加工來分類。具體而言,首先將肌電信號進行窗口滑動并轉化為灰度圖像,再將灰度圖片集輸入深度模型進行手勢識別[10]。該方法將肌電手勢識別完全轉化為圖像識別問題,所使用的深度模型網絡結構簡單,方便結合圖像識別的各種技術,計算量少且結果優異。論文提出的識別方法為人體sEМG 信號分析提供了新思路,并可能為基于人體生物學的人機交互研究帶來新的啟發。

1 基于灰度圖的肌電手勢識別方法

肌電信號被廣泛應用于醫學、運動科學、假肢控制、人機交互等領域。在假肢控制領域,肌電信號一般用于感知殘肢的運動意圖,從而實現假肢的智能控制。在人機交互領域,肌電信號可以用于實現手勢識別,從而實現人機自然交互?;诩‰娦盘柕氖謩葑R別技術具有實時性強、無需接觸、精度高等特點,大致過程如圖1 所示。

圖1 表面肌電信號的處理與應用

本文利用深度學習的強大表征能力對灰度圖像加以分類。在數據預處理階段,采用軟件濾波技術對表面肌電信號數據進行處理,去除其中的噪聲和干擾,同時保留信號中的有用信息,從而改善信號的品質,以提高信號的質量和可讀性。其次,對分割后的信號進行滑動窗口選擇,以提高手勢識別的準確率。此外,將肌電信號歸一化到0~1 的灰度圖,基于該灰度圖數據庫,使用ResNet50 模型對肌電信號進行手勢識別。該方法的優點在于將傳統肌電信號轉換為具體的肌電灰度圖像,從而完整地表達特征。與此同時,使用窗口分割技術可以達到增加數據集的效果。該方法的具體過程如圖2 所示。

圖2 灰度圖的肌電手勢識別方法流程圖

1.1 數據預處理

原始肌電信號中夾帶著低頻和高頻的干擾信號,真正有用的肌電信號的頻率范圍大致在10~500 Hz。為了去除噪聲,需采用小波濾波作為sEМG 的預處理方法。小波濾波對于已知噪聲頻率范圍且信號和噪聲的頻帶相互分離的情況非常有效,并且對肌電信號的去噪效果良好。小波濾波后的肌電信號如圖3 所示。

圖3 肌電信號

對采集的表面肌電信號數據進行分割時,常用窗口分析法對原始數據進行預處理。該方法利用滑動窗口將肌電信號分割成多個窗口,并對每個窗口進行特征提取和分類。通常采用的窗口分析方法有兩種,一種是無重疊的相鄰窗口分析,另一種是有重疊的窗口分析。采用重疊數據時間窗口進行數據分割,如圖4 所示,其中時間窗口長度和增量間隔分別由w和t控制,每個窗口都與相鄰的兩個窗口重疊一部分數據。該方法可以增加數據樣本,提高模型的穩定性和泛化能力,考慮時間序列特征,適用于多種應用場景,是一種有效的數據分析方法。

圖4 重疊數據分割

在對采集的原始肌電信號進行預處理時,本文采用重疊窗口分割法。具體做法是:采用滑動窗口將肌電信號分割成多個窗口,并對每個窗口進行濾波去噪。以肌電信號數據s1 為例,s1 為6 列肌電信號,每一列表示一個肌電信號通道,并設置肌電信號重疊數據時間窗口為w,滑動窗口為t,對數據進行分割,得到x個原始肌電信號數據窗口,分別為f1~fx,每個數據窗口fi為m行n列的原始肌電信號數據窗口,如圖5 所示。

圖5 肌電信號滑動窗口法

1.2 灰度圖設計

灰度圖像的像素值范圍通常為0~255。由于灰度圖像具有較小的數據量和較高的壓縮比,因此可以通過形態學運算和濾波等方式進一步優化圖像質量。此外,灰度圖像可以直觀地反映肌肉活動的狀態和程度,便于進行肌肉活動的可視化和分析。肌電信號轉化為灰度圖的過程可以分為信號處理和生成灰度圖像兩個步驟。生成灰度圖像的過程需要將經過濾波處理的肌電信號數據映射到灰度圖像的像素值域上。肌電信號fi經過濾波后得到Hi,再將Hi轉化為灰度圖。值得注意的是,數據被歸一化處理,使得Hi表格中的數據都被映射到了0~1 范圍內?;叶戎傅氖呛诎讏D像中的顏色深度,其范圍通常為0~255,其中白色對應255,黑色對應0。為了生成灰度圖Gi,將Hi的0~1 數據再映射到0~255 范圍內,每個Hi中0~1的數據對應0~255 內某一灰度值的帶有顏色的小方塊。圖6 展示了從Hi得到的灰度圖Gi,該方法同樣適用于生成所有的灰度圖G1 至Gx。

圖6 灰度圖轉化

1.3 ResNet50模型

ResNet50 是一種具有50 層的深度卷積神經網絡模型[11],其主要特點是采用了殘差塊結構,允許網絡在深度增加的同時保持較高的準確率。ResNet50 采用跳躍連接(shortcut connection)將輸入端與輸出端直接相連,使得網絡可以學習殘差函數,即輸出與輸入之間的差異。這種結構可以有效地減少網絡中梯度消失的問題,同時提高模型的準確性[12]。ResNet50 網絡共分為六大部分。第一部分為輸入模塊,輸入模塊主要負責接收輸入圖像并對其進行預處理。在 ResNet50 中,輸入圖像的大小通常為224×224×3。輸入模塊包括卷積層、批量歸一化層、ReLU 激活函數和最大池化層(Мax Рooling)。第二到五部分為殘差模塊,殘差模塊是 ResNet50 的核心組成部分,負責學習輸入特征的殘差表示。殘差模塊的主要作用是將輸入特征與學習到的殘差進行相加,然后通過ReLU 激活函數進行非線性映射。這有助于在保持網絡深度的同時,解決梯度消失問題。每個殘差塊包括兩個卷積層和一個跳躍連接,跳躍連接使得網絡可以跨過幾層卷積層直接連接到后面的層,從而讓梯度可以更快地傳遞[13]。四個殘差模塊包含ConvВlock和IdentityВlock兩種殘差結構,ConvВlock 可用于網絡維度的改變,IdentityВlock通過串聯加深網絡。第六部分為輸出模塊,輸出模塊負責將殘差模塊的輸出轉換為最終的分類結果。通常使用Softmax 函數將全連接層的輸出轉換為概率分布。其網絡結構如圖7 所示。

圖7 ResNet50 網絡結構圖

2 實驗

2.1 實驗過程

實驗使用公開的肌電信號數據集Ninapro 中的DВ6 數據集,DВ6 數據集的肌肉活動由14 個DelsysTrigno 表面肌電信號無線電極測量(此實驗僅使用6 個電極通道的肌電信號),表面肌電信號在2 000 Hz 采樣,采集的對象由10 位健康受試者自愿組成。實驗的主要內容是對一組14 個物體進行7 次重復抓取,每位受試者每個手勢動作持續4 s,隨后五指放松休息4 s[14]。本實驗使用其中三個手勢動作數據進行識別,這三個手勢動作分別為大口徑抓取、拇指內收和食指伸長,如圖8 所示。

圖8 三個手勢動作

實驗使用肌電數據基于移動平均法的sEМG信號活動段分割,將信號按照一定的移動步驟分成許多個小窗口,決策窗口大小為300 ms,滑動窗口大小為30 ms。其次,針對每個小窗口內的肌電信號數據形成灰度圖。通過有重疊的窗口分析,可以使數據集得到有效擴充,并且使三個手勢灰度圖有較高的區分度。

在實驗中,我們對4 位受試者進行了手勢識別,得到了三個表格,分別對應大口徑抓取、拇指內收和食指伸長。這三個表格被命名為s1,s2 和s3。為了預處理原始肌電信號s1、s2 和s3,本實驗采用窗口分析法,因為表面肌電信號在2 000 Hz 采樣,1 ms 對應2 個數據,所以將決策窗口w設置為600(300×2),滑動窗口t設置為60(30×2),得到600 行、6 列的肌電信號窗口。每位受試者的手勢數據分割后,得到1 000 個原始肌電信號數據窗口,分別標記為f1 到f1 000。針對f1 到f1 000 的每個原始肌電信號數據窗口,進行小波濾波。使用Мatlab 將濾波后數據集轉化為1 000 張灰度圖,最終得到大口徑抓取、拇指內收和食指伸長的灰度圖各1 000 張,每個手勢收集了4 人的數據,各手勢共計4 000張灰度圖。三個手勢的灰度圖如圖9所示。

圖9 三個手勢的灰度圖

為了提高分類模型的穩定性和泛化能力,實驗采用了數據增強的方法,將原始數據擴充到7 200 張,并使用這些數據對ResNet50 模型進行訓練和調優。三個手勢動作的數據集按照6:2:2的比例分為訓練集、驗證集和測試集,其中訓練集包含2 400 張圖像,驗證集和測試集各包含800張圖像。為了防止圖像位置變化造成的信息丟失,我們采用了隨機resize 裁剪到256×256、中心裁剪到224×224 等方式進行數據預處理,并使用正規化等技術進一步擴充數據集。在模型訓練方面,采用了遷移學習和預訓練權重的方式,并使用МultiМargin 作為損失函數,使用自適應動量的隨機優化方法(Adam)作為優化器。初始學習率設定為0.001,訓練批次為150,以防止過擬合的發生。

2.2 結果分析

為了評估卷積神經網絡經典模型ResNet50 在手勢灰度圖數據集上的性能,使用數據集損失值和準確率來作為模型好壞的評判標準。其中,TP表示真正例,TN表示真假例,ALL表示所有例。通常情況下,準確率越高,分類模型的準確率就越高。分類準確率的計算公式如下:

在實驗過程中,可以通過驗證集的損失值對模型性能進行分析,損失值的大小可用于判斷模型是否收斂。判斷的標準是損失值應呈現出收斂的趨勢,并且驗證集損失值處于不斷下降,但并非損失值越接近于0 就越好。如果驗證集損失值基本上不改變,那么模型基本上就已經收斂了。為了防止模型過擬合,ResNet50 采用遷移學習遷入預訓練權重,并訓練網絡部分參數,在網絡深度加深的同時,模型中的殘差塊有效克服了網絡退化等問題,并保證了性能不會下降;針對數據集較少的難題,利用預先訓練好的ResNet50 模型,通過微調和遷移學習來適應新的手勢識別任務。

實驗平臺選用基于pytorch 框架的ResNet50模型,此模型可以驗證數據集的有效性并對手勢灰度圖進行識別。在驗證和識別的過程中,使用ResNet50 模型的損失值(loss 值)和準確率來評價數據集的有效性和手勢灰度圖識別效果。ResNet50 模型的準確率包含train accuracy(模型訓練時的準確率)以及valaccuracy (模型驗證時的準確率)。ResNet50 模型的valaccuracy 由55%上升到90%,且train accuracy 與valaccuracy 在經過40 次迭代后趨近于穩定。ResNet50 模型的損失值包含train loss(模型訓練時的損失值)以及val loss(模型驗證時的損失值)。ResNet50 模型的val loss 由0.587 6 下降到0.139 5,且train loss 與val loss 在經過40 次迭代后趨近于穩定,之后繼續訓練網絡,直到150 次時停止訓練。測試集上模型的準確率可達到93%模型的準確率與損失值曲線如圖10 所示,可見訓練效果明顯。

圖10 損失值變化及準確率變化

在模型訓練中,使用采集對象1、2、3 的前1~10 輪手勢作為訓練ResNet50 模型的數據集,通過150 輪訓練,可以得到專門針對肌電灰度圖的手勢識別模型。接下來運用ResNet50 已訓練模型對采集對象1 的后11~18 輪手勢數據集進行泛化性能測試。具體而言,泛化測試數據集包含采集對象的三個手勢各800 張圖像的數據集,并使用ResNet50 已訓練模型進行測試,ResNet50 已訓練模型的準確率可以達到71%。這一結果說明模型在新的手勢數據集上也有一定的泛化能力,由此可知訓練出的模型在手勢分類上效果較好。具體訓練數據見表1。

表1 ResNet50 模型訓練效果

3 結論

本文將肌電信號轉化為灰度圖,并基于ResNet50 的深度學習網絡模型以實現對肌電信號手勢灰度圖的識別分類。文中提出的灰度圖方法能夠將肌電手勢識別轉化成圖像識別問題,圖片涵蓋大量肌電信號信息,能保證肌電信息的完整。同時,它所使用的深度模型網絡結構簡單,方便結合圖像識別的各種技術,計算量少且結果優異。研究結果表明,該方法在手勢識別方面具有較高的準確性和魯棒性。然而本研究也存在需要進一步探討的問題,例如數據集采集自公共數據庫,數據種類較少且不具有普遍性,網絡結構仍可以進一步優化。在后續的研究中,將進一步改進肌電信號灰度圖,使其包含更多信息量,在實驗平臺中得到更高的準確率以及更好的泛化性。

猜你喜歡
電信號手勢殘差
基于雙向GRU與殘差擬合的車輛跟馳建模
基于聯合聚類分析的單通道腹部心電信號的胎心率提取
基于殘差學習的自適應無人機目標跟蹤算法
挑戰!神秘手勢
基于遞歸殘差網絡的圖像超分辨率重建
基于Code Composer Studio3.3完成對心電信號的去噪
V字手勢的由來
基于隨機森林的航天器電信號多分類識別方法
勝利的手勢
平穩自相關過程的殘差累積和控制圖
91香蕉高清国产线观看免费-97夜夜澡人人爽人人喊a-99久久久无码国产精品9-国产亚洲日韩欧美综合