Skip to content

Latest commit

 

History

History
81 lines (68 loc) · 4.37 KB

README.md

File metadata and controls

81 lines (68 loc) · 4.37 KB

ciscNet - A Single-Branch Cell Instance Segmentation and Classification Network

Nuclear segmentation, classification and quantification within Haematoxylin & Eosin stained histology images.

To reproduce the results of our ISBI publication, go to the branch isbi2022. For the post-challenge analysis with a specified train-val split, go to the branch post-processing-analysis.

CoNIC Challenge 2022

Our method has been newly developed for the CoNIC Challenge 2022 (challenge description paper). We participated as team ciscnet.

Prerequisites

Installation

Clone the repository and set up a virtual environment:

git clone https://git.scc.kit.edu/ciscnet/ciscnet-conic-2022
cd ciscnet-conic-2022
conda env create -f requirements.yml
conda activate ciscnet_conic_challenge_ve

Data

Currently, only the CoNIC Challenge patches of the Lizard dataset are supported. The corresponding files need to be saved in ./training_data/conic_patches.

Usage

  • train.py: create training data sets and train models
    • --model_name (default='conic_model'): Suffix for the model name.
    • --dataset (default='conic_patches'): Data to use for training.
    • --act_fun (default='mish'): Activation function.
    • --batch_size (default=8): Batch size.
    • --classes (default=6): Classes to predict.
    • --filters (default=[64, 1024]): Filters for U-net.
    • --loss (default='weighted_smooth_l1'): Loss function.
    • --multi_gpu (default=False): Use multiple GPUs.
    • --norm_method (default='gn'): Normalization layer type.
    • --optimizer (default='ranger'): Optimizer.
    • --pool_method (default='conv'): Downsampling layer type.
    • --train_split (default=80): Train set - val set split in %.
    • --upsample (default=False): Apply rescaling (factor 1.25).
    • --channels_in (default=3): Number of input channels.
    • --max_epochs (default=None): Maximum number of epochs (None: auto defined).
    • --loss_fraction_weights (default=None): Weights for weighting the losses of the single classes (first weight: summed up channel.").
    • --weightmap_weights (default=None): Weights for the foreground for each class (first weight: summed up channel.").
  • eval.py: evaluate specified model for various thresholds on the validation set
    • --model: Model to evaluate.
    • --dataset (default='conic_patches'): Data to use for evaluation.
    • --batch_size (default=8): Batch size.
    • --multi_gpu (default=False): Use multiple GPUs.
    • --save_raw_pred (default=False): Save raw predictions.
    • --th_cell (default=0.12): Threshold(s) for adjusting cell size (multiple inputs possible).
    • --th_seed (default=0.45): Threshold(s) for seed extraction.
    • --tta (default=False): Use test-time augmentation.
    • --eval_split (default=80): Train set - val set split in % (use best same as for training).
    • --upsample (default=False): Apply rescaling (1.25) for inference (results are original scale).

Challenge Submission Parameters

Stated are only non-default parameters.

  • train:
    • --multi_gpu
    • --batch_size 16
    • --loss_fraction_weights 1 3 1 1 3 3 1
    • --weightmap_weights 1 2 1 1 2 2 1
  • eval/inference:
    • --tta

Publication

M. Böhland et al. (2022): Ciscnet - a Single-Branch Cell Nucleus Instance Segmentation and Classification Network, 2022 IEEE International Symposium on Biomedical Imaging Challenges (ISBIC), doi:10.1109/ISBIC56247.2022.9854734.

Acknowledgments

License

This project is licensed under the MIT License - see the LICENSE.md file for details.