Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

test not good in my dataset about fish images #66

Open
zuixiaosanlang opened this issue Feb 18, 2024 · 8 comments · Fixed by #69 · May be fixed by #80
Open

test not good in my dataset about fish images #66

zuixiaosanlang opened this issue Feb 18, 2024 · 8 comments · Fixed by #69 · May be fixed by #80
Labels
question Further information is requested

Comments

@zuixiaosanlang
Copy link

reproject error:
image

other message:
image

I don't know if it's normal.

my dataset and configs link:
https://drive.google.com/file/d/1OOtaLzSQAoGMMsNgfCF0Aaujv5h6Ac0H/view?usp=drive_link

@rameau-fr
Copy link
Owner

Thank you very much for using MC-Calib. Indeed, such a poor reprojection error should not occur. It seems that only some images are "outliers," causing problems during the calibration, and I would assume it is because their angle is quite tricky and that the intrinsic calibration for strong peripheral aberration is not very good.
I would like to suggest a few modifications to your current calibration pipeline:

  • Image Quantity: You probably need more synchronized images to calibrate your system. More importantly, you may need more diversity in the motion used to capture the images. Some pictures should be closer, others further away, and you require a variety of angles and translations. Ensure that the keypoints cover the entire sensor. This is even more critical when dealing with fisheye cameras. Using at least 30 to 50 images is recommended, especially if you are calibrating both the intrinsic and extrinsic parameters from scratch.
  • Synchronization and Rolling Shutter: I am not sure about the exact setup you are currently using, but if your cameras do not have a global shutter, then you need to acquire the images when the entire setup is perfectly still. The same goes for the synchronization between the two cameras.
  • Marker Size: From the examples you shared with me, it seems that some markers are not detected. What I would recommend is to use a smaller number of markers to make them bigger and more easily detectable.
  • Better intrinsic calibration: You do not always need to have the boards detected on both cameras; feel free to have some images specifically for one of the two sensors to make sure you cover as much as possible.
  • Configuration File: Would it be possible to also share your configuration file? Maybe I can find something to say on them too

@zuixiaosanlang
Copy link
Author

@rameau-fr
thanks.

configuration file
calib_param_scene_1.zip

image

@rameau-fr
Copy link
Owner

Your calibration configuration looks great, but I would probably increase the min_per_pts to about 0.4 just to be sure to avoid critical scenarios. Also, I noticed that you generate your calibration boards from another website; I am quite unsure if these boards are compatible with MC-Calib. You should generate the calibration boards directly from the toolbox as described in the tutorial.

@BAILOOL
Copy link
Collaborator

BAILOOL commented Mar 27, 2024

@zuixiaosanlang We've fixed a bug related to fisheye calibration. It's now merged to master branch. Please try the calibration again - it must result in the lower reprojection error.

@zuixiaosanlang
Copy link
Author

@BAILOOL
thanks,
i notice this before. and i think i correct it, because i get the same result. i forget to point this out.
my code:
image

i also change to your new code.but get the same result.

@rameau-fr
Copy link
Owner

rameau-fr commented Apr 1, 2024

Hello,
Have you regenerated the board using MC-Calib directly?
The Calib.io boards are most likely not compatible with the toolbox.

@BAILOOL BAILOOL added the question Further information is requested label May 26, 2024
@BobbleLaw
Copy link

BobbleLaw commented Aug 26, 2024

I am not sure if it's relevant to this issue, but the intrinsics initialization process in OpenCV fisheye is not stable which may affect the following calibration process, at least that's my case. The bug seems to be fixed in 4.10.x, check issue. If upgrade OpenCV is not an option, a workaround is to give correct initial values, and set flags to use initial guess.

@BAILOOL BAILOOL linked a pull request Aug 29, 2024 that will close this issue
@rameau-fr
Copy link
Owner

rameau-fr commented Aug 30, 2024

Thank you so much for this valuable feedback @BobbleLaw. We are testing MC-Calib with OpenCV==4.10.0.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
question Further information is requested
Projects
None yet
4 participants