強 威,李柏輝,張鈞杰,劉 凱,高宏峰
(河南科技大學 信息工程學院,河南 洛陽 471023)
隨著時代進步、科學發(fā)展,人們越來越偏向于智能、舒適的生活、工作方式。人們在尋找各種方式將電腦設備進行簡化改進,力求能脫離各種設備的線纜束縛,所以無線鍵盤鼠標、藍牙音響應運而生。然而,使用鍵盤鼠標來控制電腦的方式依然把人們約束在小范圍內(nèi),離開了它們就無法操控電腦。后來,各種體感設備像雨后的春筍一樣,不斷涌現(xiàn)在人們面前,像站在攝像頭前的體感游戲、使用光電傳感器的空中鼠標等等??墒沁@些產(chǎn)品在使用上有諸多限制,攝像頭體感系統(tǒng)只能在攝像頭前面做動作才能識別,光電傳感器體感設備易受強光干擾[1]。
本系統(tǒng)魔幻手套使用新型的設計理念,一方面運動傳感器MPU6050和彎曲電阻相結合實現(xiàn)移動電腦光標和單擊、雙擊的操作;另一方面將MPU6050獲取的加速度數(shù)據(jù)作為動作特征,選用在語音識別應用廣泛的隱馬爾科夫模型(HMM)作為手勢識別模型對動作進行訓練和識別。綜合以上兩個方面的功能,設計了鼠標模式和手勢識別模式,兩種模式之間通過特定動作進行切換。
本系統(tǒng)由手套和接收端組成,圖1是手套的結構框圖。采用意法半導體公司的STM32F103C8T6作為主控芯片,負責讀取運動傳感器采集的加速度數(shù)據(jù),然后通過NRF無線傳輸模塊向接收端發(fā)送數(shù)據(jù)。運動傳感器MPU6050是一款9軸運動傳感器,集成了3軸MEMS陀螺儀,3軸加速度計以及一個可擴展的數(shù)字運動處理器DMP(Digital Motion Processor),通過I2C接口和主芯片相連。
圖1 手套主機結構框圖
flex彎曲電阻傳感器可以把手指的彎曲程度轉(zhuǎn)換成9 000 Ω~22 000 Ω之間的阻值,再通過分壓式電路轉(zhuǎn)換成相應的電壓值。采用NORDIC公司生產(chǎn)的NRF24L01無線通信芯片,實現(xiàn)主機到接收端點對點的通信。另外,為了老師和演講者使用方便,作品中加了激光燈,通過固定的動作來開啟和關閉。
接收端硬件主要由NRF24L01無線接收模塊和CH340串口轉(zhuǎn)換芯片組成,其中NRF24L01用來接收手套發(fā)出的指令,再經(jīng)過CH340芯片將信號轉(zhuǎn)換為串口輸出的形式,方便計算機讀取數(shù)據(jù)。計算機讀取到數(shù)據(jù)之后進行判斷處理,完成手勢動作的響應。
本系統(tǒng)主要包括兩個方面的功能,一是模擬鼠標,通過MPU6050獲取手掌移動時的X和Y軸的加速度數(shù)據(jù),經(jīng)過濾波后發(fā)送到接收端,然后調(diào)用Windows系統(tǒng)中相應API,控制電腦光標的移動,彎曲電阻獲取手指彎曲狀態(tài)后,由接收端實現(xiàn)單擊、雙擊的操作;二是手勢識別,識別流程如圖2所示,用戶通過主機設備為手勢集合中的每個動作采集訓練樣本,經(jīng)過預處理后發(fā)送到接收端,然后經(jīng)過特征提取后作為訓練樣本用于訓練隱馬爾科夫模型(HMM),經(jīng)過訓練后的模型即可實時識別用戶的手勢。這些手勢可以映射成不同的指令控制一些應用。
圖2 手勢識別流程
整個手勢識別過程的核心在于數(shù)據(jù)的特征提取、HMM模型學習和識別兩個部分。
MPU6050傳感器可以采集到X、Y和Z軸的加速度,Z軸方向上的加速度有重力加速度的干擾,僅僅取X和Y軸的加速度數(shù)據(jù)作為手勢特征。為了降低識別過程的復雜度,取數(shù)據(jù)X和Y軸加速度的正弦值為特征值,即:
加速度傳感器數(shù)據(jù)與語音數(shù)據(jù)類似,都是時序序列,因此本系統(tǒng)選用在語音識別領域應用廣泛的隱馬爾科夫模型作為手勢識別模型。隱馬爾可夫模型(HMM)是基于馬爾科夫鏈而開發(fā)的。在實際問題中,人們觀測到的現(xiàn)實不一定總是與狀態(tài)相對應,而是以概率分布為基礎的。它是一個雙重隨機過程,一個是馬爾科夫鏈,它是基本隨機過程,描述狀態(tài)的轉(zhuǎn)移。另一個隨機過程,通過統(tǒng)計來描述狀態(tài)和觀察值之間的對應關系[2]。
一個隱馬爾科夫模型分為兩部分,一是馬爾科夫鏈,用π,A描述輸出狀態(tài)序列;二是隨機過程,由B描述,產(chǎn)生觀察值序列,所以HMM模型可以寫成一個三元組(π, A, B)[3]。如果一個系統(tǒng)可以作為HMM模型被描述,就可以用來解決三個基本問題:使用前向算法(forward algorithm),針對一個觀察序列匹配最可能的系統(tǒng);使用Viterbi算法,對于一個已生成的觀察序列,確定最可能的隱藏狀態(tài)序列;使用前向-后向算法(forward-backward algorithm),針對已生成的觀察序列,決定最可能的模型參數(shù)。
算法主要分為兩步:
第1步:使用前向后向算法對經(jīng)過特征提取的加速度序列,即觀察值序列,進行訓練學習得到該手勢對應的HMM模型參數(shù)。
第2步:使用前向算法將手勢特征序列作為輸入,計算產(chǎn)生此序列的概率,找出它最大時的模型,該模型對應的手勢即為識別結果。
本系統(tǒng)設計了10個字母和5個符號共15種手勢,并對其進行了測試,結果表明能達到很高的識別率。如圖3所示,圓點表示手勢開始,箭頭表示手勢軌跡。每個動作要求一次性做完,中間不能有停頓,由大拇指彎曲動作發(fā)送數(shù)據(jù)起始和結束信號。
圖3 手勢列表
為驗證系統(tǒng)的識別效果,每種動作采集50組數(shù)據(jù),其中10組用于訓練HMM模型,40組用于識別。識別效果如圖4所示。手勢從左到右依次對應1-15的編號。
圖4 實驗結果
本系統(tǒng)融合了鼠標控制和手勢識別兩個方面的功能,以更加多樣化的方式實現(xiàn)了對計算機操控,打破了傳統(tǒng)鼠標操作的局限性。在人際交互愈來愈人性化、隨意化、簡單化的今天,本系統(tǒng)具有非常廣闊的市場前景。