deeplab3-plus(中文翻译)

2024-08-26 05:20
文章标签 plus 中文翻译 deeplab3

本文主要是介绍deeplab3-plus(中文翻译),希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

**

Encoder-Decoder with Atrous Separable Convolution for Semantic Image Segmentation

文章目录

  • Encoder-Decoder with Atrous Separable Convolution for Semantic Image Segmentation
    • 1 Introduction
    • 2 Related Work
    • 3 Methods
      • 3.1 Encoder-Decoder with Atrous Convolution
      • 3.2 Modified Aligned Xception
    • 4 Experimental Evaluation
      • 4.1 Decoder Design Choices
      • 4.2 ResNet-101 as Network Backbone
      • 4.3 Xception as Network Backbone
      • 4.4 Improvement along Object Boundaries
      • 4.5 Experimental Results on Cityscapes
    • 5 Conclusion

**
摘要
空间金字塔池化模块或编码-解码器结构用于深度神经网络的语义分割任务。前者网络通过使用滤波器或在多个速率和多个有效视野的池化操作来编码多尺度上下文信息,而后者网络则通过逐步恢复空间信息来捕捉更锐利的物体边界。在这项工作中, 我们提出结合两种方法的优点。具体而言,我们提出的模型,DeepLabv3+,通过添加一个简单而有效的解码器
模块来扩展DeepLabv3,从而特别改善物体边界的分割结果。我们进一步探索Xception模型,并将深度可分离卷积应用于Atrous空间金字塔池化和解码器模块,生成一个更快且更强的编码-解码器网络。我们在PASCALVOC 2012和Cityscapes数据集上展示了所提模型的有效性,在测试集上分别达到89.0%和82.1%的性能,且无需任何后处理。我们的论文附带了一个公开可用的参考实现,使用Tensorflow构建,链接为https://github.com/tensorflow/models/tree/master/research/deeplab。

Keywords: 语义图像分割,空间金字塔池化,编码-解码器,以及深度可分离
卷积。

1 Introduction

​ 语义分割的目标是为图像中的每个像素分配语义标签 [1,2,3,4,5],这是计算机视觉中的基本主题之一。基于全卷积神经网络(Fully Convolutional Neural Network) [8,11] 的深度卷积神经网络 [6,7,8,9,10] 在基准任务上显示出相较于依赖于手工制作特征的系统 [12,13,14,15,16,17] 的显著改进。在这项工作中,我们考虑了两种类型的神经网络,它们分别使用空间金字塔池化模块 [18,19,20] 或编码器-解码器结构 [21,22] 进行语义分割,其中前者通过在不同分辨率下池化特征来捕获丰富的上下文信息,而后者则能够获得清晰的物体边界。
​ 为了捕获多尺度的上下文信息,DeepLabv3 [23] 应用几种具有不同速率的并行空洞卷积(称为空洞空间金字塔池化,或 ASPP),而 PSPNet [24]在不同网格尺度下执行池化操作。尽管丰富的语义信息被编码在最后的特征图中,由于网络主干中的池化或步幅卷积操作,物体边界相关的详细信息却缺失。这可以通过应用空洞卷积来提取更密集的特征图来缓解。然而,考虑到最先进神经网络的设计 [7,9,10,25,26] 和有限的 GPU 内存,提取输出特征图(其大小为输入分辨率的8倍,甚至4倍)在计算上是不可行的。以ResNet-101 [25] 为例,当应用空洞卷积提取特征时,如果输出特征的大小是输入分辨率的16倍,最后3个残差块(9层)中的特征必须被扩张。更糟糕的是,如果想要的输出特征是输入的8倍小,则将会影响 26 个残差块(78层!)。因此,对于此类模型,提取更密集的输出特征在计算上是非常密集的。另一方面,编码器-解码器模型 [21,22] 由于在编码器路径中没有特征被扩张,因此能实现更快的计算,并在解码器路径中逐渐恢复清晰的物体边界。为了结合这两种方法的优点,我们建议通过在编码器-解码器网络中引入多尺度上下文信息来丰富编码器模块。

