BiSetNetV2 语义分割论文解读

BiSeNetV2

Bilateral Network with Guided Aggregation for Real-time Semantic Segmentation

摘要

低级细节和高级语义都是语义分割任务的关键。然而,为了加快模型推理,目前的方法几乎总是牺牲低级细节,这将导致了相当大的精度下降。我们建议分别处理这些空间细节和分类语义,以实现高精度和高效的实时语义分割。为此,我们提出了一种在速度和准确性之间具有良好权衡的高效体系结构,称为双边分割网络(BiSeNetV2)。该架构包括:

(i)一个详细信息分支,具有宽通道和浅层来捕获低级细节并生成高分辨率的特征表示;

(ii)一个语义分支,具有狭窄的通道和深度层,以获得高级语义上下文。由于减少了信道容量和并采用了快速降采样策略,语义分支是轻量级的。

此外,我们设计了一个引导聚合层( Guided Aggregation Layer)来增强相互连接和融合这两种类型的特征表示。

此外,还设计了一种增强训练策略booster training strategy,可以在没有额外推理成本的情况下提高分割性能。广泛的定量和定性分析表明,我们提出的架构的性能优于一些最先进的实时语义分割方法。更确切的说,对于2,048×1,024的输入分辨率,我们在一张NVIDIA GeForce GTX 1080Ti卡上以156FPS的速度实现了72.6%的MIoU,比现有方法快得多,但我们获得了更好的分割精度。代码和训练有素的模型将被公开提供。

引言

语义分割的广泛应用

  • scene understanding 场景理解
  • autonomous driving 自动驾驶
  • human-machine interaction 人机交互
  • video surveillance 视频监控

FCN: fully convolutional network (FCN) 全连接卷积神经网络

以FCN为主干的网络架构主要有两种:

  1. Dilation Backbone:删除下采样操作,对相应的滤波器kernel进行上采样,以保持高分辨率特征表示,如图2(a)所示,
    • 扩展卷积很耗费时间并且移除下采样操作带来了很高的计算复杂度和内存占用( memory footprint)
  2. Encoder-Decoder: 具有自上而下和跳过的连接来恢复解码器部分中的高分辨率特征表示
    • 许多该架构中的连接对内存的访问成本(memory access cost)不友好。

这两种架构都是为了通用的语义分割任务而设计,同时很少关心推理速度和计算消耗inference speed and computational cost, 而且实时语义分割网络需要一种高效的推理结构

现有的加速模型的方法主要有两种:

  1. Input Restricting: 输入限制,在相同的网络架构下,更低的输入分辨率导致更少的计算成本,为了完成实时推理速度,许多算法尝试去限制输入的尺寸来减少模型整体的计算复杂度(computation complexity)
  2. Channel Pruning:通道裁剪,这是一种直接的加速方法,特别是在早期阶段。

尽管这两种方式都能在一定程度上提高模型的推理速度,但是他们牺牲了底层的细节信息和空间容量( spatial capacity ),这导致了精度的急剧下降。因此,为了同时实现模型的高效和高精度,利用特定的架构进行实时语义分割任务具有挑战性和重要意义。

我们观察到底层的细节信息和高层的语义对语义分割任务来说同等重要。在通常的语义分割任务中,深度网络和宽网络同时编码这两种信息(the deep and wide networks encode both information simultaneously)。然而,在实时的语义分割任务中,我们可以分别处理空间细节和分类语义(categorical),来达成模型精度和推理速度之间的权衡(trade-off)。

出于这个目的,我们针对实时的语义分割提出了一种双路径(two-pathway)架构,称为BiSeNetV2。一个路径被设计用来捕捉空间细节,有着宽通道、浅层的结构(个人理解:该网络分支的每一层的通道数较多,但是网络的层数较少),被称为细节分支。相比之下,另一个路径也被引入来提取分类语义,有着窄通道、深层的结构(个人理解:该网络分支的每一层的通道数较少,但是网络的层数较多),被称为语义分支。语义分支只需要一个很大的感受野来捕捉语义上下文,而细节信息可以由细节分支提供。因此,语义分支可以通过更少的通道数和一个快速的下采样策略来变得非常的轻量级。这两种特征表示类型都会被融合去构建一个更健壮和更全面的特征表示。以上的设计概念使得我们为实时语义分割网络设计了一种高效和有效的架构。

