Geometry problems for cameras that aren't where you think they are
OpenGV solves pose estimation when your camera might be a non-central catadioptric rig and you still need RANSAC to converge.

What it does OpenGV is a C++ library for geometric computer vision: given calibrated cameras, it computes absolute pose, relative pose, triangulation, and point-cloud alignment. It wraps these solvers for use inside RANSAC loops or nonlinear optimizers, and ships with Matlab and Python bindings.
The interesting bit The library explicitly handles non-central cameras—think catadioptric rigs or multi-camera arrays where all rays don’t meet at a single point. Most geometry libraries quietly assume a pinhole model; OpenGV treats that as a special case rather than the only case.
Key highlights
- Covers absolute pose, relative pose, triangulation, and point-cloud alignment in one library
- Central and non-central camera models supported throughout
- Designed for embedding in RANSAC or nonlinear optimization workflows
- Matlab and Python interfaces included; precompiled Matlab mex files available
- Maintained by ShanghaiTech’s Mobile Perception Lab
Caveats
- Documentation lives on external pages; the README itself is minimal
- No candidate images provided, so visual examples are absent from the repo
- Star count (1.1k) suggests niche adoption; likely competes with larger ecosystems like OpenCV’s contrib modules
Verdict Worth a look if you’re doing calibrated multi-camera geometry or non-central camera research and need solvers that plug into robust estimation frameworks. Skip if you’re after uncalibrated reconstruction or a batteries-included SLAM system.