徐 峰,劉婷薇,李 平,朱蓉蓉,姜昊辰
(吉林大學 通信工程學院,吉林 長春 130012)
基于LabVIEW與MATLAB混合編程的手勢識別系統
徐 峰,劉婷薇,李 平,朱蓉蓉,姜昊辰
(吉林大學 通信工程學院,吉林 長春 130012)
本文針對傳統手勢識別系統難以應用于醫療領域的不足,基于LabVIEW與MATLAB的混合編程,設計了一種基于肌電信號的識別手勢系統。對手勢識別系統設計中的關鍵問題進行了探討。利用醫用電極片對肌電信號進行采集,經硬件電路放大濾波等預處理后通過高速采集卡送入電腦。將LabVIEW與Matlab相結合,提取和分析不同手勢的時頻特征分量,并進行歸一化處理后,建立訓練集,根據KNN算法設計并實現基于肌電信號的手勢識別系統。該系統能夠達到較高的識別準確率。
LaBVIEW;MATLAB節點;肌電信號;手勢識別;KNN
20世紀60年代以來,隨著微型計算機技術和新的電子技術的不斷發展,手勢識別作為一種應用十分廣泛的人機交互技術也取得了很大的進步。目前手勢識別領域研究較成熟的裝置主要為視頻捕捉型[1],這種類型已商用于娛樂設備及智能家居方面,但其識別準確度不高,不易識別三維空間的動作,且很少能應用于醫療或殘疾人輔助設施上。針對這一現象,筆者將手勢識別與人體自身產生的肌電信號相結合,來實現基于肌電信[2]的手勢識別系統,這種系統由人體動作源頭出發,可以較精確的識別出人體的動作手勢。而且,人體的動作是由肌電信號所誘發的,因此,通過對肌電信號規律的探討,可以將肌電信號手勢識別系統應用至殘疾人的輔助假肢設備。
采集肌電信號共分為插入式和貼片式兩種,插入式采集雖然能采集到更穩定的肌電信號但會對使用者造成一定的傷害。因此,筆者將表面肌電信號(sEMG,surface electromyogram)與手勢識別技術相結合,用醫用電極片采集肌肉表面肌電信號,并基于LabVIEW和MATLAB混合編程,設計并實現人體手勢識別系統,這種模式提高了手勢識別的方便性及安全性,且考慮到了手勢識別技術在臨床醫學、康復治療方面的應用前景。研究成果可以擴展應用至殘疾人的肌電假肢、聾啞人的手語翻譯器、智能家居等方面,應用前景十分廣泛。
手勢識別系統的設計框圖如圖1所示。該系統總體功能分為采集部分、硬件處理部分以及軟件識別部分。采集部分主要利用醫用扣式電極片對人體做手勢時的肌電信號進行采集。然后將采集到的肌電信號通過醫用電極線送入硬件處理電路。硬件處理電路主要對采集的信號進行濾波放大的預處理。經過處理之后再將信號通過采集卡的模數轉換送入電腦,在電腦中利用labVIEW軟件對信號進行50 Hz工頻濾波以及小波去噪,并提取出不同手勢的肌電信號特征分量。再采用線性函數將特征分量歸一化后,最終利用基于最小歐氏距離原理的K最近鄰(KNN,K-NearestNeighbor)分類算法建立特征空間,并對不同手勢信號進行分類,從而實現對當前人體手勢進行實時識別。

圖1 系統總框圖
1.1 肌電信號采集部分
人體肌電信號屬于復雜的生物電信號,頻率一般在10~300 Hz之間,幅度在1~5 mV之間,比較微弱。它是在人體將要做出動作前,由人體的神經元發出并送至神經末梢引發肌肉的收縮,從而實現相應動作。因此只要人體的肌肉收縮,做出動作,電極片就可以在合適的位置采集到相應的肌電信號。本系統使用三組電極片來采集肌電信號。其中將兩組電極片分別放置于前臂的指伸肌和橈側腕長伸肌肉的不同位置以采集肌電電勢差作為輸入信號,經查詢相關資料,得知這兩塊人體肌肉主要負責人體手部動作。另一組電極片放置在無肌肉的地方作為參考點。詳細的肌肉采集點如圖2所示。本系統的采集線采用了終端為三環耳機插頭的電極線,并在硬件電路中焊接配套三環耳機插孔,這種方式利用了三環耳機左聲道、右聲道、參考點的原理,將電信號通過電極線的左右聲道傳至電路,作為信號輸入。而且這種方式的采集端插頭插孔能夠緊密貼合,可以保持采集線的穩定,避免了因電極線的晃動而對肌電信號產生的干擾。

