benprano / U-Net-Convolutional-Networks-for-Biomedical-Image-Segmentation.

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Implementation of deep learning framework -- Unet, using Keras

The architecture was inspired by U-Net: Convolutional Networks for Biomedical Image Segmentation.


Overview

Data

The original dataset is from isbi challenge, and I've downloaded it and done the pre-processing.

Data augmentation

The data for training contains 30 512*512 images, which are far not enough to feed a deep learning neural network. I use a module called ImageDataGenerator in keras.preprocessing.image to do data augmentation.

See dataPrepare.ipynb and data.py for detail.

Model

img/u-net-architecture.png

This deep neural network is implemented with Keras functional API, which makes it extremely easy to experiment with different interesting architectures.

Output from the network is a 512*512 which represents mask that should be learned. Sigmoid activation function makes sure that mask pixels are in [0, 1] range.

Training

The model is trained for 5 epochs.

After 5 epochs, calculated accuracy is about 0.97.

Loss function for the training is basically just a binary crossentropy.


How to use

Dependencies

  • Tensorflow
  • Keras >= 1.0

Run main.py

You will see the predicted results of test image in data/membrane/test

Or follow notebook trainUnet

About

License:MIT License


Languages

Language:Jupyter Notebook 58.6%Language:Python 41.4%