什么是"端到端"?

端到端 = 传感器输入直接到控制输出,中间没有人工设计的模块边界

传统感知 → 预测 → 规划 → 控制(四个独立模块,各管各的)

端到端摄像头/雷达 → 一个网络搞定 → 方向盘/油门/刹车

“端"指的是输入端(传感器)和输出端(控制),“端到端"就是从输入直接到输出,一以贯之。严格来说,端到端自动驾驶希望用一个统一的神经网络,直接把多视角图像、激光雷达点云等原始信号,映射成车辆的控制指令(轨迹点、方向盘转角、油门刹车)。

需要注意的是,现实工业落地里的"端到端"是一个相对概念:从最纯粹的"图像到方向盘"到保留部分任务结构(感知、规划)的方案,都可以被叫作端到端。下文我们会看到,这条光谱其实是端到端技术演进的主线。


为什么要走向端到端?

模块化方案的瓶颈

传统 pipeline 看似清晰,实则问题重重:

问题说明
误差累积感知漏检一个目标 → 预测错 → 规划错,错误层层放大
信息瓶颈模块间只传结构化结果(如 bbox、轨迹),丢失丰富原始信息
无法联合优化每个模块单独训练,无法为最终目标做全局优化
计算冗余多个模块重复提取相似特征,BEV 特征反复重算
上游误差不可回传规划模块错了,没法反向告诉感知"你应该看清一点”

端到端的卖点:把所有环节揉成一个网络,朝着"开得安全"这一个唯一目标一起优化。 梯度可以从最终的规划/控制 loss 一路回传到最前面的视觉编码器,让感知为规划服务。


端到端的三个发展阶段

🥚 阶段一:隐式端到端(Implicit E2E)

直接用一个大网络从图像回归出轨迹或控制量,网络内部不显式地做感知、预测等任务。这一阶段以早期探索为主。

代表工作与思路:

工作核心做法
NVIDIA PilotNet(DAVE-2,2016)一个小 CNN 直接从单目图像回归方向盘角度,开启"行为克隆"先河
Conditional Affordance Learning(CAC,2019)用 affordance 中间量(车距、航向)约束网络,缓解纯回归的发散
Learning by Cheating(LBC,2019)先用"特权信息"训教师网络,再蒸馏到只用视觉的学生网络
MP0 / Urban Driver(2022)在向量化场景上直接做策略学习,引入 RL/IL 框架

隐式 E2E 的主要问题:

  • 黑盒:内部完全不可解释,出事没法定位
  • 难训练:直接回归控制量监督信号太弱,容易陷入局部最优
  • 效果不稳定:泛化性差,遇到没见过的场景容易"翻车”

但它奠定了"用网络直接输出动作“这一思路,是后续所有端到端工作的鼻祖。

🏗️ 阶段二:显式端到端(Explicit E2E)—— 当下主流

网络内部保留感知、预测、规划的任务结构,但用梯度让它们联合优化。既有端到端的优势,又保留一定可解释性。核心思想是"任务级联合,而非模块级独立”

代表工作:

模型特点
UniAD(2023,CVPR Best Paper)首个完整的任务级端到端框架,奠定方向
VAD(2023,ICLR 2024)向量化的端到端,高效优雅
PARA-Drive并行多任务
SparseDrive(2024)稀疏化设计,提速降耗
AD-MLP / ego-MLP简洁的轨迹回归 baseline

🚀 阶段三:生成式 / 大模型端到端 —— 前沿

引入扩散模型、VLM、世界模型,让端到端具备生成能力和推理能力。这一阶段的特征是"从确定性回归走向多模态分布,从纯感知映射走向带推理的决策"。

代表工作:

模型特点
DiffusionDrive(2024)用 Flow Matching / 扩散做多模态轨迹生成
DriveVLMVLM 驱动的端到端推理
EMMA(Wayve,2024)多模态大模型做端到端,统一感知+规划
GoalFlow / Diffusion Planner扩散做目标导向的轨迹生成

显式端到端三大代表作深入剖析

🏛️ UniAD:任务级端到端的奠基者