图 1. 我们改进了DeepLabv3,该模型(model)采用了空间金字塔池化模块(a),并具备编码器-解码器结构(b)。所提议的模型 (model)DeepLabv3+,包含了来自编码器模块的丰富语义信息,同时详细的对象边界通过简单而有效的解码器模块得以恢 复。编码器模块使我们能够通过应用空洞卷积在任意分辨率下提取特征。

​ 具体而言,我们提出的模型称为 DeepLabv3+,它通过添加一个简单而有效的解码器模块来恢复物体边界,从而扩展了 DeepLabv3 [23],如 Fig. 1所示。丰富的语义信息编码在 DeepLabv3 的输出中,通过空洞卷积可以根据计算资源的预算来控制编码器特征的密度。此外,解码器模块还允许详细的物体边界恢复。

​ 受到深度可分离卷积 [27,28,26,29,30] 最近成功的启发,我们也探讨了该操作,并通过适应 Xception 模型 [26] 的方法(类似于 [31]),在速度和准确度方面显示出改进,以用于语义分割任务,并将空洞可分离卷积应用于ASPP 和解码器模块。最后,我们在 PASCAL VOC 2012 和 Cityscapes 数据集上展示了所提出模型的有效性,并在不进行任何后处理的情况下达到了 89.0% 和 82.1% 的测试集性能,设定了新的状态-of-the-art。

​ 总之,我们的贡献是 :

  • 我们提出了一种新颖的编码器-解码器结构,该结构采用 DeepLabv3 作为强大的编码器模块,并且使用一个简单而有效的解码器模块。

  • 在我们的结构中,可以通过空洞卷积(atrous convolution)任意控制提取的编码器特征(encoder features)的分辨率,以权衡精度和运行时间,这在现有的编码器-解码器模型(encoder-decoder models)中是不可行的。

  • –我们调整Xception模型(model)以进行分割任务,并在ASPP模块和解码器模块中应用逐层可分离卷积,从而实现更快、更强的编码器-解码器网络。

  • 我们的模型在 PASCAL VOC 2012 和 Cityscapes 数据集上达到了新的状态(state)最优性能。我们还提供了设计选择和模型(model)变体的详细分析。

  • 我们提供的基于Tensorflow的实现(implementation)已公开可用,可在https://github.com/tensorflow/models/tree/master/research/deeplab获取。

2 Related Work

​ 基于全卷积网络(Fully Convolutional Networks,FCNs)[8,11] 的模型在多个分割基准测试中表现出显著的改善 [1,2,3,4,5]。为利用上下文信息进行分割,提出了几种模型变体 [12,13,14,15,16,17,32,33],包括那些采用多尺度输入(即图像金字塔)34,35,36,37,38,39] 或采用概率图模型(如DenseCRF40] 的高效推理算法 [41])[42,43,44,37,45,46,47,48,49,50,51,39]。在本工作,我们主要讨论使用空间金字塔池化和编码器-解码器结构的模型。
空间金字塔池化: 模型,如PSPNet [24] 或DeepLab [39,23],在多个网尺度上执行空间金字塔池化 [18,19](包括图像级池化 [52])或应用几个具不同率的并行膨胀卷积(称为膨胀空间金字塔池化,或ASPP)。这些模通过利用多尺度信息,在几个分割基准测试中表现出良好的结果。
编码器-解码器: 编码器-解码器网络已成功应用于许多计算机视觉任务,括人体姿态估计 [53]、目标检测 [54,55,56] 和语义分割 [11,57,21,22,58,59,60,61,62,63,64]。通常,编码器-解码器网络包含

  1. 一个编码器模块,逐渐减少特征图并捕更高级的语义信息,
  2. 一个解码器模块,逐渐恢复空间信息。基这一思想,我们提出使用DeepLabv3 [23] 作为编码器模块,并添加一个简而有效的解码器模块,以获得更清晰的分割结果。

深度可分离卷积: 深度可分离卷积 [27,28] 或组卷积 [7,65] 是一种强大操作,可以在保持相似(或稍好)性能的同时降低计算成本和参数数量。个操作已被许多最近的神经网络设计所采用 [66,67,26,29,30,31,68]。特别,我们探索Xception模型 [26],类似于 [31] 的COCO 2017检测挑战提交,在语义分割任务的准确性和速度方面显示出改善。

