PoseLib/PoseLib
Minimal solvers for calibrated camera pose estimation
What it solves
PoseLib is a library of minimal solvers for camera pose estimation. It addresses the problem of determining a camera's position and orientation (pose) based on different types of correspondences, such as point-to-point, point-to-line, and line-to-line mappings between 2D image data and 3D world data.
How it works
The library provides a collection of specialized solvers that calculate the pose from a minimal set of correspondences. It uses a consistent calling interface and minimizes external dependencies (relying primarily on Eigen).
To handle noise and outliers in real-world data, it implements robust estimators based on LO-RANSAC. These estimators normalize data, generate hypotheses using the minimal solvers, and then apply non-linear refinement (minimizing reprojection or Sampson error) to produce a final, accurate pose.
It supports various camera models (including Pinhole, Radial, and OpenCV Fisheye) and provides Python bindings for easy integration.
Who it’s for
This library is designed for developers and researchers working in computer vision, SLAM (Simultaneous Localization and Mapping), and 3D reconstruction who need fast, robust, and stand-alone solvers for camera pose estimation.
Highlights
- Diverse Solver Set: Supports absolute pose, relative pose, homography, and fundamental matrix estimation from points, lines, and monocular depth estimates.
- Robust Estimation: Built-in LO-RANSAC and non-linear refinement with multiple loss functions (Huber, Cauchy, etc.).
- High Performance: Minimal solvers are optimized for speed, with some running in the nanosecond range.
- COLMAP Compatibility: Uses camera models compatible with COLMAP for seamless integration into 3D reconstruction pipelines.
- Python Bindings: Full exposure of minimal solvers and robust estimators to Python users.
Related
- Project
- Project
- Project
- Project
- Project