UniAD(Unified Autonomous Driving)是首个把"跟踪 → 在线建图 → 运动预测 → 占用预测 → 规划"五大任务串成一个网络的方案。它的几个关键设计:

  • Query-based 串联:所有任务通过 query 这一接口连接。Track Query 把检测/跟踪结果传给 Motion Forecasting,再传给 Occupancy,最后 Planner 通过 ego query 直接消费所有信息。
  • 梯度贯通:规划 loss 可以一路反传到最前面的图像 backbone,感知模块"被迫"为规划服务。
  • 辅助监督:检测、跟踪、建图、运动预测、占用都有显式监督,避免规划信号过弱导致退化。
  • 占有预测当"安全网":Occupancy Map 用来表达 Planner 没想到的障碍物(如静态路障),降低碰撞。

为什么 UniAD 拿了 Best Paper?因为它第一次证明了"端到端 + 多任务监督"能稳定跑通,并定义了后续两年显式 E2E 的基本范式。

🧩 VAD:向量化带来的效率革命

UniAD 强归强,但又慢又重(推理 ~30Hz 都很勉强)。VAD(Vectorized Auto-Driving)的核心贡献是用向量化场景表示替代密集栅格化表示

  • Vectorized Map / Agent:地图元素(车道线、边界)和动态目标用矢量(折线、关键点)表示,而不是稠密的栅格图。
  • 大幅降算力:VAD-Base / VAD-Tiny 比 UniAD 快 2~4 倍,显存占用大幅下降,更适合上车。
  • Ego Query 规划:用一个 ego-vehicle query 与场景 query 交互,回归自车未来轨迹。
  • 多任务辅助:保留地图矢量化、agent 矢量化的监督,帮助学到结构化场景理解。

一句话总结:VAD 把 UniAD 的"重任务联合"做到了"轻量可上车",是显式端到端工业落地的关键一步。

🪶 SparseDrive:把稀疏化做到极致

SparseDrive 进一步把"算力"打下来,思路是全程稀疏

  • 稀疏检测:放弃稠密 BEV,用一组稀疏的 centerness query 直接在 3D 空间里检测目标。
  • 稀疏时空预测:只对 detected agent 做运动预测,不再对每个 BEV 网格算未来。
  • 两阶段规划:先粗规划,再用 motion planner 精修,避免一次回归不稳。
  • 性能/效率双赢:在 nuScenes / NAVSIM 上同时拿到高规划指标和低延迟。

三者放在一起对比:

维度UniADVADSparseDrive
场景表示密集 BEV + Query向量化全稀疏
速度
可上车性
历史地位范式定义工程化里程碑极致效率

🎨 扩散模型与 DiffusionDrive

为什么用扩散做轨迹规划?

传统规划头常用确定性回归:一个 MLP 输出一条轨迹。但真实驾驶本质是多模态的——同样的场景,你既可以刹车、也可以变道、也可以匀速绕行,没有唯一正确答案。确定性回归会出现:

  • 模式平均:网络把"刹车"和"变道"两条最优解平均,得到一条不合理轨迹(比如撞墙)
  • 无法表达不确定性:只给一条线,下游无法做风险评估

扩散模型(Diffusion)天然适合多模态分布建模:采样 N 次就能得到 N 条不同的合理轨迹,再通过评分函数(碰撞、舒适度、合规性)挑最好的。

Flow Matching 的优势

经典的 DDPM 扩散需要上百步去噪,太慢,做不了实时规划。Flow Matching(流匹配) 作为扩散的近亲,有几个明显优势:

维度经典扩散(DDPM)Flow Matching
采样步数几十~上百步几步即可
训练稳定性受噪声调度影响大更稳定
路径设计固定的加噪/去噪可学习的概率路径
理论基础Score MatchingVector Field 回归

DiffusionDrive 的核心就是把 Flow Matching 用在轨迹生成上:

  • 条件流匹配(Conditional Flow Matching) 在 ego query 的引导下,把一个简单先验分布(如高斯)“流"到目标轨迹分布
  • 一次前向能输出多模态候选轨迹
  • collision / comfort / similarity 等代价函数打分选最优
  • 在 NAVSIM / nuPlan 上拿到 SOTA 级 PD(Progress + Distance)分数