3 Methods

​ 在本节中,我们简要介绍了扩张卷积 [69,70,8,71,42] 和深度可分离卷积27,28,67,26,29]。然后,我们回顾了 DeepLabv3 [23],该模型作为我们的编码器模块,接下来讨论附加在编码器输出上的解码器模块。我们还介绍了一个修改过的 Xception 模型 [26,31],它通过更快的计算进一步提高了性能。

3.1 Encoder-Decoder with Atrous Convolution

膨胀卷积(Atrous convolution): 膨胀卷积是一种强大的工具,允许我们明确控制深度卷积神经网络计算的特征的分辨率,并调整滤波器的视野,以便捕获多尺度信息,从而推广标准卷积操作。在二维信号的情况下,对于输出特征图 y 上的每个位置 i 和卷积滤波器 w,膨胀卷积在输入特征图 x 上应用如下:

图 2. 我们提出的 DeepLabv3+ 通过采用编码器-解码器结构扩展了 DeepLabv3。编码器模块通过在多个尺度上应用空洞卷积 (atrous convolution) 来编码多尺度上下文信息,而简单而有效的解码器模块沿着物体边界完善分割结果。

在这里插入图片描述

其中,空洞率 r 决定了我们采样输入信号的步幅。我们建议感兴趣的读者参考 [39] 以获取更多细节。注意,标准卷积是一个特例,其中速率 r = 1。滤波器的视野通过改变速率价值 (value) 自适应调整。
深度可分离卷积: 深度可分离卷积将标准卷积分解为 深度卷积 和 逐点卷积 (i.e., 1 × 1 卷积),从而大幅度降低计算复杂度。具体而言,深度卷积对每个输入通道独立执行空间卷积,而逐点卷积则用于组合来自深度卷积的输出。在 TensorFlow [72] 对深度可分离卷积的实现中,空洞卷积在深度卷积 (i.e., 空间卷积) 中得到了支持,如 Fig. 3 所示。在本研究中,我们将得到的卷积称为 空洞可分离卷积,并发现空洞可分离卷积显著降低了所提模型的计算复杂度,同时维持了相似(或更好的)性能。
DeepLabv3作为编码器: DeepLabv3 [23] 采用了空洞卷积 [69,70,8,71]来提取深度卷积神经网络在任意分辨率下计算的特征。 在这里, 我们将output stride 表示为输入图像空间分辨率与最终输出分辨率的比率(在全局池化或全连接层之前)。对于图像分类任务,最终特征图的空间分辨率通常比输入图像分辨率小 32 倍,因此 output stride = 32。对于语义分割任务,可以采用 output stride = 16(或 8)通过去掉最后一个(或两个)块中的步幅来进行更密集的特征提取,并相应地应用空洞卷积(例如,我们对最后两个块分别应用 rate = 2 和 rate = 4 来实现 output stride = 8)。此外,DeepLabv3 增强了空洞空间金字塔池化模块,该模块通过应用不同速率的空洞卷积在多个尺度上探测卷积特征,并结合图像级特征 [52]。我们在所提出的编码器-解码器结构中使用原始 DeepLabv3 中 logits 之前的最后特征图作为编码器输出。值得注意的是,编码器输出特征图包含 256 个通道和丰富的语义信息。此外,通过应用空洞卷积,可以依赖于计算预算以任意分辨率提取特征。
提出的解码器: DeepLabv3 的编码器特征通常是通过 output stride = 16 计算得出的。在 [23] 的工作中,特征通过一个 16 的因子进行双线性上 采样,这可以被视为一个 naive 解码器模块。然而,这个 naive 解码器模块 可能无法成功恢复物体分割细节。因此,我们提出了一个简单而有效的解码 器模块,如 Fig. 2 所示。编码器特征首先通过一个因子为 4 的双线性上采 样,然后与来自网络主干的具有相同空间分辨率的相应低级特征 [73] 拼接例如,ResNet-101 [25] 中 Conv2 在步幅之前)。我们对低级特征应用另一 个 1 × 1 的卷积以减少通道数,因为相应的低级特征通常包含大量通道(例如,256 或 512),这可能超过丰富编码器特征(我们模型中仅 256 个通道)的重要性,从而使得训练变得更加困难。在拼接后,我们应用几个 3 × 3 的卷积来细化特征,然后再进行一个因子为 4 的简单双线性上采样。我们在Sec. 4 中显示,使用 output stride = 16 的编码器模块在速度和准确性之间达到了最佳平衡。当在编码器模块中使用 output stride = 8 时,性能略有提高,但代价是额外的计算复杂度。

