Giter Club home page Giter Club logo

shalabh147 / brain-tumor-segmentation-and-survival-prediction-using-deep-neural-networks Goto Github PK

View Code? Open in Web Editor NEW
159.0 8.0 44.0 288.81 MB

Use of state of the art Convolutional neural network architectures including 3D UNet, 3D VNet and 2D UNets for Brain Tumor Segmentation and using segmented image features for Survival Prediction of patients through deep neural networks.

License: MIT License

Python 4.02% Jupyter Notebook 95.98%
brain-tumor-segmentation survival-prediction deep-neural-networks unet-architecture segmentation keras-tensorflow brats-dataset medical-imaging aiformedicine vnet3d

brain-tumor-segmentation-and-survival-prediction-using-deep-neural-networks's Introduction

Brain-Tumor-Segmentation-and-Survival-Prediction-using-Deep-Neural-Networks

Keras implementation. Complete Report Link : https://www.cse.iitb.ac.in/~shalabhgupta/Report.pdf

Dataset

BraTS 2017 and 2018 data can be found on Kaggle.

Using the code

Have a look at the LICENSE.

Resources

As such, this code is not an implementation of a particular paper,and is combined of many architectures and deep learning techniques from various research papers on Brain Tumor Segmentation and survival prediction. Some of the best resources used are mentioned below.

Task

Task is of segmenting various parts of brain i.e. labeling all pixels in the multi-modal MRI images as one of the following classes:

  • Necrosis
  • Edema
  • Non-enhancing tumor
  • Enhancing tumor
  • Everything else

Brats 2015 dataset composed of labels 0,1,2,3,4 while Brats 2017 dataset consists of only 0,1,2,4.

BRATS Dataset

I have used BRATS 2017 training dataset for the analysis of the proposed methodology. It consists of real patient images as well as synthetic images created by MICCAI. Each of these folders are then subdivided into High Grade and Low Grade images. For each patient, four modalities(T1, T1-C, T2 and FLAIR) are provided. The fifth image has ground truth labels for each pixel. The dimensions of images are (240,240,155) in both.

Dataset pre-processing

Model has been trained on only those slices having all 4 labels(0,1,2,4) to tackle class imbalance and label 4 has been converted into label 3 (so that finally the one-hot encoding has size 4).

Model Architecture and Results

3D U-Net Architecture :

We achieved a dice score of 0.74 with this architecture.

This is our second best model.

Results

3D V-Net Architecture

We achieved a dice score of 0.68 with this.

Results

Combining along the 3 views(2D axes integration)

Inspired by https://link.springer.com/chapter/10.1007/978-3-319-75238-9_17, I created different UNet models for axial,sagittal and coronal 2D views of the 3D modality and trained on each of them and then the 3 models were combined to predict labels for each image. The combination can be performed using average of probabilities predicted by the 3 models for the 4 classes on each pixel.Then the final prediction is made using argmax function.

We achieved a dice score of 0.756 with this model for 4 class segmentation(Segmenting all the parts of tumor).

We achieved a dice score of 0.937 with this model for 2 class segmentation(Segmenting only whole tumor and non tumor parts of brain)

Survival Prediction Model

Various methods have been tried for survival prediction of patients based on their MRI images. Inspired from https://link.springer.com/chapter/10.1007/978-3-319-75238-9_13 , our architecture comprises of convolutional blocks that extract survival related features from the MRI images concatenated with their corresponding segmented image(as a channel map), concatenates age of the patient with these feature maps and finally Fully Connected layers are applied. The model classifies the patients to be lying in one of the 3 categories according to their survival days.

We achieved a testing accuracy of 51.07% while most of the SOTA techniques have about 55-57%.

Note : All images have been taken from the mentioned papers.

brain-tumor-segmentation-and-survival-prediction-using-deep-neural-networks's People

Contributors

shalabh147 avatar vrindajindal2003 avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

brain-tumor-segmentation-and-survival-prediction-using-deep-neural-networks's Issues

V-net 3d

Can you tell me how you train V-net 3D ? Thank you

issue3

Hi
when i try to execute 2d_axis1_results_2class.ipynb
it gives following error
0
1
2
3
4
Kindly resolve this issue.

Originally posted by @KanchanRani in #3 (comment)

Hii, I couldn't understand the models you are loading for 3d-unet and 3d-vnet as there is no code regarding saving of the models that are being loaded. model.save('../working/3d_model.h5') .This the saved model in 3d_Unet_v1 but model = load_model('../input/evaluateunet/3d_model_4.h5',custom_objects = {'dice_coef_loss' : dice_coef_loss , 'dice_coef' : dice_coef}),this is the loaded model . I couldnt able to get what model is being loaded as there is no saved model that is being loaded. Facing same issue with 3d_vnet cose also . Please look into my issue and help me in solving it ASAP.

error

Hi
Thanks in Advance
when i try to Run the -> Brain-Tumor-Segmentation-and-Survival-Prediction-using-Deep-Neural-Networks/2D_2class_models/2D_axis1/2d_axis1.ipynb file in Jupyternotebook it gives the following error.
please resolve this issue.

Capture
Capture1

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.