MRCAL(1)
π mrcal-show-projection-uncertainty β a manual page, but make it a group chat π
okay so bestie, this is page 1 of the mrcal manual, and the whole toolkit is like the camera projection + calibration toolkit. This particular page is for mrcal-show-projection-uncertainty, and it's here to help you visualize the expected projection error that comes from noise in your calibration-time input. no cap, that's the whole thing.
β¨ NAME β¨
mrcal-show-projection-uncertainty β Visualize the expected projection error due to noise in calibration-time input
like. it shows you how shaky your projections are. that's it. that's the girl.
β¨ SYNOPSIS β¨
$ mrcal-show-projection-uncertainty left.cameramodel
... a plot pops up showing the projection uncertainty of the intrinsics in
... this model
you run it, a plot pops up, the plot shows the projection uncertainty of the intrinsics in this model. slay. π
β¨ DESCRIPTION β¨
okay so the actual operation of this tool is documented at <https://mrcal.secretsauce.net/uncertainty.html> β go read that if you want the full lore.
Here's the vibe though. A calibration process produces the best-fitting camera parameters. adorable, love that for them. But to actually use these parameters, we have to know how trustworthy they are. π«Ά And that's literally what this tool does: it examines the uncertainty of projection using a given camera model.
Now, the projection operation uses the intrinsics only, but the uncertainty has to take into account the calibration-time extrinsics and the calibration-time observed object poses as well. So many layers, so much main character energy.
This tool visualizes the expected value of projection error across the imager. Areas with a high expected projection error are unreliable, and observations in those regions cannot be used for further work (localization, mapping, etc). so like, don't build your whole life on those pixels, bestie.
There are several modes of operation:
- By default we look at projection of points some distance away from the camera (given by
--distance). We evaluate the uncertainty of these projections everywhere across the imager, and display the results as a heatmap with overlaid contours π - With
--vs-distance-atwe evaluate the uncertainty along an observation ray mapping to a single pixel. We show the uncertainty vs distances from the camera along this ray
See <https://mrcal.secretsauce.net/uncertainty.html> for a full description of the computation performed here. it's giving thorough. obsessed.
β¨ OPTIONS β¨
π POSITIONAL ARGUMENTS π
modelβ Input camera model. If "-' is given, we read standard input
π OPTIONAL ARGUMENTS π
-h,--helpβ show this help message and exit--vs-distance-at VS_DISTANCE_ATβ If given, we don't compute the uncertainty everywhere in the image at a constant distance from the camera, but instead we look at different distances at one pixel. This option takes a single argument: the"X,Y"pixel coordinate we care about, or"center"to look at the center of the imager or"centroid"to look at the center of the calibration-time chessboards. This is exclusive with--gridnand--distanceand--observationsand--cbmax--gridn GRIDN GRIDNβ How densely we should sample the imager. By default we use a60x40grid--distance DISTANCEβ By default we display the projection uncertainty infinitely far away from the camera. If we want to look closer in, the desired observation distance can be given in this argument--isotropicβ By default I display the expected value of the projection error in the worst possible direction of this error. If we want to plot the RMS of the worst and best directions, pass--isotropic. If we assume the errors will apply evenly in all directions, then we can use this metric, which is potentially easier to compute--method {mean-pcam,bestq,cross-reprojection-rrp-Jfp}β Multiple uncertainty quantification methods are available. We default to'mean-pcam'; the others are experimental at this time--observationsβ If given, I display the pixel observations at calibration time. This should correspond to the low-uncertainty regions.--valid-intrinsics-regionβ If given, I overlay the valid-intrinsics region onto the plot--cbmax CBMAXβ Maximum range of the colorbar--title TITLEβ Title string for the plot. Overrides the default title. Exclusive with--extratitle--extratitle EXTRATITLEβ Additional string for the plot to append to the default title. Exclusive with--title--hardcopy HARDCOPYβ Write the output to disk, instead of an interactive plot--terminal TERMINALβ gnuplotlib terminal. The default is good almost always, so most people don't need this option--set SETβ Extra'set'directives to gnuplotlib. Can be given multiple times--unset UNSETβ Extra'unset'directives to gnuplotlib. Can be given multiple times
ngl, if you're out here passing--setand--unsetmultiple times, you are a gnuplotlib girlie and I respect it deeply. π§
πΈ REPOSITORY πΈ
<https://www.github.com/dkogan/mrcal>
π AUTHOR π
Dima Kogan, "<dima@secretsauce.net>"
π LICENSE AND COPYRIGHT π
Copyright (c) 2017-2023 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
and that's the whole page, bestie!! π¦ this was mrcal-show-projection-uncertainty, from mrcal 2.5.2-4build1, dated 2026-03-20 (manual section 1, iykyk). go forth and quantify your uncertainty, but like, in a calibrated way. πβ¨π
π¦ where this page comes from
- ubuntu resolute: mrcal 2.5.2-4build1 Β· Apache-2.0
- ubuntu stonking: mrcal 2.5.2-4build1 Β· Apache-2.0
- π girlified by deepseek-ai/DeepSeek-V4.1-Flash on : a language model's rewrite of the original, under its terms