none
Object tracking in my hand RRS feed

  • Question

  • Hey there,

     

    So I would like to learn how to track an object such as a toy gun or a simple block or something. I know I'll have to look into 3D Point Cloud, but could someone tell me how this could be achieved? Code is always nice, but and concepts or pointing in the right direction is great too!

     

    Cheers

     EDIT: in case that's confusing, I mean an object IN my hand and tracking that
    • Edited by Derekioh Wednesday, January 4, 2012 10:25 PM
    Wednesday, January 4, 2012 10:22 PM

Answers

  • What I mean is that you will already have skeletal tracking provided by the SDK - so you will know where hand joint is.  You can then use that location as the location of the object that is in your hand.  If you just need to know the position of the object, then you are all done.  If you need to find the orientation of the object too, then you would need to do some further analysis (along the lines of suggestion #2).  The only caveat is that having something in your hand may disturb the skeletal tracking algorithm, so you will have to try it out and see how it works.

    Regarding the POSIT algorithm, there is built in functions in OpenCV for using it.  There are tutorials floating around (it should be a fairly common algorithm) and you can start out here:

    http://opencv.willowgarage.com/wiki/Posit

    - Jason

    • Marked as answer by Derekioh Thursday, January 5, 2012 11:02 PM
    Thursday, January 5, 2012 10:31 PM

All replies

  • I think actively tracking the object would be difficult be passively telling the kinect to do it might be with some hard work. I would take a look a channel 9's samples in addition to codeplex.com's samples and kinect programs/libraries which have been growing over time.

    I have a multi-user version of kinect mouse which is getting close to having an offical beta release of program. I have a test script that gives expected output but need to test further on multipoint and mouse mischief to be for certain that it works/does nt have limitations i need to be aware of.


    Once you eliminate the impossible, whatever remains, no matter how improbable, must be the truth. - "Sherlock holmes" "speak softly and carry a big stick" - theodore roosevelt. Fear leads to anger, anger leads to hate, hate leads to suffering - Yoda
    Wednesday, January 4, 2012 11:38 PM
  • Hello,

    From a general standpoint, if you will already know that the object is in your hand, then why not just use the skeletal joint information that the SDK provides, and then reconstruct the object that is in the immediate vicinity from there?  It wouldn't be too difficult, at least not unreasonable...

    From an algorithmic point of view, if you already know what shape the object will be before hand, then you could also utilize the POSIT algorithm.  This is an iterative method for determining the orientation of a known object.  Depending on how you approach the problem, you would either use Point Cloud Library, or possibly OpenCV if you use a more image based approach.

    Thursday, January 5, 2012 7:24 PM
  • First, thanks the thinker for the quick response.

     

    Second, Jason, I do know what the object is gonna be, But i'm a little confused about what you mean by the first method. Could you elaborate? And is the POSIT algorithm in the library or just an algorithm in general?

     

    Cheers 

    Thursday, January 5, 2012 9:38 PM
  • Derekioh it sounds like Jason is talking about using an algorithm to find or manipulate the object in your hand in software sense.

    I think i will be trying to implement face tracking soon for my kinect application or just as a by project.

     


     

    Once you eliminate the impossible, whatever remains, no matter how improbable, must be the truth. - "Sherlock holmes" "speak softly and carry a big stick" - theodore roosevelt. Fear leads to anger, anger leads to hate, hate leads to suffering - Yoda



    • Edited by The Thinker Thursday, January 5, 2012 9:56 PM
    Thursday, January 5, 2012 9:54 PM
  • What I mean is that you will already have skeletal tracking provided by the SDK - so you will know where hand joint is.  You can then use that location as the location of the object that is in your hand.  If you just need to know the position of the object, then you are all done.  If you need to find the orientation of the object too, then you would need to do some further analysis (along the lines of suggestion #2).  The only caveat is that having something in your hand may disturb the skeletal tracking algorithm, so you will have to try it out and see how it works.

    Regarding the POSIT algorithm, there is built in functions in OpenCV for using it.  There are tutorials floating around (it should be a fairly common algorithm) and you can start out here:

    http://opencv.willowgarage.com/wiki/Posit

    - Jason

    • Marked as answer by Derekioh Thursday, January 5, 2012 11:02 PM
    Thursday, January 5, 2012 10:31 PM
  • yeah, I need to track the object's orientation. This should be fun to figure out :P thank you very much for your help

     

    and The Thinker, what do you mean by "software sense"?

    Thursday, January 5, 2012 11:02 PM
  • Nothing jason explained it better so i will just leave him with the answer.
    Once you eliminate the impossible, whatever remains, no matter how improbable, must be the truth. - "Sherlock holmes" "speak softly and carry a big stick" - theodore roosevelt. Fear leads to anger, anger leads to hate, hate leads to suffering - Yoda
    Thursday, January 5, 2012 11:25 PM