您的位置:首页 > 其它

Fully Convolutional Networks for Semantic Segmentation

2016-03-11 19:48 465 查看
UC伯克利的一篇文章

介绍:

1.Semantic Segmentation有两个固有性质:

1)semantic: global information解决目标是什么的问题

2)location:local information解决目标在哪的问题

2.关于本文提出的FCN:

1)利用现有的Classification model进行finetuning

2)通过 skip connections来combine deep,coarse,semantic和shallow,fine,appearance layer

3)没有pre-或者post- process

4)任意的input size,输出相应size的output

Idea:

1. Fully Convolutional Networks

1)Adapting classifiers for dense prediction:通过增大input size,使得原来Classification model的vectors变成map(全连接层也要相应的变成1x1的卷积层)



2)Shiftandstitch is filter rarefaction:这个其实是overfeat的手段,由于第一步后最终输出的map太小(10x10),所以需要进行upsampling操作。这里的做法就是:如果input被网络subsample的factor为f,则在Segmentation的时候,在input上进行shift(left-top padding)操作。

3)Upsampling is backwards strided convolution:本文的实验的upsampling最终是使用这个trick的:Deconvolution(即将原来的Convolution过程反向),可以理解为双线性差值,但是其参数是可以随着back-propagation进行学习的,如果加上activation,甚至可以实现non-linearty的upsampling。要实现最简单的FCN,只需在卷积化的Classification model后加一个1x1的Deconvolution(参数不可更行,双线性插值)层就行了,如果input 被subsample了f倍,则将Deconvolution的stride设置为f即可



4)Patchwise training is loss sampling:除了whole image training,作者也试了patch-wise的training。相较于whole image,patch-wise有利于class-balance(whole image 也可以通过weighting loss达到)

2.Segmentation Architecture:

除了最简单的FCN(本文称为FCN-32s,即最后的Deconvolution stride设置为32),也探讨了几种skip-connections





FCN-16s是在FCN-32s基础上继续训练的,Learning rate缩小了100倍

由FCN-32s构造FCN-16s:在pool4 append一个stride为16的1x1的Deconvolution,再将原先conv7(图中的pool5)的stride32 1x1Deconvolution之后的map进行2x的upsampling(双线性差值,但是参数可学习),最后将2x upsampling之后的输出与pool4 stride16 1x1Deconvolution的输出进行fusion(简单的平均?)

由FCN-16s构造FCN-8s类似

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息