论文翻译:DFANet: Deep Feature Aggregation for Real-Time Semantic Segmentation

DFANet: Deep Feature Aggregation for Real-Time Semantic Segmentation

摘要

  本文介绍了一种非常有效的基于资源约束的CNN框架——DFANet。我们提出的网络从单一的轻量级骨干开始,分别通过子网络和子级联来聚合识别特征。DFANet基于多尺度特征传播,在显著减少了参数个数的同时,仍然获得了足够的感受野,提高了模型的学习能力,在速度和分割性能之间取得了平衡。在
Cityscapes和CamVid数据集上的实验证明了DFANet的优越性能,与现有的最先进的实时语义分割方法相比,DFANet少了8倍的浮点运算并且提升2倍的推理速度,同时提供了相当的准确性。

简介

  语义分割是计算机视觉中的一项基本任务,它的目的是为图像中的所有像素分配密集的标签。它在自动驾驶、视频监控、机器人传感等领域有着广阔的应用前景。对于大多数这类应用,如何在高分辨率图像中保持高效的推理速度和高精度是一个关键问题。
  以前的实时语义分割方法[1][25][27][29][33][22]已经在各种基准[10][9][18][36][2]上取得了良好的性能。然而在U型结构中,高分辨率特征图上的操作花费了大量的时间。一些工作通过限制输入图像的大小[27]来降低计算复杂度,或者通过删除网络中的冗余信道来加快推理速度[1][22]。虽然这些方法看起来很有效,但是它们很容易丢失边界和小对象周围的空间细节。此外,浅层网络削弱了特征描述的能力。为了克服这些缺点,其他[33][29]方法采用多分支框架来协调空间细节和上下文信息。然而,高分辨率图像上的附加分支限制了速度,分支之间的相互独立性限制了这些方法的模型学习能力。
  语义分割任务通常借用从图像分类任务中预先训练的“funnel”主干网络,如ResNet[11]、Xception[8]、DenseNet[13]等。为了实现实时推理,我们采用了一个轻量级的主干网络模型,并研究了如何在有限的计算量下提高分割性能。在主流的语义分割体系结构中,采用金字塔式的特征组合步骤,如空间金字塔池化[34][5],利用高层上下文丰富特征,同时导致计算成本急剧增加。此外,传统方法通常从单个路径体系结构的最终输出中丰富特征映射。在这种设计中,高层上下文缺乏与之前的层次特征的结合,这种结合保留了网络路径中的空间细节和语义信息。为了提高模型的学习能力,同时增加模型的感受野,特征重用是一种不可忽视的思想。这促使我们寻找一种轻量级方法,将多层上下文合并到编码的特性中。
  在我们的工作中,我们部署了两种策略来实现模型中的跨级别特征聚合。首先,我们重用从主干中提取的高级特征,以弥合语义信息和结构设计之间的鸿沟。其次,结合网络体系结构处理路径中不同阶段的特征,提高特征表示能力。这些想法可以看图二。
图二:结构比较。

图2:结构比较。从左到右:(a)多分支。(b)空间金字塔汇集。(c)网络级的特征重用。(d)阶段级的特征重用。作为比较,所提出的功能重用方法在另一方面丰富了具有高级上下文的功能。

  详细地说,我们复制了轻量级主干来验证我们的特征聚合方法。我们提出的Deep Feature Aggregation Network (DFANet)包括三个部分:轻量级骨架、子网络聚合和子阶段聚合模块。由于深度分离卷积被证明是实时推理中最有效的运算之一,因此我们将Xception网络修改为主干结构。为了追求更好的交流,我们在主干网络的尾部附加连接注意力模块,以保留最大的感受野。子网络聚合主要是将前一个主干的高级特征图向上采样到下一个主干的输入,从而细化预测结果。从另一个角度看,子网络聚合可以看作是像素分类的一个由粗到精的过程。子阶段聚合通过集合“粗”部分和“细”部分相应阶段之间的特征表示。它通过结合具有相同维度的图层,提供了感受野和高维结构细节。在这三个模块之后,采用反卷积和双线性上采样操作组成的小型解码器,将各个阶段的输出结合起来,生成粗到精的分割结果。所提出的网络架构如图3所示。
图3:深度特征聚合网络概述:用于多级特征融合的子网络聚合、子阶段聚合和双路径解码器。图中,“C”表示串联,“xN”表示N×上采样操作。

图3:深度特征聚合网络概述:用于多级特征融合的子网络聚合、子阶段聚合和双路径解码器。图中,“C”表示串联,“xN”表示N×上采样操作。

  我们在两个标准的基准数据集( Cityscapes和CamVid)测试了提出的DFANet。输入1024×1024,DFANet在NVIDIA Titan X卡上以3.4GFLOPs和100FPS的速度达到了71.3%的mIOU。同时在更小的输入尺寸和更轻量的主干网络中,mIOU仍保持在70.3%和67.1%,浮点计算仅为1.7GFLOPs和2.1G FLOPs,优于目前大多数最先进的实时分割方法。

