LeapMotion概述0001_第1頁
LeapMotion概述0001_第2頁
LeapMotion概述0001_第3頁
LeapMotion概述0001_第4頁
LeapMotion概述0001_第5頁
免費預覽已結束,剩余3頁可下載查看

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

1、Leap Motion 概述Leap Motion系統可以檢測并跟蹤手、手指和類似手指的工具。這個器件可以在高精確 度和高跟蹤幀率下工作。Leap Motion軟件分析在器件可視范圍內的物體。它識別手、手指和工具,可以實時獲取它們的位置、手勢和動作。Leap Motion的可視范圍是一個倒金字塔,塔尖在設備中心。這個很好理解,傳感器一般都這樣Leap Motion的可工作范圍大約在設備前方的從25到600毫米,也就是1英寸到2英尺。2.5厘米到0.6米,果然彌補了 Kinect近距離的不足啊, 十分適坐在電腦前操作坐標系統Leap Motion的系統采用了右手笛卡爾坐標系。返回的數值都是以真實

2、世界的毫米為單位和Kinect的深度數據一樣一樣的。原點在Leap Motion 控制器的中心。x軸和z軸在 器件的水平面上,x軸和設備的長邊平行z軸和短邊平行,挺好記。y軸是垂直的,以正 值增加形式朝上(與朝向下的計算機圖形學的坐標系相反)。距離計算機屏幕越遠,z軸正值不斷增加。看到那個小綠燈吧,得確保讓它朝著我們這個坐標系才對,擺放時得注意!+Y上圖:Leap Motion的右手坐標系統運動追蹤數據由于Leap Motion設備最終在它視野中的手、手指和工具,它提供一組數據集更新,或 者是幀,或者是數據。每幀數據包含一個基本追蹤數據列表,如手、手指和工具,也包括識 別出的手勢和描述場景中的

3、運動因素。但檢測到手、手指和工具或手勢時,Leap Motion'軟件為它分配一個唯一的ID指示符。只要這個實體一直存在于設備可視范圍內,這個ID指示符就彳持不變和Kinect的骨骼追蹤的ID是一致的。如果追蹤目標丟失或者失而復得,Leap Motion軟件會分配一個新的ID(軟件無法知道手、 手指是否和之前看到的一樣) 也就是說, 不包含手指識別啦, 和 Kinect的骨骼追蹤在丟失后情況完全一致 。幀一個幀對象提供追蹤數據、手勢和在 Leap Motion 可視范圍內的整體運動因素的列表。追蹤數據列表Hands手-所有的手。Pointables 有端點的 - 手指和有段點的工具。手

4、指- 所有的手指。工具 所有的工具。手勢- 所有手勢的開始、結束或者哪個進行了更新。這三個具有端點的列表( Pointables , Fingers , Tools )包含了任何在數據幀檢測出的有端點的對象。 你可以通過訪問手的列表,來獲取手中物體的信息。需要注意的是,如果用戶的手只在Leap Motion 的視野中出現一部分,那么手指或者工具都無法與手關聯。 也就說,注意的手的擺放,確保手和工具同事都在可視范圍內 如果你正在通過一幀又一幀的來追蹤一個單一的物體, 例如手指, 你可以使用與物體關聯的ID ,在新的幀中查詢它。通過ID ,你可以查詢手、手指、工具、端點物體和手勢。如果這個物體在當

5、前幀存在, 那么查詢函數返回一個關于物體的引用。 如果物體不存在了, 那么返回一個特別的無效對象。 無效對象被很好定義, 但不包含任何有效的追蹤數據。 這個技術使得我們在使用 Leap Motion 追蹤數據時,簡化了大量的對于空指針的檢測。幀運動Leap Motion 軟件分析總體運動,只要之前幀數據發生了位移、旋轉、尺度變化等。例如,如果你把雙手同時移動到 Leap Motion 的左側視野,幀就包含了位移變化。如果你扭動你的雙手, 好像旋轉一個球,幀就包含旋轉。 如果你將雙手靠近或者遠離, 幀就包含縮放信息。Leap Motion 軟件會使用視野范圍內的物體,只要分析到發生了運動。如果它

