NeuRAD 是一种专门为动态自动驾驶场景设计的神经渲染方法,它的主要能力是:

✅ 能模拟现实感很强的传感器数据(相机图像 + 激光雷达点云):

  • 如图中 Argoverse 2 和 PandaSet 场景,NeuRAD 可同时输出图像、深度图、点云等。

✅ 可以改变自车(Ego Vehicle,测试的自动驾驶车辆)的位置或轨迹

  • 图中 ZOD 数据集的“Ego lane shift”演示了车道偏移的模拟。

✅ 可以移动、添加或删除其他交通参与者(如车辆)

  • 如 nuScenes 中的 actor shift、KITTI 中的 actor removal,展示了对场景中其他车辆的自由编辑;

  • PandaSet 示例还展示了在全视角场景中同时调整车辆和相机位置

前置知识

①闭环模拟

“闭环模拟”(Closed-Loop Simulation)是自动驾驶、控制系统和机器人领域常用的概念。一种“边测试边反馈”的模拟方式 —— 模拟系统的输出,会影响下一步的输入,就像真实世界一样。

②自车(Ego Vehicle)是指什么意思

“正在被控制或观测的那辆车”,也就是你自己的车,相对于道路上其他车辆来说。

想象你坐在一辆自动驾驶测试车上,这辆车上装有很多传感器(相机、雷达、激光雷达等),它就是Ego Vehicle

其他在道路上与它一起行驶的车,叫做其他交通参与者(actors 或 agents)

③ray drop

Ray drop 是激光雷达(LiDAR)系统中常见的一种现象,意思是:激光发射出去后,没有收到返回信号,因此该方向上没有点云数据。

在神经渲染(如 NeRF)中,要想模拟真实的激光雷达点云,不仅要模拟“有点”的地方,还要模拟:

  • “为什么这里没点”;

  • “在哪些地方应该有 ray drop”。

这就是所谓的传感器真实感(sensor realism)

NeuRAD就能够模拟Ray drop,模拟更接近真实雷达,越真实,那么就在闭环仿真中的安全场景再现,能提升训练数据增强的可信度,降低真实传感器和仿真之间的差距。

④Mip-Nerf360的场景压缩思想

背景问题:

在 NeRF 中,我们要建模的是一个3D世界,但真实世界没有边界(unbounded scene)——远处的天空、云、建筑物、地平线都非常远,但你不能无限扩展坐标轴去表示它们。

✅ Mip-NeRF 360 提出的办法:场景压缩 (contraction)

✳ 原理通俗解释:

  • 设计一个函数 ϕ(x),把无限远的空间 “压缩” 到一个有限体积的盒子里;

  • 近处的点几乎不变,远处的点压得更紧密;

  • 所有点都能用有限空间的 Hash Grid 编码;

  • 这样可以:

    • 保证远处天空、树、建筑也能被表示;

    • 使用一个有限大小的 Hash Grid 表示整个世界。

📦 类比说明:

想象你用一个橡皮球压缩地图:

  • 球心是摄像机;

  • 离你越近的地方被压缩得越轻微;

  • 离你很远的地方被“卷进来”放在球壳附近;

  • 所有东西都在这个球里,方便用神经网络统一建模。

⑤混叠问题

当我们以较低的分辨率去捕捉高频/细节丰富的信号时,信息会丢失或扭曲,这种失真就叫做混叠(aliasing)

在图像/NeRF中体现为:

  • 远处楼房的窗户、树叶的边缘,变得锯齿状或出现波纹;

  • 渲染时看起来“模糊”、“不真实”;

  • 这是因为采样不足以覆盖所有细节,系统无法判断“这个像素到底属于谁”。

Zip-NeRF 是怎么“抗混叠”的?Zip-NeRF 是第一个解决 iNGP 哈希编码 aliasing 问题的方法,主要有 两大核心策略

✅ A. Multisampling(多点采样):

  • 每条光线不只采一个点,而是在一小段内采多个点

  • 然后取它们的 平均位置编码值

  • 这样可以模拟“这条光线覆盖区域内的平均特征”,避免单点误导网络。