我们的主要贡献总结如下:

  • 为实时、低计算量的语义分割创造了新的记录。与现有的工作相比,我们的网络t少了8倍的浮点运算并且提升2倍的推理速度,同时还有很好的准确性。
  • 我们提出了一种全新的分割网络结构,包含多个相互关联的编码流,将高层上下文整合到编码特征中。
  • 我们的结构提供了一种更好的方法,可以最大限度地利用多尺度感受野,并在略微增加计算量的情况下多次细化高级特性。
  • 我们通过添加FC注意层来修改Xception主干,以增大感受野的同时无需额外的计算。

相关工作

Real-time Segmentation:

  实时语义分段算法的目标是在有限的计算量下产生高质量的预测。SegNet[1]采用一种小架构和池索引策略来降低网络参数。ENet[22]考虑减少下采样次数,以追求一个非常紧凑的框架。由于它放弃了模型的最后阶段,所以该模型的感受野太小,无法正确分割较大的对象。ESPNet[26]实现了新的空间金字塔模块,提高了计算效率。ICNet[33]采用多尺度图像作为输入,采用级联网络来提高效率。[29]引入空间路径和语义路径来减少计算量。在ICNet和BiSeNet中,只有一个分支是用于提取特征的深度CNN,其他分支是用来构造分辨率细节的。与这些方法不同的是,我们在特征空间中增强了单个模型的容量来存储更多的细节信息。

Depthwise Separable Convolution:

  Depthwise sepa-rable convolution (a depthwise convolution followed by a pointwise convolution)是近年来许多神经网络设计中采用的一种功能强大的操作。此操作在保持类似(或稍好)性能的同时,重新降低了计算成本和参数数量。特别是我们的骨干网是基于Xception模型[8]的,它在处理语义分割任务的速度和速度上都表现出很高的效率。

High-level Features:

  分割任务的关键问题是感受野和分类能力。在一般的编解码器结构中,编码器输出的高级有限元结构描述了输入图像的语义信息。在此基础上,PSPNet[34]、DeepLab系列[7][5][4]、PAN[16]又增加了一个操作,将更多的上下文信息与多尺度特征表示相结合。空间金字塔池被广泛应用于场景的整体解释,特别是对多尺度的各种对象的场景解释。这些模型在多个基准上显示了高质量的分割结果,但通常需要大量的计算资源。

Context Encoding:

  SE-Net[12]通过对通道信息的挖掘来学习信道式注意,并在图像分类方面取得了最先进的性能,使得注意机制成为深度神经网络[3]的有力工具。这可以看作是一种改进模块特征表示的信道选择方法。EncNet[32][20][6]引入了上下文编码,以增强每像素的预测,这是有条件的编码语义。在本文中,我们还提出了一个全连接模块,以提高骨干网性能,这对计算影响很小。

Feature Aggregation:

  传统的方法是将单路编解码器网络简化为像素对像素的预测。随着网络深度的增加,如何在块与块之间进行特征聚合成为一个值得关注的问题。而不是简单的跳过连接设计,为了提取多尺度特征,RefineNet[17]在编码器和解码器之间的每个上采样阶段都引入了一个复杂的细化模块。另一种聚合方法是实现密集连接。近年来,在[13]图像分类中提出了密集关联的概念,并将其推广到[14][28]的语义分割中。DLA[31]扩展了该方法,开发了更深层次的聚合结构,增强了特征表示能力。

Deep Feature Aggregation Network

  在实时任务中应用当前的语义分割方法时,首先对计算量进行观察和分析。这促使我们的聚合策略结合特征提取网络的不同深度位置的细节信息和空间信息,以达到相应的性能。图3显示了深度特征聚合网络(DFANet)的整体架构。

3.1. Observations

  如图2所示,我们简要概述了分割网络结构。
  对于实时推理,[33][29]应用多个分支进行多尺度提取,保留图像空间细节。例如,BiSeNet[29]提出了一种高分辨率图像的浅层网络处理方法和一种快速下采样的深度网络处理方法,以平衡分类能力和感受野。这个结构展示在图2(a)中。然而,这些方法的缺点很明显,这些模型只实现卷积层来融合特征,缺乏对并行分支组合的高级特征的处理。此外,特征缺乏并行分支之间的通信。同时,高分辨率图像上附加的分支限制了计算速度的加速。
  在语义分割任务中,空间金字塔池化(SPP)模块是处理高层次特征[5]的常用方法(图2(b))。空间金字塔模块的能力是提取高层次的语义上下文,增加感受野,如[4][34][16]。然而,实现空间金字塔模块通常是很耗时的。
  受上述方法的启发,我们首先对一个网络的输出进行上采样,并用另一个子网络细化特征图,来代替高层操作,如图2©所示。与SPP模块不同的是,特征图在较大分辨率下进行细化,同时学习子像素细节。然而,随着整个结构深度的增加,由于特征流是单一路径的,高维特征和感受野往往会出现精度损失。
  更进一步,我们提出了阶段级方法(图2(d))来交付低层特征和空间信息以实现语义理解。由于所有这些子网络都具有相似的结构,因此可以通过将具有相同分辨率的层连接起来来生成多阶段上下文 ( multi-stage context),从而产生阶段级细化。我们提出的深度特征聚合网络旨在利用网络级和阶段级的特征。

