Repository navigation
Version 3.7.1
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
Pchannel 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
IandWechannels - Improved probability-map handling for
EXTRACT_RANDOM_PATCH - Added
build_tp_fp_fn_reportto standardize instance matching reports - Added
calculate_neuron_segmentation_metrics.pyauxiliary script, later extended with a--border-cropoption
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_AUGbehaviour and addedtest_membrane_augmentors.py
Inference/Test by Chunks
- Added new by-chunks inference features to avoid writing raw predictions to disk
- Added a
PhaseProgressclass to report ETA during by-chunks inference, with later ETA-print fixes - Recovered
DATA.PREPROCESS.ZOOM.ZOOM_FACTORfunctionality during by-chunks inference and fixed the resulting output Zarr shape - Fixed by-chunks inference with TIFF files
- Merged the new
ROI_MASKwith the oldDATA.TEST.BINARY_MASKS/TEST.POST_PROCESSING.APPLY_MASKvariables - Added mask support to the chunked generator to guide segmentation
- Added support for predicting huge CloudVolume files in instance segmentation
Model/Architecture
- Added
STU-Netas aNAFNETbackbone, with 2D support - Made
NAFNETmore stable and incorporated theNAFNET-GANwork from the denoising challenge - Fixed a
STU-Netcheckpoint-loading error by changingfinal_nonlinto identity - Converted
LOSS.TYPEinto 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.pyconstruction and fixed BMZ exportation issues for special models such asresunet++ - Sped up the BMZ compatibility check by preventing an unnecessary model download
Image-to-Image
- Fixed an issue with
MULTIPLE_RAW_ONE_TARGET_LOADERand 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_FRACTIONpart of the warmup-cosine-decay LR scheduler - Prevented a spurious
LOSS.IGNORE_INDEXwarning 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_pairduring data augmentation - Solved a
binary_dilationdeprecation warning - Updated notebook installation dependencies for the new torch/torchmetrics version pins and made the
gpuargument 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.requestinrun_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.