特别的,在本文的研究中,我们设计了一个引导聚合(Guided Aggregation)层来高效地融合两种类型的特征信息。为了在不增加推理复杂度的情况下进一步增加模型性能,我们提出了一种加强的训练策略,这种策略有着一系列的辅助预测头,这些预测头可以在推理阶段被丢弃。大量的定量和定性评估表明,我们提出的模型架构性能优于最先进的实时语义分割方法。

论文的主要贡献:

  • 我们提出了一种高效和有效的双路径架构,称为双边分割网络,用于实时语义分割,它分别处理空间细节和分类语义

  • 对于语义分支,我们设计了一种新的基于深度可分离卷积的轻量级网络,以增强感受野和并捕获丰富的上下文信息。

  • 引入了一种强化训练策略,在不提高推理成本的情况下进一步提高分割性能。

  • 我们的架构在城市景观的不同基准上取得了令人印象深刻的结果。更具体地说,我们得到了在城市景观上72.6%MIoU的结果,在一张NVIDIA GeForce GTX 1080 Ti卡上,测试速度为156 FPS。

    我们工作的初步版本发布在。我们对会议版本扩展如下:

  1. 我们简化了最初的架构,提出了一种高效、有效的实时语义分割体系结构。我们移除了最初版本中很耗时的cross-layer connections 跨层连接,来获得一种更加清晰和简单的网络架构
  2. 我们重新设计了整体的架构,使得网络的结构更加紧凑,我们还精心设计了各个组成部分。更确切地说,我们加深了细节路径来编码更多的细节信息。我们基于深度可分离卷积为语义路径设计了更轻量的组件。同时,我们还提出了一种有效的聚合层来增强这两条路径之间的相互连接
  3. 我们进行了全面的消融实验,以详细说明该方法的有效性和效率。

相关工作

近年来,图像语义分割技术取得了重大进展。在本节中,我们的讨论主要关注与我们的工作最相关的三组方法,即通用的语义分割方法、实时语义分割方法和轻量级架构。

Generic Semantic Segmentation

传统的语义分割方法基于阈值的选择、区域增长、超像素(super-pixel)、图算法采用手工制作的特性来解决这个问题。最近,新一代基于FCN的算法在不同的基准上保持着优越的性能。多种方法基于两种类型的主干网络:

(i) dilation backbone network; (基于扩张卷积也即空洞卷积的网络主干)

(ii) encoder-decoder backbone network.

一方面,dilation backbone network去除下采样操作,并对卷积滤波器进行上采样,以保持高分辨率的特征表示。由于扩张卷积的简单性,各种方法都开发不同的新颖的有效组件。

  • Deeplabv3(Chen等人,2017)设计了一个空洞空间金字塔池化(ASPP)来捕获多尺度上下文,
  • PSPNet(Zhaoetal.,2017)在扩张网络主干上采用了金字塔池化模块。
  • 同时,一些方法介绍了注意机制(attention mechanism),如自我注意(self-attention)(Yuan和Wang,2018;Fu等,2019;Yu等,2020)、空间注意(Zhao等,2018b)(spatial attention)和通道注意(Zhang等,2018a)(channel attention),以捕获基于扩张骨干的大范围上下文。

另一方面,encoder-decoder backbone network 添加了额外的自下而上的横向连接,以在解码器部分恢复高分辨率的特征图。

  • FCN和Hypercolumns(超列)(Hariharan等人,2015)采用跳跃连接skip connection来集成低级特征。
  • U-Net、SegNet 带有保存的池化索引(saved pooling indices)
  • RefineNet 采用多路径进行细化
  • LRR 采用逐步重建方式
  • GCN 采用大卷积核
  • DFN 采用通道注意力模块
  • HRNet 采用多分支来保持高分辨率

他们通过将这些模块合并到主干网络来恢复细节信息

这两种类型的主干网络都使用宽而深的网络来同时编码低级细节和高级语义。虽然这两种类型的主干网络都达到了最先进的性能,但大多数方法的推理速度都很慢。在本研究中,我们提出了一种新的和高效的架构来分别处理空间细节和分类语义,以实现分割精度和推理速度之间良好的权衡。

Real-time Semantic Segmentation

