deeplab3-plus(中文翻译)

news2024/9/25 3:21:32

**

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 性能。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2073886.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

鸿蒙南向开发:测试框架xdevice核心组件

简介 xdevice是OpenHarmony中为测试框架的核心组件&#xff0c;提供用例执行所依赖的相关服务。 xdevice主要包括以下几个主要模块&#xff1a; command&#xff0c;用户与测试平台命令行交互模块&#xff0c;提供用户输入命令解析&#xff0c;命令处理。config&#xff0c;…

electron仿微信,高度还原,入门项目

效果展示 Electron仿写微信-效果展示 目前完成了一些基础的功能&#xff0c;还在持续开发中&#xff0c;后期会整理开源。 有些样式没有追求百分百还原&#xff0c;只是通过该项目&#xff0c;让大家了解一下Electron创建桌面应用&#xff0c;各种窗口的创建及销毁、事件传递机…

NLP从零开始------13.文本中阶序列处理之语言模型(1)

语言模型( language model) 用于计算一个文字序列的概率&#xff0c; 评估该序列作为一段文本出现在通用或者特定场景中的可能性。每个人的语言能力蕴涵了一个语言模型&#xff0c;当我们说出或写下一段话的时候&#xff0c;已经在不自觉地应用语言模型来帮助我们决定这段话中的…

viscode 自定义片段,快速生成自己的开发模板

设置 ---> 代码片段 2.选择新建全局代码片段文件 3.根据示例自定义配置代码片段 4.示例:vue prefix:内容--> 代表用于触发代码片段的内容 $1&#xff0c; $2 用于制表位,如 $1 代表生成后第一个输入的位置,$2代表第二个,不用自己移动鼠标 {// Place your snippets f…

Sac格式

本文章只作为自己学习时的用法&#xff0c;不通用&#xff0c;大家可不用参考。 sac格式 0.01000000 -1.569280 1.520640 -12345.00 -12345.009.459999 19.45000 -41.43000 10.46400 -12345.00-12345.00 -12345.00 -12…

SQL注入漏洞的基础知识

目录 SQL注入漏洞的定义和原理 SQL注入的类型和攻击方法 SQL注入的防御措施 示例代码 深入研究 SQL注入漏洞的常见攻击场景有哪些&#xff1f; 如何有效防范SQL注入攻击&#xff1f; SQL注入与跨站脚本攻击&#xff08;XSS&#xff09;之间有什么区别&#xff1f; 主要…

每日一练【最大连续1的个数 III】

一、题目描述 给定一个二进制数组 nums 和一个整数 k&#xff0c;如果可以翻转最多 k 个 0 &#xff0c;则返回 数组中连续 1 的最大个数 。 二、题目解析 本题同样是利用滑动窗口的解法。 首先进入窗口&#xff0c;如果是1&#xff0c;就直接让right&#xff0c;但是如果是…

【软考】树、森林和二叉树之间的相互转换

目录 1. 说明2. 树、森林转换为二叉树2.1 树转成二叉树2.1 森林转成二叉树 3. 二叉树转换为树和森林 1. 说明 1.树、森林和二叉树之间可以互相进行转换&#xff0c;即任何一个森林或一棵树可以对应表示为一棵叉树&#xff0c;而任何一棵二叉树也能对应到一个森林或一棵树上。 …

SSRF复现

目录 环境 分析测试 写入shell 环境 web-ssrfme docker环境 拉取运行 分析测试 进入网站会显示源码 可以看到过滤了file&#xff0c;dict等&#xff0c;但get传参info会执行phpinfo() 可以发现这里网站ip是172.18.0.3&#xff0c;可以使用这个地址绕过waf 测试看是否存在…

如何实现一次搭建 多平台适配的小程序

如何实现一次搭建 多平台适配的小程序 什么是小程序小程序的优势有什么&#xff1f;如果构建小程序&#xff0c;会用在什么领域和场景&#xff1f;如何实现一站式开发多平台的小程序&#xff1f;你希望了解小程序上哪些功能模块的集成能力&#xff1f; 随着微信、支付宝、百度、…

七、Centos安装LDAP--Docker版--已失败

