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.
Our method has been newly developed for the CoNIC Challenge 2022 (challenge description paper). We participated as team ciscnet.
- Anaconda Distribution.
- For GPU use: a CUDA capable GPU (highly recommended).
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
Currently, only the CoNIC Challenge patches of the Lizard dataset are supported. The corresponding files need to be saved in ./training_data/conic_patches.
- 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).
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
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.
- https://github.com/TissueImageAnalytics/CoNIC
- https://github.com/lessw2020/Ranger-Deep-Learning-Optimizer (Ranger optimizer)
- https://git.scc.kit.edu/KIT-Sch-GE/2021_segmentation (code basis)
This project is licensed under the MIT License - see the LICENSE.md file for details.