近些年来,随着自动驾驶技术的突飞猛进,无人车能够在大部分常规情景下有很好的表现。但是目前的技术仍难保证安全的部署,究其原因是在真实世界存在着很多安全关键(safety-critical)的场景而这些边界又是至关重要的。仿真测试变成了一种行之有效的手段,它能帮助研究者们能够以低成本的方式来生成大量的边界场景,从而全方位的测试和训练已有自动驾驶模型。由于无人车通过装配各种传感器来感知真实世界,真实的可拓展的传感器仿真变成为整个仿真系统重要的一环。
在 CVPR2023 的一篇 Highlight 工作,来自来自多伦多大学,麻省理工大学和 Waabi AI 的研究者展示了一个基于神经网络的相机 / 雷达仿真系统。
项目主页:https://waabi.ai/unisim/
论文地址:https://waabi.ai/wp-content/uploads/2023/05/UniSim-paper.pdf
不同于以往工作,UniSim 首次同时做到了:
1. 高度逼真 (high realism): 可以准确地模拟真实世界 (图片和 LiDAR), 减小真实世界和仿真的鸿沟
2. 闭环测试 (closed-loop simulation): 可以生成罕见的危险场景,测试无人车,并允许无人车和环境自由交互
3. 可扩展 (scalable): 可以很容易的扩展到更多的场景,只需要采集一次数据,就能重建并仿真测试
仿真系统的搭建
UniSim 首先从采集的数据中,在数字世界中重建自动驾驶场景,包括汽车、行人、道路、建筑和交通标志。然后,利用重建的场景进行仿真,生成一些罕见的关键场景。
UniSim 主要基于最近几年流行的 NeRF(神经辐射场)方法。
首先,UniSim 将场景分为三部分:静态背景(如建筑、道路和交通标志)、动态物体(如行人和汽车)和区域外物体(如天空和非常远的道路)。作者们用了多个 NeRF 来分别建模静态背景和每一个动态物体。更具体来说,作者们选择使用 Instant-NGP+SDF (signed distance function) 的表示方式。
针对自动驾驶场景的挑战(数据稀疏、场景复杂),UniSim 做了一些改进:
1. 因为动态物体往往只有某些角度可见,作者们使用一个网络 (Hypernet) 生成每一个物体的特征 (hash grid). 这样可以共享形状信息,从而生成更完整的汽车形状。
2. 渲染 (volume rendering) 得到一个低分辨率的 feature map, 然后用 CNN 上采样生成高清图片。这不仅降低了渲染时间(因为特征图分辨率较低),而且改善了生成图片质量(因为 CNN 可以通过周围像素信息进行推理)。
仿真能力展示
重放 (self-replay)
UniSim 可以准确的重建原始数据 (replay). 因为使用了 SDF (signed distance function), UniSim 还能够重建各种几何信息,比如 normal/depth。
动态物体行为控制 (dynamic-actor manipulation)
UniSim 可以将车辆从场景中删除,控制他们不同的行为,或者将其他场景中的车辆插入到当前场景中,以生成一些 safety-critical 的罕见场景。
自由视角渲染 (novel view synthesis)
自动驾驶汽车可以生成不同与原始视角的数据,比如向左变道,改变相机 / LiDAR 的位置。
闭环仿真 (closed-loop simulation)
结合以上的能力,UniSim 可以进行闭环的仿真测试。
首先,通过控制汽车的行为,UniSim 可以创建一个危险的罕见场景,比如有一辆汽车在当前车道突然迎面驶来。
然后,UniSim 仿真生成对应的数据。
接着,运行自动驾驶系统,输出路径规划的结果。
根据路径规划的结果,无人车移动到下一个指定位置,并更新场景 (无人车和其他车辆的位置)。
然后继续进行仿真,运行自动驾驶系统,更新虚拟世界状态 ……
通过这种闭环测试,自动驾驶系统和仿真环境可以进行交互,创造出与原始数据完全不一样的场景。
自动驾驶指标
验证仿真系统的准确度 (realism),只是视觉上逼真还不够,还需要从自动驾驶系统的角度进行验证。
检测(Detection)模型
第一个表格,Real2Sim 指的是用真实数据训练的模型,在仿真系统进行测试,Sim2Real 指的是用仿真系统训练的模型在真实数据中进行测试. Lane Shift 指的 UniSim 生成的 SDV 角度偏离原来的轨迹新场景。可以看到,用仿真数据训练的模型,效果非常接近真实数据。用真实数据训练的模型,在仿真数据上的性能也非常接近真实数据。
UniSim 还可以作为数据增强,提高模型的性能。这里的 Sim 指的是用仿真数据进行训练,包括 replay 和 lane-shift, 由于可以生成更多的场景 (variations), 所以甚至只在仿真数据上进行训练的效果,也能达到用真实数据训练的结果。
仿真和真实世界的鸿沟(Domain gap)
什么样的仿真系统和真实世界的鸿沟(domain gap)最小?自动驾驶模型在仿真系统中表现得越好(达到更好的检测结果),是否意味着该仿真系统越逼真呢?并非如此。更合理的解释是:当自动驾驶系统在仿真系统中的表现接近它在真实世界的表现时,这个仿真系统才更接近真实世界,而不是自动驾驶系统的指标越高就越好。举个例子,在真实世界的某个场景中,如果自动驾驶系统崩溃了(例如,检测失败),仿真系统在模拟这个场景时,如果自动驾驶系统能够顺利检测到物体并成功通过,作者们认为这个仿真系统并不完全可靠。在下面的表格中,作者们将模型在真实世界的结果作为标签,模型在仿真平台上的结果作为预测,计算一致性指标。他们验证了自动驾驶系统在仿真平台和真实世界之间的表现差距。具体设定和指标定义,请参考论文。
总结和展望
UniSim 是一个统一的传感器仿真平台,它可以处理大规模动态驾驶场景,统一了移动物体和静止背景表示,统一了相机和激光雷达和仿真,统一了动态场景控制和自由视角渲染。
它是首个可以达到如此逼真度的闭环仿真平台。在 UniSim 中,无人车和环境可以自由交互,并且仿真结果非常接近真实世界。这允许其可以测试罕见的关键场景,从而推动自动驾驶的研发。