谷學靜 沈 攀 劉海望 郭 俊 位占鋒
1(華北理工大學電氣工程學院 河北 唐山 063210)2(唐山市數字媒體工程技術研究中心 河北 唐山 063000)3(華北理工大學輕工學院電氣信息學院 河北 唐山 063000)
在人機交互領域中,手勢識別技術是一個非常重要的技術,尤其是隨著計算機技術、人工智能的發展,人們對于高效、便捷的交互方式的需求也變得更加迫切。手作為人體最常用和靈巧的部位,如何提升手勢識別的準確率以獲得更加自然的交互方式就顯得尤為重要。就目前而言,基于手勢的研究方法主要分為兩大類。一種是基于機器視覺的方法[1],通過RGB相機、深度相機、紅外相機等設備獲取手部姿態的圖像作為輸入,比如李明東[2]采用HSV膚色模型區域檢測技術可以識別13種手勢動作類型,楊萍萍[3]采用Kinect設備獲取手部的深度信息進行研究,可以識別24種手勢類型,識別準確率可以達到90%。基于視覺的手勢識別的缺點也非常明顯,容易受到遮擋、光照、環境等因素的影響。另一種則是基于表面肌電信號的研究方法,表面肌電信號是一種人體生理信號,當人體肌肉進行動作的時候,肌肉通過伸縮產生一種微弱電信號,是多個運動單元發放的動作電位序列在皮膚表面呈現的時間上和空間上綜合疊加的結果[4]。如圖1所示,MU為單位動作電位,不同手勢動作所產生的電信號類型是不同的,肌肉力度越大所產生的信號幅值越大,從時間上看,一般在手勢動作前的30 ms~150 ms就可以產生[5]。因此,如何利用肌電信號進行特征提取,是手勢識別技術的關鍵。

圖1 運動單元動作電位序列(MUPT)
SEMG信號受環境因素的影響較小,已經廣泛應用于醫療、康復和人機交互領域[6]。目前,基于SEMG的研究已經取得了很大的進展,Naik等[7]通過采集到的手臂EMG信號,并提取信號的分維數特征,采用支持向量機的方法對手部動作進行分類,達到了較高的識別率。Zhang等[8]在EMG信號的基礎上加入了手部運動的加速度數據,融合兩種信號特征,可以有效地提升手語識別的準確率。在深度學習方面,Geng等[9]提出了一種GengNet的卷積神經網絡模型用于端到端的肌電手勢識別,其性能優于傳統分類器模型的手勢識別方法,證明了卷積神經網絡在肌電手勢識別領域具有一定的優勢。Zhai等[10]提出的卷積神經網絡在NinaPro稀疏多通道肌電數據集上取得了78.9%的準確率。周旭東等[11]通過對原始信號進行時頻域信息拓展,提出兩類組合RNN網絡架構處理多流信號,實時準確率可達90.78%。鮑磊等[12]針對四路表面肌電與三軸加速度提出融合SEMG和加速度的方法,在6種手語識別準確率達到91.2%。
為了進一步提升手勢識別準確率,本文在CNN基礎上提出一種多流卷積融合的深度學習方法,在數據集SIA_delsys進行實驗驗證,并且與傳統機器學習算法對比,取得了良好的效果。
對于手勢識別而言,其本質屬于模式識別的分類問題,通過提取不同手勢動作過程中所產生表面肌電信號特征,選擇合適的機器學習分類器進行訓練,最終達到識別手勢分類的目的。根據分類器模型和提取特征方式的不同,表面肌電的手勢識別方法可以分成基于傳統機器學習和深度學習兩種方法。
首先對肌電信號進行預處理,預處理常用的方法包括濾波和降噪等,然后采用滑動窗進行采樣[12],分割數據樣本,分割的過程中對信號時域、頻域或者時頻域特征進行提取,將提取出的信號特征采用PCA(主成分分析法)、SVD分解等方法進行降維[13],最后送入分類器模型進行訓練,完成手勢識別的研究。整體過程如圖2所示。

