📄 论文信息
- 标题:GoalFlow: Goal-Driven Flow Matching for Multimodal Trajectories Generation in End-to-End Autonomous Driving
- 作者机构:中国科学院大学 × 地平线机器人(Horizon Robotics) × 南京大学 × 华中科技大学 × 上海 AI Lab(Xing, Zhang, Hu, Jiang, He, Zhang, Long, Yin)
- arXiv:2503.05689
- 代码:github.com/YvanYin/GoalFlow
- 一句话总结:先用一个目标点词表 + 评分机制选出最合理的短期终点,再用 Flow Matching(整流流)只需一步去噪生成多模态轨迹,在 NAVSIM 上 PDMS 达到 90.3,SOTA。

🤔 要解决什么问题?
自动驾驶里,一个场景往往不止一条合理轨迹——同样的路口,你可以稳健直行、也可以激进变道。所以近年来大家开始追求多模态轨迹分布建模,把候选轨迹一并生成出来再挑选。但现有做法都有硬伤:
| 范式 | 代表方法 | 致命问题 |
|---|---|---|
| 离散指令引导 | VAD(左/右/直三模态) | 引导信息太粗糙,与真值差距大时生成低质量轨迹 |
| 固定导航点引导 | SparseDrive | 预定义一组候选点,不追求精度,偏真值就崩 |
| 纯扩散生成 | Diffusion-ES、MotionDiffuser | 无约束 → 轨迹严重发散,模态间无清晰边界 |
| 真值端点强约束 | MotionDiffuser | 直接用 GT 端点 → 引入过强先验,训练-测试不一致 |
GoalFlow 作者犀利地指出两个被忽视的问题:
- 大家只盯着碰撞率和 L2,却忽略了"车还在不在可行驶区域里"——这正是 DAC(Drivable Area Compliance)指标要衡量的。一条 L2 误差很小的轨迹,如果冲出路面,照样是灾难。
- 回归式模型靠不同引导信息做多模态,但引导信息一旦偏离真值,轨迹质量就断崖式下跌。因为回归模型只会"忠实拟合引导",引导错了它不会纠偏。
核心矛盾:扩散/回归模型要么"发散无边界",要么"约束太强不真实"——GoalFlow 要在两者之间找到一个既精确又自适应的平衡点。
💡 核心思想:目标点 + Flow Matching
GoalFlow 的解法一句话:用一个精确的"目标点"给生成过程上紧箍咒,再用高效的 Flow Matching 一步生成多模态轨迹。
它把规划拆成三段流水线,各司其职:
| 模块 | 职责 | 关键创新 |
|---|---|---|
| 感知模块 | 融合相机 + LiDAR → BEV 特征 | 复用 Transfuser 架构 |
| 目标点构造模块 | 从词表中选出最合理的目标点 | 密集词表 + 评分机制 |
| 轨迹规划模块 | 用 Flow Matching 生成轨迹 + 打分选最优 | 单步去噪 + 轨迹评分器 |

