← all repositories
laurentkneip/opengv

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.

1.1k stars C++ Computer Vision
opengv
Velocity · 7d
+0.2
★ / day
Trend
steady
star history

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.

heatdrop uses Google Analytics to see which pages get read — nothing else. Your call. How we handle data.