Learning Deconvolution Network for Semantic Segmentation

这个就是大家所说的反卷积网络

Category of Deconvolution

DeconvolutionDeep Learning领域大致可以分为下面 2 个种类。

  • Transposed Convolution

    convolution的反转过程,这篇 paper 讲的就是这个。

  • Convolutional Sparse Coding

    它是一种representation learning的一种,目的是根据从图像中学到的features完全的还原图像。

Motivation

这篇文章针对性比较强,就是针对FCN的缺点:

  1. FCNfilterfixed-size的:的物体可能会产生错误的 segmentation,的物体可能无法被捕捉到。

  2. FCN只能得到较为粗糙的高层的特征:因为最后一层只是简单的bilinear interpolation,所以细节处理不好。

Limitations of FCN

作者就想:FCNdeconvolution部分比较,如果直接用一个比较DeconvNet,效果会不会更好?

Architecture

首先给出 Architecture 的示例图如下图。

DeconvNet Architecture

Architecture 就分为2部分,在上图(本 paper)中两者是镜像关系

  1. Convolution network:作用是作为feature extractor,提取输入图片的特征。

  2. Deconvolution network: a mirror of Convolution network, shaper generator。作用是生成heat map。注意这部分中的filter是可以学习的。

Deconvolution network

最重要的是引入了2个概念,示例图如下图。

Unpooling & Deconvolution
  1. Unpooling

    就是pooling反转过程,实现上是通过在pooling的时候记录保留下来的值的位置,在unpooling的时候把值还原到相应的位置,其它的位置填充0

  2. Deconvolution

    正如上面开始所说,这里的Deconvolution不是信号处理中的Deconvolution(把convolution处理过的信号,尽最大可能的还原回去),这里只是想说明Convolution把图片变小,为了完成某些任务需要把图片再变大回去,所以叫Deconvolution(因为Convolution的叫法本身也是错误的),从这个角度理解,我认为这种叫法也是可以说得通的(取Deconvolution这中叫法的人肯定想对那些说这种叫法不合理的人说:你们就不知道意会吗,非要从代码实现上来说吗?!)。

    大多数人所说的更合适的叫法是Transposed Convolution,有两个原因:

    1. 它就是Convolution的一种镜像,所以叫Transposed Convolution

    2. 从代码实现上,他就是把filter取了转置(Transpose),而这种做法又跟backwards propagation的代码实现一样,所以又叫 Backwards Convolution。这两种叫法都与代码实现上有很大很大的关系。

    关于这点可以参考后面的参考文献中的第一个,其中有些回答还是挺靠谱的。

Visualization of activation maps from deconvoluton layers

  • 可以看到随着deconvolution的进行,图片的细节是越来越清晰的。

    Visualization of activations in our deconvolution network

Comparison with FCN

  • 细节处理比FCN要好。

    FCN VS DeconvNet

Trainning

Batch Normalization

  • Added to the output of every convolutional and deconvolutional layer

Two-stage Training

  • easy examples first

  • fine-tune the trained network with more challenging examples later

Experiments

  • 然后作者在不同的数据集上做了实验,比较了不同的方法的取得的效果,具体内容可以参考论文。

Conclusion

Summary

  • suitable to generate dense and precise object segmentation masks

  • is advantageous to handle object scale variations by eliminating the limitation of fixed-size receptive field in the FCN.

  • ensemble approach, which combines the outputs of the proposed algorithm and FCN-based method, and achieved substantially better performance thanks to complementary characteristics of both algorithms.

Advantages

  • Variable sized receptive filed

  • Get finer details of an object

Application

  • Image Segmentation

  • CNN visualization

  • Unsupervised learning

Reference

  1. 如何理解深度学习中的deconvolution networks? - 知乎