Lift, Splat, Shoot 翻译

摘要

自主车辆感知的目标是从多个传感器中提取语义表示,并将这些表示融合到单个“鸟瞰”坐标框架中,供运动规划使用。我们提出了一种新的端到端架构,该架构直接从任意数量的摄像机中提取给定场景图像数据的鸟瞰视图表示。我们的方法背后的核心思想是将每个图像分别“提升”到每个相机的一个功能截锥体中,然后将所有截锥体“展开”到光栅化鸟瞰栅格中。通过对整个摄影机装备的培训,我们提供了证据,证明我们的模型不仅能够学习如何表示图像,而且能够学习如何将所有摄影机的预测融合到场景的单个内聚表示中,同时对校准误差具有鲁棒性。在标准的鸟瞰任务(如对象分割和地图分割)上,我们的模型优于所有基线和以前的工作。为了实现学习运动规划的密集表示的目标,我们通过将模板轨迹“拍摄”到网络输出的鸟瞰成本图中,证明了由我们的模型推断出的表示能够实现可解释的端到端运动规划。我们将我们的方法与使用来自激光雷达的oracle深度的模型进行对比。包含代码的项目页面:

引言

计算机视觉算法通常将图像作为输入,并输出与坐标系无关的预测(如分类[19,30,16,17]),或与输入图像在同一坐标系中的预测(如目标检测、语义分割或全景分割[7,1,15,36])。
此范例与自动驾驶开箱即用的感知设置不匹配。在自动驾驶中,多个传感器作为输入,每个传感器具有不同的坐标系,感知模型的最终任务是在新的坐标系中生成预测,即ego汽车的坐标系,供下游规划人员使用,如图2所示。
有许多简单实用的策略可以将单图像模式扩展到多视图设置。例如,对于来自n个摄像机的三维对象检测问题,可以将单个图像检测器分别应用于所有输入图像,然后根据检测到对象的摄像机的内在和外在特性将每个检测旋转并转换为自我帧。将单视图范例扩展到多视图设置中有三个有价值的对称性:
1.平移等变–如果图像中的像素坐标全部移动,输出将移动相同的量。完全卷积的单图像对象检测器大致具有此属性,而多视图扩展继承了它们的此属性[11][6]。
2.置换不变性–最终输出不取决于n个摄影机的特定顺序。
3.Ego frame isometry Equalvariance–无论拍摄图像的摄像头相对于Ego汽车位于何处,都会在给定图像中检测到相同的对象。声明此属性的等效方法是,可以旋转/平移ego框架的定义,并且输出将随之旋转/平移。
上述简单方法的缺点是,使用来自单个图像检测器的后处理检测可防止在返回传感器输入的所有过程中与ego帧中的预测进行区分。因此,模型无法以数据驱动的方式了解跨摄像机融合信息的最佳方式。这也意味着反向传播不能用于利用下游规划人员的反馈自动改善感知系统。
我们提出了一个名为“Lift Splat”的模型,该模型保留了上述设计确定的3种对称性,同时也是端到端可微的。在第3节中,我们将解释我们的模型如何通过生成上下文特征的平截头体形状的点云将图像“提升”到3D,并将所有平截头体“拉伸”到参考平面上,以方便后续的运动规划任务。在第3.3节中,我们提出了一种将提案轨迹“拍摄”到此参考平面的方法,用于可解释的端到端运动规划。在第4节中,我们确定了在全摄像机上有效训练升降机splat模型的实施细节钻机。我们在第5节中提供了经验证据,证明我们的模型从可能输入的分布中学习到了融合信息的有效机制。

相关工作

