Version 3.6.6
Major:
- Change the augmentations to work with pure 3D images and completely remove
zandcchannel merge process (related to #139) - Update how the instance channels are handled and extend the support to lots of more channels and combinations:
- Renamed old
Dchannel intoDb(distance to boundary) - Renamed old
Bchannel intoF - Add
Tfor the touching areas - Add
Rfor the radial distances, i.e.Stardist - Add
H+V+Zchannels for the distance offset, i.e.Cellpose,Hover-NetandOmnipose. - Now
Dchannel is Db for the foreground and background - Add
Dnfor the distance to neighbors - Add instance refinement post-processing to do filtering and morphological operations before applying any other more complex post-processing (under
TEST.POST_PROCESSING.INSTANCE_REFINEMENT) - Add embeddings as instance representation option (EmbedSeg,
Echannel) - Add U-Net-like border weighting for the instace segmentation workflow (channel
We) - Change the names of the instance segmentationn label directory to create. Now the names are long, as they depend on the channels used and in their options. This ensures creating a new folder if any of the channel options were modified as they may lead to different representations
- Speed up instance representation mask creation with DDP threads already started
- Renamed old
- Speed up generator checks and make the gridmask create the grid with the maximum value per channel
- Update how activations are handled. Now there is one per channel to be more clean
- Resize to the original size if the preprocessing was applied in the test images
- Change test generators to now return also
Yfilename so we can improve the error messages - Add safetensors as a dependency
- Update BiaPy and BioImage Model Zoo's connection:
- Improve BMZ documentation creation based on their Model Card Template
- Ensure an image with some mask information is captures as BMZ test sample
- Generate suitable cover images based directly on the GT (if provided) and not on the model prediction
- Now all the functions used in the notebooks are included in the core
- Simplify some code by merging
check_model_restrictionswithcheck_bmz_model_compatibility. Nowcheck_bmz_model_compatibilitydoes everything - Add halo to the BMZ model (related to #141)
Minor:
- Update conda package CI
- Update docstrings to build the doc (@iarganda)
- Binarized version of semantic segmentation's prediction now are thresholded using otsu instead, and not at
0.5as it used to be - Improve error message when no files are found during instance segmentation target creation data
- Delete
AUGMENTOR.BRIGHTNESS_MODEandAUGMENTOR.CONTRAST_MODE - Delete the old
MODEL.LAST_ACTIVATION - Remove unused
DATA.TRAIN.REPLICATE - Remove
TEST.POST_PROCESSING.FILL_HOLESas it now is insideTEST.POST_PROCESSING.INSTANCE_REFINEMENT - Remove
TEST.POST_PROCESSING.CLEAR_BORDERas it now is insideTEST.POST_PROCESSING.INSTANCE_REFINEMENT - Provide a better message when raw/gt val data does not match
PROBLEM.INSTANCE_SEG.DATA_REMOVE_SMALL_OBJ_BEFOREmoved toPROBLEM.INSTANCE_SEG.WATERSHED.DATA_REMOVE_SMALL_OBJ_BEFOREPROBLEM.INSTANCE_SEG.DATA_REMOVE_BEFORE_MWmoved toPROBLEM.INSTANCE_SEG.WATERSHED.DATA_REMOVE_BEFORE_MWPROBLEM.INSTANCE_SEG.SEED_MORPH_SEQUENCEmoved toPROBLEM.INSTANCE_SEG.WATERSHED.SEED_MORPH_SEQUENCEPROBLEM.INSTANCE_SEG.SEED_MORPH_RADIUSmoved toPROBLEM.INSTANCE_SEG.WATERSHED.SEED_MORPH_RADIUSPROBLEM.INSTANCE_SEG.ERODE_AND_DILATE_GROWTH_MASKmoved toPROBLEM.INSTANCE_SEG.ERODE_AND_DILATE_GROWTH_MASKPROBLEM.INSTANCE_SEG.FORE_EROSION_RADIUSmoved toPROBLEM.INSTANCE_SEG.WATERSHED.FORE_EROSION_RADIUSPROBLEM.INSTANCE_SEG.FORE_DILATION_RADIUSmoved toPROBLEM.INSTANCE_SEG.WATERSHED.FORE_DILATION_RADIUSPROBLEM.INSTANCE_SEG.DATA_CHECK_MWmoved toPROBLEM.INSTANCE_SEG.WATERSHED.DATA_CHECK_MWPROBLEM.INSTANCE_SEG.WATERSHED_BY_2D_SLICESmoved toPROBLEM.INSTANCE_SEG.WATERSHED.BY_2D_SLICES- Remove
PROBLEM.INSTANCE_SEG.SYNAPSES.NORMALIZE_DISTANCESand normalize always for now - Added new auxiliary scripts:
biapy/utils/scripts/measure_dataset_size.pybiapy/utils/scripts/stardist_wheels.pybiapy/utils/scripts/measure_class_weights.pybiapy/utils/scripts/PR_plot_instances.pybiapy/utils/scripts/agreement_manual_points_vs_dnn_instances.pybiapy/utils/scripts/semantic_seg_stats.pybiapy/utils/scripts/collect_instance_sizes.py
Bugs fixed:
- Remove heat norm/unnorm steps
- Disable automatic normalization for instance segmentation channels
- Correct bug in zoom data augmentation with heatmaps (related to #139)
- Remove UNETR unused layer (related to #123)
- Repare SE blocks (related to #123)
- Avoid printing early stopping message more than once in DDP setting
- Solve bug with BMZ model exportation when combined with loading a checkpoint as the loaded model's cfg was overriding the current cfg
- Solve bug in HRNet building process in all version but
hrnet48 - Fix bug with contrastive learning during TTA postprocessing
- Ensure heatmaps are in their original data range after each transformation
- Fix bug in discarding test samples
- Fix problems related to relative paths during BMZ model exportation (related to #140)
- Correct bug in Denoising workflow for multichannel images
- Improve
os_walk_cleanfunction used to sort files/dirs as sometimes the files were not sorted good - Fix issues in BiaPy's CI due to the changes made to adapt the code to Hypha structure API
Full Changelog: v3.6.5...v3.6.6