直觉理解:扩散/Flow Matching 让规划从"画一条线"升级成"画一片合理的可能性云,再挑最稳的那条”。这正是端到端走向不确定性感知的关键一步。


📊 Loss 设计与训练策略

多任务 Loss 权衡

显式 E2E 同时优化多个任务,loss 形式通常长这样:

L_total = w_plan * L_planning + w_det * L_detection 
        + w_track * L_tracking + w_map * L_mapping 
        + w_motion * L_motion + w_occ * L_occupancy

关键难点:这些 loss 的量级、收敛速度差异巨大。规划 loss 几米、检测 loss 几十、占用 loss 几百,直接相加会被某一项主导。常用解法:

  • Uncertainty Weighting(Kendall et al.):让网络自动学习每个任务的权重,与任务的同方差不确定性挂钩。
  • GradNorm / DWA:动态调节权重,让各任务梯度量级平衡。
  • 分阶段训练:先预训练感知/预测,再冻结 backbone 微调规划(curriculum 思路)。

规划 loss 本身通常包含:

  • L2 / ADE / FDE:与人类驾驶轨迹的位移误差
  • 碰撞惩罚:与动态/静态障碍物的碰撞 soft penalty
  • 舒适度约束:jerk(急动度)、横向加速度惩罚
  • 方向/航向一致性:避免轨迹折返

课程学习(Curriculum Learning)

从简单到复杂逐步加难度:

  1. 直道 + 少车 → 2. 路口转弯 → 3. 拥堵变道 → 4. 极端长尾

这种渐进式训练能显著提升收敛稳定性,避免一开始就让网络在复杂场景里"懵掉"。

数据增强

  • 场景扰动:随机扰动周围车辆位置、速度,扩宽数据分布
  • 时序抖动:对历史帧做时间抖动,提升时序鲁棒性
  • 图像层增强:颜色、噪声、模糊、遮挡,模拟不同天气/光照
  • 生成式增强:用世界模型(GAIA、DriveDreamer)合成罕见场景,弥补长尾

📈 评测体系:开环 vs 闭环

端到端怎么评?这其实是个比训练更难的问题。

开环评测(Open-Loop)

给定数据集中的历史帧,让模型预测未来轨迹,与 ground truth 比较。常用指标:

指标含义
L1 / L2 误差预测轨迹与 GT 在各时间步的位移误差(米)
ADEAverage Displacement Error,全程平均
FDEFinal Displacement Error,终点误差
Collision Rate与已知障碍物的碰撞率(静态/动态分别算)

典型 benchmark:nuScenes PlanningNAVSIMnuPlan

⚠️ 开环的核心缺陷:模型只预测一步、不实际执行,不会进入"我变了 → 别人也会变"的反应链。在开环上刷高分,不代表真的能开车。NAVSIM 引入 PD(Progress + Distance) 指标,部分缓解了"模型原地不动也得低分"的问题,是当前更合理的开环评估。

闭环评测(Closed-Loop)

把模型放进仿真器里真正开车,与其它智能体交互。常用平台:

仿真器特点
CARLA研究界主流,渲染偏游戏化,与真实差距大
nuPlan真实日志驱动的闭环,含 reactive agents
NAVSIMnuScenes 衍生,非反应式(半闭环)
私有仿真器特斯拉、Wayve 等自建,最接近真实

闭环指标:完成率、违规率、碰撞率、舒适性、接管次数。这才是真正考验"能不能开"的评测。

理想评测 = 开环看精度 + 闭环看行为 + 实路看长尾,三者缺一不可。


⚠️ 端到端的四大挑战

1. 可解释性

黑盒网络出事了,没法定位是哪个环节出错。监管和安全验证很难做。

解法思路

  • 显式端到端,保留任务结构,可以分别看感知/预测/规划的中间输出
  • 注意力可视化、 saliency map 做 post-hoc 解释
  • VLA / CoT(Chain-of-Thought)让模型"说出理由",提供语言级可解释性