6、只檢測到一只手,那么 Leap Motion 程序就會基于那只手的運動,給出幀運動因素。如果它檢測出一雙手, 它就將雙手的運動趨勢結合起來, 給出運動因素。 通過每只手對應的手對象,你也可以獲取單獨運動參數。幀運動信息的產生是通過比較當前幀與之前一個特別的幀。描述合成運動的屬性包含:1. 旋轉坐標 Rotation Axis 一個方向向量來描述坐標的旋轉。2. 旋轉角度 Rotation Angle 相對于旋轉坐標(笛卡爾坐標系)的順時針方向的旋轉角度。3. 旋轉矩陣 Rotation Matrix 一個旋轉的矩陣變換。4. 縮放因子 Scale Factor 一個因子來描述膨脹和收縮。5.

7、位移 Translation 一個向量來描述線性運動。你可以通過運動因子來操控在你應用場景中的物體, 而不必在多幀數據中跟蹤單獨的手和手指。 也就是 factors 可以手動修改幀結構包含一個估計某個方向上的特定運動。 例如, 如果縮放因子很大, 難么你可以忽略在幀中的旋轉、或位移(如果這可以讓你的應用更實際)。通過概率方法濾去除掉不想要的運動信息可以使你的程序更容易被使用。 也就是說,只關注最主要的運動,忽視那些次要的變化,畢竟人不是機器,例如做旋轉可定發生一定位移 手模型手模型提供關于手,或者其它被檢測出來的手指、工具的坐標、特征和運動。Leap Motion的接口函數盡可能多的提供關于一

8、個手的信息。當時, Leap Motion程序 可能無法計算出在每個幀下的手部信息。例如,當一個手攥成一個拳頭,它的手指則無法被Leap Motion看到,所以手指的信息就是空。你的應用應該能處理到這些模型消失的狀態。Leap Motion程序也不判定一只手到底是左手還是右手Kinect判斷。在手的列表中,可以出現多余 2只手的信息,因為可以不止一個人也可以出現一個類似手的物體在LeapMotion的視野范圍里。但是,我們建議最多讓兩只手同時出現在Leap Motion控制器的視野里,這樣可以確保最佳追蹤質量。手屬性手對象提供一些屬性來反映一只被檢測到手的物理特征。1 .手掌坐標 Palm P

9、osition 在Leap Motion的坐標系下,手掌中心的坐標以毫米為單位被衡量。2 .手掌速率Palm Velocity 手掌毫米/每秒的運動的速度。3 .手掌標準Palm Normal 與手掌所形成的平面的垂直向量,向量方向指向手掌內側。4 .方向Direction 由手掌中心指向手指的向量。5 .球心Sphere Center 可以適合手掌內側弧面的一個球心。(假設握著一個球)6 .球半徑Sphere Radius 同上,這個是球半徑。當手形狀變化,半徑跟著變化。方向和手掌標準是在 Leap Motion坐標系下,描述手的方向的向量。上圖:手掌標準垂直于手掌往外,方向朝著手指方向。上

10、圖:當手卷曲,球變小球心和球半徑描述了一個球,這個球滿足手掌的曲率,正好可以被手掌的握著。手運動手對象還提供了一些用于描述手運動的屬性。Leap Motion程序分析手的運動,包括那些與手關聯的手指、工具的位移、旋轉和縮放。將你的手繞著 Leap Motion的運動,會產生 位移。張開、扭曲和傾斜你的手,可以產生旋轉。將你的手勢或者工具對著Leap Motion靠近或遠離,可以產生縮放。手的運動是通過當前幀與之前特定幀對比得到的。描述手運動的屬性有和Frame Motion一樣。1 .旋轉坐標 Rotation Axis2 .旋轉角度 Rotation Angle3 .旋轉矩陣 Rotatio

