SynthSeg

This functionality is only available in the development version of FreeSurfer.

Author: Benjamin Billot

E-mail: benjamin.billot.18 [at] ucl.ac.uk

Rather than directly contacting the author, please post your questions on this module to the FreeSurfer mailing list at freesurfer [at] nmr.mgh.harvard.edu

If you use SynthSeg in your analysis, please cite:

For the robust mode, please also cite:


Contents

  1. General Description
  2. Installation
  3. Usage
  4. Frequently asked questions (FAQ)
  5. List of segmented structures


1. General Description

This tool implements SynthSeg, the first convolutional neural network for segmentation of brain MRI scans of any contrast and resolution that works out-of-the-box, without retraining or fine-tuning. SynthSeg relies on a single model, which we distribute here. This model is robust to:

The output segmentations are returned at high resolution (1mm isotropic), regardless of the resolution of the input scans. The code can run on the GPU (6s per scan) as well as the CPU (2 minutes per scan). The list of segmented structures can be found at the bottom of this page.





Important: While SynthSeg is quite robust, it sometimes falters on scans with low signal-to-noise ratio, or with low tissue contrast (see figure below). For this reason, we developed a new architecture for increased robustness, named "SynthSeg-robust", which can be selected with the --robust flag (details in Section 3). You can use this mode when SynthSeg gives results like those in the third column (1st and 2nd rows) of the figure below:



2. Installation

The first time you run this module, it will prompt you to install Tensorflow. Simply follow the instructions in the screen to install the CPU or GPU version.

If you have a compatible GPU, you can install the GPU version for faster processing, but this requires installing libraries (GPU driver, Cuda, CuDNN). These libraries are generally required for a GPU, and are not specific for this tool. In fact you may have already installed them. In this case you can directly use this tool without taking any further actions, as the code will automatically run on your GPU.


3. Usage

You can use SynthSeg with the following command:

mri_synthseg --i <input> --o <output> [--post <post> --resample <resample> --vol <vol> --cpu --threads <threads> --crop <crop> --fast --robust]

where:

We note that --robust and --fast, as well as input text files, are only available on development versions from March 17th 2022 onwards.

Important: If you wish to process several scans, we highly recommend that you put them in a single folder, or use input text files, rather than calling SynthSeg individually on each scan. This will save the time required to set up the software for each scan.


4. Frequently asked questions (FAQ)

No! Because we applied aggressive augmentation during training (see paper), this tool is able to segment both processed and unprocessed data. So there is no need to apply bias field correction, skull stripping, or intensity normalisation.

This is because the volumes are computed upon a soft segmentation, rather than the discrete segmentation. The same happens with the main recon-all stream: if you compute volumes by counting voxels in aseg.mgz, you don't get the values reported in aseg.stats.

This tool can be run on Nifti (.nii/.nii.gz) and FreeSurfer (.mgz) scans.

If you have a multi-core machine, you can increase the number of threads with the --threads flag (up to the number of cores). Additionally you can also try to decrease the cropping value, but this will also decrease the field of view of the image.

Simply because, in order to output segmentations at 1mm resolution, the network needs the input images to be at this particular resolution! We actually do not resample images with resolution in the range [0.95, 1.05], which is close enough. We highlight that the resampling is performed internally to avoid the dependence on any external tool.

This may happens with viewers other than FreeSurfer's Freeview, if they do not handle headers properly. We recommend using Freeview but, if you want to use another viewer, you may have to use the --resample flag to save the resampled images, which any viewer will correctly align with the segmentations.


5. List of segmented structures

Please note that the label values follow the FreeSurfer classification. We emphasise that the structures are given in the same order as they appear in the posteriors, i.e. the first map of the posteriors corresponds to the background, then the second map is associated to the left cerebral white matter, etc.

Labels

Structures

0

background

2

left cerebral white matter

3

left cerebral cortex

4

left lateral ventricle

5

left inferior lateral ventricle

7

left cerebellum white matter

8

left cerebellum cortex

10

left thalamus

11

left caudate

12

left putamen

13

left pallidum

14

3rd ventricle

15

4th ventricle

16

brain-stem

17

left hippocampus

18

left amygdala

26

left accumbens area

28

left ventral DC

41

right cerebral white matter

42

right cerebral cortex

43

right lateral ventricle

44

right inferior lateral ventricle

46

right cerebellum white matter

47

right cerebellum cortex

49

right thalamus

50

right caudate

51

right putamen

52

right pallidum

53

right hippocampus

54

right amygdala

58

right accumbens area

60

right ventral DC