在这里插入图片描述

图 3. 3 × 3 深度可分离卷积将标准卷积分解为 (a) 深度卷积(对每个输入通道应用单个滤波器)和 (b) 点卷积(在通道之间组合 深度卷积的输出)。在本工作中,我们探讨空洞可分离卷积(atrous separable convolution),其中在深度卷积中采用空 洞卷积,如© 所示,rate = 2。

在这里插入图片描述

图 4. 我们对Xception进行了如下修改:(1)增加了更多层(与MSRA的修改相同,除了在Entry flow中的变化),(2)所有的最大 池化操作都被具有步幅的深度可分离卷积所替代,以及(3)在每个3 × 3深度卷积后添加了额外的批量归一化 (normalization)和 ReLU,这与MobileNet类似

3.2 Modified Aligned Xception

​ Xception 模型 [26] 在 ImageNet [74] 上显示了令人期待的图像分类结 果,并且计算速度较快。最近,MSRA 团队 [31] 修改了 Xception 模型(称 为 Aligned Xception),并在目标检测任务中进一步提升了性能。受这些发 现的启发,我们朝着相同的方向努力,将 Xception 模型适应于语义图像分 割任务。特别地,我们在 MSRA 的修改基础上做了一些额外的更改,即1)更深的 Xception,与 [31] 中一样,只是在计算速度和内存效率方面我 们不修改入口流网络结构,(2)所有的最大池化操作都被带步幅的深度可 分离卷积替代,这使我们能够应用 atrous separable convolution 以在任意分 辨率下提取特征图(另一个选择是将 atrous 算法扩展到最大池化操作),以 及(3)在每个 3 × 3 深度卷积后添加额外的批归一化 [75] 和 ReLU 激活,类似于 MobileNet 设计 [29]。有关详细信息,请参见 Fig. 4。

4 Experimental Evaluation

我们使用在 ImageNet-1k [74] 上预训练的 ResNet-101 [25] 或修改的对齐 Xception [26,31] 通过空洞卷积提取稠密特征图。我们的实现基于 Ten-sorFlow [72] 并公开发布。
所提议的模型在 PASCAL VOC 2012 语义分割基准上进行评估 [1],该基准包含 20 个前景对象类别和一个背景类别。原始数据集包含 1, 464 (train),1, 449 (val ) 和 1, 456 (test ) 个像素级标注的图像。我们通过 [76]提供的额外标注增强了数据集,最终得到了 10, 582 (trainaug) 张训练图像。性能通过跨越 21 类的像素交并比(mIOU)来衡量。
我们遵循 [23] 中相同的训练协议,并建议感兴趣的读者参考 [23] 了解详情。简而言之,我们使用相同的学习率调度(即,“poly” 策略 [52] 和相同的初始学习率 0.007),裁剪大小 513 × 513,细调批量归一化参数 [75] 当
output stride = 16 时,并在训练期间进行随机尺度数据增强。请注意,我们还在所提出的解码器模块中包含了批量归一化参数。我们提议的模型是端到端训练的,没有对每个组件进行分段预训练。

4.1 Decoder Design Choices

