none
Skeleton Positon Accuracy RRS feed

  • Question

  • I have been studying the accuracy of the MS Kinect SDK the last few days but i still have a question to which i would like to have an answer to.

    In have been thinking that at first when the Kinect detects the joints of a skeleton he calculates the values from the depth image (like the depthX, depthY and depthValue values you would get from the SkeletonToDepthImage function). Afterwards these values are being used to calculate the X,Y,Z values.

    If this is true i would like to know if anyone knows which values from the depth image are the most accurate. Specifically are the dephX and depthY values more or less or equally accurate than the depthValue)?

    Thanks in advance.

    Friday, September 2, 2011 8:43 AM

Answers

  • I think you should treat the X and Y values of depth image as 100% accurate, since they exactly represent pixel coordinates of an image, which is what they're meant to do. Now, the depth value at pixel (X,Y) will not be 100% accurate. You should get depth of objects at most pixels within 1% accuracy or better, but since IR camera emiting measuring beams and depth camera measuring scene characteristics after beams are cast are offset in kinect device, then image will have some "shadows" to one side of each object, where no depth value was detected. In those areas, the depth reading will be completely inaccurate.

    So, there is no single value I can tell you to rate accuracy of depth values at a depth image pixel.

    Eddy


    I'm here to help
    Wednesday, September 7, 2011 1:33 AM

All replies

  • I'm not sure what you're asking here.

    The depth image is what the kinect device perceives with its depth sensors. Each pixel of the depth image will have the best estimate of cartesian depth distance from kinect sensor device in the direction of that pixel location from camera focus point.

    Skeleton joint positions are calculated from depth image using skeletal tracking algorithms. Their locations in the 3D world are then calculated using a method that corresponds to DepthImageToSkeleton. DepthImageToSkeleton is just a coordinate transformation method, and SkeletonToDepthImage is just an inverse coordinate transformation method, so you can pass arbitrary values to SkeletonToDepthImage even if they don't correspond to anything perceived on screen, and the coordinate transformation will be performed just the same.

    So, specifically what do you mean when you ask if one value is more or less "accurate" than another?

    Eddy


    I'm here to help
    Friday, September 2, 2011 6:22 PM
  • I mean how much can the measured distance, x and y coordinates differ from the real values in normal circumstances. 

    For instance the depthX and depthY values are acurate to 1% more or less than the real value and the depthValue is accurate to 5%.  When you run the DephtImageToSkeleton function with these values you will have an accuracy of 5% because the accuracy is determined by the value with the least accuracy.

    I hope this example makes it i bit more clear.

    But thanks in advance anyway.

    Monday, September 5, 2011 7:28 AM
  • I think you should treat the X and Y values of depth image as 100% accurate, since they exactly represent pixel coordinates of an image, which is what they're meant to do. Now, the depth value at pixel (X,Y) will not be 100% accurate. You should get depth of objects at most pixels within 1% accuracy or better, but since IR camera emiting measuring beams and depth camera measuring scene characteristics after beams are cast are offset in kinect device, then image will have some "shadows" to one side of each object, where no depth value was detected. In those areas, the depth reading will be completely inaccurate.

    So, there is no single value I can tell you to rate accuracy of depth values at a depth image pixel.

    Eddy


    I'm here to help
    Wednesday, September 7, 2011 1:33 AM