当越来越多的实际应用需要快速的交互和响应时,实时语义分割算法受到越来越多的关注。

  • SegNet: 采用一个小的网络结构和跳过连接来实现一个快速的速度。
  • E-Net: 从头开始设计一个轻量级的网络,并提供极高的速度
  • ICNet: 使用图像级联(image cascade)来加速算法
  • DLC: 采用级联网络结构来减少“容易区域(easy regions)”的计算
  • ERFNet: 采用残差连接和分解卷积(factorized convolutions)来保持效率和精度
  • ESPNet: 设计了一种有效的实时语义分割卷积空间金字塔展开卷积。
  • GUN: 使用一个引导的上采样模块来融合多分辨率输入的信息
  • DFANet: 重用特征来增强特征表示,并降低了复杂度。

虽然这些方法可以实现实时推理速度,但随着低级细节的丢失,它们极大地牺牲了准确性和效率。在这项工作中,我们考虑了低级别的细节和高级别的语义,以实现高精度和高效率。

Light-weight Architecture

随着组/深度卷积和可分离卷积的开创性工作,轻量级架构设计实现了快速发展,比如Xception(Chollet,2017)、MobileNet(霍华德等人,2017;桑德勒等人,2018)、ShuffleNet(Zhang等人,2018b;Ma等人,2018)等等。这些方法在分类任务的速度和准确性之间实现了有价值的权衡。在本研究中,我们在给定的计算复杂度、内存访问成本和真实推理速度情况下设计了一个实时语义分割网络。

BiSeNetV2的核心概念

我们的体系结构由一个详细分支(3.1节)和一个语义分支(3.2节)组成,它们由聚合层(3.3节)合并。在本节中,我们将演示我们的体系结构的核心概念,如图2©所示

Detail Branch 细节分支

详细信息分支负责空间细节,这是一种底层信息。因此,该分支需要丰富的channel capacity来编码丰富的空间详细信息。同时,由于细节分支只是关注于底层细节,我们可以为这个分支设计一个具有小步幅的浅层结构。总的来说,详细分支的关键概念是使用宽通道和浅层的空间细节。此外,该分支的特征表示空间尺寸大,通道宽。因此,最好不要采用残差连接,这增加了内存访问成本,降低了速度。

Semantic Branch 语义分支

与详细信息分支并行,语义分支被设计用来捕获高层语义。该分支的通道容量较低,而空间详细信息可以由详细信息分支提供。相比之下,在我们的实验中,语义分支通道数为细节分支通道数乘以比例λ(λ<1),这使得该分支具有轻量级。实际上,语义分支可以是任何轻量级的卷积模型。语义分支采用快速降采样策略,提高特征表征水平,快速扩大感受野。高级语义需要较大的接受域。因此,语义分支使用全局平均池(Liuetal.,2016)来嵌入全局上下文响应。

Aggregation Layer 聚合层

详细分支和语义分支的特征表示是互补的,其中一个分支不知道另一个分支的信息。因此,设计了一个聚合层来合并这两种类型的特征表示。由于快速降采样策略,语义分支输出的空间维数小于细节分支。我们需要对语义分支的输出特征映射进行上采样,以匹配细节分支的输出。

有几种融合信息的方式,例如,简单的总和、连接和精心设计的操作。我们考虑了不同融合方法的准确性和效率。最后,我们采用了双向聚合(bidirectional aggregation method)的方法,如图3所示

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-98zufv6m-1636274202684)(F:\研一\包含信息得文件\实习\论文\reource\语义分割\biSeNet\V2\模型架构.png)]

图注:双边分割网络的概述。主要有三个组成部分:紫色虚线框中的双路径主干,橙色虚线框中的聚集层,以及黄色虚线框中的助推器booster部分。双路径主干有一个详细分支(蓝色立方体)和一个语义分支(绿色立方体)。详细分支的三个阶段分别有C1、C2、C3通道。语义分支中相应阶段的通道可以通过因子λ(λ<1)进行轻量级处理。语义分支的最后一个阶段是上下文嵌入块的输出。同时,立方体中的数字是特征映射大小与输入分辨率的比。在聚合层部分,我们采用了双边聚合层。Down表示降采样操作,Up表示上采样操作,ϕ为Sigmoid函数,×表示为元素乘积(element-wise product)。此外,在助推器部分,我们设计了一些辅助分割头来提高分割性能,而没有任何额外的推理成本。

Bilateral Segmentation Network

我们的BiSeNet的概念是通用的,它可以用不同的卷积模型以及任何特定的设计来实现。主要有三个关键概念:

​ (i) 细节分支具有高通道容量,空间细节的感受野小;

​ (ii) 语义分支具有通道容量低,分类语义的感受野大。

​ (iii) 设计了一种有效的聚合层来融合这两种类型的表示。

在本小节中,根据所提出的概念设计,我们演示了我们的整体架构的实例化和其他一些特定的设计,如图3所示

细节分支

表1中的详细分支的实例包含三个阶段,每一层都是一个卷积层,然后是批量归一化和激活函数。每个阶段的第一层具有步幅stride=2,而同一阶段的其他层具有相同数量的卷积核和输出特征图大小。因此,该分支提取的输出特征图为原始输入的1/8。由于较高的通道容量(个人理解:这里的通道容量意思应该指的是一个通道中包含的像素数量),这个详细信息分支编码了丰富的空间细节。由于高通道容量和较大的空间维度,残差结构将增加内存访问成本(Maetal.,2018)。因此,这个分支主要遵循VGG net的设计思想来堆叠层数

语义分支

考虑到大的接受域和高效的计算,我们设计了语义分支。受轻量级识别模型的设计思想启发,例如,Xception(Chollet,2017)、MobileNet(Howard等人,2017;桑德勒等人,2018;霍华德等人,2019)、ShuffleNet(Zhang等人,2018b;Ma等人,2018)。语义分支的一些关键特征如下:

Stem Block

灵感来自(Szegedy等人,2017;Shen等人,2017;Wang等人,2018b),我们采用Stem Block作为语义分支的第一阶段,如图4所示。它使用两种不同的降采样方式来缩小特征表示。然后将两个分支的输出特性连接为输出。该结构具有高效的计算和有效的特征图表示能力。

注:Stem: 将输入图像用少量的convolution扫过,并调整分辨率度。

Context Embedding Block

如第3.2节所述,语义分支需要较大的感受野来捕获高级语义。灵感来自 (Yu et al., 2018b; Liu et al., 2016; Zhao et al., 2017; Chen et al., 2017)我们设计了上下文嵌入块。该块使用全局平均池和残差连接来有效地嵌入全局上下文信息,如图4所示

Gather-and-Expansion Layer 收集和扩展层

利用深度卷积的好处,我们提出了Gather-and-Expansion层。主要由三部分组成

注: 图(a)表示MobileNetV2中提出的瓶颈块,有两种,一种步长为1有残差连接,另一种步长为2没有残差连接,论文在这里用虚线表示第二种。图(b)、©是论文在该基础上提出的瓶颈块。

  1. 一个3×3卷积,有效地聚合特征响应并扩展到高维空间;
  2. 在扩展层的每个单独的输出通道上独立进行3×3的深度卷积;
  3. 以1×1的卷积作为投影层(projection layer),将深度卷积的输出投影到一个低通道容量的空间中。当stride=2时,我们采用两个3×3的深度卷积,这进一步扩大了感受野,和一个3×3的可分离卷积作为更快的路径。
  4. 最近的研究大量采用5×5可分离卷积来扩大感受野,在某些条件下,比两个3×3可分离卷积有更少的FLOPS。在这层,我们将可分离卷积中的5×5深度卷积替换为两个3×3深度卷积,它有更少的FLOPS和相同的感受野。

与MobileNetv2中的反向瓶颈结构相反,GE层还有一个3×3的卷积。然而,这一层也对计算成本和内存访问成本很友好,因为3×3的卷积在CUDNN库中特别优化了。同时,由于这一个层(个人理解:认为说的是卷积),GE层比反向瓶颈具有更高的特征表达能力。

Bilateral Guided Aggregation 双侧引导聚合

有两种不同的方式来合并两种类型的特征响应,即元素级的总和和连接。然而,这两个分支的输出都具有不同层次的特征表示。详细信息分支用于低级,而语义分支用于高级。因此,简单的组合忽略了这两种信息的多样性,导致更差的性能和难以优化。

