How to use calibration parameters from KITTI?

57 views (last 30 days)
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

Accepted Answer

Dima Lisin
Dima Lisin on 29 Feb 2016
Edited: Dima Lisin on 11 Mar 2016
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
Prabhudev Prakash
Prabhudev Prakash on 20 Mar 2016
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.
Bashima Islam
Bashima Islam on 16 Sep 2017
Edited: Bashima Islam on 16 Sep 2017
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.

More Answers (2)

Chris Monaco
Chris Monaco on 20 Mar 2016
Where did you find the checkerboard size for the KITTI calibration images?
  3 Comments
James Kiel
James Kiel on 22 Mar 2016
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.
Chris Monaco
Chris Monaco on 2 Apr 2016
Figured this out. The checkerboard size is given as "corner_dist," representing the distance between two adjacent checkerboard corners.

Sign in to comment.


Rafa Z
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

Categories

Find more on MATLAB Support Package for USB Webcams in Help Center and File Exchange

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!