圖2 肌肉采集部位
1.2 硬件電路設計
肌電信號經采集后不僅微弱不穩定,而且伴有有較大的噪聲和干擾,因此需要對提取的信號進行放大,濾波,隔離等處理[3]。系統硬件電路整體框架的設計如圖3所示。電路選取高精度儀表放大器AD620作為差分放大部分[4],該部分可以抑制零點漂移及噪聲干擾。肌電信號通過差分放大電路的去噪后,再通過截止頻率為300 Hz的低通濾波器將高頻干擾分量除去,從而獲得有效的肌電信號。為了更好地觀察處理肌電信號,本系統用基于LM358的放大電路將其進行二次放大以便獲取伏量級的電信號。此外,筆者還設計了截止頻率為20 Hz的高通濾波電路,來減少測量過程中由皮膚和電極之間移動的偽差產生的低頻干擾。最后添加入了光耦隔離電路部分,有效地防止了因有電的連接而引起的干擾,且保護了前端的硬件電路。經過以上硬件部分的處理,我們即可獲取質量較高的有效肌電信號,為后期的處理和識別提供了基礎。

圖3 硬件處理整體結構框圖
1.3 軟件總體設計
LabVIEW是基于圖形化編程語言(G語言)的開發環境,是由美國國家儀器(NI,National Instruments)公司研制開發。內含功能強大的函數庫,而且提供很多外觀與傳統儀器的控件,可使用戶更方便的創建用戶界面。不僅如此,LabVIEW還含有DAQ助手控件,用戶在軟件程序面板中加入該控件后就可以直接從NI采集卡中獲取輸出的信號,無需進行接口聯調,方便實用。因此,我們利用LabVIEW的強大功能設計了實時手勢識別系統[5]。
采集到的肌電信號通過前期硬件預處理后,需要將其傳至電腦端進行進一步的處理及算法識別。本系統采用了NI公司出品的USB-6008采集卡,該采集卡能在很短的時間內對數據進行基本的采集測量,能夠滿足本系統對實時識別的要求。肌電信號經過采集卡的A/D轉換后經USB口傳入電腦,在PC端可利用NI公司出品的LabVIEW軟件,調用軟件自帶的DAQ助手[6],即可從采集卡中實時獲取采集的信號,在DAQ助手后端添加處理控件,即可對其進行信號處理。LabVIEW軟件不僅可以實現實時采集處理,還能夠在軟件程序面板中添加MATLAB節點,將MATLAB強大的計算功能應用至LabVIEW,實現LabVIEW與MATLAB的混合編程。筆者將LabVIEW與MATLAB的結合應用于本識別系統,可以實時有效地采集肌電信號并提取出肌電信號特征值,根據得到的特征量編寫識別算法,能夠較為準確地識別出人體的不同動作手勢[7]。
1.4 50 Hz工頻去噪
頻率為50 Hz的市電電壓,會以電磁波的形式對外輻射,此現象將對外界的電子設備造成干擾。肌電信號微弱且不穩定,更易被工頻信號所影響。所以識別系統需要去除這一干擾對肌電信號造成的影響,并盡量保留附近頻段的有效信息。考慮到以上原因,本系統在LabVIEW平臺提供的控制程序框圖中調用MATLAB節點,編寫陷波器程序,能夠基本濾除采集到的肌電信號中50 Hz工頻的干擾。
1.5 小波去噪
近年來,小波變換的理論得到了非常迅速的發展。它擁有良好的時頻特性,適合應用于sEMG等非穩定信號的分析。小波變換的原理思想與短時傅里葉變換(STFT,short-time Fourier transform)局部化的思想相類似,但是不同的是它能夠為非穩定信號提供一個隨著頻率而變化的時頻窗口。小波變換通過伸縮平移運算對信號進行多尺度細化,將信號高頻部分時間細分,低頻部分頻率細分,自適應的對信號進行分析,能夠提取信號的細節信息。基于小波變換這樣的特點,將其應用至信號去噪的方面,小波去噪實質上類似于對信號進行濾波,它既可以濾去信號的高頻干擾信號,還可以成功的保留有效信號的特征,即能抑制信號的無用部分,且可恢復信號的有用部分[8]。這種去噪方式也因此廣泛應用于圖像、聲音等信號的處理。
本系統采用了給定閾值去噪處理的方法,并選取半軟閾值函數。這種方法可以獲取較為準確的閾值[6]且可以兼顧硬閾值與軟閾值的優點[9]。其表達式如下:

其中,0 經過以上小波去噪的處理,采集到的信號,有用分量將強,其中的波形中覆蓋的噪聲和毛刺減少,提高了信號的有效性。 2.1 系統界面的實現 筆者在LabVIEW實驗平臺中設計并實現了手勢識別系統,系統界面如圖4所示。該界面可顯示當前采集到的肌電信號濾前濾后的時域、頻域波形和部分特征值,且可以顯示出本系統對采集到的肌電信號類別的判斷識別。 圖4 識別系統界面 2.2 LabVIEW調用Matlab節點 Matlab具有強大的數值分析能力,我們在LabVIEW中調用MATLAB節點[10],利用MATLAB對肌電信號的特征分量進行算法編程,以實現手勢的正確識別。調用過程為在LabVIEW中添加函數控件-數學-腳本與公式-MATLAB節點。LabVIEW調用MATLAB節點的部分程序如圖5所示。 2.3 手勢識別算法 本系統實現手勢識別功能需要兩部分。首先采用移動平均法來確定信號的起點和終點,以獲取肌電信號的有效活動段。準確判斷信號的起終點,可以使系統提取出有效的特征分量,以便系統準確的對不同手勢進行分類識別。移動平均法是根據采集到的肌電信序列的幅值是否超過閾值來確定起終點,簡單實用可以滿足系統實時判別的要求。具體公式如下: 圖5 部分程序框圖 移動平均法即先求出不同手勢信號幅度的均方值。H為采集通道數,SEMGraw(k)(i)為實時的采集信號。取窗W=64得SEMGM_A(i),即信號的移動平均值。TH為所設幅度閾值,當信號移動平均值大于幅度閾值,則為活動段信號,若小于則置為0去除[11]。 系統判斷出信號的活動段后即可進行特征提取及識別算法分類。本系統的核心算法為KNN分類算法[12],即為了判定未知樣本的類別,采集訓練樣本建立訓練集,提取訓練集中不同種類的歸一化特征分量建立特征空間。系統采集到未知樣本后,計算未知樣本在特征空間中與各維的歐式距離,并以最鄰近者的類別作為判斷未知樣本類別的依據。為了避免樣本過大導致誤判的情況,筆者采用權值的方法來進行改進,與該樣本距離小的鄰居權值大,與該樣本距離大的鄰居權值則相對較小。此算法主要分為3個步驟: 1)算距離:給定測試對象即采集到的肌電信號,計算它與訓練集中的每個對象的距離; 2)找鄰居:圈定距離最近的k個訓練對象,作為測試對象的近鄰; 3)做分類:根據這k個近鄰歸屬的主要類別,來對送入的信號進行分類,判斷動作類型[13]。 筆者經過大量的試驗采集,對實驗數據的時頻特征進行分析后選定5個特征分量[14]來作為識別依據,具體公式[15]如下: 2.4 特征值處理 由于特征參量的變化范圍及量級不同,運用KNN算法時需要對特征數據進行歸一化的處理,否則較大量級的特征參數的變化就回掩蓋住較小量級特征參數的變化[16]。目前,較為常見的方法有取線性函數轉換、對數函數轉換和反正切函數轉換。其中對數函數和反正切函數的轉換會導致小數據放大大數據縮小的效果,不能滿足本系統線性處理的要求。因此,對于特征值的歸一化處理需要用到線性函數轉換,具體轉換公式如下: 公式中 x,y分別是轉換前后的值,MaxValue、MinValue分別為樣本的最大值和最小值。通過以上線性函數對數據的歸一化處理,可以實現對數據等比例的放大縮小,使其范圍在0~1之間。 另外,每個特征參數對數據的分類貢獻不一致,因此筆者利用數學建模中評價類紋理的解決方法,對每個特征參量的貢獻度進行評估,確定出各自的權值。最后將各特征參量乘以對應權值以得到統計平均值。經過對數據的歸一化及權值處理后,即可獲得分類手勢的特征閾值,以更準確的識別未知信號的手勢類別。 在手勢識別系統中,設置采樣頻率為1 000,采樣點數為500。每類動作模式以1 s做一次動作,30 s為一組進行采集,采集多組數據建立訓練集。之后對訓練集中數據進行時頻特征分析比較。經過大量的數據統計后,發現各手勢的時頻特征存在可以區分的差異。目前系統能夠識別的手勢種類為石頭,剪刀,布,擺手4種手勢,且識別率平均在92%以上,具體手勢動作如圖6所示。 圖6 分類手勢圖 筆者對實驗數據及結果進行了統計。手勢特征數據對比及系統對手勢識別成功率如表1所示,從表中可見,不同手勢在時頻域的特征參量有各自的特征。能夠通過這些特征參量進行算法分類,來用于識別采集到的未知手勢。 表1 各手勢特征值及識別率 文中介紹了基于LabVIEW與MATLAB混合編程的肌電信號手勢識別系統的設計實現過程。該系統不僅可以實現對肌電信號的實時采集處理,而且成功地利用LabVIEW與MATLAB的聯調,提取出了有效的肌電信號特征值。在對特征值的分析利用中,考慮到多個參數變化范圍較大的現象,筆者結合了數學建模中評價類紋理的解決方法,對特征值進行了歸一化處理。最后,根據KNN識別分類算法實現了對不同手勢的識別判斷。大量實驗數據表明,系統能夠較為準確地識別出人體的不同動作手勢,主要有石頭、剪刀、布和擺手等幾個動作,識別準確率能達到92%以上,具備高效性和實時性。同時,本系統是通過皮膚表面肌電信號對手勢進行的識別,肌電信號是引起手勢動作的源頭。因此,本識別系統可以廣泛地應用到醫療康復系統中,為人們的生活提供更多的便利,有更好的應用前景。 [1]侯祖貴.基于慣性傳感器的人體動作分析與識別[D].哈爾濱:哈爾濱工程大學,2013. [2]丁其川,趙新剛,韓建達.基于肌電信號容錯分類的手部動作識別[J].機器人,2015(1):9-16. [3]李成凱,席旭剛,王俊偉,等.表面肌電信號采集系統設計[J].杭州電子科技大學學報:自然科學版,2015(2):34-37. [4]張琳琳.表面肌電信號采集電路的設計與實現[J].硅谷,2015(2):28-29. [5]孟盈盈.基于LabVIEW的數據采集系統教學儀器的設計[D].南寧:廣西大學,2012. [6]王春紅.基于LABVIEW的表面肌電信號采集系統設計[J].河南科技,2013(13):6-7. [7]王紅旗,毛啊敏,李林偉.基于線性判別分析的表面肌電信號特征識別 [J].河南理工大學學報:自然科學版,2015(6):831-835. [8]任杰.基于小波變換的表面肌電信號去噪方法[J].科技信息,2011(27):476-477. [9]張德峰.MATLAB小波分析[M].北京:機械工業出版社,2011. [10]王桔,丁銳,洪梅.基于LabVIEW的面部表情識別系統的設計[J].吉林大學學報:信息科學版,2015(6):714-718. [11]尚小晶.肌電-運動關系建模與運動模式識別研究[D].長春:吉林大學,2012. [12]RiilloF,QuitadamoLR,CavriniF,etal.Optimization of EMG-based hand gesture recognition:Supervised vs.unsupervised data preprocessing on healthy subjects and transradial amputees[J].Biomedical SignalProcessing&Control,2014,14(1):117-125. [13]何樂生,宋愛國.一種基于肌電信號的動作起始時刻識別方法[J].數據采集與處理,2006(3):266-271. [14]Kim J,Mastnik S,André E.EMG-based hand gesture recognition for realtime biosignal interfacing [C]//Proceedings of the 13th international conference on Intelligentuser interfaces.ACM,2008:30-39. [15]吳冬梅,孫欣,張志成,等.表面肌電信號的分析和特征提取 [J].中國組織工程研究與臨床康復,2010,43:8073-8076. [16]徐仔波,陳文超,高靜懷,等.一種改進的多通道盲信號解相關算法[J].工程數學學報,2011(1):15-20. A handgesture recognition system based on the hybrid programming of LabVIEW and MATLAB XU Feng,LIU Ting-wei,LI Ping,ZHU Rong-rong,JIANG Hao-chen The traditional gesture recognition system is difficult to apply to the medical filed.This paper designs a handgesture recognition system based on EMG with a hybrid programming of LabVIEW and matlab.This paper discusses the key problem about the design of Hand-gesture Recognition System,and proposes a method to collect electromyographic signals(EMG)with medical electrode slices,then make the pretreatments by the hardware circuits such as differential amplifier and filtering.After these processing,the EMG was sent to PC using the high-speed data acquisition card.This paper suggests that it should extract and analyze the time-frequency characteristics of different gestures,then establish a training set with LabVIEW and matlab combined.Finally the paper explains a way to design and set up a handgesture recognition system based on EMG according to the K-Nearest-Neighbor(KNN)algorithm. so as to achieve a higher recognition accuracy. LaBVIEW;MATLAB script;electromyographic signal(EMG);handgesture recognition;KNearest-Neighbor(KNN) TP391.4 :A :1674-6236(2017)08-0032-05 2016-04-10稿件編號:201604091 吉林大學2015年國家級"大學生創新創業訓練計劃"基金資助項目(2015520651) 徐 峰(1966—),男,江蘇常熟人 ,碩士,工程師。研究方向:電子技術領域實驗教學和科研。2 手勢識別系統的實現





3 結果分析


4 結束語
(College of Communication Engineering,Jilin University,Changchun 130012,China)