​ 我们将“DeepLabv3 特征图”定义为 DeepLabv3 计算的最后特征图即,包含 ASPP 特征和图像级特征的特征),[k × k, f ] 表示一个具有核k × k 和 f 个滤波器的卷积操作。 在采用 output stride = 16 的情况下,基于 ResNet-101 的 DeepLabv3 [23] 在训练和评估期间以 16 的比例双线性上采样 logits。这个简单的双线性上采样可以被视为一种 naive 解码器设计,在 PASCAL VOC 2012 val 集上达到了 77.21% 的性能 [23],比在训练期间不使用这个 naive 解码器(即,在训练期间对地面真实值进行下采样)要好 1.2%。为了改进这个 naive 基线,我们提出的模型“DeepLabv3+” 在编码器输出之上增加了解码器模块,如 Fig. 2 所示。在解码器模块中,我们考虑了三个不同设计选项的位置,即 (1) 用于减少编码器模块中低层特征图通道的 1 × 1 卷积,(2) 用于获得更清晰分割结果的 3 × 3 卷积,以及 (3) 应该使用哪些编码器低层特征。

​ 为了评估解码器模块中 1 × 1 卷积的效果,我们采用 [3 × 3, 256] 和来自 ResNet-101 网络骨干的 Conv2 特征,即在 res2x 残差块中最后的特征图(为具体起见,我们使用在下采样之前的特征图)。如 Tab. 1 所示,将编码器模块中低层特征图的通道减少到 48 或 32 会导致更好的性能。因此,我们采用 [1 × 1, 48] 进行通道减少。

​ 接下来,我们为解码器模块设计 3 × 3 卷积结构,并在 Tab. 2 中报告了相关发现。我们发现,在将 Conv2 特征图(在下采样之前)与 DeepLabv3特征图连接后,使用两个具有 256 个滤波器的 3 × 3 卷积比简单使用一个或三个卷积更有效。将滤波器数量从 256 改为 128 或将核大小从 3 × 3 改为1 × 1 会降低性能。我们还实验了在解码器模块中同时利用 Conv2 和 Conv3特征图的情况。在这种情况下,解码器特征图通过 2 进行逐步上采样,先与 Conv3 连接,然后与 Conv2 连接,并将每个特征图通过 [3 × 3, 256] 操作进行细化。整个解码过程类似于 U-Net/SegNet 设计 [21,22]。但是,我们没有观察到显著的改进。因此,最后我们采用了非常简单但有效的解码器模块:DeepLabv3 特征图与通道减少的 Conv2 特征图的连接通过两个[3 × 3, 256] 操作进行细化。请注意,我们提出的 DeepLabv3+ 模型具有output stride = 4。考虑到有限的 GPU 资源,我们并没有追求更密集的输出特征图(即,output stride < 4)。

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

表 3. 在使用 ResNet-101 的 PASCAL VOC 2012 val 集上的推断策略。train OS: 训练期间使用的 output stride(输出步幅)。 eval OS: 评估期间使用的 output stride(输出步幅)。Decoder: 采用提议的解码器结构。MS: 评估期间的多尺度输入。Flip: 添 加左右翻转的输入。

4.2 ResNet-101 as Network Backbone

​ 为了在准确性和速度方面比较模型(model)变体,我们在使用 ResNet- 101 [25] 作为所提出的 DeepLabv3+ 模型的网络骨干时,报告了 Tab. 3 中的 mIOU 和 Multiply-Adds。得益于空洞卷积(atrous convolution),我们能够在训练和评估中使用单一模型获得不同分辨率的特征。

** 基线:** Tab. 3 中的第一行块包含了来自 [23] 的结果,显示在评估过程中提取更密集的特征图(i.e., eval output stride = 8

)并采用多尺度输入会提高性能。此外,添加左右翻转的输入会使计算复杂性翻倍,但仅带来边际性能提升。

增加解码器: Tab. 3 中的第二行块包含了采用所提出的解码器结构时的结果。当使用 eval output stride = 16 或 8 时,性能分别从 77.21% 提升到 78.85% 或从 78.51% 提升到 79.35%,代价是大约 20B 的额外计算开销。使用多尺度和左右翻转输入时,性能进一步提升

