您的当前位置:首页正文

【论文阅读--实时语义分割】BiSeNet: Bilateral Segmentation Network for Real-time Semantic Segmentation

2024-11-13 来源:个人技术集锦

Abstract

语义分割既需要丰富的空间信息,又需要相当大的感受野。然而,当前方法通常会牺牲空间分辨率来实现实时推理速度,从而导致性能低下。在本文中,我们用一种新的双边分段网络(BiSeNet)来解决这个难题,将空间信息保存和感受野提供的功能解耦为两条路径:

  • 设计一个小跨步的 空间路径 来保存空间信息并生成高分辨率的特征。
  • 采用快速下采样策略的 上下文路径 来获得足够的感受野。
  • 在这两条路径的基础上,我们引入了一个 新的特征融合模块 来有效地组合特征。

提出的架构在Cityscapes、CamVid和COCO Stuff数据集的速度和分割性能之间取得了适当的平衡。具体而言,对于2048×1024的输入,我们在一张NVIDIA Titan XP卡上以105 FPS的速度在Cityscapes测试数据集上实现了68.4%的平均IOU,这比具有类似性能的现有方法要快得多。

1 Introduction

背景
语义分割的研究是计算机视觉中的一项基本任务,即为每个像素分配语义标签。它可以广泛应用于增强现实、自动驾驶和视频监控等领域。这些应用程序对快速交互或响应的高效推理速度有很高的要求。

最近,实时语义分割的算法[1,17,25,39]表明,主要有三种方法来加速该模型。

  • [34,39]尝试通过裁剪或调整大小来限制输入大小,以降低计算复杂性。尽管该方法简单有效,但空间细节的丢失破坏了预测,尤其是边界附近的预测,导致度量和可视化的准确性降低。
  • 修剪网络通道以提高推理速度[1,8,25],尤其是在基础模型的早期阶段。然而,它削弱了空间容量。
  • 对于最后一种情况,ENet[25]建议放弃模型的最后阶段,以追求一个非常紧密的框架。然而,这种方法的缺点是显而易见的:由于ENet在最后阶段放弃了下采样操作,因此模型的感受野不足以覆盖大型对象,导致识别能力差。
    总的来说,以上所有方法都会在精度和速度之间产生折衷,这在实践中是较差的。图1(a)给出了说明。

为了弥补上述空间细节的损失,研究人员广泛使用U形结构[1,25,35]。通过融合主干网络的层次结构特征,U形结构逐渐提高了空间分辨率,并填补了一些缺失的细节。然而,这种技术有两个缺点:

  • 1 由于在高分辨率特征地图上引入额外的计算,完整的U形结构可以降低模型的速度。
  • 2 更重要的是,修剪或修剪过程中丢失的大部分空间信息都无法通过涉及浅层来轻松恢复,如图1(b)所示。换言之,U形技术被视为一种替代方案,而不是一种最佳的解决方案。

BiSeNet
基于以上观察,我们提出了包含两部分的双边分割网络(BiSeNet):空间路径(SP)和上下文路径(CP)。顾名思义,设计这两个组件是为了分别针对空间信息的丢失和感受野的减小。

  • 对于空间路径,我们仅堆叠三个卷积层以获得1/8特征图,这保留了丰富的空间细节。
  • 关于上下文路径,我们在 Xception[8]的尾部附加了一个全局平均池层,其中感受野是骨干网络的最大值。图1(c)显示了这两个组件的结构。
  • 为了在不损失速度的情况下获得更好的精度,我们还研究了两个组件的融合和最终预测的优化,并分别提出了特征融合模块(FFM)和注意细化模块(ARM)。

2 Related Work

