DeepLab系列论文阅读笔记

1.DeepLab v1

论文:Semantic Image Segmentation with Deep Convolutional Nets and Fully Connected CRFs

  • Deeplab v1主体结构是参照VGG改造的。
  • deeplab = 优化后的CNN+传统的CRF模型,CNN输出粗糙的分割结果,全连接CRF精化分割结果。
  • 新的上采样卷及方案:带孔的空洞卷积
    在这里插入图片描述
    文章微调了VGG16的预训练模型,把1000-way的ImageNet分类器替换为21-way(pascal voc的类别)。使用交叉熵损失函数,把下采样8倍的输出特征图与Ground Truth做交叉熵。使用SGD来优化。
    在这里插入图片描述在这里插入图片描述在这里插入图片描述

pool4和pool5的stride从2变为1,因此输出的feature map是原来的四倍,是原图的1/8。
conv5采用hole=2的空洞卷积,fc层使用hole=4的空洞卷积。最后上采样8倍,再送入全连接CRF。
参考:https://blog.csdn.net/longxinghaofeng/article/details/85258124

2.DeepLab v2

论文:DeepLab: Semantic Image Segmentation with Deep Convolutional Nets, Atrous Convolution, and Fully Connected CRFs

  • 3 challenges in DCNNs to segmatic image segmentation:

    • 1.reduced feature resolution 传统分类CNN网络中连续的池化和降采样将导致空间分辨率明显下降
      DeepLab v2使用Atrous Convolution 代替原来上采样的方法,比之前得到更高像素的score map,并且增加了感受野的大小
    • 2.existance of objects at multiple scales 多尺度目标
      在给定特征层使用不同的采样率进行重采样,使用具有不同采样率的平行atrous卷积层实现(ASPP)
      在这里插入图片描述
    • 3.reduce localization accuracy due to DCNN invariance DCNN的不变性,导致定位准确率下降
      使用全连接的条件随机场,利用低层的细节信息对分类的局部特征进行优化。
      在这里插入图片描述
  • ASPP:带孔的空间金字塔池化(astrous spatial pyramid pooling)
    在这里插入图片描述
    Two efficient ways to perform atrous conv:
    First, unsample the filters by inserting holes(zeros)
    Second, subsampling the input feature map by a factor equal to atrous rate r
    在这里插入图片描述

    1. LargeFOV 空洞卷积r=12,baseline
    2. ASPP-S 使用四个较小的空桶卷积,r分别为2,4,8,12。在CRF之后LargeFOV和ASPP-S效果差不多。
    3. ASPP-L 使用四个较大的空洞卷积,r分别为6,12,18,24 。效果比baseline要好,达到了72.6%
      在这里插入图片描述
      在这里插入图片描述
  • 使用VGG16和ResNet101实验,证明ResNet效果好。下表为在Cityscapes上的检测率:
    在这里插入图片描述

3.DeepLab v3

原文地址:Rethinking Atrous Convolution for Semantic Image Segmentation
论文就不翻译了,以下摘抄自blob

对于语义分割任务,在应用深度卷积神经网络中的有两个挑战:

第一个挑战:连续池化和下采样,让高层特征具有局部图像变换的内在不变性,这允许DCNN学习越来越抽象的特征表示。但同时引起的特征分辨率下降,会妨碍密集的定位预测任务,因为这需要详细的空间信息。DeepLabv3系列解决这一问题的办法是使用空洞卷积(前两个版本会使用CRF细化分割结果),这允许我们可以保持参数量和计算量的同时提升计算特征响应的分辨率,从而获得更多的上下文。

第二个挑战:多尺度目标的存在。现有多种处理多尺度目标的方法,我们主要考虑4种,如下图:
在这里插入图片描述

  • a. Image Pyramid: 将输入图片放缩成不同比例,分别应用在DCNN上,将预测结果融合得到最终输出
  • b. Encoder-Decoder: 利用Encoder阶段的多尺度特征,运用到Decoder阶段上恢复空间分辨率(代表工作有FCN、SegNet、PSPNet等工作)
  • c. Deeper w. Atrous Convolution: 在原始模型的顶端增加额外的模块,例如DenseCRF,捕捉像素间长距离信息
  • d. Spatial Pyramid Pooling: 空间金字塔池化具有不同采样率和多种视野的卷积核,能够以多尺度捕捉对象

