地平线RAD:基于3DGS 大规模强化学习的端到端驾驶策略

作者 | SPiriT 编辑 | 自动驾驶之心

 原文链接:https://zhuanlan.zhihu.com/p/1888242399811175395 

点击下方卡片,关注“自动驾驶之心”公众号

戳我-> 领取自动驾驶近30个方向学习路线

>>自动驾驶前沿信息获取自动驾驶之心知识星球

本文只做学术分享,如有侵权,联系删文

原文信息:

https://hgao-cv.github.io/RAD/

TLDR

il:imitation learning ; rl:reinforcement learning

做了什么?

第一个提出基于 3dgs 来进行 rl 用来做 e2e policy。分以下三步走:

  1. 训练一个基础的 bev 和 perception model

  2. freeze感知,用 il 方式训练一个 planning head

  3. 基于上面的 planning head,用 3dgs 生成 sensor level 的 env,用 rl + il 混着训

有啥提升?

主要是碰撞率相比纯 il 少了 3 倍

有啥局限?

3dgs-env缺乏交互,只是log replay;3dgs 渲染非刚性行人、视野外信息、低光场景等效果不行

个人总结

总体来说,读起来不费劲,行文舒服、图文清楚、实验充分,有很实际的工程化改进。核心亮点是使用 3dgs 来构建 sensor-level 的 env,最后结果确实比 il 的方案要好一些。

工程化改进较多,比较务实,不那么纯 rl,比如辅助 task、il & rl mix training 等等。

其中对于辅助 task,rl 只贡献了 gae 作为 loss_weight,感觉像是 trajectory-level 的 loss,消融实验也显示没 ppo 那套loss也能改进指标。对于 il & rl mix + event reset,本质都是为了限制 rl 的探索,核心原因有 2 个:一个是缩小 rl的搜索空间,加速收敛;第二个是尽量保证和 expert traj 偏差不大,毕竟轨迹偏离太远 3dg-env就 G 了。不过最开始看 il 做 norm 以为是从 loss 角度,最后发现是 mix train,不知道在 loss 里面加入 kl_penalty 会不会没这么硬。最后文中说的 env-intersect 和 3dgs noisy sensor,很限制 rl 的探索上限了

论文细节

RAD:三阶段流程

整个流程如上。RAD接受多视角图像输入,输出动作的概率分布,最后从中采样动作控制车辆。

状态空间

bev encoder:常规操作,从 multi-veiwe image学一个 instance-level bev feature

map head:从 bev map 中学静态地图元素,包括centerline、lane divideer、boundary、arrows 这些

agent head:学习交通参与者的运动信息,包括location、orientation、size、speed 这些

image encoder:和上面并行,从图像中学习 planning 相关的特征

planning head: 用   作为场景表示(包括map \ agent \ image token),  是 planning 的 embedding,用 Transformer decoder 结构,其中   作 query,  作为 key 和 value。

动作空间

  • 0.5s 一帧,在这个期间内假定车辆的线速度和角速度不变

  • 动作分为横向动作   和纵向动作  解耦横纵向。具体定义如下:

其中  。横向是 -7.5m 到 7.5m 之间,离散化 61 个动作,间隔 0.25m 为一个横向移动距离;纵向是 0 到 15m 之间,同样是 61 个动作,每 0.25 一个 gap。结合状态空间和动作空间,策略和值函数可以表示为

pi_net
pi_net
v_net
v_net

奖励函数

设计目标:惩罚不安全的动作 + 鼓励对齐专家轨迹,所以有 4 个奖励:

  • :dynamic_collision,动态碰撞,ego 和 动态物体的 bounding box 重合时给负。

  • :static_collision,静态碰撞,类似同上

  • :postional deviation ,位置偏差(横向偏差),计算当前位置和专家轨迹投影点的欧氏距离,大于阈值给负。论文里阈值是 2.0m

  • :heading deviation ,同上,当前朝向和专家匹配点的朝向 diff,大于阈值给负。论文里阈值是 40°

注意:当这些事件发生时会直接 done 掉环境,因为触发这些事件时 3dgs-env通常会产生 noisy sensor data,对 rl训练有害。(简单说就是偏差太大或者碰撞,重建数据就乱了,环境会 G)

训练流程

  1. 感知预训练:训练 agent_head 和 map_head,隐式编码高级信息,这个阶段只更新 bev encoder \ map head \ agent head 的参数

  2. 规控预训练:il方式,从大规模的人类专家数据中学习动作概率分布,冻结感知参数,只训练 image encoder 和 planning head

  3. 强化后训练:rl + il,一起 fine-tune。rl 目的是引导策略对关键风险场景更敏感,适应分布外的情况。il 作为正则项保证策略行为和人类相近。如下图