最近,许多基于FCN[22]的方法在语义分割任务的不同基准上取得了最先进的性能。这些方法大多的设计是编码更多的空间信息或扩大感受野。

  • 【空间信息】卷积神经网络(CNN)[16]通过连续下采样操作对高级语义信息进行编码。然而,在语义分割任务中,图像的空间信息对于预测细节输出至关重要。
    现有的现代方法致力于对丰富的空间信息进行编码。DUC[32]、PSPNet[40]、DeepLab v2[5]和DeepLab v3[6]使用扩展卷积来保持特征地图的空间大小。全局卷积网络[26]利用“大内核”来扩大感受野.
  • 【U形方法】U形结构[1,10,22,24,27]可以恢复一定程度的空间信息。
    原始FCN[22]网络通过跳跃连接的网络结构对不同级别的特征进行编码。有些方法将其特定的细化结构转化为U形网络结构。
    [1,24]使用反卷积层创建U形网络结构。
    U-net[27]为该任务引入了有效的跳跃连接网络结构。全局卷积网络[26]将U形结构与“大内核”相结合。
    LRR[10]采用拉普拉斯金字塔重建网络。
    RefineNet[18]添加了多路径细化结构来细化预测。
    DFN[36]设计了一个通道注意块来实现特征选择。
    然而,在U形结构中,一些丢失的空间信息不容易恢复。
  • 【上下文信息】语义分割需要上下文信息来生成高质量的结果。大多数常用的方法是扩大感受野或融合不同的上下文信息。
    • [5,6,32,37]在卷积层中使用不同的膨胀率来捕获不同的上下文信息。
    • 在图像金字塔的驱动下,语义分割网络结构通常采用多尺度特征集成。
      在[5]中,提出了一个“ASPP”模块来捕获不同感受野的上下文信息。
      PSPNet[40]应用了一个“PSP”模块,该模块包含多个不同比例的平均池层。[6] 设计一个具有全局平均池的“ASPP”模块,以捕获图像的全局上下文。
      [38]通过比例自适应卷积层改进神经网络,以获得自适应字段上下文信息。
      DFN[36]在U形结构的顶部添加了全局池,以对全局上下文进行编码。
  • 【注意机制】注意机制可以利用高层信息引导前馈网络[23,31]。
    在[7]中,CNN的注意力取决于输入图像的大小。
    在[13]中,他们将通道注意应用于识别任务,并实现了最先进的技术。
    像DFN[36]一样,他们学习全球环境作为注意力,并修改特征。
  • 【实时分割】实时语义分割算法需要快速生成高质量的预测。
    SegNet[1]利用小型网络结构和跳接方法实现快速连接。
    E-Net[25]从头开始设计一个轻量级网络,并提供极高的速度。
    ICNet[39]使用图像级联来加速语义分割方法。
    [17] 采用级联网络结构,减少“易区域”的计算量。
    [34]设计了一种新颖的双列网络和空间稀疏性,以降低计算成本。不同的是,我们提出的方法采用了一个轻量级的模型来提供足够的感受野。此外,我们还设置了一个浅而宽的网络来获取足够的空间信息。

3 双边分割网络

模块介绍

在本节中,我们首先详细说明了我们提出的具有空间路径和上下文路径的双边分段网络(BiSeNet)。此外,我们还相应地阐述了这两条路径的有效性。最后,展示如何将这两条路径的特征与特征融合模块以及BiSeNet的整体架构结合起来。

【空间路径】
我们提出了一种空间路径来保持原始输入图像的空间大小,并对丰富的空间信息进行编码。空间路径包含三个层。每一层包括一个步长为2的卷积,然后是批标准化[15]和ReLU[11]。因此,此路径提取原始图像1/8的输出特征贴图。由于特征地图的大空间尺寸,它编码了丰富的空间信息。图2(a)显示了结构的细节。

【上下文路径】
当空间路径编码丰富的空间信息时,上下文路径被设计为提供足够的感受野。在语义切分任务中,感受野对切分效果有重要影响。

  • 为了扩大感受野,一些方法利用了金字塔池模块[40]、金字塔型空洞池化[5,6]或“大内核”[26]。然而,这些操作的计算量大,内存消耗大,速度慢。
  • 考虑到大的感受野和高效的计算,我们提出了上下文路径。上下文路径利用轻量级模型和全局平均池[5,6,21]来提供大的感受野。
    • 在这项工作中,轻量级模型,如 Xception[8],可以快速对特征映射进行降采样,以获得大的感受野,从而编码高级语义上下文信息。
    • 然后,我们在轻量级模型的尾部添加了一个全局平均池,它可以为最大的接受域提供全局上下文信息。
    • 最后,我们结合了全局池的上采样输出特性和轻量级模型的特性。
      在轻量级模型中,我们部署了U形结构[1,25,35],以融合最后两个阶段的特征,这是一种不完整的U形风格。图2(c)显示了上下文路径的整体透视图。

【注意细化模块】
在上下文路径中,我们提出了一个特定的注意细化模块(ARM)来细化每个阶段的特征。如图2(b)所示,ARM使用全局平均池来捕获全局上下文,并计算注意向量来指导特征学习。这种设计可以细化上下文路径中每个阶段的输出特性。它无需任何上采样操作即可轻松集成全局上下文信息。因此,它需要的计算成本可以忽略不计。


网络架构

利用空间路径和上下文路径,我们提出了用于实时语义分割的BiSeNet,如图2(a)所示。

