李映輝,史卓,安亞磊(桂林電子科技大學(xué),桂林 541004)
?
基于Leap Motion的三維手勢(shì)識(shí)別方法
李映輝,史卓,安亞磊
(桂林電子科技大學(xué),桂林541004)
摘要:
關(guān)鍵詞:
隨著微軟Kinect的發(fā)展和普及,深度攝像頭吸引了越來(lái)越多人的注意,同時(shí)各類(lèi)3D應(yīng)用也層出不窮。盡管Kinect價(jià)廉普及廣,但它相對(duì)于人體手部信息的識(shí)別和處理太復(fù)雜,必須經(jīng)過(guò)繁雜的圖像處理等識(shí)別過(guò)程,難以保證快速的估計(jì)手部姿態(tài)[1]。而其他更高性能的深度攝像頭價(jià)格昂貴,無(wú)法普及。Leap Motion的出現(xiàn)解決了這一問(wèn)題。它是由美國(guó)的Leap公司出品的一款廉價(jià)的專(zhuān)門(mén)捕獲手部運(yùn)動(dòng)信息的體感控制器,它提供了一種專(zhuān)門(mén)識(shí)別手并能進(jìn)行手勢(shì)交互的解決方案。相較于傳統(tǒng)的三維手勢(shì)識(shí)別基本上都是通過(guò)轉(zhuǎn)換為二維圖像來(lái)處理[2-4],Leap Motion利用雙目紅外成像的原理重建出手的三維空間運(yùn)動(dòng)信息,能檢測(cè)并跟蹤手、手指和類(lèi)似手指的工具,實(shí)時(shí)獲取它們的位置、方向和部分手勢(shì)信息?;贚eap Motion的高精度和實(shí)時(shí)性,并且價(jià)格低廉易于普及,在本文系統(tǒng)中采用Leap Motion作為三維手勢(shì)獲取和識(shí)別的設(shè)備。
在Leap Motion中,一個(gè)Frame類(lèi)對(duì)象代表一個(gè)數(shù)據(jù)幀,F(xiàn)rame類(lèi)的成員函數(shù)hands()返回一個(gè)容器-HandList類(lèi)對(duì)象,它包含了若干個(gè)Hand類(lèi)的對(duì)象,每個(gè)Hand類(lèi)對(duì)象包含了Leap Motion檢測(cè)到的一只手的全部信息[5]。
Hans類(lèi)主要描述了三維手勢(shì)的手指屬性和手掌屬性。其中手指屬性Hand::fingers()具體包括手指的個(gè)數(shù)FingerList::count()、每根手指尖的位置pointable.tip-Position()和指向方向pointable.direction()。本文中為了進(jìn)行識(shí)別添加手指的狀態(tài)有兩種:張開(kāi)狀態(tài)和閉合狀態(tài),可以通過(guò)公式(1)計(jì)算得到每根手指向量分別于手掌心向量的夾角來(lái)判斷該手指是張開(kāi)還是閉合;添加夾角屬性,即計(jì)算并記錄張開(kāi)狀態(tài)下的相鄰手指間的夾角。手掌屬性則具體包括左右手屬性,手掌心在三維坐標(biāo)下的位置hand.palmPosition(),手掌心的6個(gè)朝向(上、下、內(nèi)、外、前、后),其中手掌心朝向由兩個(gè)向量給出:一個(gè)是從手掌中心指向手指的方向hand.direction();一個(gè)是垂直于手的平面,指向手掌的外側(cè)hand.palmNormal(),如圖1所示。手指的指向如圖2所示。
以單手手勢(shì)圖4中的手勢(shì)“Okay”為例,三維手勢(shì)識(shí)別過(guò)程具體細(xì)分到下面幾個(gè)主要步驟:
(1)拍攝用戶(hù)做出的手勢(shì)動(dòng)作。
在這里,在體感設(shè)備有效范圍內(nèi)檢測(cè)到用戶(hù)的手勢(shì)信息,持續(xù)兩秒的拍攝,對(duì)于靜態(tài)三維手勢(shì),兩秒時(shí)間內(nèi)的手勢(shì)保持不動(dòng)對(duì)用戶(hù)無(wú)論生理上或心理上都是在可忍耐時(shí)間內(nèi);
(2)對(duì)用戶(hù)手勢(shì)信息進(jìn)行初步判斷。
根據(jù)拍攝到的手心點(diǎn)的三維坐標(biāo)個(gè)數(shù)及初步判定出現(xiàn)在Leap Motion有效范圍內(nèi)手掌個(gè)數(shù),由此判斷出現(xiàn)在用戶(hù)輸入的是單手還是雙手。單手靜態(tài)三維手勢(shì)和動(dòng)態(tài)三維手勢(shì)在拍攝時(shí)間段只有一只手出現(xiàn)在攝像頭可視范圍內(nèi),雙手靜態(tài)三維手勢(shì)要求兩只手在拍攝時(shí)間段同時(shí)出現(xiàn)在攝像頭可視范圍內(nèi)。
(3)用T1-T5表示一只手的五根手指,其中T1表示大拇指,T5表示小拇指。分析圖5手勢(shì)特點(diǎn):
①結(jié)合圖4的Leap Motion的空間三維坐標(biāo)系[6]易判斷出T1和T2在X軸和Y軸上的坐標(biāo)絕對(duì)值是小于T3、T4和T5,而Z軸上T1和T2絕對(duì)值是大于T3、T4和T5;
②T1和T2指尖是相觸的,所以它們指尖的歐氏距離必須小于閾值d;
③T3和T4之間的夾角α34以及T4和T5之間的夾角α45必須大于一定角度α';
④T3、T4和T5是張開(kāi)狀態(tài),故它們與手掌的垂直向量hand.palmNormal()呈一定大小的夾角β';
通過(guò)公式(2)計(jì)算T1和T2指尖三維空間位置坐標(biāo)的歐氏距離d。隨后分別計(jì)算出T3和T4之間的夾角α34以及T4和T5之間的夾角α45。用分別表示兩根相鄰手指的指向,那么兩指間的夾角α可以通過(guò)公式(1)計(jì)算得出。相應(yīng)的手指與手掌的垂直向量夾角β也可通過(guò)式(1)求得。
圖1 手掌心朝向示意圖
圖2 手指朝向示意圖
圖3 Leap Motion空間三維坐標(biāo)系
由于Leap Motion的高精度(0.01mm),經(jīng)過(guò)試驗(yàn)調(diào)整,在本文中設(shè)置的歐氏距離閾值d=0.3,α'=15°,β'= 60°。
圖4 三維手勢(shì)Okay手指指向與手掌心垂直向量示意圖
在本系統(tǒng)中,定義的三維手勢(shì)主要包括為單手靜態(tài)三維手勢(shì)和雙手靜態(tài)三維手勢(shì)。通過(guò)本文方法,可以有效識(shí)別不同姿態(tài)的三維手勢(shì),因此可以建立一個(gè)基于單手和雙手靜態(tài)三維手勢(shì)庫(kù)。結(jié)合傳統(tǒng)的簡(jiǎn)單的靜態(tài)手語(yǔ),我們的三維手勢(shì)庫(kù)中的手勢(shì)包含的單手靜態(tài)三維手勢(shì)如圖6所示:數(shù)字0-9,通用手語(yǔ),如OK(食指尖與拇指尖相觸,其他手指豎起),棒(豎大拇指),差(握拳狀后大拇指朝下豎起),我愛(ài)你(豎起大拇指、食指和小指)等。
對(duì)于雙手靜態(tài)三維手勢(shì),分為兩類(lèi):一類(lèi)可以是簡(jiǎn)單的單手靜態(tài)三維手勢(shì)的組合,即一只手可以表達(dá)14中不同姿態(tài),雙手組合起來(lái)的三維手勢(shì)就可以多達(dá)196種(14×14);另一類(lèi)就是簡(jiǎn)單的、盡可能少遮擋或無(wú)遮擋的三維手勢(shì),如圖5所示。
圖5 單手靜態(tài)三維手勢(shì)
圖6 雙手靜態(tài)三維手勢(shì)
通過(guò)不同單手靜態(tài)三維手勢(shì)的組合以及雙手靜態(tài)三維手勢(shì),本文所能建立的三維手勢(shì)庫(kù)可以包含200多種不同的三維手勢(shì)。
借力于三維體感技術(shù)和新型體感設(shè)備的快速發(fā)展和普及,本文提出了一種非接觸式的、基于視覺(jué)感知的三維手勢(shì)識(shí)別方法,并使用雙手的不同手勢(shì)組合建立了一個(gè)簡(jiǎn)單三維手勢(shì)庫(kù),可以應(yīng)用于手語(yǔ)識(shí)別等領(lǐng)域。鑒于Leap Motion設(shè)備識(shí)別范圍有限,不能精確識(shí)別人上肢動(dòng)作,并且手語(yǔ)手勢(shì)的遮擋和細(xì)節(jié)微小差別,都是目前的難點(diǎn)問(wèn)題,希望在未來(lái)的新一代設(shè)備上加以解決。
參考文獻(xiàn):
[1]Shi Zhuo,Li Ying-hui,Yu Ke,ChengYuan-quan,Zhou Chang-shao.Research of Hand Gesture using Kinect based on Finger Recognition[J].Computer Modelling and New Technologies,2014,VOL.18,P158-162
[2]范保玲.基于Hough變換和神經(jīng)網(wǎng)絡(luò)的中國(guó)靜態(tài)手語(yǔ)識(shí)別[D].西安建筑科技大學(xué),2008
[3]郭彩龍.中國(guó)近代手語(yǔ)識(shí)別的研究[D].西安建筑科技大學(xué),2009
[4]翁漢良,戰(zhàn)蔭偉.基于視覺(jué)的多特征手勢(shì)識(shí)別[J].計(jì)算機(jī)工程與科學(xué).2012(2)
[5]龐啟超.面向人機(jī)交互的三維手勢(shì)數(shù)據(jù)處理技術(shù)研究[D].華南理工大學(xué),2015
[6]胡弘,晁建剛,楊進(jìn),趙再騫,林萬(wàn)洪.Leap Motion關(guān)鍵點(diǎn)模型手姿態(tài)估計(jì)方法[J].計(jì)算機(jī)輔助圖形設(shè)計(jì)與圖形學(xué)學(xué)報(bào),20015(1):1211-1216
3D Gesture Recognition Based on Leap Motion
SHI Zhuo,LI Ying-hui,AN Ya-lei
(Guilin University of Electronic Technology,Guilin 541004)
Abstract:
Studies 3D gesture recognition with Leap Motion,and establishes a static 3D gesture library in single hand and two hands.By reading the document of palm and finger in Leap Motion API,looks for the feature of certain 3D gesture and presents a novel method of 3D gesture recognition.With the establishing of 3D gesture library,the more research on 3D gesture recognition or the large-scale gesture library will be in progress.
Keywords:
研究基于體感設(shè)備Leap Motion的三維手勢(shì)識(shí)別方法,并建立單手和雙手靜態(tài)三維手勢(shì)庫(kù)。通過(guò)研究Leap Motion API中關(guān)于手掌和手指的數(shù)據(jù)結(jié)構(gòu)描述,尋找特定三維手勢(shì)特征,進(jìn)而提出一種三維手勢(shì)識(shí)別方法。結(jié)合靜態(tài)手勢(shì)的特征,建立一組關(guān)于單手靜態(tài)和雙手靜態(tài)的三維手勢(shì)庫(kù)。對(duì)今后基于體感設(shè)備的三維手勢(shì)識(shí)別和建立大型的三維手勢(shì)庫(kù)等一系列研究有一定的參考價(jià)值。
人機(jī)交互;三維手勢(shì);手勢(shì)識(shí)別
基金項(xiàng)目:
廣西可信軟件重點(diǎn)實(shí)驗(yàn)室開(kāi)發(fā)課題(No.KX201304)、廣西信息科學(xué)實(shí)驗(yàn)中心開(kāi)放課題(No.YB1506)
文章編號(hào):1007-1423(2016)14-0074-04
DOI:10.3969/j.issn.1007-1423.2016.14.016
作者簡(jiǎn)介:
史卓(1978-),男,江蘇常州人,副教授,研究方向?yàn)閳D形圖像處理、數(shù)字媒體、移動(dòng)軟件開(kāi)發(fā)技術(shù)
李映輝(1988~),男,湖北黃岡人,在讀碩士研究生,研究方向?yàn)橛?jì)算機(jī)圖形學(xué)
收稿日期:2016-03-15修稿日期:2016-04-30
Human-Computer Interaction;3D Hand Gesture;Gesture Recognition