周開(kāi)店,,謝鈞,羅健欣
?。ń夥跑娎砉ご髮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
引用格式:周開(kāi)店,,謝鈞,羅健欣.基于Leap Motion指尖位置的手勢(shì)提取和識(shí)別技術(shù)研究[J].微型機(jī)與應(yīng)用,,2017,36(2):48-51.
0引言
近年來(lái),,手勢(shì)識(shí)別在眾多領(lǐng)域(如:人機(jī)交互、機(jī)器人應(yīng)用,、電腦游戲,、手語(yǔ)翻譯等方面)的廣泛應(yīng)用得到了更多人的關(guān)注。當(dāng)前可用于手勢(shì)識(shí)別的相對(duì)低成本的深度相機(jī)有:TOF相機(jī)和微軟公司推出的Kinect設(shè)備,,通過(guò)不同的方法獲取手部的深度信息以提高手勢(shì)識(shí)別的準(zhǔn)確性,。這些方法提供的手勢(shì)識(shí)別方案均是從深度信息提取的特征值,通用攝像頭采集人手圖像雖然能夠獲得穩(wěn)定的圖像序列乃至深度信息,,但提取出的人手信息必須經(jīng)過(guò)復(fù)雜的圖像處理與識(shí)別過(guò)程,,難以保證快速、準(zhǔn)確地估計(jì)人手姿態(tài),,同時(shí)它們無(wú)法實(shí)現(xiàn)近距離的高精度手勢(shì)識(shí)別[1],。Leap Motion傳感器的推出給手勢(shì)識(shí)別領(lǐng)域帶來(lái)了一種全新的方式,不同于Kinect對(duì)視野范圍內(nèi)追蹤到物體的整體框架描述,,Leap Motion的目標(biāo)是只針對(duì)手部信息的追蹤描述,,通過(guò)對(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ī)視覺(jué)技術(shù)的三維數(shù)據(jù)追蹤傳感器設(shè)備[3],。Leap Motion的追蹤目標(biāo)是針對(duì)手部信息的描述,,能夠直接計(jì)算出指尖,、關(guān)節(jié)點(diǎn)等的位置和手掌的方向向量及法向量信息。同時(shí),,由于Leap Motion內(nèi)部封裝了完善的識(shí)別過(guò)程和方法,,Leap Motion不需要開(kāi)發(fā)者使用計(jì)算機(jī)視覺(jué)算法去識(shí)別提取手部相關(guān)點(diǎn)的數(shù)據(jù)。相對(duì)于Kinect等深度相機(jī),,Leap Motion可以以0.01 mm的精度追蹤手部數(shù)據(jù),,也就是說(shuō)它可以高精度地追蹤到手部的微小運(yùn)動(dòng)。它的硬件結(jié)構(gòu)主要由兩個(gè)高幀率攝像頭,、LED燈,、紅外濾光器以及一片USB3.0芯片組成,如圖1所示,。
兩個(gè)高幀率高清攝像頭可以模擬雙目視覺(jué)實(shí)現(xiàn)立體拍攝手勢(shì)圖像,捕捉傳感器上方25 mm~600 mm之間呈倒立金字塔范圍內(nèi)的信息,,然后通過(guò)三角測(cè)量對(duì)空間手部位置信息進(jìn)行三維坐標(biāo)定位,,另外Leap Motion利用濾光器將自然光線過(guò)濾成紅外光線,在設(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ì)通過(guò)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è)問(wèn)題,Leap Motion會(huì)根據(jù)內(nèi)部構(gòu)建的手模型預(yù)估計(jì)干擾部分關(guān)鍵點(diǎn)的粗略位置,,從而可以得到完整的手部關(guān)鍵點(diǎn)信息,,用于后面的特征值提取計(jì)算。
對(duì)于除了角度外的所有特征值需進(jìn)行歸一化處理,,方法是通過(guò)除以手掌中心C和中指指尖之間的距離S=Fmiddle-C,,以增強(qiáng)針對(duì)不同使用者的手掌大小的識(shí)別過(guò)程魯棒性[5]。比例因子S可以在用戶使用前通過(guò)計(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ì)庫(kù)分為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ī)劃問(wèn)題的求解。支持向量機(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ì)于簡(jiǎn)單的線性問(wèn)題,,能夠直接在該空間中截取相應(yīng)的分割平面,然而在解決問(wèn)題時(shí)遇到更多的是非線性問(wèn)題,,文中的手勢(shì)特征分類就屬于非線性問(wèn)題,,因此需要通過(guò)非線性變換將其轉(zhuǎn)化為高維空間中的線性問(wèn)題進(jìn)行處理。
對(duì)于標(biāo)準(zhǔn)的支持向量機(jī)[8]優(yōu)化問(wèn)題可以歸結(jié)為一個(gè)二次規(guī)劃問(wèn)題:
將非線性問(wèn)題轉(zhuǎn)換為高維空間中的線性問(wèn)題是通過(guò)內(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í)別分類,,通過(guò)對(duì)比選取最佳核函數(shù)。在列出的三個(gè)核函數(shù)中,,多項(xiàng)式核函數(shù)中的參數(shù)d用來(lái)設(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)練,通過(guò)K次的測(cè)試,,將其平均識(shí)別率作為結(jié)果,。最佳參數(shù)為參數(shù)尋優(yōu)后得到最高識(shí)別率的參數(shù)。得到最佳參數(shù)后對(duì)三種核函數(shù)進(jìn)行對(duì)比實(shí)驗(yàn)就可以選擇出合適的核函數(shù),。
具體方法為通過(guò)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ù)通過(guò)交叉驗(yàn)證和參數(shù)尋優(yōu)后得到最佳參數(shù)后,進(jìn)行新測(cè)試數(shù)據(jù)驗(yàn)證識(shí)別準(zhǔn)確率的結(jié)果對(duì)比,。
通過(guò)對(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í)別模型,下面將通過(guò)實(shí)驗(yàn)對(duì)模型進(jìn)行驗(yàn)證,。通過(guò)Leap Motion傳感器針對(duì)每個(gè)手勢(shì)采集50組數(shù)據(jù),,共300組測(cè)試數(shù)據(jù)。通過(guò)構(gòu)建的模型提取其特征向量并將其輸入SVM進(jìn)行手勢(shì)分類識(shí)別,,實(shí)驗(yàn)結(jié)果如表2所示,。
通過(guò)對(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.
[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.
?。?] 徐崇斌, 周明全, 沈俊辰,,等. 一種基于Leap Motion的直觀體交互技術(shù)[J]. 電子與信息學(xué)報(bào), 2015, 37(2): 353-359.
?。?] 吳彩芳,謝鈞,,周開(kāi)店. 基于手勢(shì)識(shí)別的人機(jī)交互技術(shù)研究[J]. 計(jì)算機(jī)時(shí)代, 2016(2):29-32.
?。?] 潘佳佳, 徐昆. 基于Leap Motion的三維自由手勢(shì)操作[J]. 中國(guó)科技論文, 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.
?。?] WACHS J P, KOLSCH M, STERN H, et al. Visionbased handgesture applications[J]. Communication of the ACM, 2011, 54(2):60-71.