Skip to main content

GUI based multicamera calibration that integrates with 2D landmark tracking to triangulate 3D landmark positions

Project description

Caliscope

Multicamera Calibration for Motion Capture Workflows

PyPI - Downloads PyPI - License PyPI - Version GitHub last commit GitHub stars pytest

Caliscope is a permissively licensed multicamera calibration tool. Bundle adjustment across 3+ cameras requires a good initial estimate of camera positions to converge quickly and reliably. Caliscope is designed to produce that good initial estimate and rapidly solve for a quality calibration.

Demo

https://github.com/user-attachments/assets/b8bb78de-866e-4ba2-b5c7-674e3a33dd9e

Quick Start

Installation instructions are in the docs.

For a walkthrough with test data after installing, see the sample project.


Features

Feature What it does
Pairwise PnP initialization Estimates camera positions from stereopairs chained transitively, so bundle adjustment starts from a reliable point
Flexible calibration targets ChArUco, ArUco, and chessboard targets; a single ArUco marker on a sheet of paper can calibrate a wide volume
Mirror board support A charuco board printed on both sides of a rigid surface links cameras that never share a common view
Visual feedback Inspect distortion models, 3D camera positions, reprojection errors, and world scale accuracy at each stage
Outlier filtering Filter calibration points by reprojection error after optimization and re-solve
Aniposelib export Automatically generates camera_array_aniposelib.toml for use with aniposelib-compatible tools

Tracking and Reconstruction

Caliscope includes a basic reconstruction pipeline for verifying calibration quality. You can load ONNX pose estimation models (RTMPose, SLEAP, DeepLabCut, or custom) and export 3D trajectories in CSV and TRC (OpenSim) formats. For more complete reconstruction workflows, tools like anipose and Pose2Sim will serve you better. The aniposelib-compatible export makes it straightforward to use Caliscope for calibration and hand off to these tools for downstream processing.

Community & Support

To report a bug or request a feature, please open an issue. For questions, post in Discussions.

Acknowledgments

Caliscope was inspired by anipose, created by Lili Karashchuk, PhD, which demonstrated the value of accessible multicamera calibration for the research community. Several lines of the original anipose triangulation code are used in this code base.

License

Caliscope is licensed under the BSD 2-Clause license. The triangulation function was adapted from anipose, also licensed under BSD-2-Clause.

Project details


Download files

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

Source Distribution

caliscope-0.7.4.tar.gz (65.2 MB view details)

Uploaded Source

Built Distribution

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

caliscope-0.7.4-py3-none-any.whl (379.7 kB view details)

Uploaded Python 3

File details

Details for the file caliscope-0.7.4.tar.gz.

File metadata

  • Download URL: caliscope-0.7.4.tar.gz
  • Upload date:
  • Size: 65.2 MB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.9.18 {"installer":{"name":"uv","version":"0.9.18","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}

File hashes

Hashes for caliscope-0.7.4.tar.gz
Algorithm Hash digest
SHA256 697df1255a0ee1979bd3f41308f5c31c6fbe2a2bea1cd8206ac2b3c3eb2aaf7d
MD5 fd5ee3093d51ae76fc19c44e94087186
BLAKE2b-256 dc161679df65395a0db2de18fa5a505bf56b76c788e45f3ec9b1275c43d96845

See more details on using hashes here.

File details

Details for the file caliscope-0.7.4-py3-none-any.whl.

File metadata

  • Download URL: caliscope-0.7.4-py3-none-any.whl
  • Upload date:
  • Size: 379.7 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.9.18 {"installer":{"name":"uv","version":"0.9.18","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}

File hashes

Hashes for caliscope-0.7.4-py3-none-any.whl
Algorithm Hash digest
SHA256 fd8b4c2af7b24d77b2ef08ea2a2e1e987acd714d4a83ae6050dd37da2bc53bf5
MD5 8ab2a00436c2614fe39e373e9d8095fa
BLAKE2b-256 28b49f427b3f89f74ddf2fdac02ebda3b9907a4a36d813b574ff9a9b91966777

See more details on using hashes here.

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