圖2 基于傳統機器學習手勢識別框架
在深度學習方法中,不需要人為來提取肌電信號特征,而是將肌電信號作為圖像輸入到神經網絡中,通過卷積網絡對肌電圖像進行特征提取,逐層地抽取出該肌電信號的特征信息。隨著網絡深度不斷加深,能夠提取出更具有表征能力的肌電信號特征,替代了手工提取肌電特征的繁瑣步驟,同時能夠對所選擇的特征進一步優化,最終實現端到端的手勢識別。深度學習方法處理肌電信號進行手勢識別的整體框架如圖3所示。

圖3 基于卷積神經網絡的有監督手勢識別框架
可以看出,肌電信號經預處理后轉化為肌電圖像,通過卷積網絡對圖像進行特征提取,將手勢標簽和特征進行有監督的訓練[3],訓練得到的模型用來預測輸入的肌電信號的類別,進行手勢的分類,進一步完成相關的控制和決策。
卷積神經網絡通常由輸入層、卷積層、池化層、全連接層和輸出層構成[1]。卷積實質就是把一幅圖像經過卷積核進行特征提取,卷積核的大小決定了局部感受野,通過與每個神經元的權值共享,獲得每幅圖像有效特征信息的同時,減少參數的數量,通過卷積層的下采樣進一步減小圖像的大小。針對手部運動信息的特征,如何對其產生的肌電信號進行有效的表征,是研究動態手勢識別一個核心的問題。為了避免手部運動產生數據的特征被弱化,考慮將多種具有代表性的數據信息分別送入卷積神經網絡進行特征提取,這樣將會大大提高數據間的聯系。然后通過特征融合網絡,將每個卷積流的數據在特征層融合,最后送入分類器,完成手勢動作的識別。
將采集到的肌電信號進行多流表征是構建多流卷積神經網絡的前提,受到Zhang等[8]對前臂肌肉群區域與手語動作關系研究的啟發,考慮不同肌群與手勢動作之間的對應的關系,對前臂肌群產生的肌電信號進行多流表征,將一個原始肌電信號圖像劃分為子圖像進行多流表征,輸入到多個卷積神經網絡的分支中去進行建模,實現肌電信號的多流卷積操作。主要過程可分為多流表征、多流卷積、網絡融合三部分。首先對每一幀采集到的原始信號圖像進行分解,設采集到的肌電原始圖像大小為w×h,每幅圖像x∈Rw×h,將一幅原始圖像進行分解操作D(x),那么如果要得到N幅子圖像,則子圖像表示為式(1)。
(1)

(2)
然后,對這分解后的N幅子圖像分別進行建模,構建卷積神經網絡,每個卷積神經網絡分別對這幾個子圖像進行特征提取,得到不同的特征Mi,可以表示為式(3)。
(3)

Yout=hw(M1,M2,…,MN)
(4)
網絡融合結構是一種基于特征層的融合方法,經多流表征的肌電圖像分別送入卷積神經網絡層,得到N個分支的深度特征送入網絡融合層進行特征融合。融合過程如圖4所示。

圖4 多流卷積的網絡融合結構
在圖4中的網絡融合結構中,主要分為兩個單元,FF單元是特征融合單元,AU表示特征分析單元,FF單元主要把多分支的N個特征進行拼接,分析單元AU主要由兩個全連接層和Softmax層構成。隱含單元的神經元個數分別為1 028和128,中間應用ReLU激活函數來進行批歸一化。通過網絡融合層完成特征向量的轉化和融合,最后G個隱含單元為待分類的手勢數目,經Softmax來完成手勢分類。
實驗選用SIA_delsys_16_movements數據集:在離線狀態下對4位健康受試者采集16種手部動作,采集設備為Delsys(2 000 Hz),粘貼6個電極,16種手部動作類型如圖5所示。
數據預處理主要有以下幾個步驟:標簽修正、特征歸一化和數據增強。在有監督的機器學習中,需要對大量數據進行標簽的標注,所以對于數據本身的質量要求非常嚴格,標簽修正是對每個動作產生的肌電數據的標簽進行校正,可以提升卷積網絡訓練的準確率,確保標注的標簽和對應的肌電信號的準確。采用最大面積法進行標簽修正,修正的結果如圖6所示。

