本文介绍的方法主要是用到了深度信息。提出了一种新的手指检测以及手型初始化的方法。具有很好的鲁棒性。在不使用GPU的情况下,速度就可以达到25FPS。准确率还相当的高。可以说是现在手势识别中最好的方法了。
当前的很多方法要不就是很慢,要不就是使用了GPU,再或者就是需要非常复杂的初始化。而本文提出的方法重新定义了手势的模型,结合了现在通用的两种方法的优势,并且加上一个约束方程,得到了很好的效果。
1.模型的重新定义
每一只手,定义了一个自由度(DOF)为26 的手的模型,其中的6个自由度代表全局的手的模型(整体);每一个手指还有4个自由度(总共20个)。同时还加上了手的运动学的限制。如下图(a) 所示。( To model hand kinematics, we adopt the commonly used 26 degrees of freedom (DOF) hand motion model: 6 DOFs for the global hand pose and 4 DOFs for each finger, illustrated in Figure 1(a). We preserve the kinematic constraints of the hand by enforcing the joint angles in their valid ranges during optimization. )
除此以外,作者还利用最简单的球体模型来表示手掌:总共用了48个球体来代替一只手。如图(c)所示。
2.方法的选择
作者选用的是两种方法的结合。对于这种点的问题的处理,最广泛的使用的方法是ICP(Iterated Closest Point method)。它是一种基于梯度的优化方法。但是明显的缺点是:很容易被陷在局部最优里面,同时对于非刚体的处理效果也不是很好。
另外还有一种叫做PSO(Particle Swarm Optimization)的方法。他是一种从参数空间搜索最优化参数的方法。在演化的过程中,整个点云的最好位置以及以及每一个点的局部最好的位置都被记录下来。在每一个的演化的过程中,粒子的速度都以它前一个速度的某种运算来更新。这样得到的结果的好处是:能够更好的搜索参数空间,避免那些很差的局部最优值。但是缺点是:速度比较慢。
作者结合两种方式的优点,提出了自己的方法:ICP—PSO Local OPtimization。 它的Key Idea是:each particle takes an additional ICP like gradient descent step before the random particle movement in each PSO generation. In this way, each particle moves faster and minimizes the cost more effectively, as in ICP. All particles interact with each other to sample the promising area more frequently and a single one has a higher chance to jump from a poor local optimum, as in PSO. Consequently, the combined approach converges faster and resists local optima better than both.
3.检测的过程中所使用的不同的方法
不是将每一个点当做是一个3D的点云,乃是将其分解为一个2D的plane和一个1D的Z方向。这样做的方式使得它更加的直观,快和准确。
这篇文章具体的细节还是有很多不懂的地方,我还会细致的去看各个方法是怎么实现的。
手势跟踪论文学习:Realtime and Robust Hand Tracking from Depth,布布扣,bubuko.com