参考博客&#xff1a; docker 安装 OpenLDAP 及 LdapAdmin桌面版、页面版(osixia/openldap)_docker安装ldap-CSDN博客 LDAP使用docker安装部署与使用_memberof ldap docker-CSDN博客 目录 一、安装Docker Docker基本使用 管理镜像 二、拉取LDAP镜像 配置docker国内的镜像…

Java 入门指南:初识 Java 异常(Exception)

初识Java异常 何为异常 在Java中&#xff0c;异常是一个不需要的或意外的事件&#xff0c;它发生在程序执行期间&#xff0c;即在运行时&#xff0c;破坏了程序指令的正常流程。异常可以被程序捕获&#xff08;catch&#xff09;和处理&#xff08;handle&#xff09;。 方法…

C/C++逆向:寻找main函数(Debug-x86)

在程序的逆向分析中&#xff0c;寻找main函数在逆向分析中是非常重要的&#xff0c;它是程序的核心执行点&#xff0c;从这里开始&#xff0c;程序的主要逻辑开始展开&#xff1b;在这边我们需要明确两个概念&#xff1a;用户入口&#xff08;User Entry Point&#xff09; 和 …

【C语言进阶】深入C语言指针:基础到进阶的跨越

&#x1f4dd;个人主页&#x1f339;&#xff1a;Eternity._ ⏩收录专栏⏪&#xff1a;C语言 “ 登神长阶 ” &#x1f921;往期回顾&#x1f921;&#xff1a;C语言数据在内存中的存储 &#x1f339;&#x1f339;期待您的关注 &#x1f339;&#x1f339; ❀C语言指针进阶 &a…

Linux中安装java和tomcat(保姆级教程)

java 篇 JDK是用于开发Java应用程序的软件开发工具包。它包含了编译器、调试器、运行时环境和其他一些开发工具&#xff0c;可以帮助开发人员创建、编译、调试和部署Java应用程序。JDK提供了Java编程语言的开发工具和运行时库&#xff0c;使开发人员能够编写和执行Java代码。 …

TypeScript教程(一)之我们为什么要学TypeScript

根据软件开发设计公司 The Software House 针对 2022 年前端市场状态的调查显示&#xff0c;84% 的受访者都在使用 TypeScript&#xff0c;43% 的受访者甚至认为 TypeScript 将超越 JavaScript 成为前端开发的主要语言。TypeScript 这些年越来越火&#xff0c;可以说是前端工程…

影视会员官方渠道api对接

API对接是指两个不同的软件系统或应用程序之间通过API&#xff08;应用程序编程接口&#xff09;进行交互的过程。这种交互允许数据和功能的共享&#xff0c;而不必暴露系统的内部工作原理。在影视会员充值场景中&#xff0c;API对接具有以下几个关键特点和优势&#xff1a; 数…

【Linux系列】AWK命令使用

&#x1f49d;&#x1f49d;&#x1f49d;欢迎来到我的博客&#xff0c;很高兴能够在这里和您见面&#xff01;希望您在这里可以感受到一份轻松愉快的氛围&#xff0c;不仅可以获得有趣的内容和知识&#xff0c;也可以畅所欲言、分享您的想法和见解。 推荐:kwan 的首页,持续学…

Java面试题--JVM大厂篇之JVM大厂面试题及答案解析(4)

&#x1f496;&#x1f496;&#x1f496;亲爱的朋友们&#xff0c;热烈欢迎你们来到青云交的博客&#xff01;能与你们在此邂逅&#xff0c;我满心欢喜&#xff0c;深感无比荣幸。在这个瞬息万变的时代&#xff0c;我们每个人都在苦苦追寻一处能让心灵安然栖息的港湾。而我的博…

使用VBA快速创建非规则数据图表

实例需求&#xff1a;工作表中共有4组数据&#xff0c;第一组数据涵盖所有日期&#xff0c;其他3组均为断续数据。 现在需要创建如下图所示的线图&#xff0c;由于数据区域是非连续的&#xff0c;因此无法直接创建图表。 需要先将数据表按照日期对齐&#xff0c;如下图所示&…