Skip to main content

Factor graph optimization with Ceres, in Python

Project description

pyceres

This repository provides minimal Python bindings for the Ceres Solver and the implementation of factor graphs for bundle adjustment and pose graph optimization.

Installation

Wheels for Python 8/9/10 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:

  1. Install the Ceres Solver following the official instructions.
  2. 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 .

Factor graph optimization

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.

Credits

Pyceres was inspired by the work of Nikolaus Mitchell for ceres_python_bindings and is maintained by Philipp Lindenberger and Paul-Edouard Sarlin.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distributions

No source distribution files available for this release.See tutorial on generating distribution archives.

Built Distributions

pyceres-2.1-cp311-cp311-win_amd64.whl (7.3 MB view details)

Uploaded CPython 3.11 Windows x86-64

pyceres-2.1-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (3.9 MB view details)

Uploaded CPython 3.11 manylinux: glibc 2.17+ x86-64

pyceres-2.1-cp311-cp311-macosx_11_0_arm64.whl (1.7 MB view details)

Uploaded CPython 3.11 macOS 11.0+ ARM64

pyceres-2.1-cp311-cp311-macosx_10_9_x86_64.whl (2.0 MB view details)

Uploaded CPython 3.11 macOS 10.9+ x86-64

pyceres-2.1-cp310-cp310-win_amd64.whl (7.3 MB view details)

Uploaded CPython 3.10 Windows x86-64

pyceres-2.1-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (3.9 MB view details)

Uploaded CPython 3.10 manylinux: glibc 2.17+ x86-64

pyceres-2.1-cp310-cp310-macosx_11_0_arm64.whl (1.7 MB view details)

Uploaded CPython 3.10 macOS 11.0+ ARM64

pyceres-2.1-cp310-cp310-macosx_10_9_x86_64.whl (2.0 MB view details)

Uploaded CPython 3.10 macOS 10.9+ x86-64

pyceres-2.1-cp39-cp39-win_amd64.whl (7.3 MB view details)

Uploaded CPython 3.9 Windows x86-64

pyceres-2.1-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (3.9 MB view details)

Uploaded CPython 3.9 manylinux: glibc 2.17+ x86-64

pyceres-2.1-cp39-cp39-macosx_11_0_arm64.whl (1.7 MB view details)

Uploaded CPython 3.9 macOS 11.0+ ARM64

pyceres-2.1-cp39-cp39-macosx_10_9_x86_64.whl (2.0 MB view details)

Uploaded CPython 3.9 macOS 10.9+ x86-64

pyceres-2.1-cp38-cp38-win_amd64.whl (7.3 MB view details)

Uploaded CPython 3.8 Windows x86-64

pyceres-2.1-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (3.9 MB view details)

Uploaded CPython 3.8 manylinux: glibc 2.17+ x86-64

pyceres-2.1-cp38-cp38-macosx_11_0_arm64.whl (1.7 MB view details)

Uploaded CPython 3.8 macOS 11.0+ ARM64

pyceres-2.1-cp38-cp38-macosx_10_9_x86_64.whl (2.0 MB view details)

Uploaded CPython 3.8 macOS 10.9+ x86-64

File details

Details for the file pyceres-2.1-cp311-cp311-win_amd64.whl.

File metadata

  • Download URL: pyceres-2.1-cp311-cp311-win_amd64.whl
  • Upload date:
  • Size: 7.3 MB
  • Tags: CPython 3.11, Windows x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.2 CPython/3.11.8

File hashes

Hashes for pyceres-2.1-cp311-cp311-win_amd64.whl
Algorithm Hash digest
SHA256 cb5a05d75fa46ec288bc85aed3b0e09e14be959cc30b136b2dcf9d8bba132c6c
MD5 bdab96263a9849b5ecdbfb6869fd0993
BLAKE2b-256 205a477413dda888ebc1b83551cad9e1c8cf217ac9220853439accfe2fd93bdf

See more details on using hashes here.

Provenance

File details

