安大、中科院 、 中科大 提出 DSNet | 利用膨胀卷积提升语义分割性能,推理速度为 179.2 FPS!

技术

点击下方卡片,关注 「AI视界引擎」 公众号

picture.image

膨胀卷积被用作一种在语义分割任务中增加感受野的方法。然而,在先前的语义分割工作中,它很少被用于模型的浅层。

作者重新审视了在现代卷积神经网络(CNNs)中膨胀卷积的设计,并证明使用大核来进行膨胀卷积的概念可能是一个更强大的范式。

作者提出了三条指导原则,以更有效地应用膨胀卷积。遵循这些原则,作者提出了DSNet,一个双分支CNN架构,它在模型的浅层中融入了膨胀卷积,并且几乎整个编码器在ImageNet上进行预训练以获得更好的性能。

为了证明作者方法的有效性,作者的模型在ADE20K、Cityscapes和BDD数据集上实现了准确性和速度之间新的最佳权衡。

特别是,DSNet在ADE20K上达到40.0%的mIOU,推理速度为179.2 FPS;

在Cityscapes上达到80.4%的mIOU,速度为81.9 FPS。

源代码和模型:https://github.com/takaniwa/DSNet。

1 Introduction

语义分割是计算机视觉中的基本任务,需要将输入的每个像素预测为相应的类别[22]。它在自动驾驶、机器人导航和医学图像分析等众多领域都有广泛应用。

近来,卷积神经网络(CNNs)在分割任务上遭遇到了来自视觉 Transformer 的重大挑战。无论是在高精度分割任务还是实时语义分割任务中,VTs都展示了优越的性能。RepLKNet[13]重新思考了VTs在计算机视觉领域取得显著成功的原因。RepLKNet提出,在VTs的架构中,感受野[27]的有效范围比注意力的形式更为关键。因此,他们提出了一种使用大核的新方法,使模型能够获得大的有效感受野,这导致浅层和深层获得的表示之间更加相似。RepLKNet实现了与VTs相当或更好的性能。

图1:在Cityscapes验证集上参数与mIOU的关系。作者的模型以红色表示。作者在参数和精度之间实现了最先进的平衡。

picture.image

RepLKNet[13]启发作者将其设计理念扩展到孔洞卷积[45]。从理论上讲,卷积可以实现接近大核的感受野,使它们成为轻量级的替代解决方案。与RepLKNet类似,在网络浅层堆叠孔洞卷积也可能产生有希望的结果。然而,在RepLKNet论文的补充实验中,孔洞卷积没有达到预期的理论结果。尽管许多先前研究关注了孔洞卷积,但它们要么没有在模型的浅层使用孔洞卷积,要么未能充分利用ImageNet预训练来进一步提高性能。

是什么因素导致了这种现象?从网络的浅层开始堆叠孔洞卷积可能会产生什么效果?

为了回答这些问题,作者重新思考了CNN中孔洞卷积的设计。通过一系列实验,从单分支网络到双分支网络,从孔洞率为2到孔洞率为15,作者得出了孔洞卷积的三个经验性指导原则:

  • 不要仅使用孔洞卷积。将孔洞卷积与密集卷积结合使用可能是一个更好的选择。
  • 避免“孔洞灾难”。为了实现更高的准确度,选择合适的孔洞率至关重要。
  • 适当的融合机制。使用适当的融合机制整合不同层次的信息可以提高模型的性能。

基于以上原则,作者手动设计了一个用于语义分割的新型双分支网络,即同分辨率双分支网络(DSNet)。这个网络在实时语义分割和高精度语义分割方面都展示了优越性。

作者还提供了消融实验来证明每个模块的功能。本文的主要贡献如下:

  • 作者重新审视了CNN中孔洞卷积的设计,并探索了孔洞卷积的三个经验性指导原则。基于以上原则,作者提出了一种新型的双分支网络。
  • DSNet在ADE20K、Cityscapes和BDD上实现了精度与速度之间新的最先进权衡。DSNet在不同数据集上同时超过了基于Transformer和基于卷积神经网络的实时模型性能。

2 Related Work

High-Precision Semantic Segmentation

在早期阶段,语义分割方法采用了编码器-解码器[2]模型,如FCN[26],UNet[31],SegNet[2]。这些模型通过连续下采样获取高级特征表示,然后通过上采样或反卷积恢复分辨率。然而,常规编码器最后层的输出缺乏空间细节,不能直接用于预测分割 Mask 。

如果只移除了分类 Backbone 网络的下采样,有效感受野变得太小,无法学习高级语义信息。随着对准确度需求的增加,许多学者开始关注设计模型的编码器。

DeeplabV3[6]移除了分类 Backbone 网络最后两个阶段的下采样,并使用扩张卷积来建立像素之间的长距离连接。HRNet[37]在 Backbone 网络中保留了具有不同分辨率的平行分支。

RepLKNet[13]使用大卷积核来获得有效的感受野[27]并采用结构重参化[11, 12]来解决过于平滑的大卷积核难以平衡细节的问题。

Real-Time Semantic Segmentation

BiseNet系列[43, 44]在主干网络中使用两条路径(空间路径和上下文路径),并在最后将它们合并,以达到速度和准确度之间的平衡。SFNet[23, 24]提出了一种流对齐模块(FAM)来对齐相邻 Level 的特征图以实现更好的融合。[29, 41]遵循BiseNet系列的设计理念。

DDRNet[29]采用双分支融合,具有双边融合,并在最后添加了一个上下文模块。

PIDNet[41]提出将两个分支扩展到三个分支:空间路径(P路径)、上下文路径(I路径)和边界路径(D路径),使用PID控制器[1]的概念。

DDRNet和PIDNet目前在Cityscapes[9]上是表现最好的实时语义分割模型。

最近,许多基于Transformer的轻量级分割方法被提出。TopFormer[48]提出了一种将_CNN_和_VtT_结合的新架构。RTFormer[38]引入了一种新的网络架构,充分利用全局上下文,并通过深度注意力提高语义分割的效果,同时不牺牲效率。SeaFormer[36]引入了一种注意机制,利用挤压增强轴向和细节增强特征,从而构建了一种称为挤压增强轴向Transformer(SeaFormer)的新框架,专为移动计算领域的语义分割而设计。TopFormer、RTFormer和SeaFormer目前在ADE20K[50]上是最佳的实时方法。

3 Method

为了回答第1部分的问题,作者重新审视了在CNN中 atrous 卷积的设计,并总结了三个经验性指导原则。

不仅仅使用atrous卷积. 许多以前的工作,如DeepLab系列[4, 5, 6]和Auto-DeepLab[25],对于在编码器的浅层使用atrous卷积持犹豫态度。一方面,这可能导致“网格效应”[39, 40]。

就像大核[13]一样,另一方面,atrous卷积在保持上下文和细节信息之间的平衡方面存在困难,这可能会影响模型的性能。

受到BiseNet和DDRNet[29, 43]的启发,作者提出在使用atrous卷积的同时结合密集卷积来保持细节信息,以消除上述缺点。从表1中可以观察到,当仅使用atrous卷积时,网络在分类和分割任务上的准确度相对较低。

然而,一旦采用这种方法,网络的准确性显著提高。

picture.image

避免“atrous灾难”. 尽管在分割任务中表现出良好的性能,RegSeg[17]在其网络主干中重度依赖具有14的atrous率的atrous卷积。这种限制阻碍了其在ImageNet[32]预训练时实现更好的初始化效果的能力。这限制了其在分割任务中的进一步改进。在ImageNet分类任务中,典型的输入图像大小为。

大atrous率会导致atrous卷积覆盖超出未填充特征图的范围并造成过大填充区域,这可能会限制模型从ImageNet学习更好的特征表示的能力。从表1中可以观察到,对于具有大atrous率(例如,d = 15)的atrous卷积,尽管在没有在ImageNet上进行预训练的分割任务中表现出轻微优势,但在在ImageNet上进行预训练之后,其分割性能显著落后于使用较小atrous率的模型。作者将这种现象称为“atrous灾难”。令人惊讶的是,尽管atrous率为12的atrous卷积可以与从ImageNet下采样8倍的特征图像素逐个对应,但“atrous灾难”仍然发生。

作者将这一现象归因于过大的填充区域,这减少了atrous卷积的实际有效范围,从而影响模型在ImageNet上的预训练效果。

因此,如果希望通过在ImageNet上进行预训练来实现语义分割的更高准确度,选择合适的atrous率至关重要。为了在语义分割中进一步扩大感受野,可以考虑在网络主干外部整合上下文模块[6, 29, 49],这在使用上提供了更大的灵活性。

适当的融合机制. 通过诸如逐元素加法或拼接等操作简单地将不同层次的信息合并是不够的。这些操作只提供了特征图的固定线性聚合,并且没有明确确定这种组合是否适合特定目标。

适当的融合机制可以有效地指导两个分支的融合,增强不同层次特征之间的信息传递,并提高模型的表示能力。许多以前的研究[10, 30, 41, 44]已经表明,与简单的逐元素加法或拼接相比,使用适当的融合机制可以实现更好的结果,作者在第4.3节的实验中进一步证明了这一结论。

DSNet: A novel Dual-Branch Network

遵循第3.1节中的三条指导原则,作者手动设计了一个双分支模型,模型架构图如图2所示。

picture.image

  • 作者将网络分为两个分支,即空间分支和上下文分支。上下文分支主要由扩张卷积组成,具体实施如第3.3节中的MFACB,而空间分支由的密集卷积组成。
  • 为了充分整合两个分支的信息,作者在空间分支和上下文分支之间使用了第3.4节中的MSAF进行了三次水平连接。
  • 网络的主干部分主要使用扩张率较小的扩张卷积,如2、3和5,以减轻“扩张灾难”。此外,主干网络在ImageNet上进行预训练,以增强特征表示能力。
  • 作者在第3.5节中提出了一种名为SPASPP的上下文模块,在分割任务中插入到主干网络外部,以快速增加感受野。

由于两个分支具有相同的分辨率,作者将其称为“相同分辨率的双分支网络”(DSNet)。作者简单设计了两个版本:DSNet是轻量级版本,具有快速推理能力,而DSNet-Base则具有高精度。DSNet-Base是一个更深的版本,与DSNet相比,具有更多的通道。

MFACB: Learning of different scales.

为了在不同尺度上提高感知能力,受到STDC[14]的启发,作者引入了一种新的用于语义分割的编码器模块,命名为“多尺度融合扩张卷积块”(MFACB)。如图3所示,MFACB由三个扩张卷积层组成,每个层使用不同的扩张率来扩大感受野。在三次卷积操作之后,中间的特征图通过拼接,并使用卷积进行通道压缩。最后,压缩后的特征图与输入特征图进行残差连接。

picture.image

通过观察表2,作者可以更深入地了解这个模块的作用。在第一个具有扩张率[2, 2, 2]的MFACB模块之后,三个中间特征图的感觉野分别是、和。随后,通过拼接和卷积,输出特征图同时聚合了这三个不同尺度的感受野。在第二个MFACB模块中的拼接和融合操作之后,由于同样的原因,当前层的感受野尺度开始增加。在主干网络中使用MFACB使得模型能够有效地学习不同尺度上的语义信息。

picture.image

MSAF: Balancing the Details and Contexts

Short-Cut 增强了不同层次或尺度特征图之间的信息传输,从而提高了模型的表示能力。遵循第3.1节中的第三条建议,作者引入了一种新颖的“多尺度注意力融合模块”(MSAF),旨在无需压倒它们的情况下,在两个不同层次分支之间实现选择性学习。主要思想是让网络根据损失来学习特征权重,允许模型从不同尺度选择性地融合信息。这个模块主要可以分为两部分:“多尺度注意力”(MSA)和“多尺度注意力融合”模块(MSAF)。

多尺度注意力 (MSA)。如图4所示,MSA的主要目的是学习权重作为不同层次分支融合的基础。MSA模块主要分为两部分:区域注意力和像素注意力。为了更详细地解释MSA,作者将通道数、特征图的宽度和高度分别表示为C、W和H。

picture.image

  1. _区域注意力_:区域注意力衡量特征图中不同区域的重要性。作者认为在使用注意力时考虑感受野是必要的。为了方便,作者将特征图划分为相同大小的块,如通道的,4个块的,以及16个块的。在DSNet中,作者将特征图划分为大小相等的,,和的区域。以为例,作者首先对特征图进行平均池化以获得,然后进行通道压缩和扩展以获得。为了与像素注意力兼容,作者将其 Reshape 回。区域注意力的数学公式可以描述为方程2。与SE注意力[20]类似,通道压缩和扩展的目的是降低计算复杂性和增强非线性。_GONV_代表通道扩展和压缩的操作。

  2. _像素注意力_:像素注意力衡量每个像素的重要性。这个模块不需要池化和 Reshape 。如方程3所示,作者直接对进行通道压缩和扩展以获得。出于同样的原因,可以衡量每个像素的重要性。

多尺度注意力融合模块。作者通过叠加像素注意力和区域注意力来获得特征图中不同位置的权重,推导权重的公式可以由方程4表示。如图4所示,作者最终通过元素乘法融合两个分支。区域注意力的数学公式可以描述为方程5。

SPASPP: Further extracting context information

图5:SPASPP模块的说明。

picture.image

作者提出了一个新的模块,以进一步从特征图中提取上下文信息。图示了串行-并行孔洞空间金字塔池化(SPASPP)的内部结构。与ASPP[6]的完全并行结构不同,作者堆叠了几个的孔洞卷积。随后,作者将通过堆叠孔洞卷积获得的中间特征图与全局池化后的上采样特征图进行连接。堆叠孔洞卷积并进行连接是为了在这个预训练的ImageNet Backbone 网络之外的上下文模块中快速增加感受野,同时也获取不同尺度上的上下文信息。然后,作者使用卷积压缩通道,并与输入进行残差连接。这提供了更丰富的上下文信息并进一步扩大了感受野,因此在需要大感受野的任务中表现更佳。表3展示了与ASPP相比,SPASPP可以在不增加额外卷积层的情况下提供更丰富的上下文信息,从而保持了与ASPP基本相当的速度。

picture.image

4 Experiment

Dataset

作者进行了在ADE20K、Cityscapes和BDD数据集上的分割实验。ADE20K[50]数据集包含150个类别,共有25,000张图像,分为20,000张用于训练,2,000张用于验证,3,000张用于测试。在测试期间,所有图像都被调整为大小。Cityscapes[9]是一个公开可用的资源,专为语义分割任务设计。它包含2975张精细标注的图像用于训练,500张用于验证,以及1525张用于测试。

图像分辨率为,这对实时模型来说是具有挑战性的。这里仅使用精细标注的数据集。BDD[46]数据集是一个为自动驾驶应用量身定制的综合性存储库,包含19个不同的类别。它包括一个7000张图像的训练集和一个1000张图像的验证集,每张图像的大小为像素。

Implementation Details

训练. 在ImageNet[32]上进行预训练后,作者在语义分割任务上的训练协议与之前的工作[17, 23, 24, 29, 41]几乎相同。作者使用带有0.9动量的SGD优化器。"poly"学习率策略作为通常做法被采纳以衰减初始学习率。数据增强包括随机水平翻转,随机调整大小,其缩放范围为[0.4, 1.6],以及随机裁剪。对于DSNet,Cityscapes、ADE20K、BDD的迭代次数、初始学习率、权重衰减、裁剪大小和批量大小可以总结为[120k, 0.01, 0.0005, , 24],[150k, 0.02, 0.0001, , 32],[87k, 0.01, 0.0005, , 24], respectively. 对于DSNet-Base,Cityscapes、ADE20K、BDD的迭代次数、初始学习率、权重衰减、裁剪大小和批量大小可以总结为[120k, 0.01, 0.0005, , 32],[160k, 0.02, 0.0001, , 32],[108k, 0.01, 0.0005, , 16], respectively.

推理. 作者在一个包含单个RTX 4090、PyTorch 1.10、CUDA 11.3、cuDNN 8.0和Ubuntu环境的平台上测量推理速度。遵循[29, 41],作者将批量归一化集成到卷积层中,并将批量大小设置为1以测量推理速度。

特别速度比较. 特别地,为了便于与基于mmcv框架[8]开发的一些模型进行速度比较,作者另外使用了RTX3090来推理速度,因为将作者的模型移植到mmcv框架,或者将基于mmcv框架的模型移植到作者的环境,都会产生显著的时间开销。基于mmcv框架的模型的速度可以在SCTNet[42]中找到。

Ablation Study

双分支网络中的MSAF。 作者将不同的融合方法应用于模型的三个横向连接。实验结果如表4所示。与逐元素相加(Add)相比,这三种注意力融合方法在分割任务上均表现出优势,在几乎没有速度损失的情况下提高了准确性。特别是,作者提出的多尺度融合模块在分类和分割任务上均表现出卓越的性能,在Imagenet1k分类任务上提高了0.9%,在Cityscapes上提高了0.7%。与AFF和iAFF[10]相比,它仍然实现了近0.4%的准确度提升。这一实验评估了第3.1节中提出的关于使用扩张卷积的第三条建议。

picture.image

MFACB的效率。 为了证明MFACB的有效性,作者进行了一个简单的比较实验。作者采用了两种不同的策略,分别如表5中的EXP 1和EXP 2所示。为了确保实验的公平性,作者采用了相同的训练策略,使用两块RTX 4090 GPU,批量大小为12,两个实验都进行了50,000次迭代。从表中可以看出,在相同的扩张率和相同数量的扩张卷积下,MFACB比BasicBlock[19]实现了更好的性能。这进一步强化了作者决心在上下文分支中使用MFACB。

picture.image

SPASPP的效率。 作者将SPASPP与其他上下文提取模块进行了比较,包括扩张空间金字塔池化(ASPP)[6]和深度聚合金字塔池化模块(DAPPM)[29]。为了达到更高的 Baseline ,作者没有减少DAPPM的中间通道数。从表6中可以看出,本文提出的SPASPP将准确度从77.3%提升到了80.4%,推理时间仅增加了1-2毫秒。此外,SPASPP在几乎没有速度损失的情况下,比ASPP提高了0.7%的准确度。**kwargs) -> None: ...

picture.image

Comparison

ADE20K. 近期,大多数基于CNN的实时分割方法主要关注Cityscapes数据集,而对ADE20K数据集的关注较少。最近的一项工作[42]认为,由于ADE20K收集了超过150个类别的众多图像,对轻量级CNN模型构成了相当大的挑战。然而,从表7中作者可以看到,与其他CNN模型相比,作者在ADE20K上取得了不错的结果。实验结果表明,DSNets在推理速度和准确度之间取得了最佳的平衡。特别是,DSNet的准确度高于SegFormerB0、TopFormer-B和RTFormer-S,分别超过它们2.6%、0.8%和3.3%。此外,DSNet的运行速度大约是这些模型的两倍。DSNet-Base在准确度上超过了SeaFormer-B和SegNext-T,同时保持了更快的速度。与RTFormer-B相比,DSNet-Base仍然保持了1.3%的准确度优势。

picture.image

BDD. 对于BDD[46]数据集,只有SFNet和SFNet-Lite可以与作者的方法进行比较。SFNet-Lite[24]和SFNet[23]是目前实时BDD语义分割领域的最先进技术。作者可以从表8中观察到实验结果。

picture.image

作者在实时BDD语义分割上取得了新的最先进成果。具体来说,作者以更高的速度实现了比SFNet(ResNet18)和SFNet-Lite(ResNet18)高2.2%的准确度。与SFNet家族的更快版本相比,作者在速度仅降低0.3ms的情况下,实现了比SFNet-Lite(STDC-2)高3.4% mIoU的准确度。此外,DSNet-Base在非实时领域取得了最高的准确度。

Cityscapes. 以往基于CNN的实时工作将Cityscapes作为标准基准。

picture.image

从表9中可以观察到,作者的方法在实时和高准确度之间取得了新的最先进平衡。特别是,DSNet在保持实时性能的同时实现了最高的准确度。与SeaFormer-B-Seg100、AFFormer-B-Seg100和SegNext-T-Seg100相比,DSNet在保持更快的推理速度的同时,分别实现了mIOU准确度提高2.7%、1.7%和0.6%。与最先进的CNN模型如SFNet、DDRNet23和PIDNet-M相比,DSNet仍然取得了最高的准确度。从表10中进一步观察,可以看出DSNet-Base与其他高准确度模型如HRNet和DeepLabV3相比仍然具有高度竞争力。

picture.image

5 Conclusion

本文重新审视了孔洞卷积的应用,并基于几条简单指导原则提出了一种新的双分支网络,该网络具有相同的分辨率。DSNet在三个大型数据集上取得了令人鼓舞的结果。

由于作者的方法是实时的,将其应用于实际应用中可以带来显著的好处。

此外,为了进一步提高准确性,可以考虑在上下文分支中将孔洞卷积的大小替换为或更大,这可能导致接受域更大。

参考

[1].DSNet: A Novel Way to Use Atrous Convolutions in Semantic Segmentation.

点击上方卡片,关注 「AI视界引擎」 公众号

0
0
0
0
关于作者
关于作者

文章

0

获赞

0

收藏

0

相关资源
拥抱云原生,下一代边缘云云基础设施 | 第 11 期边缘云主题Meetup
《拥抱云原生,下一代边缘云云基础设施》郭少巍|火山引擎边缘云边缘计算架构师
相关产品
评论
未登录
看完啦,登录分享一下感受吧~
暂无评论