周開店,謝 鈞,羅健欣
(解放軍理工大學(xué) 指揮信息系統(tǒng)學(xué)院,江蘇 南京 210007)
基于Leap Motion指尖位置的手勢提取和識別技術(shù)研究
周開店,謝 鈞,羅健欣
(解放軍理工大學(xué) 指揮信息系統(tǒng)學(xué)院,江蘇 南京 210007)
Leap Motion是最近推出的一款比較新穎的手部信息采集設(shè)備,它能夠高精度、高幀率地跟蹤捕獲手部信息,基于此特性,本文闡述了一種基于指尖位置和方向信息進(jìn)行手勢提取和識別的研究方案。采用Leap Motion傳感器進(jìn)行手勢的三維空間坐標(biāo)信息采集,從中提取指尖坐標(biāo)及方向向量信息,建立手勢識別模型,構(gòu)建手勢特征數(shù)據(jù)。對特征數(shù)據(jù)進(jìn)行歸一化處理后輸入到支持向量機進(jìn)行訓(xùn)練,實現(xiàn)對特定手勢的識別。實驗結(jié)果表明,提出的手勢識別方案平均識別精度達(dá)到97.33%,具有較高的準(zhǔn)確性和魯棒性。
手勢識別;Leap Motion;指尖位置;方向信息;支持向量
近年來,手勢識別在眾多領(lǐng)域(如:人機交互、機器人應(yīng)用、電腦游戲、手語翻譯等方面)的廣泛應(yīng)用得到了更多人的關(guān)注。當(dāng)前可用于手勢識別的相對低成本的深度相機有:TOF相機和微軟公司推出的Kinect設(shè)備,通過不同的方法獲取手部的深度信息以提高手勢識別的準(zhǔn)確性。這些方法提供的手勢識別方案均是從深度信息提取的特征值,通用攝像頭采集人手圖像雖然能夠獲得穩(wěn)定的圖像序列乃至深度信息,但提取出的人手信息必須經(jīng)過復(fù)雜的圖像處理與識別過程,難以保證快速、準(zhǔn)確地估計人手姿態(tài),同時它們無法實現(xiàn)近距離的高精度手勢識別[1]。Leap Motion傳感器的推出給手勢識別領(lǐng)域帶來了一種全新的方式,不同于Kinect對視野范圍內(nèi)追蹤到物體的整體框架描述,Leap Motion的目標(biāo)是只針對手部信息的追蹤描述,通過對手部信息包括指尖、關(guān)節(jié)點、方向向量、法向量等的精細(xì)化描述,利用這些信息實現(xiàn)對手勢的特征提取和準(zhǔn)確識別[2]。因此,本文提出了一種基于指尖位置和方向信息的手勢提取和識別方案。
Leap Motion是基于計算機視覺技術(shù)的三維數(shù)據(jù)追蹤傳感器設(shè)備[3]。Leap Motion的追蹤目標(biāo)是針對手部信息的描述,能夠直接計算出指尖、關(guān)節(jié)點等的位置和手掌的方向向量及法向量信息。同時,由于Leap Motion內(nèi)部封裝了完善的識別過程和方法,Leap Motion不需要開發(fā)者使用計算機視覺算法去識別提取手部相關(guān)點的數(shù)據(jù)。相對于Kinect等深度相機,Leap Motion可以以0.01 mm的精度追蹤手部數(shù)據(jù),也就是說它可以高精度地追蹤到手部的微小運動。它的硬件結(jié)構(gòu)主要由兩個高幀率攝像頭、LED燈、紅外濾光器以及一片USB3.0芯片組成,如圖1所示。
圖1 Leap Motion結(jié)構(gòu)圖解
兩個高幀率高清攝像頭可以模擬雙目視覺實現(xiàn)立體拍攝手勢圖像,捕捉傳感器上方25 mm~600 mm之間呈倒立金字塔范圍內(nèi)的信息,然后通過三角測量對空間手部位置信息進(jìn)行三維坐標(biāo)定位,另外Leap Motion利用濾光器將自然光線過濾成紅外光線,在設(shè)備上方形成一個虛擬的平面光線網(wǎng),當(dāng)目標(biāo)對象移動時,就會引起紅外線反射而返回目標(biāo)對象所在的位置和移動方向。同時可以以高達(dá)100 f/s的速度記錄追蹤的手部運動數(shù)據(jù),每一幀包含了每只手的關(guān)鍵部位的位置信息、掌心移動速度、手掌法向量、手指朝向等信息。最終Leap Motion會通過USB接口將捕捉到的靜態(tài)手勢位置、向量信息和動態(tài)手勢移動信息傳送到計算機進(jìn)行后續(xù)加工處理及手勢提取和識別。
與Kinect等類似的設(shè)備相比Leap Motion不提供追蹤到的完整深度圖[4],只返回手部相關(guān)點的三維坐標(biāo)位置信息、方向信息和部分手姿態(tài)特征,例如Circle、Swipe、Screen Tap、Key Tap等姿態(tài)信息。僅利用這些原始數(shù)據(jù)還不能夠滿足對手勢識別的需要,因此需要根據(jù)Leap Motion追蹤手部信息的特性,進(jìn)行構(gòu)建手勢的提取和識別模型。
圖2 手部平面圖
文中構(gòu)建了用于手勢提取和識別的模型,如圖2所示。
(1)手掌中心位置C:描述了三維空間中手掌區(qū)域的粗略中心位置。
(2)手掌的方向:基于兩個單位向量,n是垂直于手掌平面指向手掌內(nèi)側(cè)的法向量,h是手掌中心位置C指向手指方向的方向向量,但是這些追蹤計算得到的數(shù)據(jù)也不是非常精確,取決于手指F1、F2、F3、F4、F5的分布。
(3)指尖的位置Fi,i=1,…,5,描述了三維空間中探測到的指尖位置。
需要注意的是,盡管Leap Motion能夠以很高的精度追蹤可視區(qū)域內(nèi)的手部三維空間位置,但是它并不確定能夠追蹤到全部的手指,這是由于做出手勢動作的時候會存在手指間的互相遮擋和干擾。針對這個問題,Leap Motion會根據(jù)內(nèi)部構(gòu)建的手模型預(yù)估計干擾部分關(guān)鍵點的粗略位置,從而可以得到完整的手部關(guān)鍵點信息,用于后面的特征值提取計算。
為了實現(xiàn)手勢識別,根據(jù)上述手勢追蹤模型定義了如下的手部數(shù)據(jù)特征計算公式:
(1)
式中Di表示指尖位置Fi到手掌心位置坐標(biāo)C的歐式距離,在這里需要將兩點間的三維距離除以比例因子S做歸一化處理。
(2)
(3)
本文選擇如圖3所示G1、G2、G3、G4、G5、G6六組手勢進(jìn)行分析,提取相應(yīng)手勢的相關(guān)點的三維坐標(biāo)信息和方向信息。
圖3 手勢G1至G6示意圖
關(guān)于特征提取方法,在前文中給出了相應(yīng)的特征值D、A、E,包含從Leap Motion提取到的每一個樣本手勢數(shù)據(jù),對于每一組手勢將提取它的特征向量集V=(D,A,E)。
為了進(jìn)一步進(jìn)行手勢識別,需要將D、A、E三個特征向量根據(jù)對應(yīng)的手勢庫分為G類,分類算法采用支持向量機[6]。因此G個類別的樣本就需要設(shè)計G(G-1)/2個SVM分類器。當(dāng)對一個未知樣本進(jìn)行分類時,最后得到最多的類別即為該未知樣本的類別。
實驗的特征訓(xùn)練和識別采用支持向量機(SVM)方案。SVM作為一種二分類模型[7],其基本模型定義為特征空間上的間隔最大的線性分類器,其學(xué)習(xí)策略便是間隔最大化,最終可轉(zhuǎn)化為一個凸二次規(guī)劃問題的求解。支持向量機在解決小樣本、非線性及高維模式識別中有許多特有的優(yōu)勢。對于手勢的分類,需要將提取到的手勢特征向量V看作N維空間中的一個點,手勢特征進(jìn)行分類時可以看作尋找該空間中的最優(yōu)分類平面,最終將不同的手勢特征點V進(jìn)行分割處理,就得到了最終的手勢分類效果。對于簡單的線性問題,能夠直接在該空間中截取相應(yīng)的分割平面,然而在解決問題時遇到更多的是非線性問題,文中的手勢特征分類就屬于非線性問題,因此需要通過非線性變換將其轉(zhuǎn)化為高維空間中的線性問題進(jìn)行處理。
對于標(biāo)準(zhǔn)的支持向量機[8]優(yōu)化問題可以歸結(jié)為一個二次規(guī)劃問題:
(4)
其分類判別函數(shù)為:
(5)
將非線性問題轉(zhuǎn)換為高維空間中的線性問題是通過內(nèi)積式中K(x,xi)核函數(shù)進(jìn)行的,選擇不同的內(nèi)積核函數(shù)對應(yīng)著不同的 SVM算法,因此在使用時需要進(jìn)行核函數(shù)及相應(yīng)參數(shù)的選擇。其核函數(shù)K(x,xi)的選擇對SVM的實現(xiàn)和分類結(jié)果起到重要作用。
核函數(shù)的選擇包括兩部分工作:一是核函數(shù)類型的選擇,二是確定核函數(shù)類型后相關(guān)參數(shù)的選擇。因此選擇恰當(dāng)?shù)暮撕瘮?shù)對本文實驗中的手勢識別精確度有著重要的影響。下面給出SVM的三種常用核函數(shù)。
(1)多項式核函數(shù):
K(x,xi)=(γxTxi+r)d
(6)
(2)徑向基(RBF)核函數(shù):
(7)
(3)Sigmoid核函數(shù):
K(x,xi)=tanh(γxTxi+r)
(8)
在實驗中將分別采取上述不同的核函數(shù)進(jìn)行手勢識別分類,通過對比選取最佳核函數(shù)。在列出的三個核函數(shù)中,多項式核函數(shù)中的參數(shù)d用來設(shè)置多項式核函數(shù)的最高次項次數(shù),在實驗中采用經(jīng)驗值3,參數(shù)r和Sigmoid核的參數(shù)r同樣采用默認(rèn)經(jīng)驗值0。
對結(jié)果起決定性作用的參數(shù)是γ以及懲罰因子C,懲罰因子C是對空間點中離群點的重視程度體現(xiàn),C值越大則表明對其越重視。
對于上述的參數(shù)C、γ選擇擬采用K折交叉驗證和參數(shù)尋優(yōu)遍歷進(jìn)行對比并選定。K折交叉驗證是將總樣本劃分為K個子集,每次將一個子集作為測試集,剩余K-1個子集作為訓(xùn)練集進(jìn)行訓(xùn)練,通過K次的測試,將其平均識別率作為結(jié)果。最佳參數(shù)為參數(shù)尋優(yōu)后得到最高識別率的參數(shù)。得到最佳參數(shù)后對三種核函數(shù)進(jìn)行對比實驗就可以選擇出合適的核函數(shù)。
具體方法為通過Leap Motion分別采集50組單個手勢,共300組數(shù)據(jù),將其分別進(jìn)行三種核函數(shù)的5折交叉驗證和網(wǎng)格參數(shù)尋優(yōu)方法以獲取最佳參數(shù),獲得最佳參數(shù)后再次采集120組手勢數(shù)據(jù),每個手勢20組,作為新測試數(shù)據(jù)驗證其識別準(zhǔn)確率。不同核函數(shù)的網(wǎng)格參數(shù)尋優(yōu)與交叉驗證所得參數(shù) C、γ的關(guān)系如圖4、5、6所示。
圖4 多項式核函數(shù)
圖5 RDF核函數(shù)
圖6 Sigmoid核函數(shù)
表1中給出了三種核函數(shù)通過交叉驗證和參數(shù)尋優(yōu)后得到最佳參數(shù)后,進(jìn)行新測試數(shù)據(jù)驗證識別準(zhǔn)確率的結(jié)果對比。
通過對訓(xùn)練數(shù)據(jù)的交叉驗證結(jié)果和測試數(shù)據(jù)的識別分類結(jié)果準(zhǔn)確率的綜合分析,選用RBF Kernel可以得到較高的識別準(zhǔn)確率,同時從圖4可以看出RBF核函數(shù)有著較好的穩(wěn)定性,參數(shù)較少且易于運算,應(yīng)用相較廣泛。
表1 三種核函數(shù)交叉驗證和參數(shù)尋優(yōu)結(jié)果比較
根據(jù)120組測試數(shù)據(jù)的準(zhǔn)確率基于網(wǎng)格參數(shù)尋優(yōu)遍歷和5折交叉驗證方法得到最佳參數(shù):gamma為0.5,懲罰因子C為32,將此作為模型的最佳參數(shù)進(jìn)行后續(xù)的結(jié)果驗證實驗。
前文的特征提取和特征訓(xùn)練兩部分構(gòu)建了基本的手勢識別模型,下面將通過實驗對模型進(jìn)行驗證。通過Leap Motion傳感器針對每個手勢采集50組數(shù)據(jù),共300組測試數(shù)據(jù)。通過構(gòu)建的模型提取其特征向量并將其輸入SVM進(jìn)行手勢分類識別,實驗結(jié)果如表2所示。
表2 模型驗證結(jié)果
通過對表2中的結(jié)果分析,對于輸入的300組手勢數(shù)據(jù),構(gòu)建的識別模型可以正確識別293組,識別準(zhǔn)確率為97.33%,具有較高的識別率。另外可以看出手勢G2、G3、G4出現(xiàn)了識別差錯,這是由于實驗中做出的手勢G2、G3、G4動作相近,在Leap Motion追蹤手勢時不可避免地出現(xiàn)手指的瞬時重疊導(dǎo)致信息錯位和誤差,從而相互之間會容易產(chǎn)生誤識別現(xiàn)象。
文中構(gòu)建了一種采用Leap Motion傳感器并基于指尖位置和方向信息的手勢提取和識別模型,模型計算量少,效率和精度高,僅需要獲取手部的指尖位置信息和方向信息,即可高效、高精度地識別用戶手勢。實驗結(jié)果表明,該方案可以以較高的平均識別率完成特定的手勢識別,但是會存在相近手勢的手指瞬時重疊引起的誤差導(dǎo)致降低手勢識別率現(xiàn)象。
下一步的工作將針對多指瞬時重疊現(xiàn)象導(dǎo)致的誤差情況,研究結(jié)合Kinect和Leap Motion的多傳感器手勢追蹤解決方案。Kinect傳感器能夠遠(yuǎn)距離地捕獲基于深度圖的手部完整信息[9],而Leap Motion傳感器可以高精度地實現(xiàn)近距離的局部手部信息描述,因此期望提出這種多設(shè)備結(jié)合方案,可以獲取更好的手勢識別效果。
[1] Li Yi. Hand gesture recognition using Kinect[C]. Proceedings of 2012 IEEE 3rd International Conference on Software Engineering and Service Science, 2012: 196-199.
[2] WEICHERT F, BACHMANN D, RUADK B, et al. Analysis of accuracy and robustness of the leap motion controller[J]. Sensors, 2013, 13(5): 6380-6393.
[3] 徐崇斌, 周明全, 沈俊辰,等. 一種基于Leap Motion的直觀體交互技術(shù)[J]. 電子與信息學(xué)報, 2015, 37(2): 353-359.
[4] 吳彩芳,謝鈞,周開店. 基于手勢識別的人機交互技術(shù)研究[J]. 計算機時代, 2016(2):29-32.
[5] 潘佳佳, 徐昆. 基于Leap Motion的三維自由手勢操作[J]. 中國科技論文, 2015, 10(2): 207-212.
[6] 張學(xué)工. 關(guān)于統(tǒng)計學(xué)習(xí)理論與支持向量機[J]. 自動化學(xué)報,2000, 26(1): 32-42.
[7] Wang Jianzhi,Lin Zhiren. LIBSVM: a library for support vector machines[J]. ACM Transactions on Intelligent Systems and Technology, 2011, 2(3): 1-27.
[8] 閻威武,邵惠鶴. 支持向量機和最小二乘支持向量機的比較及應(yīng)用研究[J]. 控制與決策, 2003, 18(3):356-360.
[9] WACHS J P, KOLSCH M, STERN H, et al. Vision-based hand-gesture applications[J]. Communication of the ACM, 2011, 54(2):60-71.
Hand gestureextraction and recognition research based on fingertip position tracked from Leap Motion
Zhou Kaidian,Xie Jun,Luo Jianxin
(School of Command Information System, PLA University of Science and Technology, Nanjing 210007, China)
The Leap Motion is a new kind of hand acquisition devices. It can track and acquire the information of hand pose with high precision and high frame rate. According to this feature, this paper puts forward a research approach about gesture extraction and recognition which is based on the position of fingertips and the orientation of hand. This paper adopts the Leap Motion sensors to collect the three-dimensional coordinate information about hand gesture, extracts the fingertips coordinates and direction vector information from it, and then establishes hand gesture recognition model to construct the feature data. The data must be normalized before being put into the support vector machine (SVM) for training to implement the recognition of specific hand gesture. The experimental results show that the average recognition accuracy of the proposed approach is 97.33%, which has high accuracy and robustness.
gesture recognition; Leap Motion; fingertip position; orientation; support vector machine
TP391.4
A
10.19358/j.issn.1674- 7720.2017.02.016
周開店,謝鈞,羅健欣.基于Leap Motion指尖位置的手勢提取和識別技術(shù)研究[J].微型機與應(yīng)用,2017,36(2):48-51.
2016-09-19)
周開店(1991-),男,碩士研究生,主要研究方向:人機交互、計算機網(wǎng)絡(luò)。
謝鈞(1973-),男,博士,教授,主要研究方向:智能信息處理、計算機網(wǎng)絡(luò)。
羅健欣(1984-),男,博士,講師,主要研究方向:人機交互、信息可視化。