isrkhou / u-segnet

Implementation of U-SegNet architecture for autoencoder segmentation network

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

U-SegNet

U-SegNet is a segmentation network proposed by the research group of the Indraprastha Institute of Information Technology-Delhi. It is based on U-Net and SegNet architectures.

From U-Net:

  • skip connection on the first layer.

From SegNet:

  • downsamping using pooling;
  • upsampling using unpooling with indices from pool operation.

Architecture

Network consists of 2 blocks:

  1. Block for downsampling consists of: N times (in this implenentation - 2) of block [Convolution -> Batch Normalization -> RELU] and Pooling operation.
  2. Block for upsampling consists of: an UnPooling operation and N times (in this implenentation - 2) of block [Convolution -> Batch Normalization -> RELU].

To do unpooling you need to save indices from pooling operation.

Next image illustrates architecture proposed in paper.


Differences from paper

In paper from IIIT-Delhi you can see that they use sliding window to predict every pixel's class, but I've implemented it for one single image.


Usage

  1. Put train and test data into data/u_segnet folder.
    Path to train images and masks should be as follows:
    data/u_segnet/(train, test)/(images, masks)
  2. Via command line run commands below. It will take some time to create folders for train/dev/test splits with resized images in them.
cd home/$user/**path/to/project**/data/u_segnet/
python prepare_u_segnet.py --config ../../configs/u_segnet.json
  1. Next commands will change your working dirrectory and start training cycle.
cd home/$user/**path/to/project**/mains/
python u_segnet_runner.py --config ../configs/u_segnet.json

About

Implementation of U-SegNet architecture for autoencoder segmentation network

License:Apache License 2.0


Languages

Language:Python 100.0%