rameau-fr / MC-Calib

A generic and robust calibration toolbox for multi-camera systems
MIT License
377 stars 54 forks source link

Calibration Fails to Converge for Non-overlapping Dual Camera Setup #67

Closed EladDan closed 4 months ago

EladDan commented 4 months ago

System information (version)

Vision system

Describe the issue / bug

The calibration process does not converge for my dual camera setup. The resulted re-porojection error is 78px. This issue arose despite successful calibration with a similar setup but different camera parameters (90deg rotation, 20cm baseline).

Console output link Current preset visual

I would appreciate any guidance or suggestions on resolving the calibration issue. Thank you for your support and dedication to the community.

rameau-fr commented 4 months ago

Hello,

Thank you very much for using MC-Calib and for reporting such type of errors, it is very valuable to us to improve the toolbox.

I could replicate your issue, and I figured out the problem. You are not the first one to report such kind of issue, the problem is related to he_approach: 0 this configuration will run one of our strategy which is supposed to make the calibration faster and more robust. However, it seems to cause an issue in your scenario. changing this parameter to he_approach: 1 is resolving your problem and you will end up with a projection error of 0.24px. would recommend using he_approach: 1 by default to avoid such kind of problem. Maybe, in a future version, we need to change the configuration examples and leave a comment in the README to warn users.

Additional recommendations The diversity of the images for your calibration seems rather limited; I would encourage you to take more pictures at least to improve the intrinsic parameters of your cameras. You do not need to see all the boards on both cameras together for all images. You can take additional pictures where, for instance, the boards are visible only in camera 1 to ensure a good estimation of the intrinsic parameters.

EladDan commented 4 months ago

Changing he_approach to 1 worked perfectly. Thanks a lot for the quick and precise reply!