Kinect可以做的事情很多,诸如三维重构、场景替换、手势识别等,但对于Kinect应用的开发,目前很多时候倾向于做手势识别方面。因为这是Kinect最与众不同的地方:将手势映射到计算机交互中去从而传递人的想法。在人机交互领域,这是一种非常前卫的理念。
但是正是由于它的前卫,Kinect目前各方面还不是非常成熟。感觉当前开发的难度主要集中在手势识别引擎的开发上。虽然现在已经有一些第三方开发者创建的手势引擎,但是微软还没有将它们作为标准的引擎。可预见在不远的将来微软会将手势识别引擎添加到SDK中,又或者指明可替代方案,但在它出来之前,手势识别很多时候得自己动手做。
在我看来,手势识别实际上是要根据一系列点在一段时间内所形成的轨迹判断出这里面的含义。比方说,如果要识别画圆的手势,现在选择跟踪人的右手掌位置进行判断。在人画圆的过程中,计算机会采集一系列右手掌的点,一般以三维坐标的形式标记出来,把这些点连起来会形成一段轨迹,接着要做的是判断这段轨迹是否符合一个圆,若符合就判断人做出了画圆的手势。
目前我所知的做手势识别主要有三种方法,基于算法、基于神经网络和基于样本库。后两种方法由于能力太低了,未能尝试