基于观察结果,我们提出了双边引导聚合层来融合来自这两个分支的互补(complementary)信息,如图6所示。该层利用语义分支的上下文信息来Guide详细分支的特征响应。在不同的尺度引导下,我们可以捕获不同的尺度特征表示,它本质上编码了多尺度信息。同时,与简单的concat操作相比,这种引导方式使两个分支之间能够进行有效的通信(个人理解:这里的通信我认为是一种传播,然后其他的concat操作能否也应用本文的方法来替换,以达到更好的特征融合效果?

Booster Training Strategy 增强器训练策略

为了进一步提高分割精度,我们提出了一种增强器训练策略。顾名思义,它类似于火箭助推器:它可以在训练阶段增强特征表示,在推理阶段可以被丢弃。因此,它在推理阶段增加的计算复杂度很小。如图3所示,我们可以将辅助分割头(the auxiliary segmentation head)插入到语义分支的不同位置。在第5.1节中,我们分析了不同插入位置的影响。图7说明了分割头的详细信息。通过控制通道尺寸Ct,我们可以调整辅助分割头和主分割头的计算复杂度。

注: Upsample表示双线性插值。同时,1×1,3×3表示核大小,H×W×C表示张量形状(高度、宽度、深度),C表示信道数量,S表示上采样的比例,N为最终输出维数。

实验结果

在本节中,我们首先将介绍数据集和实现细节。接下来,我们将研究我们提出的方法的每个组件对城市景观验证集的影响。最后,我们报告了我们在与其他算法相比的不同基准测试上的最终精度和速度结果。

数据集。城市景观*(Cordtsetal.,2016)关注于从汽车的角度对城市街景的语义理解。数据集分为训练、验证和测试集,分别有2975,500张和1525张图像。在我们的实验中,我们只使用精细注释annotation的图像来验证我们所提出的方法的有效性。注释包括30个类,其中19个类用于语义分割任务。由于该数据集具有2,048×1,024的高分辨率,因此对实时语义分割具有挑战性。剑桥驾驶标签视频数据库(CamVid)(Brostowetal.,2008a*)是一个从驾驶汽车的角度来看的道路场景数据集。它包含701张从视频序列中提取的960×720分辨率的图像。在开创性的工作之后(Brostow等人,2008b;Sturgess等人,2009年;巴德里纳拉南等人,2017年),图像被分为367张用于训练,101张用于验证,233张用于测试。我们使用所提供的32个候选类别中的11个类的子集与其他方法进行公平比较。这些像素不属于这些类之一,这将被忽略。

COCO-Stuff(Caesar等人,2018)通过密集的东西注释( dense stuffff annotations.)增强了流行的COCO(Linetal.,2014)数据集的10K复杂图像。这也是实时语义分割的一个具有挑战性的数据集,因为它有更复杂的类别,包括91个东西和91个用于评估的东西类。为了进行公平的比较,我们遵循在(Caesaretal.,2018)中的分配原则:9K张图像用于训练,1K张图像用于测试。

训练

训练我们的模型采用“瞄准正常(kaiming normal)”初始化方式从头开始训练(Heetal.,2015)。

  • 我们使用具有0.9动量的随机梯度下降(SGD)算法来训练我们的模型。

  • 对于所有的数据集,我们采用了16个批处理大小。

  • 对于城市景观和CamVid数据集,权重衰减为0.0005的权重衰减,而COCOStuff数据集的权重衰减为0.0001。

    我们注意到权值衰减正则化只用于卷积层的参数,初始速率设置为5e−2,采用“poly”学习速率策略,其中初始速率乘以
    ( 1 −  iter  i t e r s max ⁡ ) p o w e r \left(1-\frac{\text { iter }}{i t e r s_{\max }}\right)^{p o w e r} (1itersmax iter )power
    每次迭代的功率为0.9。

    ,功率为0.9。此外,我们分别对Cityscapes数据集、CamVid数据集和COCO-Stuff数据集进行150K、10K、20K迭代训练。

    数据增强:

    为了增强,我们随机水平翻转,随机缩放,并随机将输入图像裁剪到一个固定的大小进行训练。随机尺度包含{0.75、1、1.25、1.5、1.75、2.0}。裁剪分辨率的城市景观为2048×1024,CamVid为960×720, COCO-Stuff分别为640×640。此外,增强后的城市景观输入将被调整为1024×512分辨率,以训练我们的模型。

推理

推断我们不采用任何评估技巧,如滑动窗口评估和多尺度测试,这可以提高准确性,但很耗时。在2048×1024分辨率的输入下,我们首先将其大小调整为1024×512分辨率以进行推理,然后将预测的大小调整为输入的原始大小。我们只用一个GPU卡测量推理时间,并重复5000次迭代以消除误差波动。

我们注意到调整大小的时间包含在推理时间测量中。换句话说,在测量推理时间时,实际输入大小为2048×1024。同时,对于城市景观数据集和CamVid数据集我们采用联合平均交点的标准度量(mIoU),而COCOStuff数据集的mIoU和像素精度(pixAcc)。

安装程序。我们基于PyTorch1.0进行了实验。推理时间的测量是在一个NVIDIA GeForce GTX 1080Ti上执行的,使用CUDA9.0,CUDNN7.0和TensorRT v5.1.51。

消融实验

5.1本节介绍消融实验,以验证我们的方法中各成分的有效性。在接下来的实验中,我们在城市景观(Cordtsetal.,2016)训练集上训练我们的模型,并在城市景观验证集上进行评估。

我们首先专门探讨了单个途径的影响。表2中的前两行说明了仅使用一个路径的分割准确度和计算复杂度

image-20211102190043973

注: CityScape上的消融。我们逐步验证每个组件的有效性。我们显示了分割精度(mIoU%),以及在空间大小输入2048×1024中测量的计算复杂度。符号:Detail是详细信息分支。Semantic是语义分支。BGA表示双侧引导聚集层。Booster意味着强化训练策略。OHEM是一个是在线困难的例子is the online hard example mining.。

单个路径。

详细分支缺乏足够的高级语义,而语义分支缺乏低层次的空间细节,这导致了不令人满意的结果。图8说明了对详细分支的空间细节的逐渐关注。表2中的第二组显示,两个分支的不同组合都优于唯一的一个路径模型。这两个分支都可以提供一个互补的表示,以实现更好的分割性能。仅语义分支和细节分支仅实现64.68%和62.35%。但是,通过简单的求和,语义分支可以为细节分支获得6%以上的改进,而细节分支可以为语义分支获得4%的增益。这一观察结果表明,这两个分支的表示都是互补的。

聚合方法

我们还研究了两个分支的聚合方法,如表2所示。为了实现有效和高效的聚合,我们设计了双边引导聚合层,它采用高级语义作为指导来聚合多尺度的低级细节。我们还展示了两个没有双边引导聚合层的变体作为朴素的聚合基线:两个分支的输出的求和和连接。为了进行更公正的比较,总和summation 和连接 concatenation的输入分别通过一个可分离的层。

图9展示了详细分支、语义分支和两个分支的可视化输出。这说明详细细节分支可以提供足够的空间细节,而语义分支可以捕获语义上下文。

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-JTdjlLj4-1636274202689)(F:\研一\包含信息得文件\实习\论文\reource\语义分割\biSeNet\V2\各种分支效果.png)]