我们从多个摄像机的图像数据中学习内聚表示的方法建立在传感器融合和单目目标检测的最新工作基础上。来自Nutonomy[2]、Lyft[13]、Waymo[35]和Argo[3]的大规模多模态数据集最近对整个360度空间进行了完整表示学习◦ 仅以摄像头输入为条件的ego车辆局部场景是可能的。我们通过我们的Lift Splat架构探索这种可能性。
2.1单目物体检测
单目物体检测器是通过它们如何对从图像平面到给定三维参考框架的变换建模来定义的。标准技术是在图像平面中应用成熟的2D对象检测器,然后训练第二个网络,将2D框回归为3D框[12,26,31,27]。nuScenes benchmark[31]上当前最先进的3D对象检测器使用一种架构,该架构训练标准2d检测器,以使用一种损耗来预测深度,该损耗试图将错误深度引起的误差与错误边界框引起的误差分开。这些方法在3D目标检测基准上取得了很好的性能,因为图像平面中的检测排除了覆盖单目深度预测的基本模糊云。
最近取得经验成功的一种方法是分别训练一个网络进行单目深度预测,另一个网络分别进行鸟瞰检测[39][40]。这些方法被称为“伪激光雷达”。伪激光雷达在经验上取得成功的直观原因是,伪激光雷达能够训练一个鸟瞰网络,该网络在最终评估检测的坐标系中运行,并且相对于图像平面,欧氏距离更有意义。
第三类单目对象检测器使用三维对象原语,该原语根据其在所有可用相机上的投影来获取特征。Mono3D[4]通过在地平面上生成通过投影到可用图像进行评分的三维方案,在KITTI上实现了最先进的单目目标检测。正交特征变换[29]建立在Mono3D的基础上,将固定的体素立方体投影到图像上以收集特征,然后训练第二个“BEV”CNN以根据体素中的特征进行3D检测。我们的模型解决的这些模型的一个潜在性能瓶颈是,一个像素为每个体素提供相同的特征,而与该像素处对象的深度无关。
2.2 BEV框架推理
最近,为了在鸟瞰图框架中直接执行推理而使用外在和内在的模型受到了广泛的关注。
MonoLayout[21]从单个图像进行鸟瞰推断,并使用对抗性损失来鼓励模型修复看似合理的隐藏对象。
在并行工作中,金字塔占用网络[28]提出了一种转换架构,将图像表示转换为鸟瞰表示。渔网[9]-也是并行工作-提出了一种多视图体系结构,该体系结构既可以分割当前时间段中的对象,也可以执行未来预测。我们在第5节中展示了我们的模型在经验上优于先前的工作。
这些架构以及我们的架构使用的数据结构类似于机器学习图形社区的“多平面”图像[34,32,38,20]。

方法