Details for the file pyceres-2.1-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for pyceres-2.1-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 39667e6a7c799f8bf6694aecad01e133713af62de299551326d80f992b47d4e7
MD5 1b1b22ad4649bc5186ee025f4f20b036
BLAKE2b-256 f46aa194d3a4e502d932ab35aba4508f5d635bda078d7f79c573c44412f65fb3

See more details on using hashes here.

Provenance

File details

Details for the file pyceres-2.1-cp311-cp311-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for pyceres-2.1-cp311-cp311-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 c899ebb40898e86dfad845e0c17d446ae4a515f62f73a11494ff3db16ef4c172
MD5 2bf1b67cfc167ad0bb655821b14bed63
BLAKE2b-256 05971b09b7856a960784f93658abbb94ad4238f6ac3483f4481a5fe45e737aea

See more details on using hashes here.

Provenance

File details

Details for the file pyceres-2.1-cp311-cp311-macosx_10_9_x86_64.whl.

File metadata

File hashes

Hashes for pyceres-2.1-cp311-cp311-macosx_10_9_x86_64.whl
Algorithm Hash digest
SHA256 e4cd614241ffa84f3f7807e2ea4f1fc18fa35e4acd5d65712e03df1df7adddc9
MD5 5a1508288fbcaa575e302df1637f4545
BLAKE2b-256 5c14b52a94683f21295e6739aa62af02af928dc45fcbd7abf192efb7923b5317

See more details on using hashes here.

Provenance

File details

Details for the file pyceres-2.1-cp310-cp310-win_amd64.whl.

File metadata

  • Download URL: pyceres-2.1-cp310-cp310-win_amd64.whl
  • Upload date:
  • Size: 7.3 MB
  • Tags: CPython 3.10, Windows x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.2 CPython/3.11.8

File hashes

Hashes for pyceres-2.1-cp310-cp310-win_amd64.whl
Algorithm Hash digest
SHA256 d4309e2239f403ffcc01c3337c133d0c65488095e85aef76032e2842d75e23f9
MD5 5e26012b1f4782710f6c4c19644d7eb8
BLAKE2b-256 248c95f4dbd74d3fec183fb820649b857517f97feaa7d5bdcf15c2ad97297d90

See more details on using hashes here.

Provenance

File details

Details for the file pyceres-2.1-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for pyceres-2.1-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 1a4e41935a54067e0416754fda5c0f12fc8bffbfbddf9a821f725fac3cc23d70
MD5 ed7b1cb9e8a9db5b4863e02a2697e24e
BLAKE2b-256 61bff73c8892f68cc683d679fa07a7d26bf1e80f3611cb2208bb945fef05f625

See more details on using hashes here.

Provenance

File details

Details for the file pyceres-2.1-cp310-cp310-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for pyceres-2.1-cp310-cp310-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 1a5617253d00fdb459465af121fec5784f457a3b4aa5c2200ad5ad680531ef14
MD5 524acf149970daa9c7e24fdb28895749
BLAKE2b-256 207a2d02704cccef05401f63ca7e1d851f6890babbebb013967cadedb6b1b6bf

See more details on using hashes here.

Provenance

File details

Details for the file pyceres-2.1-cp310-cp310-macosx_10_9_x86_64.whl.

File metadata

File hashes

Hashes for pyceres-2.1-cp310-cp310-macosx_10_9_x86_64.whl
Algorithm Hash digest
SHA256 f2470490e98d4c8ce2ab3c0d7e7eec1d613ff46d856441ba7680b86187bbe66b
MD5 b27dc11889a435a127c1aa7850538d70
BLAKE2b-256 e4e6488754a16d7f4f43f7d658ec5e4216731aa8d9c7e882535507a3ef2d0c53

See more details on using hashes here.

Provenance

File details

Details for the file pyceres-2.1-cp39-cp39-win_amd64.whl.

File metadata

  • Download URL: pyceres-2.1-cp39-cp39-win_amd64.whl
  • Upload date:
  • Size: 7.3 MB
  • Tags: CPython 3.9, Windows x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.2 CPython/3.11.8

File hashes

