DIRECT v2.2.0
Adaptive k-space sampling and optional motion registration, with the MIDL 2026 end-to-end ADS paper configs.
What's new
Adaptive dynamic sampling (ADS)
Learned 1D / 2D sampling policies (unified or frame-/phase-specific), wired through training and inference via additional_models.sampling_model.
Motion registration
Joint or disjoint recon↔registration (learned U-Net / VoxelMorph-style, or classical Demons / optical flow). Elastic deformations use an in-repo SciPy port — no elasticdeform dependency.
New models
MEDL and 3D VarNet paths used by the ADS setups, plus key-based losses and displacement-field logging for registration runs.
Paper projects
projects/e2e_ads_recon— adaptive sampling + reconstruction (MIDL 2026)projects/e2e_ads_recon_reg— same pipeline with registration (arXiv:2411.18249)
Each config is a single YAML for both direct train and direct predict (inference block: 4× active, other rates commented).
Improvements
inference.metrics: empty → reconstruct only; non-empty → score and writemetrics_inference.json- Safer config / checkpoint loading for paper and Hub-style YAMLs (unknown kwargs warned, optional
training/validation) - Calgary / CVPR configs cleaned up (inference on the base YAML where it belongs)
Notes
- ADS paper configs expect fully sampled CMRxRecon cine so acquisition can be simulated retrospectively. The network still only sees ACS/init plus the lines chosen by the policy.
- Install:
pip install "direct-recon==2.2.0"
Contributors
- fix: ruff errors by @jonasteuwen in #315
- feat: add adaptive sampling, motion registration, MEDL, and e2e ADS configs by @georgeyiasemis in #316
- chore: bump version to 2.2.0 by @georgeyiasemis in #320
Full changelog: v2.1.1...v2.2.0