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

论文细节

手势识别或者说手的跟踪在人机交互中非常重要,已经有几十年的研究。但是它存在的难点还是很多的:手的动作是由很多的复杂的手指的活动构成的,同时,在可变的大视角下面的快速移动。

 

目前做出来比较好的效果的做法有几种,一种使用了非常复杂的网格模型(mesh model,具体不知道是怎么做的),但局限性在于它的局部最优的方法速度也很差;另一种则是采用多边形模型(polygonal model),可以达到实时的效果,但是需要GPU来处理。

 

以上提到的方法局部最优的方法,也就说一旦找到一个局部最优值的话就不能从跟踪的错误当中恢复过来了。

于是也有一些全局的方法,在整个参数空间里面搜索。但是这样明显速度是相当的慢的。同时也是经常得到比较差的结果。有的方案采用了全局的参数搜索加上局部最优的方式。但是采用了一些的辅助设备,比如说,彩色手套,多摄像头等等!还有一些方法只能解决自由度(DOFs)比较低的情况。或者需要在固定的视角下面。

 

但是这篇文章在复杂的情况下也能够得到很高的准确率。可以说是目前最好的方法。

 

核心:

 

采用的基本的框架是:Local Optimization + Initialization by Part Detection 的框架;采用的手的模型是:利用一组的球状体来近似手的模型;采用一个非常快的代价函数(Cost Function)来衡量模型和稀疏的点云之间的距离。

 

所以需要重点理解的几个方面是:Hand Model, Hybird Optimization(这里作者综合了几种优化的方法的好处),Part Detection and Part_based Initialization,这里的Cost Function。

                                手势跟踪论文学习:Realtime and Robust Hand Tracking from Depth(二)_第1张图片

如上图所示,是手的Model。

上图(a)中所示,表示是手的运动模型(Hand Motion Model)。作者构建了一个26个维度(DOF ,degrees of freedom)的手的运动模型。其中:6个维度表示全局的手的姿势;其余的20个维度中,每个手指有4个维度。(其实我不太明白这个维度指的是什么)这26个运动参数用 θ 表示。

上图(b, c)中所示:表示的是手的几何模型,(b)是其他论文中用到的一个模板,(c) 则是用球形体对(b) 的一种估计。其中使用到了48个球形体:每个手指6个,但是大拇指有8个(图中我只看到7个),其余的16个表示手掌。同时再加上先验的球的Size以及他们的中心。就构成了手的几何模型。

这个几何模型这样的来表示:,对于每一个球体:;其中,c(θ)表示的是是它的中心(有的时候为了简洁,不写θ)【这里有点不能理解,中心和上面的26个维度上面关系】,r表示的是半径,是固定的。


文中的Data这部分没怎么看懂,大概是说用Intel的那个摄像头得到了深度的信息。同时还是用了黑色的带子裹住了手腕,以便于能够准确的找到手的区域,然后在对于这个手的区域进行中值滤波,和形态学的开运算(先腐蚀后膨胀的过程称为开运算。用来消除小物体、在纤细点处分离物体、平滑较大物体的边界的同时并不明显改变其面积。)然后得到得到一个深度Map D,然后将它转换到3D的点云上面,表示为P)

 

Hybird Optimization

 

我们首先要初始化一个手势(不管是从上一帧还是当前帧),然后就可以通过对方程(1)的局部优化的方法对手势进行跟踪。对于这种点模型的优化问题,一般采用的是:ICP(Iterated Closest Point)的方法。

手的初始化:

这里他们提出了一种简单的,鲁棒的方法来初始化。f表示检测到的手指,假设检测到的手指就是直的(自由度为2),没有检测到的手指就是弯的(自由度为0).这样一个手势的参数就是:2f + 6 DOFs。表示为θ’ 。

 

 

 

随机的初始化一些手势,从里面获得最优的参数。

 

同时 作者也说了对于复杂的手势来说,这种方法效果还是不是很好。但是这已经是现在最好的方法了。

总结:

这篇文章通过Intel的Gesture Camera获得深度图像,然后将其转化3D Point cloud。引入Cost Function。 然后检测手指的位置(使用了2D+ 1D的表示方法),通过检测到的手指的位置给手势的初始化形成约束,由此通过ICP-PSO的算法来优化Cost Function方程得到最优解作为得到的手势的结果,由自己定义的48球模型进行实时的匹配。 


接下来将会详细的分析里面的Cost Function还有里面的算法。


本小节完。



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