MATLAB Answers

0

How to use calibration parameters from KITTI?

Asked by Mohammad Alzorgan on 28 Feb 2016
Latest activity Answered by Rafa Z
on 16 Oct 2017
I'm working on stereo vision and I am using data from http://www.cvlibs.net/datasets/kitti/ The calibration parameters they use are very different from the parameters that the stereo camera calibrator toolbox produce and I couldn't find a way to use their data in MATLAB.
I also tried to use their calibration images in stereo camera calibrator toolbox which looks like this:
But when I run the calibration it fails saying:
Please help me if you have any idea on how to solve this

  2 Comments

What do the Kitti calibration parameters look like?

Sign in to comment.

3 Answers

Answer by Dima Lisin
on 29 Feb 2016
Edited by Dima Lisin
on 11 Mar 2016
 Accepted Answer

The file calib_cam_to_cam.txt contains parameters for 3 cameras.
  • S_0x: is the image size. You do not really need it for anything.
  • K_0x: is the intrinsics matrix. You can use it to create a cameraParameters object in MATLAB, but you have to transpose it, and add 1 to the camera center, because of MATLAB's 1-based indexing.
  • D_0x: are the distortion coefficients in the form [k1, k2, p1, p2, k3]. k1, k2, and k3 are the radial coefficients, and p1 and p2 are the tangential distortion coefficients.
  • R_0x and T_0x are the camera extrinsics. They seem to be a transformation from a common world coordinate system into each of the cameras' coordinate system.
  • S_rect_0x, R_rect_0x, and P_rect_0x are the parameters of the rectified images.
Given all that, here's what you should do.
  • Pick two cameras of the three, that you want to use.
  • Create a cameraParameters object for each camera using the intrinsics and the distortion parameters (K_0x and D_0x). Don't forget to transpose K and adjust for 1-based indexing.
  • From the extrinsics of the two cameras (R_0x's and T_0x's) compute the rotation and translation between the two cameras. (R and t).
  • Use the two cameraParameters objects together with R and t to create a stereoParameters object.

  4 Comments

Show 1 older comment
Same problem here. Would like a more in-depth explanation on calculating the R and t.
Estimating R and t with Reference images and feature points (Fundamental Matrix and then, R and t) seems to be a roundabout method, when individual camera R and t are already available. Getting, the R and t of second camera wrt first camera by a direct method would be very helpful.
I still did not understand how can I get the stereo camera calibration parameters. I am totally new in computer vision. It will be really helpful if you can explain to me how to get the stereo parameters. I want to run the example code for point-cloud generation in Matlab on this dataset.

Sign in to comment.


Answer by Chris Monaco on 20 Mar 2016

Where did you find the checkerboard size for the KITTI calibration images?

  3 Comments

As far as I am aware the checkerboard size is not given with the KITTI calibration data. You have to use the calibration data to manually make a stereoParameters object using the information mentioned above, the information in about the KITTI calibration data here: http://www.cvlibs.net/publications/Geiger2013IJRR.pdf and the information in the matlab documentation here: http://www.mathworks.com/help/vision/ref/stereoparameters-class.html
I'm working on this still but I'll post a more complete how-to once I figure it out completely. If anyone has tips on how to make the rotation matrix and translation vector between cameras 2 and 3 that would be very helpful.
I believe the Rotational Matrix and Translation Vector are values with respect to Camera 0. Unless I am mistaken it would then be the difference of Camera 2 and Camera 3 from Camera 0.
Figured this out. The checkerboard size is given as "corner_dist," representing the distance between two adjacent checkerboard corners.

Sign in to comment.


Answer by Rafa Z
on 16 Oct 2017

Can you someone explain how to in more details (kind of new to this field so step by step instruction will be highly appreciated)? I still can not understand how to get cameraParameters1 and cameraParameters2

  0 Comments

Sign in to comment.