Skip to content

Releases: BiaPyX/BiaPy

Version 3.3.5

13 Feb 14:13

Choose a tag to compare

Fix patch:

  • Rename PROBLEM.NUM_CPUS to PROBLEM.NUM_WORKERS to clarify its usage.
  • Speed up SSL workflow

Version 3.3.4

08 Feb 18:25

Choose a tag to compare

Changes:

  • Set TEST.DET_EXCLUDE_BORDER to False by default.
  • Add TEST.DET_PEAK_LOCAL_MAX_MIN_DISTANCE.
  • 3 int tuple for TEST.RESOLUTION in instance segmentation if TEST.ANALIZE_2D_IMGS_AS_3D_STACK.
  • Prevent usage of EfficientNet architectures for 3D.
  • Add PROBLEM.INSTANCE_SEG.WATERSHED_BY_2D_SLICE.

Fix:

  • Prevent creating multiple processes to manage data if low samples are available.
  • Solve EfficientNet issue with biapy backend as discussed here.
  • Bug in instance seg when no labels are provided.
  • Disable aug sample image generation if DA is disabled.
  • Fix SSL bug during training due to recent changes.

Version 3.3.3

03 Feb 16:55

Choose a tag to compare

Fixes:

  • Change DATA.PREPROCESS.*.ACTIVATE to DATA.PREPROCESS.*.ENABLE as the rest of the variables in all the files (changed only in config.py by error).
  • Separate per_image, full_image and as_3D_stack instance files in different folders.
  • Separate instance segmentation metrics when multiple choices are selected. Before full_image and per_image metrics were mixed.
  • Simplify inference by setting as default patch/merge reconstruction of the prediction. This implied to remove TEST.STATS and leave only FULL_IMG to be optional.
  • TEST.FULL_IMG to False by default.

Version 3.3.2

01 Feb 12:44

Choose a tag to compare

Quick patch to fix some issues:

  • Move sys.exit() call to main.py to prevent errors inside jupyter notebooks
  • Fix issue during BMZ export in classification
  • Rename DATA.PREPROCESSING.*.ACTIVATE to ENABLE as in other variables.
  • Remove DATA.PREPROCESS.MEDIAN_BLUR.FOOTPRINT as it is a Numpy array and it can not be declared through YACS

Version 3.3.1

31 Jan 09:01

Choose a tag to compare

Quick patch to fix some issues:

  • Fix FORCE_RGB variable usage in classification
  • Adapt skimage's relabel_sequential() to be as the old function we were using so the matching metrics process doesn't get stuck anymore.

Version 3.3.0

29 Jan 15:39

Choose a tag to compare

General changes

Major

  • Separate instance filtering and statistical measurements with TEST.POST_PROCESSING.MEASURE_PROPERTIES and TEST.POST_PROCESSING.MEASURE_PROPERTIES.REMOVE_BY_PROPERTIES
  • Add sphericity (3D), perimeter/surface area (2D/3D) and elongation (2D) calculations using the same formulas as described in MorphoLibJ
  • Multi-GPU prediction by chunks (Zarr/H5):
    • Add versatile axis order
    • Fix some overlap errors
  • Add data preprocessing options:
    • Resize
    • Gaussian blur
    • Median blur
    • Histogram matching
    • Contrast Limited Adaptive Histogram Equalization (CLAHE)
    • Canny or edge detection (only 2D - grayscale or RGB)
  • Change BiaPy into a class so we can call functions individually (e.g. BMZ model exportation)
  • Detection:
    • Add overlap in detection during multi-GPU prediction by chunks
    • Now point coords work in global position

Minor

  • Add TEST.DET_EXCLUDE_BORDER option

Bugs fixed:

  • 2D test time augmentation bug with MODEL.N_CLASSES solved
  • Fix bug when TEST.BY_CHUNKS selected using TEST.BY_CHUNKS.INPUT_IMG_AXES_ORDER of len 4.
  • Avoid dividing with zero during instance stats

Version 3.2.0

04 Jan 16:02

Choose a tag to compare

General changes

Major

  • Fix TTA bug in full image prediction
  • Add Bioimage Model Zoo (BMZ) as a source to load pretrained models for inference
  • Add option to export a model into BMZ format
  • Add TorchVision as a source for building models
  • Add TEST.BY_CHUNKS.INPUT_IMG_AXES_ORDER to control the order of the Zarr/H5 input image axes
  • Change project structure to be able to call BiaPy through command line

Minor

  • Add CODE_OF_CONDUCT.md
  • Changed variable default values:
    • PROBLEM.INSTANCE_SEG.DATA_CHECK_MW to False
    • PROBLEM.DETECTION.DATA_CHECK_MW to False
    • DATA.VAL.SPLIT_TRAIN to 0.1
    • Remove TEST.MATCHING_SEGCOMPARE not used
  • Add imagecodec as dependency so all TIFF files are loaded
  • Increase timeout in TEST.BY_CHUNKS setting