11、n Matrix4 .縮放因子 Scale Factor5 .位移 Translation手對象同樣包含了對于手運動最重要的估計。后面一樣了,不說了 手指和工具列表你可以通過下面三個中的一個,訪問與手聯系的手指和工具:1 .端點Pointables 手指和工具都是端點物體。2 .手指Fingers 僅僅手指。3 .工具Tools 僅僅工具。你還可以通過之前幀中獲取的ID來訪問單獨的手指和工具。使用 Hand:finger(),hand:tool(),或者你不需要區分手指和工具,使用 Hand:pointable() 函數。這些函數返 回當前幀中物體的引用。如果手指和工具在此幀中,沒有和手關聯,

12、那么返回一個無效的對象。手指和工具模型Leap Motion 程序Leap Motion設備不但檢測和追蹤在視野范圍里的手指還追蹤工具。通過形狀對手指類似物體進行分類。一個工具相對于手指來說是更長、更瘦還是更直。在Leap Motion模型里,手指和工具的物理特征被抽象到一個端點對象中。手指和工具是一類端點對象,端點對象的物理特征包括:1 .長度Length物體的可視長度(從手長出來的部分)。2 .寬度Width物體的平均寬度。注意平均哦3 .方向Direction-一個單位朝向向量,方向與物體指向相同。(例如從底座到尖端)4 .尖坐標 Tip Position- 在Leap Motion 坐

13、標系下,尖的位置。5 .尖點速率 Tip Velocity-尖的運動毫米/秒。上圖:紅點還是尖坐標,指針式尖方向。Leap Motion程序把檢測到的端點物體識別為手指或者是工具。使用Pointable:isTool()函數來確定是哪一類端點對象。這個工具,比手指更長、更細和更直。手勢Leap Motion程序把特定的運動模式識別為手勢,可以猜測用戶的意圖或指令。LeapMotion對于一幀數據中的手勢訪問方法和其它的手指和手勢一致的。對于每個被檢測到的 手勢,Leap Motion都將一個手勢對象 Gesture object添加到幀數據中。你可以通過幀手勢列表來獲取手勢對象。以下是Leap

14、 Motion可以識別的運動模式。重點來了啊,看不懂下面會有圖像示意1 .圈Circle-一個手指頭畫圓。2 .揮動Swipe-手的線性運動。3 .按鍵點擊按鍵 Key Tap-手指點擊運動,就像按下鍵盤一樣。4 .屏幕點擊Screen Tap- 對電腦屏幕方向進行垂直點擊。但Leap Motion把一個運動識別測很難過一個手勢模式,它把手勢對象加入幀中。如果手勢重復數次,Leap Motion會把更新手勢對象不斷添加到隨后的幀中。畫圈和揮手的手勢 都是持續的。Leap Motion為程序在每幀中持續更新這些手勢。點擊時離散的手勢。LeapMotion把每次點擊作為獨立的手勢對象報告。重要:在

15、你的應用使用手勢之前,你必須把每種所需要識別的手勢開啟。控制類有一個 enableGesture()方法讓你開啟特定的手勢識別。也就是一開始都是關閉的,不開沒法用畫圈Leap Motion可以識別手指在空中以圓的方式運動,返回一個圈手勢Circle gesture ,上圖:食指的圈手勢你可以用任何手指和工具畫圈。圈手勢是持續的。一旦這個手勢開始,Leap Motion就會持續更新狀態直到停止。但手指或者工具遠離了軌跡或者運動太緩慢,圈手勢則終止。可以從CircleGesture的接口函數參考中看到更多的信息。揮手Leap Motion把手指的線性運動識別為揮手手勢。上圖:一個水平揮手的手勢。你可以用任意手指在任意方向上作揮手手勢。揮手手勢是持續的。 一旦手勢開始,LeapMotion機會更新狀態直到手勢結束。當手指變換了方向或者運動太緩慢時,揮手手勢結束。更多信息可以參考 SwipeGesture的接口函數文檔。點擊Leap Motion可以識別2種點擊,按鍵點擊 Key Tap和向前的屏幕點擊 Screen Tap 。按鍵點擊Key Tap。Leap Motion把一個快速的、往下一根手指或工具的運動識別為一個按鍵手勢上圖:食指的按

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
  • 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
  • 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論