✅B. Downweighting(尺度感知加权):

  • 不同 hash grid 层的 cell(网格单元)大小不同;

  • 如果你采样的位置落在一个很细小的 grid cell 中,而这条光线的“覆盖范围”很大(例如是从远处看到的),那你不该用太细的细节;(也就是说光线是从远处发来的,我们对于远景的要求没有那么高,不需要知道它具体的图案,只需要知道平均颜色,而这时候的多分辨率哈希网格又特别细(分辨率特别高,每个cell很小),也就说多分辨率哈希网格想去捕捉细节信息,但是我们并不需要,所以要降低这个光线采样点在这个分辨率的哈希网格下的权重)

  • 所以根据光线的“观察尺度”来决定该不该使用高分辨率的网格特征。

📌 类比:你在远处看一块马赛克地砖时,不需要知道每块瓷砖是什么图案,只需要知道平均颜色就行了。

⑥什么叫做金字塔视锥

每条光线都有一定“宽度”,因为它对应一个像素块;

离相机近,锥体底面小;离相机远,锥体底面大(类似激光雷达发散角);

所以这条“光线”真正代表的是一个“锥形区域”,这个区域内所有内容都会投射到同一个像素上。

摘要

  • Nerf:一种能从不同角度合成图像的技术,已经在自动驾驶领域受到关注。可以用于:在虚拟环境中测试自动驾驶系统(闭环模拟);增强训练数据(数据增强)。

  • 现有方法的问题:训练太慢;需要很多语义标注;泛化能力差;因此难以大规模应用在自动驾驶场景中。

  • NeuRAD:专为自动驾驶数据设计的新方法。特点有网络结构简单;同时模拟相机和激光雷达的特性(如滚动快门、光束发散、丢失点云等);可直接应用于多个数据集,并在在5个主流自动驾驶数据集上都取得了最先进的效果

1 Introduction

  • Nerf技术背景:可以通过学习三维场景,从新的角度合成逼真的图像;已广泛用于新视角合成三维建模姿态估计等任务;在自动驾驶(AD)中,NeRF 可以创建“虚拟交通场景”,用于不伤车不伤人地测试危险情

  • 现有方法的问题:训练太慢;需要很多语义标注;泛化能力差;因此难以大规模应用在自动驾驶场景中。

  • 现有尝试改进:一些方法(如 NSG、S-NeRF)尝试把场景划分为静态背景 + 动态车辆,每个单独建模;另一些方法(如 UniSim、MARS)借助了 Instant-NGP(快速神经图元) 来提高训练速度;但这些方法在:多相机设置(360°)下表现不佳;忽略了激光雷达中的关键现象,如“点云丢失”(ray drop);缺少抗混叠策略,影响大场景精度。

  • NeuRAD:一个用于自动驾驶场景的可编辑新视角合成方法(NVS),具备以下特点:

    • 首次结合激光雷达建模与 360° 多相机支持,可同时生成相机图像与雷达点云;

    • 一个统一的网络同时建模静态与动态元素,通过“位置信息”区分,无需多个模型;

    • 建模了多种关键传感器特性:如滚动快门、光束发散、点云丢失等;

    • 在5个主流自动驾驶数据集上验证性能优异,不需要对每个数据集进行专门调参。

2 Related Work

  • 为了提升Nerf效率的方法:Instant-NGP使用可学习的哈希编码,替代 NeRF 原本的傅里叶位置编码,大大加快了训练速度;Zip-NeRF结合了 mip-NeRF360 的抗锯齿思想(解决图像锯齿和模糊)和 iNGP 的快编码来提高训练的速度和渲染的质量。

  • 现有基于Nerf的自动驾驶领域的神经渲染代表方法:

    方法特点/问题
    NSG、PNF每个对象/背景用一个 MLP,不适合大场景
    S-NeRF用单独 MLP 模型每个动态物体,训练时间很长
    Block-NeRF支持城市级场景,但只建模静态背景,不支持动态行为
    SUDS用三个网络分别建模静态、动态物体和远景,但无法编辑动态轨迹
  • 基于Nerf做闭环检测的有:

方法问题说明
MARS设计模块化,支持编辑,但不支持原生激光雷达;依赖深度图;无语义监督时效果差
UniSim模拟效果真实,但有多个问题:① 模型使用多个独立 hash grid,结构复杂;② 静态背景只在点云附近建模;③ 使用 CNN 上采样导致 aliasing(图像失真);④ 对高大物体(如建筑)模拟不全;⑤ 没有建模 ray drop 等雷达真实特性
  • NeuRAD:针对上述问题,提出统一建模(静、动同时建模)、抗混叠策略(抗锯齿,质量好)、支持 ray drop(模拟真实感的激光点云,传感器具有点云缺失的特性,Ray drop 是激光雷达中“看不到”的部分,NeuRAD 不仅建模“看到什么”,还建模“看不到什么”,从而让渲染更真实。)、优化性能(速度快)、泛化能力(适用于多个数据集)、动态对象可编辑。用于数据增强和闭环检测。

3 Method

NeuRAD目的构建一个神经网络模型,能够高效(快速)生成真实的传感器数据(图像、雷达),并且可以灵活地修改:自车(ego vehicle)的位置和朝向;场景中的其他车辆(actors)的位置或行为;甚至同时修改两者。

输入:带位姿信息的多视角相机图像;激光雷达点云;车辆(或其他参与者)的大小与位姿。

上述是NeuRAD的框架流程图:

  • Neural Feature Field(神经特征场):用一个神经网络来同时表示静态背景动态物体,动态物体用 4D 哈希网格(位置 + 物体ID),静态背景用普通的空间哈希网格,这些信息都进入 MLP 网络中,预测几何(SDF)和特征向量。

  • 相机/雷达建模(Sensor Rays):分别处理来自 相机光线激光雷达光线 的输入,光线会带有Rolling Shutter(滚动快门)、Sensor Embedding(传感器编码)、Viewing Direction(视角方向)、Scale Weighting(根据距离进行抗混叠加权)。

  • 输出预测内容:Ray Drop Probability:哪些地方雷达可能丢失点;Intensity:雷达反射强度(决定点云清晰度);RGB:最终合成的图像;Depth:对应的深度图(用于构建3D场景结构)。

NeuRAD 像是一个“可控的场景生成器”,不但能还原你看到的,还能模拟你“想看到”的各种情况(比如换道、添加车辆、换传感器),而且结果非常逼真,训练速度也快,适合大规模模拟自动驾驶情景。

3.1 Scene representation and sensor modeling(场景表示和传感器建模)

场景表示:

  • Neural Scene Rendering(神经场景渲染):使用一个叫 Neural Feature Field (NFF) 的模型来表示整个3D世界;NFF 是对 NeRF 的扩展:它不再输出颜色密度,而是输出几何形状(SDF)和特征向量(类似于Neus当中的SDF网络,输出SDF值和一个特征向量,只不过Neus还有一个RGB网络用于生成颜色);输入是位置 x 和视角 d,输出是几何值 s 和特征向量 f,用于体积渲染(用于得到每个像素颜色)。

  • 体渲染公式(与传统的Nerf和Neus都不一样),相当于体积渲染是通过NFF输出的特征加权求和得到的,其中的权重通过每条射线上采样点的不透明度得到,而不透明度有通过NFF输出的SDF值计算得到:

传感器建模:

  • 相机建模:为每个像素生成光线,进行体积渲染,得到一个低分辨率的特征图;然后用 CNN 上采样 得到最终图像;好处是显著减少光线数量,提升速度。

CNN上采样是什么?CNN 上采样是一种将低分辨率图像/特征图还原为高分辨率图像的方法,常用于图像生成、超分辨率、语义分割等任务。

在 NeuRAD 中:系统先生成一个 低分辨率的“特征图”(1/4 分辨率);然后使用 卷积神经网络(CNN)进行上采样,生成最终的高分辨率 RGB 图像。

那么为什么这样可以减少光线数量,提升速度?