表3说明了关于语义分支设计的一系列分析实验。

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-uyyXlURe-1636274202691)(F:\研一\包含信息得文件\实习\论文\reource\语义分割\biSeNet\V2\语义分支的消融.png)]

  • 通道容量比λ:λ的不同值可以控制语义分支中前两个阶段的信道容量。最后两个阶段的通道尺寸仍然是64和128。在这里,我们选择了λ=1/4。
  • 块分析:我们专门设计了GE层,并在stride =2时采用双深度卷积。第二行意味着我们使用一个5×5深度卷积,而不是两个3×3深度卷积。第三行表示我们用1×1卷积替换GE层的前3×3卷积层
  • 扩展比Expansion ratio:*image-20211102191726011*值的变化会影响语义分支的代表性能力。我们选择[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-RokiY4UF-1636274202697)(C:\Users\17852\AppData\Roaming\Typora\typora-user-images\image-20211102191749609.png)]=6来在精度和计算复杂度之间进行权衡。

语义分支的通道容量。

如第3.2节和第4.2节所述,语义分支负责高级语义,而不关心空间细节。因此,低通道容量的语义分支可以制作成为非常轻量级的网络,这是由λ的信道容量比所适应的。表3a显示了不同λ的详细比较实验。不同的λ对仅 Detail-only baseline有不同程度的改进。即使当λ=1/16时,语义分支的第一层也只有4个信道维度,这也带来了6%(62.35%→68.27%)改善基线。在这里,我们使用λ=1/4作为默认值

语义分支的Block设计。

在(Sandler等人,2018;Howard等人,2019)的开创性工作后,我们设计了一个聚集和扩展层*(Gather-and-Expansion Layer)*,如4.2节所讨论,如图5所示。主要的改进措施包括以下两方面:

  1. 我们采用一个3×3卷积作为Gather Layer(收集层),而不是一个MobileNetV2 反向瓶颈块中的逐点卷积(Sandleretal.,2018)
  2. 当步幅=2时,我们使用两个3×3深度卷积来代替5×5深度卷积

