/brainseg

Train fully convonlutional neural networks for brain segmentation.

Primary LanguageMatlabOtherNOASSERTION

brainseg

Created by Stavros Tsogkas at CentraleSupelec, Paris.

Introduction

This code can be used to train and evaluate CNNs as described in our paper published at ISBI 2016. You can also find links to download the pre-computed probability maps for all the volumes in the IBSR dataset that we used in our experiments.

License

Our code is released under the MIT License (refer to the LICENSE file for details).

Citing

If you find our code or CNN-produced probability maps useful for your research, please cite:

@inproceedings{shakeri2016subcortical,
    Author = {Shakeri, Mahsa and Tsogkas, Stavros and Ferrante, Enzo and Lippe, Sarah and Kadoury, Samuel and Paragios, Nikos and Kokkinos, Iasonas},
    Title = {Sub-cortical Brain Structure Segmentation Using F-CNNs},
    Booktitle = {International Symposium on Biomedical Imaging ({ISBI})},
    Year = {2016}
}

If you use the RF-produced probability maps please cite:

@inproceedings{alchatzidis2014discrete,
    Author = {Alchatzidis, Stavros and Sotiras, Aristeidis and Paragios, Nikos},
    Title = {Discrete multi atlas segmentation using agreement constraints},
    Booktitle = {British Machine Vision Conference ({BMVC})},
    Year = {2014}
}

Contents

  1. Requirements: software
  2. Requirements: hardware
  3. Installation
  4. Download pre-computed probability maps for IBSR

Requirements: software

  1. A recent version of MATLAB. All our experiments were performed using MATLAB 2014a and Ubuntu 14.04.
  2. Our modified version of MatConvNet, with support for holes (included in this repository).
  3. NifTI tools for loading NifTI files.

Requirements: hardware

Our model is small enough to be trained using Nvidia GTX980 GPUs, demanding around 3GB of GPU RAM. If you want to experiment with different architectures, you may need GPUs with more RAM (e.g. Nvidia Titan or Tesla K40). You will probably need a computer with a good amount of CPU RAM, at least 12GB or more, depending on the amount of data augmentation.

Installation

  1. Clone the brainseg repository.

  2. Clone my utils and matconvnet repos. Install MatConvNet following the steps described here.

  3. Download the IBSR dataset. You will have to create a NITRC account, if you do not already have one. In our experiments we used cropped versions of the original volumes. We do not make that version of the data available to avoid copyright violation. If you want access to the cropped data, please send us an email.

  4. Create a folder brainseg/data (this can be a symlink), place the downloaded file inside and extract it. This will result in a brainseg/data/IBSR_nifti_stripped directory.

Make sure that utils, matconvnet, and NifTI tools are included in the MATLAB working path.

Download pre-computed probability maps for IBSR

Pre-computed probability maps for all the MRI volumes in IBSR with Random Forest and our CNN can be found here: https://drive.google.com/drive/folders/0Bx09CuSnoEa1YTY1S2tXNWFySHc

The MR brain data sets and their manual segmentations were provided by the Center for Morphometric Analysis at Massachusetts General Hospital and are available at http://www.cma.mgh.harvard.edu/ibsr/.