论文阅读|FCN

Fully Convolutional Networks for Semantic Segmentation

原文:Fully Convolutional Networks for Semantic Segmentation (cv-foundation.org)

参考资料:

四、全卷积网络FCN详细讲解(超级详细哦)_会哭泣的猫的博客-CSDN博客_全卷积网络

目录

FCN和CNN的比较

上采样方法

双线性插值上采样

卷积运算

Same卷积(四周补0)

Valid卷积(无padding) 

Full卷积(反卷积)

反池化上采样

FCN具体实现

FCN结构 

跳级(strip)结构

损失函数Loss


FCN和CNN的比较

CNN: 在传统的CNN网络中,在最后的卷积层之后会连接上若干个全连接层,将卷积层产生的特征图(feature map)映射成为一个固定长度的特征向量。一般的CNN结构适用于图像级别的分类和回归任务,因为它们最后都期望得到输入图像的分类的概率,如ALexNet网络最后输出一个1000维的向量表示输入图像属于每一类的概率。如下图所示:

 FCN:FCN是对图像进行像素级的分类(也就是每个像素点都进行分类),从而解决了语义级别的图像分割问题。与上面介绍的经典CNN在卷积层使用全连接层得到固定长度的特征向量进行分类不同,FCN可以接受任意尺寸的输入图像,采用反卷积层对最后一个卷基层的特征图(feature map)进行上采样,使它恢复到输入图像相同的尺寸,从而可以对每一个像素都产生一个预测,同时保留了原始输入图像中的空间信息,最后奇偶在上采样的特征图进行像素的分类。如下图所示:

FCN与CNN的区别在于FCN把CNN最后的全连接层换成卷积层,其输出的是一张已经标记好的图,而不是一个概率值。

上采样方法

双线性插值上采样

单线性插值(一个方向上)就是知道两个点的值,并将两点连成一条直线,来确定中间的点的值,假设,现在有两点中的点就可以用线上的点表示。双线性插值(两个方向上)是一个三维的坐标系,因此,需要找到4个点来确定中心点坐标,如下图所示的例子:

 

 

卷积运算

卷积运算可划分为三种:Same卷积、Valid卷积、Full卷积(反卷积)。

Same卷积(四周补0)

通过Padding填充0运算保证卷积前后特征图大小不变,即W1=W2、H1=H2。公式为:(W1-F+2P)/S+1 = W2。若令W1=W2则可计算填充0的P的值为多少。如,令F=3,S=1,W1=5,则计算P=1.

Valid卷积(无padding) 

不加入Padding运算,直接进行卷积运算,特征图会变小。公式为:(W1-F)/S+1=W2,如,令W1=5,F=3,S=1,则W2=3。

Full卷积(反卷积)

实现反卷积运算的核心步骤是在特征图中padding 0,然后进行卷积运算使得特征图变大。公式为:(W1-F+2P)/S+1 = W2。如,令W1=5,F=3,P=2,S=1,则W2=7。

 只在四周补0会导致最边上的信息不太好,那我们把这个信息平均下,在每个像素与像素之间补0,如下图所示:

反池化上采样

反池化可以用下图来理解,在池化时需要记录下池化的位置,反池化时把池化的位置直接还原,其他位置填0。

上面三种方法各有优缺,双线性插值方法实现简单,无需训练;反卷积上采样需要训练,但能更好的还原特征图。

本文使用的反卷积运算方式则不同于以上的Full卷积方式,而是首先对特征图各神经元之间进行0填充,即上池化;然后再进行卷积运算。计算公式为:(W1​−1)×S-2×P+F=W2

 

FCN具体实现

FCN结构 

将CNN中的后三层的全连接网络换位卷积网络

 

经过多次卷积后,图像的分辨率越来越低,为了从低分辨率的热图heatmap恢复到原图大小,以便对原图上每一个像素点进行分类预测,需要对热图heatmap进行反卷积,也就是上采样。论文中首先进行了一个上池化操作,再进行反卷积(上述所提到的上池化操作和反卷积操作,其实可以理解为上卷积操作),使得图像分辨率提高到原图大小。如下图所示:

跳级(strip)结构

对第5层的输出执行32倍的反卷积得到原图,得到的结果不是很精确,论文中同时执行了第4层和第3层输出的反卷积操作(分别需要16倍和8倍的上采样),再把这3个反卷积的结果图像融合,提升了结果的精确度

损失函数Loss

最后的输出是21张heatmap经过upsampling变为原图大小的图片,为了对每个像素进行分类预测label成最后已经进行语义分割的图像,通过逐个像素地求其在21张图像该像素位置的最大数值描述(概率)作为该像素的分类

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值