粗糙特征图: 我们还实验了在使用 train output stride = 32(i.e., 在训练期间完全不使用空洞卷积)情况下的情况,以便快速计算。如 Tab. 3中的第三行块所示,添加解码器带来了约 2% 的提升,同时仅需 74.20B Multiply-Adds。然而,性能始终比我们采用 train output stride = 16 和不同的 eval output stride 值的情况低约 1% 到 1.5%。因此,根据复杂性预算,我们更倾向于在训练或评估期间使用 output stride = 16 或 8。

4.3 Xception as Network Backbone

​ 我们进一步采用更强大的 Xception [26] 作为网络主干。根据 [31] 的方法,我们进行了更多的调整,如 Sec. 3.2 所述。
ImageNet 预训练: 所提出的 Xception 模型在 ImageNet-1k 数据集 [74] 上进行预训练,采用 [26] 中类似的训练协议。具体来,我们采用Nesterov 动量优化器,动量 = 0.9,初始学习率 = 0.05,轮次衰减 = 0.94,每 2 轮次,而权重衰减为 4e − 5。我们使用 50 个 GPU 进行异步训练,每个GPU 的批量大小为 32,图像大小为 299 × 299。我们没有对超参数进行过多调优,因为目标是在 ImageNet 上对模型进行预训练以进行语义分割。我们在 Tab. 4 中报告了在验证集上的 单模型 错误率,并与在相同训练协议下重现的基线 ResNet-101 [25] 一起呈现。我们观察到,在修改后的 Xception模型中,不在每个 3 × 3 深度卷积之后添加额外的批量归一化和 ReLU,导致 Top1 和 Top5 准确率分别下降了 0.75% 和 0.29%。
使用所提出的 Xception 作为语义分割的网络骨干的结果报告在 Tab. 5中。
基线: 我们首先在 Tab. 5 中的第一行块中报告在未使用所提出的解码器的情况下的结果,这显示出当 train output stride = eval output stride =16 时, 将 Xception 作为网络骨干使用的情况下, 性能提升约 2%, 而ResNet-101 使用的情况下。通过使用 eval output stride = 8,在推理期间使用多尺度输入,并添加左右翻转的输入,还可以获得进一步的改进。请注意,我们不使用多网格方法 [77,78,23],因为我们发现该方法并未提高性能。

添加解码器: 如 Tab. 5 中第二行块所示,添加解码器在使用 eval output stride =16 时,所有不同的推理策略带来了约 0.8% 的提升。当使用 eval output stride =8 时,改善效果减少。
使用深度可分离卷积: 受到深度可分离卷积高效计算的启发,我们进步在 ASPP 和解码器模块中采用它。如 Tab. 5 中第三行块所示,乘加法计算复杂度显著降低了 33% 至 41%,同时获得了相似的 mIOU 性能。

在 COCO 上预训练: 为了与其他最先进的模型进行比较,我们进一在 MS-COCO 数据集 [79] 上预训练我们所提出的 DeepLabv3+ 模型,这所有不同的推理策略带来了约额外 2% 的提升。
在 JFT 上预训练: 类似于 [23],我们还采用了在 ImageNet-1k [74] 和FT-300M 数据集 [80,26,81] 上进行预训练的所提出的 Xception 模型,带了额外 0.8% 至 1% 的改进。
测试集结果: 由于基准评估中未考虑计算复杂度,因此我们选择最佳能的模型,并训练其 output stride = 8 且冻结批量归一化参数。最终,我的 ‘DeepLabv3+’ 在未进行 JFT 数据集预训练和进行 JFT 数据集预训练分别达到了 87.8% 和 89.0% 的性能。
定性结果: 我们在 Fig. 6 中提供了我们最佳模型的可视化结果。如图示,我们的模型能够很好地对对象进行分割,而无需任何后处理。
失败模式: 如 Fig. 6 的最后一行所示,我们的模型在对 (a) 沙发与椅子、b) 严重遮挡的物体和 © 罕见视角的物体进行分割时遇到了困难。

4.4 Improvement along Object Boundaries

