第15章

第15章:端到端驾驶模型

实现 VAD/UniAD 风格规划器,掌握感知-规划联合训练、可解释性分析与安全性验证。

UniADVADGenADDriveVLM规划导向感知

UniAD / VAD 完整教程


前言

端到端自动驾驶 (End-to-End Driving) 从传感器输入直接输出驾驶轨迹,跳过了传统的模块化 pipeline。本章详细解析 UniAD 和 VAD 两种代表性架构。

学完本章你将获得:

- UniAD 规划导向感知的完整理解

- VAD 向量化规划的实现能力

- 端到端 vs 模块化的工程判断力


第一部分:为什么端到端?

1.1 模块化 Pipeline 的问题

传统自动驾驶 pipeline:


Sensor → Perception → Prediction → Planning → Control → Actuator

每个模块独立训练,存在以下问题:

1. 误差累积: 上游误差在传递中放大

2. 目标不对齐: 检测 IoU 高不等于规划好

3. 信息瓶颈: 模块间通常只传递最简信息 (bbox, 轨迹)

1.2 端到端的优势


Sensor → Unified Model → Trajectory

1. 联合优化: 所有组件同时为最终驾驶质量优化

2. 信息丰富: 中间特征可以在模块间流动

3. 数据驱动: 可利用大量驾驶演示数据


第二部分:UniAD (CVPR 2023 Best Paper)

2.1 核心设计

UniAD 的关键洞察: 感知应该为规划服务

五大 Transformer 模块:

1. TrackFormer: 目标检测 + 跟踪 (继承 MOTR/DETR)

2. MapFormer: 在线高精地图 (继承 MapTR)

3. MotionFormer: 多模态运动预测

4. OccFormer: 占用网格预测

5. Planner: 自车轨迹规划

2.2 模块间交互

每个模块的 query features 被传递到下游模块,规划 query 与所有 task queries 通过 attention 交互。


第三部分:VAD (ICCV 2023)

3.1 改进动机

UniAD 的问题:

- Occupancy 预测计算量大

- 规划隐式地从特征中解码,可解释性低

VAD 的改进:

1. 向量化场景表示: 用向量替代稠密栅格

2. 显式轨迹采样: 采样候选轨迹 → 评分 → 选择

3. 碰撞约束: 在向量空间中直接计算碰撞

3.2 向量化表示


Agent: [cx, cy, vx, vy, w, h, theta]
Lane: [(x1,y1), (x2,y2), (x3,y3), ...]
Boundary: [(x1,y1), (x2,y2), ...]

第四部分:驾驶应用

4.1 轨迹规划

UniAD/VAD 输出未来 N 步的轨迹航点:


trajectory = [(x_1, y_1), (x_2, y_2), ..., (x_T, y_T)]

4.2 评估指标

1. L2 Error: 与 GT 轨迹的平均距离

2. Collision Rate: 碰撞比例 (越低越好)

3. Comfort Score: 加速度/jerk 的平滑度

4. Progress: 沿路线的进展

4.3 闭环 vs 开环

- 开环: 从数据集预测轨迹, 不执行

- 闭环: 实际执行预测 → 观察结果 → 再预测

- 闭环更难但更真实, 需要仿真器 (CARLA/MetaDrive)


项目地址: vla_learn/chapter15_e2e_driving/
预计时间: 1-2 天