⚙️ 方法细节
👁️ 模块一:感知(Transfuser 融合)
前/左/右三路相机拼接成一张图 I,LiDAR 点云组成张量 L,分别过各自 backbone,在多层用 Transformer block 融合,最终得到 BEV 特征 F_bev。并用 HD 地图、检测框做辅助监督,保证 BEV 特征把路况编码全。
单模态各有盲区:LiDAR 看不见红绿灯,相机测不准距离——多模态融合是高质量规划的前提。这也是 NAVSIM 排行榜上头部方案的共同选择。
🎯 模块二:目标点构造(最关键的创新)
这是 GoalFlow 区别于所有前作的核心。作者的洞察非常精妙:
目标点包含了对"短期未来位置"的精确描述,是对生成模型极强的约束——比"左/右/直"这种粗指令精确得多,又比"真值端点"这种作弊约束自然得多。
于是它把传统"规划模块"拆成两步:先精确选目标点,再生成轨迹。
目标点词表(Goal Point Vocabulary):预先构造一个密集的目标点候选集 V = {gᵢ}ᴺ,覆盖各种可能的短期终点。与 SparseDrive 的"固定聚类点"不同,GoalFlow 的词表更密、覆盖更全。
评分机制选点:用一个打分网络,根据场景信息(BEV 特征)从词表里挑出既接近真值、又在可行驶区域内的最优目标点 g。这是"学习式选择",而非"硬编码"。
| 对比方法 | 目标点来源 | 问题 |
|---|---|---|
| GoalGAN | 网格采样 | 不考虑目标点分布 |
| SparseDrive | 固定聚类导航点 | 不追求精度 |
| GoalFlow | 密集词表 + 学习打分 | 自适应、精确、可行驶 |
正是这一步让 GoalFlow 在 DAC(可行驶区域合规)指标上大幅领先——目标点本身就约束在可行驶区域内,轨迹自然不会跑出路面。这是它相对其他方法最显著的差异化优势。
🌊 模块三:Flow Matching 轨迹规划
GoalFlow 没用扩散,而是用了更高效的 Flow Matching(整流流 Rectified Flow)。
为什么不用扩散? 这两者差别值得细看:
| 维度 | 扩散模型(DDPM) | Flow Matching(整流流) |
|---|---|---|
| 路径形状 | 曲折去噪路径 | 直线最优传输路径 |
| 推理步数 | 几十~上千步 | 单步即可 |
| 轨迹质量 | 易发散 | 收敛稳定 |
| 训练目标 | 预测噪声 | 预测速度方向 |
整流流的原理很优雅:在简单分布 π₀(标准高斯)和目标分布 π₁(真实轨迹)之间建一条直线路径:
- 中间状态:xₜ = (1-t)·x₀ + t·x₁
- 速度方向恒为:x₁ - x₀(与 t 无关)
- 训练一个网络 v_θ 去预测这个方向,损失就是简单的 MSE:L = ‖v_θ(xₜ, t) - (x₁ - x₀)‖₂
因为路径是直线,理论上一步就能从噪声走到目标分布——这对车端实时性是决定性的。相比之下,扩散模型要走完整条曲线路径,步数少了轨迹质量崩盘。
条件注入:生成时把 BEV 场景信息 + 选中的目标点 g 作为条件喂给 v_θ。用不同目标点,就能得到清晰分离的多模态轨迹——模态之间不再"糊在一起",而是被目标点天然地隔开。
整流流的直觉解释
如果觉得公式抽象,可以这样理解整流流:想象你要从"噪声原点"走到"真实轨迹终点",扩散模型走的是一条弯弯曲曲的小路(要反复横跳式去噪),而整流流直接拉一条直线走过去。直线意味着:(1) 路径最短,走得最快;(2) 方向恒定(始终朝 x₁-x₀ 方向),训练目标简单稳定;(3) 一步就能近似到达终点。这种"最优传输"性质是整流流相比扩散的根本优势,也是 GoalFlow 能做到单步推理的数学根源。
🏆 轨迹评分器与影子轨迹
Flow Matching 采样出一组候选轨迹 T = {τ̂ᵢ}ᴹ 后,再用一个评分机制挑出最优轨迹 τ。作者还设计了**影子轨迹(shadow trajectories)**机制——用选中的目标点反推一条"参考轨迹",与生成轨迹对比打分,进一步对冲潜在的目标点选错风险。这是论文的第三大创新点,体现了作者对"目标点也可能选错"这一 corner case 的工程考量。
🔧 训练损失与工程细节
GoalFlow 的训练目标由几部分组成,对应三个模块各自的需求:
| 损失项 | 作用对象 | 说明 |
|---|---|---|
| 感知辅助损失 | BEV 特征 | HD 地图、检测框监督,保证路况编码准确 |
| 目标点分类/评分损失 | 目标点选择器 | 让打分网络学会从词表中选最合理的目标点 |
| Flow Matching 回归损失 | 速度场 v_θ | MSE:让 v_θ(xₜ,t) 逼近真实方向 (x₁-x₀) |
| 轨迹评分损失 | 轨迹评分器 | 让打分器能识别高质量轨迹 |
一个关键的工程巧思是目标点与轨迹的解耦:因为目标点是显式选出来的离散变量,即使 Flow Matching 部分出错,也能通过评分器在候选轨迹里"兜底"选出相对安全的一条。这种"生成 + 打分 + 选择"的三段式,比单纯依赖生成模型的一次性输出要鲁棒得多——它承认了生成模型可能犯错,并给出了纠错机制。
单步推理的实战意义
论文强调 GoalFlow 仅需 1 步去噪就能拿到接近最优的分数(仅降 1.6%),这在工程上是革命性的。对比 DiffusionDrive 等方法动辄需要 10+ 步迭代去噪,GoalFlow 的推理延迟可以降低一个数量级。对于车端按 10–20 Hz 运行的规划模块,这意味着生成模型首次真正具备上车资格。这也呼应了论文标题中"efficient"的含义——不只是质量高,还要足够快。
📊 实验结果:NAVSIM 全面 SOTA
GoalFlow 在 NAVSIM 上达到 PDMS 90.3,大幅超越所有方法:
| 方法类型 | 代表 | PDMS | 特点 |
|---|---|---|---|
| 传统 E2E | UniAD、VAD | ~80+ | 回归单模态 |
| 离散指令多模态 | VAD | ~85+ | 三模态,约束粗糙 |
| 扩散策略 | DiffusionDrive 等 | ~87-89 | 多步去噪,易发散 |
| GoalFlow | — | 90.3 | 单步去噪 + 目标引导 |
几个关键结论:
- DAC 指标暴涨:得益于目标点约束,车几乎不会跑出可行驶区域,这是其他扩散类方法的最大短板被补上
- 单步去噪就够了:相比扩散策略动辄几十步,GoalFlow 只需 1 步,分数仅降 1.6%——这对实时部署意义重大
- 对去噪步数鲁棒:1 步、5 步、10 步性能差异小,工程师可以按算力灵活权衡,不会被"步数"这个超参绑架
⚖️ Flow Matching vs 扩散:为什么是趋势
GoalFlow 把 Flow Matching 引入端到端驾驶,背后是一个更大的趋势。对比一下:
| 维度 | 扩散(Diffusion) | Flow Matching |
|---|---|---|
| 数学形式 | 随机微分方程,反向去噪 | 连续标准化流,向量场 |
| 路径形状 | 曲线 | 直线(最优传输) |
| 采样效率 | 慢,需多步 | 快,可单步 |
| 训练稳定性 | 较好 | 更稳定 |
| 代表工作 | DiffusionDrive、Diffuser | GoalFlow、Stable Diffusion 3(图像) |
在机器人/驾驶的轨迹生成里,Flow Matching 正在快速替代扩散——同样的多模态建模能力,但推理快一个数量级。这和图像生成领域 SD3、Flux 倒向 Flow Matching 的趋势完全一致。GoalFlow 是这一趋势在端到端驾驶领域的标志性落地。
⚠️ 优势与局限
✅ 优势
- 目标点约束解决了扩散轨迹发散的老大难问题,轨迹天然落在可行驶区域
- Flow Matching 单步推理,车端部署友好,突破了生成模型"慢"的偏见
- DAC 指标强,安全侧表现突出
- 模块化设计清晰,感知/选点/规划解耦可单独迭代
❌ 局限
- 依赖 LiDAR,纯相机方案未验证
- 目标点词表是预定义的,极端长尾场景的终点可能不在词表里
- 评分器增加了额外计算和训练复杂度
- 目前主要在 NAVSIM(开环) 验证,闭环性能待考察
📝 个人思考
目标点是天然的"模态锚":GoalFlow 最让我眼前一亮的是把"多模态"问题转化成了"目标点选择"问题。与其让模型在连续空间里乱生成一通再费力挑选,不如先用一个离散的、可行驶的目标点把模态边界划清楚,再在每个锚点附近生成。这个思路非常工程化,也很符合人类"先决定去哪、再规划怎么去"的驾驶直觉。它把一个困难的多模态生成问题,拆成了一个分类问题(选目标点)+ 一个条件生成问题(给定点出轨迹),每一步都更可控。
Flow Matching 是我们 Flow-GRPO 的天然基底:GoalFlow 验证了 Flow Matching 在驾驶轨迹生成上的高效性(单步去噪)。我们自己的 Flow-GRPO 工作正是在 Flow Matching 策略上做强化学习——GoalFlow 的成功说明这个基底选对了,接下来要解决的就是"如何用 RL 突破模仿学习的上限"。GoalFlow 是纯模仿(行为克隆),上限被专家数据锁死;加上 RL 优化,用安全/舒适奖励引导探索,理论上还能再涨一截。GoalFlow 的目标点评分机制,甚至可以直接转写成 RL 的奖励项。
开环 vs 闭环的隐忧:GoalFlow 在 NAVSIM 开环刷到 90.3 PDMS 很漂亮,但开环指标和真实闭环驾驶之间仍有 gap——开环只评估"是否模仿得像",闭环才评估"能否真正安全驾驶"。下一步应该看它在 Bench2Drive 这类闭环基准上的表现,以及目标点词表在极端场景下的泛化能力。这是所有 NAVSIM SOTA 方法共同面临的考验。
与 SparseDrive 的传承:GoalFlow 和 SparseDrive(同作者 Yvan Yin)一脉相承——SparseDrive 用稀疏目标点 + 分类,GoalFlow 用密集词表 + Flow Matching。可以看出作者团队在"目标引导"这条线上持续深耕,这条路线目前看是 NAVSIM 上最有效的范式之一,也预示着"目标引导 + 高效生成器"将成为端到端规划的主流配方。
生成式规划的未来:GoalFlow 代表的"目标引导 + Flow Matching"路线,正在和"扩散策略"路线、以及 EMMA 式"大模型直接输出"路线三足鼎立。我的判断是:短期内,GoalFlow 这种"轻量生成器 + 精确引导"的工程化路线最适合落地;长期看,随着基础模型变快,大模型直接输出的统一方案会逐渐接管。两者最终可能在"大模型提供认知引导 + 小型 Flow Matching 生成轨迹"的混合架构里融合——这恰好也是 ReCogDrive 的思路,只不过把扩散换成了更高效的 Flow Matching。
📖 论文精读系列。GoalFlow 是 Flow Matching 进入端到端驾驶的标志性工作,强烈建议和 DiffusionDrive、SparseDrive 对照阅读,理解"扩散→流匹配"的范式迁移。