1
votes

I'm creating Kinect mouse aplication. The idea is to hand/wrist kinect joint, as a source for cursor position, and finger detection to perform clicks, holds etc.

I got finger detection and palm gesture recognition working and here I found my blocker:

position of wrist/hand joint is changing when I make palm gesture, for instance when i change from open palm to fist.

Is there any workaround for this issue?

I'm using Kinect SDK 1.5 and EmguCV in this wpf aplication

1
Likely not, Kinect joint positions are based on all available data. One suggestion might be to train your system with open hand data. You could then calc. the distance from elbow to wrist and if it's below your calculated threshold, move the wrist point further along the vector from elbow to wrist.Jerdak

1 Answers

1
votes

Thanks Jerdak for your suggestion. I modified it a bit and the result is pretty nice in my opinion.

I'm calculating vector between elbow and wrist position, normalizing it and then multiplying by fixed arm length.

Then I'm just adding vector to elbow position.

Edit: After bit more testing this approach works almost perfect, only trouble is that elbow joint can "bounce" too...