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 9/10/11/12/13/14 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, Paul-Edouard Sarlin, and Shaohui Liu.

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

If you're not sure about the file name format, learn more about wheel file names.

pyceres-2.6-cp314-cp314-win_amd64.whl (8.6 MB view details)

Uploaded CPython 3.14Windows x86-64

pyceres-2.6-cp314-cp314-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl (4.9 MB view details)

Uploaded CPython 3.14manylinux: glibc 2.27+ x86-64manylinux: glibc 2.28+ x86-64

pyceres-2.6-cp314-cp314-macosx_14_0_arm64.whl (2.4 MB view details)

Uploaded CPython 3.14macOS 14.0+ ARM64

pyceres-2.6-cp313-cp313-win_amd64.whl (8.5 MB view details)

Uploaded CPython 3.13Windows x86-64

pyceres-2.6-cp313-cp313-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl (4.9 MB view details)

Uploaded CPython 3.13manylinux: glibc 2.27+ x86-64manylinux: glibc 2.28+ x86-64

pyceres-2.6-cp313-cp313-macosx_14_0_arm64.whl (2.4 MB view details)

Uploaded CPython 3.13macOS 14.0+ ARM64

pyceres-2.6-cp312-cp312-win_amd64.whl (8.5 MB view details)

Uploaded CPython 3.12Windows x86-64

pyceres-2.6-cp312-cp312-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl (4.9 MB view details)

Uploaded CPython 3.12manylinux: glibc 2.27+ x86-64manylinux: glibc 2.28+ x86-64

pyceres-2.6-cp312-cp312-macosx_14_0_arm64.whl (2.4 MB view details)

Uploaded CPython 3.12macOS 14.0+ ARM64

pyceres-2.6-cp311-cp311-win_amd64.whl (8.5 MB view details)

Uploaded CPython 3.11Windows x86-64

pyceres-2.6-cp311-cp311-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl (4.9 MB view details)

Uploaded CPython 3.11manylinux: glibc 2.27+ x86-64manylinux: glibc 2.28+ x86-64

pyceres-2.6-cp311-cp311-macosx_14_0_arm64.whl (2.4 MB view details)

Uploaded CPython 3.11macOS 14.0+ ARM64

pyceres-2.6-cp310-cp310-win_amd64.whl (8.5 MB view details)

Uploaded CPython 3.10Windows x86-64

pyceres-2.6-cp310-cp310-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl (4.9 MB view details)

Uploaded CPython 3.10manylinux: glibc 2.27+ x86-64manylinux: glibc 2.28+ x86-64

pyceres-2.6-cp310-cp310-macosx_14_0_arm64.whl (2.4 MB view details)

Uploaded CPython 3.10macOS 14.0+ ARM64

pyceres-2.6-cp39-cp39-win_amd64.whl (8.5 MB view details)

Uploaded CPython 3.9Windows x86-64

pyceres-2.6-cp39-cp39-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl (4.9 MB view details)

Uploaded CPython 3.9manylinux: glibc 2.27+ x86-64manylinux: glibc 2.28+ x86-64

pyceres-2.6-cp39-cp39-macosx_14_0_arm64.whl (2.4 MB view details)

Uploaded CPython 3.9macOS 14.0+ ARM64

File details

Details for the file pyceres-2.6-cp314-cp314-win_amd64.whl.

File metadata

  • Download URL: pyceres-2.6-cp314-cp314-win_amd64.whl
  • Upload date:
  • Size: 8.6 MB
  • Tags: CPython 3.14, Windows x86-64
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for pyceres-2.6-cp314-cp314-win_amd64.whl
Algorithm Hash digest
SHA256 e89d4d4d6c3507058a751c72b4dd4c59f6742a0a4262845b1ceafff65f943a2c
MD5 1dcb1cc3533e20c462cb3cd6616936ea
BLAKE2b-256 f47875487ad67101a0c1f2f727fa11020329a43a2ab628f85abbe59937c49c5b

See more details on using hashes here.

Provenance

The following attestation bundles were made for pyceres-2.6-cp314-cp314-win_amd64.whl:

Publisher: build.yml on cvg/pyceres

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file pyceres-2.6-cp314-cp314-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for pyceres-2.6-cp314-cp314-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 0932b7cb21de92823bbc48c7bbb8c8df992c8a43498b99b64ee37293269ef3d0
MD5 095806dac77bf21db2ee2f382d2c4e49
BLAKE2b-256 f70825c45688d04b1a474ffba4726f219947afd36e02d925bc3387b4a9073bc1

See more details on using hashes here.

Provenance

The following attestation bundles were made for pyceres-2.6-cp314-cp314-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl:

Publisher: build.yml on cvg/pyceres

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file pyceres-2.6-cp314-cp314-macosx_14_0_arm64.whl.

File metadata

File hashes

Hashes for pyceres-2.6-cp314-cp314-macosx_14_0_arm64.whl
Algorithm Hash digest
SHA256 8759bfe308e2f951a7e1f0752b345856dc276300336bddaea9d35dd86f6d8c16
MD5 493ce6d8cf0202089e5916d249a8cd3e
BLAKE2b-256 6389eaf73a99c4999452e1bb8c9369e477567abc58ff8ece636d20522683157b

See more details on using hashes here.

Provenance

The following attestation bundles were made for pyceres-2.6-cp314-cp314-macosx_14_0_arm64.whl:

Publisher: build.yml on cvg/pyceres

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file pyceres-2.6-cp313-cp313-win_amd64.whl.

File metadata

  • Download URL: pyceres-2.6-cp313-cp313-win_amd64.whl
  • Upload date:
  • Size: 8.5 MB
  • Tags: CPython 3.13, Windows x86-64
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for pyceres-2.6-cp313-cp313-win_amd64.whl
Algorithm Hash digest
SHA256 c8da59494f317f38d8f7c3e980052997f4d5b01d456e440d964a38d09a26bdea
MD5 f6d9b800bf38dd1c3ef6977f4b03936d
BLAKE2b-256 1f327588f22cc526abdef03414648eb7bedff5bd5353627f5646f988c2129687

See more details on using hashes here.

Provenance

The following attestation bundles were made for pyceres-2.6-cp313-cp313-win_amd64.whl:

Publisher: build.yml on cvg/pyceres

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file pyceres-2.6-cp313-cp313-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for pyceres-2.6-cp313-cp313-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 f5a408a205a690431190b21a4448130c67b838b14dfd459cee22361a06060a1f
MD5 4c0438c1103d55378e6376b8c505b4da
BLAKE2b-256 499a17e371fbcbe29f1041a7014630bb7ff03c87215240b14362fe7e57bdef40

See more details on using hashes here.

Provenance

The following attestation bundles were made for pyceres-2.6-cp313-cp313-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl:

Publisher: build.yml on cvg/pyceres

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file pyceres-2.6-cp313-cp313-macosx_14_0_arm64.whl.

File metadata

File hashes

Hashes for pyceres-2.6-cp313-cp313-macosx_14_0_arm64.whl
Algorithm Hash digest
SHA256 8561fe1e520171499a606ca500baa5d3f90012dd264e9696fdd87126bed9378d
MD5 ab20a4709a6f5c44f197244328285347
BLAKE2b-256 7a6d9e55d8f6b1c504b2a5ac8220aa979e4d2c209be680a67cccb8e729cca34e

See more details on using hashes here.

Provenance

The following attestation bundles were made for pyceres-2.6-cp313-cp313-macosx_14_0_arm64.whl:

Publisher: build.yml on cvg/pyceres

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file pyceres-2.6-cp312-cp312-win_amd64.whl.

File metadata

  • Download URL: pyceres-2.6-cp312-cp312-win_amd64.whl
  • Upload date:
  • Size: 8.5 MB
  • Tags: CPython 3.12, Windows x86-64
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for pyceres-2.6-cp312-cp312-win_amd64.whl
Algorithm Hash digest
SHA256 c7e24463365778f423c34cd0e06ce57634a2e26da16935eec094c72263520493
MD5 541de79f6d25f7919c45aa69272abadd
BLAKE2b-256 4c4c2291a63a81ddfa306ee18d57156a458758953933212f224ea3a7bb6b036c

