A Tensorflow implementation of SegNet to segments CMR images
- A demonstration of a more complete Tensorflow program including saving state and resuming.
- Provide an ready-to-go example of medical segmentation with sufficient training and validation data, in a usable format (PNGs).
- Python 3.5: Best to use the Conda distribution
- Tensorflow 0.12
- Add code to run on your own data (currently there is only the training code present)
Make sure you have conda and tensorflow installed
conda install tensorflow
python
Python 3.5.2 | packaged by conda-forge | (default, Sep 8 2016, 14:36:38)
The git clone this repository
git clone https://
And start the training from the folder
cd /path/to/SegNetCMR
python train.py
And in another terminal window start tensorboard
tensorboard --logdir ./Output
Then in your webbrowser go to http://localhost:6006
Many thanks to the Sunnybrook Health Sciences Centre for providing a set of CMR data with associated contours. Unfortunately, in the latest release the filenames have become a little mangled, and don't match up with the contours. I have gone through the files and matched them up; exported the DICOMS as PNGs and converted the list of coordinates of the contours to PNGs as well.
The first two sets of CMRs are included as training data, the last set as test data.
andreaazzini/segnet: A Tensorflow SegNet translation
pydicom: A pure python dicom library
StackOverflow Tensorflow batch_norm thread
GitHub Tensorflow unpool thread
- The original SegNet uses max_pool_with_argmax, and requires an unpool_with_argmax. Unfortunately, Tensorflow does not provide an unpool_with_argmax. Fortunately there is code in the github thread above to make your own.
- This version of unpool_with_argmax runs on the CPU not GPU so is a little slower.
- Tensorflow does not provide a CPU version of max_pool_with_argmax, so if you don't have a GPU you are stuck using the maxpool version.
- Tensorflow forgot to include a function for gradients for maxpoolwithargmax, so it is included at the bottom of train.py
- The name mangling of the Sunnybrook CMR data.
SegNetCMR: MIT license
SunnyBrook Cardiac Data: Public Domain
pydicom: MIT license