Article May 20, 2019

FCN

Words count 2k Reading time 2 mins. Read count 0

Reference [https://zhuanlan.zhihu.com/p/31428783]

FCN

对于一般的分类CNN网络,如VGG和Resnet,都会在网络的最后加入一些全连接层,经过softmax后就可以获得类别概率信息。但是这个概率信息是1维的,即只能标识整个图片的类别,不能标识每个像素点的类别,所以这种全连接方法不适用于图像分割。
而FCN提出可以把后面几个全连接都换成卷积,这样就可以获得一张2维的feature map,后接softmax获得每个像素点的分类信息,从而解决了分割问题.

unsampling

  • resize
  • deconvolution(Transposed Convolution)

deconvolution

upsampling的意义在于将小尺寸的高维度feature map恢复回去,以便做pixelwise prediction,获得每个点的分类信息。

特征融合方法

  • 对于FCN-32s,直接对pool5 feature进行32倍上采样获得32x upsampled feature,再对32x upsampled feature每个点做softmax prediction获得32x upsampled feature prediction(即分割图)。
  • 对于FCN-16s,首先对pool5 feature进行2倍上采样获得2x upsampled feature,再把pool4 feature和2x upsampled feature逐点相加,然后对相加的feature进行16倍上采样,并softmax prediction,获得16x upsampled feature prediction。
  • 对于FCN-8s,首先进行pool4+2x upsampled feature逐点相加,然后又进行pool3+2x upsampled逐点相加,即进行更多次特征融合。具体过程与16s类似,不再赘述。

  • 效果:FCN-32s < FCN-16s < FCN-8s,即使用多层feature融合有利于提高分割准确性。

U-Net

U-Net与FCN的区别在于,U-Net特征融合的方式为拼接。

语义分割网络在特征融合的2种办法:

  • FCN式的逐点相加,对应caffe的EltwiseLayer层,对应tensorflow的tf.add()
  • U-Net式的channel维度拼接融合,对应caffe的ConcatLayer层,对应tensorflow的tf.concat()

CNN图像语义分割核心:

  • 下采样+上采样:Convlution + Deconvlution/Resize
  • 多尺度特征融合:特征逐点相加/特征channel维度拼接
  • 获得像素级别的segement map:对每一个像素点进行判断类别
  • skip connection
    //TODO
  • deep layer aggregation
    //TODO
0%