DeconvNet
Learning Deconvolution Network for Semantic Segmentation
We propose a novel semantic segmentation algorithm by learning a deconvolution network. We learn the network on top of the convolutional layers adopted from VGG 16- layer net. The deconvolution network is composed of deconvolution and unpooling layers, which identify pixel-wise class labels and predict segmentation masks. We apply the trained network to each proposal in an input image, and construct the final semantic segmentation map by combining the results from all proposals in a simple manner. The proposed algorithm mitigates the limitations of the existing methods based on fully convolutional networks by integrating deep deconvolution network and proposal-wise prediction; our segmentation method typically identifies detailed structures and handles objects in multiple scales naturally. Our network demonstrates outstanding performance in PASCAL VOC 2012 dataset, and we achieve the best accuracy (72.5%) among the methods trained with no external data through ensemble with the fully convolutional network.
Implementations
Figure 1. Overall architecture of the proposed network. On top of the convolution network based on VGG 16-layer net, we put a multilayer deconvolution network to generate the accurate segmentation map of an input proposal. Given a feature representation obtained from the convolution network, dense pixel-wise class prediction map is constructed through multiple series of unpooling, deconvolution and rectification operations.
Model: http://cvlab.postech.ac.kr/research/deconvnet/model/DeconvNet/DeconvNet_inference_deploy.prototxt
Tensorflow implementation of Learning Deconvolution Network for Semantic Segmentation.
from DeconvNet import DeconvNet
deconvNet = DeconvNet() # will start collecting the VOC2012 data
deconvNet.train(epochs=20, steps_per_epoch=500, batch_size=64)
deconvNet.save()
prediction = deconvNet.predict(any_image)
Model: https://github.com/fabianbormann/Tensorflow-DeconvNet-Segmentation/blob/master/DeconvNet.py
Github: https://github.com/fabianbormann/Tensorflow-DeconvNet-Segmentation
