论文阅读 || 语义分割系列 —— deeplabv3详解

论文链接:https://arxiv.org/abs/1706.05587

1 deeplabv3的主要贡献

我们知道:

  • 连续的池化和下采样,使特征分辨率下降,不利于定位
  • 全局特征或上下文之间的互相作用有利于语义分割的效果

deeplabv3的主要贡献

  • 提出了更通用的框架,适用于更多网络
  • 改进了ASPP:由不同采样率的空洞卷、BN层组成,尝试以级联并行的方式设计模块
  • 大采样的空洞卷积:使用大采样率的3x3 的空洞卷积,此时由于图像边界响应无法捕捉远距离信号,就会退化成1x1的卷积

2 语义分割的结构类型

全局特征或上下文之间的互相作用有助于做语义分割。下图是四种不同类型的做语义分割的全卷积神经网络:
在这里插入图片描述

图像金字塔(image pyramid)
  • 将输入图片放缩成不同的比例,分别应用在DCNN上。
    使用共享权重模型,小尺寸的输入响应控制语义、大尺度的输入响应控制细节。
    将预测结果融合得到最终输出
  • 缺点:因为GPU存储器的限制,对于更大更深的模型不方便扩展,通常应用于推断阶段
编码-解码(encoder-decoder)
  • 【编码器】将信息编码为压缩向量来代表输入;【解码器】:将这个信号重建为期望的输出
  • 好处:编码器的高层次的特征容易捕获更长的距离信息,在解码器阶段使用编码器阶段的信息 帮助恢复目标的细节和空间维度
  • 例子:SegNet 利用下采样的池化索引作为上采样的指导;U-Net 增加了编码器部分的特征跳跃 连接到解码器;RefineNet 等证明了Encoder-Decoder 结构的有效性
上下文模块(Context module):
  • 在原始模型的顶端增加额外的模块(例如 DenseCRF),来捕捉像素间长距离信息
空间金字塔池化(Spatial pyramid pooling)
  • 采用空间金字塔池化,可以捕捉多个层次的上下文
  • 在 ParseNet 中,从不同图像等级的特征中捕获上下文信息;deeplabv2 提出了ASPP,以不同采样率的并行空洞卷积来捕获多尺度信息。PSPNet 在不同网络尺度上执行空间池化,并在多个数据集上具有优异的表现

3 deeplabv3的结构

deeplab提出了一种新颖的语义分割方法:控制特征的抽取、学习多尺度特征的网络结构。

  • deeplabv3 的特征提取模块:在ImageNet 上预训练的 ResNet
  • 注意最后一个 ResNet Block:
    • 使用了空洞卷积。这个残差块内的卷积都是使用了不同的rate 来捕获多尺度信息
    • 顶部使用了空洞空间金字塔池化(ASPP)

在这里插入图片描述

3.1 空洞卷积

在另外一篇博客中记录了空洞卷积

3.2 model1:使用更深层的空洞卷积

在这里插入图片描述
上图中采用串行的ResNet。后面的 block5、block6、block7 均为 block4的复制。

  • 图(a):在没有使用空洞卷积时输出步长为256
  • 图(b):使用空洞卷积时输出步长为16

图(b)中使用了【Multi-grid Method】。

  • 定义Multi-grid=(r1, r2, r3)为block4~block7 的三个 卷积层的 unit rate
  • 卷积层最终的 atrous rate = unit rate * “pooling size”
  • 例子:当 输出步长=16,Multi_Grid=(1, 2, 4)时,那么三层卷积的空洞率为 (2, 4, 8).

3.2 model2:ASPP

ASPP 中不同的空洞率可以有效的捕获不同尺度的信息。但是当空洞率非常大时,有效的卷积权重变得很小。
如下图,将不同rate的3x3卷积应用在65x65大小的特征图。在极端的情况下,rate value 接近特征图大小,那么3x3卷积不再获取整张图像信息,而是退化到1x1卷积,只有中心的权重是有效的
在这里插入图片描述
deeplabv3 中的 ASPP :

  • 将 BN 添加到了 ASPP 模块中
  • 一个 1x1卷积、三个3x3卷积组成。当 输出步长=16时,三个3x3的卷积的rate=(6,12,18)
  • 添加了 image pooling:在最后一层特征图使用全局平均池化——将图像级特征传入1x1卷积,通道为256——BN——双线性插值恢复到原始图像大小(解决ASPP的rate过大而退化的影响,增加了全局信息)
  • 所有分支的特征进行 concat,然后再使用 1x1的conv+BN 进行整合(最后通过 1x1 conv 生成最终的logits)

