With the impending release of the new Kinect for Windows this summer, I took a closer look at the differences in Field of View between the old and the new Kinect for Windows.
A well known improvement of the new Kinect for Windows sensor is the higher resolution of the image and depth streams. Part of the extra pixels are used to cover the extra viewing area due the increased horizontal and vertical fields of view of both the color and depth camera. The rest of the extra pixels contribute to a higher precision of what the cameras can see.
This article is based on preliminary software and/or hardware and APIs are preliminary and subject to change.
The old Kinect has a color image resolution of 640 x 480 pixels with a fov of 62 x 48.6 degrees resulting in an average of about 10 x 10 pixels per degree. (see source 1)
The new Kinect has color image resolution of 1920 x 1080 pixels and a fov of 84.1 x 53.8 resulting in an average of about 22 x 20 pixels per degree. (see source 2)
This improves the color image detail with a factor of two in horizontal and vertical direction. This is a welcome improvement for scenario’s that use the color image for taking pictures or videos, background removal (green screening), face recognition and more.
The old Kinect has a depth image resolution of 320 x 240 pixels with a fov of 58.5 x 46.6 degrees resulting in an average of about 5 x 5 pixels per degree. (see source 1)
The new Kinect has a depth image resolution of 512 x 424 pixels with a fov of 70.6 x 60 degrees resulting in an average of about 7 x 7 pixels per degree. (see source 2)
This does not seem as a large improvement, but the depth images of the old and new Kinect can not be compared that easily. Due to the use of time-of-flight as the core mechanism for depth retrieval each pixel in the 512 x 424 depth image of the new Kinect contains a real measured depth value (z-coordinate) with a much higher precision than the depth image of the Kinect V1. The depth image of the old Kinect is based on the structured light technique. This results in an interpolated depth image that is based on a much lower number of samples than what the depth image resolution suggests.
Kinect field of view explorer
I built a tool based on WebGL / three.js to allow you to explore the differences between the old and new Kinect, their positioning and how this influences what can be seen. You can switch between the different Kinect sensor fields of view and it allows you to tweak the height and tilt of the sensor. It calculates the intersection with the floor and displays the width of the intersection and distance from the sensor.
The tool was tested to work with Mozilla Firefox 27 and Google Chrome 33 and Internet Explorer 11.
1 Mentioned values were retrieved from a Kinect V1 sensor with help of the Kinect V1 SDK. The KinectSensor object contains a ColorImageStream and DepthImageStream that both contain a FrameWidth and FrameHeight in pixels and the NominalHorizontalFieldOfView and NominalVerticalFieldOfView in degrees. The DepthImageStream also contains values for the MinDepth and MaxDepth in millimeters.
2 Mentioned values were retrieved from a Kinect V2 sensor with help of the Kinect V2 SDK. The KinectSensor object contains a ColorFrameSource and DepthFrameSource that both contain a FrameDescription containing the Width and Height in pixels and the HorizontalFieldOfView and VerticalFieldOfView in degrees. The DepthFrameSource also reports the DepthMinReliableDistance and DepthMaxReliableDistance in millimeters.