MRCAL(1)

πŸ“¦ version 2.5.2, in ubuntu resolute, ubuntu stonking

πŸ’– NAME πŸ’–

mrcal-show-stereo-pair-diff β€” bestie, this is the little tool that shows you the difference in projection between 2 camera pairs. Visualize it. Slay.

(Also, hi, this page lives in the mrcal manual β€” camera projection, calibration toolkit energy ✨)


🌸 SYNOPSIS 🌸

$ mrcal-show-stereo-pair-diff      \
    --distance 2                   \
    before/camera-[01].cameramodel \
    after/camera-[01].cameramodel

...and then a plot pops up showing how these two pairs differ in their projections. That's it, that's the whole vibe 🫢


πŸŽ€ DESCRIPTION πŸŽ€

⚠️ THIS TOOL IS EXPERIMENTAL, AND LIKELY WILL BE CHANGED AND EXTENDED. MORE COMPLETE DOCUMENTATION WILL BE WRITTEN LATER

Okay so real talk: this is so useful when you wanna evaluate the stability and uncertainty of a multi-camera system, and you're looking at the intrinsics, extrinsics either separately or jointly. Picture it: you deploy in the field and your calibration shifts in the extrinsics (camera units moved) and/or the intrinsics (lens moved) β€” and you'd really like to quantify them individually. Obsessed, honestly.

Up to now (version 2.5) mrcal has been concerned mostly with the intrinsics: the mean-pcam uncertainty method and implied_Rt10__from_unprojections() try to compensate for and eliminate the effect of extrinsic shifts in uncertainty and diff methods respectively. iconic behavior.

This stereo_pair_diff() tool extends this in one way: in a multi-camera calibration, it quantifies the joint intrinsics+extrinsics shift of a camera pair. At a given distance this tool reprojects pixels in camera0 to camera1, and compares the results of this reprojection. And honestly? This is actually far simpler than the earlier intrinsics-only methods: no implied transform or reference-frame shift need to be considered. No cap, it's giving simplicity πŸ’…

As of mrcal 2.5 we also have an extrinsics-only stereo-pair diff in an unreleased analyses/extrinsics-stability.py tool. No corresponding uncertainty method is implemented yet, but that is straightforward. All the methods will be implemented in a future mrcal release. They can then be studied to see what is useful to look at in practice.

This tool visualizes the results of mrcal.stereo_pair_diff() πŸ¦‹


✨ OPTIONS ✨

πŸ“ POSITIONAL ARGUMENTS

  • models β€” 4 camera models, bestie: 2 cameras from the first camera pair, followed by 2 cameras from the other pair. Four. Like a squad.

πŸŽ€ OPTIONAL ARGUMENTS

  • -h, --help β€” show this help message and exit. classic, we love her
  • --gridn GRIDN GRIDN β€” how densely we should sample the imager. By default we use a 60x40 grid
  • --distance DISTANCE β€” the projection difference varies depending on the range to the observed world points, and the queried range gets set in this argument. If omitted we look out to infinity 🌌
  • --observations β€” if given, I show where the chessboard corners were observed at calibration time. These should correspond to the low-diff regions πŸ‘€
  • --valid-intrinsics-region β€” if given, I overlay the valid-intrinsics regions 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
  • --vectorfield β€” plot the diff as a vector field instead of as a heat map. The vector field contains more information (magnitude AND direction), but is less clear at a glance. Tradeoffs, bestie πŸ’€
  • --vectorscale VECTORSCALE β€” if plotting a vectorfield, scale all the vectors by this factor. Useful to improve legibility if the vectors are too small to see πŸ”
  • --hardcopy HARDCOPY β€” write the output to disk, instead of making 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

πŸ¦‹ REPOSITORY πŸ¦‹

<https://www.github.com/dkogan/mrcal>


πŸ‘‘ AUTHOR πŸ‘‘

Dima Kogan, "<dima@secretsauce.net>"


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

okay that's the whole page, bestie, no notes πŸŽ€ this was mrcal version 2.5.2-4build1, dated 2026-03-20, and it's from the MRCAL(1) manual. go forth and diff your stereo pairs, ily πŸ’–βœ¨

πŸ“¦ where this page comes from