【双边结构】
我们使用预先训练好的Xception作为Context Path的主干,把带有步幅的三个卷积层作为 Spatial Path。然后,我们融合这两条路径的输出特征进行最终预测。它可以实现实时性和高精度的同时:

  • 实际计算方面:虽然空间路径具有较大的空间大小,但它只有三个卷积层。因此,它不是计算密集型的。对于上下文路径,我们使用一个轻量级模型来快速向下采样。此外,这两条路径同时计算,这大大提高了效率。
  • 网络的准确性方面:在本文中,空间路径编码了丰富的空间信息,而上下文路径提供了较大的感受野。它们相互补充以获得更高的性能。

【特征融合模块】
两条路径的特征在特征表示层次上是不同的。因此,我们不能简单地加权这些特点。由空间路径捕获的空间信息编码了大部分丰富的细节信息。此外,Context Path 的输出特征主要对上下文信息进行编码。换句话说,Spatial Path 的输出特征是低层次的,而Context Path 的输出特征是高层次的。因此,我们提出了一个特定的特征融合模块来融合这些特征。
鉴于特征的不同层次,我们首先将空间路径和上下文路径的输出特征连接起来。然后我们利用批量标准化[15]来平衡特征的规模。接下来,我们将连接的特征合并到特征向量中,并计算权重向量,如SENet[13]。该权重向量可以对特征重新加权,这相当于特征选择和组合。图2(c)显示了该设计的细节。

【损失函数】
在本文中,我们还利用辅助损失函数来监督我们提出的方法的训练:主损失函数来监控整个BiSeNet的输出 + 两个特定的辅助损失函数来监督上下文路径的输出,如深度监督[35]。
所有损失函数均为Softmax损耗,如等式1所示。使用参数α来平衡主损失和辅助损失的权重,如等式2所示。本文中的α等于1。联合损失使优化器能够更轻松地优化模型。
l o s s = 1 N ∑ i L i = 1 N ∑ i − l o g ( e P i ∑ j e P i )                          ( 1 ) loss=\frac{1}{N}\sum_{i}L_i=\frac{1}{N}\sum_{i}-log\left ( \frac{e^{P_i}}{\sum_je^{P_i}} \right )\;\;\;\;\;\;\;\;\;\;\;\;(1) loss=N1iLi=N1ilog(jePiePi)(1)其中 p 是网络预测的输出。
L ( X ; W ) = l p ( X ; W ) + α ∑ i = 2 K l i ( X i ; W )                        ( 2 ) L(X;W)=l_p(X;W) + \alpha \sum_{i=2}^Kl_i(X_i;W)\;\;\;\;\;\;\;\;\;\;\;(2) L(X;W)=lp(X;W)+αi=2Kli(Xi;W)(2)

4 实验结果

我们采用了一种改进的Xception模型[8],Xception39,用于实时语义分割任务。
我们介绍了:数据集和实现协议、速度策略、提出的方法的每个组成部分的影响,在Cityscapes验证集上评估所有性能结果。
最后,我们报告了在Cityscapes、CamVid和COCO Stuff数据集上与其他实时语义分割算法相比的准确性和速度结果。

  • 【Cityscapes】城市景观[9]是一个从汽车角度看的大型城市街道场景数据集。它包含2975个用于训练的精细注释图像和另外500个用于验证的图像。在我们的实验中,我们只使用精细的注释图像。为了进行测试,它提供了1525张没有真实背景的图像,以便进行公平比较。这些图像都具有2048×1024的分辨率,其中每个像素都被标注为预定义的19个类。
  • 【CamVid】CamVid[2]是另一个从驾驶汽车的角度来看的街道场景数据集。它总共包含701幅图像,其中367幅用于训练,101幅用于验证,233幅用于测试。图像分辨率为960×720,有11个语义类别。
  • 【COCO Stuff】COCO Stuff[3]扩充了流行的COCO[20]数据集的所有164000张图像,其中118000张用于培训,5000张用于验证,20000张用于测试开发,20000张用于测试挑战。它涵盖91个材料类和1个“未标记”类。

4.1 实现细则

  • 【网络】我们使用三个卷积作为空间路径,使用 Xception39模型作为上下文路径。然后利用特征融合模块对这两条路径的特征进行融合,预测最终结果。空间路径的输出分辨率和最终预测是原始图像的1/8。
  • 【训练细节】我们使用小批量随机梯度下降(SGD)[16],批量大小16,动量0.9,重量衰减1e−4.在培训中。与[5,6,21]类似,我们采用了“poly”学习速率策略,其中初始速率乘以 1 − i t e r m a x i t e r p o w e r 1-\frac{iter}{max_iter}^{power} 1maxiteriterpower 每次迭代的功率为0.9。初始学习率为2.5e−2.
  • 【数据扩充】在训练过程中,我们对输入图像使用均值减法、随机水平翻转和随机缩放来扩充数据集。量表包含{0.75,1.0,1.5,1.75,2.0}。最后,我们将图像随机裁剪成固定大小进行训练。

