Multi-input segmentation of damaged brain in acute ischemic stroke patients using slow fusion with skip connection
It contains the code described in the paper "Multi-input segmentation of damaged brain in acute ischemic stroke patients using slow fusion with skip connection".
Time is a fundamental factor during stroke treatments. A fast, automatic approach that segments the ischemic regions helps treatment decisions. In clinical use today, a set of color-coded parametric maps generated from computed tomography perfusion (CTP) images are investigated manually to decide a treatment plan. We propose an automatic method based on a neural network using a set of parametric maps to segment the two ischemic regions (core and penumbra) in patients affected by acute ischemic stroke. Our model is based on a convolution-deconvolution bottleneck structure with multi-input and slow fusion. A loss function based on the focal Tversky index addresses the data imbalance issue. The proposed architecture demonstrates effective performance and results comparable to the ground truth annotated by neuroradiologists. A Dice coefficient of 0.81 for penumbra and 0.52 for core over the large vessel occlusion test set is achieved.
Model | Input | Layer Weights |
Dice coeff. (Avg)±SD | |||||
---|---|---|---|---|---|---|---|---|
LVO | Non-LVO | |||||||
PMs | MIP | NIHSS | Penumbra | Core | Penumbra | Core | ||
Model_F(PMs) | X | Frozen | 0.71±0.1 | 0.37±0.3 | 0.27±0.3 | 0.22±0.3 | ||
Model_F(PMs,M) | X | X | 0.69±0.2 | 0.36±0.3 | 0.29±0.3 | 0.20±0.3 | ||
Model_F(PMs,N) | X | X | 0.70±0.2 | 0.36±0.3 | 0.29±0.3 | 0.16±0.2 | ||
Model_F(PMs,M,N) | X | X | X | 0.68±0.2 | 0.34±0.3 | 0.30±0.3 | 0.18±0.3 | |
Model_U(PMU) | X | Unfrozen | 0.70±0.2 | 0.34±0.3 | 0.29±0.4 | 0.24±0.3 | ||
Model_F(PMs,M) | X | X | 0.70±0.2 | 0.36±0.3 | 0.34±0.3 | 0.24±0.3 | ||
Model_U(PMs,N) | X | X | 0.72±0.2 | 0.36±0.3 | 0.29±0.3 | 0.23±0.3 | ||
Model_U(PMs,M,N) | X | X | X | 0.71±0.2 | 0.36±0.3 | 0.32±0.3 | 0.22±0.3 | |
Model_G(PMs) | X | Gradual Fine-tuning |
0.71±0.2 | 0.35±0.3 | 0.30±0.3 | 0.19±0.3 | ||
Model_G(PMs,M) | X | X | 0.69±0.2 | 0.35±0.3 | 0.34±0.6 | 0.22±0.4 | ||
Model_G(PMs,N) | X | X | 0.72±0.2 | 0.37±0.3 | 0.31±0.3 | 0.21±0.3 | ||
Model_G(PMs,M,N) | X | X | X | 0.68±0.2 | 0.34±0.3 | 0.31±0.3 | 0.18±0.3 |
https://doi.org/10.7557/18.6223
https://arxiv.org/abs/2203.10039
pip install -r requirements.txt
Assuming that you already have a dataset to work with, you can use a json file to define the setting of your model.
Refer to Setting_explained.json for explanations of the various settings.
Usage: python main.py gpu sname
[-h] [-v] [-d] [-o] [-s SETTING_FILENAME] [-t TILE] [-dim DIMENSION] [-c {2,3,4}]
positional arguments:
gpu Give the id of gpu (or a list of the gpus) to use
sname Select the setting filename
optional arguments:
-h, --help show this help message and exit
-v, --verbose Increase output verbosity
-d, --debug DEBUG mode
-o, --original Set the shape of the testing dataset to be compatible with the original shape
(T,M,N) [time in front]
-pm, --pm Set the flag to train the parametric maps as input
-t TILE, --tile TILE Set the tile pixels dimension (MxM) (default = 16)
-dim DIMENSION, --dimension DIMENSION
Set the dimension of the input images (width X height) (default = 512)
-c {2,3,4}, --classes {2,3,4}
Set the # of classes involved (default = 4)
-w, --weights Set the weights for the categorical losses
The code is released free of charge as open-source software under the GPL-3.0 License. Please cite our paper when you have used it in your study.
@inproceedings{tomasetti2022multi,
title={Multi-input segmentation of damaged brain in acute ischemic stroke patients using slow fusion with skip connection},
author={Tomasetti, Luca and Khanmohammadi, Mahdieh and Engan, Kjersti and H{\o}llesli, Liv Jorunn and Kurz, Kathinka D{\ae}hli},
booktitle={Proceedings of the Northern Lights Deep Learning Workshop},
volume={3},
year={2022}
}
Email me at luca.tomasetti@uis.no