Leap Motion 的原理是什麼?

時間 2021-05-30 20:54:25

1樓:岑毅

我沒有leap 3d的硬體,我只是猜測下。

它的硬體是雙目立體視覺,它的開發者說速度快是因為數學模型,我估計就是簡單的影象四則運算,紅外線照射估計功率低,近距離的物體才有反光,所以得到的雙目影象都是近距離的。它得到的影象是乙個近距離物體的紅外灰度圖或者二值圖吧。它的功能主要就是集中在深度距離探測、指尖以及它的方向獲取、目標跟蹤。

對於距離的探測的演算法可能:

1.灰度的差值表示距離的遠近;

2.左右攝像頭兩幅影象是近似的,但是目標物體座標不一樣,所以可能是以左眼影象為基準,對右眼所有影象進行平移,再相減,負數求絕對值,那麼求畫素總和,當得到最小值時就是左右眼視差的值,以此判斷距離。影象的矩陣元素的平移和矩陣的相減DSP算的很快的,就幾個時鐘週期

對於指尖的獲取,可能是用數學形態學獲取影象骨架,就是運算元和影象矩陣乘加,用DSP算很快的。得到骨架,就自然能得到端點和指向

對於跟蹤,也許是用了類似mean-shift之類的演算法,也是乙個核函式運算元和影象矩陣乘加,運算速度超快

2樓:

剛好隨手看到了

Leap Motion控制器工作原理詳解_click研發組用人話說就是用倆攝像頭直接「看」,然後經過複雜演算法得到具體的手勢資料(也就是和kinect類似?)

因為用的是攝像頭,所以成本比較低(對比什麼用超聲波反射的、用紅外線掃瞄中斷的)

3樓:

從 API 的角度大概說一下。

Leap Motion 感測器的結構:

大體上,Leap 感測器根據內建的兩個攝像頭從不同角度捕捉的畫面,重建出手掌在真實世界三維空間的運動資訊。檢測的範圍大體在感測器上方 25 公釐到 600 公釐之間,檢測的空間大體是乙個倒四稜錐體。

首先,Leap Motion 感測器會建立乙個直角座標系,座標的原點是感測器的中心,座標的 X 軸平行於感測器,指向螢幕右方。Y 軸指向上方。Z 軸指向背離螢幕的方向。

單位為真實世界的公釐。如圖:

在使用過程中, Leap Motion 感測器會定期的傳送關於手的運動資訊,每份這樣的資訊稱為「幀」( frame )。每乙個這樣的幀包含檢測到的:

所有手掌的列表及資訊;

所有手指的列表及資訊;

手持工具(細的、筆直的、比手指長的東西,例如一枝筆)的列表及資訊;

所有可指向物件(Pointable Object),即所有手指和工具的列表及資訊;

Leap 感測器會給所有這些分配乙個唯一標識(ID),在手掌、手指、工具保持在視野範圍內時,是不會改變的。根據這些 ID,可以通過 Frame::hand( ) , Frame::

finger( ) 等函式來查詢每個運動物件的資訊。

Leap 可以根據每幀和前幀檢測到的資料,生成運動資訊。例如,若檢測到兩隻手,並且兩隻手都超乙個方向移動,就認為是平移;若是像握著球一樣轉動,則記為旋轉。若兩隻手靠近或分開,則記為縮放。

所生成的資料報含:

旋轉的軸向向量;

旋轉的角度(順時針為正);

描述旋轉的矩陣;

縮放因子;

平移向量;

對於每隻手,可以檢測到如下資訊:

手掌中心的位置(三維向量,相對於感測器座標原點,公釐為單位);

手掌移動的速度(公釐每秒);

手掌的法向量(垂直於手掌平面,從手心指向外);

手掌朝向的方向;

根據手掌彎曲的弧度確定的虛擬球體的中心;

根據手掌彎曲的弧度確定的虛擬球體的半徑;

其中,手掌的法向量和方向如下圖所示:

「手掌球」的圓心和半徑:

對於每個手掌,亦可檢測出平移、旋轉(如轉動手腕帶動手掌轉動)、縮放(如手指分開、聚合)的資訊。檢測的資料如全域性變換一樣,包括:

旋轉的軸向向量;

旋轉的角度(順時針為正);

描述旋轉的矩陣;

縮放因子;

平移向量;

Leap 除了可以檢測手指外,也可以檢測手持的工具。像上文所說的,就是細的、筆直的、比手指長的物件:

對於手指和工具,會統一地稱為可指向物件(Pointable Object,抱歉不太會翻譯),每個 Pointable Object 包含了這些資訊:

長度;寬度;

方向;指尖位置;

指尖速度;

方向和指尖位置如下圖:

根據全域性的資訊、運動變換,手掌、手指和工具的資訊和變換,開發者就可以靠這些來製作遊戲、程式了。

大概就是這樣了~

參考:Leap Motion 的開發者文件 Leap Motion | Developers

Mathematica的Part原理是什麼?

Mathematica中有一句老話 everything is an expression.什麼意思呢?就是字面意思啦 從列表裡面取內容OP應該會,不就是 1 麼 那麼下一步就到了題主的問題,到底這是怎麼取得呢?其實,mma在kernel裡面會先把這個表示式翻譯成為Part List a,b,c,d...

WonderLab真的有用嗎,它的原理是什麼?

鮮嫩多汁的韭菜 我怎麼感覺這玩意跟健脾丸差不多呢,健脾消食祛濕,說吃了飯不漲了,說吃了瘦了,說吃了大便成型不便秘了,這不就是十多塊錢健脾丸的功效嗎。 自我重塑計畫 2021年11月21日WonderLab代餐奶昔拆箱 路人甲 我朋友喝保質期內的wonderlab喝到重度拉肚子,非常痛苦,疲憊到不行想...

MySQL索引,最左字首匹配的內部原理是什麼?

其實你大可先拋開最左索引的概念,先有個這樣循序漸進的概念,能使用索引 使用索引進行範圍查詢 使用索引進行精確查詢,首先需要判斷你的查詢語句能否使用這個索引,這個很好判斷,a,b,c 排列,舉例來說,假設a,b,c的值都只能取1,2,3,那索引頁面的排列就是 1,1,1 1,1,2 1,1,3 1,2...