4.2 消融实验

  • 【基线】我们使用在ImageNet数据集[28]上预训练的 Xception39网络作为上下文路径的主干。然后我们直接向上采样网络的输出作为原始输入图像,如FCN[22]。我们将评估基本模型的性能作为基线,如表1所示。
  • 【U型消融实验】我们提出空间路径以提供足够的感受野,使用一个轻量级模型 Xception39作为上下文路径的主干,以快速向下采样。
    我们使用U形结构[1,25,35]来结合 Xception39网络中最后两个阶段的特征,称为 U-shape-8s,而不是标准的U形结构,称为 U-shape-4s。数字表示输出特性的下采样因子,如图2所示。
    使用U-shape-8s 结构的原因有两个:首先,U型结构可以恢复一定程度的空间信息和空间大小。其次,U-shape-8s比 U-shape-4s更快(如表2所示)。因此,我们采用U-shape-4s结构,将性能从60.79%提高到66.01%,如表2所示。
  • 【空间路径消融】如第1节所述,现有的实时语义分割任务的现代方法面临着空间信息丢失的挑战。因此,我们提出了一种空间路径来保持空间大小并捕获丰富的空间信息。空间路径包含三个步长为2的卷积,然后是批标准化[15]和ReLU[11]。这将性能从66.01%提高到67.42%,如表3所示。空间路径编码了丰富的空间信息细节。图3显示BiSeNet可以获得更详细的空间信息,例如一些交通标志。
  • 【注意力细化模块】为了进一步提高性能,我们专门设计了一个注意力细化模块(ARM)。
    此模块包含一个全局平均池,用于将输出特征编码为向量。然后,我们利用卷积、批量归一化[15]和ReLU单元[11]来计算注意向量。原始特征将被注意向量重新加权。对于原始特征,无需复杂的上采样操作即可轻松捕获全局上下文信息。表3给出了ARM的影响。
  • 特征融合模块:基于空间路径和上下文路径,我们需要融合这两条路径的输出特征。考虑到特征的不同层次,低层次为空间路径特征,高层次为上下文路径特征,我们提出了特征融合模块来有效地结合这些特征。首先,我们评估了这些特征和我们提出的特征融合模块的简单相加的效果,如表3所示。比较性能的差距依次解释了两条不同层次路径的特征。
  • 【全局平均池消融】我们期望上下文路径能够提供足够的感受野。虽然原始的Xception39模型在理论上可以覆盖输入图像的大部分区域,但我们仍然通过全局平均池进一步扩大了感受野[21]。这可以确保有效的感受野足够大。在本文中,我们在Xception39模型的尾部添加了全局平均池。然后,我们对全局平均池的输出进行采样,并将此特性与Exception39模型中最后一个阶段的输出进行总结,如DFN[36]。这将性能从67.42%提高到68.42%,这表明了该设计的效果,如表3所示。

4.3速度和精度分析

在本节中,我们首先分析我们算法的速度。然后,我们在Cityscapes[9]、CamVid[2]和COCO Stuff[3]基准上报告了与其他算法相比的最终结果。

  • 【速度分析】我们在不同的环境下进行实验以进行彻底的比较。
    FLOPS和参数表明了处理此分辨率图像的操作数。
    ------------------------------------------------------------------------------------------------------------------------
    表4. 我们基线模型的准确性和参数分析:Cityscapes验证数据集上的 Xception39和Res18。这里我们使用FCN-32s作为基础结构。FLOPS估计输入为3×640×360。

  • 【准确度分析】实际上,与其他非实时语义分割算法相比,我们的BiSeNet也可以获得更高的准确度。在这里,我们将展示城市景观[9]、CamVid[2]和COCO Stuff[3]基准的准确性结果。同时,为了确保我们的方法的有效性,我们还将其应用于不同的基础模型,如标准ResNet18和ResNet101[12]。接下来,我们将详细介绍一些训练细节。

    • 城市景观:如表7所示,我们的方法在不同的模型上也取得了令人印象深刻的效果。为了提高精度,我们随机选取1024×1024作物作为输入。在这里,我们只使用城市景观数据集的精细数据。图4给出了我们结果的一些可视化示例。
    • CamVid:表8显示了CamVid数据集的统计精度结果。对于测试,我们使用训练数据集和验证数据集来训练我们的模型。在这里,我们使用960×720分辨率进行培训和评估。
    • COCO Stuff:我们还在表9中报告了COCO Stuff验证数据集的准确性结果。在培训和验证过程中,我们将输入裁剪为640×640分辨率。为了公平比较,我们不采用多尺度测试。
显示全文