필터 지우기
필터 지우기

Calibration of Three or More Cameras

조회 수: 26 (최근 30일)
morrijos
morrijos 2016년 1월 11일
댓글: Mogeng Li 2020년 5월 12일
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
Cameron Swanson
Cameron Swanson 2019년 9월 4일
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 2020년 5월 12일
Hey Cameron,
My calculation gives
C3Tra=stereoParams12.TranslationOfCamera2*stereoParams23.RotationOfCamera2+stereoParams23.TranslationOfCamera2

댓글을 달려면 로그인하십시오.

채택된 답변

Dima Lisin
Dima Lisin 2016년 1월 11일
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
Max E.
Max E. 2019년 11월 13일
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 2020년 5월 12일
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.

댓글을 달려면 로그인하십시오.

추가 답변 (1개)

morrijos
morrijos 2016년 1월 13일
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

카테고리

Help CenterFile Exchange에서 MATLAB Support Package for USB Webcams에 대해 자세히 알아보기

Community Treasure Hunt

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

Start Hunting!

Translated by