張發輝, 楊大勇, 劉 婷
(1.南昌大學 機電工程學院,江西 南昌 330031;2.南昌大學 信息工程學院,江西 南昌 330031)
人機交互中的一個重要組成部分就是手勢識別,無論在游戲,智能家居甚至是手術室等都有廣泛應用。手勢識別的方法主要分為兩類:基于視覺的手勢識別和基于傳感器的手勢識別。基于視覺的手勢識別的方法主要是利用Kinect獲取深度圖像和骨骼信息來識別手勢[1],但 Kinect 在使用過程中,易受到光線強度、障礙物的遮擋等環境因素的影響,未能得到廣泛應用。近年來,隨著科技水平的飛速發展,基于肌電(electromyographic,EMG)信號的手勢識別開始成為研究熱點[2~3]。EMG信號是肌肉收縮時多個活躍運動單元發出的動作電位序列,它能夠直接反映人體的運動意圖,可以對大量的手勢進行判斷,而且EMG信號受環境因素影響較小,具有很好的研究價值和應用前景。
目前,基于EMG信號實現手勢動作識別的研究有很多, Naik G R等人通過采集到的手臂EMG信號,并提取信號的分維數特征,用支持向量機(support vector machine,SVM)等方法進行手部運動模式的分類,實現了較高的識別率[4]。張啟忠等人提出了的球均值 Lyapunov 指數計算的方法對EMG信號提取特征,并利用SVM作為分類器,對手部四類動作進行分類,準確率達到96 %[5]。中國科學技術大學的陳香等人在基于EMG信號的手語識別方面做了深入研究,通過引入加速度傳感器采集手臂的加速度,將EMG信號和加速度信號融合,可以有效識別出多種中文詞匯,且正確率較高[6,7]。
為了進一步提高手勢識別的準確率,本文提出一種將手指關節的姿態信號與EMG信號融合來判別手勢動作的方法。
由于EMG信號是一種微弱的生物電信號,且在完成手指動作過程中肌肉的參與并不活躍,背景噪聲較大,且皮膚出汗肌肉疲勞等因素對其幅值有著嚴重影響。因此,僅依據EMG信號很難準確地識別出手部動作。本文將表面肌電(surface electro myo graphic,sEMG)信號和手指關節的姿態信號融合,以提高手部動作識別精度。由于采集到的EMG信號和姿態信號都是關于連續時間序列信號,不能直接作為模式分類器的輸入。必須對數據進行相應的預處理,數據分割即活動段提取,并將活動段的數據提取特征用作分類器識別動作的依據。
sEMG的幅值直接反映肌肉的活躍程度,幅值越大,則說明肌肉的收縮強度越大,當EMG信號幅值發生明顯變化且增強時,說明手部有動作,如圖1所示,其中,標記區間的EMG信號對應一類有效動作,標記點1為動作起點,標記點2為動作終點。

圖1 有效動作sEMG信號
目前對sEMG信號活動段檢測的方法主要有滑動平均能量法,短時傅立葉法,基于熵的理論法等[8]。sEMG信號是一種非穩定的隨機信號,其數值在短時間內存在較大的波動性,本文選用滑動平均法可以有效地減弱短時間的隨機波動對EMG信號整體趨勢的影響。結合能量閾值的設定判別手部動作的起始位置,從而提取有效動作所對應的sEMG信號段。
窗口平均能量E計算公式
(1)
式中N為滑動窗口的寬度,即采樣點數,xi為該窗體內第i個采樣點的EMG信號值。
滑動窗口的寬度N不宜太大,否則會降低信號提取的準確性;也不宜太小,否則無法有效過濾短時間波動對信號走勢的影響,本文將N設為200,步長設為1。調整閾值T為
T=m0+b×m1
(2)
式中m0為EMG信號的背景噪聲,即手部無動作時窗口能量的平均值。m1為執行某類動作時的窗口平均能量的最大值。系數b用于調整閾值T的性能,經過前期的實驗數據驗證,將其設為2 %可以得到最佳的活動段分割閾值[9]。若某一時刻t滑動窗內信號的平均能量值首次大于閾值T且持續一定的時間,則認為時刻t是某一動作的起始點;同理若某一時刻t滑動窗內信號的平均能量值首次小于閾值T且持續一定的時間,則認為時刻t是動作的結束點。
目前用于EMG信號特征提取的方法主要有基于時域和頻域的特征提取方法,其中時域特征提取主要是對時域信號進行分析,提取信號的幅值特征,該方法的算法結構簡單,運算復雜度較低,能夠實現對EMG信號的實時分析。本文選用絕對值均值[10]對sEMG信號進行特征提取,其計算公式如下
(3)
式中N為活動段長度,即活動段樣本點個數;Si為該活動段內第i個樣本點的sEMG信號的數值;k為sEMG信號的采樣通道。
姿態信號同樣需要進行特征提取。在處理姿態信號中的角度信息時,需要考慮手指在空間位置上的起始狀態,為實現連續動作的手勢識別,本文將活動段的第一組姿態信號作為該活動段的參考基準。針對角度信號本文采用標準差(standard deviation,SD)作為該活動段的特征值,標準差可以有效地表征一組數據的離散程度,一定程度上可以反映手指在運動過程中的角度行程。這些簡單的特性將在決策樹中作為分類器的輸入
(4)

