【论文阅读】MARS:用于自动驾驶的实例感知、模块化和现实模拟器

【论文阅读】MARS:用于自动驾驶的实例感知、模块化和现实模拟器

  • Abstract
  • 1 Introduction
  • 2 Method
    • 2.1 Scene Representation
    • 2.3 Towards Realistic Rendering
    • 2.4 Optimization
    • 3.1 Photorealistic Rendering
    • 3.2 Instance-wise Editing
    • 3.3 The blessing of moduler design
    • 3.4 Ablation Results
  • 4 Conclusion

在这里插入图片描述
paper code

Abstract

如今,自动驾驶汽车可以在普通情况下平稳行驶,人们普遍认识到,真实的传感器模拟将在通过模拟解决剩余的极端情况方面发挥关键作用。为此,我们提出了一种基于神经辐射场(NeRF)的自动驾驶模拟器。与现有作品相比,我们的作品具有三个显着特点:
(1)实例感知。我们的模拟器使用独立的网络分别对前景实例和背景环境进行建模,以便可以单独控制实例的静态(例如大小和外观)和动态(例如轨迹)属性。
(2)模块化。我们的模拟器允许在不同的现代 NeRF 相关主干、采样策略、输入模式等之间灵活切换。我们期望这种模块化设计能够促进基于 NeRF 的自动驾驶模拟的学术进步和工业部署。
(3)真实性。考虑到最佳的模块选择,我们的模拟器设置了新的最先进的照片级真实感结果。我们的模拟器将开源,而大多数同类模拟器都不开源。项目页面:https://open-air-sun.github.io/mars/。

1 Introduction

自动驾驶 [11,13,33,16,24,14] 可以说是现代 3D 场景理解 [5,25] 技术最重要的应用。如今,Robotaxis可以在拥有最新高清地图的大城市中运行,顺利应对日常驾驶场景。然而,一旦道路上意外发生自动驾驶算法分布之外的极端情况,乘客的生命就会受到威胁。困境在于,虽然我们需要更多关于极端情况的训练数据,但在现实世界中收集它们通常意味着危险和高昂的费用。为此,社区认为真实感模拟[17,6,29,10]是一条极具潜力的技术路径。如果算法能够在模拟器中经历大量的极端情况,并且模拟与真实的差距很小,那么当前自动驾驶算法的性能瓶颈就有可能得到解决。

现有的自动驾驶仿真方法有其自身的局限性。 CARLA [8] 是一种广泛使用的基于传统图形引擎的传感器模拟器,其真实性受到资产建模和渲染质量的限制。 AADS [17] 也利用传统的图形引擎,但使用精心策划的资源展示了令人印象深刻的照片级真实感。另一方面,GeoSim [6] 引入了一种通过学习图像增强网络来进行真实模拟的数据驱动方案。灵活的资产生成和渲染可以通过具有良好几何形状和逼真外观的图像合成来实现。

在本文中,我们利用 NeRF 的真实渲染能力进行自动驾驶仿真。从现实环境中捕获的训练数据保证了模拟与真实之间的微小差距。一些作品还利用 NeRF 来模拟室外环境中的汽车 [20] 和静态背景 [10]。然而,无法对由移动物体和静态环境组成的复杂动态场景进行建模,限制了它们在现实世界传感器模拟中的实际应用。最近,神经场景图(NSG)[21]将动态场景分解为学习场景图,并学习类别级对象的潜在表示。然而,其基于多平面的背景建模表示无法在大视点变化下合成图像。

具体来说,我们的核心贡献是第一个基于 NeRF 的开源模块化框架,用于逼真的自动驾驶模拟。所提出的管道以分解的方式对前景实例和后景环境进行建模。不同的 NeRF 主干架构和采样方法以统一的方式合并,并支持多模态输入。所提出的框架的最佳模块组合在公共基准上实现了最先进的渲染性能,并具有较大的裕度,表明了逼真的模拟结果。

2 Method

