这是 21 年的一篇综述文章,可以算得上是最前沿的自动驾驶技术综述。这几年随着深度表征学习的发展,强化学习领域也得到了加强。本文会对目前最先进的自动驾驶 DRL 算法进行汇总和分类。

1. 简介

自动驾驶系统(AD system),由多个级别的感知和控制任务组成,目前在感知方面,已经可以通过深度学习架构来实现。但在控制层面,经典的监督学习已经不再使用,因为代理需要在每一个瞬间做出动作决策,这些决策可能会改变场景条件。

自动驾驶各级别的任务

2. AD system 的组成

2.1 感知模块 (Preception Module)

感知模块的目标是创建环境状态的中间级别表示(例如所有障碍物和代理的鸟瞰图),稍后将由最终产生驾驶策略的决策系统使用。 该状态将包括车道位置、可行驶区域、代理(例如汽车和行人)的位置、交通信号灯的状态等。 感知中的不确定性传播到信息链的其余部分。 强大的传感对于安全至关重要,因此使用冗余源可以提高检测的信心。 这是通过语义分割、运动估计、深度估计、污点检测等几种感知任务的组合来实现的,这些任务可以有效地统一成一个多任务模型。

动图封面
多视角相机融合的鸟瞰图

2.2 场景理解 (Scene Understanding)

该模块的作用是将感知模块获得的信息映射到高级动作或决策层。该模块旨在提供对场景的更高层次的理解,通过融合异构传感器源(如激光雷达、相机、雷达、超声波),抽象和概括场景信息,为决策制定提供简化的信息。

2.3 定位和建图 (Localization and Mapping)

定位和建图技术,又称 SLAM 是自动驾驶的关键技术之一。由于问题的规模,传统的 SLAM 技术通过语义对象检测得到增强,以实现可靠的消歧。 此外,局部高清地图(HD maps)可以用作物体检测的先验。

2.4 规划和推动策略 (Planning and Driving Policy)

轨迹规划是自动驾驶中的关键模块,在高清地图或基于 GPS 的地图上计划路线,并引导代理生成运动层的命令。经典运动计划会忽略环境动态和差分约束,因此类似于 A* 算法之类的基于 Djisktra 的算法在此问题中并不适用。而快速探索随机树(RRT)通过随机采样和无障碍路径生成来探索配置空间。目前有多种版本的 RRT 被用于自动驾驶管道中的运动规划。

2.5 控制 (Control)

这是最底层的运动控制,即汽车的加速加速,方向盘的转动角度,以及刹车。目前的车辆控制通常是基于经典的最优控制理论,通过状态空间方程 [公式] 中的汽车当前状态 [公式] 和 控制输入量 [公式] 来控制汽车。此方法通常使用 MPC 模型和 PID 控制器使车辆跟随轨迹。但是目前自动驾驶车辆通常使用的是强化学习,该方法的好处是可以处理随机控制问题以及具有未知奖励和状态转移概率的不适定问题。更多此方面的内容推荐阅读综述文 [1]

文献:

3. 强化学习 (reinforcement Learning)

强化学习(RL) 是于 监督学习(Sueprvised Learning) 和 非监督学习(Unsupervised Learning) 之外的第三种机器学习(Machine Learning) 方式。RL 通过一个代理来完成行动策略。代理的目标是最大化在其生命周期内收到的累积奖励。代理可以通过利用了解不同状态-动作对的预期效用(即预期未来奖励的折扣和)的知识来逐渐增加其长期奖励。

在形式化涉及单个 RL 代理的顺序决策问题时,马尔可夫决策过程 (MDP) 是最流行的解决方法。MDP 由一个状态集合 [公式]、一个动作集合 [公式]、一个转移函数 [公式] 和一个奖励函数 [公式] 组成。通过目标是找到最优策略 ,从而产生最高的折扣奖励总和期望值:

[公式]

其中,[公式] 是遵循策略 [公式] 的状态值方程,[公式] 是折扣系数,[公式][公式] 用于控制代理如何看待未来的奖励,低 [公式] 值鼓励代理人的短视行为,其中代理人旨在最大化短期奖励,而高[公式] 值导致代理人更具前瞻性并在更长的时间范围内最大化奖励。[公式] 为时间步数,它可以是有限的也可以是无限的。

另一个与状态函数方程相关的是状态-动作方程,又称为 "Q值":