圖6 最大面積法標簽修正
圖6中深色的線條表示修正以后的標簽,淺色的線表示修改前的標簽。在數據送入神經網絡之前,需要進行數據的特征值歸一化,將數據的特征值映射到(0,1)之間,可以消除數據間量綱的影響,采用min-max離差標準化的方法如下:
(5)
式中:x表示樣本數據的值;min為采集的樣本數據最小值,max為最大值,將數據進行特征值歸一化。為了進一步地提高神經網絡的模型效果,還可以對肌電圖像進行信號通道反轉,添加高斯噪聲、時間窗和增量窗等方式進行數據增強,利用卷積神經網絡的尺度不變性這一性質來進一步強化數據特征。
首先將預處理后的數據轉化為大小為200×6肌電圖像,作為原始輸入圖像,將原始肌電圖像再進一步劃分為肌電子圖像進行多流表征。設定不同大小的卷積核對原始圖像進行自動劃分,劃分后的子圖具有不同的原始圖像的特征,分別送入卷積神經網絡對子圖再進行特征提取,然后經過網絡融合特征層完成多流卷積的融合,最終送入末端的Softmax進行手勢分類。網絡模型如圖7所示。

圖7 多流卷積神經網絡結構
原始圖像的w、h分別為200和6,N的大小為4,分解后的子圖xi∈R200×6,分解操作D(x)由不同大小的卷積核來完成,第一層的二維卷積網絡神經元都保持不變為32,卷積核大小分別為20×3、16×3、12×3、8×3,原始圖像分別經過卷積作用得到包含原始圖像不同信息的4種類型的子圖,大小分別為181×4、185×4、187×4、189×4,卷積層的卷積過程可以用式(6)表示。
(6)
式中:y表示卷積作用后的輸出特征圖;l和j分別表示層數和特征圖的數量;b表示l層第j個特征圖的偏置;*號表示卷積層的卷積作用;Mi表示輸入卷積層的特征集合;f表示激活函數。卷積神經網絡中常用的激活函數為ReLU(線性整流函數)。通過卷積核與神經元進行局部連接,然后在卷積核的滑動過程中實現特征的提取。在卷積過程中,每個卷積核的權值是保持不變的,通過權值共享來減少訓練過程中的網絡參數。卷積后由池化層進行下采樣進一步減小特征圖的大小,通過最大池化作用對提取到的信息進行過濾和篩選。通常有兩種池化的方法,分別為最大池化和平均池化。最大值池化方法和原理如圖8所示。

圖8 最大值池化原理
在一個4×4區域內,池化步長為2,取選中區域2×2內的所有值的最大值,使得最終變為2×2大小的一個特征量。具體原理如式(7)所示。
(7)
式中:S和R分別表示池化步長和大小。通過上述步驟的處理使卷積之后的數據特征具有尺度不變性、位移不變性和局部依賴性。
在卷積和池化過程之后需要對不同卷積提取到的信息進行融合,具體方法是將4個卷積流的輸出通過融合層轉化為一維向量傳入1 024個神經元的全連接層進行特征的加權和求和,來完成多流卷積的特征融合。為了在訓練過程中避免產生過擬合現象,還在網絡中加入了參數為0.5的dropout層用來隨機丟棄某些特征信息,減少參數之間的耦合從而抑制過擬合。最后,通過Softmax來進行分類,將輸出結果映射到(0,1)之間,Softmax的分類依據是根據計算數據集中16種手部動作類型的識別概率來進行判斷的,其原理如式(8)所示。
(8)
式中:S表示分類的個數,本次實驗數據集有16種動作類型;ai表示輸入的數據。計算出每種動作的概率進行輸出來判斷某一種動作出現概率最大的類型,得到最終輸出的結果。
實驗采用TensorFlow2.0框架來搭建深度學習的多流卷積網絡模型,配合自帶的可視化學習工具TensorBoard可以更直觀地觀察網絡模型的效果以及學習的準確率和損失率曲線,觀察手勢識別準確率變化。實驗的硬件配置為Winows 10系統環境搭載GTX1070顯卡,神經網絡的參數配置如表1所示。