每个像素都需要发射一条光线 → 每条光线上采多个点(N个) → 每个点都要前向推理网络。

如果图像分辨率为 H×W,则要计算约 H×W×N次前向。

而在 NeuRAD 中:它只在一个低分辨率网格上,比如 H/4×W/4,计算射线采样;渲染后只得到一个小的特征图(特征图保留了全局语义和几何信息(不是简单的像素点));然后用 CNN 进行上采样(NeuRAD 训练时有图像真值作为监督,CNN 会自动学会“补全”缺失的细节,并且NN 结合了深层特征表达,能重建几何一致、纹理自然的图像) → 高分辨率图像。

总结:因此对于相机图片的渲染NeuRAD在提升渲染速度的同时,保证了渲染质量。

  • 激光雷达建模(不是重点了解的对象,因此比较简单):

    • 激光雷达发出束线,返回深度和反射强度(决定生成点云的清晰程度);

    • NeuRAD 将每条雷达束建模为一条射线,使用与图像类似的体积渲染(先预测每个像素点的深度,再通过深度输入到MLP得到反射强度):

      • 预测深度

        ,也就是光线到各点的加权平均距离;

      • 预测强度:通过 MLP 网络处理渲染特征,输出反射值,进而合成激光雷达点云。

  • Ray Drop(激光丢帧)建模

    • 其他方法忽略了激光束未返回任何点的情况;

    • NeuRAD 不仅要学会哪些点能够看到,还要专门学习“哪些点会丢失”:

      • 这些丢帧可能是因为打在玻璃、镜子、水面或太远等;

      • 这些区域在点云中是“空的”,但在仿真中必须还原(这样就越接近真实数据,便于做数据增强);

    • 具体做法:

      • 使用上述激光雷达建模得体积渲染得到的特征;

      • 用 MLP 预测每条光线的 ray drop 概率

上述是对于ray drop建模的可视化效果:

  • (a) 真实点云地面真值;

  • (b) 不建模 Ray Drop,点云过于稠密、不真实,Chamfer = 22.6(因为GT根本不存在这些点);

  • (c) 建模 Ray Drop 后,空洞还原准确,Chamfer 降至 4.1

📌 总结:Ray Drop 是雷达还原中不可忽视的因素,建模它能显著提升点云仿真精度。

3.2 Extending Neural Feature Fields(扩展神经特征场)

这一节是NeuRAD对于动态场景的建模,他将上一节的NFF(神经特征场)加入了时间戳,变为了能够处理存在动态变化的自动驾驶场景的扩展的NFF,下述是扩展后的NFF公式:

如何构建扩展后的 NFF(相当于NeuS的SDF的MLP和RGB的MLP,只不过Neus的SDF的MLP输入的只有编码后的位置x,没有时间戳(因为不处理动态场景),然后输出采样点SDF值和特征向量,而RGB的MLP输入的是方向编码后的方向d和SDF的MLP输出的特征向量,最终输出每个采样点的颜色值):

  1. 空间位置 + 时间(x, t)

    • 使用“actor-aware hash encoding”方式编码(可感知动态物体的哈希编码);

    • 然后输入到一个小的 MLP,输出:

      • 距离(SDF):用于渲染几何;

      • 中间特征 g:用于渲染图像、点云等。

  2. 视角方向 d

    • 用球谐函数(spherical harmonics)进行编码;

    • 用于捕捉视角相关的反射、纹理等效果。

  3. 融合

    • 将视角编码和特征 g 一起输入第二个 MLP;

    • 最终输出用于渲染的特征向量 f。

    • 渲染的特征向量 f输入到上一节的渲染公式中就可以渲染新视角图像。