DeepLabv3的主要贡献在于:

  • 本文重新讨论了空洞卷积的使用,这让我们在级联模块和空间金字塔池化的框架下,能够获取更大的感受野从而获取多尺度信息。

  • 改进了ASPP模块:由不同采样率的空洞卷积和BN层组成,我们尝试以级联或并行的方式布局模块。

  • 讨论了一个重要问题:使用大采样率的3×3 3×33×3的空洞卷积,因为图像边界响应无法捕捉远距离信息,会退化为1×1的卷积, 我们建议将图像级特征融合到ASPP模块中。

  • 阐述了训练细节并分享了训练经验,论文提出的"DeepLabv3"改进了以前的工作,获得了很好的结果

深层次的空洞卷积

我们首先探讨将空洞卷积应用在级联模块。具体来说,我们取ResNet中最后一个block,在下图中为block4,并在其后面增加级联模块。
在这里插入图片描述
上图(a)所示,整体图片的信息总结到后面非常小的特征映射上,但实验证明这是不利于语义分割的。如下图:
在这里插入图片描述
使用步幅越长的特征映射,得到的结果反倒会差,结果最好的out_stride = 8 需要占用较多的存储空间。因为连续的下采样会降低特征映射的分辨率,细节信息被抽取,这对语义分割是有害的。

上图(b)所示,可使用不同采样率的空洞卷积保持输出步幅的为out_stride = 16.这样不增加参数量和计算量同时有效的缩小了步幅。

ASPP

对于在DeepLabv2中提出的ASPP模块,其在特征顶部映射图并行使用了四种不同采样率的空洞卷积。这表明以不同尺度采样是有效的,我们在DeepLabv3中向ASPP中添加了BN层。不同采样率的空洞卷积可以有效的捕获多尺度信息,但是,我们发现随着采样率的增加,滤波器的有效权重(权重有效的应用在特征区域,而不是填充0)逐渐变小。如下图所示:
在这里插入图片描述
当我们不同采样率的3×3 卷积核应用在65×65的特征映射上,当采样率接近特征映射大小时,3×3 的滤波器不是捕捉全图像的上下文,而是退化为简单的1×1 滤波器,只有滤波器中心点的权重起了作用。

为了克服这个问题,我们考虑使用图片级特征。具体来说,我们在模型最后的特征映射上应用全局平均,将结果经过1×1 的卷积,再双线性上采样得到所需的空间维度。最终,我们改进的ASPP包括:

  • 一个1×1 卷积和三个3×3的采样率为rates={6,12,18} 的空洞卷积,滤波器数量为256,包含BN层。针对output_stride=16的情况。如下图(a)部分Atrous Spatial Pyramid Pooling
  • 图像级特征,即将特征做全局平均池化,经过卷积,再融合。如下图(b)部分Image Pooling.
    改进后的ASPP模块如下图所示:
    在这里插入图片描述
    注意当output_stride=8时,加倍了采样率。所有的特征通过1×1 级联到一起,生成最终的分数.

总结:DeepLab v3在v2的基础上,ASPP进行了改进,增加了BN层和image Pooling,去掉了CRF,使用ResNet作为Backbone,同时讨论了四种检测多尺度目标的方法。

4.DeepLab v3+

原文地址:Encoder-Decoder with Atrous Separable Convolution for Semantic Image Segmentation
DeepLab v3+主要对deeplab v3做了两项改进,第一是加入Encoder-Decoder模块,第二是使用Xception。下图c为引入了Encoder-Decoder模块的DeepLab,把1/16的特征图上采样四倍,与1/4特征图相融合,再上采样四倍到原先的尺寸。
[论文翻译](https://blog.csdn.net/u011974639/article/details/79518175)
在这里插入图片描述
这是原文中对DeepLab v3+的总结
在这里插入图片描述

DeepLab的整体架构

在这里插入图片描述
DCNN的结构:对Xception进行了改进。1.增加了层数,2.把max pooling层换成了deepwise,3.在3×3的deepwise后面加了BN和ReLU。
在这里插入图片描述

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章