近些年来,随着 自动驾驶技术 的突飞猛进,无人车能够在大部分常规情景下有很好的表现。但是目前的技术仍难保证安全的部署,究其原因是在真实世界存在着很多安全关键(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 中,无人车和环境可以自由交互,并且仿真结果非常接近真实世界。这允许其可以测试罕见的关键场景,从而推动自动驾驶的研发。