表3b显示了我们的块设计的改进。聚集和展开层可以扩大感受野,以有效地捕获高级语义。

**Expansion ratio of GE layer **GE层的扩张比

GE层中的前3×3卷积层也是一个扩展层,它可以将输入投影到一个高维空间。它在内存访问成本方面具有优势(Sandler等人,2018;Howard等人,2019)。扩张比image-20211102191726011可以控制该层的输出尺寸。表4c调查了不同image-20211102191726011的影响。令人惊讶的是,即使使用了image-20211102191726011=1,语义分支也可以将基线提高4%(62.35%→67.48%)的平均IoU,这验证了轻量级语义分支是高效和有效的。

Booster training strategy 加强培训策略

我们提出了一种强化训练策略来进一步提高分割精度,如第4.4节所述。我们在训练阶段将图7所示的分割头插入到语义分支的不同位置,这些位置在推理阶段被丢弃。因此,它们很少增加了推理阶段的计算复杂度,这类似于火箭的助推器。表4显示了不同位置插入分割头的效果。由此可见,强化训练策略可以明显提高分割精度。我们选择了表4第三行的配置,进一步在不牺牲推理速度的情况下提高了平均3%以上(69.67%73.19%→73.19%)。在此基础上,我们采用了在线引导策略 (the online bootstrapping strategy)(Wuetal.,2016)来进一步提高性能。

注: 我们可以将辅助分割头添加到不同的位置,作为语义分支的助推器。在这里,stage表示在s阶段后可以添加辅助分割头。stage5_4 and stage5_5分别表示上下文嵌入块*(Context Embedding Block)*之前或之后的位置。OHEM表示在线引导策略

Generalization Capability 通用性

在本节中,我们主要探讨我们提出的体系结构的泛化能力。首先,我们在表5中的模型研究中调查了一个更广泛的模型和更深层次的模型的性能。

image-20211102194543929

注: 泛化到大型模型。我们从两个方面扩展了我们的模型:(i)更宽的模型;(ii)更深的模型。

(a)更广泛的模型:不同的α值可以控制我们的架构的信道容量。

(b)更深的模型:d的变化值表示模型的层数。

接下来,我们用其他一些一般的轻量级模型替换语义分支,以探索表6中的兼容性能力(compatibility ability)

表格5展示了有着不同的宽度因子α 和不同深度因子d的更广泛的模型的的语义分割准确度和计算的复杂度。根据实验结果,我们选择α=2.0和d=3.0来构建我们的大型体系结构,称为BiSeNetV2-Large,可达到75.8%的mIoU和GFLOPs。

性能评估

在本节中,我们将我们的最佳模型(BiSeNetV2和BiSeNetV2-Large)与其他最先进的方法在三个基准数据集上进行比较:城市景观、CamVid和COCO-Stuff。

cityscape

我们展示了所提出的BiSeNetV2在城市景观测试集上的分割精度和推理速度。我们使用包含2048×1024输入的训练集和验证集来训练我们的模型,该模型首先被调整为1024×512分辨率。然后,我们在测试集上评估分割的精度。推理时间的测量是在一个NVIDIA GeForce 1080 Ti卡上进行的。

表7报告了我们的方法和最先进的方法的比较结果。

第一组是非实时方法,包括CRF-RNN(郑等人,2015)、LRR(陈等人,2015)、FCN-8S(长等人,2015)、扩张10(余和科尔顿,2016)、LRR(吉希亚西和F奥尔克斯,2016)、陈等人,2016)、FRRN(Pohlen等人,2017)、林等人,2017)、DUC(王等人,2018a)、PSPNet(Zhao等人,2017)。

实时语义分割算法列入第二组,包括ENet(Paszke等,2016)、SQ(Tremel等,2016)、ESPNet(Eehta等,2018)、ESPNetV2(Mehta等,2019)、ERFeta等,2018)、Fast-SCNN(Poudel等,2019)、ICNet(Zhao等,2018a)、DA等(李等,2019a)、DFANet(李等,2019b)、GUN(Mazzini,2018),SwiftNet(Orsic等人,2019)、BiSeNetV1(Yu等人,2018a)。

