This repository provides minimal Python bindings for the Ceres Solver and the implementation of factor graphs for bundle adjustment and pose graph optimization.
Wheels for Python 8/9/10/11/12 on Linux, macOS 10+ (both Intel and Apple Silicon), and Windows can be installed using pip:
pip install pyceres
To build from source, follow the following steps:
- Install the Ceres Solver following the official instructions.
- Clone the repository and build the package:
git clone https://github.com/cvg/pyceres.git
cd pyceres
python -m pip install .
Alternatively, you can build the Docker image:
docker build -t pyceres -f Dockerfile .
Factors may be defined in Python (see examples/test_python_cost.py
) or in C++ with associated Python bindings.
PyCOLMAP provides the following cost functions in pycolmap.cost_functions
:
- reprojection error for different camera models, with fixed or variable pose and 3D points
- reprojection error for multi-camera rigs, with fixed or variable rig extrinsics
- error of absolute and relative poses
- Sampson error for epipolar geometry
See examples/
to use these factors.
Pyceres was inspired by the work of Nikolaus Mitchell for ceres_python_bindings and is maintained by Philipp Lindenberger and Paul-Edouard Sarlin.