深度学习语义分割开山之作-经典论文-FCN

泛读:快速浏览把握概要

摘要

  • 主要成就: 端到端、像素到像素训练方式下的卷积神经网络超过了现有语义分割方向最先进的技术
  • 核心思想: 搭建了一个全卷积网络,输入任意尺寸的图像,经过有效推理和学习得到相同尺寸的输出
  • 主要方法: 将当前分类网络改编成全卷积网络并进行微调设计了跳跃链接将全局信息和局部信息链接起来,相互补偿
  • 实验结果: 在PASCAL VOC\NYUDv2和SIFT FLOW数据集上得到了state-of-the-art的结果。

根据图,表格对重点内容进行把握

精读

论文的结构

1. introduction(Figure 1.)

提出了语义分割当前存在的问题:语义与位置的内在矛盾,即全局信息和局部信息的矛盾。全局信息解决是什么,局部信息解决在哪里。

全局信息与局部信息的对比:
在这里插入图片描述
并且提出了解决办法:
FCN使用深层特征层级( Deep feature hierarchies)在局部到全局金字塔(local-to-global pyramid)中共同编码位置和语义,这里作者提出一个叫”skip”新架构,将深层的、粗糙的语义信息和浅层的、精细的表征信息结合起来。

2. Related work

这里介绍了在此之前,优秀的语义分割网络成功案例

3. Fully convolutional networks

感受域:在卷积神经网络中,决定某一层输出结果中一个元素所对那个的输入层的区域大小。
通常来说,大感受野的效果比小感受野的效果更好。由公式RF(l+1) = RF(l)+ (kernel_size -1)*stride可见,stride 越大,感受野越大。但是过大的stride会使feature map保留的信息变少。因此在减小stride的情况下,如何增大感受野或使其保持不变,成为了分割中的一大问题。

3.1.使分类器适应密集预测(Figure 2.)
  • 输入的固定尺寸到任何尺寸
    • CNN是图像级别的分类
    • FCN是像素级别的分类
    • FCN和CNN的区别在于FCN把CNN最后的全连接层换成卷积层输出一张已经label好的图像
  • FCN就是在CNN的最后一层卷积进行反卷积将图片改为了原来图像的尺寸。
3.2. 移位缝合是过滤稀疏

解释了移位缝合的原理。并打算用卷积对其进行实现,但是实验失败了。在探索的道路上放弃了这个方法,选择了反卷积,对结果进行上采样。

3.3.(上采样是反向交错卷积)

说明了反向卷积实现上采样的可能性。

3.4.拼凑训练是损失抽样

讨论进行全图像级别的采样和块级别的采样,经过试验,整个图像采样的效果会更好。
对于 patch-wise的补充:

The term “Patchwise training” is intended to avoid the redundancies of full image training. In semantic segmentation, given that you are classifying each pixel in the image, by using the whole image, you are adding a lot of redundancy in the input. A standard approach to avoid this during training segmentation networks is to feed the network with batches of random patches (small image regions surrounding the objects of interest) from the training set instead of full images. This “patchwise sampling” ensures that the input has enough variance and is a valid representation of the training dataset (the mini-batch should have the same distribution as the training set). This technique also helps to converge faster and to balance the classes. In this paper, they claim that is it not necessary to use patch-wise training and if you want to balance the classes you can weight or sample the loss. In a different perspective, the problem with full image training in per-pixel segmentation is that the input image has a lot of spatial correlation. To fix this, you can either sample patches from the training set (patchwise training) or sample the loss from the whole image. That is why the subsection is called “Patchwise training is loss sampling”. So by “restricting the loss to a randomly sampled subset of its spatial terms excludes patches from the gradient computation.” They tried this “loss sampling” by randomly ignoring cells from the last layer so the loss is not calculated over the whole image.

我的理解是:对于整个图像的采样会产生大量的冗余,通过patch-wise(只对感兴趣的目标周围像素)进行采样又会丢失掉整个图像上的空间相关性。所以可以在网络的最后一层神经元上进行块级采样,避免计算其产生的空间损失。(个人也不是很理解,希望有理解的可以提供宝贵的意见。)

4. 分割架构
4.1 .从分类器到稠密FCN

指出自己对AlexNet,VGG16和GoogLeNet的改编,并通过试验最终选择VGG16这个网络。

4.2 .结合什么和在哪里

解释了自己的跳跃结构,并通过试验验证了其有效性,并指出其层级之间结合的限制。同时将该方法与其他方法进行了比较,证明本文提出方法的高效性。

4.3 .实验框架
  • 优化
    优化方法:SGD with momentum。在试验过程中,超参数设定的探索以及类别得分卷积层的初始化没有效果等进行了说明。在原本的分类器中使用了dropout。
  • 微调
    由于只微调输出层的效果并不好,所以本文微调了所有层。
  • 块级采样
    这个方法可能是之前经典的解决方法,所以一直在比较本文提到的全图像采样。
  • 类别平衡
    在神经网络中,需要平衡各类别的训练样本数。但是本训练样本基本上3/4的空间都是背景,样本类别不是非常的平衡。最后试验发现类别平衡在本实验中不重要。
  • 密集预测
    中间的层使用的是双线性采样
    最后一层使用的双线性插值的反向卷积
  • 图像增广
    使用镜像和平移方法来增加训练数据,但是没有显著的帮助。
  • 更多的数据
  • 实现
    使用caffe框架,单个GPU,开源
5. 结果

我们训练FCN在语义分割和场景解析,研究了PASCAL VOC, NYUDv2和 SIFT Flow。尽管这些任务在以前主要是用在物体和区域上,我们都一律将它们视为像素预测。我们在这些数据集中都进行测试用来评估我们的FCN 跳跃架构,然后对于NYUDv2将它扩展成一个多模型的输出,对于SIFT Flow则扩展成多任务的语义和几何标签。

指出度量指标:
在这里插入图片描述

6. 结论

全卷积网络是一类丰富的模型——现代分类卷积网络是其中的一个特例。认识到这一点,将这些分类网扩展到分割,并用多分辨率层组合改进体系结构,极大地提高了技术水平,同时简化和加快了学习和推理。

总结:总览全文,归纳总结

对于FCN架构的理解:
在这里插入图片描述

对于FCN-8s的理解:
在这里插入图片描述
要对整体的架构理解清楚。在论文中有很多经验之谈,是作者在试验过程中积累的,个人觉得可以进行学习。

训练技巧的总结:

  • 加载预训练模型
  • 初始化反卷积参数(l利用双线性插值)
  • 至少175 个epoch后算法才会有不错的表现
  • 学习率在100次后进行调整,越后面学习率越小
  • pool3之前的特征图不需要融合(也就是pool1/2)试验结果表明,加入后的效果没有很大的提升,且增加了计算,也就没有必要再加上了。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值