Calibration of Three or More Cameras

52 visualizaciones (últimos 30 días)
morrijos
morrijos el 11 de En. de 2016
Comentada: Mogeng Li el 12 de Mayo de 2020
Hi all. Has anybody here successfully used MATLAB to calibrate three or more stereo cameras? The Stereo Calibration App, and its associated functions, refer to two cameras specifically. My setup will consist of three cameras oriented 90degress from each other.
Is it possible to treat a single calibrated stereo pair as a single camera, then "add" the third camera by calibrating it with the pair? Or, is there code available for multiple (3+) camera calibration?
Thanks for your suggestions.
  3 comentarios
Cameron Swanson
Cameron Swanson el 4 de Sept. de 2019
Hello, I am trying to perform a similar calibration with 3 cameras as two stereo pairs. My set-up has the cameras positioned with a significant overlapping field of view.
I know that there are toolboxes such as Bo Li's however this is incompatible with my workflow as I need to integrate scale from the stereo calibrations using a checkerboard.
My problem comes when trying to transform the translations and rotations of the 3rd camera into the coordinate system of the 1st camera.
This is the way I have been doing it but it doesn't seem right. Does anyone know how this can be done? Been tearing my hair out trying to get my head around this!
C2Rot=stereoParams12.RotationOfCamera2
C2Tra=stereoParams12.TranslationOfCamera2
C3Rot=stereoParams12.RotationOfCamera2*stereoParams23.RotationOfCamera2;
C3Tra=stereoParams12.TranslationOfCamera2+(stereoParams23.TranslationOfCamera2*stereoParams12.RotationOfCamera2);
% stereoParams12: Calibration of cameras 1&2
% stereoParams23: Calibration of cameras 2&3
Cheers!
Mogeng Li
Mogeng Li el 12 de Mayo de 2020
Hey Cameron,
My calculation gives
C3Tra=stereoParams12.TranslationOfCamera2*stereoParams23.RotationOfCamera2+stereoParams23.TranslationOfCamera2

Iniciar sesión para comentar.

Respuesta aceptada

Dima Lisin
Dima Lisin el 11 de En. de 2016
There are no built-in functions for calibrating 3 or more cameras together. What I would do is first calibrate each camera separately to get the intrinsics. Then calibrate cameras 1 and 2 as a pair to get the R and t between 1 and 2. Then calibrate 2 and 3 as a pair to get the R and t between 2 and 3.
  2 comentarios
Max E.
Max E. el 13 de Nov. de 2019
Calibrating the two pairs 1/2 and 2/3 is not always a good choice. You should make sure where you want your global coordinate system to be first and then think about which rotation matrices and translation vectors are the best for you. I would recommend to define the world coordinate system as the optical center of either of the cameras and then perform a stereo calibration from that chosen camera to the other two. So you could for example define the world coordinate system as the optical center of camera 2 and then perform stereo calibration for the pairs 2/1 (pay attention to the order, so that you get rotation from camera 2 to 1 and not the other way around) and 2/3
Mogeng Li
Mogeng Li el 12 de Mayo de 2020
On top of this, I found that MATLAB refines the intrinsic matrix for each camera in the stereo pair. That means, the intrinsic matrix of camera 2 in stereo 2/3 and stereo 1/2 are not necessarily identical. I'm facing the same problem of a multi-camera rig calibration, and I think the best option is to exploit some external toolboxes and calibrate the entire rig in one go.

Iniciar sesión para comentar.

Más respuestas (1)

morrijos
morrijos el 13 de En. de 2016
Thanks!
A bit of searching reveals that there are some user-submitted packages for this too. I'll check them out...
https://sites.google.com/site/prclibo/toolbox/doc

Categorías

Más información sobre MATLAB Support Package for USB Webcams en Help Center y File Exchange.

Community Treasure Hunt

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

Start Hunting!

Translated by