?

基于FPGA的實時手勢識別系統*

2011-10-20 10:55張永強王從政董中飛左鵬飛
傳感技術學報 2011年11期
關鍵詞:手勢特征提取分類器

張永強,陳 香,王從政,董中飛,左鵬飛

(中國科學技術大學電子科學技術系,合肥 230027)

隨著傳感器技術、通信技術和IC技術的快速發展,人機交互已經從原來的鍵盤、鼠標這種單一的交互模式,迅速發展成為融合多種傳感器,運用多種通信方式的多樣化交互模式[1-2]。手勢識別是當下人機交互領域的熱點研究方向之一[3]。目前,市場上和實驗室里已有的手勢識別系統主要分為基于數據手套和基于計算機視覺的交互系統[4],它們提供了一種和諧自然的人機交互方式。但是,基于數據手套的系統穿戴復雜,價格昂貴,大量推廣比較困難[5]。而基于視覺的系統易受環境干擾,識別率低,不適于大量手勢識別[6]。針對前述兩種手語識別系統的弊端,基于表面肌電和加速度的手勢識別在穿戴和價格方面有著更多優勢,在手勢識別研究中取得了較好的進展[7]。

表面肌電信號是一種可以反映肌肉的活動狀態和強度的電生理信號。不同的手勢執行過程中會伴隨著不同肌肉群的收縮,將表面肌電電極安置在特定的肌肉群位置上,可以檢測到帶有可分性手勢信息的表面肌電信號。表面肌電信號主要反映的是手型信息和手腕伸屈信息,對手指動作的識別有著獨特優勢。例如,Jun-Uk Chu等人對四通道肌電信號使用廣義小波變換進行特征提取,最終實現了10類手勢的識別,識別率不低于93%[8]。加速度傳感器可檢測手臂的空間運動信息,對運動尺度較大的手勢具有較好的區分能力。例如,劉劍鋒等人采用隱馬爾科夫模型作為分類器實現了基于加速計信號的八類大幅度手勢的識別,識別率達88%以上[9]。兩種傳感器在手勢信息描述上有著不同的優勢,將二者有效的結合可以實現較高精度的手勢識別。本人所在實驗室對加速計與表面肌電傳感器信息進行融合,采用多級決策樹算法在PC機上實現了30類以上的典型手語詞和模擬真實情景對話的16個例句的識別[10]。

目前,基于表面肌電和加速度的手勢識別系統多采用PC處理的方式[11-12],很不利于實際場合的應用。因此,開發相應的嵌入式系統,對于該項技術的推廣有著十分重大的意義。FPGA硬件結構完全由用戶自己定義,可以進行大量的并行性運算,更靈活的實現各種算法?;诖?,本文設計了以FPGA為核心的嵌入式系統,進行大量的算法并行化處理,最終實現了多種手勢的快速識別,為將來進一步實現便攜實用的手勢識別系統奠定了基礎。

1 系統實現

FPGA實時手勢識別平臺的實物圖和硬件結構圖分別如圖1和圖2所示。從硬件上,系統分成三個模塊:無線數據采集發送模塊、數據處理模塊和結果顯示模塊。

圖1 手勢識別系統實物圖

圖2 系統硬件結構框圖

1.1 無線數據采集發送模塊

本文所用無線數據采集發送模塊[13]如圖1(a)所示。模塊尺寸為長35 mm,寬20 mm,厚11 mm,把sEMG或ACC的信號采集和數據的無線收發部分組裝在了一起,非常適合穿戴在人體上。

sEMG信號由實驗室自制的sEMG傳感器獲取,ACC信號來自加速計芯片 MMA7361。選用C8051F411為控制器,C8051F411通過自帶的12位ADC對傳感器輸出信號采樣,然后,控制射頻芯片CC2500把數據發射出去。經測定,sEMG傳感器工作時的信噪比保持在20 dB以上(此處信噪比指做手勢產生的sEMG信號幅度與靜止狀態下電極測量的噪聲幅度之比),ACC芯片工作于1.5 gn模式時可以產生分辨率高達800 mV/gn的模擬三軸加速度信號,每個ACC芯片為系統提供來自三個方向的三通道ACC信號。無線通信方面,選用了TI公司的CC2500無線收發芯片,芯片工作穩定,且尺寸較小。由于芯片工作在2.4GHz頻段,故其所需天線的尺寸也比較小,可將天線集成在PCB板上以達到縮小電極體積的目的。同時,CC2500還具有功耗低等優點,有助于降低移動設備的功耗。

