Calculating Kinect pixel size

Mar 6, 2012 at 4:27 PM

Hi,

I have a Kinect. I have no problems running it and getting (also) depth info.

I am looking for suggestions on how to calculate each pixel size as a function of the vertical distance from the sensor – any ideas/suggestions?

 Thanks

 Yori

Mar 6, 2012 at 6:12 PM

Not sure what you mean by vertical distance...can you elaborate a bit?

Mar 7, 2012 at 12:14 AM

I was afraid I may have not been clear enough.

I am looking for suggestions on how to calculate each pixel size as a function of the depth information the Kinect generates.

 

Thanks

 

Yori

Mar 7, 2012 at 1:11 AM

I'm still not entirely sure what you mean by pixel size.  The depth information you get back is the number of millimeters that pixel is from the Kinect sensor.  So you know the depth of each pixel already.  Is that not enough or are you looking for additional information?

Mar 7, 2012 at 1:26 AM

The Kinect Depth sensor is 640 pixels wide by 480 pixels high. The further away an object is from the depth sensor, each projected pixel increases its size in its x and Y axis.

I would like to calculate the size (X;Y) of each pixel as a function of the depth information the Kinect generates.

Mar 7, 2012 at 1:30 AM

This is the part I'm having trouble understanding.  :)

A pixel is a pixel.  Its size is 1x1.  Always.  There are 640 pixels across and 480 pixels down for a total of 307200 pixels.  Each pixel on the color camera represents a color, while each pixel on the depth camera is a distance away from the sensor in millimeters.

I'm sorry, I'm still not understanding what you're after...the concept of the size of a pixel isn't valid.  Pixels don't change size...

Mar 7, 2012 at 1:42 AM

Please check the PrimeSense Kinect specs: http://www.primesense.com/press-room/resources/file/4-primesensor-data-sheet?lang=en

 

Specificall see page2 & 3: Field of View (Horizontal, Vertical, Diagonal)

 

 
Mar 7, 2012 at 1:47 AM

First, please note that this links describes a piece of hardware that is NOT a Kinect sensor...

Regardless of that, I'm still very, very confused.  The "field of view" is basically the "cube" (more like a pyramid on its side) of the area the camera(s) can see...width, height, and depth (not diagonal).

I'm not sure how that relates to your original question...

Mar 7, 2012 at 2:07 AM

That’s it – because it is a pyramid on its side, and because the number of pixels is fixed - the further away you are from the sensor the larger each pixel gets i.e. each pixel covers a larger area

Mar 7, 2012 at 2:17 AM

I think I finally understand what you're saying.

You're looking for the real world width/height that the pixel represents.  The pixel itself doesn't get larger (a pixel is a pixel) but the area in the real world that pixel represents at 5mm vs. 5m is different.  At 5mm from the sensor, a pixel represents a very small width/height in the real world, but at a distance of 5m from the sensor, a pixel represents a much larger width/height in the real world.

So, after going back and forth on this, I'm not sure I have an easy answer for you.  :)

There is nothing built into the Kinect SDK that would give you what you're looking for.  About the only suggestion I would have is to point your Kinect at a flat surface at a known distance, and measure the width/height of what it can see at that distance (i.e. watch yourself on the cam put a tape measure at one end, and run it to the other end of what you see on the display and get the distance).  After dividing it out at that distance, you should be able to determine a relationship as to what width/height in the real world a pixel on the camera would represent.  From there, you should be able to extrapolate what that width/height would be at varying depths.

So, all that said, I'm not entirely sure how accurate this would be due to the curvature of the lenses on the extremes and what that would do to the values on the extremes.  It's likely that the edges would actually be larger widths/heights than the center areas due to the distortion.

Hope that makes some kind of sense.....

Mar 7, 2012 at 2:20 AM

You should also post your question to the Kinect for Windows forum, as this is outside the realm of our toolkit, and you may get a better answer:

http://social.msdn.microsoft.com/Forums/en-US/category/kinectsdk

Mar 7, 2012 at 3:35 AM

Will do, thanks - Yori