用于道路驾驶的实时语义分割
Abstract
在要求苛刻的道路驱动数据集上, 语义分割方法最近取得了成功, 激发了人们对许多相关应用领域的兴趣。其中许多应用涉及汽车、无人机和各种机器人等移动平台上的实时预测。由于涉及的计算复杂性, 实时设置具有挑战性。以前的许多工作都解决了自定义轻量级体系结构的挑战, 通过减少与通用体系结构相比的深度、宽度和层容量来降低计算复杂性。我们提出了一种替代方法, 可在广泛的计算预算中实现显著更好的性能。首先, 我们依靠轻量级通用架构作为主要的识别引擎。然后, 我们利用具有横向连接的轻量化上采样作为最具成本效益的解决方案来恢复预测分辨率。最后, 我们建议以一种新颖的方式, 以多种分辨率融合共享特征, 从而扩大接受场。在几个道路驾驶数据集上进行的实验显示了该方法的显著优势, 无论是使用 ImageNet 预训练参数, 还是当我们从零开始学习时。我们的 Cityscapes 测试提交名为 swifetnetrn-18 提供75.5 的 Moou, 并在 GTX1080Ti 上的1024x2048 图像上达到 39.9 Hz
1. Introduction
语义分割是一项重要的密集预测任务, 其中推理的目标是每个图像像素中已知类的后验分布 [6, 20, 3]。目前, 需要非常多计算资源的深度完全卷积模型可以获得最佳的结果。许多重要的应用, 如自主导航或驾驶员辅助, 需要对非常大的图像进行推断, 以便覆盖广阔的视野, 并在200米以上的距离感知行人。同时, 这些应用程序需要很低的延迟, 以便能够带来实时决策。由此产生的需求加剧了计算压力, 并使实时实现成为具有挑战性的研究目标。
许多实时语义分割方法 [28、40、24、32] 通过引入不适合大规模视觉识别的自定义轻量级体系结构来实现这一目标。这些方法大多从头开始初始化培训, 因此错过了来自更大、更多样化的识别数据集的知识转移 [26] 所提供的巨大正则化机会 [30]。因此, 这些方法会产生较大的超拟合风险。有些方法通过在 ImageNet 上进行预训练来缓解这一缺陷 [28]。然而, 我们的实验表明, 由此产生的好处往往小于为具有竞争力的 ImageNet 性能而设计的体系结构。
一个简单的语义分割模型从一个全卷积的编码器开始, 它逐渐降低了分辨率, 增加了生成的表示的要素图的数量。而不是执行全局池 (就像我们在图像范围的分类中所做的那样), 你可以通过附加像素级的损失来获得预测 [6]。由此产生的模型将导致对现代硬件的快速评估, 但由于以下问题, 其准确性相当低。首先, 由于像素化预测的分辨率较低, 通常比输入图像小 32倍, 因此无法识别小对象 (例如遥远的交通标志)。其次, 这类模型的接受场不够大, 无法对大型物体 (例如附近的公共汽车或卡车) 的像素进行分类。这些问题可以被减轻与各种各样的技术例如膨胀的卷积 [37] learned upsampling [20] 侧向连接 [27, 29, 19, 16] 并且learned upsampling[6]。但是, 并非所有这些技术都同样适用于实时操作。
本文认为, 基于轻量级 imagenet 级分类体系结构的模型可以实现效率和预测精度的竞争性结合 [8, 31]。此外, 我们提出了一种基于具有共享参数的分辨率金字塔 [6]新的方法, 以增加深度模型预测的感受野。拟议的方法会使模型容量增加非常小, 因此特别适合具有很多离别类别对象和每类只有少量注释图像的数据集。最后, 我们证明了利用具有横向连接的decoder,预测的分辨率可以有效和准确地上采样。我们证明了所产生的语义分割模型可以在不同的计算预算下进行评估, 即使在嵌入式 GPU 平台上也是可行的。我们在不同的道路驾驶数据集上展示了 ImageNet 预培训和从头开始学习的实验。我们的实验在所有现有的实时执行方法中实现了最先进的语义分割精度。
2. Related Work
如导言所述, 语义分割模型必须面对两个主要问题: 恢复输入分辨率和增加感受野。恢复输入分辨率的最简单方法是避免向下采样。这通常是通过用没有stride的池化层代替stride=2池化层, 并在随后的卷图中将膨胀系数增加一倍来实现的 [4, 38]。但是, 这种方法增加了深层潜在表示的分辨率, 这意味着很大的计算复杂性。此外, 由于需要在调用优化实现之前和之后重新排列图像数据, 膨胀卷积会产生显著的额外减速。
实现密集图像预测的另一种方法依赖于训练的向上采样 [20], 这将导致编码器体系结构。这样做的目的是对下采样的潜在表示进行识别, 以降低复杂性, 然后通过向上采样表示 (或预测) 来恢复分辨率。这种设置可以自然地加强引入横向连接 [27, 29, 19, 16]to 混合语义丰富的深层与空间丰富的浅层。上采样路径必须尽可能精简 (以实现效率和防止过拟合), 但不能更精简 (以避免不拟合)。事实证明, 甜蜜点是计算成本低廉, 这使得这种设置特别适合实时操作。
早期扩大逻辑激活接受场的方法是基于膨胀的卷曲 [37, 4, 38]。一种更复杂的方法被称为空间金字塔池 (SPP) [7]。SPP 平均功能在对齐的网格与不同的粒度 [17]。我们使用该思想的卷积适应, 其中特征金字塔被采样到原始分辨率 [41], 然后与输入特征连接。因此, 随后的卷积可以进入广阔的空间池, 从而增加它们的接受场。膨胀的卷曲和 SPP 的组合被称为 trous SPP, 简称 ASPP 为 [3]。然而, SPP 和 ASPP 可能会损害泛化由于大容量。本文研究了分辨率金字塔作为增加接受场的替代方法, 同时促进了尺度不变性 [34、15、18、4]。大多数以前的锥形方法语义分割 [6, 40, 23] 融合只有最深的表示提取在不同的分辨率。与它们不同的是, 在加入解码器中的上采样路径之前, 我们将来自不同抽象级别的表示组合在一起。这将在整个金字塔表示过程中产生更好的梯度流, 这在对象较大且训练数据稀缺时是有利的。
高效的识别架构利用优化的构建块, 旨在减少计算负载, 同时保持准确性。分组卷积通过将信息流包含在较小的要素图组中, 减少了浮点操作的数量和参数的数量。提出了各种方法来发现明显的群体间联系。ShuffleNet [39] 使用通道混排在卷积组之间传递信息。CondenseNet [11] 包含了一种训练策略, 它在分组的卷和修剪那些多余的过程中找到了重要的联系。神经体系结构搜索 [42] 是一种利用强化学习共同学习模型体系结构和相应参数的方法。当计算预算受到限制时, 生成的体系结构可实现具有竞争力的 ImageNet 性能。深度可分离卷积 [33, 36] 通过将正则卷积一分为二, 从而降低计算复杂度。首先, 对每个输入通道分别应用了 kxk 卷积。这可以被看作是一个组卷积, 其中组的数量与通道 C 的数量相对应。换句话说, k×k×1有 C 内核。其次, 应用1x1 卷积传播信道间信息。用深度可分离卷积取代标准卷积会降低参数的数量, 并以性能下降为代价增加推理速度 [10]。倒置残块 [31] 可以放宽深度可分离卷积的强正则化效应, 从而形成适用于移动应用的紧凑的残差模型。
大多数以实时操作为目标的语义分割方法都避免使用为具有竞争力的 ImageNet 性能而设计的编码器。ICNet [40] 提出了一种自定义编码器, 该编码器处理具有共享参数的图像金字塔, 并在进入恢复分辨率的解码器之前融合多比例表示。ERFNet [28] 将残块重新定义为3x1 的组合, 然后是1x3 卷积, 从而使参数减少33%。Vallurupalli 等人 [35] 提出了 Dg2 方法作为一种高效的 ERFNet 变体, 在残块中进行了以下修改: i) 深度可分离卷积, 以及 ii) 在点卷卷之前的通道洗牌操作。ESPNet [24] 以类似的方式分解卷积, 并避免在图像金字塔中共享参数, 以生成快速而紧凑的体系结构。
我们的方法最与语义分割方法相关, 这些方法使用在 ImageNet 上训练的轻量级编码器, 并从这种初始化中受益。类似于我们的工作, Nekrasov 等人 [25] 依靠 MobileNet V2 [31] 和 NASNet [42] 编码器, 并具有具有横向连接的厚解码器。这类似于我们的单一规模模型, 但是, 我们的解码器的容量要低得多, 这使我们能够报告其浮点操作数量的一半, 而不会牺牲道路驱动数据集上的识别精度。LinkNet [2] 使用小型 ResNet-18 主干和轻量级解码器, 以实现令人满意的性能速度比。我们的单一规模模型类似于 LinkNet, 但是我们省略了全分辨率的卷积层, 以大幅减少内存印迹并大大提高处理速度。Mazzini 等人 [23] 使用从 DRN-D-22 型 [38] 初始化的扩张编码器和具有一个横向连接的解码器。他们还学习非线性向上采样, 以提高物体边界的准确性。我们的解码器不是使用膨胀的卷积, 而是通过完全依靠横向连接来更新预测, 从而导致4倍的速度。此外, 我们还成功地在训练期间利用了全分辨率图像, 从而在 Cityscapes 测试中实现了5个百分点的改进。
3. The proposed segmentation method
我们的方法假定以下要求。该模型应基于 ImageNet 预训练的编码, 以便从转移学习所引发的正则化中获益。解码器应恢复编码要素的分辨率, 以便预测保留详细信息。为了保持实时处理速度, 上采样程序必须尽可能简单。应在整个网络中提升梯度流, 以支持在一个不寻常的事件中从随机初始化进行的训练, 因为 ImageNet 预训练被证明是没有用的。
3.1. Basic building blocks
所提出的分割方法围绕三个基本的组成部分进行了设计, 我们在下面的段落中对此进行了简要描述。这些构建块将在我们的两个模型中使用, 我们在随后的小节中提出了这两个模型。
Recognition encoder:我们提倡使用紧凑型 ImageNet 预训练模型作为分割编码器。我们建议使用 ResNet-18 [8] 和 MobileNet V2 [31] 有多种原因。由于预先训练的参数是公开的, 这些模型非常适合微调。由于深度和残余结构适中, 它们也适合从零开始进行训练。最后, 由于操作占用空间小, 这些模型与实时操作兼容。从计算上讲, ResNet-18 比 MobileNet V2 复杂6倍左右。但是, MobileNet V2 使用在 GPU 固件 (cuDNN 库) 中不直接支持的深度可分离卷积。因此, 在大多数实验设置中, MobileNet V2 往往比 resnet-18 慢。请注意, 同一问题不符合 DenseNet 体系结构 [12] 的使用资格, 因为它需要在不连续的张量上进行高效的卷积, 而 cuDNN 仍然不支持这种张量。
Upsampling decoder:识别编码器将输入图像转换为语义上丰富的视觉特征。这些要素必须具有粗糙的空间分辨率, 以节省内存和处理时间。解码器的目的是将这些功能采样到输入分辨率。我们提倡一个简单的解码器组织作为一个序列的向上采样模块with横向连接 [27, 29]。建议的阶梯式向上采样模块具有两个输入: 低分辨率特征 (应进行上采样), 以及编码器早期层的横向特征。低分辨率特征首先通过双线性插值进行采样, 其分辨率与横向特征相同。然后将向上采样的输入特征和横向编码器特征与元素求和混合, 最后与3x3 卷积混合。
我们建议在相应的子采样级别的最后一个剩余块内, 从元素和的输出中路由横向特征, 如图2所示。请注意, 从后续的 Rlu 输出中路由横向特征会导致验证准确性大幅下降。用1x1 卷积或深度可分离卷积取代标准3x3 卷积也会降低验证精度。
图2。在共同空间分辨率下运行的卷积块中最后一个剩余单元的结构图。我们不使用预激活 [9], 因为我们找不到 Resnet-18 的预训练参数化。横向连接是从最后一个剩余块之后的元素和的输出中提取的。Llu 节点的输出被转发到下一个剩余块。
Module for increasing the receptive field:正如前面所讨论的, 在保持实时速度的同时增加接受场的可能性有两种: (i) 空间金字塔池, 以及 ii) 金字塔融合。SPP 块收集编码器在多个池级别生成的功能, 并生成具有不同详细级别的表示形式。我们演示了 SPP 在我们的单一规模模型中的应用。我们的 SPP 块是来自 PSPNet [41] 的金字塔池模块的简化版本。金字塔融合产生真正的多尺度表示, 需要在解码器内小心融合, 以避免过拟合和欠拟合的细节水平。我们提出了一种金字塔池化方法, 它融合了不同抽象级别的表示, 从而在不牺牲空间分辨率的情况下扩大了接受场。
3.2. Single scale model
所提出的单比例模型将输入图像转化为密集的语义预测, 贯穿于下采样识别编码器和上采样解码器, 如图3所示。黄色梯形表示卷积组, 即编码器中在相同空间分辨率下工作的部分。所有被考虑的编码器都由四个这样的卷积组组成。第一个卷积组以 H/4×W/4 分辨率生成特征, 而每个子组增加2的因子子采样。因此, 编码器远端的功能 H/32×W/32。这些特征被输入到空间金字塔池层 (由绿色菱形指定), 以增加模型接受场。最终, 生成的张量被路由到解码器, 解码器的上采样模块显示为蓝色。请注意, 解码器和编码器是非对称的: 编码器每个卷积组具有许多卷积, 而解码器每个上采样模块只有一个卷积。此外, 编码器特征的维数沿下采样路径增加, 而解码器特征的维数是恒定的。因此, 横向连接必须调整尺寸与1x1 卷积指定与红色正方形。上采样模块分三个步骤运行: (一) 低分辨率表示为线性上采样, (二) 得到的表示用侧向连接求和; (三) 求和使用3x3 卷积进行混合。
3.3. Interleaved pyramid fusion model
虽然使用紧凑的编码器有利于快速推理, 但与一般视觉识别卷积模型相比, 这也导致接受场减少, 容量较小。为了克服这些缺点, 我们建议利用图像金字塔来扩大模型的接受场, 减少模型的容量要求。所提出的模型如图4所示。两个编码器实例 (黄色) 应用于不同分辨率金字塔级别的输入图像。这导致激活的接受场增加, 感知图像金字塔的最低分辨率。此外, 共享参数可以使用一组通用的参数识别不同大小的对象, 这可能会放松对模型容量的需求。为了加强横向连接并改善整个编码器的梯度流, 我们将来自不同编码器相邻级别的特征张量连接在一起 (我们可以这样做, 因为它们具有相同的空间分辨率)。这种连接被指定为绿圈。连接后, 交错编码器特征通过用红色正方形指定的1x1 卷积投影到解码器特征空间上。解码器 (蓝色) 的工作方式与单比例模型相同, 但现在我们为图像金字塔的每个附加级别增加了一个向上采样模块。