具体而言,从收集的数据中选了大量危险的交通拥堵clip,每个 clip 独立训练 3dgs model 重建场景作为 env。剩下就是 rl 的常规操作了,并行 N个 worker,随机选择一个 3dgs-env 进行 rolllout,把 transition 存在 buffer 里,结束后随机选择下一个3dgs-env。

policy 和 env交互的动作,用简单的自行车模型来计算下一步的位置:

自行车模型来近似动作执行结果
自行车模型来近似动作执行结果

策略优化环节,分别用 ppo 算法和 il 一起优化 policy,训练一定步数后,新 policy 替换掉老 policy.

第三阶段,il + rl

训练细节

整个训练里面都分成横向和纵向两个部分,完全两个解耦的并行任务设定。

其中 reward 也按照横纵向来分配归属,除了 dynamic_collision 是纵向的 reward,其他都属于横向 reward。

最后的优化目标也是 2 个部分,如下:

ppo-loss
ppo-loss

辅助任务

为了稳定训练加速收敛,文章设置了一些辅助目标引导整个动作分布,结合特定的奖励来惩罚不好的行为。这里有分为“减速“ 、 “加速“、“左转“、“右转“这 4 个部分。

这里拿“减速“这个行为来举例,它在动作上和纵向 有关,在奖励上和前面的“动态碰撞“[dc]有关。引入了如下的一个定义。

dec_event
dec_event

 定义为时序上纵向   比旧的纵向   小的概率之和。

比如一条轨迹上有 5 个 timestamp,旧的纵向输出是  ,新的纵向输出  。从第 3 帧开始,新的纵向移动要比老的小【也就是刹车减速更厉害了】。

同时,假设新策略每一步的决策概率分别是  【也就说越来越确定】。根据前面的定义,我们可以得到 

同理,对于 “加速” 行为,上面的例子里面,只有第 2 帧时新的>老的,所以 

那下一步,对于这些减速、加速行为怎么定义偏好或者 loss呢?答案就在前面的 reward 设计里。如果在第 t 时刻发现车辆前面要发生动态碰撞,那么在 t 时刻应该鼓励“减速“行为。相反,车辆后面要发生碰撞,则鼓励“加速“行为。文章用下面的公式形式化表达这个偏好:

符号系数
符号系数
dynamic collision avoidance的辅助目标
dynamic collision avoidance的辅助目标

其中   就是   对应的 gae.

按照上面的逻辑,纵向有 2 个分别是“减速”和“加速”,横向也有 2 个: ,分别用来计算“横向位置偏差的辅助目标”和“纵向朝向偏差的辅助目标”。

综上所述,辅助任务目标和所有的优化目标,分别如下:

auxiliary objective
auxiliary objective
optimization objective
optimization objective

以上基本上就是大部分的技术细节了,下面来看看数据和实验指标。

数据情况

  • 第一阶段:收集 2000h 真实人类驾驶数据,用低成本的自动化标注获取 gt

  • 第二阶段:用里程计数据作为第二阶段监督学习的 gt

  • 第三阶段:选择4305个关键场景用 3dgs重建 env,3968个训练,337个评测

指标设计:

  • 动态碰撞率 DCR + 静态碰撞率 SCR = 碰撞率 CR

  • 位置偏离率 PDR + 朝向偏移率 HDR = 偏移率 DR

  • 平均偏移距离 ADD:描述碰撞和偏差发生时,和专家轨迹最近点的距离

实验结论

  • reward 设计:合适调参,所有的 reward 都有用;尤其 dc_reward 对减少碰撞有效

reward ablation
reward ablation
  • 辅助任务设计:所有的都有用,结合 ppo后 cr可以更低。

auxiliary ablation
auxiliary ablation
  • 训练配比:rl 和 il 数据比是 4:1 时最优

rl-il ablation
rl-il ablation
  • rl 必要性研究:和其他 il-based 算法比,指标都更好。说明了闭环训练的优势在于能更好处理动态环境

rl better il-based
rl better il-based

其他细节

对于 planning 的预训练,设置了一些 anchors: ,用最近邻匹配去匹配 gt: 。最后优化 loss 就是 dual focal loss

normalized nearest-neighbor matching
normalized nearest-neighbor matching
dual focal loss for il
dual focal loss for il

以上。

最后也推荐下自动驾驶之心打造的「3DGS理论与算法实战教程」,课程全面复盘了3DGS各个子领域的发展,从2DGS/3DGS/4DGS再到自动驾驶领域应用,以及最新的前馈GS。课程即将开课,欢迎大家加入学习!

早鸟优惠!名额仅限「30名」

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值