摘要
? 本文設(shè)計一個基于深度攝像頭的手勢追蹤系統(tǒng):滿足實時追蹤(CPU 25fps)、高準(zhǔn)確性(<10mm)。提出了幾個新穎的技術(shù):
- 使用一系列球體對手部建模,并定義了一個簡單快速且十分有效的損失函數(shù),這對于實時性能至關(guān)重要;
- 基于迭代最近點算法(ICP)和粒子群算法(PSO),提出一個混合方法能夠更快的收斂且具有更好的準(zhǔn)確率;
- 提出一個新的手指檢測方法用于手勢初始化。
關(guān)鍵
-
手部模型
- 使用48個球,每個手指6個,手掌16個。每個球體有各自的半徑和球心坐標(biāo),其中半徑固定,球心坐標(biāo)即預(yù)測目標(biāo)
- 考慮到動力學(xué),關(guān)節(jié)之間的角度有一個約束范圍
-
損失函數(shù)
-
對點云P隨機(jī)下采樣256個點,得到sub(P)
x(p)為距離p點最近的球,c為其球心坐標(biāo),r為其半徑。
該項損失約束點盡可能在球面上 -
c為球心坐標(biāo),
為將球心坐標(biāo)投影到深度圖后的索引,
即球心在投影深度圖的深度值。
?光心與世界坐標(biāo)系原點重合,光軸為
,則深度即點在z軸的坐標(biāo)值。
所以,
為預(yù)測得到的球心的深度,而
為根據(jù)球心投影索引
在輸入的深度圖上的深度值。
該項約束球的深度, 若
索引值超過深度圖,則計算二者距離作為約束
-
該項約束兩個球不重合
-
-
ICO-PSO局部優(yōu)化
-
ICP
尋找一個旋轉(zhuǎn)矩陣R和平移矢量t,使得兩個點云對齊。
初始化R和t,對A做變換,
對變換后的A中的每個點,找到B中與該點最近的點計算
距離,即
基于四元數(shù)/SVD求解上式最小值的R和t
不足
參數(shù)搜索空間大,容易陷入局部最優(yōu),嚴(yán)重依賴初始化
-
PSO
根據(jù)局部信息和全局信息尋找最優(yōu)點
不足
搜索空間大,容易過早收斂(估計錯誤全局最優(yōu)值)
-
ICP-PSO
-
總結(jié)
? 這篇文章通過Intel的Gesture Camera獲得深度圖像,然后將其轉(zhuǎn)化3D Point cloud。引入Cost Function。 然后檢測手指的位置(使用了2D+ 1D的表示方法),通過檢測到的手指的位置給手勢的初始化形成約束,由此通過ICP-PSO的算法來優(yōu)化Cost Function方程得到最優(yōu)解作為最終的手勢的結(jié)果,與自己定義的48球模型進(jìn)行實時的匹配。







