Skip to content

Version 3.7.1

Choose a tag to compare

@danifranco danifranco released this 10 Sep 10:15
· 105 commits to master since this release

Version 3.7.1 Release Notes

Major Changes

Instance Segmentation

  • Removed offline instance-channel pre-computation: target channels are now built on the fly per patch instead of cached to disk
  • Added agglomeration to create instances from affinities (restricted to the first three affinity channels)
  • Added a new option for the P channel to select the skeleton mode used
  • Fixed several issues with the Db (discretized border) channel and its interaction with the discretize setting
  • Fixed channel naming bug and checkpoint-loading bug affecting the I and We channels
  • Improved probability-map handling for EXTRACT_RANDOM_PATCH
  • Added build_tp_fp_fn_report to standardize instance matching reports
  • Added calculate_neuron_segmentation_metrics.py auxiliary script, later extended with a --border-crop option

Membrane Repair Workflow (experimental)

  • Added the new membrane repair workflow
  • Reworked X normalization so binary and raw channels can be mixed together, with an image type set per channel
  • Fixed channel input handling and enabled the raw channel to work standalone
  • Changed GAP_AUG behaviour and added test_membrane_augmentors.py

Inference/Test by Chunks

  • Added new by-chunks inference features to avoid writing raw predictions to disk
  • Added a PhaseProgress class to report ETA during by-chunks inference, with later ETA-print fixes
  • Recovered DATA.PREPROCESS.ZOOM.ZOOM_FACTOR functionality during by-chunks inference and fixed the resulting output Zarr shape
  • Fixed by-chunks inference with TIFF files
  • Merged the new ROI_MASK with the old DATA.TEST.BINARY_MASKS/TEST.POST_PROCESSING.APPLY_MASK variables
  • Added mask support to the chunked generator to guide segmentation
  • Added support for predicting huge CloudVolume files in instance segmentation

Model/Architecture

  • Added STU-Net as a NAFNET backbone, with 2D support
  • Made NAFNET more stable and incorporated the NAFNET-GAN work from the denoising challenge
  • Fixed a STU-Net checkpoint-loading error by changing final_nonlin to identity
  • Converted LOSS.TYPE into a list so multiple losses can be combined
  • Added an option to normalize the Y/target (useful for I2I when the target belongs to another domain, e.g. inpainting) and added the PCC metric
  • Changed the discovery-order-then-reverse scheme of model.py construction and fixed BMZ exportation issues for special models such as resunet++
  • Sped up the BMZ compatibility check by preventing an unnecessary model download

Image-to-Image

  • Fixed an issue with MULTIPLE_RAW_ONE_TARGET_LOADER and balanced the validation metric across studies when it is enabled
  • Fixed an error in I2I test data loading
  • Balanced work across ranks in samples_from_image_list_multiple_raw_one_gt

Minor Updates

  • Made COSINE_DECAY_FRACTION part of the warmup-cosine-decay LR scheduler
  • Prevented a spurious LOSS.IGNORE_INDEX warning when the user didn't select it explicitly
  • Fixed a data-range issue in normalization; 'div' normalization no longer double-divides already-[0,1] float data
  • Parallelized the data loading step
  • Added variables to store & display model predictions every few epochs, with prediction-display fixes (including in Colab)
  • Fixed a dtype mismatch problem in the data generators
  • Fixed random_3D_crop_pair during data augmentation
  • Solved a binary_dilation deprecation warning
  • Updated notebook installation dependencies for the new torch/torchmetrics version pins and made the gpu argument more robust; also updated how BiaPy itself is installed in the notebooks
  • Fixed conda installation due to a package version mismatch
  • Added retries to urllib.request in run_checks
  • Increased test time budget and decreased batch size in CI to fit a smaller GPU

Bug Fixes

This release also includes a number of smaller correctness fixes across instance segmentation (Db/discretize channel edge cases, prob-map regressions), by-chunks inference (ETA reporting, tiff/Zarr edge cases), I2I data loading, checkpoint loading, and BMZ model export, as detailed above.