既然已经知道如何建模动态场景,那么接下来就要考虑将动静态场景一体化:

  • 对于静态场景

    • 使用多分辨率 hash grid 表示;

    • Mip-NeRF 360 的场景压缩技术 来适应远近尺度(既能表示近处路面,也能表示远处天空);

    • 不再为远处专门建一个网格(相较于SUDS来说,SUDS就是对于远景单独建立了一个网络),节省资源。

  • 对于动态场景:

    • 动态物体(比如别的车)会移动,直接在世界坐标下建模非常复杂,而且会导致时间 t 带来巨大的变化。

    • 每个动态物体都有 3D 边界框 + 姿态(SO(3))

    • NeuRAD 的做法分三步:

      ①判断点是否在某个动态物体(Actor)的包围盒里

      • 比如你采样了一个位置 x,加上时间 t,

      • NeuRAD 会先判断它是不是“落在某个动态物体里”;

      • 如果是,那就说明这个点属于一个动态对象,而不是静态背景。

      ② 将动态点坐标从世界坐标系转换到该物体的局部坐标系

      • 每个物体在每一帧都有一个 3D 边界框(位置、大小、旋转);

      • NeuRAD 把 x 从全局坐标转换成该物体的“局部坐标”,即 actor 坐标系下的位置;

      • 转换后,点的位置在该物体内部是相对静止的(时间 t 就不重要了);

      • 所以:转换之后就可以忽略时间 t,因为我们在这个物体“内部”的局部空间做建模。

      ③ 用一个“4D 哈希网格”来编码这些点

      📌 什么是 4D 哈希网格?

      • 静态场景用的是 3D 哈希网格(x, y, z);

      • 动态物体要再加一个维度 → actor index(物体编号),因为是在动态物体边界框的局部坐标系,采样点对于这个坐标系是相对静止的,因此增加的维度不是时间t,而是动态物体编号,选择动态物体编号作为第四个维度,是因为使用的一个4D哈希网格进行编码,这个4D哈希网格需要知道各个动态点属于哪个动态物体,因此选择动态物体编号作为第四个维度;

      • 所以,动态物体使用的是一个 4D 哈希网格(x, y, z, actor_id)。

      ✳ 编码方式:

      • 比如第 1 个车的位置是 (x1,y1,z1,actor=1);

      • 第 2 个车的坐标是 (x2,y2,z2,actor=2);

      • 所有这些点都可以用一个统一的 4D 哈希网格表示;

      • 这样,只需要一个网络结构,就能编码所有动态物体。

      ④对于动态场景建模:

      • 相较于每一个动态物体一个哈希网格,NeuRAD用一个4D哈希网格统一表示了所有的动态物体,不论是渲染推理(利用CNN上采样)、静态背景建模(利用Mip-nerf360,不用为远景单独建立一个网络模型)和动态物体建模(利用一个4D哈希网格建模所有动态物体,且忽略了时间t)过程都加速了,因此NeuRAD才相较于Mars和SUDS来说速度和效率更高。

那么为什么上述扩展的NFF(为了动态建模)中需要用到时间t,后面动静态一体化的时候又不需要时间t了?

答:上述现象在NeuRAD中被称作时空解耦。在扩展的NFF中,输入的是(x,t,d),t作为显示输入是为了确定整段视频,也就所有帧中动态物体的运动轨迹,用于建模动态场景(世界坐标系下)。而对于单个动态物体建模时,将采样点坐标系转为局部坐标系,这个采样点相对于动态物体内部是静止的,因此不在需要时间t,输入到4D哈希网格的只有位置x和动态物体编号。

3.3 Automotive data modeling(自动驾驶数据建模)

