周開店,謝鈞,羅健欣
?。ń夥跑娎砉ご髮W(xué) 指揮信息系統(tǒng)學(xué)院,江蘇 南京 210007)
摘要:Leap Motion是最近推出的一款比較新穎的手部信息采集設(shè)備,它能夠高精度、高幀率地跟蹤捕獲手部信息,基于此特性,本文闡述了一種基于指尖位置和方向信息進(jìn)行手勢(shì)提取和識(shí)別的研究方案。采用Leap Motion傳感器進(jìn)行手勢(shì)的三維空間坐標(biāo)信息采集,從中提取指尖坐標(biāo)及方向向量信息,建立手勢(shì)識(shí)別模型,構(gòu)建手勢(shì)特征數(shù)據(jù)。對(duì)特征數(shù)據(jù)進(jìn)行歸一化處理后輸入到支持向量機(jī)進(jìn)行訓(xùn)練,實(shí)現(xiàn)對(duì)特定手勢(shì)的識(shí)別。實(shí)驗(yàn)結(jié)果表明,提出的手勢(shì)識(shí)別方案平均識(shí)別精度達(dá)到97.33%,具有較高的準(zhǔn)確性和魯棒性。
關(guān)鍵詞:手勢(shì)識(shí)別;Leap Motion;指尖位置;方向信息;支持向量
中圖分類號(hào):TP391.4文獻(xiàn)標(biāo)識(shí)碼:ADOI: 10.19358/j.issn.1674-7720.2017.02.016
引用格式:周開店,謝鈞,羅健欣.基于Leap Motion指尖位置的手勢(shì)提取和識(shí)別技術(shù)研究[J].微型機(jī)與應(yīng)用,2017,36(2):48-51.
0引言
近年來,手勢(shì)識(shí)別在眾多領(lǐng)域(如:人機(jī)交互、機(jī)器人應(yīng)用、電腦游戲、手語翻譯等方面)的廣泛應(yīng)用得到了更多人的關(guān)注。當(dāng)前可用于手勢(shì)識(shí)別的相對(duì)低成本的深度相機(jī)有:TOF相機(jī)和微軟公司推出的Kinect設(shè)備,通過不同的方法獲取手部的深度信息以提高手勢(shì)識(shí)別的準(zhǔn)確性。這些方法提供的手勢(shì)識(shí)別方案均是從深度信息提取的特征值,通用攝像頭采集人手圖像雖然能夠獲得穩(wěn)定的圖像序列乃至深度信息,但提取出的人手信息必須經(jīng)過復(fù)雜的圖像處理與識(shí)別過程,難以保證快速、準(zhǔn)確地估計(jì)人手姿態(tài),同時(shí)它們無法實(shí)現(xiàn)近距離的高精度手勢(shì)識(shí)別[1]。Leap Motion傳感器的推出給手勢(shì)識(shí)別領(lǐng)域帶來了一種全新的方式,不同于Kinect對(duì)視野范圍內(nèi)追蹤到物體的整體框架描述,Leap Motion的目標(biāo)是只針對(duì)手部信息的追蹤描述,通過對(duì)手部信息包括指尖、關(guān)節(jié)點(diǎn)、方向向量、法向量等的精細(xì)化描述,利用這些信息實(shí)現(xiàn)對(duì)手勢(shì)的特征提取和準(zhǔn)確識(shí)別[2]。因此,本文提出了一種基于指尖位置和方向信息的手勢(shì)提取和識(shí)別方案。
1Leap Motion結(jié)構(gòu)分析
Leap Motion是基于計(jì)算機(jī)視覺技術(shù)的三維數(shù)據(jù)追蹤傳感器設(shè)備[3]。Leap Motion的追蹤目標(biāo)是針對(duì)手部信息的描述,能夠直接計(jì)算出指尖、關(guān)節(jié)點(diǎn)等的位置和手掌的方向向量及法向量信息。同時(shí),由于Leap Motion內(nèi)部封裝了完善的識(shí)別過程和方法,Leap Motion不需要開發(fā)者使用計(jì)算機(jī)視覺算法去識(shí)別提取手部相關(guān)點(diǎn)的數(shù)據(jù)。相對(duì)于Kinect等深度相機(jī),Leap Motion可以以0.01 mm的精度追蹤手部數(shù)據(jù),也就是說它可以高精度地追蹤到手部的微小運(yùn)動(dòng)。它的硬件結(jié)構(gòu)主要由兩個(gè)高幀率攝像頭、LED燈、紅外濾光器以及一片USB3.0芯片組成,如圖1所示。
兩個(gè)高幀率高清攝像頭可以模擬雙目視覺實(shí)現(xiàn)立體拍攝手勢(shì)圖像,捕捉傳感器上方25 mm~600 mm之間呈倒立金字塔范圍內(nèi)的信息,然后通過三角測(cè)量對(duì)空間手部位置信息進(jìn)行三維坐標(biāo)定位,另外Leap Motion利用濾光器將自然光線過濾成紅外光線,在設(shè)備上方形成一個(gè)虛擬的平面光線網(wǎng),當(dāng)目標(biāo)對(duì)象移動(dòng)時(shí),就會(huì)引起紅外線反射而返回目標(biāo)對(duì)象所在的位置和移動(dòng)方向。同時(shí)可以以高達(dá)100 f/s的速度記錄追蹤的手部運(yùn)動(dòng)數(shù)據(jù),每一幀包含了每只手的關(guān)鍵部位的位置信息、掌心移動(dòng)速度、手掌法向量、手指朝向等信息。最終Leap Motion會(huì)通過USB接口將捕捉到的靜態(tài)手勢(shì)位置、向量信息和動(dòng)態(tài)手勢(shì)移動(dòng)信息傳送到計(jì)算機(jī)進(jìn)行后續(xù)加工處理及手勢(shì)提取和識(shí)別。
2手勢(shì)特征分析和模型構(gòu)建
與Kinect等類似的設(shè)備相比Leap Motion不提供追蹤到的完整深度圖[4],只返回手部相關(guān)點(diǎn)的三維坐標(biāo)位置信息、方向信息和部分手姿態(tài)特征,例如Circle、Swipe、Screen Tap、Key Tap等姿態(tài)信息。僅利用這些原始數(shù)據(jù)還不能夠滿足對(duì)手勢(shì)識(shí)別的需要,因此需要根據(jù)Leap Motion追蹤手部信息的特性,進(jìn)行構(gòu)建手勢(shì)的提取和識(shí)別模型。文中構(gòu)建了用于手勢(shì)提取和識(shí)別的模型,如圖2所示。
?。?)手掌中心位置C:描述了三維空間中手掌區(qū)域的粗略中心位置。
(2)手掌的方向:基于兩個(gè)單位向量,n是垂直于手掌平面指向手掌內(nèi)側(cè)的法向量,h是手掌中心位置C指向手指方向的方向向量,但是這些追蹤計(jì)算得到的數(shù)據(jù)也不是非常精確,取決于手指F1、F2、F3、F4、F5的分布。
?。?)指尖的位置Fi,i=1,…,5,描述了三維空間中探測(cè)到的指尖位置。
需要注意的是,盡管Leap Motion能夠以很高的精度追蹤可視區(qū)域內(nèi)的手部三維空間位置,但是它并不確定能夠追蹤到全部的手指,這是由于做出手勢(shì)動(dòng)作的時(shí)候會(huì)存在手指間的互相遮擋和干擾。針對(duì)這個(gè)問題,Leap Motion會(huì)根據(jù)內(nèi)部構(gòu)建的手模型預(yù)估計(jì)干擾部分關(guān)鍵點(diǎn)的粗略位置,從而可以得到完整的手部關(guān)鍵點(diǎn)信息,用于后面的特征值提取計(jì)算。
對(duì)于除了角度外的所有特征值需進(jìn)行歸一化處理,方法是通過除以手掌中心C和中指指尖之間的距離S=Fmiddle-C,以增強(qiáng)針對(duì)不同使用者的手掌大小的識(shí)別過程魯棒性[5]。比例因子S可以在用戶使用前通過計(jì)算得出。
為了實(shí)現(xiàn)手勢(shì)識(shí)別,根據(jù)上述手勢(shì)追蹤模型定義了如下的手部數(shù)據(jù)特征計(jì)算公式:
式中Di表示指尖位置Fi到手掌心位置坐標(biāo)C的歐式距離,在這里需要將兩點(diǎn)間的三維距離除以比例因子S做歸一化處理。
Ai=∠(Fpi-C,h),i=1,…,5(2)
式中Ai表示的是三維坐標(biāo)點(diǎn)Fpi與手掌中心位置C的連線與手掌方向向量h之間的角度,F(xiàn)pi表示指尖Fi在垂直于手掌法向量n的平面上的投影的位置。
式中Ei表示指尖位置到手掌平面的垂直距離,F(xiàn)i表示指尖在三維局部坐標(biāo)系中的位置,F(xiàn)pi表示指尖Fi在垂直于手掌法向量n的平面上的投影的位置,這里同樣需要除以比例因子S對(duì)提取特征值Ei進(jìn)行歸一化處理。
本文選擇如圖3所示G1、G2、G3、G4、G5、G6六組手勢(shì)進(jìn)行分析,提取相應(yīng)手勢(shì)的相關(guān)點(diǎn)的三維坐標(biāo)信息和方向信息。
關(guān)于特征提取方法,在前文中給出了相應(yīng)的特征值D、A、E,包含從Leap Motion提取到的每一個(gè)樣本手勢(shì)數(shù)據(jù),對(duì)于每一組手勢(shì)將提取它的特征向量集V=(D, A, E)。
為了進(jìn)一步進(jìn)行手勢(shì)識(shí)別,需要將D、A、E三個(gè)特征向量根據(jù)對(duì)應(yīng)的手勢(shì)庫分為G類,分類算法采用支持向量機(jī)[6]。因此G個(gè)類別的樣本就需要設(shè)計(jì)G(G-1)/2個(gè)SVM分類器。當(dāng)對(duì)一個(gè)未知樣本進(jìn)行分類時(shí),最后得到最多的類別即為該未知樣本的類別。
3特征訓(xùn)練
實(shí)驗(yàn)的特征訓(xùn)練和識(shí)別采用支持向量機(jī)(SVM)方案。SVM作為一種二分類模型[7],其基本模型定義為特征空間上的間隔最大的線性分類器,其學(xué)習(xí)策略便是間隔最大化,最終可轉(zhuǎn)化為一個(gè)凸二次規(guī)劃問題的求解。支持向量機(jī)在解決小樣本、非線性及高維模式識(shí)別中有許多特有的優(yōu)勢(shì)。對(duì)于手勢(shì)的分類,需要將提取到的手勢(shì)特征向量V看作N維空間中的一個(gè)點(diǎn),手勢(shì)特征進(jìn)行分類時(shí)可以看作尋找該空間中的最優(yōu)分類平面,最終將不同的手勢(shì)特征點(diǎn)V進(jìn)行分割處理,就得到了最終的手勢(shì)分類效果。對(duì)于簡單的線性問題,能夠直接在該空間中截取相應(yīng)的分割平面,然而在解決問題時(shí)遇到更多的是非線性問題,文中的手勢(shì)特征分類就屬于非線性問題,因此需要通過非線性變換將其轉(zhuǎn)化為高維空間中的線性問題進(jìn)行處理。
對(duì)于標(biāo)準(zhǔn)的支持向量機(jī)[8]優(yōu)化問題可以歸結(jié)為一個(gè)二次規(guī)劃問題:
將非線性問題轉(zhuǎn)換為高維空間中的線性問題是通過內(nèi)積式中K(x,xi)核函數(shù)進(jìn)行的,選擇不同的內(nèi)積核函數(shù)對(duì)應(yīng)著不同的 SVM算法,因此在使用時(shí)需要進(jìn)行核函數(shù)及相應(yīng)參數(shù)的選擇。其核函數(shù)K(x,xi)的選擇對(duì)SVM的實(shí)現(xiàn)和分類結(jié)果起到重要作用。
核函數(shù)的選擇包括兩部分工作:一是核函數(shù)類型的選擇,二是確定核函數(shù)類型后相關(guān)參數(shù)的選擇。因此選擇恰當(dāng)?shù)暮撕瘮?shù)對(duì)本文實(shí)驗(yàn)中的手勢(shì)識(shí)別精確度有著重要的影響。下面給出SVM的三種常用核函數(shù)。
(1)多項(xiàng)式核函數(shù):
K(x,xi)=(γxTxi+r)d(6)
(2)徑向基(RBF)核函數(shù):
K(x,xi)=exp(-γx-xi2)(7)
(3)Sigmoid核函數(shù):
K(x,xi)=tanh(γxTxi+r)(8)
在實(shí)驗(yàn)中將分別采取上述不同的核函數(shù)進(jìn)行手勢(shì)識(shí)別分類,通過對(duì)比選取最佳核函數(shù)。在列出的三個(gè)核函數(shù)中,多項(xiàng)式核函數(shù)中的參數(shù)d用來設(shè)置多項(xiàng)式核函數(shù)的最高次項(xiàng)次數(shù),在實(shí)驗(yàn)中采用經(jīng)驗(yàn)值3,參數(shù)r和Sigmoid核的參數(shù)r同樣采用默認(rèn)經(jīng)驗(yàn)值0。
對(duì)結(jié)果起決定性作用的參數(shù)是γ以及懲罰因子C,懲罰因子C是對(duì)空間點(diǎn)中離群點(diǎn)的重視程度體現(xiàn),C值越大則表明對(duì)其越重視。
對(duì)于上述的參數(shù)C、γ選擇擬采用K折交叉驗(yàn)證和參數(shù)尋優(yōu)遍歷進(jìn)行對(duì)比并選定。K折交叉驗(yàn)證是將總樣本劃分為K個(gè)子集,每次將一個(gè)子集作為測(cè)試集,剩余K1個(gè)子集作為訓(xùn)練集進(jìn)行訓(xùn)練,通過K次的測(cè)試,將其平均識(shí)別率作為結(jié)果。最佳參數(shù)為參數(shù)尋優(yōu)后得到最高識(shí)別率的參數(shù)。得到最佳參數(shù)后對(duì)三種核函數(shù)進(jìn)行對(duì)比實(shí)驗(yàn)就可以選擇出合適的核函數(shù)。
具體方法為通過Leap Motion分別采集50組單個(gè)手勢(shì),共300組數(shù)據(jù),將其分別進(jìn)行三種核函數(shù)的5折交叉驗(yàn)證和網(wǎng)格參數(shù)尋優(yōu)方法以獲取最佳參數(shù),獲得最佳參數(shù)后再次采集120組手勢(shì)數(shù)據(jù),每個(gè)手勢(shì)20組,作為新測(cè)試數(shù)據(jù)驗(yàn)證其識(shí)別準(zhǔn)確率。不同核函數(shù)的網(wǎng)格參數(shù)尋優(yōu)與交叉驗(yàn)證所得參數(shù) C、γ的關(guān)系如圖4、5、6所示。
表1中給出了三種核函數(shù)通過交叉驗(yàn)證和參數(shù)尋優(yōu)后得到最佳參數(shù)后,進(jìn)行新測(cè)試數(shù)據(jù)驗(yàn)證識(shí)別準(zhǔn)確率的結(jié)果對(duì)比。
通過對(duì)訓(xùn)練數(shù)據(jù)的交叉驗(yàn)證結(jié)果和測(cè)試數(shù)據(jù)的識(shí)別分類結(jié)果準(zhǔn)確率的綜合分析,選用RBF Kernel可以得到較高的識(shí)別準(zhǔn)確率,同時(shí)從圖4可以看出RBF核函數(shù)有著較好的穩(wěn)定性,參數(shù)較少且易于運(yùn)算,應(yīng)用相較廣泛。根據(jù)120組測(cè)試數(shù)據(jù)的準(zhǔn)確率基于網(wǎng)格參數(shù)尋優(yōu)遍歷和5折交叉驗(yàn)證方法得到最佳參數(shù):gamma為0.5,懲罰因子C為32,將此作為模型的最佳參數(shù)進(jìn)行后續(xù)的結(jié)果驗(yàn)證實(shí)驗(yàn)。
4結(jié)果驗(yàn)證
前文的特征提取和特征訓(xùn)練兩部分構(gòu)建了基本的手勢(shì)識(shí)別模型,下面將通過實(shí)驗(yàn)對(duì)模型進(jìn)行驗(yàn)證。通過Leap Motion傳感器針對(duì)每個(gè)手勢(shì)采集50組數(shù)據(jù),共300組測(cè)試數(shù)據(jù)。通過構(gòu)建的模型提取其特征向量并將其輸入SVM進(jìn)行手勢(shì)分類識(shí)別,實(shí)驗(yàn)結(jié)果如表2所示。
通過對(duì)表2中的結(jié)果分析,對(duì)于輸入的300組手勢(shì)數(shù)據(jù),構(gòu)建的識(shí)別模型可以正確識(shí)別293組,識(shí)別準(zhǔn)確率為97.33%,具有較高的識(shí)別率。另外可以看出手勢(shì)G2、G3、G4出現(xiàn)了識(shí)別差錯(cuò),這是由于實(shí)驗(yàn)中做出的手勢(shì)G2、G3、G4動(dòng)作相近,在Leap Motion追蹤手勢(shì)時(shí)不可避免地出現(xiàn)手指的瞬時(shí)重疊導(dǎo)致信息錯(cuò)位和誤差,從而相互之間會(huì)容易產(chǎn)生誤識(shí)別現(xiàn)象。
5結(jié)論
文中構(gòu)建了一種采用Leap Motion傳感器并基于指尖位置和方向信息的手勢(shì)提取和識(shí)別模型,模型計(jì)算量少,效率和精度高,僅需要獲取手部的指尖位置信息和方向信息,即可高效、高精度地識(shí)別用戶手勢(shì)。實(shí)驗(yàn)結(jié)果表明,該方案可以以較高的平均識(shí)別率完成特定的手勢(shì)識(shí)別,但是會(huì)存在相近手勢(shì)的手指瞬時(shí)重疊引起的誤差導(dǎo)致降低手勢(shì)識(shí)別率現(xiàn)象。
下一步的工作將針對(duì)多指瞬時(shí)重疊現(xiàn)象導(dǎo)致的誤差情況,研究結(jié)合Kinect和Leap Motion的多傳感器手勢(shì)追蹤解決方案。Kinect傳感器能夠遠(yuǎn)距離地捕獲基于深度圖的手部完整信息[9],而Leap Motion傳感器可以高精度地實(shí)現(xiàn)近距離的局部手部信息描述,因此期望提出這種多設(shè)備結(jié)合方案,可以獲取更好的手勢(shì)識(shí)別效果。
參考文獻(xiàn)
?。?] Li Yi. Hand gesture recognition using Kinect[C]. Proceedings of 2012 IEEE 3rd International Conference on Software Engineering and Service Science, 2012: 196-199.
?。?] 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.
?。?] 徐崇斌, 周明全, 沈俊辰,等. 一種基于Leap Motion的直觀體交互技術(shù)[J]. 電子與信息學(xué)報(bào), 2015, 37(2): 353-359.
?。?] 吳彩芳,謝鈞,周開店. 基于手勢(shì)識(shí)別的人機(jī)交互技術(shù)研究[J]. 計(jì)算機(jī)時(shí)代, 2016(2):29-32.
?。?] 潘佳佳, 徐昆. 基于Leap Motion的三維自由手勢(shì)操作[J]. 中國科技論文, 2015, 10(2): 207-212.
[6] 張學(xué)工. 關(guān)于統(tǒng)計(jì)學(xué)習(xí)理論與支持向量機(jī)[J]. 自動(dòng)化學(xué)報(bào),2000, 26(1): 3242.
?。?] 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] 閻威武,邵惠鶴. 支持向量機(jī)和最小二乘支持向量機(jī)的比較及應(yīng)用研究[J]. 控制與決策, 2003, 18(3):356-360.
[9] WACHS J P, KOLSCH M, STERN H, et al. Visionbased handgesture applications[J]. Communication of the ACM, 2011, 54(2):60-71.