Skip to content

Version 3.6.6

Choose a tag to compare

@danifranco danifranco released this 01 Nov 19:28
· 198 commits to master since this release

Major:

  • Change the augmentations to work with pure 3D images and completely remove z and c channel 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 D channel into Db (distance to boundary)
    • Renamed old B channel into F
    • Add T for the touching areas
    • Add R for the radial distances, i.e. Stardist
    • Add H+V+Z channels for the distance offset, i.e. Cellpose, Hover-Net and Omnipose.
    • Now D channel is Db for the foreground and background
    • Add Dn for 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, E channel)
    • 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
  • 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 Y filename 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_restrictions with check_bmz_model_compatibility. Now check_bmz_model_compatibility does 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.5 as it used to be
  • Improve error message when no files are found during instance segmentation target creation data
  • Delete AUGMENTOR.BRIGHTNESS_MODE and AUGMENTOR.CONTRAST_MODE
  • Delete the old MODEL.LAST_ACTIVATION
  • Remove unused DATA.TRAIN.REPLICATE
  • Remove TEST.POST_PROCESSING.FILL_HOLES as it now is inside TEST.POST_PROCESSING.INSTANCE_REFINEMENT
  • Remove TEST.POST_PROCESSING.CLEAR_BORDER as it now is inside TEST.POST_PROCESSING.INSTANCE_REFINEMENT
  • Provide a better message when raw/gt val data does not match
  • PROBLEM.INSTANCE_SEG.DATA_REMOVE_SMALL_OBJ_BEFORE moved to PROBLEM.INSTANCE_SEG.WATERSHED.DATA_REMOVE_SMALL_OBJ_BEFORE
  • PROBLEM.INSTANCE_SEG.DATA_REMOVE_BEFORE_MW moved to PROBLEM.INSTANCE_SEG.WATERSHED.DATA_REMOVE_BEFORE_MW
  • PROBLEM.INSTANCE_SEG.SEED_MORPH_SEQUENCE moved to PROBLEM.INSTANCE_SEG.WATERSHED.SEED_MORPH_SEQUENCE
  • PROBLEM.INSTANCE_SEG.SEED_MORPH_RADIUS moved to PROBLEM.INSTANCE_SEG.WATERSHED.SEED_MORPH_RADIUS
  • PROBLEM.INSTANCE_SEG.ERODE_AND_DILATE_GROWTH_MASK moved to PROBLEM.INSTANCE_SEG.ERODE_AND_DILATE_GROWTH_MASK
  • PROBLEM.INSTANCE_SEG.FORE_EROSION_RADIUS moved to PROBLEM.INSTANCE_SEG.WATERSHED.FORE_EROSION_RADIUS
  • PROBLEM.INSTANCE_SEG.FORE_DILATION_RADIUS moved to PROBLEM.INSTANCE_SEG.WATERSHED.FORE_DILATION_RADIUS
  • PROBLEM.INSTANCE_SEG.DATA_CHECK_MW moved to PROBLEM.INSTANCE_SEG.WATERSHED.DATA_CHECK_MW
  • PROBLEM.INSTANCE_SEG.WATERSHED_BY_2D_SLICES moved to PROBLEM.INSTANCE_SEG.WATERSHED.BY_2D_SLICES
  • Remove PROBLEM.INSTANCE_SEG.SYNAPSES.NORMALIZE_DISTANCES and normalize always for now
  • Added new auxiliary scripts:
    • biapy/utils/scripts/measure_dataset_size.py
    • biapy/utils/scripts/stardist_wheels.py
    • biapy/utils/scripts/measure_class_weights.py
    • biapy/utils/scripts/PR_plot_instances.py
    • biapy/utils/scripts/agreement_manual_points_vs_dnn_instances.py
    • biapy/utils/scripts/semantic_seg_stats.py
    • biapy/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_clean function 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