Developing Brain Atlas through Deep Learning
1]-based toolbox to generate brain atlas through deep learning.SeBRe (Segmenting Brain Regions) is a high-throughput Mask R-CNN [
Iqbal, A., Khan, R. and Karayannis, T., 2019. Developing a brain atlas through deep learning. Nature Machine Intelligence, 1(6), p.277.
Iqbal, Asim, Romesa Khan, and Theofanis Karayannis. "Developing Brain Atlas through Deep Learning." arXiv preprint arXiv:1807.03440 (2018).
Clone the SeBRe repository by running the following command in your terminal window:
git clone https://github.com/itsasimiqbal/SeBRe.git
Additionally, download the (.zip) files by visiting the following link:
You would need
SeBRe_FINAL_WEIGHTS.h5.zip to run the code in your machine. If you'd like to use the mouse and human brain atlas datasets used in our paper then also download and unzip
SeBRe_Datasets.zip. Once you've downloaded your files then unzip them in your folder by running the following commands:
unzip DATASETSubmit.zip unzip myDATASET.zip unzip SeBRe_FINAL_WEIGHTS.h5.zip
Following are the Python/library versions on which the code is tested to work fine:
- Python (3.5.2)
- Tensorflow (1.6.0)
- Keras (2.1.6)
- skimage (0.13.0)
- Numpy (1.13.3) In case of any trouble, please feel free to write your query (firstname.lastname@example.org).
The block diagram of our system is demonstrated below:
Run the notebook SeBRe_FINAL.ipynb to reproduce the results in SeBRe's paper. Make sure to install the necessary libraries in your machine before running the code. A step-by-step explanation of feature processing in SeBRe is provided in SeBRe_feature_processing.ipynb notebook.
To train SeBRe on your (custom) dataset:
1. Collect images of brain regions (or sub-regions) and place each of them in a separate folder with the following naming convention e.g.
section_img_0.jpg, section_img_1.jpg, ...
2. Draw ground-truth (binary) masks on Regions of Interest (ROIs) e.g. cortex, hippocampus, etc. using a scalar vector graphics (SVG) software such as Boxy SVG , RectLabel , Inkscape , etc. and assign a unique color code to each ROI. In the figure below, mouse brain section is shown before (a) and after (d) annotation by human expert. A zoomed-in examples of cortex (b) and hindbrain (c) are shown to precisely match the boundaries of masks with the corresponding ROIs.
3. Run the notebook custom_dataset_create.ipynb to generate the binary (black and white) masks to train SeBRe deep neural network (DNN). The notebook will generate the file names in SeBRe-readable format, place them in the brain region corresponding folders e.g.
section_masks_0/section_masks_0_m_1.png, sections_masks_0_m_2.png, ...
4. Modify and run the notebook SeBRe_training.ipynb to train the SeBRe DNN on your (custom) dataset.
5. Modify and run the notebook SeBRe_FINAL.ipynb to test the SeBRe DNN on your (custom) dataset.