Hashes for pyceres-2.1-cp39-cp39-win_amd64.whl
Algorithm Hash digest
SHA256 3746a6cd3a2301f75a10fcd3627047e7ce3d570b2e2a86563b36ce28dd5c8cc4
MD5 f0a2f46a962b22380afc5235c711f15c
BLAKE2b-256 3b93a278a5cd9c6c8593afbb5c9203ba7f3b85b7d78258e93be62df685dc4ff6

See more details on using hashes here.

Provenance

File details

Details for the file pyceres-2.1-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for pyceres-2.1-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 97d1b4a0561645422aa5946c22495b6025dc5afb54b9bb64367124dc9fe99375
MD5 3d585c5798939b87f294146dcd69bc2c
BLAKE2b-256 8cc6f61bc5c9ca4c69d5282ae9d62636c10cf10e0337447939f62b02513b2341

See more details on using hashes here.

Provenance

File details

Details for the file pyceres-2.1-cp39-cp39-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for pyceres-2.1-cp39-cp39-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 76cab9db5dd3c5f0f28b47b25ec62e3c17f53dc9b9de6486a256e662aa614da8
MD5 7b1ebd25e8a27b20518f185d69adf06d
BLAKE2b-256 71f938f8d703d53f910943977314c4927b4b718f28022ad6b107cf65f55f1356

See more details on using hashes here.

Provenance

File details

Details for the file pyceres-2.1-cp39-cp39-macosx_10_9_x86_64.whl.

File metadata

File hashes

Hashes for pyceres-2.1-cp39-cp39-macosx_10_9_x86_64.whl
Algorithm Hash digest
SHA256 60eda5c5c1d246d9d2935b43e61f8473b2867581eda9dbb5d6011373cf9c37ff
MD5 952818a8d91c335e73540cc35831622f
BLAKE2b-256 57c1725625096c888a4959fc51e3519cb22a2369ff9256620bc900925e4eb1e3

See more details on using hashes here.

Provenance

File details

Details for the file pyceres-2.1-cp38-cp38-win_amd64.whl.

File metadata

  • Download URL: pyceres-2.1-cp38-cp38-win_amd64.whl
  • Upload date:
  • Size: 7.3 MB
  • Tags: CPython 3.8, Windows x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.2 CPython/3.11.8

File hashes

Hashes for pyceres-2.1-cp38-cp38-win_amd64.whl
Algorithm Hash digest
SHA256 590b2195ac524a5a0e261f3dbf75f53212f54879624afd05f882001990a6f685
MD5 66956aec63083662b0a5b27e37ed3d1b
BLAKE2b-256 4beb1f5387ec4f4558d995b9715a29a0a77a2e370c2e955d9ed38523102d395d

See more details on using hashes here.

Provenance

File details

Details for the file pyceres-2.1-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for pyceres-2.1-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 485a745832a34536ace3417fddb5efa9ec054b5d57845825364f9e8264244b11
MD5 2dcdf811c5b1cda251525df76e7d6c34
BLAKE2b-256 43011935786517300b7d1df916a087850c4f9c12eda3847d27ca734dda8675d0

See more details on using hashes here.

Provenance

File details

Details for the file pyceres-2.1-cp38-cp38-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for pyceres-2.1-cp38-cp38-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 3f7c38dac9a37d2a344c3cedd1d7f5e7da93ab781ef5cd9f7387f98a9d9e7937
MD5 cfbad1426c0f3ef394af8497bdd62037
BLAKE2b-256 6fac093a81570f18a08363cbd6e45a6f34cb91f4bfe51af219c7278d7d192072

See more details on using hashes here.

Provenance

File details

Details for the file pyceres-2.1-cp38-cp38-macosx_10_9_x86_64.whl.

File metadata

File hashes

Hashes for pyceres-2.1-cp38-cp38-macosx_10_9_x86_64.whl
Algorithm Hash digest
SHA256 0148454f680137aa2ff8a8bf01e4f91408ff899962508930aa046db7c9e04459
MD5 267e9c362e4f2acfea905a7347a4cdec
BLAKE2b-256 ec860564fb90fa16005e5be4dff65de089891b7d2faa00880d55cf3d9e2e457f

See more details on using hashes here.

Provenance

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page