羅肖媛,黃文靜,曾學(xué)武,段小剛,鄭哲文,王子怡
(1.中南林業(yè)科技大學(xué)材料科學(xué)與工程學(xué)院,湖南 長沙 410004;2.和天(湖南)國際工程管理有限公司,湖南 長沙 410006;3.中南智能湖南工業(yè)4.0創(chuàng)新中心,湖南 長沙 410000)
表面肌電信號(hào)(surface electromyography,sEМG)是一種能夠反映肌肉興奮程度的生物電信號(hào),肌電信號(hào)的獲取可以分為針式電極采集[1]和表面電極采集[2],目前被廣泛應(yīng)用于人機(jī)接口的研究。其中,基于sEМG 的手勢(shì)識(shí)別研究最為廣泛,其可以被應(yīng)用于智能假肢控制、康復(fù)訓(xùn)練、機(jī)器人遙操作等[3]?;趕EМG 的手勢(shì)識(shí)別問題隸屬于模式識(shí)別中的多分類問題,大致有兩種方法,即基于傳統(tǒng)機(jī)器學(xué)習(xí)方法和基于深度學(xué)習(xí)方法。基于傳統(tǒng)機(jī)器學(xué)習(xí)方法的表面肌電信號(hào)的分類器模型主要有K 近鄰[4]、線性判別分析[5]、支持向量機(jī)[6]、樸素貝葉斯和隱馬爾科夫[7]等。深度學(xué)習(xí)方法可以弱化特征提取過程,且可以替換分類器步驟,近年來已經(jīng)成功應(yīng)用于很多領(lǐng)域,如圖像分類、語音識(shí)別[8]和視頻分類[9]等,近幾年也逐漸用于基于sEМG 的手勢(shì)識(shí)別。目前,深度學(xué)習(xí)方法主要是將原始sEМG 分割后直接輸入深度學(xué)習(xí)模型中,并自動(dòng)從高維的原始sEМG 信號(hào)中提取有用信息,而將肌電信號(hào)處理后轉(zhuǎn)化為灰度圖,輸入深度模型進(jìn)行手勢(shì)識(shí)別的研究還處于初級(jí)階段。
本文采用深度學(xué)習(xí)模型替代傳統(tǒng)分類器,利用深度學(xué)習(xí)強(qiáng)大的表征能力對(duì)肌電信號(hào)進(jìn)行再加工來分類。具體而言,首先將肌電信號(hào)進(jìn)行窗口滑動(dòng)并轉(zhuǎn)化為灰度圖像,再將灰度圖片集輸入深度模型進(jìn)行手勢(shì)識(shí)別[10]。該方法將肌電手勢(shì)識(shí)別完全轉(zhuǎn)化為圖像識(shí)別問題,所使用的深度模型網(wǎng)絡(luò)結(jié)構(gòu)簡單,方便結(jié)合圖像識(shí)別的各種技術(shù),計(jì)算量少且結(jié)果優(yōu)異。論文提出的識(shí)別方法為人體sEМG 信號(hào)分析提供了新思路,并可能為基于人體生物學(xué)的人機(jī)交互研究帶來新的啟發(fā)。
肌電信號(hào)被廣泛應(yīng)用于醫(yī)學(xué)、運(yùn)動(dòng)科學(xué)、假肢控制、人機(jī)交互等領(lǐng)域。在假肢控制領(lǐng)域,肌電信號(hào)一般用于感知?dú)堉倪\(yùn)動(dòng)意圖,從而實(shí)現(xiàn)假肢的智能控制。在人機(jī)交互領(lǐng)域,肌電信號(hào)可以用于實(shí)現(xiàn)手勢(shì)識(shí)別,從而實(shí)現(xiàn)人機(jī)自然交互?;诩‰娦盘?hào)的手勢(shì)識(shí)別技術(shù)具有實(shí)時(shí)性強(qiáng)、無需接觸、精度高等特點(diǎn),大致過程如圖1 所示。
圖1 表面肌電信號(hào)的處理與應(yīng)用
本文利用深度學(xué)習(xí)的強(qiáng)大表征能力對(duì)灰度圖像加以分類。在數(shù)據(jù)預(yù)處理階段,采用軟件濾波技術(shù)對(duì)表面肌電信號(hào)數(shù)據(jù)進(jìn)行處理,去除其中的噪聲和干擾,同時(shí)保留信號(hào)中的有用信息,從而改善信號(hào)的品質(zhì),以提高信號(hào)的質(zhì)量和可讀性。其次,對(duì)分割后的信號(hào)進(jìn)行滑動(dòng)窗口選擇,以提高手勢(shì)識(shí)別的準(zhǔn)確率。此外,將肌電信號(hào)歸一化到0~1 的灰度圖,基于該灰度圖數(shù)據(jù)庫,使用ResNet50 模型對(duì)肌電信號(hào)進(jìn)行手勢(shì)識(shí)別。該方法的優(yōu)點(diǎn)在于將傳統(tǒng)肌電信號(hào)轉(zhuǎn)換為具體的肌電灰度圖像,從而完整地表達(dá)特征。與此同時(shí),使用窗口分割技術(shù)可以達(dá)到增加數(shù)據(jù)集的效果。該方法的具體過程如圖2 所示。
圖2 灰度圖的肌電手勢(shì)識(shí)別方法流程圖
原始肌電信號(hào)中夾帶著低頻和高頻的干擾信號(hào),真正有用的肌電信號(hào)的頻率范圍大致在10~500 Hz。為了去除噪聲,需采用小波濾波作為sEМG 的預(yù)處理方法。小波濾波對(duì)于已知噪聲頻率范圍且信號(hào)和噪聲的頻帶相互分離的情況非常有效,并且對(duì)肌電信號(hào)的去噪效果良好。小波濾波后的肌電信號(hào)如圖3 所示。
圖3 肌電信號(hào)
對(duì)采集的表面肌電信號(hào)數(shù)據(jù)進(jìn)行分割時(shí),常用窗口分析法對(duì)原始數(shù)據(jù)進(jìn)行預(yù)處理。該方法利用滑動(dòng)窗口將肌電信號(hào)分割成多個(gè)窗口,并對(duì)每個(gè)窗口進(jìn)行特征提取和分類。通常采用的窗口分析方法有兩種,一種是無重疊的相鄰窗口分析,另一種是有重疊的窗口分析。采用重疊數(shù)據(jù)時(shí)間窗口進(jìn)行數(shù)據(jù)分割,如圖4 所示,其中時(shí)間窗口長度和增量間隔分別由w和t控制,每個(gè)窗口都與相鄰的兩個(gè)窗口重疊一部分?jǐn)?shù)據(jù)。該方法可以增加數(shù)據(jù)樣本,提高模型的穩(wěn)定性和泛化能力,考慮時(shí)間序列特征,適用于多種應(yīng)用場景,是一種有效的數(shù)據(jù)分析方法。
圖4 重疊數(shù)據(jù)分割
在對(duì)采集的原始肌電信號(hào)進(jìn)行預(yù)處理時(shí),本文采用重疊窗口分割法。具體做法是:采用滑動(dòng)窗口將肌電信號(hào)分割成多個(gè)窗口,并對(duì)每個(gè)窗口進(jìn)行濾波去噪。以肌電信號(hào)數(shù)據(jù)s1 為例,s1 為6 列肌電信號(hào),每一列表示一個(gè)肌電信號(hào)通道,并設(shè)置肌電信號(hào)重疊數(shù)據(jù)時(shí)間窗口為w,滑動(dòng)窗口為t,對(duì)數(shù)據(jù)進(jìn)行分割,得到x個(gè)原始肌電信號(hào)數(shù)據(jù)窗口,分別為f1~fx,每個(gè)數(shù)據(jù)窗口fi為m行n列的原始肌電信號(hào)數(shù)據(jù)窗口,如圖5 所示。
圖5 肌電信號(hào)滑動(dòng)窗口法
灰度圖像的像素值范圍通常為0~255。由于灰度圖像具有較小的數(shù)據(jù)量和較高的壓縮比,因此可以通過形態(tài)學(xué)運(yùn)算和濾波等方式進(jìn)一步優(yōu)化圖像質(zhì)量。此外,灰度圖像可以直觀地反映肌肉活動(dòng)的狀態(tài)和程度,便于進(jìn)行肌肉活動(dòng)的可視化和分析。肌電信號(hào)轉(zhuǎn)化為灰度圖的過程可以分為信號(hào)處理和生成灰度圖像兩個(gè)步驟。生成灰度圖像的過程需要將經(jīng)過濾波處理的肌電信號(hào)數(shù)據(jù)映射到灰度圖像的像素值域上。肌電信號(hào)fi經(jīng)過濾波后得到Hi,再將Hi轉(zhuǎn)化為灰度圖。值得注意的是,數(shù)據(jù)被歸一化處理,使得Hi表格中的數(shù)據(jù)都被映射到了0~1 范圍內(nèi)?;叶戎傅氖呛诎讏D像中的顏色深度,其范圍通常為0~255,其中白色對(duì)應(yīng)255,黑色對(duì)應(yīng)0。為了生成灰度圖Gi,將Hi的0~1 數(shù)據(jù)再映射到0~255 范圍內(nèi),每個(gè)Hi中0~1的數(shù)據(jù)對(duì)應(yīng)0~255 內(nèi)某一灰度值的帶有顏色的小方塊。圖6 展示了從Hi得到的灰度圖Gi,該方法同樣適用于生成所有的灰度圖G1 至Gx。
圖6 灰度圖轉(zhuǎn)化
ResNet50 是一種具有50 層的深度卷積神經(jīng)網(wǎng)絡(luò)模型[11],其主要特點(diǎn)是采用了殘差塊結(jié)構(gòu),允許網(wǎng)絡(luò)在深度增加的同時(shí)保持較高的準(zhǔn)確率。ResNet50 采用跳躍連接(shortcut connection)將輸入端與輸出端直接相連,使得網(wǎng)絡(luò)可以學(xué)習(xí)殘差函數(shù),即輸出與輸入之間的差異。這種結(jié)構(gòu)可以有效地減少網(wǎng)絡(luò)中梯度消失的問題,同時(shí)提高模型的準(zhǔn)確性[12]。ResNet50 網(wǎng)絡(luò)共分為六大部分。第一部分為輸入模塊,輸入模塊主要負(fù)責(zé)接收輸入圖像并對(duì)其進(jìn)行預(yù)處理。在 ResNet50 中,輸入圖像的大小通常為224×224×3。輸入模塊包括卷積層、批量歸一化層、ReLU 激活函數(shù)和最大池化層(Мa(chǎn)x Рooling)。第二到五部分為殘差模塊,殘差模塊是 ResNet50 的核心組成部分,負(fù)責(zé)學(xué)習(xí)輸入特征的殘差表示。殘差模塊的主要作用是將輸入特征與學(xué)習(xí)到的殘差進(jìn)行相加,然后通過ReLU 激活函數(shù)進(jìn)行非線性映射。這有助于在保持網(wǎng)絡(luò)深度的同時(shí),解決梯度消失問題。每個(gè)殘差塊包括兩個(gè)卷積層和一個(gè)跳躍連接,跳躍連接使得網(wǎng)絡(luò)可以跨過幾層卷積層直接連接到后面的層,從而讓梯度可以更快地傳遞[13]。四個(gè)殘差模塊包含ConvВlock和IdentityВlock兩種殘差結(jié)構(gòu),ConvВlock 可用于網(wǎng)絡(luò)維度的改變,IdentityВlock通過串聯(lián)加深網(wǎng)絡(luò)。第六部分為輸出模塊,輸出模塊負(fù)責(zé)將殘差模塊的輸出轉(zhuǎn)換為最終的分類結(jié)果。通常使用Softmax 函數(shù)將全連接層的輸出轉(zhuǎn)換為概率分布。其網(wǎng)絡(luò)結(jié)構(gòu)如圖7 所示。
圖7 ResNet50 網(wǎng)絡(luò)結(jié)構(gòu)圖
實(shí)驗(yàn)使用公開的肌電信號(hào)數(shù)據(jù)集Ninapro 中的DВ6 數(shù)據(jù)集,DВ6 數(shù)據(jù)集的肌肉活動(dòng)由14 個(gè)DelsysTrigno 表面肌電信號(hào)無線電極測(cè)量(此實(shí)驗(yàn)僅使用6 個(gè)電極通道的肌電信號(hào)),表面肌電信號(hào)在2 000 Hz 采樣,采集的對(duì)象由10 位健康受試者自愿組成。實(shí)驗(yàn)的主要內(nèi)容是對(duì)一組14 個(gè)物體進(jìn)行7 次重復(fù)抓取,每位受試者每個(gè)手勢(shì)動(dòng)作持續(xù)4 s,隨后五指放松休息4 s[14]。本實(shí)驗(yàn)使用其中三個(gè)手勢(shì)動(dòng)作數(shù)據(jù)進(jìn)行識(shí)別,這三個(gè)手勢(shì)動(dòng)作分別為大口徑抓取、拇指內(nèi)收和食指伸長,如圖8 所示。
圖8 三個(gè)手勢(shì)動(dòng)作
實(shí)驗(yàn)使用肌電數(shù)據(jù)基于移動(dòng)平均法的sEМG信號(hào)活動(dòng)段分割,將信號(hào)按照一定的移動(dòng)步驟分成許多個(gè)小窗口,決策窗口大小為300 ms,滑動(dòng)窗口大小為30 ms。其次,針對(duì)每個(gè)小窗口內(nèi)的肌電信號(hào)數(shù)據(jù)形成灰度圖。通過有重疊的窗口分析,可以使數(shù)據(jù)集得到有效擴(kuò)充,并且使三個(gè)手勢(shì)灰度圖有較高的區(qū)分度。
在實(shí)驗(yàn)中,我們對(duì)4 位受試者進(jìn)行了手勢(shì)識(shí)別,得到了三個(gè)表格,分別對(duì)應(yīng)大口徑抓取、拇指內(nèi)收和食指伸長。這三個(gè)表格被命名為s1,s2 和s3。為了預(yù)處理原始肌電信號(hào)s1、s2 和s3,本實(shí)驗(yàn)采用窗口分析法,因?yàn)楸砻婕‰娦盘?hào)在2 000 Hz 采樣,1 ms 對(duì)應(yīng)2 個(gè)數(shù)據(jù),所以將決策窗口w設(shè)置為600(300×2),滑動(dòng)窗口t設(shè)置為60(30×2),得到600 行、6 列的肌電信號(hào)窗口。每位受試者的手勢(shì)數(shù)據(jù)分割后,得到1 000 個(gè)原始肌電信號(hào)數(shù)據(jù)窗口,分別標(biāo)記為f1 到f1 000。針對(duì)f1 到f1 000 的每個(gè)原始肌電信號(hào)數(shù)據(jù)窗口,進(jìn)行小波濾波。使用Мa(chǎn)tlab 將濾波后數(shù)據(jù)集轉(zhuǎn)化為1 000 張灰度圖,最終得到大口徑抓取、拇指內(nèi)收和食指伸長的灰度圖各1 000 張,每個(gè)手勢(shì)收集了4 人的數(shù)據(jù),各手勢(shì)共計(jì)4 000張灰度圖。三個(gè)手勢(shì)的灰度圖如圖9所示。
圖9 三個(gè)手勢(shì)的灰度圖
為了提高分類模型的穩(wěn)定性和泛化能力,實(shí)驗(yàn)采用了數(shù)據(jù)增強(qiáng)的方法,將原始數(shù)據(jù)擴(kuò)充到7 200 張,并使用這些數(shù)據(jù)對(duì)ResNet50 模型進(jìn)行訓(xùn)練和調(diào)優(yōu)。三個(gè)手勢(shì)動(dòng)作的數(shù)據(jù)集按照6:2:2的比例分為訓(xùn)練集、驗(yàn)證集和測(cè)試集,其中訓(xùn)練集包含2 400 張圖像,驗(yàn)證集和測(cè)試集各包含800張圖像。為了防止圖像位置變化造成的信息丟失,我們采用了隨機(jī)resize 裁剪到256×256、中心裁剪到224×224 等方式進(jìn)行數(shù)據(jù)預(yù)處理,并使用正規(guī)化等技術(shù)進(jìn)一步擴(kuò)充數(shù)據(jù)集。在模型訓(xùn)練方面,采用了遷移學(xué)習(xí)和預(yù)訓(xùn)練權(quán)重的方式,并使用МultiМa(chǎn)rgin 作為損失函數(shù),使用自適應(yīng)動(dòng)量的隨機(jī)優(yōu)化方法(Adam)作為優(yōu)化器。初始學(xué)習(xí)率設(shè)定為0.001,訓(xùn)練批次為150,以防止過擬合的發(fā)生。
為了評(píng)估卷積神經(jīng)網(wǎng)絡(luò)經(jīng)典模型ResNet50 在手勢(shì)灰度圖數(shù)據(jù)集上的性能,使用數(shù)據(jù)集損失值和準(zhǔn)確率來作為模型好壞的評(píng)判標(biāo)準(zhǔn)。其中,TP表示真正例,TN表示真假例,ALL表示所有例。通常情況下,準(zhǔn)確率越高,分類模型的準(zhǔn)確率就越高。分類準(zhǔn)確率的計(jì)算公式如下:
在實(shí)驗(yàn)過程中,可以通過驗(yàn)證集的損失值對(duì)模型性能進(jìn)行分析,損失值的大小可用于判斷模型是否收斂。判斷的標(biāo)準(zhǔn)是損失值應(yīng)呈現(xiàn)出收斂的趨勢(shì),并且驗(yàn)證集損失值處于不斷下降,但并非損失值越接近于0 就越好。如果驗(yàn)證集損失值基本上不改變,那么模型基本上就已經(jīng)收斂了。為了防止模型過擬合,ResNet50 采用遷移學(xué)習(xí)遷入預(yù)訓(xùn)練權(quán)重,并訓(xùn)練網(wǎng)絡(luò)部分參數(shù),在網(wǎng)絡(luò)深度加深的同時(shí),模型中的殘差塊有效克服了網(wǎng)絡(luò)退化等問題,并保證了性能不會(huì)下降;針對(duì)數(shù)據(jù)集較少的難題,利用預(yù)先訓(xùn)練好的ResNet50 模型,通過微調(diào)和遷移學(xué)習(xí)來適應(yīng)新的手勢(shì)識(shí)別任務(wù)。
實(shí)驗(yàn)平臺(tái)選用基于pytorch 框架的ResNet50模型,此模型可以驗(yàn)證數(shù)據(jù)集的有效性并對(duì)手勢(shì)灰度圖進(jìn)行識(shí)別。在驗(yàn)證和識(shí)別的過程中,使用ResNet50 模型的損失值(loss 值)和準(zhǔn)確率來評(píng)價(jià)數(shù)據(jù)集的有效性和手勢(shì)灰度圖識(shí)別效果。ResNet50 模型的準(zhǔn)確率包含train accuracy(模型訓(xùn)練時(shí)的準(zhǔn)確率)以及valaccuracy (模型驗(yàn)證時(shí)的準(zhǔn)確率)。ResNet50 模型的valaccuracy 由55%上升到90%,且train accuracy 與valaccuracy 在經(jīng)過40 次迭代后趨近于穩(wěn)定。ResNet50 模型的損失值包含train loss(模型訓(xùn)練時(shí)的損失值)以及val loss(模型驗(yàn)證時(shí)的損失值)。ResNet50 模型的val loss 由0.587 6 下降到0.139 5,且train loss 與val loss 在經(jīng)過40 次迭代后趨近于穩(wěn)定,之后繼續(xù)訓(xùn)練網(wǎng)絡(luò),直到150 次時(shí)停止訓(xùn)練。測(cè)試集上模型的準(zhǔn)確率可達(dá)到93%模型的準(zhǔn)確率與損失值曲線如圖10 所示,可見訓(xùn)練效果明顯。
圖10 損失值變化及準(zhǔn)確率變化
在模型訓(xùn)練中,使用采集對(duì)象1、2、3 的前1~10 輪手勢(shì)作為訓(xùn)練ResNet50 模型的數(shù)據(jù)集,通過150 輪訓(xùn)練,可以得到專門針對(duì)肌電灰度圖的手勢(shì)識(shí)別模型。接下來運(yùn)用ResNet50 已訓(xùn)練模型對(duì)采集對(duì)象1 的后11~18 輪手勢(shì)數(shù)據(jù)集進(jìn)行泛化性能測(cè)試。具體而言,泛化測(cè)試數(shù)據(jù)集包含采集對(duì)象的三個(gè)手勢(shì)各800 張圖像的數(shù)據(jù)集,并使用ResNet50 已訓(xùn)練模型進(jìn)行測(cè)試,ResNet50 已訓(xùn)練模型的準(zhǔn)確率可以達(dá)到71%。這一結(jié)果說明模型在新的手勢(shì)數(shù)據(jù)集上也有一定的泛化能力,由此可知訓(xùn)練出的模型在手勢(shì)分類上效果較好。具體訓(xùn)練數(shù)據(jù)見表1。
表1 ResNet50 模型訓(xùn)練效果
本文將肌電信號(hào)轉(zhuǎn)化為灰度圖,并基于ResNet50 的深度學(xué)習(xí)網(wǎng)絡(luò)模型以實(shí)現(xiàn)對(duì)肌電信號(hào)手勢(shì)灰度圖的識(shí)別分類。文中提出的灰度圖方法能夠?qū)⒓‰娛謩?shì)識(shí)別轉(zhuǎn)化成圖像識(shí)別問題,圖片涵蓋大量肌電信號(hào)信息,能保證肌電信息的完整。同時(shí),它所使用的深度模型網(wǎng)絡(luò)結(jié)構(gòu)簡單,方便結(jié)合圖像識(shí)別的各種技術(shù),計(jì)算量少且結(jié)果優(yōu)異。研究結(jié)果表明,該方法在手勢(shì)識(shí)別方面具有較高的準(zhǔn)確性和魯棒性。然而本研究也存在需要進(jìn)一步探討的問題,例如數(shù)據(jù)集采集自公共數(shù)據(jù)庫,數(shù)據(jù)種類較少且不具有普遍性,網(wǎng)絡(luò)結(jié)構(gòu)仍可以進(jìn)一步優(yōu)化。在后續(xù)的研究中,將進(jìn)一步改進(jìn)肌電信號(hào)灰度圖,使其包含更多信息量,在實(shí)驗(yàn)平臺(tái)中得到更高的準(zhǔn)確率以及更好的泛化性。