Fully Convolutional Networks for Semantic Segmentation论文阅读

FCN: Fully Convolutional Networks for Semantic Segmentation

作者:Jonathan Long, Evan Shelhamer ,Trevor Darrell

UC Berkeley
[pdf]—CVPR2015Best Paper


0. 简介

本文将经典网络结构(AlexNet,VGG等)改为全卷积神经网络,通过有监督预训练的方法端到端的完成image semantic segmentation这种像素级任务,取得了 state- of-the-art segmentation of PASCAL VOC (20% relative improvement to 62.2% mean IU on 2012)。文中利用skip connection结合深浅层信息,使得分割结果更加精细,即解决semantics and location之间的矛盾。

a skip architecture that combines semantic information from a deep, coarse layer with appearance information from a shallow, fine layer to produce accurate and detailed segmentations.

Fully Convolutional Networks for Semantic Segmentation论文阅读_第1张图片

1.Fully convolutional networks定义

卷积神经网络中的常见层(卷积,池化,激活函数)都是只依赖于相对空间坐标,记:

xijfeaturemap(i,j)yij x i j 为 前 一 层 输 入 f e a t u r e m a p 位 置 ( i , j ) 的 数 据 , y i j 为 对 应 位 置 输 出

那么
yij=fks({xsi+δi,sj+δj}0δi,δjk) y i j = f k s ( { x s i + δ i , s j + δ j } 0 ≤ δ i , δ j ≤ k )

k是kernel size,s是stride,f决定层的类型。若上式中的函数形式经复合后保持相同的形式,且其kernel size和stride满足下式如下变换规则:

fksgks=(fg)k+(k1)s,ss. f k s ◦ g k ′ s ′ = ( f ◦ g ) k ′ + ( k − 1 ) s ′ , s s ′ .

这样的网络叫做全卷积神经网络。全卷积网络(FCN)可以处理任意大小的输入,并产生对应大小的输出。计算损失函数时也与patchwise处理具有相同作用,如果损失函数是对最后一层所有空间维度损失函数的和,即:
l(x;θ)=ijl(xij;θ) l ( x ; θ ) = ∑ i j l ′ ( x i j ; θ )
,则损失函数的梯度是每个空间组成部分梯度之和。则在整张图上对l进行梯度下降等同于将最后一层所有感受野组成一个mini-batch。然后对l′进行梯度下降。当这些感受野重叠很多时,直接使用整张图进行运算patchwise要有效率。

3. Adapting classifiers for dense prediction

Fully Convolutional Networks for Semantic Segmentation论文阅读_第2张图片

带有全联接层的网络结构要求input size是固定的,可以利用kernel size 定义为 feature map size大小的卷积来代替全连接网络,如上图,第一个全连接改为4096个(6*6)的卷积,之后两层定义为若干个1*1的卷积。这样对于任意尺寸的输入图像,都可以通过改变的网络计算得到相应的heatmap。

4.Upsampling is backwards strided convolution

为了完成从高层语义特征到像素类别的映射,作者应用了 deconvolution,文中作者提到了Decreasing subsampling 和shift-and-stitch trick方法,但是应用到网络中都是不同组成件的trade-off。其实插值法是deconvolution中的一个特例,文中指出反卷积中的参数不需要固定,参数也随着训练更新。

5. Segmentation Architecture

We decapitate each net by discarding the final classifier layer, and convert all fully connected layers to convolutions. We append a 1 × 1 convolution with channel dimension 21 to predict scores for each of the PASCAL classes (including background) at each of the coarse output locations, followed by a deconvolution layer to bilinearly upsample the coarse outputs to pixel-dense outputs.

作者实验了几种网络结构,实验结果如下:
Fully Convolutional Networks for Semantic Segmentation论文阅读_第3张图片
最终实验网络为VGG-16。
Fully Convolutional Networks for Semantic Segmentation论文阅读_第4张图片
FCN-32s直接将conv7的输出进行反卷积上采样到与输入尺寸相同,最终得到的分割结果比较粗糙,作者提出要将高层语义信息于浅层位置信息结合的方法,得到FCN-16s,FCN-8s。FCN-16s将conv7进行上采样2倍至pool4大小,然后将其进行相加,接着再上采样16倍至输入图片大小;FCN-8s综合了conv7,pool4,poo3的输出,实验证明这种结构效果最好。

实验结果

Fully Convolutional Networks for Semantic Segmentation论文阅读_第5张图片
与其他方法对比,大幅度领先。
Fully Convolutional Networks for Semantic Segmentation论文阅读_第6张图片

你可能感兴趣的:(计算机视觉学习)