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

5-parameter deformation model #19

Open
Mr-ZhuJun opened this issue Apr 22, 2024 · 1 comment
Open

5-parameter deformation model #19

Mr-ZhuJun opened this issue Apr 22, 2024 · 1 comment

Comments

@Mr-ZhuJun
Copy link

Board deformation
The calibration object is assumed to be nominally planar. However, large calibration boards used for calibration of wide lenses are never flat: temperature and humidity effects deform the board strongly-enough to affect the calibration. mrcal currently supports a simple 2-parameter deformation model. This model uses two axis-aligned parabolic factors. Let the chessboard grid span
along the and axes. Then I define the non-planar deformation as with and being the two deformation factors being optimized by the solver. If the board were flat, and would be 0, and thus we would have everywhere. The deflection at the edges is 0, and is strongest at the center.Empirically, this appears to work well: I get better-fitting solves, and less systematic error. And the optimal deformation factors
, are consistent between different calibrations.Clearly, this does not work for especially strong or asymmetric deflections. There's a richer 5-parameter deformation model in a not-yet-released branch that appears to work even for asymmetric deflections. This needs more testing, and has not yet been released. Talk to Dima if you want to play with it.

@dkogan
Copy link
Owner

dkogan commented Apr 27, 2024

Oh; that's what you're asking about. Here's the branch: https://github.com/dkogan/mrcal/tree/richer-board-shape
It is very out-of-date, and very experimental. It has somewhat worked to process a dataset captured with an asymmetrically-bent board. But the results still weren't perfect, and manufacturing a more precise chessboard was the solution to get reliable results.

You can play with that branch. But don't expect it to "just work". This would be a researchy experimental work. I'm focused on other improvements currently, and I'm unlikely to come back to THIS anytime soon. Let me know if you play with this, and if you end up with any success from it.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants