C# 用Kinect[Algo]检测跳跃手势

C# 用Kinect[Algo]检测跳跃手势,c#,c++,algorithm,kinect,openni,C#,C++,Algorithm,Kinect,Openni,我正在尝试实现用户的跳跃和躲闪手势,我正在使用Kinect进行骨骼跟踪和提取关节位置。我之前实现了一个基本的算法,获取一个关节过去10个值的历史记录,并检查该关节是否向上/向下移动超过一个阈值,以推断跳跃/下降 但是,这似乎不是正确的方法,因为用户: -在跳之前可能会蹲一点 -当用户跳跃时,也会下降并推断出一只鸭子。 -当用户闪避时,也会出现跳转 -用户蹲下时在空中停留的时间可能比蹲下或坐下时长。 什么是一种合适的算法,能够在即时检索Kinect关节的情况下,以稳健的方式检测这两种跳跃/俯冲姿势

我正在尝试实现用户的跳跃和躲闪手势,我正在使用Kinect进行骨骼跟踪和提取关节位置。我之前实现了一个基本的算法,获取一个关节过去10个值的历史记录,并检查该关节是否向上/向下移动超过一个阈值,以推断跳跃/下降

但是,这似乎不是正确的方法,因为用户:
-在跳之前可能会蹲一点
-当用户跳跃时,也会下降并推断出一只鸭子。
-当用户闪避时,也会出现跳转
-用户蹲下时在空中停留的时间可能比蹲下或坐下时长。


什么是一种合适的算法,能够在即时检索Kinect关节的情况下,以稳健的方式检测这两种跳跃/俯冲姿势?

我认为检测跳跃要以简单的方式为其制定有效的算法并不容易。这是一个复杂的动作来检测为什么你必须使用健壮的东西。在检测运动时,有四种方法:

  • 基本手势识别-简单的动作,如拍手测量他们之间的距离。当距离为0时,将执行其移动
  • 算法方法更复杂的移动,您必须验证初始位置,验证移动是否正确执行,然后验证最终位置
  • 权重网络方法-此方法可以使用神经网络检测运动
  • 基于模板的方法-您可以记录移动,然后使用模板匹配算法,如动态时间扭曲,检查用户执行的移动和移动记录是否相等
你必须小心使用哪种方法,因为有时这种算法是数学运算的混合物,你必须选择一种对你的情况更有效的方法。有一种使用权重网络和神经网络检测跳跃的方法,尽管我从未见过这种方法。有一本书叫做《Kinect for Windows SDK编程指南》,书中解释了如何使用权重网络和神经网络检测跳跃。

您是否研究过或尽可能研究手势识别解决方案?