本节内容主要是对于自动驾驶领域中传感器的复杂性、多尺度问题和采样策略进行详细说明。

  • 如何处理远近尺度差异?

    📌 问题:

    • 自动驾驶场景中同时存在:

      • 近处的车牌、路标;

      • 远处的高楼、天空;

    • 这些尺度差异会导致传统 NeRF/iNGP 混叠问题(aliasing),影响图像质量。

    NeuRAD做法(模仿Zip-Nerf的做法):

    • 计算该锥体在某段距离上的体积 Vi(这一步和zip-nerf不一样,zip-nerf是增加每一段采样点的数量,而这里采用视锥)

      • 把锥体按距离切分成小块,比如从 1 米到 2 米;

      • 每一段锥体看成一个截头金字塔;

      • 公式如下(论文中给出):

      其中 Ai是截面面积,和光线的扩散角、传感器大小有关。

    • 调整 Hash Grid 特征的权重(利用视锥体积来决定这个采样点在当前网格分辨率下对于最终渲染的贡献程度,zip-nerf是利用光线的观察尺度来决定)

      对于某个网格层级 l,它的 cell 大小为 nl,

      • 如果锥体体积 Vi比这个 cell 小,说明我们需要这个层;

      • 如果锥体 Vi很大,cell 又很小 → 说明这层太细了 → 就应该减少它的权重。

      权重调整公式:

  • 如何避免“太多光线采样”?

    📌 问题:

    • 一张图中既想渲染清晰的近处路牌,又想表现远处高楼视差;

    • 如果每条射线都采样几百个点,计算开销太大。

    🧠 NeuRAD 的解决方案:

    🔁 多轮“候选采样(Proposal Sampling)”:

    第一轮:用简化版 NFF 网络(没有t作为输入)生成一个粗略的“重要性权重图”;

    第二轮:按照这个权重图重点采样重要区域;

    第三轮:用完整的大模型(有t输入的NFF)只处理选出的这些重要点;

这相当于“先看一眼哪里重要 → 再精细看重要区域”。

  • 如何模拟滚动快门?

    📌 问题:

    • 相机图像通常是“逐行拍摄”的(rolling shutter),而不是一瞬间全部捕捉;

    • 快速移动时,图像边缘会出现几何错位或变形

    • 同样的问题也出现在激光雷达扫描中(点云采样也是分段完成的)。

    🧠 NeuRAD 的做法:

    • 为每条射线分配一个拍摄时间;

    • 按照车的速度、传感器运动状态动态调整射线起点;

    • 所有动态物体的姿态也进行线性插值,确保位置匹配;

    • 模拟真实的滚动快门效果,减少偏移误差。

    上述是对于滚动快门建模的可视化效果:

    设置渲染结果
    不建模图像模糊严重,PSNR 仅 21.6,物体扭曲
    仅建模雷达稍有改善,但模糊仍然存在(22.1)
    同时建模雷达+相机滚动快门图像最真实(22.6),树、杆子几何正确

    📌 总结:滚动快门对高速场景影响巨大。两个传感器都建模才能有效还原真实视觉效果。

  • 不同相机参数怎么办?

    📌 问题:

    • 自动驾驶车上有多个摄像头,曝光、色彩参数、视野角度可能不同

    • 由于相机参数的不同导致合成的每张图像的颜色/亮度风格都不一样,那模型会被迫在每一张图上都记忆这些“风格偏差”,这样就会导致参数过多,效率低下,并且失去了模型学习场景本质几何和外观的真正意义。

    🧠 NeuRAD 的做法:

    • 不再为“每张图”都单独学习一个 外观嵌入变量(像 NeRF in the Wild 那样);

    • 而是 每个相机传感器只学习一个共享 外观嵌入变量(sensor embedding);

    • 将其作为附加输入用于渲染,简化模型并防止过拟合;

    • 同时提高推理效率(不用记忆每张图的风格差异,参数少了,效率就高了)。

  • Noisy Actor Poses:动态物体姿态不准怎么办?

    📌 问题:

    • 数据集中动态车辆的位姿信息(位置和方向)可能不精确,尤其是追踪算法生成的;

    • 会导致动态物体出现模糊或错位。

    🧠 NeuRAD 的做法:

    • 将物体的位姿(3D平移 t + 6D旋转)作为可学习参数加入模型中;

    • 在训练过程中一起优化物体姿态,相当于对追踪结果做“姿态微调”;

3.4 Losses

