Deep Dual-resolution Networks for Real-time and Accurate Semantic Segmentation of Road Scenes,CVPR,2021
摘要
语义分割是自动驾驶汽车理解周围场景的关键技术。当代模型的吸引人的性能通常是以繁重的计算和漫长的推理时间为代价的,这对于自动驾驶来说是无法忍受的。最近的方法使用轻量级架构(编码器-解码器或双路径)或对低分辨率图像进行推理,实现了非常快速的场景解析,甚至在单个 1080Ti GPU 上以超过 100 FPS 的速度运行。然而,这些实时方法与基于扩张主干的模型在性能上仍然存在显着差距。为了解决这个问题,我们提出了一系列专门为实时语义分割而设计的高效主干网。所提出的深度双分辨率网络(DDRNet)由两个深度分支组成,在这两个分支之间执行多个双边融合。此外,我们设计了一种名为深度聚合金字塔池模块(DAPPM)的新上下文信息提取器,以扩大有效感受野并基于低分辨率特征图融合多尺度上下文。我们的方法在 Cityscapes 和 CamVid 数据集上实现了准确性和速度之间的新的最先进的权衡。特别是,在单个 2080Ti GPU 上,DDRNet-23-slim 在 Cityscapes 测试集上在 102 FPS 下产生 77.4% mIoU,在 CamVid 测试集上在 230 FPS 下产生 74.7% mIoU。通过广泛使用的测试增强,我们的方法优于大多数最先进的模型,并且需要更少的计算。代码和经过训练的模型可在线获取。
引言
随着深度学习技术的兴起,卷积神经网络被应用于图像分割,并且大大优于基于手工特征的传统方法。自从提出全卷积网络(FCN)来处理语义分割问题以来,一系列新颖的网络被提出。 DeepLab 消除了 ResNet 中的一些下采样以保持高分辨率,并利用膨胀卷积 来扩大感受野。从那时起,带有上下文提取模块的基于扩张卷积的主干网已成为广泛用于各种方法的标准布局,包括 DeepLabV2 、DeepLabV3 、PSPNet 和 DenseASPP 。
大感受野的图来产生令人满意的结果,这在计算上是昂贵的。这个问题对于自动驾驶的场景解析尤其重要,因为自动驾驶需要对非常大的图像进行强制执行以覆盖广阔的视野。因此,上述方法在推理阶段非常耗时,无法直接部署在实际的自动驾驶车辆上。由于利用多尺度测试来提高准确性,他们甚至无法在一秒钟内处理图像。
随着移动设备部署需求的不断增长,实时分割算法受到越来越多的关注。 DFANet 采用深度多尺度特征聚合和轻量级深度可分离卷积,在 100 FPS 下实现了 71.3% 的测试 mIoU。与编码器-解码器范式不同,Bisenet提出了一种由空间路径和上下文路径组成的新颖的双边网络。特别地,空间路径利用三个相对较宽的 3×3 卷积层来捕获空间细节,上下文路径是一个紧凑的预训练主干,用于提取上下文信息。包括Fast-scnn在内的此类双边方法比当时的编码器解码器结构实现了更高的推理速度。
最近,提出了一些针对道路场景语义分割的竞争性实时方法。这些方法可以分为两类。一种利用 GPU 高效的主干网,尤其是 ResNet-18 。另一个开发了从头开始训练的复杂轻量级编码器,其中一个 BiSeNetV2 在实时性能方面达到了新的峰值,在 Cityscapes 上以 156 FPS 实现了 72.6% 的测试 mIoU。然而,这些最近的工作并没有显示出获得更高质量结果的潜力。其中一些由于故意设计的架构和调整的超参数而缺乏可扩展性。此外,考虑到更强大的骨干网的繁荣,ResNet-18 的优势不大。
引出方法
在本文中,我们提出了具有深度高分辨率表示的双分辨率网络,用于高分辨率图像(尤其是道路驾驶图像)的实时语义分割。我们的 DDRNet 从一个主干开始,然后分为两个具有不同分辨率的并行深度分支。一个深层分支生成相对高分辨率的特征图,另一个深层分支通过多次下采样操作提取丰富的语义信息。两个分支之间桥接多个双边连接,实现高效的信息融合。此外,我们提出了一个名为 DAPPM 的新颖模块,它输入低分辨率特征图,提取多尺度上下文信息,并以级联方式合并它们。在语义分割数据集上进行训练之前,双分辨率网络按照常见范例在 ImageNet 上进行训练。
相关工作
-
高性能语义分割
由于缺乏空间细节,公共编码器最后一层的输出不能直接用于预测分割掩模。如果仅摆脱分类主干的下采样,有效接受域将太小而无法学习高级语义信息。一种可接受的策略是利用扩张卷积来建立像素之间的长程连接,同时删除最后两个下采样层,如图所示。然而,由于高分辨率特征图尺寸的指数增长和扩张卷积实现的优化不足,它也给实时推理带来了新的挑战。事实上,大多数最先进的模型都是建立在扩张主干上的,因此很大程度上不适合自动驾驶的场景解析。
一些作品尝试探索标准扩张主干的替代品。 DeepLabv3plus 的作者提出了一种简单的解码器,它将上采样的特征图与低级特征图融合在一起。它减轻了对直接从扩张卷积生成的高分辨率特征图的要求。尽管编码器的输出步长设置为 16,DeepLabv3plus 仍能取得有竞争力的结果。HRNet 突出了深度高分辨率表示,并反映出比扩张主干网更高的效率。我们发现 HRNet 更高的计算效率和推理速度归功于其更薄的高分辨率信息流。以 HRNetV2-W48 为例,1/4 分辨率和 1/8 分辨率特征的维度分别为 48 和 96,远小于带有扩张卷积的预训练 ResNet 。尽管 HRNet 的高分辨率分支要细得多,但可以通过并行低分辨率分支和重复的多尺度融合来大大增强它们。
我们的工作从深、薄、高分辨率的表示开始,并提出更紧凑的架构。它们保持高分辨率表示,并通过两个简洁的主干同时提取高级上下文信息。
-
实时语义分割
几乎所有实时语义分割模型都采用两种基本方法:编码器-解码器方法和双路径方法。还讨论了在这两种方法中发挥重要作用的轻量级编码器。-
编码器-解码器结构
与基于扩张卷积的模型相比,编码器-解码器架构直观地花费更少的计算和推理时间。编码器通常是一个深度网络,通过重复的空间缩减来提取上下文信息,解码器通过插值或转置卷积恢复分辨率以完成密集预测,如图所示。特别地,编码器可以是在 ImageNet 上预训练的轻量级骨干网络,也可以是从头开始训练的高效变体,如 ERFNet和 ESPNet 。 SwiftNet 捍卫了 ImageNet 上预训练编码器的优势,并利用轻量级横向连接来协助上采样。FANet 通过快速注意力模块和整个网络的额外下采样实现了速度和准确性之间的良好权衡。 SFNet 提供了一个流对齐模块(FAM)来对齐相邻级别的特征图,以实现更好的融合。
-
双路径方法
编码器-解码器架构减少了计算量,但由于重复下采样过程中丢失了一些信息,无法通过反采样完全恢复,这损害了语义分割的准确性。为了缓解这个问题,提出了双路径架构,如图所示。除了一条提取语义信息的通路外,另一条高分辨率的浅层通路提供丰富的空间细节作为补充。为了进一步提高准确性,BiSeNetV2 使用全局平均池化进行上下文嵌入,并提出基于注意力的特征融合。 BiSeNetV1&V2 中的两条路径最初是分开的,而 Fast-SCNN 中的两个分支共享下采样模块的学习。 CABiNet 采用Fast-SCNN的整体架构,但使用MobileNetV3 作为上下文分支。
与现有的双路径方法不同,DDRNets的深薄高分辨率分支可以在保证推理效率的同时实现多种特征融合和足够的ImageNet预训练。我们的方法可以轻松扩展以实现更高的准确度(在城市景观上超过 80% mIoU),结构如图所示。
-
轻量级编码器
有许多计算高效的主干网可以用作编码器,例如 MobileNet、ShuffleNet 和小版本的 Xception。 MobileNet 用深度可分离卷积代替标准卷积,以减少参数和计算量。 MobileNetV2中的反向残差块减轻了深度可分离卷积的强正则化效果。 ShuffleNet利用分组卷积的紧凑性,提出通道洗牌操作以促进不同组之间的信息融合。然而,这些网络包含大量深度可分离卷积,无法使用现有 GPU 架构有效实现。因此,虽然ResNet-18的FLOPs约为MobileNetV2 1.0×的六倍,但前者在单个1080Ti GPU上的推理速度高于后者。然而,现有的轻量级主干网对于语义分割来说可能不是最佳的,因为它们通常针对图像分类进行了过度调整。
-
-
上下文提取模块
语义分割的另一个关键是如何捕获更丰富的上下文信息。空洞空间金字塔池(ASPP)由具有不同速率的并行空洞卷积层组成,可以处理多尺度上下文信息。 PSPNet 中的金字塔池模块 (PPM) 通过在卷积层之前实现金字塔池,比 ASPP 的计算效率更高。与卷积核的局部性质不同,自注意力机制擅长捕获全局依赖性。这样,双重注意力网络(DANet)利用位置注意力和通道注意力来进一步改进特征表示。对象上下文网络(OCNet)利用自注意力机制来探索对象上下文,对象上下文被定义为属于同一对象类别的一组像素。 CCNet 的作者提出了交叉注意力来提高内存使用和计算的效率。然而,这些上下文提取模块是针对高分辨率特征图设计和执行的,对于轻量级模型来说太耗时。以低分辨率特征图作为输入,我们通过更多尺度和深度特征聚合来增强 PPM 模块。当附加到低分辨率分支的末尾时,所提出的模块优于 OCNet 中的 PPM 和 Base-OC 模块。
方法
DDRNet整体由两个主要组件组成:深度双分辨率网络和深度聚合金字塔池模块。
-
深度双分辨率网络
为了方便起见,我们可以向广泛使用的分类主干(例如 ResNet)添加额外的高分辨率分支。为了实现分辨率和推理速度之间的权衡,我们让高分辨率分支创建分辨率为输入图像分辨率的 1/8 的特征图。因此,高分辨率分支被附加到 conv3 阶段的末尾。请注意,高分辨率分支不包含任何下采样操作,并且与低分辨率分支一一对应以形成深度高分辨率表示。然后可以在不同阶段进行多次双边特征融合,以充分融合空间信息和语义信息。
DDRNet-23-slim 和 DDRNet-39 的详细架构如表 1 所示。我们修改了原始 ResNet 的输入主干,用两个连续的 3×3 卷积层替换一个 7×7 卷积层。剩余的基本块用于构造主干和随后的两个分支。为了扩大输出维度,在每个分支的末尾添加一个瓶颈块。双边融合包括将高分辨率分支融合到低分辨率分支(高到低融合)和将低分辨率分支融合到高分辨率分支(低到高融合)。对于从高到低的融合,在逐点求和之前,通过步幅为 2 的 3×3 卷积序列对高分辨率特征图进行下采样。对于从低到高分辨率的情况,低分辨率特征图首先通过 1×1 卷积进行压缩,然后通过双线性插值进行上采样。下图展示了双边融合是如何实现的。
我们总共构建了四个不同深度和宽度的双分辨率网络。 DDRNet-23 的宽度是 DDRNet-23-slim 的两倍,DDRNet-39 1.5× 也是 DDRNet-39 的更宽版本。 -
深度聚合金字塔池化模块
在这里,我们提出了一个新的模块来进一步从低分辨率特征图中提取上下文信息。下图显示了DAPPM的内部结构。以 1/64 图像分辨率的特征图作为输入,执行具有指数步长的大池化内核,以生成 1/128、1/256、1/512 图像分辨率的特征图。还利用了输入特征图和全局平均池生成的图像级信息。我们认为通过单个 3×3 或 1×1 卷积来混合所有多尺度上下文信息是不够的。受Res2Net的启发,我们首先对特征图进行上采样,然后使用更多的3×3卷积以层次残差的方式融合不同尺度的上下文信息。
在 DAPPM 内部,较大池化内核提取的上下文与更深层次的信息流集成,通过将不同深度与不同大小的池化内核集成来形成多尺度性质。下表显示 DAPPM 能够提供比 PPM 更丰富的上下文。尽管DAPPM包含更多的卷积层和更复杂的融合策略,但由于输入分辨率仅为图像分辨率的1/64,因此几乎不影响推理速度。例如,对于1024×1024的图像,特征图的最大分辨率为16×16。
-
语义分割总体架构
“RB”表示顺序残差基本块。 “RBB”表示单个剩余瓶颈块。 “DAPPM”表示深度聚合金字塔池化模块。 “Seg.Head”表示分割头。黑色实线表示有数据处理(包括上采样和下采样)的信息路径,黑色虚线表示没有数据处理的信息路径。 “sum”表示逐点求和。虚线框表示在推理阶段被丢弃的组件。首先,将低分辨率分支的RBB中3×3卷积的步幅设置为2以进一步下采样。
然后,在低分辨率分支的输出中添加 DAPPM,从 1/64 图像分辨率的高级特征图中提取丰富的上下文信息。
此外,最后的从高到低的融合被替换为通过双线性插值和求和融合实现的从低到高的融合。
最后,我们设计了一个简单的分割头,由 3×3 卷积层和后面的 1×1 卷积层组成。分割头的计算负载可以通过改变3×3卷积层的输出维度来调整。我们将 DDRNet-23-slim 设置为 64,将 DDRNet-23 设置为 128,将 DDRNet39 设置为 256。请注意,除了分割头和 DAPPM 模块外,所有模块都已在 ImageNet 上进行了预训练。 -
深度监督
训练阶段的额外监督可以简化深度卷积神经网络(DCNN)的优化。在PSPNet中,添加辅助损失来监督ResNet-101的res4_22块的输出,并根据实验结果将相应的权重设置为0.4。 BiSeNetV2 提出了一种增强训练策略,其中在语义分支的每个阶段的末尾添加额外的分割头。然而,它需要大量的实验来找到平衡每个损失的最佳权重,并导致训练记忆的不可忽略的增加。为了获得更好的结果,SFNet采用了名为级联深度监督学习的类似策略。在本文中,我们仅采用简单的额外监督来与大多数方法进行公平比较。我们按照PSPNet添加如总体结构图所示的辅助损失,并将权重设置为0.4。辅助分割头在测试阶段被丢弃。最终损失是交叉熵损失的加权和。
实验及结果分析
-
数据集
Cityscapes 是专注于城市街道场景解析的著名数据集之一。Cityscapes数据集参考文献:M. Cordts, M. Omran, S. Ramos, T. Rehfeld, M. Enzweiler, R. Benenson, U. Franke, S. Roth, and B. Schiele, “The cityscapes dataset for semantic urban scene understanding,” in Proceedings of the IEEE Conference on Computer Vision and Pattern Recognition, pp. 32133223, 2016.
CamVid数据集
CamVid数据集参考文献:G. J. Brostow, J. Fauqueur, and R. Cipolla, “Semantic object classes in video: A high-definition ground truth database,” Pattern Recognition Letters, vol. 30, no. 2, pp. 88–97, 2009.
COCOStuff数据集
COCOStuff数据集参考文献:H. Caesar, J. Uijlings, and V. Ferrari, “Coco-stuff: Thing and stuff classes in context,” in Proceedings of the IEEE conference on computer vision and pattern recognition, pp. 1209–1218, 2018.
-
实验结果