MRBrainS2018-Brain-Segmentation

MixNet: Multi-modality Mix Network for Brain Segmentation

@inproceedings{LongMACCAIBrainLes,
   author = {Long Chen, Dorit Merhof},
   title = {MixNet: Multi-modality Mix Network for Brain Segmentation},
   booktitle = {MICCAI Brainlesion Workshop (BrainLes)},
   year = {2018},
}

MICCAI BrainLes Workshop
MICCAI MRBrainS2018 Challenge
MICCAI MRBrainS2013 Challenge
Institute of Imaging & Computer Vision, RWTH Aachen University

Prerequisites

Python dependencies:

  • tensorflow
  • matplotlib
  • scipy
  • nibabel

Data dependencies:

The model is trained with MICCAI MRBrainS2013/MRBrainS2018 dataset. To train a model from scratch, you may also use these two datasets.

If you want to run the code directly, you should organise the dataset structure as following:

For the MICCAI MRBrainS2013 dataset:

├─ root
    └─ MRBrainS2013
        └─ trainingData
            └─ 1
                └─ (LabelsForTesting.nii, LabelsForTraining.nii, T1.nii, T1_1mm.nii, T1_IR.nii, T2_FLAIR.nii)
            └─ 2
               ... ...
        └─ testData
            └─ 1
                └─ (T1.nii, T1_1mm.nii, T1_IR.nii, T2_FLAIR.nii)
            └─ 2
               ... ...

For the MICCAI MRBrainS2018 dataset:

├─ root
    └─ MRBrainS2018
        └─ trainingData
            └─ 1
                └─ segm.nii.gz
                └─ pre
                    └─ (FLAIR.nii.gz, IR.nii.gz, reg_IR.nii.gz, reg_T1.nii.gz, T1.nii.gz)
                └─ orig
                    └─ (FLAIR.nii.gz, IR.nii.gz, reg_3DT1_to_FLAIR.txt, reg_IR.nii.gz, reg_T1.nii.gz, T1.nii.gz, T1_mask.nii.gz)
            └─ 4
               ... ...

If the data is not organised as above, you should change the dictionary dataset_config in train.py and predict.py correspondingly.

Download pretrainde model

Unzip the pretrained models in the model folder, like:

├─ root
    └─ models
        └─ model_2013_nopp
                └─ checkpoint
                └─ graph.pbtxt
                └─ model.ckpt-257945.data-00000-of-00001
                └─ model.ckpt-257945.index
                └─ model.ckpt-257945.meta

Test pre-trainded model

If you have organised the model and dataset as above, you should be able to run directly:

python predict.py

In predict.py, three python dictionaries are used to config the run:

  • net_config: network parameters
  • running_config: model location, batch_size
  • dataset_config: data locations, input modalities

Train your own model

To train your own model, run: python train.py

Similar to the prediction code, train.py has three python dictionaries to control the network structure and training:

  • net_config: network parameters
  • training_config: training configurations
  • dataset_config: data locations, input modalities

Results

Quanlitative resluts

Quantitative results on MICCAI MRBrianS2018 Dataset