Bugs fixed:

  • Fix bug using TEST.BY_CHUNKS when no GPU is used
  • Fix bug in cross validation for workflows that do not require GT (e.g. denoising)
  • Fix semantic seg issues in multiclass
  • Fix bug in image saving when Z axis is less than 5

Version 3.1.0

07 Nov 16:04

Choose a tag to compare

New functionality added:

General

Major changes

  • Add ResUNet++ model
  • Add TEST.POST_PROCESSING.REMOVE_BY_PROPERTIES, and its options, to remove instances by the conditions based in each instance properties. This merges PROBLEM.INSTANCE_SEG.WATERSHED_CIRCULARITY, PROBLEM.INSTANCE_SEG.DATA_REMOVE_SMALL_OBJ_AFTER and PROBLEM.INSTANCE_SEG.DATA_REMOVE_SMALL_OBJ_AFTER functionalities.
  • New options and upgrades to save memory:
    • Move normalization to load_sample function inside the generators if DATA.*.IN_MEMORY is selected, which allows to have in memory the dataset in its original dtype (usuarlly uint8 or uint16) and not in float32, consuming less memory, at the cost of having to do the normalization per batch.
    • UpdateTEST.REDUCE_MEMORY option to reduce also the dtype of the prediction from float32 to float16
    • Add TEST.BY_CHUNKS, and its options, to process large images by chunks: load/save steps work with H5 or Zarr formats. This option helps to generate model's prediction with overlap/padding with low memory footprint by constructing it patch by patch. It is also prepared to do multi-GPU inference to accelerate the reconstruction process. It can also work loading TIF images but with H5 and Zarr only the patches processed are loaded into memory, and nothing else, so you can should scale to TB of data without having memory problems.
    • Add TEST.BY_CHUNKS.WORKFLOW_PROCESS, and a few more options related to it, to continue or not the workflow normal steps after the model prediction. With TEST.BY_CHUNKS.WORKFLOW_PROCESS.TYPE you can tell the worklow to process the predicted image patch by patch or as just one image. By patch option is currently only supported in DETECTION workflow.

Minor changes

  • Delete MODEL.KERNEL_INIT
  • TRAIN.PATIENCE default changed to -1
  • Add utils/scripts/h5_to_zarr.py auxiliary script
  • Now warmupcosinelearning rate scheduler is done by iterations and not by epochs.
  • Update notebooks to work with BiaPy based on Pytorch

Workflows

Instance segmentation

  • Add TEST.POST_PROCESSING.CLEAR_BORDER to remove instances in the border

Denoising

  • Change N2V masks to be created always on the fly (saving memory)

Detection

  • Remove TEST.DET_LOCAL_MAX_COORDS option
  • Add TEST.DET_POINT_CREATION_FUNCTION, and a few more options related to it, to decide whether to use peak_local_max or blob_log (from scikit-image) functions to create the final points from probabilities.

SSL

  • Add MODEL.MAE_MASK_RATIO option

SR

  • Add 3D support
  • Add notebooks

Bugs fixed:

  • Correct bug on 2D UNETR definition
  • Fix bug in 2D cross validation
  • Minor bugs created when switching from Tensorflow to Pytorch

Version 3.0

22 Sep 13:20

Choose a tag to compare

Major changes:

  • Move all code to Pytorch
@inproceedings{franco2023biapy,
  title={BiaPy: a ready-to-use library for Bioimage Analysis Pipelines},
  author={Franco-Barranco, Daniel and Andr{\'e}s-San Rom{\'a}n, Jes{\'u}s A and G{\'o}mez-G{\'a}lvez, Pedro and Escudero, Luis M and Mu{\~n}oz-Barrutia, Arrate and Arganda-Carreras, Ignacio},
  booktitle={2023 IEEE 20th International Symposium on Biomedical Imaging (ISBI)},
  pages={1--5},
  year={2023},
  organization={IEEE}
}

Version 1.0

14 Oct 08:42

Choose a tag to compare

This version of the project should be used to reproduce all the results reported in the following work:

@misc{francobarranco2021stable,
      title={Stable deep neural network architectures for mitochondria segmentation on electron microscopy volumes}, 
      author={Daniel Franco-Barranco and Arrate Muñoz-Barrutia and Ignacio Arganda-Carreras},
      year={2021},
      eprint={2104.03577},
      archivePrefix={arXiv},
      primaryClass={eess.IV}
}

For here on we will move to newest versions of Tensorflow/Keras and some parts of the code could change.