在这里插入图片描述
图 1. 管道。左:我们首先计算所查询的射线 r 和所有可见实例边界框 { B i j } \{\mathcal{B}_{ij}\} {Bij}的射线-盒交集。对于背景节点,我们直接使用选定的场景表示模型和选定的采样器来推断逐点属性,就像传统 NeRF 中一样。对于前景节点,光线首先被转换为实例框架 r o r_o ro,然后通过前景节点表示进行处理(第 2.1 节)。右:所有样本都被组合并渲染为 RGB 图像、深度图和语义(第 2.2 节)。

Overview.
如图1所示,我们的目标是提供一个用于构建组合神经辐射场的模块化框架,其中可以针对户外驾驶场景进行真实的传感器模拟。考虑到具有大量动态对象的大型无界室外环境。

系统的输入包括一组 RGB 图像 { L i } N \{\mathcal{L}_i\}^N {Li}N (由车辆端或路边传感器捕获)、传感器姿态 { T i } N \{\mathcal{T}_i\}^N {Ti}N (使用 IMU/GPS 信号计算)和对象轨迹(包括 3D 边界)框 { B i j } N × M \{\mathcal{B}_{ij}\}^{N \times M} {Bij}N×M 、类别 { t y p e i j } N × M \{type_{ij}\}^{N \times M} {typeij}N×M 和实例 ID { i d x i j } N × M \{idx_{ij}\}^{N \times M} {idxij}N×M)。 N 是输入帧的数量,M 是整个序列中跟踪实例 { O i } M \{\mathcal{O}_i\}^M {Oi}M的数量。训练期间还可以采用一组可选的深度图 { D i } N \{\mathcal{D}_i\}^N {Di}N 和语义分割掩模 { S i } N \{\mathcal{S}_i\}^N {Si}N 作为额外的监督信号。通过构建组合神经场,所提出的框架可以在给定的传感器姿势下模拟真实的传感器感知信号(包括 RGB 图像、深度图、语义分割掩模等)。还支持对对象轨迹和外观进行实例编辑。

Pipeline.

我们的框架对每个前景实例和后景节点进行组合建模。如图 1 所示,当查询给定射线 r 的属性(RGB、深度、语义等)时,我们首先计算其与所有可见对象的 3D 边界框的交集,以获得进入和离开的距离 [ t i n , t o u t ] [t_{in}, t_{out}] [tin,tout]。然后,查询背景节点(图 1 左上)和前景对象节点(图 1 左下),其中每个节点对一组 3D 点进行采样,并使用其特定的神经表示网络来获取点属性(RGB、密度、语义等)。具体来说,为了查询前景节点,我们根据对象轨迹将光线原点和方向从世界空间转换为实例帧。最后,来自背景和前景节点的所有光线样本被组合并进行体积渲染,以产生逐像素渲染结果(图 1 右侧,第 2.2 节)。

我们观察到背景节点(通常是无界的大规模场景)的性质与以对象为中心的前景节点不同,而传感器模拟中的当前工作[15,21]使用统一的 NeRF 模型。我们的框架提供了一个灵活的开源框架,支持背景和前景节点场景表示的不同设计选择,并且可以轻松地结合静态场景重建和以对象为中心的重建的新的最先进的方法。

2.1 Scene Representation

我们将场景分解为一个大规模的无界 NeRF(作为背景节点)和多个以对象为中心的 NeRF(作为独立的前景节点)。传统上,神经辐射场将给定的 3D 点坐标 x = (x, y, z) 和 2D 观察方向 d 映射到其辐射率 c 和体积密度 σ,如方程式 1 所示。 1. 基于这种开创性的表示,针对不同目的提出了许多变体,因此我们采用模块化设计。

在这里插入图片描述
对无界背景场景进行逼真建模的挑战在于准确表示远区,因此我们利用无界场景扭曲 [2] 来收缩远区。对于前景节点,我们支持代码条件表示 f (x, d, z) = (c, σ) (z 表示实例级潜在代码)和传统的表示,解释如下。

Architectures.

在我们的模块化框架中,我们支持各种 NeRF 主干,这些主干可以大致分为两个超类:基于 MLP 的方法 [18,1,2],或基于网格的方法,在其哈希网格体素中存储空间变化的特征顶点[19,23]。尽管这些架构在细节上彼此不同,但它们遵循相同的高级公式1 并封装在 MARS 中统一接口下的模块中。

