Feb 1, 2013

Kinect realtime hand & finger joints tracking

This just a quick performance/accuracy test of the HandTrackingLib provided by FORTH. The test was done by just running the demo that you can download here: http://cvrlcode.ics.forth.gr/handtracking/




The first thing we noticed is that optimum tracking depth range seems to be quite narrow, as you can notice at the calibration process before the tracking starts (you have to match the initial pose quite well).
The second one is that the modest specs of the hardware used heavily affect the effectiveness of the tracking, probably because the time that it takes to make the calculations some frames get lost, thus making bigger differences/distance between consecutive analysed frames.


The library is available in the OpenNI middleware section, unfortunately only for the 2.0 version of OpenNI's library, that only works with licensed SDK devices (Asus Xtion and Kinect for Windows, but not regular XBox Kinect).
We will try to make it work modifying the provided examples, feeding the tracking library with data from freenect, and letting it use OpenNI 2.0 just for the calculations.

You can get more info about the library here: http://www.ics.forth.gr/~argyros/research/kinecthandtracking.htm

5 comments:

  1. Hi David,

    I am doing my final year project, and I tried this library once. The demo ran well, but when I tried the library with sample code, it was stuck at the initializing instance forever. Have you tried the library? if yes, did you encounter anything like that?

    Cheers,

    T.

    ReplyDelete
    Replies
    1. I encountered problems my self because it is ment to be used with OpenNI 2.0, which works only with licensed sensors like the Xtion or Kinect for Windows. However, the people from FORTH that developed the library told me it should work with the XBox Kinect modifying their example to use OpenNI 1.5 for capturing and pass the captured frames to the HantTracking library, which would then use OpenNI internally for the tracking calculations. I started to do that but, after running the demo and seeing that our workstation's CPU/GPU wasn't enough to get a fast tracking response, I forgot about it.

      Regards,

      David

      Delete
  2. Dear David,

    I use a Kinect for windows with OpenNi2 myself, but still stuck there. Our lab's CPU/GPU is just so-so too, but I hope to get some results before ordering a better GPU. I think I'll try it later. Thanks very much for your reply.

    Best regards,

    T.

    ReplyDelete
    Replies
    1. Dear Toan,

      For your interest I copy the email kindly sent from the FORTH team, in case it may help:

      "Dear David,

      You can still use the library available for OpenNI2.0 independently. The
      API of the library requires you to just supply a depth and RGB image at VGA
      resolution (640x480) with the depth mapped on the RGB.

      The sample and build system provided are for the OpenNI2.0 framework but
      you could adapt them to work with OpenNI1.5.

      You will have to open your camera using OpenNI1.5 grab the depth and rgb
      image from the Image and depth generators and supply them to the Hand
      Tracker library.

      The sensor parameters like zpd and zpps can be set using the
      setSensorParameters method of the HandTracker class.

      kind regards,
      --
      The 3D Hand tracking Library team."

      Delete