One snapshot reveals your camera’s hidden geometry
GeoCalib estimates camera intrinsics and gravity direction from a single image by combining geometric optimization with deep learning.

What it does
GeoCalib is a research implementation (ECCV 2024) that reverse-engineers a camera’s internal parameters and gravity direction from a single photograph. It exposes a lightweight Python package, geocalib, that runs inference with minimal dependencies, while the heavier training and evaluation machinery lives in a companion library, siclib.
The interesting bit Instead of regressing parameters end to end with a neural network alone, GeoCalib folds deep learning into a geometric optimization pipeline. It also supports partial calibration: hand it a known focal length or gravity vector and it will refine the rest, or feed it multiple images from the same camera to tighten estimates under shared intrinsics.
Key highlights
- Supports several camera models out of the box, from vanilla pinhole to fisheye (
simple_divisional) and radial distortion. - Can calibrate with priors when either intrinsics or gravity are already known.
- Pools information across multiple images captured by the same camera.
- Published benchmarks on LaMAR, MegaDepth, and TartanAir show it outperforming DeepCalib, ParamNet, and UVP on roll, pitch, and field-of-view accuracy.
- Minimal-dependency inference package suitable for dropping into existing pipelines.
Caveats
- The principal point is hard-coded to the image center and never optimized.
- Distorted lenses require loading a separate
weights="distorted"checkpoint; the default checkpoint expects pinhole images. - Full training code and the OpenPano dataset are managed through the separate
sicliblibrary, not the coregeocalibpackage.
Verdict Worth a look if you are building photogrammetry, AR, or robotics pipelines that need to auto-calibrate unknown cameras from sparse imagery. Skip it if you already have a calibrated rig or need to optimize the principal point.
Frequently asked
- What is cvg/GeoCalib?
- GeoCalib estimates camera intrinsics and gravity direction from a single image by combining geometric optimization with deep learning.
- Is GeoCalib open source?
- Yes — cvg/GeoCalib is open source, released under the Apache-2.0 license.
- What language is GeoCalib written in?
- cvg/GeoCalib is primarily written in Python.
- How popular is GeoCalib?
- cvg/GeoCalib has 867 stars on GitHub.
- Where can I find GeoCalib?
- cvg/GeoCalib is on GitHub at https://github.com/cvg/GeoCalib.