第三组是我们的不同复杂程度的方法。

如表7所示,我们的方法在156FPS下平均达到72.6%,在47.3FPS下平均达到75.3%,这是精度和速度之间最先进的权衡。这些结果甚至比表7第二组中的几种非实时算法更好。我们注意到,许多非实时的方法可能会采用一些评价技巧,如多尺度测试和多作物评价,这可以提高准确性,但很耗时。因此,我们出于速度的考虑不采用这种策略。为了更好地查看,我们在图1中说明了性能和速度之间的权衡。为了突出我们的方法的有效性,我们还在图10中展示了在城市景观上的BiSeNetV2的一些可视化例子

image-20211102195011826

表7: 在城市景观数据集上与最先进的网络的比较。我们使用2048×1024分辨率输入来训练和评估我们的模型,该模型在模型中被重新调整为1024×512。推理时间是在一个NVIDIA GeForce 1080 Ti卡上测量的。符号:γ是与原始2048×1024分辨率对应的降采样比backbone表示在ImageNet数据集上预先训练过的主干模型。“-”表示这些方法不报告相关的结果。DFANet A和DFANet B采用1024×1024输入大小,并使用优化的深度卷积来加快速度。

CamVid.

表8显示了CamVid数据集上的统计精度和速度结果。在推理阶段,我们使用训练数据集和验证数据集来使用960×720分辨率输入来训练我们的模型。

我们的模型与一些非实时算法进行比较,包括SegNet(巴德里纳拉南等人,2017)、Deeplab(陈等,2015)、RTA(黄等,2018)、Dilate8(余和科尔顿,2016)、PSPNet(赵等,2017)、VideoGCRF(钱德拉等、2018)和DenseDecoder(比林斯基和普里萨卡里,2018),以及一些实时算法,包括ENet(Paszke等人、2016)、ICho等人、2016)、ICNet(赵等人、2018a)、DABNet(2019a)、DFANet(李等、)SwiftNet(Orsic等人,2019b),BiSeNetV1(Yu等人,2018a)。BiSeNetV2比其他方法实现的推理速度要快得多。除了效率外,我们的准确性结果也优于这些工作。此外,我们还研究了训练前数据集对CamVid的影响。表8的最后两排显示,在城市景观上的预训练可以大大提高CamVid测试集上的MIoU在6%以上。

image-20211102201105023

表8在CamVid数据集上与最先进网络的比较。使用960×720输入,我们评估了分割精度和相应的推理速度。符号:主干是指在额外数据集上预先训练的骨干模型,如ImageNet数据集和城市景观数据集。∗ 表示这些模型是在城市景观上预先训练过的。†表示模型从头开始训练。

COCO-Stuff。

我们还在表9中报告了COCO-Stuff验证数据集的准确性和速度结果。在推理阶段,我们将输入填充到640×640分辨率中。为了进行公平的比较(Long等人,2015;Chen等人,2016;Zhao等人,2017,2018a),我们不采用任何耗时的测试技巧,如多尺度测试和翻转测试。即使在这个数据集中有更复杂的类别,与先驱工作相比,我们的BiSeNetV2仍然执行更有效,并达到相当的准确性。

image-20211102200746214

注: 表9与最先进的网络的比较。我们的模型使用640×640分辨率的输入进行训练和评估。符号:backbone 是在ImageNet数据集上预先训练的主干模型。

结论

我们观察到语义分割任务既需要低级细节,也需要高级语义。我们提出了一种新的架构来分别处理空间细节和分类语义,称为双边分割网络(BiSeNetV2)。BiSeNetV2框架是一个通用的体系结构,它可以通过大多数卷积模型来实现。我们的BiSeNetV2实例化实现了分割精度和推理速度之间的良好权衡。我们希望这种通用体系结构BiSeNetV2能够促进语义分割的进一步研究。

论文的编辑问题

  • 第7页左边小序号错误,缺少(ii)???
  • 第7页左边倒数第14行,“When stide”,应该指的是步长Stride = 2,图片中第11行
  • 第10页左边倒数第6行,“Table 4a” 应改为 “Table 3a”
  • 第11页左边倒数第6行,“Table 4b” 应改为 “Table 3b”
  • 第11页右边图片往下数第四行,“Table 4c” 应改为 “Table 3c”

你可能感兴趣的:(machine,learning,深度学习,计算机视觉,人工智能)