SVM[11]的基本思想是在高維空間中尋找能夠實現線性可分的最優超平面,多個超平面將空間劃分成多個區域,每個類對應一個區域,在保證分類精度的前提下,盡可能使超平面兩側的空白區域最大化[12]。
設給定線性可分的訓練樣本集為(xi,yi),i=1,2,…,n.xi∈Rd,yi∈{-1,1}為分類標簽號。線性判別函數的一般形式為
g(x)=w·x+b
(5)
分類面方程為
w·x+b=0
(6)
由式(5)和式(6)可知,此時滿足條件:|g(x)|=1的樣本點離分類面最近。構造最優平面時,應使分類間隔2/‖w‖達到最大值,即求‖w‖最小值,而要求分類面將所有樣本正確分類,則需滿足
yi[(w·xi)+b]-1≥ξi,i=1,2,…,n
(7)
因此,滿足上述條件且使‖w‖最小的分類面就是最優分類面。其中,使式(7)中等號成立的那些樣本稱作支持向量。因為它們支撐了最優分類面。這樣求最優分類面就成為在條件(2~7)約束下,求函數φ(w)的最小值
(8)
式中C為懲罰因子,是大于0的實常數,是平衡分類器容錯能力和經驗風險的參數。ξi松弛變量即允許分類出現錯誤。
在此引入Lagrange函數
(9)
式中αi≥0為Lagrange系數。通過分別對w和b求偏微分并令它們等于0,最后可得最優解
(10)
即最優分類面的權系數向量是訓練樣本向量的線性組合。根據Kuhn-Tucker條件,這個優化問題的解須滿足
αi(yi(w·xi+b)-1-ξi)=0
(11)
求解后得到最優分類函數為
(12)
對于非線性的樣本數據,需要將輸入x通過φ(x)映射到一個高維的特征空間,在這個高維空間中存在線性的分類規則,可以構造線性的最優分類超平面。用內積函數K(x,xi)=φ(x)φ(xi)替代最優分類面中的點積,就相當于將原特征空間變換到了另一新的特征空間,此時相應的分類函數式(13)變為
(13)
利用K(x,xi)即核函數將輸入空間映射到一個高維空間,本文核函數選用徑向基核函數
K(x,xi)=exp(‖x-xi‖2/2σ2)
(14)
本文采用一對一的構造方式,組合多個二值分類器來實現多類分類器的構造,如圖2所示。