See more details on using hashes here.

Provenance

The following attestation bundles were made for pyceres-2.6-cp312-cp312-win_amd64.whl:

Publisher: build.yml on cvg/pyceres

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file pyceres-2.6-cp312-cp312-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for pyceres-2.6-cp312-cp312-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 284204c5303c582dc3918f43288e7b78bfc674a01e5561b252298a2d133ad14d
MD5 23c4c6ad6b46b8745eb32fe830962196
BLAKE2b-256 dc6dbea6219072d8d86a5f11f6f61c588780be0bbd5aca1221fc8ad646bcba73

See more details on using hashes here.

Provenance

The following attestation bundles were made for pyceres-2.6-cp312-cp312-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl:

Publisher: build.yml on cvg/pyceres

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file pyceres-2.6-cp312-cp312-macosx_14_0_arm64.whl.

File metadata

File hashes

Hashes for pyceres-2.6-cp312-cp312-macosx_14_0_arm64.whl
Algorithm Hash digest
SHA256 8ef9014f84b31dbf94936f11964411f67e9cc1733aca8ff38fda079b890adfa7
MD5 cd5c2ae8243eb5f03d4a3a721be4c58a
BLAKE2b-256 b4a7bc1aaea0a2e06b35f1b856c95e0a392719d1395488e36ff87066dba09cc4

See more details on using hashes here.

Provenance

The following attestation bundles were made for pyceres-2.6-cp312-cp312-macosx_14_0_arm64.whl:

Publisher: build.yml on cvg/pyceres

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

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

File metadata

  • Download URL: pyceres-2.6-cp311-cp311-win_amd64.whl
  • Upload date:
  • Size: 8.5 MB
  • Tags: CPython 3.11, Windows x86-64
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for pyceres-2.6-cp311-cp311-win_amd64.whl
Algorithm Hash digest
SHA256 66e8b8a69c926a01ae59f7aabf3812b1d8496434e22e064b23006335f3913084
MD5 5fa7311e4481012f4c2c857e7bf4df87
BLAKE2b-256 ab07f4fb0fb6fa43a986cae009b3dae5ad6e5929786d7528dbdf92429e83c46f

See more details on using hashes here.

Provenance

The following attestation bundles were made for pyceres-2.6-cp311-cp311-win_amd64.whl:

Publisher: build.yml on cvg/pyceres

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file pyceres-2.6-cp311-cp311-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for pyceres-2.6-cp311-cp311-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 294b16310be0f3024eb1c592d8df86bbb227b1443008a51cf01c47ac7c9d3eb2
MD5 04320b8b3dd36398bf42e70cd740eb5c
BLAKE2b-256 958353617e96fca87bf01b8d27f9ab51b03c7ff5828cbed1102952c69b4eafbc

See more details on using hashes here.

Provenance

The following attestation bundles were made for pyceres-2.6-cp311-cp311-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl:

Publisher: build.yml on cvg/pyceres

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file pyceres-2.6-cp311-cp311-macosx_14_0_arm64.whl.

File metadata

File hashes

Hashes for pyceres-2.6-cp311-cp311-macosx_14_0_arm64.whl
Algorithm Hash digest
SHA256 078ee92e6e9d98a20c030b52396248c41499ed5159342a9163cdfc2ab40e49c0
MD5 08a561f55e56f1cc375b98c019ea4e80
BLAKE2b-256 f9a39519766129c8876f158ec4a8b8d65d1ae9ec03ac97c5cdd621b34d4f0331

See more details on using hashes here.

Provenance

The following attestation bundles were made for pyceres-2.6-cp311-cp311-macosx_14_0_arm64.whl:

Publisher: build.yml on cvg/pyceres

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

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

