DIVER技术解析:基于强化学习的扩散模型,如何破解端到端自动驾驶的“行为保守”难题?

当自动驾驶车辆只会"机械模仿",而无法"灵活决策"时,真正的智能就无从谈起。DIVER 框架的核心使命,正是赋予机器这种"思考"和"选择"的能力。

本文深入解析了 DIVER (Reinforced Diffusion for End-to-End Autonomous Driving) ------ 一个将扩散模型 的生成能力与强化学习 的优化目标相结合,以解决自动驾驶规划中 "行为保守""模式崩溃" 问题的创新性端到端框架。


1. 核心问题:为什么模仿学习会让自动驾驶"畏手畏脚"?

目前主流的端到端自动驾驶系统严重依赖模仿学习 。这种方法存在一个根本性局限:模型学习的唯一目标是最小化与数据集中"唯一"专家轨迹的差距。这导致两个严重后果:

  1. 行为保守与模式崩溃:模型倾向于生成最"像"专家、最"平均"的轨迹,不敢做出变道、超车等必要但略有风险的决策。即使生成多条轨迹,它们也往往高度相似,失去了多模态预测的意义。
  2. 安全与多样性矛盾:模型为了追求与专家轨迹的L2距离最小,可能会忽略碰撞风险、交通规则等更高层次的语义目标。

DIVER的提出,正是为了打破这一瓶颈。其核心思想可概括为:

"让扩散模型负责天马行空地'想象'多种可能(生成多样性),再让强化学习负责脚踏实地地'评估'和'优化'这些可能(确保安全与合理)。"


2. DIVER 技术框架总览

下图清晰地展示了DIVER的工作流程:感知信息经过编码后,一方面通过条件扩散模型生成多模态轨迹,另一方面通过强化学习模块,利用精心设计的奖励函数对这些轨迹进行评价和优化,最终输出既多样又安全的驾驶规划。

DIVER 整体框架图:融合扩散生成与强化学习优化的端到端自动驾驶规划流程

2.1 两大核心技术支柱

支柱一:策略感知扩散生成器 (Policy-Aware Diffusion Generator, PADG)

PADG并非简单地回归一条轨迹,而是学习一个未来轨迹的分布

  • 条件化生成:它以高清地图、周围动静态障碍物信息为条件,确保生成的轨迹符合场景结构。
  • 多模态锚点:引入多条"参考轨迹"作为生成引导,鼓励模型覆盖变道、跟驰、转弯等多种驾驶策略,从源头上抑制模式崩溃。
  • 匹配训练:使用匈牙利算法,让模型生成的K条轨迹分别去匹配K条不同的参考专家行为,而非挤向同一点。
支柱二:基于群组相对策略优化的强化学习 (GRPO)

这是DIVER的灵魂所在。它将扩散模型的去噪过程本身视为一个可学习的"策略",并用强化学习来优化它。

核心奖励函数设计

  • 多样性奖励:鼓励多条生成轨迹之间保持合理距离。
  • 安全性奖励:严厉惩罚靠近障碍物的轨迹点。
  • 舒适度奖励:追求平顺的加速度和转向变化。
  • 交通规则奖励:鼓励遵守车道线、交通灯等规则。

通过优化这些与最终驾驶体验直接相关的目标,DIVER生成的轨迹不仅在几何上合理,在驾驶逻辑上也更优、更安全。


3. 从代码结构看DIVER的实现

DIVER的代码库组织得非常清晰,体现了优秀的工程实践。其核心结构基于自动驾驶开源框架 adzoo/sparsedrive 构建。

3.1 项目目录精讲

复制代码
adept-thu/DIVER/                 # 项目根目录
├── configs/                         # 🎛️ 实验配置中心
│   ├── DIVER_small_b2d_stage2_targetpoint_multiplan.py  # DIVER主配置
│   ├── momad_*.py                   # MomAD基线模型配置
│   └── sparsedrive_*.py             # SparseDrive基线模型配置
├── adzoo/sparsedrive/               # 🏗️ 核心代码根目录
│   └── mmdet3d_plugin/              # 💡 核心算法实现区 (PADG, GRPO训练逻辑在此)
├── scripts/                         # 🚀 一键执行脚本
│   ├── train.sh                     # 训练脚本
│   ├── test.sh                      # 测试脚本
│   └── visualize.sh                 # 可视化脚本
├── tools/                           # 底层工具脚本
├── leaderboard/                     # 闭环仿真评估接口 (CARLA)
├── scenario_runner/                 # 场景运行器
└── docs/                            # 文档

关键目录解读

  • configs/ :这是项目的控制塔。通过修改配置文件(如选择 DIVER_*.py),可以轻松切换模型、数据集、训练阶段和规划模式。
  • adzoo/sparsedrive/mmdet3d_plugin/ :这是算法创新的心脏。所有DIVER新增的模块,包括PADG和GRPO训练循环,都在这里实现。
  • scripts/:提供了从训练到可视化的完整命令行入口,极大简化了使用流程。

