How to run the Stereo camera calibrator with a fixed intrinsic parameters?
13 次查看(过去 30 天)
显示 更早的评论
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
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
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?
0 个评论
Jason
2014-11-1
1 个评论
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 Center 和 File 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!