本文经自动驾驶之心公众号授权转载,转载请联系出处。
写在前面&笔者的个人理解
为了在复杂的真实世界场景中安全导航,自动驾驶汽车必须能够适应各种道路条件并预测未来事件。基于世界模型的强化学习(RL)已经成为一种有前景的方法,通过学习和预测各种环境的复杂动态来实现这一点。然而目前并不存在一个用于在复杂驾驶环境中训练和测试此类算法的易于接近的平台。为了填补这一空白,这里介绍了CarDreamer,第一个专为开发和评估基于世界模型的自动驾驶算法设计的开源学习平台。它包含三个关键组成部分:
1)世界模型(WM)主干:CarDreamer整合了一些最先进的世界模型,简化了RL算法的再现。主干部分与其他部分解耦,并使用标准的Gym接口进行通信,以便用户可以轻松集成和测试自己的算法。
2)内置任务:CarDreamer提供了一套高度可配置的驾驶任务,这些任务与Gym接口兼容,并配备了经过实证优化的奖励函数。
3)任务开发套件:CarDreamer集成了灵活的任务开发套件,以简化驾驶任务的创建。该套件使交通流和车辆路线的定义变得容易,并自动收集多模态观测数据。可视化服务器允许用户通过浏览器追踪实时agent驾驶视频和性能指标。此外还使用内置任务进行了广泛的实验,以评估WM在自动驾驶中的性能和潜力。由于CarDreamer的丰富性和灵活性,还系统地研究了观测模式、可观测性和车辆意图共享对AV安全性和效率的影响。
领域发展背景
自动驾驶汽车预计将在未来的移动系统中发挥核心作用,具有许多有前景的益处,如安全性和效率。近年来,自动驾驶汽车的发展取得了巨大的成就。仅在美国,自动驾驶汽车已经在公共道路上行驶了数百万英里。然而,实现能够在复杂多样的现实场景中导航的鲁棒性自动驾驶汽车仍然是一个具有挑战性的前沿。例如,根据美国交通部联邦公路管理局的计算,自动驾驶汽车的碰撞率比传统车辆高出约两倍。
自动驾驶汽车的可靠性直接取决于自动驾驶系统在未预见场景中的泛化能力。世界模型(WM)以其卓越的泛化能力,通过学习环境的复杂动态并预测未来场景,提供了一种有前景的解决方案。特别是,WM学习了一种紧凑的潜在表示,该表示编码了环境的关键元素和动态。这种学习到的表示有助于更好的泛化,使WM能够在超出其训练样本的场景中进行预测。在内部,WM包含模仿人类感知和决策的组件,如视觉模型和记忆模型。事实上,人类之所以能够在遇到罕见或未见过的事件时采取适当的行动,正是因为人类内在的世界模型。通过模拟类似于人类智能的认知过程,基于WM的强化学习(RL)在诸如Atari游戏和Minecraft等领域展示了最先进的性能。然而,WM在自动驾驶中的应用仍然是一个令人兴奋的开放领域,部分原因是缺乏易于使用的平台来训练和测试此类RL算法。开发基于WM的自动驾驶学习平台对于该领域的研究将极为有益。
因此,受到这些因素的驱动,我们推出了CarDreamer,这是首个专门为基于WM的自动驾驶设计的开源学习平台。CarDreamer旨在促进算法的快速开发和评估,使用户能够在提供的任务上测试他们的算法,或者通过全面的开发套件快速实现自定义任务。CarDreamer的三大关键贡献包括:
- 整合WM算法以实现再现。CarDreamer集成了最先进的WM,包括DreamerV2、DreamerV3和Planning2Explore,显著减少了再现现有算法性能所需的时间。这些算法与CarDreamer的其他部分解耦,并通过统一的Gym接口进行通信。这使得只要新算法支持Gym接口,就可以无需额外的适配工作就能直接集成和测试。
- 高度可配置的优化奖励内置任务。CarDreamer提供了一套全面的驾驶任务,如变道和超车。这些任务允许在难度、可观察性、观察模式和车辆意图通信方面进行广泛的定制。它们暴露相同的Gym接口以方便使用,并且奖励函数精心设计以优化训练效率。
- 任务开发套件和可视化服务器。该套件不仅通过API驱动的交通生成和控制简化了自定义驾驶任务的创建,还包括一个模块化观察者以便于多模态数据的收集和配置。一个可视化服务器使代理驾驶视频和统计数据的实时显示成为可能,通过网页浏览器加速奖励工程和算法开发,提供即时的性能洞察。
其它框架介绍
这里简要介绍了CarDreamer所涉及的两大基石:CARLA ,一个高保真且灵活的模拟器,以及gym ,一个用于RL(强化学习)训练和评估的标准接口。
首先介绍CARLA,CARLA是一个开源模拟器,旨在模拟现实世界中的交通场景。CARLA基于Unreal Engine,提供了逼真的物理效果和高质量渲染。CARLA提供了包括地图、建筑、车辆和各种地标在内的数字资产。它支持各种传感器,如RGB摄像头、激光雷达(LiDAR)、雷达(RADAR)。用户可以创建车辆或行人,并完全控制这些角色。这确实是一个非常通用的工具,但其在RL算法应用中的主要缺点也源自其通用性。获取BEV(鸟瞰图)涉及一个繁琐的过程,阻碍了其在训练RL算法中的快速部署。
接下来介绍gym。gym是由OpenAI定义的一个标准接口,用于规范智能体与环境之间的通信。这个接口的核心部分由两个函数reset()和step(action)构成。前者将环境初始化为其起始状态。后者从智能体接收一个动作输入,模拟环境的演变,并返回观测数据、奖励信号、终止指示符和一些额外信息。通过这种方式,只要两者都支持gym接口,RL算法就可以在各种环境中进行轻松测试,而无需进行大量调整。已经有很多努力在开发各种gym基准测试,如Atari游戏、DMC套件。然而,在CARLA中基于WM的RL算法用于自动驾驶领域,CarDreamer是第一个通过gym接口提供多样化城市驾驶任务以促进训练和评估的平台。
CarDreamer网络结构
如图1所示,CarDreamer包含三个主要组件:内置任务、任务开发套件和世界模型主干。任务开发套件提供了各种API功能,包括在CARLA中创建车辆、控制交通流和规划路线。一个观察模块自动化地收集多模态观测数据,如传感器数据和BEV(鸟瞰图),这些数据由独立且可定制的数据处理程序管理。这些数据具有双重用途:它们被任务和训练可视化服务器所利用。可视化服务器通过HTTP服务器显示实时驾驶视频和环境反馈,并通过gym接口与世界模型算法无缝集成。在接收到智能体的响应作为动作后,观察模块在下一帧从数据处理程序中收集数据,从而继续这一操作循环。
这里精心设计了各种现实任务,从简单的技能(如车道保持和左转)到更复杂的挑战(如在不同路况下随机漫游,包括十字路口、环岛和不同的车流)。这些任务高度可配置,提供了许多选项,这些选项提出了自动驾驶中的基本问题。
可观察性与意图共享:在强化学习中,部分可观察性是一个重大挑战,其中不完整的状态信息可以通过包含所有历史步骤来指数级地增加输入空间的复杂性。为了解决自动驾驶中缺乏针对这些挑战定制的工具的问题,我们在CarDreamer中提供了三种可观察性设置:1) 视野(FOV)仅包含相机视野内的车辆。2) 共享视野(SFOV)使车辆能够与其自身视野内的其他车辆通信并收集FOV数据。3) 完全可观察性(FULL)假设具有完整的环境和背景交通信息。此外,用户可以控制车辆是否共享其意图,以及车辆与谁共享。这些配置与“传达什么信息”和“与谁沟通”的基本问题保持一致。观测模式:用户可以配置观测空间以包含各种模式,从RGB相机和LiDAR等传感器数据到BEV等合成数据。这种灵活性支持了能够直接从多模态原始传感器数据做出决策或使用BEV感知进行规划的端到端模型的开发。难度:难度设置主要影响交通密度,提出了重大的碰撞避免挑战。由于自动驾驶汽车的安全关键事件很少见,因此由于此类事件的罕见性,验证自动驾驶汽车的鲁棒性本质上很困难。CarDreamer特别设计用于在模拟这些罕见但关键事件的场景中全面评估安全性和效率。
奖励函数。CarDreamer中的每个任务都配备了经过优化的奖励函数,实验表明这可以使DreamerV3在仅10,000个训练步骤内成功导航至路标点(详见第5节)。值得注意的是,我们的实证发现表明,基于速度或增量位置变化对智能体进行奖励,相比于基于绝对位置进行奖励,能带来更好的性能。这是因为当仅基于位置进行奖励时,智能体可能会通过进行小范围的初始移动然后保持静止来利用奖励函数,因为任何进一步的移动都可能导致碰撞惩罚。在实践中,我们确实观察到了这种次优行为,其中学习的策略收敛到局部最优解,通过保持静止来避免碰撞。相反,基于速度进行奖励会迫使智能体保持持续运动以累积奖励,从而降低了过早收敛到不希望的静止策略的风险。奖励设计精心考虑了驾驶任务的关键要求,如轨迹平滑性,这在传统的强化学习算法中常常被忽视。通常,这些算法在其损失函数或价值估计中包含一个熵项,以鼓励探索并防止过早收敛。然而,在自动驾驶的背景下,这个熵项可能会激励车辆遵循锯齿形轨迹,因为这种不稳定的运动与更平滑的路径相比,会产生更高的熵奖励,即使两种轨迹在达到目标方面可能取得类似的进展。为了抵消这种影响,这里引入了一个专门设计的惩罚项,以阻止与目标方向垂直的运动。因此,我们开发了一个奖励函数,它有效地平衡了目标进度和轨迹平滑性,结构如下:
界面与用法:CarDreamer中的所有内置任务都采用了统一的gym接口,使得无需额外调整即可直接对强化学习算法进行训练和测试。除了直接使用外,CarDreamer还支持多种算法,包括课程学习算法,这些算法可以利用从简单到复杂任务的逐步进展;以及持续学习算法,其旨在解决在学习新任务时的灾难性遗忘问题。此外,对于模仿学习,CarDreamer简化了在模拟器中收集观测数据的流程。尽管最初是为基于WM的强化学习算法设计的,但gym接口使得它能够在各种算法策略中广泛应用。
1)任务开发套件
对于需要定制任务的用户,CarDreamer 提供了一个高度模块化的任务开发套件。这个套件可以根据不同级别的定制需求来满足用户的多样化要求。初始模块是“世界管理器”(World Manager),它满足了基础需求,如通过不同的地图、路线、生成位置或背景交通流来改变驾驶场景。世界管理器负责管理“参与者”(actors),这是一个从 CARLA 借用的术语,它包括所有实体,如车辆、行人、交通信号灯和传感器。它提供 API 调用以生成各种参与者,特别是在不同位置以默认或定制蓝图生成车辆。这些车辆可以由用户控制,也可以由自动驾驶仪(一种基于简单规则的自动驾驶算法)控制。在重置时,它会透明地销毁并释放资源。第二个模块是“观察者”(Observer),它自动收集各种模式下的观测数据。虽然它允许用户无需手动交互即可轻松访问预定义的观测模式,但它也支持数据规范的广泛定制。这是通过一系列数据处理器实现的,每个处理器都为特定模式提供数据,如 RGB 相机处理器和 BEV 处理器。每个数据处理器都高度模块化,并独立管理特定类型数据的整个生命周期。用户可以通过注册一个符合自己需求的新数据处理器来增强观察者。
第三个模块包含路线规划器,这些规划器可以满足多样化的任务路线需求。CarDreamer包含了几个规划器:一个随机规划器,用于在整个地图上进行探索性漫游;一个固定路径规划器,用于创建连接用户定义位置的路径点;以及一个固定终点规划器,它使用经典的A* 算法从当前位置生成到指定终点的路线。为了满足额外的定制需求,还提供了一个基类,用户可以通过重写init_route()和extend_route()方法(它们分别定义了每个时间步长的路线初始化和扩展)来开发自己的规划器。此外,该套件还包含一个可视化服务器,该服务器将Observer的输出和环境反馈的其他统计数据无缝集成,并通过HTTP服务器进行显示。这种自动化促进了快速反馈,无需额外的编码工作即可改进奖励工程和算法开发过程。
2)世界模型Backbone
CarDreamer中的世界模型骨干框架无缝集成了包括DreamerV2 、DreamerV3和Planning2Explore 等在内的最先进方法,从而促进了这些模型的快速复现。这种骨干架构经过精心设计,旨在将世界模型实现与特定任务的组件进行解耦,从而提高了模块化和可扩展性。这些组件之间的通信通过标准的gym接口进行有效管理,允许进行广泛的自定义。这种解耦使用户能够轻松地将默认的世界模型替换为自己的实现,支持快速原型设计、基准测试和与既定基准的比较分析。因此,CarDreamer为基于世界模型的算法提供了一个全面的测试平台,促进了该领域内加速研究和发展的生态系统。该平台鼓励用户在由多样化的驾驶任务和性能指标组成的一致且标准化的评估框架内探索创新的架构、损失函数和训练策略。
CarDreamer任务实验
这里使用了仅包含1800万个参数的小型DreamerV3模型(如图4所示)作为模型骨干。这个小型DreamerV3模型有32个CNN乘法器、512个GRU和MLP单元,而MLP在其RSSM中仅有两层。较小的内存开销约为10GB,这使得我们能够在运行CARLA模拟器的同时,在单个NVIDIA 4090 GPU上进行训练。在每个任务上训练智能体。
奖励曲线随时间步长的变化如图2所示。
交通量较少的简单任务,如“右转简单”和“车道合并”,通常在50,000步(约1小时)内收敛,而涉及更密集、更激进的交通流,需要避免碰撞的任务,则需要大约150,000至200,000步(约3至4小时)才能收敛。在评估中,我们采用了几种指标来严格评估在CarDreamer任务中执行的自动驾驶智能体的性能,详见表1。这些指标包括:
• 成功率:该指标衡量智能体车辆成功完成任务(到达目的地或行驶预定距离而没有事故或偏离车道)的百分比。
• 平均距离(米):表示在所有情节中,智能体车辆在情节结束前(无论是通过完成任务还是由于失败,如碰撞或超时)所行驶的平均距离。
• 碰撞率(%):计算智能体车辆发生碰撞的情节百分比。
• 平均速度(米/秒):测量智能体车辆在整个任务过程中保持的平均速度。这个指标反映了车辆在速度与安全性之间的平衡能力,指示其导航环境的效率。
• 路径点距离:该指标量化了与期望路线路径点的平均偏差。它评估了车辆遵循计划路径的能力,反映了其在遵循给定轨迹时的导航准确性和精确度。
1)不同观测模态下的预测
世界模型(WM)的想象能力使其能够有效地预测未来场景并管理潜在事件。为了评估WM在不同观测模态下的想象性能,我们在“右转困难”任务上进行了实验。选择了三种不同的模态:鸟瞰图(BEV)、摄像头和激光雷达(LiDAR)。对于每一种模态,WM都需要在给定的起始状态和一系列动作下,想象未来几步的观测结果。图4展示了结果,对比了三种模态下真实图像与想象图像的差异。第一行显示了真实观测图像,第二行是WM想象的结果,第三行是它们之间的差异。我们选择了在想象范围内最多64个时间步的帧。这些发现表明,尽管模态不同,WM在准确预测未来方面仍然表现出色。在BEV实验中(a),WM精确地预测了直行和右转车辆的位置和轨迹,以及BEV相对于自我车辆的旋转和平移。同样,在摄像头和LiDAR设置中,WM也成功预测了自我车辆前方行驶的车辆。
2)车对车通信的好处
CarDreamer的一个独特特性是其能够方便地定制车辆之间的通信水平。车辆可以共享视野(FOV)视图,从而获得不同的可观测性。此外,它们甚至可以共享意图(由车辆的计划路径点表示),以便更好地规划。我们利用这一特性来评估通信的影响。在一个agent上,在“右转困难”任务的不同设置下进行了训练和测试,即不同的可观测性和是否能够访问其他车辆的意图。由于密集的交通和来自视野外车辆的频繁潜在碰撞,“右转困难”任务特别适合测试可观测性和意图通信。奖励曲线如图5所示,一些性能指标如表2所示。请注意,在我们的奖励函数中,成功执行右转的行为大致由超过250的奖励表示。结果表明,有限的可观测性或缺乏意图共享会阻碍代理完成任务。图6中一个情节中均匀采样的图像提供了很好的解释:代理采用了保守且次优的策略,它在交叉路口停下来以避免碰撞。例如,在图6的前三行中,代理在并入车流之前停止移动。相比之下,完整的信息使自我车辆能够成功执行右转。