[公式]

MDP 决策的组成部分和关系图

在许多现实世界的应用领域中,智能体不可能观察到环境状态的所有特征;在这种情况下,决策问题被表述为部分可观察的马尔可夫决策过程(POMDP)。解决强化学习任务意味着找到一个策略 [公式],该策略使状态空间中轨迹上的期望折扣总和最大化。RL 代理可以直接学习价值函数估计、策略和/或环境模型。动态规划 (DP)算法可用于在给定环境模型的奖励和转移函数方面计算最优策略。与 DP 不同,在 MonteCarlo 方法中没有完整环境知识的假设。蒙特卡洛方法在逐集意义上是增量的。情节完成后,价值估计和政策被更新。另一方面,时间差 (TD) 方法在逐步意义上是增量的,使其适用于非情节场景。与蒙特卡罗方法一样,TD 方法可以直接从原始经验中学习,而无需环境动态模型。与 DP 一样,TD 方法基于其他估计来学习它们的估计。

文章对于 RL 和 DRL 的算法进行了综合性的概述,这里不做详细的解释,建议系统性的学习这些算法。

4. 自动驾驶任务中的强化学习

在自动驾驶中,RL 可以完成的任务有:控制器优化、路径规划和轨迹优化、运动规划和动态路径规划、为复杂导航任务开发高级驾驶策略、高速公路、交叉路口、合并和拆分的基于场景的策略学习,预测行人、车辆等交通参与者的意图,并最终找到确保安全和执行风险估计的策略。

自动驾驶任务 (深度)强化学习方法和描述
车道保持 DQN [2] [3]
变更车道 Q-learning [4]
车道合并 LSTM [5]
超车 Q-learning [6]
十字路口 DQN [7]
运动规划 imporved A* [8]

参考论文:

4.1 状态空间、动作空间和奖励

为了成功地将 DRL 应用于自动驾驶任务,设计适当的状态空间、动作空间和奖励函数非常重要。

状态空间

自动驾驶汽车常用的状态空间特征包括:本车的位置、航向和速度,以及本车的传感器视野范围内的其他障碍物。此外,我们通常使用一个以自主车辆为中心的坐标系,并在其中增强车道信息,路径曲率、自主的过去和未来轨迹、纵向信息等。我们通常会使用一个鸟瞰图来展示这些信息。

鸟瞰图

动作空间

自主车辆的控制策略需要操纵一系列执行器,比如方向盘,油门和刹车(暂时不考虑其他的执行器)。有一点需要注意的是,这些控制器都是在连续空间中运行的,而大多数 DRL 控制器属于离散空间。因此我们需要选择合适的时间步长。

奖励

为自动驾驶的 DRL 代理设计奖励函数仍然是一个悬而未决的问题。 AD 任务的标准示例包括:向目的地行驶的距离 、本车的速度、使本车保持静止、与其他道路使用者或场景对象的碰撞,人行道上的违规行为,保持在车道上,保持舒适和稳定性,同时避免极端加速、制动或转向,并遵守交通规则。

4.2 运动规划和轨迹优化

运动规划是确保目标点和目的地点之间存在路径的任务。但是动态环境和变化的车辆动力学中的路径规划是自动驾驶中的一个难题,比如通过十字路口,或者并入高速公路。有许多文章在这方面做了尝试,并获得了不错的效果,比如论文 [4] [5] [6] [7]

4.3 模拟器和场景生成工具

自动驾驶数据集使用包含图像、标签对的训练集来处理监督学习设置,用于各种模式。强化学习需要一个可以恢复状态-动作对的环境,同时分别对车辆状态、环境以及环境和代理的运动和动作的随机性进行建模。各种模拟器被积极用于训练和验证强化学习算法。具体信息如下:

模拟器 描述
Carla [9] 城市环境,传感器有摄像头和Lidar,可以提供环境信息和语义分割
Torcs [10] 赛车模拟器,具有摄像头与位置信息
MADRaS [11] 基于 Torcs 的多代理模拟器
SUMO [12] 大场景的交通控制模拟器
Flow [13] 基于SUMO的多代理的交通控制模拟器
Highway-env[14] 基于 gym 的高速公路场景模拟器

参考论文

5. 自动驾驶在现实世界的挑战

此部分内容我目前不会接触到,因此先留个坑,等以后再填

本文使用 Zhihu On VSCode 创作并发布