表1 實驗網絡參數配置表
在實驗中,將預處理的數據按照第3.2節的步驟送入神經網絡進行訓練,并且設置對比實驗,網絡參數不變的情況下,用單流卷積神經網絡進行手勢識別,即第一層的卷積核大小和卷積層數都不發生變化,預處理后的原始肌電圖像作為網絡的輸入,其他參數不變,只有一個卷積流的特征輸入,利用TensorBoard可視化工具觀察其準確率的變化過程如圖9所示。

圖9 訓練準確率變化
可以看出,多流卷積網絡模型的準確率高于普通的單流卷積網絡,并且隨著訓練次數的不斷增大,準確率的增長速率也明顯高于普通的單流卷積網絡,這說明多流卷積提取的特征被強化。同樣的條件下網絡提取的數據特征優于普通單流卷積網絡,從而使網絡對于手勢肌電信號的特征學習效率更高,神經網絡更容易記住和區分數據的多流特征,達到更快的識別速度和更高的準確率。
為了驗證不同手勢數量對模型結果的影響,在不同數據集上采用相同的網絡模型進行實驗,設置三組對比實驗,其結果如表2所示。

表2 不同手勢數量識別準確率對比
實驗結果表明,不同數量的手勢數據集對實驗結果有一定影響,網絡模型的準確率隨著手勢數量的增加略有下降。不過總體看來,網絡模型依然保持較高的識別準確率,具有一定通用性,可用于手勢識別分類任務。
除此之外,為了進一步地研究所提出網絡模型的效果,還與傳統機器學習的手勢識別方法進行對比,說明深度學習方法在肌電信號手勢識別上的優勢,在同樣數據集下,采用1.1節提到的傳統機器學習方法對數據處理和建模,分別用KNN(最近鄰算法)、J48(決策樹)、SVM(支持向量機)等傳統分類器模型進行訓練和分類,手勢識別準確率用式(9)計算。
P(準確率)=M(正確分類數)/N(樣本總數)
(9)
其結果如表3所示。

表3 不同算法識別準確率對比表
不難看出,在最終識別準確率上,多流卷積網絡融合模型的效果要遠高于傳統機器學習方法,準確率比單流卷積高出9.09百分點,比最低的決策樹高出17.78百分點,說明深度學習的模型效果要優于傳統機器學習的分類模型,這是由于通過多流卷積網絡自身的結構捕捉肌電信號圖像的特征,可以更好捕捉前臂產生的肌電信號與不同手勢動作間的依賴關系,特征的表征能力得到強化,比人為設計提取特征效果更好。
本文提出一種多流卷積融合的方法對肌電信號的原始圖像進行多流表征,不依賴人工設計特征,簡化了預處理的過程;在單流卷積的基礎上,使用多流卷積對原始圖像進行分割,每個卷積流分別對子圖像進行特征提取,可以更好捕捉肌電信號與手勢動作的關系;通過特征層的融合,使獲得特征的表征能力要遠遠優于單流卷積,從而獲得更高的手勢識別準確率。在今后的工作中,考慮加入對肌電信號的時序信息進行建模,加入循環神經網絡提取信號的時序信息進一步優化網絡模型的識別能力。