3.2 快速开始指南

bash 复制代码
# 1. 克隆仓库并安装依赖
git clone https://github.com/adept-thu/DIVER.git
cd DIVER
pip install -r requirements.txt

# 2. 按照README准备数据集 (如nuScenes, Bench2Drive)
# ...

# 3. 使用脚本启动训练 (示例:在Bench2Drive上训练)
bash scripts/train.sh configs/DIVER_small_b2d_stage2_targetpoint_multiplan.py

# 4. 使用脚本进行可视化评估
bash scripts/visualize.sh work_dirs/您的实验目录/

4. 实验结果:数据胜于雄辩

DIVER在多个具有挑战性的自动驾驶基准测试中均取得了领先性能。

4.1 闭环仿真性能(最能反映真实驾驶能力)

在基于真实数据构建的 NAVSIM 仿真平台上,DIVER在综合规划质量指标(PDMS)上达到88.3分 ,优于之前的扩散模型基线。可视化结果直观显示,在复杂路口,DIVER能生成覆盖直行和左转的多种合理轨迹,而基线模型轨迹则高度重叠。

DIVER(下)在复杂路口生成了多样化的合理轨迹,而基线模型(上)的轨迹则趋于重合,缺乏决策多样性。

在强调交互的 Bench2Drive 基准上,DIVER的表现同样出色:

模型 驾驶分数 (DS) ↑ 成功率 (SR) ↑ 舒适度 (Comf) ↑
SparseDrive (强基线) 44.54 16.71% 48.63
DIVER (Ours) 49.21 21.56% 54.72

4.2 开环预测与鲁棒性测试

DIVER不仅在标准场景下表现优异,在更具挑战性的设置下也展现了强大的鲁棒性。

测试场景 关键挑战 DIVER表现 结论
长时域预测 (6秒) 规划稳定性与预见性 多样性最高(0.62),碰撞率最低(1.91%) 能进行更稳定、更长远的规划
对抗场景 (Adv-nuSc) 对抗性干扰的车辆 平均碰撞率最低(0.752%) 在面对恶意干扰时表现出极强的韧性
恶劣天气 (nuScenes-C) 传感器噪声与遮挡 在雨、雪、雾天碰撞率全面低于基线 对感知退化具有良好容错性

5. 总结与展望

DIVER框架通过巧妙的**"生成-优化"协同范式**,为端到端自动驾驶的决策多样化问题提供了一个强有力的解决方案。其实验结果充分证明,追求多样性与保障安全性并非不可兼得

  • 对学术界的价值:DIVER提供了一个融合生成模型与强化学习的清晰范例,其代码结构清晰,模块化程度高,非常适合作为新研究工作的起点。
  • 对工业界的启示:将高层驾驶目标(安全、舒适、合规)直接作为损失函数的一部分进行优化,是迈向更可靠、更拟人化自动驾驶系统的关键一步。

未来的潜在方向

  1. 奖励函数工程:探索更精细、更稠密的奖励信号设计。
  2. 与世界模型结合:将DIVER的规划器与能够预测环境变化的世界模型相结合,实现更前瞻的决策。
  3. VLA(Vision-Language-Action)集成:引入大型视觉-语言模型,为驾驶决策提供更高层次的语义理解和常识推理。

DIVER已经迈出了从"模仿驾驶"到"智能决策"的关键一步,其开源代码无疑将加速这一领域的创新进程。


相关资源

希望这篇解析能帮助你深入理解DIVER。如果你在复现代码或理解细节时有任何疑问,欢迎在评论区交流讨论。

相关推荐
代码洲学长8 小时前
神经网络基础
人工智能·深度学习·神经网络
行如流水8 小时前
多模态模型CLIP详解
人工智能
roman_日积跬步-终至千里8 小时前
【计算机视觉】计算机视觉课程要点总结
人工智能·计算机视觉
Web3VentureView8 小时前
Synbo观察|新西兰计划2026年将区块链纳入基础教育
人工智能·区块链
智能汽车人8 小时前
自动驾驶大模型---香港科技大学之DSDrive
人工智能·科技·自动驾驶
人工智能培训8 小时前
DNN案例一步步构建深层神经网络
人工智能·深度学习·神经网络·大模型·dnn·具身智能
IT_陈寒8 小时前
Vue3性能优化实战:这5个技巧让我的应用加载速度提升了40%
前端·人工智能·后端
智驱力人工智能8 小时前
从项目管理视角 拆解景区无人机人群密度分析系统的构建逻辑 无人机人员密度检测 无人机人群密度检测系统价格 低空人群密度统计AI优化方案
人工智能·深度学习·算法·安全·无人机·边缘计算
尺度商业8 小时前
2025:科技投资正酣,如何答好这道题?
大数据·人工智能·科技
大模型真好玩8 小时前
LangGraph1.0速通指南(一)—— LangGraph1.0 核心概念、点、边
人工智能·langchain·agent