在本节中,我们将介绍从任意摄影机装备捕获的图像数据学习场景鸟瞰视图表示的方法。我们设计我们的模型,使其尊重第1节中确定的对称性。
形式上,我们得到n个映像{xk∈ r3×H×W}n各有一个外本征矩阵ek∈ r3×4与一个内禀矩阵ik∈ r3×3,我们寻求一个BEV坐标系y中场景的栅格化表示∈ rc×X×Y。
外部矩阵和内部矩阵共同定义了n个摄像机中每个摄像机从参考坐标(x,y,z)到局部像素坐标(h,w,d)的映射。
在培训或测试期间,我们不需要接触任何深度传感器。
3.1 升力:潜在深度分布
我们模型的第一阶段对摄影机装备中的每个图像进行单独操作。
此阶段的目的是将每个图像从本地二维坐标系“提升”到所有摄影机共享的三维帧。
单目传感器融合的挑战在于,我们需要将深度转换为参考帧坐标,但与每个像素相关的“深度”本质上是模糊的。我们建议的解决方案是为每个像素生成所有可能深度的表示。
让X∈ r3×H×W是一个具有外部E和内部I的图像,p是图像坐标(H,W)的图像中的一个像素。我们关联| D |点{(h,w,D)∈ R 3 | d∈ D} 对于每个像素,其中D是一组离散深度,例如由{d0+定义∆, …, d0+| d|∆}. 请注意,此转换中没有可学习的参数。我们只需为尺寸为D·H·W的给定图像创建一个大型点云。此结构相当于多视图合成社区[38,32]所称的多平面图像,但在我们的情况下,每个平面中的特征是抽象向量,而不是(r、g、b、α)价值观 点云中每个点的上下文向量被参数化,以匹配注意力和离散深度推断的概念∈ rc和a在深度α上的分布∈ 4 | D|−每像素1个。功能c d∈ 然后将与点pd相关联的rc定义为按αd缩放的像素p的上下文向量:
公式1
请注意,如果我们的网络预测α的一个热向量,则点pd处的上下文对于单个深度d将是非零的∗ 与伪激光雷达一样[39]。如果网络预测深度上的均匀分布,则网络将预测分配给像素p的每个点pd的相同表示,与OFT[29]中的表示无关。因此,我们的网络在理论上能够在将图像中的上下文放置在鸟瞰图表示的特定位置与将上下文传播到整个空间光线之间进行选择,例如,如果深度不明确。
总之,理想情况下,我们想要生成一个函数gc:(x,y,z)∈ R3→ C∈ R C表示可以在任何空间位置查询的每个图像,并返回上下文向量。为了利用离散卷积,我们选择离散空间。对于摄影机,摄影机可见的空间体积对应于平截头体。图3中提供了一个可视化视图。
3.2 Splat:支柱池
我们遵循pointpillars[18]体系结构,通过“提升”步骤转换大型点云输出。“支柱”是具有无限高度的体素。我们分配每个点到其最近的支柱并执行求和池以创建一个 C × H × W 张量,该张量可由标准 CNN 处理以进行鸟瞰推理。
图 4 概述了整体的升降平台架构。
正如 OFT [29] 使用积分图像来加速它们的池化步骤一样,我们应用类似的技术来加速和池化。 考虑到生成的点云的大小,效率对于训练我们的模型至关重要。 我们不是填充每个柱子然后执行和池化,而是通过使用打包和利用“cumsum 技巧”进行和池化来避免填充。 这个操作有一个解析梯度,可以有效地计算以加速 autograd,如第 4.2 小节所述。
3.3 拍摄:运动规划
我们的 Lift-Splat 模型的关键方面是它支持端到端成本图学习,用于从仅相机输入进行运动规划。 在测试时,可以通过“拍摄”不同的轨迹,对它们的成本进行评分,然后根据最低成本轨迹采取行动,使用推断的成本图进行规划 [25]。 在第 5.6 节中,我们探讨了我们的模型实现端到端可解释运动规划的能力,并将其性能与基于激光雷达的端到端神经运动规划器进行了比较。
我们将“规划”定义为预测自我车辆的 K 个模板轨迹的分布
公式
以传感器观察 p(τ|o) 为条件。 我们的方法受到最近提出的神经运动规划器 (NMP) [41] 的启发,该架构以点云和高清地图为条件,以生成可用于对提议的轨迹进行评分的成本量。
与 NMP 中提出的硬边距损失不同,我们将规划构建为对一组 K 个模板轨迹的分类。 为了利用规划问题的成本量性质,我们强制 K 模板轨迹上的分布采用以下形式
公式2
其中 c o (x, y) 是通过索引到在位置 x, y 处给定观测值 o 预测的成本图来定义的,因此可以通过优化专家轨迹的对数概率来从数据进行端到端的训练。 对于标签,给定真实轨迹,我们计算 L2 距离中与模板轨迹 T 的最近邻,然后使用交叉熵损失进行训练。 p(τ i |o) 的这个定义使我们能够学习一个可解释的空间成本函数,而无需像 NMP [41] 那样定义硬边界损失。
在实践中,我们通过在大量专家轨迹上运行 K-Means 来确定模板轨迹集。 用于“射击”到我们在实验中使用的成本图的模板轨迹集在图 5 中进行了可视化。

