文獻標識碼: A
文章編號: 0258-7998(2013)04-0121-03
隨著信息技術的不斷發展,以用戶為中心的設計理念已經成為人機交互的發展趨勢,用戶可以更方便、自然地使用計算機。3G時代的到來,智能手機、重力感應、無線WiFi(無線局域網通信方式)等一系列新技術的應用也已進入實用階段[1-2]。這些技術不僅使得移動設備的功能更強大,也開創了新的人機交互接口,其中最具代表性的就是基于體感交互的人機接口。
體感交互是通過人的肢體動作變化進行操作的一種人機交互方式。空間手勢是一種自然、直觀、易于學習的人機交互手段,是體感交互的重要組成部分之一。傳統的手勢識別是通過攝像頭捕捉手勢,并利用計算機視覺算法識別手勢,這種方法計算量非常大,需要消耗大量的手持設備系統資源。目前更方便的方法是利用移動設備內置的傳感器(如加速度傳感器、陀螺儀、磁力儀等)來進行識別。利用內置傳感器進行識別的優勢是手勢識別能在設備本身進行,并且識別精度不受燈光條件或者攝像頭質量的影響[3],因此其成本和能耗最低。近年來,移動智能終端發展十分迅速,很多廠商都為自己的產品配備了三軸陀螺儀等體感設備,如最早采用該技術的蘋果iPhone4,這使得利用移動設備內置傳感器開發體感交互應用成為可能。
目前的系統將智能終端作為外設[4],可直接通過WiFi進行通信。使用配備三軸加速計和陀螺儀的智能移動終端捕獲手勢命令,以WiFi網絡作為信息傳遞載體,將手勢命令傳輸到服務器,從而達到在演講時控制幻燈片放映控制的目的。這種基于WiFi和體感交互的演示方式,能克服傳統USB激光筆操作方式單一、接收距離有限等問題,并能提供更好的用戶體驗。
1 系統結構
基于WiFi和體感交互的演示系統由客戶端和服務端兩部分組成,系統總體框架圖如圖1所示。服務端運行在裝有Windows操作系統的計算機上,主要負責監聽客戶端消息以及控制幻燈片的放映;客戶端運行在移動智能終端上,主要負責接收用戶輸入(包括手勢輸入),并且發送命令至服務端。客戶端通過WiFi連接到服務端所在的局域網,從而實現雙方的通信。在設計中,客戶端可以是各個平臺的移動終端,本研究是基于運行iOS操作系統的iPad2平板電腦和iPhone4手機。利用iPad2和iPhone4內置的三軸陀螺儀捕獲數據,并通過識別算法解析為相應的手勢。整個系統包含:體感模塊、手勢識別模塊和基于WiFi的通信模塊。體感層通過移動設備內置的三軸陀螺儀傳感器獲取信息,通過三軸陀螺儀,可以獲得設備在每一時刻三個方向上的加速度值,并針對某一時間段內陀螺儀傳回的加速度值進行分析,即可對手勢動作進行識別。手勢識別層基于體感層獲取的信息,利用訓練好的識別算法識別手勢。通信層將識別結果傳遞給外部設備,以觸發設備進行相應的操作。
2 系統設計
2.1體感層
手勢的選擇和設計不僅影響到用戶體驗,還影響到識別準確率。PYLVANAINEN T認為大規模的手勢集合是不切實際的,因為這么多手勢需要使用者去逐一學習,影響使用效果[1]。LIU J[5]等研究中的識別結果表明,選擇合適的手勢集合對提高識別精度具有重要意義。越復雜的手勢需要定義的特征就越多,雖然能獲得較高的識別率,但是復雜的手勢需要使用者去了解并且記住所對應的意義。
在本文的研究中,主要利用移動設備內置的三軸陀螺儀來捕獲數據,并通過旋轉來設置手勢。考慮到移動設備具有X、Y、Z三軸,本文可定義6個基本的旋轉。
三軸陀螺儀可以測定6個方向的角速度量,多用于航海、航天等導航、定位系統,能夠精確地確定運動物體的方位,目前多用于智能手機。本研究基于Ipad2內置的三軸數字陀螺儀捕獲手勢數據,每隔0.05 s獲取一次X、Y、Z軸方向的加速度。通過對獲取的數據進行分析,即可對表1中定義的手勢動作進行識別。圖2、圖3所示分別為通過三軸陀螺儀捕獲到的向上翻轉手勢、向左翻轉手勢在X、Y、Z軸方向的加速度。
2.2 識別層
在進行識別之前,首先要創建手勢模板庫。模板庫的建立主要步驟如下:
(1) 投影。由于用戶操作的差異性,不同使用者做同一個動作的幅度和角速度有所差別,即使是同一個用戶,不同時間重復同一個動作的幅度和角速度也有不同,這就需要針對基準平面對X、Y、Z三軸方向的加速度進行投影操作。
(2) 濾波。過濾掉樣本中可能存在的噪聲信號,本研究中使用低通濾波。
(3) 歸一化。
(4) 主元分析求取閾值。為了察覺到翻轉的發生,識別層持續捕獲三軸陀螺儀傳感器傳來的數據。傳遞到識別層的數據是一個三維數組,分別對應于陀螺儀X、Y、Z軸的加速度改變。如果數組中某一維的值超過了閾值,就能夠識別出對應于這個軸的某一手勢,即某一翻轉動作。由圖2、圖3可以看出每一個翻轉手勢動作都會產生一個尖峰。如圖2所示向上翻轉時X軸方向的加速度是最大的,經過多次實驗驗證當X軸方向的加速度大于9 m/s2時,可以認為手勢為向上翻轉。
(5) 建立手勢模板庫。考慮到手勢設備的運算能力,為了提高效率,實際運行過程中基于自適應模板匹配的方法進行手勢識別,主要流程如圖4所示。
實驗證明,此種方法能在不影響手勢識別率的情況下降低手勢識別計算量,從而縮短手勢識別時間,讓系統更快地響應用戶,提高用戶體驗。
2.3 通信層
iOS設備通過WiFi接入計算機所在局域網,并通過Socket與計算機進行通信。
系統使用UDP協議作為傳輸層協議進行Socket通信。
本系統的應用層協議報文分為三部分,第一部分為應用標識符,第二部分為命令標示,之后為命令附加信息部分。每一部分信息用中括號“[]”包圍,附加信息部分可根據命令分為多段信息。
3 系統實現
本系統基于XCode開發平臺,并采用Socket和Office對象模型綜合設計與開發。考慮到演示系統的易學性、易用性,在客戶端僅提供文件列表顯示及簡單控制。由于iPad相對于智能手機來說屏幕較大,所有功能都可在一個屏幕中顯示,在客戶端的界面設計上不需分屏設計,便于用戶操作,具有良好的用戶體驗[6]。
文件列表展示區占據界面的三分之二。界面下方三分之一為功能操作區,其中左側為初始設置功能區,負責搜索主機、讀取文件目錄、手勢開關以及倒計時設置。右側為幻燈片放映控制區域,主要負責控制幻燈片的播放和翻頁。
為了免去客戶端和服務端的IP地址輸入步驟,設置局域網內主機搜索功能。客戶端在局域網內發送廣播報文,服務端監聽到廣播報文后發送響應報文,雙方各自記錄對方的IP地址,為后續通信做好準備。
服務端設置幻燈片文件目錄,當監聽到客戶端獲取文件列表的請求時,將文件目錄及文件列表信息發送至客戶端。客戶端接收后,以列表形式展現給用戶,用戶選擇要進行播放的幻燈片文件,并且執行播放操作后,客戶端發送對應的播放命令至服務端,命令中包含要播放的幻燈片文件名以及路徑。服務端收到播放命令時,解析出文件路徑,如果文件存在,則調用Microsoft Office PowerPoint接口啟動幻燈片的播放。
客戶端主要負責接收用戶輸入、展示數據以及發送控制命令。程序啟動后,首先自動搜索主機與局域網內的主機配對。客戶端收到來自服務端的回應后,在界面上顯示遠程主機的IP,并激活“讀取目錄”功能選項。此時,用戶可讀取遠程服務端設置的幻燈片文件目錄中的文件列表,選擇要放映的文件,并通過手勢體感交互來控制幻燈片的播放。當某一方向上的角速度值超過設定的臨界值時,便判定設備在該方向上發生了翻轉。捕獲到設備的翻轉后,在主線程上發送響應命令至服務端,服務端查找當前正在播放的幻燈片,并進行相應操作。同時,也可以通過手勢開關選擇使用功能按鍵進行翻頁操作。
本文設計并實現了一個基于WiFi和體感交互的演示系統。基于智能手持終端系統內置的三軸陀螺儀捕獲手勢數據,通過對手勢數據進行分析實現手勢識別,并提出一種自適應模板匹配方法進行手勢識別,在不降低識別率的情況下提高了識別效率。本文的研究也可以擴展移植應用到各個主流移動平臺上。
參考文獻
[1] PYLVANAINEN T. Accelerometer based gesture recognition using continuous HMMs[C]. IbPRIA, 2005.
[2] NIEZEN G, HANCKE G P.Evaluating and optimising accelerometer-based gesture recognition techniques for mobile devices[C]. AFRICON, 2009.
[3] Wang Xian, TARRIO P, METOLA E, et al. Gesture recognition using mobile phone’s inertial sensors[C].Distributed Computing and Artificial Intelligence,2012.
[4] JANG I, PARK W. A gesture-based control for handheld devices using accelerometer[C].CIARP,2004.
[5] LIU J, WANG Z, ZHONG L,et al. uWave: accelerometer based personalized gesture recognition and its applications[J]. Pervasive and Mobile Computing,2009,5(6):657-675.
[6] 戴立慧.基于WiFi體感交互軟件設計與開發[D].杭州:浙江科技學院,2012.