Skip to content

MONAI-Physio 2026.11.1

Latest

Choose a tag to compare

@aylward aylward released this 05 Nov 02:48
· 10 commits to main since this release
1197a63

Highlights

  • More reliable shape-model fitting. WorkflowFitStatisticalModelToPatient
    now runs its initial alignment with RegisterModelsICPITK, rebuilt as ITK
    point-set ICP with free rotation (optionally restricted to one axis). On the
    Duke heart cohort it beat the previous VTK ICP on all 29 cases in 1-2 s
    instead of 8-14 s, and it succeeds on lung cases where the VTK ICP failed.
  • Lung fits use only the lung labels. The TCIA-lung tutorials pass the
    segmenter's lung labels, not the whole-body labelmap, so the lung model can
    no longer grow into the heart, liver or chest wall.

Fixes

  • RegisterModelsPCA: the target-to-model distance term is now in the same
    units as the distance map, so neither term outweighs the other. New
    keyword-only options distance_map_clip_mm and distance_map_scale.
  • WorkflowEvaluateMovement.surface_rmse_mm uses a GPU (Warp) closest-point
    kernel instead of vtkImplicitPolyDataDistance, which crashed
    intermittently.
  • Tutorial 8 (lung) removes outputs of phases it no longer registers, so
    Tutorial 9 cannot train on stale surfaces.
  • Tutorial 13 refits the heart when the shape model is newer than its cached
    fit, fixing "Fitted reference mesh has N points, expected M".

Tutorials and tests

  • Tutorials 11, 14 and 15 are long-running statistical studies, run manually;
    they are no longer tests and have no test mode.
  • Faster test mode: 3 PCA components, 50 training epochs (weights kept apart
    from the full run's), and every other respiratory phase for lung Tutorial 8.
  • Tutorial baselines regenerated for the new ICP.

Tooling and docs

  • utils/strip_notebook_outputs.py and a pre-commit hook keep notebook
    diffs to code.
  • New experiment: per-point cardiac displacement CSV
    (experiments/Heart-3DCT_to_CSV).
  • FAQ: what the point-count mismatch error means and how to replace
    pre-trained weights.

Upgrading

  • Fits change with the new ICP: re-run Tutorials 7-9 to retrain networks on
    them, or download the matching pre-trained models (move the existing
    tutorials/network_weights/<model> directory aside first).
  • See docs/developer/migration_2026.11.1.md for API changes.

What's Changed

  • ENH: Fit SSMs with point-set ICP; slim tutorial test runs; strip notebooks by @aylward in #171
  • BUG: Fix PR 171 review issues: PCA log_level order, stale lung phases by @aylward in #172
  • BUG: Refit Tutorial 13 heart model when the shape model is newer; FAQ by @aylward in #178
  • ENH: Release 2026.11.1 by @aylward in #179

Full Changelog: 2026.11.0...2026.11.1