实施

4.1架构细节

我们模型的神经架构类似于 OFT [29]。 与 OFT 一样,我们的模型有两个大型网络主干。 其中一个主干单独对每张图像进行操作,以便对从每张图像生成的点云进行特征化。 另一个主干在点云上运行,一旦它被溅到参考系中的柱子上。 这两个网络由我们在第 3 节中定义的提升 splat 层连接,并在图 4 中可视化。
对于单独对每个图像进行操作的网络,我们在所有实验中利用在 Imagenet [30] 上预训练的 EfficientNet-B0 [37] 中的层模型包括基线。 EfficientNets 是在资源有限的情况下通过详尽的架构搜索找到的网络架构,深度、宽度和分辨率按比例增加。 我们发现它们在所有模型中实现了相对于 ResNet-18/34/50 [8] 更高的性能,但需要更多优化步骤来收敛的不便。
对于我们的鸟瞰网络,我们使用类似于 PointPillars [18] 的 ResNet 块的组合。 具体来说,在使用内核 7 和步幅 2 进行卷积,然后是批处理规范 [10] 和 ReLU [22] 之后,我们通过 ResNet-18 的前 3 个元层获得 3 个不同分辨率的鸟瞰图表示 x 1 , x 2 , × 3 。 然后我们以 4 的比例因子对 x 3 进行上采样,与 x 1 连接,应用 resnet 块,最后通过 2 上采样以返回原始输入鸟瞰伪图像的分辨率。 我们在最终网络中计算了 1430 万个可训练参数。
有几个超参数决定了我们模型的“分辨率”。 首先,输入图像 H × W 的大小。 在下面的所有实验中,我们将输入图像的大小调整为 128 × 352,并相应地调整外部和内部。 网络的另一个重要超参数是鸟瞰网格 X × Y 的分辨率大小。 在我们的实验中,我们将 x 和 y 中的 bin 设置为 -50 米到 50 米,单元格大小为 0.5 米 × 0.5 米。 因此得到的网格是 200×200。 最后,D 的选择决定了网络预测的深度分辨率。 我们将 D 限制在 4.0 米和 45.0 米之间,间隔 1.0 米。 通过这些超参数和架构设计选择,模型的前向传递在 Titan V GPU 上以 35 Hz 的频率运行。
4.2截锥池累积和技巧
训练效率对于从整个传感器装置的数据中学习至关重要。
我们在第 3 节中选择跨支柱的总和池而不是最大池,因为我们的“累积总和”技巧使我们免于由于填充而导致的过度内存使用。 “累积和技巧”是观察到可以通过根据 bin id 对所有点进行排序,对所有特征执行累积求和,然后减去 bin 部分边界处的累积总和值来执行求和池化。 与依赖 autograd 反向传播所有三个步骤不同,可以推导出整个模块的解析梯度,将训练速度提高 2 倍。 我们称该层为“Frustum Pooling”,因为它负责将 n 个图像产生的视锥体转换为固定维度的 C × H × W 张量,而与摄像机数量 n 无关。 代码可以在我们的项目页面上找到。

实验和结果

