Detecting jump gesture with Kinect [Algo]

1.8k Views Asked by At

I am trying to implement jump as well as ducking gestures of a user, and I am using Kinect for skeleton tracking and extracting the joint positions. I previously implemented a rudimentary algorithm taking the history of past 10 values of a joint and checking if the joint moved upward/downward greater than a threshold to deduce a jump/duck.

However, that doesn't seem to be the correct approach since the user:
- might duck a little before jumping
- when user jumps, also comes down and a duck is deduced.
- when the user ducks, also comes up, a jump is deduced
- the user when ducking might stay longer in air than when he ducks or sits down.

What would be an appropriate algorithm to detect both of these jump/duck gestures in a robust manner with Kinect joints being retrieved instantaneously?

1

There are 1 best solutions below

0
On

I think detecting jumps it's not easy to make a efficient algorithm for that in a easy way. It's a complex movement to detect that why you must use something robust. There are four types of approach when it comes to detect movements:

  • Basic gesture recognition -simple movement like clapping hands measuring the distance between them. When the distance is 0 the movement its performed
  • An algorithmic approach - more complex movement where you have to validate the initial position, verification if the movement is being correctly performed, and then verify final position
  • Weight-network approach - this one can use neural networks to detect movements
  • Template-Based approach - You can record a movement and then using template matching algorithms like dynamic time Warping to check if the movement performed by the user and the movement record are equal

You have to be careful which approach to use because sometimes this algorithms are a cocktail of mathematical operations and you must choose the one approach that is more efficient to your case. There is a way of detect jumps using the Weight-network approach and neural networks although i never seen one. there is a book called Kinect for Windows SDK Programming Guide there it's explained how to detect jumps using Weight-network approach and neural networks.