如圖3所示,在用戶雙手前臂手臂各放置5個sEMG模塊和1個ACC模塊,就構成了本系統所需的基于sEMG和ACC的16通道無線數據采集前端。

圖3 ACC和SEMG傳感器的放置

1.2 信號處理模塊

本系統信號接收端為兩片 CC2500,直接由FPGA通過SPI接口控制,二者相互獨立工作于兩個頻段,互不干擾。

信號處理模塊主要由FPGA組成,如圖1(b)所示。FPGA選用EP3C10E144,屬于Altera CycloneⅢ系列,具有423Kbit的嵌入式存儲器,10320個邏輯單元(LE),95個用戶I/O管腳和46個硬件乘法器。

基于sEMG信號和ACC信號的手勢識別,在算法流程上分為活動段檢測、特征提取和分類識別三個步驟。FPGA內部功能具體實現框圖如圖4所示。

圖4 FPGA內部模塊框圖

1.2.1 活動段獲取算法實現

信號是否進入活動段,通過監測sEMG信號來決定。多通道sEMG數據經過數據匯總模塊后,以幀為單位發送給活動段監測模塊,每幀中含有5個通道的數據,按時間先后順序沿并行信號線依次發送。幀的同步信號標識每幀的開始,每通道的信號由位的同步信號標識。

活動段檢測算法采用絕對值移動平均(AMA)[14]的方法,其FPGA實現原理如圖5所示。先取得各通道sEMG信號絕對值的和,設置一個累加器1,用幀同步信號作為累加器1的清零端,用位同步信號作為累加器1時鐘,數據取絕對值后流入累加器1,每個幀同步來到時累加器1輸出一次結果。32點移動平均用移位寄存器的結構實現,幀同步信號為移位寄存器提供時鐘,在每個時鐘周期進行一次移位,累加器2加入新進寄存器的值,減去移出寄存器的值,累加的結果與閾值比較。這種移位相加結構實現的活動段檢測效率高,消耗的資源少,在FPGA上實現具有一定的優勢:假如試圖用程序而不是邏輯實現該結構,每次移位需要執行32次賦值操作,而在FPGA中,只需一個時鐘周期就可完成任意點數的移位。本系統使用兩個這樣的活動段監測模塊以實現雙手手勢的獨立并行處理。

圖5 活動段檢測的FPGA實現

1.2.2 特征提取算法實現

對于sEMG信號,采用每通道的絕對值均值作為特征。首先把接收到的每一個數據經匯總后存入外部的SRAM中,當信號進入活動段時,對此時的數據所在的片外SRAM的地址進行標記;當動作完成后,再對此時的數據所在的片外SRAM的地址進行標記。這樣,當一個動作完成時,根據標記的地址,集中的把活動段以內的數據讀出來進行特征提取運算。

ACC信號作用是判別手勢所處的運動狀態與方位,取平均值A=∑Xi/N作為手勢方位的判斷,用一階矩u=∑ |Xi-A|/N判斷運動的劇烈程度。由于求取平均值同求取一階矩十分相似,可以寫成統一的形式F=∑ |Xi-C|/N,求取平均值A時令C=0,求取一階矩u時令C=A。在CPU上,這種處理方式會引來更大的時間開支,因為求取均值的時候做了不必要做的處理。但是在FPGA中只需要做一個這樣的結構,循環兩次就可以先后得到均值和一階矩,恰恰減少了FPGA資源的消耗。實現原理如圖6所示。

圖6 ACC信號特征求解的FPGA實現

由于除法運算會占用大量的邏輯單元和時鐘周期,根據實際情況,整個活動段的ACC點數N不會超過256個,采取把除法變換為乘法的方式,把所有可能出現的N的倒數1/N(0-255)乘以65536(2的16次方)得到65536/N,按對應的存入一個單獨分配的內嵌RAM中,以N為對應數據的地址,發送給內部生成的ROM,就可以在下一個時鐘周期得到65536/N的數值。然后使用內置的硬件乘法器做乘法,同時右移16位,即可在一個時鐘周期里得到運算結果,最低精度為千分之一。通過犧牲一個硬件乘法器和少數存儲單元,換來了幾十倍以上的時間和邏輯單元,并且保證了運算的精度,這種方式對于擁有著豐富硬件乘法器和大量內嵌存儲器的FPGA來說,是十分合理的。

1.2.3 識別算法實現