在本小节中,我们通过 trimap 实验 [14,40,39] 评估分割精度,以量化提出的解码器模块在物体边界附近的准确性。具体而言,我们对 val 集上 ‘void’ 标签注释应用形态学膨胀,这通常发生在物体边界附近。然后,我计算位于 ‘void’ 标签的膨胀带(称为 trimap)内的像素的平均 IOU。如 Fig. 5 (a) 所示,针对 ResNet-101 [25] 和 Xception [26] 网络骨干,采用所出的解码器相较于 naive 双线性上采样改善了性能。当膨胀带很窄时,改更加显著。我们观察到,在图中所示的最小 trimap 宽度下,ResNet-101 Xception 的 mIOU 分别提高了 4.8% 和 5.4%。我们还在图 Fig. 5 (b) 中视化了采用所提出解码器的效果。

在这里插入图片描述

表 5. 在使用修改后的 Xception 时,针对 PASCAL VOC 2012 val 集的推断策略。train OS: 训练期间使用的 output stride。eval OS: 评估期间使用的 output stride。Decoder: 使用提议的解码器结构。MS: 评估期间的多尺度输入。Flip: 添加左右翻转的输 入。SC: 对 ASPP 和解码器模块采用深度可分离卷积。COCO: 在 MS-COCO 上预训练的模型。JFT: 在 JFT 上预训练的模型。

在这里插入图片描述

表 6. PASCAL VOC 20

在这里插入图片描述

图 5. (a) 当采用 train output stride = eval output stride = 16 时,mIOU 作为物体边界周围的 trimap 带宽的函数。BU: 双线性 上采样。 (b) 与naive双线性上采样(标记为BU)相比,采用所提出的解码模块的定性效果。在示例中,我们采用 Xception 作 为特征提取器,并且 train output stride = eval output stride = 16

4.5 Experimental Results on Cityscapes

​ 在本节中,我们在Cityscapes数据集上实验DeepLabv3+ [3],该数据集是一个大规模数据集,包含5000张图像的高质量像素级标注(分别为2975、500和1525张用于训练、验证和测试集)以及约20000张粗略标注图像。
​ 如Tab. 7 (a)所示,在DeepLabv3 [23]的基础上采用所提议的Xception模型作为网络主干(表示为X-65),该模型包含ASPP模块和图像级特征 [52],在验证集上的性能达到了77.33%。 增加所提议的解码器模块显著提升了性能至78.79%(提升了1.46%)。我们注意到,去掉增强的图像级特征将性能提高到79.14%,这表明在DeepLab模型中,图像级特征在PASCAL VOC012数据集上的效果更为显著。我们还发现,在Cityscapes数据集上,在Xception [26]的入口流中增加更多层是有效的,这与文献 [31] 在物体检测任务中所做
的相同。基于更深网络主干构建的最终模型(在表中表示为X-71),在验证上达到了79.55%的最佳性能。
在找到在val 集上的最佳模型变体后,我们进一步在粗略注释上微调模,以便与其他最先进的模型竞争。如Tab. 7 (b)所示,我们提议的DeepLabv3+在测试集上的性能达到了82.1%,在Cityscapes上创下了新的最先进成绩。

在这里插入图片描述

图 6. val 集上的可视化结果。最后一行显示了一种失败模式。

在这里插入图片描述

表 7. (a) 在使用 train fine 数据集训练的 Cityscapes val 数据集上的 DeepLabv3+ 模型 (model)。 (b) 在 Cityscapes test 数据集上的 DeepLabv3+ 模型 (model)。 粗略: 同样使用 train extra 数据集 (粗略注释) 。此表中仅列出了一些顶级模型。

5 Conclusion

我们提出的模型 “DeepLabv3+” 采用编码器-解码器结构,其中 DeepLabv3用于编码丰富的上下文信息,并采用一个简单而有效的解码模块来恢复对象界。还可以根据可用的计算资源,应用空洞卷积 (atrous convolution) 在意分辨率下提取编码器特征。我们还探索了 Xception 模型和空洞可分离积 (atrous separable convolution),以使提出的模型更快更强。最后,我的实验结果表明,所提出的模型在 PASCAL VOC 2012 和 Cityscapes 数集上设定了新的状态 (state)-of-the-art 性能。

这篇关于deeplab3-plus(中文翻译)的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1107663

相关文章