虽然基于 MLP 的表示在数学形式上很简单,但我们给出了基于网格的方法的正式阐述。多分辨率特征网格 { G θ l } l = 1 L \{\mathcal{G}_{\theta}^{l}\}^{L}_{l=1} {Gθl}l=1L 的具体实现具有逐层分辨率 R l : = ⌊ R m i n ⋅ b l ⌋ , b = e x p ( l n R m a x − l n R m i n L − 1 ) R_l := ⌊R_{min} · b^l⌋, b = exp(\frac{ln R_{max} − ln R_{min}}{ L−1}) Rl:=Rminbl,b=exp(L1lnRmaxlnRmin) ,其中 R m i n 、 R m a x R_{min}、R_{max} RminRmax 是最粗和最细的分辨率[31,19]。坐标 x 首先缩放到每个分辨率,然后通过向上和向下操作处理为 ⌈ x ⋅ R l ⌉ 、 ⌊ x ⋅ R l ⌋ ⌈x · R_l⌉、⌊x · R_l⌋ xRlxRl 并进行散列以获得表索引 [19]。然后对提取的特征向量进行三线性插值并通过浅 MLP 进行解码。

在这里插入图片描述
Sampling.
我们支持各种采样策略,包括最近提出的提案网络 [2],它从无辐射 NeRF 模型中提取密度场以生成射线样本以及其他采样方案,例如从粗到细采样 [18] 或均匀采样 [9]。

Foreground Nodes.