識別算法分為兩個步驟:①通過ACC特征鎖定手勢動作的方位和運動的劇烈程度,完成預分類;②使用sEMG特征完成最終分類。首先,通過特征提取得到三軸ACC信號的均值和一階矩,再通過三軸ACC信號的均值可以得知當前手勢所處的方位。把三軸ACC信號的一階矩的和同某一閾值作比較,如果小于該閾值,判定該手勢為靜態手勢,否則,判定該手勢為動態手勢。

ACC特征的預分類,可以有效縮小識別范圍,減少運算量。接著,把5通道sEMG的絕對均值組成特征向量,設計正態分布下的貝葉斯分類器[15-16]對手勢動作進行精確的分類識別。分類器的結構如圖7所示。

圖7 分類器結構

其中,X=(x1,x2,…,xd-1,xd)T為特征向量,d為特征維數,wi為類別,gi(X)為類別wi的判別函數,N為類別數。本文的貝葉斯分類器使用最小錯誤判決規則,同時,假定各類別的類條件概率密度函數P(X|wi)滿足多變量正態分布,μi和Σi分別表示X在類別wi下的均值向量和協方差陣。根據文獻[15],可取如下函數作為判別函數:

P(wi)為類別wi發生的先驗概率,這里取每個類別的先驗概率等同,判決函數可以最終簡化為

使用多個樣本對分類器進行訓練,獲得判決函數所需的參數。當前的FPGA手勢識別系統尚未加入操作系統,沒有提供足夠強大的人機界面進行在線訓練,訓練工作仍然通過PC機完成。為了計算方便,我們把判決函數所需的已知參數放在一起組成模板,載入FPGA的自生成ROM中。將當前特征向量進行有限次數的加法、乘法之后,即可得到識別結果。

在單手手勢和雙手手勢的判別上,如果雙手動作的活動段在時域上有重合部分,則判別為雙手手勢。在活動段檢測上,左右手是獨立的,同時進行的。系統設定,無論是單手手勢,還是雙手手勢,退出活動段后會立即進行特征提取和分類識別,然后直接把結果發送給單片機。識別結果用一個字節表示,圖8給出了這個字節的組成和每個bit所代表的含義。單片機通過解析這個字節便可得知所需信息,進一步做出反應。這種方式沒有引入相對于單手手勢識別而言的任何延時,既兼容了單雙手手勢的識別,同時保證了系統的實時性。

圖8 識別結果字節格式定義

1.3 結果顯示模塊

本模塊由單片機和液晶顯示模塊(簡稱LCD)構成,單片機接收到動作識別結果后,以漢字的形式將結果在LCD上顯示出來。系統選用了具有豐富的片上外設的C8051F340單片機,其具有全速USB模塊,可方便的實現單片機與PC的快速數據傳輸,同時多達40個PIO口可方便實現同FPGA的并口通信和對LCD的并口控制。

2 結果與系統性能測試

我們從識別準確率和識別速度兩方面開展相應實驗對系統性能進行測試。

(1)手勢識別準確率測試。選取了中國手語的8個單手詞和8個雙手詞對系統識別率進行測試,手語詞的圖片如圖9所示。其中,單手詞有:你,好,等號,壞,部,山,永遠和現在;雙手詞有:家,人,榜樣,元旦,結婚,坐,今天和強大。

圖9 16個中國手語手勢

每類動作取20個樣本訓練分類器,訓練完成后,將分類器參數載入FPGA中,進行識別率測試。測試過程中,為了統計方便,規定每個動作重復測試20次。實驗選取了3位同學A,B,C作為受試者,被正確識別出的手勢數和識別率如表1所示。從表1可見,本系統實現了對16種手勢動作的95%以上的正確識別。

表1 手勢識別測試結果

(2)手勢識別速度測試。通過配置FPGA,引出一個活動段指示管腳和一個識別結果指示管腳,每次識別時,用示波器測量這兩個管腳電平變化邊沿的時間差,即識別時間(特征提取與分類所需的時間)。對多個時間長度不同的動作測量發現,特征提取和分類所用的時間基本保持在1.4 ms左右。同CPU主頻為2.5GHz,且擁有2G內存的個人計算機相比,運用同樣的算法識別同樣多種類的動作時,FPGA的計算速度約是計算機的4倍,而FPGA目前接入的主時鐘頻率是50 MHz,約為計算機的1/50。經過對總體邏輯結構的分析認為,FPGA進行手勢識別的主要時間消耗在分類器模塊。每次識別過程中,由于參與分類的判別函數個數是一樣多的,因此,分類器模塊消耗的時間總是固定的,致使識別時間基本不變。