圖2 “一對一”方式構建的多類分類器
實驗選用Thalmic Labs公司研發的MYO肌電手環采集手臂的肌電信號,該手環由8個EMG傳感器組成,可同步采集8組EMG信號,采樣頻率為200 Hz。內置藍牙模塊,可將采集到的數據通過無線的方式發送至上位機,通過相應的配套軟件實現實時的數據顯示并保存。
手指姿態信號由實驗室自制的簡易數據手套采集,將3個姿態傳感器固定在橡膠手套表面,分別采集大拇指、食指以及中指的姿態信息。利用STM32單片機完成姿態解析,并通過串口上傳至上位機。為簡化后續數據處理,采樣頻率同設為200 Hz。該傳感器可采集三軸加速度和三軸角度等數據,本實驗選用三軸角度信息,作為判別手勢的參考因素。
實驗對象為3名健康男性,年齡均在23~25周歲右利手,無任何神經肌肉系統疾病史。MYO EMG手環的佩戴位置直接影響到采集的肌電信號質量,經前期多次實驗顯示,選取肘關節下方約5 cm處效果最佳,并在實驗前用醫用酒精對佩戴位置進行擦拭,除去灰塵角質皮等。受試者均以舒適的姿態保持坐立,在合適的位置佩戴好手環并穿戴好數據手套(如圖3所示),將手臂平放在桌面上采集約60 s無動作時的EMG信號,用于活動段檢測。隨后要求受試者依次完成“握拳”、“豎拇指”、“剪刀手”、“OK”四類手指動作,所有動作均以手部半握狀態為起始姿勢。每組動作要求重復80次,為避免肌肉疲勞對EMG信號的影響,每重復20次休息5~10 min。在實驗中,盡量保證手部動作的具有一定平穩性,保持執行動作的力度和速度適中。

圖3 數據采集系統
采集到的多通道sEMG信號首先要進行活動段檢測,以確定手勢動作所對應信號段的起點和終點,并求出每組活動段的肌電信號特征值。圖4為受試者在某個時間段依次完成實驗中定義的四類手勢動作時,采集到的8通道sEMG信號及最后的活動段檢測結果。圖中橫軸為樣本序列點數,縱軸為EMG信號的幅度,由上至下CH1~CH8依次是8個EMG傳感器測得的手臂sEMG信號,底部的Energy是8個通道的EMG信號滑動平均能量的平均值。找出執行動作過程中,Energy的最大值m1,并結合實驗前期測得的手部無動作時窗口能量平均值m0,確定能量閾值T的大小,從而提取出手勢動作的活動段。圖5為運動過程中3組姿態傳感器采集的3維角度信息。

圖4 EMG信號活動段檢測

圖5 姿態傳感器3維角度信號
提取檢測出來的活動段數據,并對該部分數據進行特征提取,即分別利用式(3)和式(4)計算出EMG信號活動段的MAV和3維角度信號活動段的SD。表1和表2分別為多組手部動作的EMG信號和角度信號的特征值均值。分別用數字標簽1,2,3,4代表握拳、豎拇指、剪刀手和OK4類手勢。將這些特征值作為分類模型的輸入,四類動作對應的手勢標簽作為模型輸出,用于訓練手勢分類器。

表1 手部動作對應的肌電信號特征值均值表 μV

表2 手部動作對應的姿態信號3維角度特征值均值表 (°)
分類器選用徑向基核函數作為核函數,待定參數為C,γ=1/2σ2,ε,其中,ε控制分類器的容錯能力,直接影響泛化能力和支持向量個數。本文取ε=0.01,懲罰參數C和核函數參數γ分別取2和1。在每組動作對應的特征數據中隨機抽取60 %的樣本作為分類器的訓練集合,剩余樣本作為檢測驗證該方法的可行性。通過訓練好的分類模型對剩余40 %樣本進行分類識別。基于sEMG信號的手勢識別結果如圖6(a)所示,正確率約為94.8 %。基于sEMG信號和姿態信號融合的手勢識別結果如圖6(b)和表3所示,整體正確率達到99.3 %,識別率提高約4.5 %。表3為四類手勢識別結果的混淆矩陣,斜對角線上的數據表示正確識別手勢的樣本個數,每列數據的總和表示識別為該類別樣本的數目;每行則表示了樣本的真實歸屬類別。結果顯示該方法可以有效識別握拳、豎拇指、剪刀手和OK四類動作,且除“剪刀手”手勢外,其余識別率均達到100 %。

圖6 二種方法的手勢識別結果

真實類預測類握拳豎拇指剪刀手OK識別率/%握拳34000100豎拇指03400100剪刀手0033197OK00034100手勢整體識別率:99.3%
實驗表明:將sEMG信號和姿態信號融合,并以“一對一”方式構建的二叉樹型SVM多類分類模型作為分類器的方法可以有效識別手部動作。且該方法實時性強,使用便捷,可實現連續手勢實時在線識別,具有一定的應用前景。