SLANT: Deep Whole Brain High Resolution Segmentation
[PyTorch] [project page] [NeuroImage paper] [MICCAI paper]
A T1 MRI scan can be segmented to 133 labels based on BrainCOLOR protocol(http://braincolor.mindboggle.info/protocols/).
It has been implemented as a single Docker.
- Please cite the following MICCAI/NeuroImage paper, if you used the SLANT whole brain segmentation.
The papers can be found SLANT,NeuroImage, whole full citation are
Yuankai Huo, Zhoubing Xu, Yunxi Xiong, Katherine Aboud, Parasanna Parvathaneni, Shunxing Bao, Camilo Bermudez, Susan M. Resnick, Laurie E. Cutting, and Bennett A. Landman. "3D whole brain segmentation using spatially localized atlas network tiles" NeuroImage 2019.
Yuankai Huo, Zhoubing Xu, Katherine Aboud, Parasanna Parvathaneni, Shunxing Bao, Camilo Bermudez, Susan M. Resnick, Laurie E. Cutting, and Bennett A. Landman. "Spatially Localized Atlas Network Tiles Enables 3D Whole Brain Segmentation" In International Conference on Medical Image Computing and Computer-Assisted Intervention, MICCAI 2018.
+ The code and docker are free for noncommercial purposes.
+ The licence.md shows the terms for commercial and for-profit purposes.
Quick Start
Get our docker image
sudo docker pull masidocker/public:deep_brain_seg_v1_1_0
Run SLANT brain segmentation
You can run the following command or change the input_dir
, then you will have the final segmentation results in output_dir
# you need to specify the input directory
export input_dir=/home/input_dir
# make that directory
sudo mkdir $input_dir
# download the test volume file, you can even put multiple input files here, no worries.
sudo wget -O $input_dir/test_volume.nii.gz https://www.nitrc.org/frs/download.php/10666/test_volume.nii.gz
# set output directory
export output_dir=$input_dir/output
#run the docker
sudo nvidia-docker run -it --rm -v $input_dir:/INPUTS/ -v $output_dir:/OUTPUTS masidocker/public:deep_brain_seg_v1_1_0 /extra/run_deep_brain_seg.sh
- You will see the final a segmentation file in "FinalResult"
- You will see the final a overlay pdf in "FinalPDF"
- You will see the final a txt file contains all label names and volume in "FinalVolTxt".
Source Code
The SLANT is a whole brain segmentation pipeline that contains (1) pre-processing, (2) deep learning, (3) post-processing, which have all been contained in the Docker. The main scratch in Docker is the run_deep_brain_seg.sh
. The related source code and binary files have been included in the Docker. They can also be found in the "matlab" and "python".
- Pre- and Post-processing code can be found in "matlab"
- Train and testing code for deep learning part can be found in "python"
If you only have CPU, you can use the following CPU version of the docker. (50GB Memory might be required using CPU!)
sudo docker pull masidocker/public:deep_brain_seg_v1_1_0_CPU
sudo docker run -it --rm -v $input_dir:/INPUTS/ -v $output_dir:/OUTPUTS masidocker/public:deep_brain_seg_v1_1_0_CPU /extra/run_deep_brain_seg.sh
List of 45 Training Data and 5 Validation Data from OASIS study
45 Training
OAS1_0061_MR1|OAS1_0080_MR1|OAS1_0092_MR1|OAS1_0101_MR1|OAS1_0117_MR1|OAS1_0145_MR1|OAS1_0150_MR1|OAS1_0156_MR1|OAS1_0191_MR1|OAS1_0202_MR1|OAS1_0230_MR1|OAS1_0236_MR1|OAS1_0239_MR1|OAS1_0249_MR1|OAS1_0285_MR1|OAS1_0368_MR1|OAS1_0395_MR1|OAS1_0091_MR1|OAS1_0005_MR1|OAS1_0340_MR1|OAS1_0417_MR1|OAS1_0069_MR1|OAS1_0173_MR1|OAS1_0040_MR1|OAS1_0088_MR1|OAS1_0074_MR1|OAS1_0282_MR1|OAS1_0050_MR1|OAS1_0443_MR1|OAS1_0331_MR1|OAS1_0389_MR1|OAS1_0274_MR1|OAS1_0456_MR1|OAS1_0070_MR1|OAS1_0358_MR1|OAS1_0300_MR1|OAS1_0124_MR1|OAS1_0220_MR1|OAS1_0263_MR1|OAS1_0013_MR1|OAS1_0113_MR1|OAS1_0317_MR1|OAS1_0083_MR1|OAS1_0270_MR1|OAS1_0278_MR1
5 Validation
OAS1_0111_MR1|OAS1_0353_MR2|OAS1_0032_MR1|OAS1_0379_MR1|OAS1_0255_MR1
HERE
You can download the listDetailed environment setting
Testing platform
- Ubuntu 16.04
- cuda 8.0
- Pytorch 0.2
- Docker version 1.13.1-cs9
- Nvidia-docker version 1.0.1 to 2.0.3
- GPU: NVIDIA TITIAN 12GB
install Docker
sudo apt-get install apt-transport-https ca-certificates curl software-properties-common
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add -
sudo add-apt-repository "deb [arch=amd64] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable"
sudo apt-get update
sudo apt-get install docker-ce
install Nvidia-Docker
curl -s -L https://nvidia.github.io/nvidia-docker/gpgkey | sudo apt-key add -
distribution=$(. /etc/os-release;echo $ID$VERSION_ID)
curl -s -L https://nvidia.github.io/nvidia-docker/$distribution/nvidia-docker.list | sudo tee /etc/apt/sources.list.d/nvidia-docker.list
sudo apt-get update
sudo apt-get install -y nvidia-docker2
Detailed Results for Each ROI
The region look up table: Download TXT , the LUT file can be loaded in FreeSurfer's FreeView tool directly.
The detailed measurement of Figure 9 in NeuroImage paper
Joint Label Fusion Multi Atlas: Download CSV
Non Local Spatial STAPLE Multi Atlas: Download CSV
Patch CNN: Download CSV
Registration + U-Net: Download CSV
SLANT 8: Download CSV
SLANT 27: Download CSV
build singularity from docker
singularity build slant_v1.simg docker://vuiiscci/slant:deep_brain_seg_v1_1_0_CPU
run singularity
export INDIR=/data/mcr/huoy1/test_singularity/input_contain
export OUTDIR=/data/mcr/huoy1/test_singularity/output_contain
export slantDIR=/data/mcr/huoy1/SLANT_cpu
export tempDIR=/data/mcr/huoy1/test_singularity/tmp
singularity run --nv -e -B $INDIR:/INPUTS -B $OUTDIR:/OUTPUTS -B $tempDIR:/tmp $slantDIR/slant_v1_contain.simg /extra/run_deep_brain_seg.sh
Previous versions
Updates 08/01/2020, fix the number of thread to 1 to solve the reproducibility issue cased by N4 correct
sudo docker pull vuiiscci/slant:deep_brain_seg_v1_0_0
sudo nvidia-docker run -it --rm -v $input_dir:/INPUTS/ -v $output_dir:/OUTPUTS vuiiscci/slant:deep_brain_seg_v1_0_0 /extra/run_deep_brain_seg.sh