Releases: JHU-NI-LAB/OpenLPT_GUI
v2.2.1 Refraction calibration stability boost!
🚀 Release Notes
✨ Highlights
- Refraction calibration is the star of this release: strengthened the wand/refractive calibration pipeline for more reliable multi-window calibration.
- Smarter P0 bootstrap initialization: improved pair selection to reduce large projection-error blowups at the start of refractive calibration.
- More resilient fallback logic: added ranked pair fallback handling so calibration can recover better from difficult or ambiguous point-pair cases.
- Stabler plane estimation: improved round-4 radius estimation and fixed drifting-plane behavior for more consistent refractive window geometry.
🛠️ Fixes
- Plate calibration now handles high-bit-depth images better: added a Pillow-backed loader so 12-bit TIFFs work smoothly with template-based point detection instead of failing on OpenCV’s TIFF decoder.
🧪 Testing Note
- Added regression coverage for tough calibration edge cases, including projection-error blowups, radius/frame mismatches, shared midpoint contamination, and plane solver/pipeline behavior.
v2.2.0 Tracking with refraction camera model!
🚀 Release Notes
✨ Highlights
- Tracking with the refraction pinhole camera model is now available, alongside the full refractive wand calibration workflow: global-search helpers, BA utilities, refraction geometry tooling, and expanded docs. This release also boosts robustness with inlier masking, IQR scale recovery, Huber losses, and cheirality guards — plus regression tests that lock down axis-alignment and precalibrate-3D-view pipelines.
- Unified axis-alignment stack: SVD-based orthogonalization, mode‑specific triangulation adapters, post‑calibration hooks, CSV loading, and a refined overlay so pinhole and refractive calibrations land in a consistent world frame.
- VSC/refraction optimizer upgrades (
modules/vsc/refraction_optimizer.py, camera I/O updates, service wiring) to stabilize reconstructions after correspondence updates.
🛠 Fixes
- Corrected axis‑transpose math, guarded cross‑type conversions, aligned camera‑config schemas, and tightened BA limits (max iterations + gauge anchoring).
- Hardened the PyBind/C++ surface (
src/*) to keep camera, stereo‑match, and object‑info APIs in sync with the new calibration logic. - Added regression tests for axis alignment, precalibrate visuals, and world‑frame utilities to prevent future drift.
📚 Docs & Demos
- Expanded calibration guides (
gui/docs/calibration/plate_guide.html,wand_guide.html) with Pinhole+Refraction content, hardware guidance, and axis‑point tutorials. - Updated tutorial notebooks and synthetic examples (
demo/python/*) to showcase the new workflows.
🧪 Testing Note
The refraction model is still under active testing and may require further refinement before it reaches production‑grade stability.
v2.1.8 - Robust Wand Detection & VSC Stability Improvements
🚀 Algorithmic Enhancements
- Fast Robust DT Algorithm: Implemented a new, high-performance Distance Transform-based algorithm for robust wand point detection.
- VSC Stability Fix: Resolved divergence issues in the Volume Self-Calibration (VSC) module, ensuring reliable convergence during optimization.
v2.1.7: Native Cine Support, Enhanced Preprocessing & Stability Fixes
🚀 Features & Optimizations
- Native
.cineSupport: Migrated topycinefor robust reading of Phantom Cine files. Includes adaptive 8-bit normalization, faster background calculation, and optimized memory usage (chunked reading). - Batch Export Range: Added "Batch Process Range" (Start/End) to allow processing subsets of image sequences.
- Flexible Camera Files: Tracking settings now automatically detect parameter files with varied naming (e.g.,
vsc_cam1.txtorcam1.txt).
🛠️ Fixes & Improvements
- Path Persistence: Fixed an issue where the
Camera Pathwould reset to default when switching between module tabs. - Build System: Automated version synchronization (single source of truth in _version.py) and fixed dependencies for cleaner
pip install .. - Documentation: Added critical hardware setup tips (non-coplanar views) and prerequisite checklists to Wand, Plate, and Settings guides.
v2.1.6: Support pip install
This release introduces full pip installation support, simplifying the setup process and ensuring all dependencies are correctly managed.
🚀 Installation
You can now install OpenLPT directly via pip:
pip install "openlpt[gui]"If your platform can't support pySide6, you can install OpenLPT without GUI:
pip install openlpt🛠 Usage
Launch the GUI or run a calculation directly from your terminal:
openlpt # Launch GUI
openlpt path/to/config.txt # Run with a specific config
🐍 Python API
Integrate OpenLPT directly into your Python scripts:
import openlpt as lpt
Other Improvements:
Cross-Platform Fixes: Improved builds for macOS/Linux and fixed Windows shortcut creation.
Auto-Updater: Refined update checks and asset downloading for official lab releases.
Thanks for using OpenLPT!
OpenLPT v2.1.0: Enhanced Calibration & Tracking Stability
IMPORTANT
HIGHLY RECOMMENDED UPDATE This release includes critical fixes to the core tracking algorithm and introduces essential self-calibration tools. All users are strongly advised to upgrade to ensure data accuracy.
Stop guessing, start measuring.
This update bridges the gap between theoretical calibration and experimental reality with the new Volume Self-Calibration (VSC) module, fixes a regression in particle scoring during the shaking phase, and introduces a comprehensive interactive tutorial system.
🚀 New Features
- Volume Self-Calibration (VSC)
- Correct for physical vibrations and setup shifts post-calibration.
- Automated Optimization: Refines camera parameters (position, orientation, focal length) using the tracks derived from the data itself.
- Workflow Integration: Seamlessly integrated into the Tracking Execution tab with immediate feedback.
- Interactive Tutorials: The GUI now features a built-in "Tutorial" section.
🐛 Critical Fixes
- Shaking Score Calculation
Resolution: Fixed an issue in the Shake-The-Box optimization where the particle quality score was being miscalculated during the position refinement (shaking) step.
Impact: This fixes a potential cause of "ghost" particles being retained or valid particles being culled incorrectly, significantly improving track continuity and density. - Other Improvements
Camera Model: Updated to a 12-parameter model (separate fx, fy) to resolve projection errors in astigmatic lenses.
Visualization: Added top-N track filtering in the Results view for clearer visualization of large datasets.
Upgrade today to experience the most robust version of OpenLPT yet.