这部分解释了 NeuRAD 如何用图像和激光雷达数据来联合监督训练网络,让模型学会生成更真实的图像和雷达点云。

  • 相机图像监督

    📌 1. 重建损失 Lrgb

    • 计算预测图像与真实图像之间的像素误差(通常是平方差);

    • 表示颜色还原是否准确。

    📌 2. 感知损失 Lvgg

    • 把预测图像和真实图像都输入 VGG 网络,提取语义特征;

    • 比较特征层的差异,衡量“看起来是否像”。

  • 激光雷达点云监督

    📌深度损失 Ld

    • 预测点的深度 vs. 实际点的深度;

    • 用于训练模型预测激光打到哪。

    📌 2. 强度损失 Lint

    • 点的反射强度(是否亮/暗);

    • 用平方差度量预测值和真实值之间差异。

    📌 3. 丢帧损失(Ray Drop Loss)Lpd

    • 模拟雷达“看不到”的情况;

    • 二分类交叉熵(Binary Cross Entropy) 训练 ray 是否 drop;

    • 很关键,用于模拟玻璃/远处等“打不中”的区域。

    📌 4. 权重衰减损失(Weight Decay)Lw

    • 针对“空白区域”,模型可能会预测出假的点;

    • 所以对距离真实点太远的采样点,其特征权重 wij 要衰减;

  • 不使用 Eikonal Loss,原因?

    • Eikonal loss 用于约束 SDF 光滑性(使梯度为1);

    • NeuRAD 省略了它,因为它:

      • 计算成本高;

      • 实际提升小;

      • NeuRAD是做新视角渲染的,而不是表面重建,如果是表main重建的话,这个正则化损失作用比较大;

      • 用点云的 weight decay 方式已经能起到近似效果。

3.5 Implementation details

这部分简要说明了模型的训练配置、训练时长以及代码实现平台。NeuRAD 基于 Nerfstudio 实现,支持高效训练(Adam 优化器,单卡A100 1 小时),主模型训练 2 万步,同时还提供更大规模的 NeuRAD-2x (更大的网络规模和更长的训练时间)版本以展示扩展性。

4 Experiments

在 5 个主流自动驾驶(AD)数据集上进行了测试,分别是:nuScenesPandaSetArgoverse KITTIZOD(Zenseact Open Dataset),这些数据集涵盖了不同城市、天气、传感器组合,是业界评估自动驾驶系统的经典基准。

实验设置:所有数据集使用 相同的模型结构和超参数;没有专门针对某个数据集做微调 → 说明模型具有良好的泛化能力

评估方式:NeuRAD 在 新视角合成(Novel View Synthesis) 任务上的表现,包括:使用验证图像评估图像合成效果;使用无标签传感器位姿(不依赖真实轨迹)进行测试,检查模型能否自洽地合成内容。

做了模型组件的 消融实验(Ablation Study),分析哪些模块对性能贡献最大;还研究了:real-to-sim gap(现实到模拟的差距)模型失败情况(Failure cases)

4.1 Datasets and baselines

本节对于五个数据集,以及每个数据集的对比方法进行了介绍:

4.2 Novel View Synthesis(新视角合成)

NeuRAD 使用三个标准指标评估图像合成效果:PSNR:衡量像素级误差(越高越好)、SSIM:衡量结构相似度(越高越好)、LPIPS:衡量感知差异(越低越好)。

下述是表一的内容,展示了NeuRAD的图像合成指标与其他方法的对比

数据集NeuRAD 提升点
Panda FCNeuRAD 和 NeuRAD-2x 均优于 UniSim,尤其在 LPIPS(感知质量)上提升明显
Panda 360NeuRAD-2x 显著优于 UniSim,SSIM 提升 + LPIPS 大幅下降
nuScenesPSNR/SSIM/LPIPS 均达到或接近 SOTA 水平,超越 Mip360
KITTINeuRAD-2x 明显优于 MARS/SUDS,LPIPS 降至仅 0.066(感知最真实)
Argo2 & ZOD仍显著优于基线方法,说明具有很强的泛化能力

📌 总结:NeuRAD 在五个数据集上全部达到最佳或次佳性能,尤其在图像结构保真(SSIM)与感知质量(LPIPS)方面显著超越现有方法。

NeuRAD 同样模拟雷达数据,并使用以下指标评估:

  • Depth Median L2 Error:预测深度误差(越低越好);

  • Intensity RMSE:雷达点反射强度误差(越低越好);

  • Ray Drop Accuracy:能否预测哪些光线“打不中”(越高越好);

  • Chamfer Distance:预测点云与真实点云的距离(越低越好)。

