BiaPy

Open source Python library for building bioimage analysis pipelines

MIT License

Downloads
4.7K
Stars
114
Committers
15
BiaPy - Version 3.3.2

Published by danifranco 9 months ago

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
BiaPy - Version 3.3.1

Published by danifranco 9 months ago

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.
BiaPy - Version 3.3.0

Published by danifranco 9 months ago

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
BiaPy - Version 3.2.0

Published by danifranco 10 months ago

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
BiaPy - Version 3.1.0

Published by danifranco 12 months ago

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
BiaPy - Version 3.0

Published by danifranco about 1 year ago

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}
}
BiaPy - Version 1.0

Published by danifranco about 3 years ago

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.

BiaPy - Version 2.0

Published by danifranco about 3 years ago

Major changes:

  • Merge all pipelines, 2D/3D/semantic seg., in one.
  • Delete templates and work with YAML configuration files
  • Add instance segmentation pipeline
    • Add models: U-Net 2D ResUNet 2D/3D for instance seg.
    • BCD channel data creation
    • Marked watershed based in BCD to create instances
    • mAP calculation
  • Update 2D/3D data generators with new data augmentation
  • One-cycle policy and cosine decay schedulers
  • Update documentation and create tutorials
Package Rankings
Top 23.92% on Pypi.org
Badges
Extracted from project README
Code consistency
Related Projects