【C++ Primer Plus习题】13.4

大家好,这里是国中之林! ❥前些天发现了一个巨牛的人工智能学习网站,通俗易懂,风趣幽默,忍不住分享一下给大家。点击跳转到网站。有兴趣的可以点点进去看看← 问题: 解答: main.cpp #include <iostream>#include "port.h"int main() {Port p1;Port p2("Abc", "Bcc", 30);std::cout <<

Adblock Plus官方规则Easylist China说明与反馈贴(2015.12.15)

-------------------------------特别说明--------------------------------------- 视频广告问题:因Adblock Plus的局限,存在以下现象,优酷、搜狐、17173黑屏并倒数;乐视、爱奇艺播放广告。因为这些视频网站的Flash播放器被植入了检测代码,而Adblock Plus无法修改播放器。 如需同时使用ads

【C++ Primer Plus习题】12.2

大家好,这里是国中之林! ❥前些天发现了一个巨牛的人工智能学习网站,通俗易懂,风趣幽默,忍不住分享一下给大家。点击跳转到网站。有兴趣的可以点点进去看看← 问题: 解答: main.cpp #include <iostream>#include "String.h"using namespace std;int main(){String s1(" and I am a

Mybatis Plus快速重构真批量sql入库操作

Mybatis快速重构真批量sql入库操作 基本思路 重构mybatis默认方法saveBatch和saveOrUpdateBatch的实现 基本步骤 真批量保存实现类InsertBatchMethod真批量更新实现类MysqlInsertOrUpdateBath注册InsertBatchMethod和MysqlInsertOrUpdateBath到EasySqlInjector注册Eas

leetcode#66. Plus One

题目 Given a non-negative integer represented as a non-empty array of digits, plus one to the integer. You may assume the integer do not contain any leading zero, except the number 0 itself. The digi

【C++ Primer Plus习题】12.1

大家好,这里是国中之林! ❥前些天发现了一个巨牛的人工智能学习网站,通俗易懂,风趣幽默,忍不住分享一下给大家。点击跳转到网站。有兴趣的可以点点进去看看← 问题: 解答: main.cpp #include <iostream>#include "Cow.h"using namespace std;int main(){Cow c1;Cow c2("老母牛", "喝奶"

《C Primer Plus》第10 章复习题和编程练习

目录 一、复习题二、编程练习 一、复习题 1. 下面的程序将打印什么内容? #include <stdio.h>int main(){int ref[] = {8, 4, 0 ,2};int *ptr;int index;for (index = 0, ptr = ref; index < 4; index++, ptr++){printf("%d %d\n", ref[in

MyBatis-Plus 框架 QueryWrapper UpdateWrapper 方法修复sql注入漏洞事件

什么是漏洞? 漏洞是指软件、系统或网络中存在的安全弱点或错误,这些弱点可能导致系统遭受攻击或被不当使用。在计算机安全领域,漏洞通常源于编程错误、设计缺陷或配置失误。 对于对象关系映射(ORM)框架来说,漏洞通常指的是设计或实施中的安全问题,这些问题可能让应用程序面临SQL注入攻击的风险。 SQL 注入漏洞 如果ORM框架在执行SQL操作时没有正确过滤或转义用户输入,攻击者可以利用输入的恶意数据

【C++ Primer Plus习题】11.6

问题: 解答: main.cpp #include <iostream>#include "Stonewt.h"using namespace std;const int SIZE = 6;int main(){Stonewt stone_arr[SIZE] = { 253.6,Stonewt(8,0.35),Stonewt(23,0) };double input;Ston

滚雪球学MyBatis-Plus(12):高级功能

前言 在上期内容中,我们详细探讨了 MyBatis Plus 的多数据源配置。通过多数据源配置,我们可以连接多个数据库,并在运行时动态切换数据源,显著提高应用程序的灵活性和扩展性。我们详细介绍了多数据源配置的实现方法,并通过实例演示了如何在项目中应用这些技术。 本期内容将深入探讨 MyBatis Plus 的高级功能,包括自定义 SQL 注解、批量操作以及数据加密与解密。通过这些高级功能,你将