File metadata

  • Download URL: pyceres-2.6-cp310-cp310-win_amd64.whl
  • Upload date:
  • Size: 8.5 MB
  • Tags: CPython 3.10, Windows x86-64
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for pyceres-2.6-cp310-cp310-win_amd64.whl
Algorithm Hash digest
SHA256 4ef98dd62b52c2925c425065c282f63e17a97eab322ae95d68d1fa88fc6359ca
MD5 806553242810a67b146fe3b5b80a9bd1
BLAKE2b-256 cc5ce1faacb0e99475f16ff347ac29ce5b786968d94b89faee6ea50b4ebc3473

See more details on using hashes here.

Provenance

The following attestation bundles were made for pyceres-2.6-cp310-cp310-win_amd64.whl:

Publisher: build.yml on cvg/pyceres

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file pyceres-2.6-cp310-cp310-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for pyceres-2.6-cp310-cp310-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 3297e2eb1f1ea7fca4875ac230c69f9393911bee9fca1ff38b8657e05e404eef
MD5 799dbdcf4c2b2dbbb9609960f109ca61
BLAKE2b-256 d073df74d79be508b3ade3d9f655b3ec4f646c187c63319d71d7a87febe55eb8

See more details on using hashes here.

Provenance

The following attestation bundles were made for pyceres-2.6-cp310-cp310-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl:

Publisher: build.yml on cvg/pyceres

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file pyceres-2.6-cp310-cp310-macosx_14_0_arm64.whl.

File metadata

File hashes

Hashes for pyceres-2.6-cp310-cp310-macosx_14_0_arm64.whl
Algorithm Hash digest
SHA256 772a9f55b4023e5760967f8a59eee4ea6f481fb0d9229078c8e03eb3e6d59227
MD5 2b5479946cdfe79c76483ae9329800bc
BLAKE2b-256 2a6ce3ab0eefeb4d0e20c14352c25b5c345ba5180b87c783105b6d11e79aa82c

See more details on using hashes here.

Provenance

The following attestation bundles were made for pyceres-2.6-cp310-cp310-macosx_14_0_arm64.whl:

Publisher: build.yml on cvg/pyceres

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

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

File metadata

  • Download URL: pyceres-2.6-cp39-cp39-win_amd64.whl
  • Upload date:
  • Size: 8.5 MB
  • Tags: CPython 3.9, Windows x86-64
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for pyceres-2.6-cp39-cp39-win_amd64.whl
Algorithm Hash digest
SHA256 f239158e0e94211e46ae2f32a85e76d3dc85035ab4817b307923775dd589cbc3
MD5 fc8a6efc295cf68b7620f85f48f18b53
BLAKE2b-256 bcd595a963fb93e7bb6f5c01f00829a9d6d9f2529056caede8cda8869bdc0715

See more details on using hashes here.

Provenance

The following attestation bundles were made for pyceres-2.6-cp39-cp39-win_amd64.whl:

Publisher: build.yml on cvg/pyceres

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file pyceres-2.6-cp39-cp39-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for pyceres-2.6-cp39-cp39-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 c60d6ed939d1ca81a7175e8523febedf737956ad800de67124222e3affdc7ca1
MD5 7ad10c9ea96cff00d809cf1275b4768b
BLAKE2b-256 11f1626ac763ac5ed6dbd25cbef7f257fad36ffbc9383f8309474bdcf3c768c5

See more details on using hashes here.

Provenance

The following attestation bundles were made for pyceres-2.6-cp39-cp39-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl:

Publisher: build.yml on cvg/pyceres

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file pyceres-2.6-cp39-cp39-macosx_14_0_arm64.whl.

File metadata

File hashes

Hashes for pyceres-2.6-cp39-cp39-macosx_14_0_arm64.whl
Algorithm Hash digest
SHA256 ee62b624050f1226f91780eb05e80f64a0d29759adf05fad3700618a3441c1c8
MD5 27468e97e49c34a3035fccdb6a6a15ed
BLAKE2b-256 73cac4474ec54432d47e5770ba0757d9ca7aa63ed186224b8035f233c5c7e606

See more details on using hashes here.

Provenance

The following attestation bundles were made for pyceres-2.6-cp39-cp39-macosx_14_0_arm64.whl:

Publisher: build.yml on cvg/pyceres

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Supported by

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