RDRNet 如何优雅地实时语义分割 ?

image.png

在自动驾驶和医学图像等应用中,语义分割起着关键作用。尽管现有的实时语义分割模型在准确性和速度之间取得了不错的平衡,但它们的多路径块仍然影响了整体速度。

为了解决这个问题,本研究提出了一个可重参化的双分辨率网络(RDRNet),专门用于实时语义分割。

具体来说,RDRNet采用双分支架构,在训练期间使用多路径块,并在推理期间将它们重参化为单路径块,从而同时提高准确性和推理速度。

此外,作者提出了一个可重参化的金字塔池化模块(RPPM),以增强金字塔池化模块的特征表示,同时不增加其推理时间。

在Cityscapes、CamVid和Pascal VOC 2012数据集上的实验结果表明,RDRNet在性能和速度上都优于现有的最先进模型。

代码可在https://github.com/gyyang23/RDRNet获取。

Introduction

语义分割是计算机视觉领域中的一个关键任务,它需要将图像中的每个像素分配给一个特定的语义类别。这项技术在各种应用中都发挥着重要作用,包括自动驾驶[1],医学图像分析[2]和环境监测[3]。随着深度学习技术的发展,语义分割模型的性能得到了极大的提高。然而,仍有一些挑战需要解决,比如模型无法快速分析图像。这一限制阻止了模型直接部署到自动驾驶等下游任务中。因此,对语义分割算法的进一步研究和改进仍然非常重要。

为了满足实时或移动设备的需求,过去提出了许多实时语义分割模型[4, 5, 6, 7, 8]。这些模型的特点是参数较少,计算量减少,推理速度快。最早的模型之一,ERFNet[4],通过使用1D卷积核和跳跃连接重新设计ResNet[9]块,实现了参数和计算量的减少。然而,ERFNet的编码器-解码器架构限制了它从高分辨率特征中有效学习空间信息的能力。针对这一限制,BiSeNetV1[5]引入了双分支架构,其中一个分支专注于空间细节学习,另一个分支专注于深度语义信息。尽管BiSeNetV1&V2[5, 6]在速度和精度之间取得了良好的平衡,但DDRNet[7]和PIDNet[8]的出现进一步提高了模型的 speed和accuracy,后者甚至在准确性上匹配或超过了高性能分割模型。

尽管这些模型[7, 8]在速度和精度上取得了成功,但网络架构中使用残差块[9]无疑阻碍了推理速度。虽然残差块解决了深度神经网络中梯度消失和爆炸的问题,但其残差连接增加了计算成本和内存使用,最终影响了推理速度。相比之下,单路径块[10]由于其单向性质,更适合实时分割。多路径块在训练中表现出色,但不适于推理,而单路径块则表现出相反的特性。因此,受到上述启发,作者旨在使用多路径块进行训练,并使用单路径块进行推理。虽然这种方法在实时语义分割领域很少被探索,但在分类任务中,某些研究[11, 12, 13]在模型训练期间采用多路径块,并在推理期间将它们重新参数化为单路径块。

图1:在Cityscapes测试集上,实时语义分割模型的推理速度与精度之间的权衡。橙色矩形指的是作者的模型,而绿色菱形表示其他模型。

image.png

在本研究中,受到先前研究[13, 14]的启发,作者提出了一种基于双分支架构的可重参化双分辨率网络(RDRNet),用于实时语义分割任务。在提取浅层特征之后,RDRNet将这些特征引导到两个不同的分支中。一个分支专注于学习深层语义信息(语义分支),而另一个则深入研究获取空间细节信息(细节分支)。值得注意的是,RDRNet并不仅仅在两个分支的末端融合输出。相反,它促进了分支之间的多次交互,以实现更有效的信息融合。作者通过消除冗余的核,只保留一个的核,并引入两条带有两个核的新路径,重新设计了ResNet块。重要的是,残差路径保持不变。在整个训练阶段,RDRNet块遵循这一配置。然而,在推理过程中,它进行重参化,将三条路径整合为带有卷积核的单一路径。此外,认识到PAPPM[8]与DAPPM[7]相比性能快速但相对较弱,作者提出了一个新的金字塔池化模块:可重参化金字塔池化模块(RPPM)。RPPM通过在PAPPM旁边添加一个的分组卷积来学习更多的特征表示。在推理时,这个卷积与另一个分组卷积合并,生成一个新的分组卷积,确保RPPM不引入额外的计算负担。值得注意的是,RPPM在不降低PAPPM速度的同时,达到了与DAPPM相似的性能。

为了评估作者模型的性能和实时能力,作者在三个数据集上进行了实验:Cityscapes[15],CamVid[16]和Pascal VOC 2012[17]。实验结果表明,RDRNet在分割准确性和推理速度之间实现了最佳的平衡,如图1所示。与其它最先进的实时语义分割模型相比,作者的模型展现了更优越的性能和更快的速度。此外,作者还进行了消融实验,以证明所提出的RPPM的有效性。

主要贡献总结如下:

  1. 通过利用多路径块的训练优势来增强模型的性能,并在推理过程中将多路径块重新参数化为单路径块以提高推理速度,作者提出了一种名为可重参化双分辨率网络(RDRNet)的新型模型,用于实时语义分割。
  2. 为了使金字塔池化模块在不增加推理时间的情况下学习更丰富的特征表示,作者引入了可重参化金字塔池化模块(RPPM)。
  3. 在三个公共数据集上的实验表明,与其它最先进的实时语义分割模型相比,所提出的模型展现了更优异的性能和更快的推理速度。

Related Work

语义分割旨在将图像中的每个像素分配到其对应的语义类别。此外,语义分割可以分为高性能语义分割和实时语义分割。

High-performance Semantic Segmentation

高性能的语义分割是指在保证分割质量和准确性的前提下对图像进行语义分割。最早的深度学习分割模型FCN[18]通过将传统CNN模型中的全连接层替换为卷积层,实现了端到端的像素级语义分割。然而,FCN中对降采样操作的过度使用导致了特征图在空间细节上的丢失。为了解决这个问题,在不牺牲空间分辨率的情况下增大感受野,DeepLab系列[19, 20]将不同扩张率的扩张卷积[21]集成到网络中,与传统的卷积方式有所不同。此外,为了从多尺度特征中聚合上下文信息并增强网络捕捉全局信息的能力,PSPNet[22]引入了金字塔池化模块。与通过多尺度特征融合捕捉上下文的方法不同,DANet[23]在网络内部采用了一种双重注意力机制,以自适应地融合局部特征与其全局依赖。近年来, Transformer (transformers)的发展取得了显著进步,导致基于 Transformer 结构的几种分割模型[24, 25, 26]的出现。这些模型利用 Transformer 的自注意力机制有效地捕捉长距离依赖,从而在语义分割任务中显著提高了性能。

Real-time Semantic Segmentation

实时语义分割是指在保证分割速度的前提下对图像进行语义分割。这种方法通常会采用轻量级网络架构,或者通过模型压缩和加速等技术提高分割速度。基于实时语义分割模型的架构,模型可以进一步分为两种类型:编码器-解码器架构和多分支架构。

编码器-解码器架构: ERFNet [4] 引入了一种新型块,它使用1D卷积核和跳跃连接来减少参数和计算量。同样,CGNet [27] 提出了上下文引导块,它同时学习局部特征和周围上下文特征,并通过全局上下文进一步改进它们。为了提高推理速度和减少参数,CGNet 在上下文引导块中使用逐通道卷积,并精心设计整个网络。STDC [28] 认识到在 BiSeNet [5] 中添加额外分支以补偿空间信息的不足是耗时的。为了解决这个问题,STDC 提出了一个细节聚合模块,以单分支方式保留低级特征的空间信息。此外,PP-LiteSeg [29] 优化了解码器,并引入了一种灵活且轻量级的解码器,以减少计算开销。

Multi-branch Architecture

编码器-解码器架构模型通常采用跳跃连接来连接编码器和解码器之间的特征图,从而利用空间细节。相比之下,多分支架构模型在网络中增加了额外的分支,以学习空间细节。ICNet [30] 集成了由适当标签指导的多分辨率分支。BiSeNetV1&V2 [5, 6] 引入了一种双分支架构,其中一个分支专门用于学习深层语义信息,另一个分支专注于学习空间信息。值得注意的是,这两个分支不共享权重。相比之下,[7, 8, 31] 共享了一些基础低层权重。在提取了一定的浅层特征后,Fast-SCNN [31] 将特征分为两个分支:一个保持特征,另一个提取全局特征。DDRNet [7] 在两个分支之间进行多次双边融合以有效地合并信息,同时引入了深度聚合金字塔池化模块(DAPPM),该模块依次合并提取的多尺度上下文信息。PIDNet [8] 提出了一种三分支架构,利用三个分支来解析详细信息、深层语义信息和边界信息。此外,PIDNet 引入了并行聚合金字塔池化模块(PAPPM),这是DAPPM的一种改进版本,旨在实现并行计算。

尽管基于编码器-解码器架构的模型旨在增强其学习空间细节的能力,但与多分支架构模型相比仍存在差距。这种差距体现在准确性和速度之间的权衡上。因此,作者基于双分支架构实现了作者的RDRNet。现有的实时语义分割模型,无论基于编码器-解码器还是多分支架构,都受到多路径块的阻碍,这限制了模型的推理速度。与这些模型相比,作者的RDRNet在训练期间采用多路径块以确保其学习能力。然而,在推理过程中,RDRNet 将多路径块重新参数化为单一路径块,以提升速度而不牺牲准确性。

Method

图3:RDRNet中双边融合的细节。图中的双边融合对应于阶段4之后的情况,阶段5之后也有类似的融合操作。关键的区别在于输入/输出通道数和上采样率的差异。

image.png
图2:RDRNet的整体架构。在特征分流之后,上面的分支属于语义分支,而下面的分支属于细节分支。RPPM指的是所提出的金字塔池化模块。

image.png

在本节中,作者首先介绍所提出的可重参化双分辨率网络的整体框架,然后详细解释可重参化块和可重参化金字塔池化模块。最后,作者详细说明模型训练阶段所使用的损失函数。可重参化双分辨率网络

如图2所示,在RDRNet提取浅层特征之后,特征图被分叉到两个分支中。上面的分支,被称为语义分支,旨在学习深层的语义信息。相比之下,下面的分支,称为细节分支,负责捕捉空间细节信息。在阶段4中的多个块进行特征提取之后,两个分支的特征进行双边融合,使得两个分支能够相互补充。在阶段5中执行类似操作。在阶段6之后,语义分支的特征被输入到金字塔池化模块以生成更丰富的特征表示,而细节分支的特征保持不变。最终,两个分支的特征相加并传递到分割头进行预测。在训练阶段,辅助分割头提供了一个额外的损失函数,有助于模型对数据特征的全面学习。值得注意的是,由于在推理阶段不使用辅助分割头,它不会影响模型的推理速度和效率。

图4:可重参化块的训练和推理结构。在非下采样过程中,训练结构包含三条路径,而在下采样过程中,它简化为两条路径。与训练结构相比,推理结构仅包含一条路径,其中的卷积是通过其他路径上的卷积重参化得到的。

image.png

image.png

image.png

image.png

image.png

Reparameterizable Block

如图4所示,在训练期间,可重新参数化的块(RB)有三条路径:第一条路径应用一个卷积,第二条路径应用两个卷积,第三条路径是残差连接。在执行下采样操作时,会移除残差连接。这是因为残差连接用于保持输入特征图,而下采样操作将把特征图的空间分辨率减半,使得残差路径不再适用。在推理时,RDRNet将RB重新参数化为一个卷积,而不会损失精度。与ResNet块相比,RB增加了一个由两个卷积组成的路径。这条路径使RB能够学习更多的特征表示,有助于提高模型的性能。

image.png

image.png

image.png

image.png
根据方程式 3 和方程式 4,可以进一步推导如下。

图5:从两个不同角度,即从多路径结构过渡到单路径结构,对RB的重参化过程。

image.png

Reparameterizable Pyramid Pooling Module

金字塔池化模块(PPM)[22]被用于捕获图像在不同尺度上的特征,帮助模型理解和分析图像中的局部和全局信息。在实时语义分割模型中,所提出的深度聚合PPM(DAPPM)[7]和平行聚合PPM(PAPPM)[8]显著提升了模型的性能。尽管PAPPM基于DAPPM采用并行处理以增强模块速度,但由于并行化中省略了某些操作,模块的精度降低了。为了既拥有PAPPM的速度又具备DAPPM的性能,作者引入了可重参化的PPM(RPPM)。

图6展示了RPPM的总体结构,清晰地可视化了从输入特征到输出特征的流程,其中并行卷积本质上是分组卷积。鉴于PyTorch中的分组卷积使用了并行计算技术,在不同卷积在不同输入上操作的情况下,作者可以将不同的输入 ConCat 起来,然后传递给分组卷积,从而利用并行计算提高推理速度。在RPPM中,作者使用两个并行结构的分组卷积使模块能够学习更丰富的特征表示,从而提升性能。值得注意的是,这两个卷积仅在训练时存在,在测试时,RPPM将它们重新参数化为一个优化的分组卷积。这个过程类似于RB重新参数化的过程。训练完成后,RPPM首先将其两个分组卷积与相应的BN层融合,然后将两个卷积的权重和偏置通过元素相加的方式合并。由于RPPM的推理结构与PAPPM一致,RPPM成功保持了PAPPM的推理效率同时实现了性能的提升。

image.png

Deep Supervision

先前的研究[6, 7, 8]表明,在模型训练阶段引入辅助分割头可以在不增加推理成本的情况下增强分割性能。在RDRNet中,作者在训练期间采用了一个额外的辅助分割头,在测试阶段将其移除。如图2所示,这个辅助分割头位于RDRNet的第4阶段双边融合之后,接收来自细节分支的特征。在模型前向传播之后,总损失可以表示为:

image.png

image.png

Experiments

Datasets

Cityscapes. Cityscapes [15] 在城市场景理解和自动驾驶领域被广泛使用。它包含19个类别,共有5000张图像,其中2975张用于训练,500张用于验证,1525张用于测试。这些图像经过了精心标注,分辨率为1024*2048 像素。

CamVid. CamVid [16] 是第一个带有语义标签的视频集。它包含701张图像,其中367张用于训练,101张用于验证,233张用于测试。每张图像的分辨率为720*960 像素。数据集有32个类别标签,尽管通常只有11个用于训练和评估。

Pascal VOC 2012. Pascal VOC 2012 [17] 主要用于图像分类、目标检测和图像分割等任务。它覆盖了20个类别和1个背景类别。用于语义分割任务的总共有2913张图像,包括训练集中的1464张和验证集中的1449张。与Cityscapes和CamVid不同,这些图像的分辨率不是固定的。

Implementation Details

城市景观数据集。 作者使用了随机梯度下降(SGD)作为优化器,动量为0.9,权重衰减为0.0005。初始学习率设置为0.01,并采用了幂次为0.9的多项式学习策略逐渐降低学习率。在训练期间,应用了数据增强技术,包括在0.5到2.0范围内的随机缩放,以10241024的分辨率进行随机裁剪,以及以0.5的概率进行随机水平翻转。在推理过程中,使用了原始分辨率为10242048的图像,并且不应用数据增强。作者将批量大小设置为12,在两个GPU上训练模型120K次迭代(约484个周期)。

CamVid数据集。 遵循先前的工作[7, 8],作者使用了城市景观预训练模型,并将学习率初始化为0.001。在训练期间,作者使用了与城市景观相同的数据增强技术,不同之处在于图像被随机裁剪为720960的分辨率。在推理过程中,使用了原始分辨率为720960的图像。作者在单个GPU上训练模型7800次迭代(200个周期),其余超参数设置为与城市景观相同的值。

Pascal VOC 2012数据集。 作者使用了城市景观预训练模型,并将初始学习率设置为0.001。在训练期间,图像分辨率被调整到5122048,然后执行与城市景观相同的数据增强技术,除了图像被随机裁剪为512512的分辨率。在推理过程中,图像分辨率被调整到。值得注意的是,这里的分辨率只是一个调整目标。由于Pascal VOC中的图像分辨率不是固定的,因此为了保持宽高比,图像被调整为基于512*2048的大致分辨率。作者在两个GPU上训练了24400次迭代(200个周期),其余超参数设置为与城市景观相同的值。

Computing Platform

作者所使用的计算平台硬件包括一个Intel Xeon Gold 5218R CPU和两个NVIDIA RTX 3090 GPUs。软件堆栈包括Ubuntu 20.04.1,CUDA 11.3,PyTorch 1.12.1,MMSegmentation [35] 1.0.0。在训练阶段,作者使用两个GPU,而在推理阶段,仅使用一个GPU,并将批处理大小设置为1。

Comparisons with State-of-the-art Models

作者评估了作者的模型在三个基准数据集上的表现,分别是Cityscapes、CamVid和Pascal VOC 2012。为了确保公平比较,作者在表中指出了模型是否在ImageNet [36]数据集上进行预训练,因为一些现有工作采用了这种策略,而其他工作则没有。在评估指标方面,作者选择平均交并比(mIoU)作为评估所有模型性能的主要指标。

image.png

image.png

CamVid. 表3展示了分割模型在CamVid测试集上的实验结果,表中所有模型均在作者平台上使用MMSegmentation重新训练,并在作者平台上进行推理。在之前研究[7, 8]的基础上,训练过程采用了包括训练集和验证集在内的组合数据集,而测试集则用于模型评估。在重新训练过程中,作者将所有模型的学习率降至原来的,并对Cityscapes预训练权重进行了7800次迭代微调,同时保持了其他训练参数与Cityscapes所用的一致。实验结果表明,作者的RDRNet在性能和推理速度之间保持了平衡。与ERFNet、ICNet、CGNet、BiSeNet和STDC相比,RDRNet在性能和速度上都领先。尽管Fast-SCNN是最快的,但其mIoU仅达到66.2%。与DDRNet-23-Slim相比,RDRNet-S-Simple在性能和速度上都更胜一筹。然而,尽管RDRNet-M的mIoU高于DDRNet-23,但其FPS略低。与PIDNet-S相比,RDRNet-S在实现相同mIoU的同时,速度快了46.6 FPS。此外,RDRNet-M和RDRNet-L分别优于PIDNet-M和PIDNet-L。具体来说,RDRNet-M在保持与PIDNet-M相似mIoU的同时,实现了19.5 FPS的提升,而RDRNet-L在mIoU上超过了PIDNet-L,并实现了11.4 FPS的提升。

image.png

图7:不同分割模型在Cityscapes验证集上的可视化。

image.png

Pascal VOC 2012. 表4展示了分割模型在Pascal VOC 2012验证集上的实验结果,表中所有模型均在作者平台上使用MMSegmentation重新训练,并在作者平台上进行推理。在重新训练期间,作者将所有模型的学习率降至原始学习率的,用Cityscapes的预训练权重微调了24400次迭代,同时保持其他训练参数与Cityscapes所用的一致。实验结果表明,所提出的RDRNet在性能和推理速度之间达到了最优平衡。尽管PIDNet在Cityscapes和CamVid上取得了强结果,但它未能将这种成功在VOC 2012上复制。相比之下,RDRNet在所有三个数据集上均展现出卓越的性能。作为作者最快的模型,RDRNet-S-Simple分别以0.6%和1.0%的mIoU优势超过了DDRNet-23-Slim和PIDNet-S,并且在FPS上大幅提高了9.8和53.8。此外,作者的其他RDRNet变体也显示出强大的性能。除了mIoU指标外,作者还通过计算准确分类的像素占总像素数的比例来补充像素准确度指标进行评估。实验发现表明,在像素准确度方面,作者的RDRNet同样表现出优势。有趣的是,BiSeNetV1在VOC验证集上的mIoU特别出色,比BiSeNetV2高出了6.0%。作者不确定这是否是由于ImageNet预训练的影响,因为BiSeNetV1在ImageNet上进行了预训练,但在CamVid测试集上的表现不如BiSeNetV2。为了验证这一效应是否由于ImageNet预训练,作者进行了不使用ImageNet预训练的附加实验。实验结果表明,在没有ImageNet预训练的情况下,BiSeNetV1的mIoU从56.0%下降到了54.2%。这表明即使没有ImageNet预训练,BiSeNetV1在VOC数据集上仍然可以表现良好。尽管BiSeNetV1在这个特定数据集上表现出色,但考虑到在所有三个数据集上的实验,作者得出结论,RDRNet总体上优于BiSeNetV1。

image.png

Analysis of Visualization Results

为了清楚地展示作者模型的性能,作者可视化了DDRNet-Slim、PIDNet-S以及作者的RDRNet-Simple的分割结果,如图7所示。该图显示,与其它分割模型相比,RDRNet更能完整地识别目标。例如,在第一行中,三种模型都没有完全识别出卡车,但RDRNet提供了更完整的识别。在识别公交车(第四行)时也出现了同样的问题。在第五行中,DDRNet和PIDNet对地面上的交通标志不太敏感,而RDRNet准确地识别了出来。因此,RDRNet实现了更好的分割结果。

Ablation Studies

image.png

image.png

图8:关于RDRNet-S-Simple的RPPM和双边融合的消融研究。BFI表示双边融合1(在第4阶段后应用),BF2表示双边融合2(在第5阶段后应用),Baseline表示不使用双边融合。None表示没有金字塔池化模块。PPM、PAPPM和DAPPM分别对应[22, 7]和[8]。值得注意的是,RPPM在每组的前三个条形图中使用。

image.png

可重参化金字塔池化模块。为了验证RPPM的有效性,作者进行了一系列消融实验。具体来说,作者分别用PPM、DAPPM和PAPPM替换RDRNet中的RPPM。此外,作者完全移除了RPPM,从而消除了金字塔池化模块,以观察其对模型性能的影响。实验结果在图8中展示,其中不同深浅的紫色代表不同的模块,'None'表示没有金字塔池化模块。如图所示,提出的RPPM达到最高性能,达到76.8%,比PAPPM高0.6%。与PAPPM相比,这种性能提升在推理时没有带来额外的成本,因为RPPM的结构被重参化为与PAPPM在推理时一致。当不使用金字塔池化模块时,模型达到最快的推理速度,达到140.0 FPS,但mIoU仅为72.9%。作者认为,为了获得3.9%的mIoU提升而牺牲5.4 FPS是合理的。

双边融合。为了验证两个双边融合的有效性,作者进行了一系列消融实验。具体来说,作者更深入地探讨了RDRNet不使用双边融合的情况,RDRNet仅使用双边融合1(在第4阶段后应用),以及RDRNet仅使用双边融合2(在第5阶段后应用)。图8显示,没有双边融合时,RDRNet达到最低的mIoU为74.8%,但达到最快的FPS,达到144.2。与仅使用双边融合1相比,仅使用双边融合2可以达到更高的性能,尽管推理速度较慢。当同时使用双边融合1和双边融合2时,mIoU达到峰值76.8%,但相应的FPS下降到134.6。总的来说,尽管模型的推理速度有所下降,但使用两个双边融合被证明是提高性能的有效方法,而且这个速度下降是可以接受的。

Conclusion

在本研究中,作者提出了一种可重参化的双分辨率网络(RDRNet)用于实时语义分割。通过在训练期间利用多路径块,并在推理期间将它们重参化为单路径块,作者同时优化了准确性和速度。此外,作者引入了一种可重参化的金字塔池化模块(RPPM),以增强特征表示,同时不增加推理时间。广泛的实验结果证明,RDRNet优于现有的最先进模型,提供了高性能和快速的推理能力。在未来,作者计划探索更多强大的可重参化训练结构。

参考

[1].Reparameterizable Dual-Resolution Network for Real-time Semantic Segmentation.

作者:AI引擎
来源:集智书童

推荐阅读

欢迎大家点赞留言,更多Arm技术文章动态请关注极术社区嵌入式AI专栏欢迎添加极术小姐姐微信(id:aijishu20)加入技术交流群,请备注研究方向。

推荐阅读
关注数
18751
内容数
1308
嵌入式端AI,包括AI算法在推理框架Tengine,MNN,NCNN,PaddlePaddle及相关芯片上的实现。欢迎加入微信交流群,微信号:aijishu20(备注:嵌入式)
目录
极术微信服务号
关注极术微信号
实时接收点赞提醒和评论通知
安谋科技学堂公众号
关注安谋科技学堂
实时获取安谋科技及 Arm 教学资源
安谋科技招聘公众号
关注安谋科技招聘
实时获取安谋科技中国职位信息