All Projects → vuptran → Cardiac Segmentation

vuptran / Cardiac Segmentation

Convolutional Neural Networks for Cardiac Segmentation

Programming Languages

python
139335 projects - #7 most used programming language

Projects that are alternatives of or similar to Cardiac Segmentation

3dunet abdomen cascade
Stars: ✭ 91 (-3.19%)
Mutual labels:  convolutional-neural-networks, fully-convolutional-networks
Faced
🚀 😏 Near Real Time CPU Face detection using deep learning
Stars: ✭ 528 (+461.7%)
Mutual labels:  convolutional-neural-networks, fully-convolutional-networks
Vnet.pytorch
A PyTorch implementation for V-Net: Fully Convolutional Neural Networks for Volumetric Medical Image Segmentation
Stars: ✭ 506 (+438.3%)
Mutual labels:  convolutional-neural-networks, fully-convolutional-networks
Tensorflow Cifar 10
Cifar-10 CNN implementation using TensorFlow library with 20% error.
Stars: ✭ 85 (-9.57%)
Mutual labels:  convolutional-neural-networks
Reinforcement Learning For Self Driving Cars
Project on design and implement neural network that maximises driving speed of self-driving car through reinforcement learning.
Stars: ✭ 85 (-9.57%)
Mutual labels:  convolutional-neural-networks
Fast Autoaugment
Official Implementation of 'Fast AutoAugment' in PyTorch.
Stars: ✭ 1,297 (+1279.79%)
Mutual labels:  convolutional-neural-networks
Dped
Software and pre-trained models for automatic photo quality enhancement using Deep Convolutional Networks
Stars: ✭ 1,315 (+1298.94%)
Mutual labels:  convolutional-neural-networks
Tf Mobilenet V2
Mobilenet V2(Inverted Residual) Implementation & Trained Weights Using Tensorflow
Stars: ✭ 85 (-9.57%)
Mutual labels:  convolutional-neural-networks
Core50
CORe50: a new Dataset and Benchmark for Continual Learning
Stars: ✭ 91 (-3.19%)
Mutual labels:  convolutional-neural-networks
Trained Ternary Quantization
Reducing the size of convolutional neural networks
Stars: ✭ 90 (-4.26%)
Mutual labels:  convolutional-neural-networks
Deep Learning For Beginners
videos, lectures, blogs for Deep Learning
Stars: ✭ 89 (-5.32%)
Mutual labels:  convolutional-neural-networks
Malware Classification
Towards Building an Intelligent Anti-Malware System: A Deep Learning Approach using Support Vector Machine for Malware Classification
Stars: ✭ 88 (-6.38%)
Mutual labels:  convolutional-neural-networks
Niftynet
[unmaintained] An open-source convolutional neural networks platform for research in medical image analysis and image-guided therapy
Stars: ✭ 1,276 (+1257.45%)
Mutual labels:  convolutional-neural-networks
Image Quality Assessment
Convolutional Neural Networks to predict the aesthetic and technical quality of images.
Stars: ✭ 1,300 (+1282.98%)
Mutual labels:  convolutional-neural-networks
Breast Cancer Classification
Breast Cancer Classification using CNN and transfer learning
Stars: ✭ 86 (-8.51%)
Mutual labels:  convolutional-neural-networks
Incremental Learning
Pytorch implementation of ACCV18 paper "Revisiting Distillation and Incremental Classifier Learning."
Stars: ✭ 92 (-2.13%)
Mutual labels:  convolutional-neural-networks
Keras Icnet
Keras implementation of Real-Time Semantic Segmentation on High-Resolution Images
Stars: ✭ 85 (-9.57%)
Mutual labels:  fully-convolutional-networks
Capsnet Pytorch
My attempt at implementing CapsNet from the paper Dynamic Routing Between Capsules
Stars: ✭ 87 (-7.45%)
Mutual labels:  convolutional-neural-networks
Kerasr
R interface to the keras library
Stars: ✭ 90 (-4.26%)
Mutual labels:  convolutional-neural-networks
Fakeimagedetector
Image Tampering Detection using ELA and CNN
Stars: ✭ 93 (-1.06%)
Mutual labels:  convolutional-neural-networks

A Fully Convolutional Neural Network for Cardiac Segmentation

A Keras re-implementation of the original Caffe FCN model in the arXiv paper A Fully Convolutional Neural Network for Cardiac Segmentation in Short-Axis MRI .

FCN_schematic

Care was taken to reproduce the results reported in the original paper, particularly Tables 2-4. However, there are key differences between this Keras implementation and the original Caffe implementation:

  • Caffe has the Net::Reshape method that "allows networks to change their input sizes in-place." This method is very useful for defining a fully convolutional network that can process inputs with variable shapes. Some Keras layers (such as Cropping2D or Flatten) require shape information, and thus do not work with such variable input shapes. For this Keras FCN model, we standardize all inputs to a fixed shape, and then transform them back to their original shapes during post-processing. Caffe FCN models can process any variable input shape.
  • The Caffe implementation uses cross entropy loss as the training signal, whereas this Keras implementation uses the Dice coefficient as the training loss.
  • The Caffe implementation uses a slightly different strategy for data augmentation than this Keras implementation. The following tables summarize the data augmentation and training protocol for each dataset:

table_keras

table_caffe

Results

Below are the Keras results as compared to the original Caffe results reported in the paper:

results_sunnybrook

results_lvsc

results_rvsc

For all metrics, larger values are better, except for distance metrics (APD and Hausdorff), where smaller values indicate better results.

Requirements

The code is tested on Ubuntu 14.04 with the following components:

Software

  • Python 2.7
  • Keras 2.0.2 using TensorFlow GPU 1.0.1 backend
  • CUDA 8.0 with CuDNN 5.1
  • OpenCV 3.1
  • h5py 2.7
  • NumPy 1.11
  • PyDicom 0.9.9
  • Scikit-Image 0.13

Datasets

Usage

For training and evaluation, execute the following in the same directory where the datasets reside:

# Train the FCN model on the Sunnybrook dataset
$ python train_sunnybrook.py <i/o> <gpu_id>

# Train the FCN model on the LVSC dataset
$ python train_lvsc.py <i/o/myo> <gpu_id>

# Train the FCN model on the RVSC dataset
$ python train_rvsc.py <i/o> <gpu_id>

The flag <i/o/myo> indicates inner endocardium, outer epicardium, and myocardium contours, respectively, and <gpu_id> denotes the GPU device ID.

To create submission files for the test sets, execute the following:

# Create submission files for the Sunnybrook dataset
$ bash create_submission_sunnybrook.sh <gpu_id>

# Create submission files for the LVSC dataset
$ bash create_submission_lvsc.sh <gpu_id>

# Create submission files for the RVSC dataset
$ bash create_submission_rvsc.sh <gpu_id>

Note: The LVSC and RVSC submission files must be submitted to the respective LVSC and RVSC challenge organizers for the official results evaluation. The Sunnybrook submission files can be evaluated using the MATLAB code provided as part of the data download.

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].