mrcal is my big toolkit for geometric computer vision: making models (camera calibration) and using models (mapping, ranging, etc).
Since the release of mrcal 1.0 back in February I've been busy using the tools in the field, fixing things and improving things. Today I'm happy to finally be able to announce the release of mrcal 2.0.
A big part of this release is maintenance and cleanup that resulted from me heavily using the tools over the course of this past year, and improving whatever was bugging me. The most notable result of that effort, is that splined models are no longer "experimental". They work well and they're awesome. Go try them.
And there're a number of new features, most notably nice dense stereo support and nice sparse triangulation support (with uncertainty propagation!) These are awesome. Go try them.
As before, the tour of mrcal provides a good overview of the capabilities of the toolkit, and is a good place to start reading the documentation. Reading these docs would be very illuminating for anybody that calibrates cameras, even for those that have no intent to actually use the mrcal tools.
Let me know if you try it out!
The most list of most notable improvements, from the release notes:
- Reworked the dense stereo processing. This is now documented, with nice APIs.
Rectified models can be represented in a
.cameramodel
file, and saved to disk. - Added sparse triangulation routines. Uncertainty can be propagated through these routines to gauge the effects of calibration-time and observation-time noise.
LENSMODEL_SPLINED_STEREOGRAPHIC
models have been thoroughly tested, and are ready for prime time. Solver now applies anisotropic regularization to reduce curl in the correction vector field, so the solved models now act mostly radially. Themrcal-show-splined-model-correction
tool extended, and produces clearer plots. These models work well. Use them.- The
observed_pixel_uncertainty
is now estimated from the optimized residuals instead of being specified explicitly. The reported uncertainties should now be correct in absolute, not just relative terms mrcal.unproject()
can report gradients- Calibration residuals can be visualized from the stored cameramodel, not just
from
mrcal-calibrate-cameras --explore
. Added new toolsand new Python API functions
.cameramodel
files can be read/written from C- Added simple projection/unprojection functions to the Python and C APIs:
mrcal.project_pinhole()
mrcal.unproject_pinhole()
mrcal.project_latlon()
mrcal.unproject_latlon()
mrcal.project_lonlat()
mrcal.unproject_lonlat()
This is added to the existing functions
- Added
LENSMODEL_LATLON
andLENSMODEL_LONLAT
models to represent epipolar-aligned and panoramic images respectively