我们使用 nuScenes [2] 和 Lyft Level 5 [13] 数据集来评估我们的方法。
nuScenes 是一个包含来自 1k 个场景的点云数据和图像数据的大型数据集,每个场景的长度为 20 秒。 两个数据集中的相机装备包括 6个摄像头大致指向前、左前、右前、左后、右后和后方向。 在所有数据集中,摄像机的视场之间存在小的重叠。 相机的外在和内在参数在两个数据集中发生变化。 由于我们的模型以相机校准为条件,因此它能够处理这些变化。
我们定义了两个基于对象的分割任务和两个基于地图的任务。
对于对象分割任务,我们通过将 3D 边界框投影到鸟瞰图平面中来获得地面实况鸟瞰图目标。 nuScenes 上的汽车分割是指车辆类的所有边界框。nuScenes 上的汽车和车辆分割是指元类别车辆的所有边界框。 Lyft 上的汽车分割是指汽车类的所有边界框,nuScenes 上的车辆分割是指类∈{汽车、卡车、其他车辆、公共汽车、自行车}的所有边界框。 对于映射,我们使用提供的 6 DOF 定位和光栅化将 nuScenes 地图中的转换地图层转换为 ego 框架。
对于所有对象分割任务,我们使用正权重 1.0 的二元交叉熵进行训练。 对于车道分割,我们将正权重设置为 5.0,对于道路分割,我们使用正权重 1.0 [24]。 在所有情况下,我们使用 Adam [14] 训练 300k 步,学习率为 1e - 3,权重衰减为 1e - 7。
我们使用 PyTorch 框架 [23]。
Lyft 数据集不带有规范的 train/val 拆分。 我们将 48 个 Lyft 场景分开进行验证,以获得与 nuScenes 大小大致相同的验证集(Lyft 为 6048 个样本,nuScenes 为 6019 个样本)。
5.1基线说明
与普通 CNN 不同,我们的模型在初始化时配备了 3 维结构。 通过与由标准模块组成的 CNN 进行比较,我们表明这种结构对于良好的性能至关重要。 我们遵循类似于 MonoLayout [21] 的架构,它也训练 CNN 以仅从图像输出鸟瞰图标签,但在设计架构时不利用归纳偏置,并且仅在单个相机上训练。 该架构有一个 EfficientNet-B0 主干,可以在所有图像中独立提取特征。 我们连接表示并执行双线性插值以将上采样为我们的模型输出的 R X×Y 张量。 我们设计网络,使其具有与我们的模型大致相同数量的参数。 该基线的弱性能表明在多视图设置中将第 1 部分的对称性 3 显式烘焙到模型中是多么重要。
为了表明我们的模型预测了一个有用的隐式深度,我们与我们的模型进行了比较,其中预训练的 CNN 的权重被冻结,以及与 OFT [29]。 我们在所有任务上都优于这些基线,如表 1 和表 2 所示。我们还优于在相同分割任务上进行基准测试的并发工作 [9] [28]。 因此,该架构正在学习有效的深度分布以及下游任务的有效上下文表示。
5.2分割
我们证明了我们的 Lift-Splat 模型能够在鸟瞰图框架中学习语义3D 表示。 对象分割任务的结果显示在表 1 中,而地图分割任务的结果显示在表 2 中。在所有基准测试中,我们的表现都优于基线。 我们相信这些从隐式反投影到 3D 的性能提升的程度是巨大的,尤其是对于对象分割。 我们还包括了两个同时进行的工作的报告 IOU 分数 [9] [28],尽管这两篇论文都使用了不同的鸟瞰图网格定义和 Lyft 数据集的不同验证拆分,因此尚无法进行真正的比较。
5.3 健壮性
因为鸟瞰 CNN 从数据中学习如何在相机之间融合信息,所以我们可以训练模型对自动驾驶中出现的简单噪声模型具有鲁棒性,例如外在参数有偏差或相机死亡。 在图 6 中,我们验证了通过在训练期间丢弃摄像头,我们的模型在测试时更好地处理丢弃的摄像头。 事实上,当所有 6 个摄像头都存在时,性能最好的模型是在训练期间从每个样本中随机丢弃 1 个摄像头进行训练的模型。 我们推断传感器丢失迫使模型学习不同相机上图像之间的相关性,类似于丢失的其他变体 [33] [5]。 我们在图 6 的左侧显示,使用嘈杂的外在参数训练模型可以带来更好的测试时间性能。 对于测试时的低噪声量,在外部没有任何噪声的情况下训练的模型表现最好,因为 BEV CNN 可以更有信心地信任 splats 的位置。 对于大量的外部噪声,我们的模型保持其良好的性能。
在图 7 中,我们测量了每个摄像头对 nuScenes 上汽车分割性能的“重要性”。 请注意,在 nuScenes 上丢失相机意味着汽车本地区域的某些区域没有传感器测量值,因此性能严格受限于使用完整传感器设备的性能。 由于缺少摄像头而导致网络修复的定性示例如图 8 所示。通过这种方式,我们衡量了每个摄像头的重要性,表明传感器冗余对安全性更重要的地方。
5.4 零镜头摄影机装备转移
我们现在探讨 Lift-Splat 的泛化能力。 在我们的第一个实验中,我们测量了模型的性能,当仅对来自 nuScenes 相机装备的相机子集的图像进行训练,但在测试时可以访问来自其余两个相机的图像。 在表 3 中,我们表明,当在测试时有额外的摄像头可用而无需任何再训练时,我们的汽车分割模型的性能会有所提高。
我们将上述实验更进一步,并探讨如果我们的模型仅在 nuScenes 数据上进行训练,它对 Lyft 相机装备的泛化能力如何。 转移的定性结果如图 9 所示,表 4 显示了针对我们的基线泛化的基准。
5.5 神谕深度benchmark
我们针对点柱 [18] 架构对我们的模型进行了基准测试,该架构使用来自激光雷达点云的地面实况深度。 如表 5 所示,在所有任务中,我们的架构的性能略低于通过单次激光雷达扫描训练的点柱。 然而,至少在可行驶区域分割方面,我们注意到我们接近 LIDAR 的性能。 在一般情况下,并非所有车道都在激光雷达扫描中可见。 我们希望在未来在更广泛的环境中衡量性能。
为了深入了解我们的模型与 LIDAR 的不同之处,我们绘制了汽车分割的性能如何随两个控制变量而变化:到本车的距离和天气条件。 我们根据 nuScenes 数据集中每个场景标记随附的描述字符串确定场景的天气。
结果如图 10 所示。我们发现我们的模型的性能比预期的夜间场景中的点柱差很多。 我们还发现,随着深度的增加,两种模型的性能都大致呈线性下降。
5.6 轨迹预测
最后,我们通过将 Lift-Splat 的表示输出训练为成本函数来评估我们的模型执行规划的能力。 我们生成的轨迹长 5 秒,间隔 0.25 秒。 为了获取模板,我们将 K = 1000 的 K-Means 拟合到 nuScenes 训练集中的所有自我轨迹。 在测试时,我们测量网络能够预测在L2范数下最接近地面真实轨迹的模板。这项任务对于自动驾驶来说是一项重要的实验,因为该实验的地面真实目标比地面真实3D边界盒的获取成本低几个数量级。这项任务对于基准化基于相机的方法与基于激光雷达的方法的性能也很重要,因为尽管仅从相机检测三维物体的上限肯定仅限于激光雷达,原则上,仅使用相机的最优规划器应为从lidaronly培训的最优规划器的性能上限。
计划实验的定性结果如图11所示。以点支柱为基准的实证结果如表6所示。输出轨迹表现出理想的行为,如跟随道路边界,在人行横道或制动车辆后停车

结论

在这项工作中,我们提出了一个架构,旨在推断鸟瞰视图表示从任意相机钻机。我们的模型在一系列旨在探测模型的ABL的基准分割任务上优于基线在训练或测试时,无需访问地面真实深度数据,即可在鸟瞰图框架中表示语义。我们提出了训练模型的方法,使网络对简单的校准噪声模型具有鲁棒性。最后,我们证明了该模型能够实现遵循轨迹射击范式的端到端运动规划。为了满足和可能超过使用点云的地面真实深度数据的类似网络的性能,未来的工作将需要在多个时间步的图像条件,而不是一个单一的时间步长,因为我们在这项工作中考虑。

你可能感兴趣的:(笔记,计算机视觉,自动驾驶,人工智能)