Information on Kinect
Research.Kinect History
Hide minor edits - Show changes to output
Changed line 4 from:
* [[http://labs.manctl.com/rgbdemo | '''RGBDemo, software to calibrate and visualize the output of a Kinect''']]
to:
* [[http://rgbdemo.org | '''RGBDemo, software to calibrate and visualize the output of a Kinect''']]
Changed line 4 from:
* [[KinectRgbDemoV6 | '''RGBDemo, software to calibrate and visualize the output of a Kinect''']]
to:
* [[http://labs.manctl.com/rgbdemo | '''RGBDemo, software to calibrate and visualize the output of a Kinect''']]
Changed line 4 from:
* [[KinectRgbDemoV5 | '''RGBDemo, software to calibrate and visualize the output of a Kinect''']]
to:
* [[KinectRgbDemoV6 | '''RGBDemo, software to calibrate and visualize the output of a Kinect''']]
Changed lines 4-5 from:
* [[KinectRgbDemo | Software to calibrate and visualize the output of a Kinect]]
* [[KinectRgbDemoV4 | '''NEW: version 0.4 of RGBDemo''']]
* [[KinectRgbDemoV4 | '''NEW: version 0.4 of RGBDemo
to:
* [[KinectRgbDemoV5 | '''RGBDemo, software to calibrate and visualize the output of a Kinect''']]
Changed line 5 from:
* [[KinectRgbDemoV3 | '''NEW: version 0.4 of RGBDemo''']]
to:
* [[KinectRgbDemoV4 | '''NEW: version 0.4 of RGBDemo''']]
Changed line 5 from:
* [[KinectRgbDemoV3 | '''NEW: version 0.3 of RGBDemo''']]
to:
* [[KinectRgbDemoV3 | '''NEW: version 0.4 of RGBDemo''']]
Changed line 5 from:
* [[KinectRgbDemoV2 | '''NEW: version 0.2 of RGBDemo''']]
to:
* [[KinectRgbDemoV3 | '''NEW: version 0.3 of RGBDemo''']]
Added line 5:
* [[KinectRgbDemoV2 | '''NEW: version 0.2 of RGBDemo''']]
Changed line 4 from:
* [[KinectRgbDemo | Preliminar software to calibrate and visualize the output of a Kinect]]
to:
* [[KinectRgbDemo | Software to calibrate and visualize the output of a Kinect]]
Changed line 3 from:
* [[KinectCalibration | Information on semi-automatic calibration of depth/color registration]]
to:
* [[KinectCalibration | Theory on depth/color calibration and registration]]
Changed lines 1-4 from:
(:redirect [[Research.KinectCalibration]]:)
to:
(:title Information on Kinect :)
* [[KinectCalibration | Information on semi-automatic calibration of depth/color registration]]
* [[KinectRgbDemo | Preliminar software to calibrate and visualize the output of a Kinect]]
* [[KinectCalibration | Information on semi-automatic calibration of depth/color registration]]
* [[KinectRgbDemo | Preliminar software to calibrate and visualize the output of a Kinect]]
Changed lines 44-45 from:
Note that another transformation claimed to be more accurate was proposed there: [http://groups.google.com/group/openkinect/browse_thread/thread/31351846fd33c78/e98a94ac605b9f21?lnk=gst&q=stephane#e98a94ac605b9f21 Stephane Magnenat post] but I haven't tested it yet.
to:
Note that another transformation claimed to be more accurate was proposed there: [[http://groups.google.com/group/openkinect/browse_thread/thread/31351846fd33c78/e98a94ac605b9f21?lnk=gst&q=stephane#e98a94ac605b9f21|Stephane Magnenat post]] but I haven't tested it yet.
Changed lines 30-37 from:
!!! Stereo calibration
Selecting also the corners of the chessboard on the color images (they would also be easy to extract automatically using the chessboard recognition), standard stereo calibration can be performed.
%width=320px% Attach:kinect_chessboard_manual_color.png
!! Mapping depth pixels with color pixels
The first step is to undistort rgb and depth images using the estimated distortion coefficients. Then, using the depth camera intrinsics, each pixel (x_d,y_d) of the depth camera can be projected to metric 3D space using the following formula:
Selecting also the corners of the chessboard on the color images (they would also be easy to extract automatically using the chessboard recognition), standard stereo calibration can be performed
%width=320px% Attach:
!! Mapping depth pixels with color pixels
The first step is to undistort rgb and depth images using the estimated distortion coefficients. Then, using the depth camera intrinsics, each pixel (x_d,y_d) of the depth camera can be projected to metric 3D space using the following formula:
to:
!!! Transformation of raw depth values into meters
Raw depth values are integer between 0 and 2047. They can be transformed into depth in meters using the parameters given on the [[http://www.ros.org/wiki/kinect_node|Ros Kinect]] page.
Raw depth values are integer between 0 and 2047. They can be transformed into depth in meters using the parameters given on the [[http://www.ros.org/wiki/kinect_node|Ros Kinect]] page.
Changed lines 34-36 from:
P3D.y = (y_d - cy_d) * depth(x_d,y_d) / fy_d
P3D
to:
float raw_depth_to_meters(int raw_depth)
{
if (raw_depth < 2047)
{
return 1.0 / (raw_depth * -0.0030711016 + 3.3309495161);
}
return 0;
}
{
if (raw_depth < 2047)
{
return 1.0 / (raw_depth * -0.0030711016 + 3.3309495161);
}
return 0;
}
Changed lines 44-47 from:
We can then reproject each 3D point on the color image and get its color
to:
Note that another transformation claimed to be more accurate was proposed there: [http://groups.google.com/group/openkinect/browse_thread/thread/31351846fd33c78/e98a94ac605b9f21?lnk=gst&q=stephane#e98a94ac605b9f21 Stephane Magnenat post] but I haven't tested it yet.
!!! Stereo calibration
Selecting also the corners of the chessboard on the color images (they would also be easy to extract automatically using the chessboard recognition), standard stereo calibration can be performed.
%width=320px% Attach:kinect_chessboard_manual_color.png
!! Mapping depth pixels with color pixels
The first step is to undistort rgb and depth images using the estimated distortion coefficients. Then, using the depth camera intrinsics, each pixel (x_d,y_d) of the depth camera can be projected to metric 3D space using the following formula:
!!! Stereo calibration
Selecting also the corners of the chessboard on the color images (they would also be easy to extract automatically using the chessboard recognition), standard stereo calibration can be performed.
%width=320px% Attach:kinect_chessboard_manual_color.png
!! Mapping depth pixels with color pixels
The first step is to undistort rgb and depth images using the estimated distortion coefficients. Then, using the depth camera intrinsics, each pixel (x_d,y_d) of the depth camera can be projected to metric 3D space using the following formula:
Changed lines 55-57 from:
P3D' = R.P3D + T
P2D_rgb.x = (P3D'.x * fx_rgb / P3D'.z) + cx_rgb
P2D_rgb.y =(P3D'.y * fy_rgb / P3D'.z) + cy_rgb
P2D
P2D_rgb.y =
to:
P3D.x = (x_d - cx_d) * depth(x_d,y_d) / fx_d
P3D.y = (y_d - cy_d) * depth(x_d,y_d) / fy_d
P3D.z = depth(x,y)
P3D.y = (y_d - cy_d) * depth(x_d,y_d) / fy_d
P3D.z = depth(x,y)
Changed lines 60-63 from:
with R and T the rotation and translation parameters estimated during the stereo calibration.
The parameters I could estimate for my Kinect are:
* Color
* Color
to:
with fx_d, fy_d, cx_d and cy_d the intrinsics of the depth camera.
We can then reproject each 3D point on the color image and get its color:
We can then reproject each 3D point on the color image and get its color:
Added lines 65-74:
P3D' = R.P3D + T
P2D_rgb.x = (P3D'.x * fx_rgb / P3D'.z) + cx_rgb
P2D_rgb.y = (P3D'.y * fy_rgb / P3D'.z) + cy_rgb
@]
with R and T the rotation and translation parameters estimated during the stereo calibration.
The parameters I could estimate for my Kinect are:
* Color
[@
P2D_rgb.x = (P3D'.x * fx_rgb / P3D'.z) + cx_rgb
P2D_rgb.y = (P3D'.y * fy_rgb / P3D'.z) + cy_rgb
@]
with R and T the rotation and translation parameters estimated during the stereo calibration.
The parameters I could estimate for my Kinect are:
* Color
[@
Changed line 103 from:
Also check this webpage for more information on automatic calibration: [http://www.ros.org/wiki/kinect_node|Ros Kinect]
to:
Also check this webpage for more information on automatic calibration: [[http://www.ros.org/wiki/kinect_node|Ros Kinect]]
Changed lines 13-14 from:
Here is a preliminary semi-automatic way to calibrate the Kinect depth sensor and the rgb output to enable a mapping between them. You can see a result there:
to:
Here is a preliminary semi-automatic way to calibrate the Kinect depth sensor and the rgb output to enable a mapping between them. You can see some results there:
Added lines 102-103:
Also check this webpage for more information on automatic calibration: [http://www.ros.org/wiki/kinect_node|Ros Kinect]
Changed lines 97-98 from:
to:
!! ROS calibration files
Added lines 1-10:
(:linebreaks:)
%define=box block border="0px solid #bbbbbb"%
(:title Kinect:)
(:htoc:)
[[<<]]
%define=box block border="0px solid #bbbbbb"%
(:title Kinect:)
(:htoc:)
[[<<]]
Added lines 86-91:
!!! ROS calibration files
Here are some calibration files in ROS (http://code.ros.org) format.
Attach:calibration_rgb.yaml
Attach:calibration_depth.yaml
Changed lines 3-4 from:
Here is a preliminary semi-automatic way to calibrate the Kinect depth sensor and the rgb output to enable a mapping between them. You can see a result there: (:youtube BVxKvZKKpds:)
to:
Here is a preliminary semi-automatic way to calibrate the Kinect depth sensor and the rgb output to enable a mapping between them. You can see a result there:
(:youtube BVxKvZKKpds:)
(:youtube BVxKvZKKpds:)
Changed lines 3-4 from:
Here is a preliminary semi-automatic way to calibrate the Kinect depth sensor and the rgb output to enable a mapping between them.
to:
Here is a preliminary semi-automatic way to calibrate the Kinect depth sensor and the rgb output to enable a mapping between them. You can see a result there: (:youtube BVxKvZKKpds:)