Releases: BiaPyX/BiaPy
Releases · BiaPyX/BiaPy
Version 3.3.5
Fix patch:
- Rename
PROBLEM.NUM_CPUStoPROBLEM.NUM_WORKERSto clarify its usage. - Speed up SSL workflow
Version 3.3.4
Changes:
- Set
TEST.DET_EXCLUDE_BORDERtoFalseby 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
Fixes:
- Change
DATA.PREPROCESS.*.ACTIVATEtoDATA.PREPROCESS.*.ENABLEas 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.STATSand leave onlyFULL_IMGto be optional. TEST.FULL_IMGtoFalseby default.
Version 3.3.2
Quick patch to fix some issues:
- Move
sys.exit()call tomain.pyto prevent errors inside jupyter notebooks - Fix issue during BMZ export in classification
- Rename
DATA.PREPROCESSING.*.ACTIVATEtoENABLEas in other variables. - Remove
DATA.PREPROCESS.MEDIAN_BLUR.FOOTPRINTas it is a Numpy array and it can not be declared through YACS
Version 3.3.1
Quick patch to fix some issues:
- Fix
FORCE_RGBvariable 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
General changes
Major
- Separate instance filtering and statistical measurements with
TEST.POST_PROCESSING.MEASURE_PROPERTIESandTEST.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_BORDERoption
Bugs fixed:
- 2D test time augmentation bug with
MODEL.N_CLASSESsolved - Fix bug when
TEST.BY_CHUNKSselected usingTEST.BY_CHUNKS.INPUT_IMG_AXES_ORDERof len 4. - Avoid dividing with zero during instance stats
Version 3.2.0
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_ORDERto 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_MWtoFalsePROBLEM.DETECTION.DATA_CHECK_MWtoFalseDATA.VAL.SPLIT_TRAINto0.1- Remove
TEST.MATCHING_SEGCOMPAREnot used
- Add imagecodec as dependency so all TIFF files are loaded
- Increase timeout in
TEST.BY_CHUNKSsetting
Bugs fixed:
- Fix bug using
TEST.BY_CHUNKSwhen 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
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 mergesPROBLEM.INSTANCE_SEG.WATERSHED_CIRCULARITY,PROBLEM.INSTANCE_SEG.DATA_REMOVE_SMALL_OBJ_AFTERandPROBLEM.INSTANCE_SEG.DATA_REMOVE_SMALL_OBJ_AFTERfunctionalities. - New options and upgrades to save memory:
- Move normalization to
load_samplefunction inside the generators ifDATA.*.IN_MEMORYis selected, which allows to have in memory the dataset in its original dtype (usuarllyuint8oruint16) and not infloat32, consuming less memory, at the cost of having to do the normalization per batch. - Update
TEST.REDUCE_MEMORYoption to reduce also the dtype of the prediction fromfloat32tofloat16 - Add
TEST.BY_CHUNKS, and its options, to process large images by chunks: load/save steps work withH5orZarrformats. 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 loadingTIFimages but withH5andZarronly 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. WithTEST.BY_CHUNKS.WORKFLOW_PROCESS.TYPEyou can tell the worklow to process the predicted image patch by patch or as just one image. By patch option is currently only supported inDETECTIONworkflow.
- Move normalization to
Minor changes
- Delete
MODEL.KERNEL_INIT TRAIN.PATIENCEdefault changed to-1- Add
utils/scripts/h5_to_zarr.pyauxiliary 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_BORDERto remove instances in the border
Denoising
- Change N2V masks to be created always on the fly (saving memory)
Detection
- Remove
TEST.DET_LOCAL_MAX_COORDSoption - Add
TEST.DET_POINT_CREATION_FUNCTION, and a few more options related to it, to decide whether to usepeak_local_maxorblob_log(from scikit-image) functions to create the final points from probabilities.
SSL
- Add
MODEL.MAE_MASK_RATIOoption
SR
- Add
3Dsupport - 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
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
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.