2. 数据需求巨大

端到端是"数据饥饿型"方案,需要海量优质驾驶数据,长尾场景几乎采不全。

解法思路

  • 世界模型生成数据补长尾(GAIA、DriveDreamer、MagicDrive)
  • 自动标注、弱监督、半监督降低人工成本
  • 影子模式:车上跑旧方案,收集真实触发,回灌训练
  • 跨车队的联邦学习与数据共享

3. 安全验证

模块化系统可以逐模块做单元测试。端到端只能整体测,怎么保证它在所有场景下都安全?目前没有成熟的验证体系

解法思路

  • 基于场景库的覆盖性测试(ODD 边界、对抗样本)
  • 形式化验证(formal verification)的初步探索
  • 影子模式 + 离线对比,持续监测与人类/旧策略的差异
  • 冗余系统(safety cage / rule-based fallback)兜底关键场景

4. 训练稳定性

大网络端到端训练容易崩,学习率、loss 权衡、数据配比都需要精心调参。

解法思路

  • 课程学习从易到难
  • 多任务 loss 自适应加权(uncertainty weighting)
  • 分阶段训练:感知预训练 → 冻结 → 规划微调
  • 梯度裁剪、loss scaling、混合精度训练

🔮 未来趋势:两个关键融合方向

方向一:VLM + 端到端(让系统"看懂")

纯视觉端到端能"看见",但不一定"看懂"。比如它识别到前方有锥桶,但不懂"因为施工所以要变道"。把 VLM/VLA 引入端到端,让系统具备语义推理能力

  • DriveVLM:VLM 做场景理解与思维链推理,输出结构化决策,再交给传统 planner 执行
  • EMMA:用 Gemini 类多模态大模型统一感知+规划,多任务输出
  • VLA 直接出动作:视觉 + 语言 → 动作,一步到位(参考 π0、OpenVLA)

这一方向最大的工程挑战是LLM 推理太慢,车端实时性要求几十毫秒响应。当前解法:蒸馏小模型、推理加速(量化、KV cache)、关键场景才上 LLM。

方向二:世界模型 + 端到端(让系统"预演")

世界模型给端到端装上**“想象力”**:

  • Model-based Planning:策略网络在决策前,先用世界模型"推演"几个候选动作的后果,选最安全的那条(类似人类"三思而后行")
  • 闭环训练:世界模型当仿真器,让策略在生成的未来里学习,不再受限于固定数据集
  • 数据飞轮:世界模型生成 → 训练策略 → 策略采集新场景 → 训练更好的世界模型

终极愿景:VLM 负责"理解与决策",世界模型负责"预测与预演",端到端网络负责"执行",三者融合成一个真正像人一样开车的系统。


🆚 三代演进对比

维度模块化 Pipeline显式端到端大模型 / 生成式端到端
代表传统方案UniAD / VAD / SparseDriveDiffusionDrive / VLA / EMMA
场景表示结构化中间结果Query / 向量 / 稀疏Token / 表征 / 多模态分布
输出确定性轨迹确定性轨迹多模态轨迹分布 + 推理
优化方式各模块独立任务级联合优化联合优化 + 大规模预训练
可解释性中(保留任务结构)中~强(可输出 CoT)
效果上限次优工程上 SOTA潜力最大
落地难度高(算力/数据/延迟)

小结

端到端不是银弹,但代表了**“用数据和学习取代人工规则”的大趋势。当下最务实的路线是显式端到端**(保留任务结构,UniAD/VAD/SparseDrive 这条主线),同时向生成式 + 大模型方向探索(DiffusionDrive、VLA、世界模型融合)。

理解了端到端的这条演进线,再回头看 VLA 和世界模型,你会发现它们正是端到端走向"智能化"的两个关键拼图——VLA 给它"脑子",世界模型给它"想象力"


💡 这个系列会持续深入。下期可以聊聊具体的 loss 设计、某篇论文的实现细节,或者 NAVSIM 上怎么刷分。