CVPR2015 PAMI 2016 Fully Convolutional Networks for Semantic Segmentation Code: https://github.com/shelhamer/fcn.berkeleyvision.org
本文是将深度学习用于图像分割的经典之作。 实现图像端对端训练,像素到像素的分割。
核心思想就是逐层利用不同尺寸的卷积特征图信息获得更好的分割效果。
看图说话吧
上图上半部分是传统的卷积网络对图像块进行的分类,会对每个类别给出一个概率。上面最后一个数字是 1000, 说明有 1000 类物体。
上图下半部分是对整个图像进行卷积,得到整幅图像猫的概率图。
本文首先将全链接层用卷积层代替,得到全卷积网络,这样可以实现任意尺寸图像的输入,输出对应大小的尺寸。 具体可以参考以前的博文 CNN网络中的 1 x 1 卷积是什么?
我们知道卷积网络的输出是 coarse outputs,因为经过了降采样,导致尺寸减小了很多倍。对于图像分割问题,我们需要进行像素级别的分类 dense predictions,一个很直接的方法就是通过上采样 Upsampling 得到和输入图像尺寸一样大小的输出。这个上采样我们可以通过卷积来实现,类似于文献【19】的 deconvolution networks。尺寸问题是解决了,但是直接放大图像肯定导致图像模糊,所以需要在每放大一次时,就应该进行分割微调一次。分割微调的依据是什么了,考虑到卷积网络中提取出的不同尺度的特征图,我们可以在输出结果 Upsampling 某一尺寸时,根据对应尺寸卷积特征图对outputs 进行分割微调。
如上图所示,经过一系列的卷积和池化,我们得到一个coarse outputs,对应的是 conv7的输出,我们将这个 outputs 通过上采样放大两倍,这个时候 outputs 的尺寸是和 pool4 conv5 尺寸是一样的,我们可以参考这个尺寸特征图的信息对这个放大的 outputs 进行微调,获得更多细节信息,在这个尺寸的分割效果就会更好些。类似我们可以在这个基础上在放大两倍,重复上面的工作,引入更好的特征图信息,得到更好的分割结果。 将上述思想用实现就是本文提出的 Skip Architectures
不同的放大倍数,决定了引入多少特征图,其结果也有所不同
特征融合细节参考: http://blog.csdn.net/zhangjunhit/article/details/75635476