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?
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:
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.