How to run the Stereo camera calibrator with a fixed intrinsic parameters?

조회 수: 4 (최근 30일)
Jason
Jason 2014년 10월 26일
댓글: Cameron Swanson 2019년 9월 4일
I have three cameras A, B and C, when I stereo calibrate A B and B C, the intrinsic parameters computed for B is different for those two cases, and I can only place the checkerboard at limited locations where it is visible on both views.
Is it possible to calibrate A individually, B individually, and C individually to get a set of intrinsic parameters, so the checkerboard can cover most part of the camera, and then feed the intrinsic parameters into the stereo camera calibrator app just to get the extrinsic parameters? Please let me know.
On the side note, the camera calibration toolbox from Caltech has the option to not re-optimize the intrinsic parameters so it suit my purposes but it can't detect corners automatically and from the benchmarks I saw the accuracy is worse than the Matlab 2014 A or B camera calibration app.
  댓글 수: 1
Cameron Swanson
Cameron Swanson 2019년 9월 4일
I know this post is quite old now but I hoped you could maybe help (or someone else who sees it!). Tearing my hair out with this one. I have the same problem with intrinsics differing, my fix for that has simply been to take the average of the two, a little rudimentary I know..
My question actually relates to transforming the translations and rotations of the 3rd camera into the coordinate system of the 1st camera (from the 2nd camera).
This is the way I have been doing it but it doesn't seem right. Any idea how this can be done?
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!

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

답변 (2개)

Dima Lisin
Dima Lisin 2014년 11월 1일
Hi Jason,
Unfortunately the Camera Calibrator app does not currently have this capability. You can try working around this limitation. Calibrate the stereo pair (A,B) to get stereoParamsAB. Then calibrate the pair (B,C) to get stereoParamsBC. Then replace the intrinsics for camera B in stereoParamsBC with the values from stereoParamsAB. You would have to create a new stereoParameters object "by hand", because those properties are not settable. Of course, if you do this, your accuracy will probably suffer.
Out of curiousity, do you only use 3 cameras, or do you use more than 3?

Jason
Jason 2014년 11월 1일
Hi Dima,
Thanks a lot for letting me know. My application requires high accuracy in calibration so the approximation method you suggested is probably not good enough. I have multiple stereo cameras like about 5 pairs so 10 cameras in total and I am trying to find the relative pose between different stereo pairs. I was hoping if the stereoCameraCalibrator has the function of fixing intrinsic parameters and that would solve my problem. Do you have any suggestions?
Thanks, Jason
  댓글 수: 1
Dima Lisin
Dima Lisin 2014년 11월 1일
Hi Jason,
The only thing I can suggest here is to calibrate each camera individually, and then do your own optimization to find the rotations and translations between the cameras. If you have the Optimization Toolbox, you can use functions like lsqnonlin or lsqcurvefit to do non-linear least squares.

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

카테고리

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