手势跟踪论文学习:Realtime and Robust Hand Tracking from Depth(五)Hand Initialization 2

论文阅读原创,转载标明出处:

回顾:

上一节我们说到了,作者通过自己定义的X-Y Finger和 Z-Finger来进行手指的检测,然后来初始化Hand Pose。其实勒,手指经常都会死斜着的。也就是说不会是标准的X-Y Finger和或者Z-Finger。那作者是如何的处理的勒?


手指的检测:

对于手指的检测,先进行X-Y Finger的检测。然后分割出去;再进行Z-Finger的检测。但是如果再进行Z-Finger的检测的时候,触及到X-Y Finger的分割区域以后就停止,不再检测了。

为了提高速度,作者也讲分辨率将为原来的一半。


Hand Initialization:

我们假设检测到f个Finger(不管是X-Y Finger和或者Z-Finger)那么手指带来的自由度是2f。加上手腕的自由度6个,所以我们知道一个Hand Pose的未知数个数(也就是参数的个数)是2f+6个。(所以我们至少需要2f+6个线性无关的已知才能解出这个方程


我们再来看我们通过手指的检测得到多少的已知。


假设我们还是检测到f个Finger,那么我们通过PCA可以分析到手指的主成分,也就是手指的方向,这算是2个的约束(应该是一个向量吧)当找到一个手指额时候实际上指尖的空间位置也就定了吧这里又是3个约束(已知)。当我们去掉手指的点云点以后,就只剩下手掌了,这个时候,我们采用PCA又可以分析出手掌的方向,这里又是3个的约束(不是很明白,其实这个归根结底还是要去理解到那26个自由度代表的意义了)。所以我们可以说,至少我么有5f+ 3个已知的条件。所以我们足够接触那几个未知数。


所以我们也知道最后那个方程里面各个参数的意义了。


其中的t代表的是指尖的位置(是未知变量的函数),d代表方向,l 代表手掌的方向。上面的方程就是要使得初始化的这个Hand Pose的手指尖和检测到的指尖的距离最小,方向最小,手掌的方向也最小。


如此就完全的理解了这一篇论文了。


望对大家有帮助。


iker,2014年9月15日。





你可能感兴趣的:(手势识别,人机交互,手势,initialization)