FPGA內部資源消耗情況如表2所示。

表2 FPGA資源消耗

3 結論

本文通過安置于人體的無線sEMG傳感模塊和無線三軸ACC傳感模塊,完成數據采集與發送工作。在數據處理上,充分利用FPGA本身的特點,實現了具有FPGA特色的手勢動作模式識別算法。實驗證明,本手勢交互系統可實現多類手勢動作的準確實時識別,且具有便攜的特點,對推廣至其他實際應用場合,或者經過版圖設計、后端仿真等設計流程,最終研制出手勢識別芯片,都具有較高的實用價值。

[1]遲健男,王志良,謝秀貞,等.多點觸摸人機交互技術綜述[J].智能系統學報,2011,6(1):28-37.

[2]徐寶國,何樂生,宋愛國.基于腦電信號的人機交互實驗平臺的設計和應用[J].電子測量與儀器學報,2008,22(1):81-85.

[3]Chen Xiang,Zhang Xu,Zhao Zhangyan,et al.Hand Gesture Recognition Research Based on Surface EMG Sensors and 2D-accelerometers[C]//Wearable Computers,2007:11-14.

[4]Mitra S,Acharya T.Gesture Recognition:A Survey[J].IEEE Transactions on Systems,Man,and Cybernetics,2007,37(3):311-324.

[5]吳江琴,高文,基于DGMM的中國手語識別系統[J].計算機研究與發展,2000,37(5):551-558.

[6]Starner T,Weaver J,Pentland A.Real-Time American Sign Language Recognition Using Desk and Wearable Computer Based Video[J].IEEE Transactions on Pattern Analysis and Machine Intelligence,1998,20(12):1371-1375.

[7]AsghariOskoeiM,Hu H.Myoelectric Control Systems—A Survey[J].BiomedicalSignalProcessing and Control,2007,2(4):275-294.

[8]Jun-Uk Chu,Inhyuk Moon,Mu-Seong Mun.A Real-Time EMG Pattern Recognition System Based on Linear-Nonlinear Feature Projection for a Multifunction Myoelectric Hand[J].IEEE Transactions on Biomedical Engineering,2006,53(11):2232-2239.

[9]Jianfeng Liu,Zhigeng Pan,Xiangcheng Li.An Accelerometer-Based Gesture Recognition Algorithm and its Application for 3D Interaction[J].Computer Science and Information Systems,2010,7(1):177-188.

[10]李云,陳香,張旭,等.基于加速計與表面肌電傳感器信息融合的手語識別方法[J].航天醫學與醫學工程,2010,23(6):419-424.

[11]Anala Pandit,Dhairya Dand,Sisil Mehta,et al.A Simple Wearable Hand Gesture Recognition Device using iMEMS[C]//Soft Computing and Pattern Recognition,2009:592-597.

[12]Chen Xiang,Zhang Xu,Zhao Zhangyan,et al.Multiple Hand Gesture Recognition Based on Surface EMG Signal[C]//International Conference on Bioinformatics and Biomedical Engineering,2007:506-509.

[13]胡巍,趙章琰,陳香,等.無線多通道表面肌電信號采集系統設計[J].電子測量與儀器學報,2009,23(11):30-35.

[14]Chen Xiang,Zhang Xu,Zhao Zhangyan,et al.Multiple Hand Gesture Recognition based on Surface EMG Signal[C]//International Conference on Bioinformatics and Biomedical Engineering,2007:506-509.

[15]孫即祥.現代模式識別[M].長沙:國防科技大學出版社,2002:91-99.

[16]汪增福.模式識別[M].合肥:中國科學技術大學出版社,2010:87-89.

猜你喜歡
手勢特征提取分類器
挑戰!神秘手勢
基于Gazebo仿真環境的ORB特征提取與比對的研究
V字手勢的由來
基于Daubechies(dbN)的飛行器音頻特征提取
基于實例的強分類器快速集成方法
勝利的手勢
Bagging RCSP腦電特征提取算法
加權空-譜與最近鄰分類器相結合的高光譜圖像分類
結合模糊(C+P)均值聚類和SP-V-支持向量機的TSK分類器
基于MED和循環域解調的多故障特征提取
91香蕉高清国产线观看免费-97夜夜澡人人爽人人喊a-99久久久无码国产精品9-国产亚洲日韩欧美综合