mrcal - camera calibrations and more!

mrcal is a toolkit (originating at NASA/JPL) for working with lens models, camera geometry, images, projections, and the various related operations such as camera calibration. Any task that produces or consumes camera models can utilize this toolkit. It was originally built to generate the high-accuracy calibrations demanded by long-range stereo, so it provides facilities to analyze calibration accuracy and to propagate and report uncertainties.

OpenCV is a library often used to solve similar problems. It can't produce calibrations that are as good as mrcal's, and it can't report on how good its results really are.

Documentation index

Please see a tour of mrcal for a high-level overview of the capabilities of the toolkit.

First, the tools should be built or installed.

Before using the tools, it is helpful to read about the terminology and conventions used in the sources and documentation.

At the core of a calibration routine is an optimization problem. Details about its formulation are useful to be able to interpret the results.

A lens can be represented by any of a number of lens models.

A how-to-calibrate-some-cameras page describes details about how to accomplish this very common task.

After running a calibration, the camera models are written to files on disk.

We can then use these files with a number of command-line tools. In particular, we can compare the projection behaviors of different models. And we can compute the projection uncertainties of a model.

If we need to do something more than what the pre-made tools can do, there're two sets programmatic interfaces available:

Citing

To cite this work in a publication, use this bibtex stanza:

@misc{mrcal,
  author = "Dima Kogan",
  title = "mrcal",
  howpublished = "\url{http://mrcal.secretsauce.net}",
}

Dev communication

For now let's use the github issue tracker for bug reporting and for communication in general. At some point I will probably set up a mailing list as well.

Author

Dima Kogan dima@secretsauce.net

License and copyright

Copyright (c) 2017-2020 California Institute of Technology ("Caltech"). U.S. Government sponsorship acknowledged. All rights reserved.

Licensed under the Apache License, Version 2.0 (the "License"); You may obtain a copy of the License at

http://www.apache.org/licenses/LICENSE-2.0

There's some included external code in the sources, with their own copyrights and licenses.