Skip to main content

Deep Learning-based tools for processing brain images

Project description

DeepBrain

Brain image processing tools using Deep Learning focused on speed and accuracy.

Available tools:

Extractor

img

Extract brain tissue from T1 Brain MRI (i.e skull stripping).

Extractor runs a custom U-Net model trained on a variety of manual-verified skull-stripping datasets.

Why choose Extractor over others (e.g. BET FSL, ANTs, PINCRAM)?

  1. Extractor is fast. It's CNN was implemented on Tensorflow and carefully designed to be as small as possible (i.e. lower amount of parameters). See below for speed comparison. You can achieve < 2 second extraction on GPU.

  2. Running Extractor is easy. You don't need to provide any complicated parameters (like brain templates or prior probability masks), just with the brain MRI is enough. This is because the model was trained with a data augmentation process that involved all kind of rotations and orientations of the brain MRI. This means that the extraction will be successfull regardless the orientation of the input brain MRI. No registration process is done.

  3. Extractor is accurate. It does not fail in some cases where others (specially BET) fails.

Speed

Extractor CPU (i5 2015 MBP) Extractor GPU (Nvidia TitanXP)
~20 seconds ~2 seconds

Accuracy

Extractor achieves state-of-the art accuracy > 0.97 Dice metric on the test set that is compound with a subset of entries from the CC359 dataset, NFBS dataset and ADNI dataset.

How to run

As command line program

$ deepbrain-extractor -i brain_mri.nii.gz -o ~/Desktop/output/

Where:

  • -i: the brain MRI that will be skull-stripped. It can be a nii or nii.gz image (or whatever format nibabel supports).
  • -o: an output directory (does not need to exist) where the program will save the brain_mask.nii and brain.nii files.

See deepbrain-extractor -h for more information.

As python

import nibabel as nb
from deepbrain import Extractor

# Load a nifti as 3d numpy image [H, W, D]
img = nib.load(img_path).get_fdata()

ext = Extractor()

# `prob` will be a 3d numpy image containing probability 
# of being brain tissue for each of the voxels in `img`
prob = ext.run(img) 

# mask can be obtained as:
mask = prob > 0.5

See deepbrain-extractor -h for more information.

Project details


Release history Release notifications | RSS feed

This version

0.1

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

deepbrain-0.1.tar.gz (675.1 kB view hashes)

Uploaded Source

Built Distribution

deepbrain-0.1-py3-none-any.whl (677.6 kB view hashes)

Uploaded Python 3

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page