deeplabv3 去掉了条件随机场,模型变得更加简洁
在这里插入图片描述

4 进行训练

4.1 训练设置

  • Learning rate policy
    • 采用 poly 策略,在初始学习率上乘以 ( 1 − i t e r m a x i t e r ) p o w e r (1-\frac{iter}{max_{iter}})^{power} (1maxiteriter)power,其中power为0.9
  • Crop size
    • 为了大采样率的空洞卷积能够有效,需要较大的图片大小。否则,大采样率的空洞卷积权值就会用到很多的padding区域
    • 在PASCAL VOC 2012 数据集的训练和测试中,采用513的裁剪尺寸
  • Batch Normalization
    • 在 ResNet 模块中添加了BN
    • 当 output_stride=16时,采用batch_size=16,同时BN层的参数的衰减系数为0.997
    • 在增强的数据集上,以初始学习率为0.007训练30k后,冻结 BN层参数,然后采用output_stride=8,在使用初始率为0.001在PASCAL官方数据集上训练30k
  • Upsamping logits
    • 之前,是将output_stride=8 的输出与Ground True 下采样8倍做比较
    • 现在,将输出上采样8倍与Ground True做比较,保持Ground True更重要
  • Data augmentation
    • 训练阶段,随机放缩输入图片(从0.5到2.0)和随机左右翻转

4.2 实验:更深的空洞卷积

1 ResNet50:如下图,测试output_stride的影响

  • 当output_stride=256,由于严重的信号抽取,性能大大下降
  • 当使用不同采样率的空洞卷积,结果提升了。这表明在语义分割中使用空洞卷积的好处
    在这里插入图片描述

2 ResNet50 vs ResNet101:用更深的模型,并改变级联模块的数量

  • 如下图,当block增加了,性能也随之增加
    在这里插入图片描述

3 Multi-grid:使用变体残差模块,采用了Multi-grid 策略。 如下图:

  • 应用不同策略通常比单倍数 (r1,r2,r3)=(1,1,1) 效果要好
  • 简单的提升倍数不会有太大效果 (r1,r2,r3)=(2,2,2)
  • 增加网络深度,在配合Multi-grid可以提升性能。图中最好的模型为:使用到 block7 的 (r1,r2,r3)=(1,2,1)
    在这里插入图片描述

4 Inference strategy on val set:

  • 推断时output_stride=8 比 output_stride=16 性能提高了 1.39%
  • 使用多尺度输入(scales={0.5,0.75,1.0,1.25,1.5,1.75})和左右翻转,进行数据增强后,进一步提高了性能
  • (计算每个尺度和翻转图像的平均概率来作为最终结果)
    在这里插入图片描述

4.3 实验:ASPP

提升效果的方法

  • 网络结构:Multi-grid (1,2,4) + ASPP (6,12,18) + Image Pooling
  • output_stride:小
  • Inference strategy on val set:测试时,使用多尺度和左右翻转后的图片
  • pretrained:在COCO数据集上预训练模型

实验效果:

  • 使用不同的 Multi-grid 和 ASPP参数
    在这里插入图片描述
  • Inference strategy on val set
    在这里插入图片描述
    (后面的实验略掉)

参考链接:https://blog.csdn.net/qq_31622015/article/details/90574293

  • 9
    点赞
  • 37
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
DeepLabV3是一种语义分割模型,其网络结构采用了encoder-decoder结构。 它的概述可以在论文https://arxiv.org/pdf/1802.02611.pdf中找到。 DeepLabV3的优点是: 1. 它可以在图像中准确地标识和分割不同的物体和区域,因为它具有强大的语义理解能力。 2. 通过使用空洞卷积和多尺度上下文信息,DeepLabV3可以更好地捕捉物体和区域的细节和上下文信息。 3. DeepLabV3在训练时使用了批归一化和残差连接等技术,可以加速训练过程并提高模型的稳定性。 然而,DeepLabV3也存在一些缺点: 1. DeepLabV3直接使用双线性上采样将预测的特征图放大16倍以达到期望的尺寸,这可能会导致细节信息的丢失,影响分割的精确性。 2. DeepLabV3的计算量较大,因为它需要对整个图像进行推断,这可能会导致较长的推断时间。 综上所述,DeepLabV3语义分割任务中具有强大的性能和能力,但仍然存在一些改进的空间,特别是在细节保留和计算效率方面。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* *2* *3* [论文阅读 || 语义分割系列 —— deeplabv3+ 详解](https://blog.csdn.net/magic_ll/article/details/109731491)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 100%"] [ .reference_list ]

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值