3.2. Deep Feature Aggregation

  重点研究了不同深度特征在网络中的融合。我们的聚合策略由子网络聚合和子阶段聚合方法组成。DFANet的结构如图3所示。

Sub-network Aggregation.

  子网络聚合在网络级别实现高级功能的组合。基于上述分析,我们通过将上一个主干的输出提供给下一个主干,将体系结构实现为骨干的堆栈。从另一个角度看,子网络聚合可以看作是一个细化过程。主干过程定义为y = Φ(x),编码器的输出 Φn是 Φn+1的输入。因此,子网络聚合可以表示为:Y = Φnn−1(…Φ1(X))).
  [21]中也引入了类似的想法。该结构由一组编解码器“沙漏”网络构成。子网络聚合允许再次处理这些高级特征,以进一步评估和重新评估更高阶空间关系。

Sub-stage Aggregation.

  子阶段聚合主要是在多个网络之间的阶段级融合语义信息和空间信息。随着网络深度的增长,空间细节的丢失。常用的方法,如u形结构,在解码器模块中实现跳跃连接来恢复图像细节。然而,更深层次的编码块缺乏低层特征和空间信息,无法对大规模的各种对象和精确的结构边缘做出判断。并行分支设计采用原始分辨率和低分辨率作为输入,输出是大规模分支和小规模分支结果的融合,而这种设计缺乏并行分支之间的信息通信。
  我们的子阶段聚合被提议通过编码周期来结合特征。在相同的子网络深度下,对不同阶段进行融合。其中,前一个子网络中某一阶段的输出贡献给下一个子网络相应阶段位置的输入。
  对于一个单一的主干网络Φn(x),一个阶段过程可以定义为 φin,前一个主干网络的阶段是φin-1。i表示stage的下标。子阶段聚合方法可表示为:
在这里插入图片描述
其中,xin-1来自于:xin-1=xi-1n-1in-1(xi-1n-1
在这里插入图片描述
  传统的方法是学习F(x)+x对xi-1n的映射。在我们提出的方法中,子阶段聚合法是在每个阶段的开始学习[xi-1n,xin-1]的残差公式。
  在n > 1情况下,n网络第i阶段的输入是由第(n−1)网络的i阶段输出和n网络第(i−1)阶段输出得到的,然后第i阶段学习的残余表示[xi-1n,xin-1]。xi-1n和 xin-1有一样的分辨率,我们实现串联操作融合特性。
  我们始终保持该功能从高分辨率流到低分辨率。我们的公式不仅学习了第n个特征图的新映射,而且保留了第(n - 1)个特征和感受野。信息流可以通过多个网络进行传输。

3.3. Network Architecture

  整个体系结构如图3所示。一般来说,我们的语义分割网络可以看作是一个编解码器结构。如上所述,编码器是由三个Xception骨干组成的聚合,由子网络聚合和子阶段聚合方法组成。对于实时推理,我们不太关注解码器。该解码器被设计成一个高效的特征上采样模块,用于融合低层和高层特征。为了方便实现我们的聚合策略,我们的子网络由一个主干网络实现,它采用单个双线性上采样作为一个朴素解码器。所有这些主干网络具有相同的结构,并以相同的预先训练权值初始化。

Backbone.

  主干网络是一个轻量级的Xception模型,对分割任务的修改很少,我们将在下一节讨论网络配置。对于语义分割来说,如何有效地获取语义上下文,不仅提供了密集的特征表示,而且是一个亟待解决的问题。因此,我们从ImageNet预处理中保留全连接层,以增强语义提取。在分类任务中,全连接层(FC)后接全局池化层,生成最终的概率向量。由于分类任务数据集[15]比分割数据集[10][36]提供了大量的类别。从ImageNet预处理得到的全连接层可以比从分割数据集中得到的训练更有效地提取类别信息。我们使用1×1卷积层和FC层来减少通道,以匹配来自Xception主干网络的特征图。然后将N×C×1×1编码向量与原始提取的特征按channel-wise方式相乘。

Decoder.

  我们提出的解码器模块如图3所示。对于实时推理,我们没有过多地关注复杂解码器模块的设计。根据DeepLabV3+[7],并非所有阶段的特征都需要贡献给解码器模块。我们建议直接融合高级和低级特征。因为我们的编码器是由三个骨干组成的,所以我们首先从三个主干网络的底部融合高级表示。然后用因子4对高阶特征进行双线性提前上采样,分别融合具有相同空间分辨率的各主干网络的低阶信息。然后将高阶特征和低阶细节加在一起,按因子4进行上采样,做出最终预测。在解码器模块中,我们只进行了少量的卷积运算来减少通道的数量。

4. Experiments

  • 2
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值