为了渲染前景实例,我们首先将投影光线转换到每个实例的坐标空间,然后推断每个实例规范空间中的以对象为中心的 NeRF。我们框架的默认设置使用代码条件模型,该模型利用潜在代码对实例特征进行编码,并使用共享类别级解码器对类先验进行编码,从而允许对许多具有紧凑内存使用的长轨迹进行建模。同时,我们的框架也支持传统的无代码条件的。我们在补充材料中详细介绍了修改后的前景表示(在第 3 节中表示为“Ours")。

在这里插入图片描述
图 2. 构图渲染图。远处区域中的一些静态车辆被视为背景物体。

2.2 Compositional Rendering

图 2 展示了合成渲染结果。为了以给定的相机姿态 T i \mathcal{T}_{i} Ti 渲染图像,我们在每个渲染像素处投射一条光线 r = o + t d r = o + td r=o+td 。对于每条射线 r,我们首先计算与所有可见前景节点 O i j \mathcal{O}_{ij} Oij 的交集间隔 [ t i n , t o u t ] [t_{in}, t_{out}] [tin,tout](图 3),并将样本 { P k o b j − j } \{\mathcal{P}_{k}^{obj-j}\} {Pkobjj}沿射线从世界空间变换到每个前景规范空间。我们还沿光线采样一组 3D 点 { P k g b } \{\mathcal{P}_{k}^{gb}\} {Pkgb}作为背景样本。所有节点中的样本首先通过其相应的网络来获取逐点颜色 { c k b g , o b j } \{c_{k}^{bg,obj}\} {ckbg,obj}、密度 { σ k b g , o b j } \{σ_{k}^{bg,obj}\} {σkbg,obj} 和前景语义逻辑 { s k b g } \{s_{k}^{bg}\} {skbg}。考虑到前景样本的语义属性实际上是它们的类别标签,我们创建一个 one-hot 向量:

在这里插入图片描述
为了聚合逐点属性,我们按世界空间中的光线距离对所有样本进行排序,并使用标准体积渲染过程来渲染逐像素属性:
在这里插入图片描述

2.3 Towards Realistic Rendering

Sky Modeling.
在我们的框架中,我们支持使用天空模型来处理无限距离处的外观,其中利用基于 MLP 的球形环境贴图 [22] 来对永远不会与不透明表面相交的无限远区域进行建模:
在这里插入图片描述
然而,天真地将天空颜色 c s k y c_{sky} csky 与背景和前景渲染(等式 4)混合会导致潜在的不一致。因此,我们引入 BCE 语义正则化来缓解这个问题:

在这里插入图片描述
Resolving Conflict Samples.
在这里插入图片描述
图 3. 我们的无冲突采样过程的视觉演示。我们在所有节点中使用均匀采样来进行说明。

Resolving Conflict Samples.
由于我们的背景和前景采样是独立完成的,因此背景样本有可能落入前景边界框内(图 3 背景截断样本)。合成渲染可能会错误地将前景样本分类为背景(稍后称为背景-前景模糊性)。因此,在移除前景实例后,背景区域将出现伪影(图 4)。理想情况下,有了足够的多视图监督信号,系统可以在训练过程中自动学习区分前景和背景。然而,对于数据驱动的模拟器来说,随着车辆在道路上快速移动,获取丰富且高质量的多视图图像对用户来说是一个挑战。 NSG [21] 中没有观察到这种模糊性,因为 NSG 仅对光线平面交叉点上的几个点进行采样,并且不太可能有太多背景截断样本。

在这里插入图片描述
图 4。我们表明,在没有进行正则化的情况下,背景截断样本会导致背景-前景模糊。

为了解决这个问题,我们设计了一个正则化项,可以最小化背景截断样本的密度和,以最小化它们在渲染过程中的影响:

在这里插入图片描述
其中 { P i ( t r ) } \{P^{(tr)}_ i \} {Pi(tr)} 表示背景截断样本。

2.4 Optimization

为了优化我们的系统,我们最小化以下目标函数:
在这里插入图片描述
其中 λ 1 − 5 λ_{1−5} λ15 是加权参数。 L s k y L_{sky} Lsky 和 ​​ L a c c u m L_{accum} Laccum 在方程式中进行了解释。 7和8。

Color Loss:

我们采用标准 MSE 损失来最小化光度测量误差:
在这里插入图片描述
Depth Loss:

我们引入深度损失来解决无纹理区域和从稀疏视点观察到的区域。我们设计了两种监督几何形状的策略。给定深度数据,我们利用从[7]导出的光线分布损失。另一方面,如果深度数据不可用,我们利用单深度网络并应用以下[31]的单深度损失。

在这里插入图片描述
Semantic Losses:
我们遵循 SemanticNeRF [34] 并使用交叉熵语义损失 在这里插入图片描述

3 Experiments

在本节中,我们提供了大量的实验结果来演示所提出的用于自动驾驶的实例感知、模块化和真实的模拟器。我们在 KITTI [11] 数据集和虚拟 KITTI-2 (V-KITTI) [3] 数据集的场景上评估我们的方法。在下文中,我们使用“我们的默认设置”来表示带有提案采样器的基于网格的 NeRF 用于背景节点,以及我们修改后的类别级表示以及用于前景节点的从粗到细的采样器。

在这里插入图片描述
表 1. 图像重建任务的定量结果以及与基线方法的设置比较。用于评估的数据集是KITTI。

3.1 Photorealistic Rendering

我们通过评估图像重建和新视图合成(NVS)来验证模拟器的真实感渲染性能[21,26]。

在这里插入图片描述
表 2. 新视图合成的定量结果

Baselines.
我们与其他最先进的方法进行定性和定量比较:NeRF [18]、带时间戳输入的 NeRF(表示为 NeRF+Time)、NSG [21]、PNF [15] 和 SUDS [26]。请注意,它们都没有同时满足表1 中提到的所有三个标准。

Implementation Details.
我们的模型使用 RAdam 作为优化器,经过 200,000 次迭代训练,每批 4096 条光线。背景节点的学习率被指定为 1 ∗ 1 0 − 3 1 * 10^{−3} 1103,衰减到 1 ∗ 1 0 − 5 1 * 10^{−5} 1105,而对象节点的学习率被分配为 5 ∗ 1 0 − 3 5 * 10^{−3} 5103,衰减到 1 ∗ 1 0 − 5 1 * 10^{−5} 1105

在这里插入图片描述
图 5. KITTI 数据集上的定性图像重建结果。

Experiment Settings.

图像重建设置中的训练和测试图像集是相同的,而在 NVS 任务中,我们渲染不包含在训练数据中的帧。具体来说,我们每隔 4 帧、每 2 帧和 4 帧进行一次训练,并且每 4 帧中只有 1 帧进行训练,即 25%、50% 和 75%。

我们遵循图像合成中的标准评估协议,并报告定量评估默认设置的峰值信噪比(PSNR)、结构相似性(SSIM)和学习感知图像块相似性(LPIPS)[32]。图像重建的结果如表 1 所示,NVS 的结果如表 2 所示,这表明我们的方法在两种设置下都优于基线方法。我们使用 75% 的训练数据在 V-KITTI 上可以达到 29.79 PSNR,而之前发布的最佳结果是 23.87。

在这里插入图片描述图 6. 不同渲染通道的图库。

3.2 Instance-wise Editing

我们的框架分别对背景和前景节点进行建模,这使我们能够以实例感知的方式编辑场景。我们定性地展示了删除实例、添加新实例和编辑车辆轨迹的能力。在图 7 中,我们展示了一些旋转和平移车辆的编辑示例,但可以在我们的视频剪辑中找到更多结果。

在这里插入图片描述

3.3 The blessing of moduler design

我们使用后景和前景节点、采样器和监督信号的不同组合进行评估,这归功于我们的模块化设计。

请注意,文献中的一些基线方法实际上对应于该表中的消融条目。例如,PNF [15] 使用 NeRF 作为背景节点表示,使用实例化 NeRF 作为具有语义损失的前景节点表示。 NSG [21] 使用 NeRF 作为背景节点表示,使用类别级 NeRF 作为前景表示,但采用多平面采样策略。我们的默认设置使用基于网格的背景节点表示,以及我们提出的前景节点表示的类别级方法。

3.4 Ablation Results

在本节中,我们分析不同的实验设置,验证我们设计的必要性。我们揭示了不同设计选择对背景节点表示、前景节点表示等的影响。具体来说,我们展示了 50,000 次迭代的所有实验。与之前的工作 [26,15,21] 在 90 张图像的短序列上评估他们的方法不同,我们使用数据集中的完整序列进行所有评估。由于它们不是开源的,并且不知道它们的确切评估序列,我们希望我们的新基准测试能够标准化这个重要领域。定量评价见表3。

对于背景和前景节点,我们用基于 MLP 和基于网格的模型替换默认模型(表 3 中的 ID 1),并在第 2 行、第 7-12 行列出它们的指标。在第 3-6 行中,我们展示了模型组件的有效性。对于模型和采样器,背景和前景节点的选定模块分别在斜杠之前和之后注明。

在这里插入图片描述

4 Conclusion

在本文中,我们提出了一个基于 NeRF 的逼真自动驾驶模拟模块化框架。我们的开源框架由一个后景节点和多个前景节点组成,可以对复杂的动态场景进行建模。我们通过大量的实验证明了我们框架的有效性。所提出的管道在公共基准上实现了最先进的渲染性能。我们还支持场景表示和采样策略的不同设计选择,从而在模拟过程中提供灵活性和多功能性。
Limitations.
我们的方法需要数小时的训练,并且无法实时渲染。此外,我们的方法未能考虑玻璃或其他反射材料上的动态镜面反射效应,这可能会导致渲染图像中的伪影。提高模拟效率和视图相关效果将是我们未来的工作。


抛砖:

  1. NeRF在自动驾驶领域的有效应用,效果很棒。
  2. 这个模块化挺好,可以自由组合各个小模块,可以针对不同场景较方便地切换模块与优化。
  3. 这份工作结合的NeRF在渲染方向的优势,似乎在NeRF重建方向由于效率等原因,很少看到相关应用,目前来看,可能NeRF重建还是后处理方面比较有优势(比如重建街景?)。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/108701.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

网上管理系统的分析及设计---应用UML建模

目 录 第1章 系统需求 第2章 需求分析 2.1 识别参与者 2.2 识别用例 2.3 用例的事件流描述 第3章 静态结构模型 3.1 定义系统对象 3.2 定义用户界面类 3.3 建立类图 第4章 动态行为模型 4.1 创建系统顺序图(协作图) 4.2 创建系统…

【Spring Boot】有这一文就够了

作者简介 前言 作者之前写过一个Spring Boot的系列,包含自动装配原理、MVC、安全、监控、集成数据库、集成Redis、日志、定时任务、异步任务等内容,本文将会一文拉通来总结这所有内容,不骗人,一文快速入门Spring Boot。 专栏地址…

Jmeter系列进阶-获取图片验证码(4)

安装工具 通过ocrserver工具识别图片验证码,解压后 .exe双击启动即可。 jmeter中使用 (1)HTTP请求获取验证码 (2)在获取验证码图片的接口下面添加监听器》保存响应到文件;如下图: &#x…

易点易动固定资产管理系统:为企业提供高效资产管理的必备利器

在如今竞争激烈的商业环境中,企业对于固定资产的管理显得尤为重要。然而,传统的手工管理方式已经无法满足企业对于高效、准确、智能化管理的需求。因此,引入一款先进的固定资产管理系统是必不可少的。易点易动固定资产管理系统作为一款领先的…

【Spring使用三级缓存解决循环依赖的过程】

testService1和testService2相互依赖 当Spring创建testService1对象时,它会先从一级缓存中查找是否存在testService1的实例。如果缓存中不存在testService1实例,它将继续查找二级缓存中是否存在testService1。如果二级缓存中也不存在testService1实例&…

浅述数据中心供配电系统解决方案及产品选型

安科瑞 华楠 【摘 要】现如今,社会主要领域已从对单个设备的关注转化为对于系统解决方案的关注,数据中心的供应商们也想尽办法去满足所面对的各方面需求。基于此,主要提出了云计算数据中心供配电解决方案,同时还对数据中心供配电…

如何在matlab绘图的标题中添加变量?变量的格式化字符串输出浅析

文章目录 matlab的格式化输出控制符字段宽度、精度和对齐方式的控制matlab的格式化输出总结 matlab的格式化输出控制符 Matlab在画图的时候,采用title函数可以增加标题,该函数的输入是一个字符串,有时候我们想在字符串中添加一些变量&#x…

Linux基础入门

一、操作系统安装方法 1、使用u盘安装 工具&#xff08;前提条件&#xff09;&#xff1a; <1>u盘 <2>镜像文件iso/msdn.itellyou.cn <3>把u盘做成PE&#xff1a;大白菜/老毛桃/winPE/软碟通/ultralSO 设置BIOS&#xff1a;通过u盘启动 安装系统&…

大橙子vfed 5.0去授权完美破解主题模版源码 | 苹果CMS

大橙子vfed 5.0去授权完美破解主题模版源码 | 苹果cms 大橙模版算是在苹果cms众多主题里&#xff0c;较为亮眼的一款了&#xff0c;主题简洁&#xff0c;功能众多&#xff0c;非常的齐全。 今天分享的就是大橙5.0版本模板&#xff0c;完美破解&#xff0c;自测无后门&#xf…

pywinauto:Windows桌面应用自动化测试(二)

前言 上一篇文章地址&#xff1a; pywinauto&#xff1a;Windows桌面应用自动化测试&#xff08;一&#xff09;_pywinauto中文手册_Lion King的博客-CSDN博客 下一篇文章地址&#xff1a; 暂无 一、书接上回 在上一篇文章地址中&#xff0c;我们提到去试用一下 “国产ap…

python自(2)切片 字典 遍历删除添加修改查询定义函数函数返回值作用域序列化异常报错urllib使用一个类型六个方法下载 视频音频图片

切片 # # 切片# s hello word# # 下标索引为0的 # print(s[0]) #h# # 左闭右开 &#xff08;左是下标开始的&#xff0c;右是几个索引值&#xff09;例如从0开始算 4个索引值 # print(s[0:4]) #hell# # 更改起始值的开始位置 # print(s[1:]) #ello word# # 下标结束位置 # p…

Ubuntu下Nginx配置ModSecurity详细思路及过程

下面是一个简介&#xff1a; Ubuntu是一个linux操作系统&#xff0c;Nginx是一个web服务器软件&#xff0c;ModSecurity是一款开源的web应用防火墙&#xff08;江湖人称“WAF”&#xff09;。 如果上面的概念没有一定的了解&#xff0c;下面的内容其实也能看。就是不好操作。…