none
Hand Pointer Grip Detection RRS feed

  • General discussion

  • Hello Microsoft Community!

    1. I want to ask a question that I ve been thinking about recently. If kinect v1 is not able to recognize fingers, then how GRIP action is detected? (For example in order to interact with Kinect Scroll Viewer example a user has to "grip" first and then move a hand). Is there any angle / distance threshold for detecting this action? and is there any way to change this "threshold" or the way to detect grip detection?

    2. I also wanted to ask if it is possible to unable hand pointer movements in a certain frames. Lets say I want to press a button, and then for 2 - 3 frames handpointer on the screen wouldnt move?

    I am not asking for any pieces of code, just hints, classes, functions where I can find implementation of  hand detection -> conversion to hand pointer  or any other ?

    Thank you! 

    Monday, March 30, 2015 3:07 PM

All replies

  • Interaction uses it own "system" that is aware of the hand location and using computer vision tech to determine the state of the hand. In v2, there is more fidelity there and the hand states are native as part of the new platform. There are no ways to change the way it works, it is a closed system.

    To change the behavior of the hand pointer, you would have to override that behavior and change the code. The code bases is provided through the toolkit download.


    Carmine Sirignano - MSFT

    Monday, March 30, 2015 6:18 PM
  • Thanks for the answer! I compared two sensors and obviously second worked much better!

    One more thing: I am still confused about hand pointer behavior, and what you just said doesnt make any difference.  It was like if I asked : how to make my food taste better ? And you would say : "Just change the way you cook it"

    I clearly understand that the entire behavior can be found in Toolkit library, but I just dont get what class is responsible for the "movements" of the hand pointer? It seems like kinectAdapter gets raw data -> transform it in screen coordinates, but what happens next is kind of messy for me.

    I want to implement simple functionality : when hand is in grip mode, stop moving it completely. I am pretty sure it is easy to do, I just can find how. (I am not asking for any code, just hints)

    Thanks!

    Tuesday, March 31, 2015 1:38 PM
  • The KinectRegion/HandPointer classes are responsible for tracking. You will note the IInteractionClient interface which is the low level component that provides the raw processing from Kinect. You can review more on the interactions stream here:

    http://dotneteers.net/blogs/vbandi/archive/2013/05/03/kinect-interactions-with-wpf-part-iii-demystifying-the-interaction-stream.aspx


    Carmine Sirignano - MSFT

    Tuesday, March 31, 2015 6:12 PM