Skip to content

Releases: mprib/caliscope

v0.8.1

18 Mar 16:48

Choose a tag to compare

What's Changed

  • Switched from opencv-contrib-python to opencv-python — The ArUco/Charuco modules moved into mainline OpenCV as of 4.7, so the contrib extras are no longer needed. This reduces install footprint by dropping unused modules (xfeatures2d, ximgproc, etc.).

Full Changelog: v0.8.0...v0.8.1

v0.8.0: Lighter and Scriptable

18 Mar 00:01

Choose a tag to compare

Scripting API

The base install (uv pip install caliscope) now exposes intrinsic and extrinsic calibration as Python functions. You can calibrate cameras from a script without installing the desktop app just by configuring your calibration board and passing in video paths.

For a demo of the API see demo_api.py.

The [gui] extra is now required only for the desktop app.
The base install is pure calibration logic with no Qt or rendering dependencies.

Lighter Install

Some large dependencies are gone even on the GUI version:

  • Mediapipe
  • VTK
  • numba

3D visualization is now done in Qt3D to align with the use of PySide6 for front-end work. This has significantly reduced processor load, particularly at idle where it's now negligible.

Faster Processing

Two major improvements to speed up processing:

  • more efficient frame reading
  • faster charuco detection through better threshold defaults

Sample Project

A 3-camera lab recording is attached to this release (83 MB zip).
This project data uses a chessboard for intrinsic calibration and a single Aruco marker for extrinsic calibration.
Both of these are there to demonstrate the flexibility of the system. I would still generally recommend use of a charuco for better corner recognition and lower reprojection RMSE.

The sample project walkthrough uses this data.

v0.7.2

28 Feb 04:28
a3af47b

Choose a tag to compare

ONNX Tracker Support

Five RTMPose Halpe26 model cards now ship with the package (tiny through xlarge). On first launch, model cards are seeded to your local models directory. Weights can be downloaded in-app with license confirmation — no manual file management needed.

Bug Fix

Resolved a CharucoTracker crash caused by a breaking API change in OpenCV 4.8+ (cv2.aruco.detectMarkers removal). Charuco board detection now uses the current CharucoDetector API.

v0.7.0: Ship of Theseus

25 Feb 16:02
1264880

Choose a tag to compare

Caliscope v0.7.0: Ship of Theseus

This is a substantial update from the last formal release (March 2025). While cosmetic changes to the GUI may be the most immediately apparent difference, major improvements have been made to almost every facet of the project.

Some key elements:

  1. Extrinsic calibration can be performed with a single aruco marker to allow larger volumes to be calibrated using a printed sheet of paper.
  2. Scale accuracy is locked in during the world origin setting and reported across frames (corner-to-corner distances on the calibration target).
  3. A "coverage heatmap" shows overlap between fields of view across cameras and can flag poor input data prior to attempting an extrinsic calibration.
  4. The automated intrinsic calibration board selection is now far more robust. Checks are made to ensure selected frames exhibit a variety of tilts and broad coverage of the field of view.
  5. Calibration landmark tracking can be expedited by only processing every nth frame.
  6. A proper back end task manager allows clean stop/restart of long-running calculations while providing better visual feedback about the rate of completion.
  7. 3D visualization is now done with VTK rather than pyqtgraph, which helped simplify and harden some backend setup.
  8. A "model card" framework has been created to allow integration of ONNX models.
  9. A camera calibration file in the format of aniposelib is created to facilitate integration with other tools in the open source motion capture ecosystem.

The above are all changes that I think may be apparent to a user of the tool, but alongside them have been refinements to the backend domain model that are more hidden. These backend improvements make adding new capabilities much less painful. I can see a path to a completely markerless calibration.

mprib

(data for the minimalist project demonstrated on the README is below)

Significant Speed Ups in Calibration

19 Mar 23:06

Choose a tag to compare

There were some pandas data manipulations at a few stages of the calibration process which were quite inefficient, with exponential increases in processing time as camera count increased. With 5 or 6 cameras, it was manageable, but with 10+ was clearly not practical.

This pandas code was refactored (hat tip to claude) and is now substantially faster. If someone had issues with slow calibrations in the past, my hope is that v0.6 will be a much better experience.

Mediapipe Version Updated

20 Dec 16:30
a688d99

Choose a tag to compare

Mediapipe 0.10.1 is no longer available via PyPI it seems. I have updated the pinned version to the most recent available patch (0.10.20) which tests successfully across Windows/Linux/MacOS.

My recollection is that there were patches of Mediapipe 0.9 that failed on MacOS (some worked, some did not). Uneasiness about this led me to pin to a specific patch that I knew worked.

JOSS Release

08 Oct 22:02
b00b8df

Choose a tag to compare

v0.5.1

Update README.md