下述是表二的内容,展示了NeuRAD的激光雷达点云合成指标与其他方法的对比

仅在 PandaSet 上评估雷达性能:

指标NeuRAD 提升点
Depth从 0.07 降至 0.01,误差大幅减少
Intensity降至 0.061,准确模拟强度特征
Ray Drop Acc精度高达 96.2%,远超基线
Chamfer Distance从 11.2m 降至 1.6m,模拟点云与真实点云几乎一致

📌 总结:NeuRAD 能精准模拟雷达数据的深度、强度和空洞区域(drop),为真实自动驾驶仿真提供强大支持。

4.3 Novel scenario generation(新颖的场景生成)

NeuRAD 不只是要在训练时看到的视角之间插值合成图像,还要能生成“从未见过”的新视角图像,才能在实际应用中具备实用价值,例如在自动驾驶仿真中尝试新路线或动态场景。

该表评估了 NeuRAD 在“改变自车/目标位置”时能否生成可信图像,使用指标是:

  • FID(Fréchet Inception Distance):衡量生成图像与真实图像的分布差异,越小越好。由于没有真实图像可对比,采用 FID 指标 衡量生成图像的分布是否与真实图像接近;使用“不偏移”(no shift)场景作为对照组。

📌 设置说明:

  • Ego shift:自车横向平移2m/3m(模拟变道)或垂直移动1m(模拟摄像头装在不同高度);

  • Actor shift:动态物体的旋转(Rot.)或平移(Trans.)变化(模拟不同的目标行为);

  • 比较对象包括 UniSim 原版与作者复现版本。

📌 结果总结:

设置NeuRAD 优势
自车偏移(Lane/Vert)NeuRAD 明显优于 UniSim,FID 降低 30+,甚至接近真实分布
动态目标变化(Actor shift)NeuRAD 更稳定,FID 更低,说明合成效果更自然
NeuRAD w/ opt加入姿态优化后效果更佳,FID 进一步下降

✅ 总结:NeuRAD 在进行位姿编辑(如改变自车或目标位置)后仍能生成外观逼真结构合理的新视角图像,这对仿真系统和自动驾驶模拟意义重大。

4.4 Ablations(消融实验)

这章节主要是做消融实验,下述是做消融实验各个组件的作用:

编号模块去掉后的影响
a)CNN 解码器图像质量大幅下降(PSNR 下降至 25.29,LPIPS 明显升高),说明 CNN 在减少采样光线数量提升画质与速度方面至关重要。
b)Rolling Shutter 建模定量指标变化小(图像略模糊),但视觉上严重失真(见 Fig. 3),说明其对几何精度影响大。
c)锥体光线体积权重 Downweighting图像质量下降(尤其 SSIM),说明多尺度场景中这项机制能压制混叠噪声、提升分辨感。
d)传感器 appearance embedding图像感知质量下降,说明它帮助模型适应不同摄像头参数(如曝光),提升跨传感器泛化能力
e)Ray drop 建模(缺失点)图像结构严重失真(SSIM 下降至 0.685),说明它对模拟真实点云稀疏结构是关键性的。
f)统一 4D 动态网格替代单独每个物体的网格保持高质量的同时,训练速度明显提升(MP/s 从 1.5 → 1.9),是高效的动态建模方式。
g)将 SDF 替换为 NeRF 式密度场几乎无性能损失,但适配性变强:SDF 适合建表面,密度场适合处理如雾或玻璃等难建表面场景。

下述表4是各个消融组件去掉之后对应的各个指标值:

5 Conclusions

NeuRAD 提出了一种高效、真实且可编辑的 3D 动态自动驾驶模拟方法,结合相机与雷达输入,在多个公开数据集上表现优异,并为后续研究提供了开源平台。尽管当前仍存在不支持变形与极端天气的局限,但其为 NeRF 在自动驾驶中的落地应用迈出了关键一步。

Logo

北京人形旗下天工造物具身智能开源社区,聚焦具身天工与慧思开物两大平台

更多推荐