DeepLabv3网络记录

目录

DeepLabv3(2017 CVPR)

一、主要贡献

二、和V2的区别

三、面临的主要挑战

四、两种模型


相关博文:

DeepLabv1

DeepLabv2

DeepLabv3(2017 CVPR)

一、主要贡献

  1. 提出了更通用的框架,适用于各种网络。

  1. 改进了V2网络中的ASPP模块。V2中的ASPP模块只有空洞卷积。V3中的ASPP模块中加入了BN层和ReLU激活函数。

上图为DeepLabv2中的ASPP模块

上图为DeepLabv3中的ASPP模块。

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

二、和V2的区别

  1. 引入了Multi-grid。

引入该参数探索如何更合理的设置空洞卷积的空洞率。

  1. 改进了ASPP结构。

V2网络中的ASPP比较简单,只是将四个分支上空洞卷积后的featuremap进行了叠加的操作。在V3中首先分支有五个,其中四个分支是不同rate的空洞卷积+BN+RELU的操作,另一个分支进行了AGP操作,最后将五个分支的输出进行了concat的操作。

  1. 把CRFs后处理给移除掉了。

在V2中使用CRFs对结果的Miou的提升不是很高,而且会花费较大的计算资源,

三、面临的主要挑战

  1. 和之前面临的挑战一样,语义信息和位置信息的平衡问题:连续的池化和下采样导致分辨率降低,分割时定位预测不准确。
  2. 多尺度目标的问题,文中给出了四种解决多尺度问题的结构。

对于这四种模型有多种介绍,选择两种供学习了解(用词、考虑全面性方面稍有区别)。

第一种解释:

a.图像金字塔(Image pyramid):

通常使用共享权重的模型,适用于多尺度的输入。小尺度的输入响应控制语义,大尺寸的输入响应控制细节。通过拉布拉斯金字塔对输入变换成多尺度,传入DCNN,融合输出。

这类的缺点是:因为GPU存储器的限制,对于更大/更深的模型不方便扩展。通常应用于推断阶段。

b.编码器-解码器(Encoder-decoder):

编码器的高层次的特征容易捕获更长的距离信息,在解码器阶段使用编码器阶段的信息帮助恢复目标的细节和空间维度。

例如SegNet利用下采样的池化索引作为上采样的指导;U-Net增加了编码器部分的特征跳跃连接到解码器;RefineNet等证明了Encoder-Decoder结构的有效性。

c.上下文模块(Context module):

包含了额外的模块用于级联编码长距离的上下文。一种有效的方法是DenseCRF并入DCNN中,共同训练DCNN和CRF。

d.空间金字塔池化(Spatial pyramid pooling):

采用空间金字塔池化可以捕捉多个层次的上下文。在ParseNet中从不同图像等级的特征中获取上下文信息;DeepLabv2提出ASPP,以不同采样率的并行空洞卷积捕捉多尺度信息。PSPNet在不同网格尺度上执行空间池化,并在多个数据集上获得优异的表现。

原文链接:https://blog.csdn.net/qq_31622015/article/details/90574293

第二种解释:

a. Image Pyramid: 将输入图片放缩成不同比例,分别应用在DCNN上,将预测结果融合得到最终输出

b. Encoder-Decoder: 利用Encoder阶段的多尺度特征,运用到Decoder阶段上恢复空间分辨率(代表工作有FCN、SegNet、PSPNet等工作)

c. Deeper w. Atrous Convolution: 在原始模型的顶端增加额外的模块,例如DenseCRF,捕捉像素间长距离信息

d. Spatial Pyramid Pooling: 空间金字塔池化具有不同采样率和多种视野的卷积核,能够以多尺度捕捉对象

原文链接:https://blog.csdn.net/u011974639/article/details/79144773

四、两种模型

cascaded model: going deeper with atrous convolutional

作者提到:我们首先探讨将空洞卷积应用在级联模块。具体来说,我们取ResNet中最后一个block,在下图中为block4,并在其后面增加级联模块。

如下图所示,论文中提出的cascaded model指的是图(b)。其中Block1,Block2,Block3,Block4是原始ResNet网络中的层结构,但在Block4中将第一个残差结构里的3x3卷积层以及捷径分支上的1x1卷积层步距stride由2改成了1(即不再进行下采样),并且所有残差结构里3x3的普通卷积层都换成了膨胀卷积层。Block5,Block6和Block7是额外新增的层结构,他们的结构和Block4是一模一样的,即由三个残差结构构成。

原文链接:https://blog.csdn.net/qq_37541097/article/details/121797301

结论:使用步幅越长的特征映射,得到的结果反倒会差,结果最好的out_stride = 8 需要占用较多的存储空间。因为连续的下采样会降低特征映射的分辨率,细节信息被抽取,这对语义分割是有害的。如下图所示:

Multi-grid Method

对block5~block7 采用不同atrous rates,定义Multi_Grid=(r1,r2,r3)为block5~block7的三个convolutional layers的 unit rates。卷积层最终的 atrous rate = unit rate * “pooling size”

例子:当 输出步长(下采样倍数)=16,Multi_Grid=(1, 2, 4)时,那么三层卷积的空洞率为 (2, 4, 8).

注:对该理论没有理解很清楚。

ASPP model:Parallel modules with atrous convolution (ASPP)

作者提出:对于在DeepLabv2中提出的ASPP模块,其在特征顶部映射图并行使用了四种不同采样率的空洞卷积。这表明以不同尺度采样是有效的,我们在DeepLabv3中向ASPP中添加了BN层。不同采样率的空洞卷积可以有效的捕获多尺度信息,但是,我们发现随着采样率的增加,滤波器的有效权重(权重有效的应用在特征区域,而不是填充0)逐渐变小。如下图所示:

当我们不同采样率的3 × 3卷积核应用在65 × 65的特征映射上,当采样率接近特征映射大小时, 3 × 3的滤波器不是捕捉全图像的上下文,而是退化为简单的1×1滤波器,只有滤波器中心点的权重起了作用。

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

a.一个1 × 1卷积和三个 3 × 3的采样率为 r a t e s = { 6 , 12 , 18 }的空洞卷积,滤波器数量为256,包含BN层。针对output_stride=16的情况。

b.图像级特征,即将特征做全局平均池化,经过卷积,再融合。如下图(b)部分Image Pooling

原文链接:https://blog.csdn.net/u011974639/article/details/79144773

Reference:

原文链接:论文阅读 || 语义分割系列 —— deeplabv3详解_magic_ll的博客-CSDN博客_deeplabv3

原文链接:

【语义分割系列:五】DeepLab v3 / v3+ 论文阅读翻译笔记_鹿鹿的博客-CSDN博客_deeplabv3+论文翻译

原文链接:

Semantic Segmentation -- (DeepLabv3)Rethinking Atrous Convolution for Semantic Image Segmentation论文解_DFan的NoteBook-CSDN博客

原文链接:

【语义分割系列:一】DeepLab v1 / v2 论文阅读翻译笔记_鹿鹿的博客-CSDN博客_deeplab翻译

特别:

CSDN博主「太阳花的小绿豆」的原创文章:(本人多次参考该博主的视频和文章)

原文链接:DeepLabV3网络简析_霹雳吧啦Wz-CSDN博客_deeplabv3

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值