📄 论文信息

  • 标题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)
  • arXiv2503.05689
  • 代码github.com/YvanYin/GoalFlow
  • 一句话总结:先用一个目标点词表 + 评分机制选出最合理的短期终点,再用 Flow Matching(整流流)只需一步去噪生成多模态轨迹,在 NAVSIM 上 PDMS 达到 90.3,SOTA。

三种多模态轨迹生成范式对比:独立生成模型轨迹发散无边界;目标引导模型用不同目标点清晰区分模态


🤔 要解决什么问题?

自动驾驶里,一个场景往往不止一条合理轨迹——同样的路口,你可以稳健直行、也可以激进变道。所以近年来大家开始追求多模态轨迹分布建模,把候选轨迹一并生成出来再挑选。但现有做法都有硬伤:

范式代表方法致命问题
离散指令引导VAD(左/右/直三模态)引导信息太粗糙,与真值差距大时生成低质量轨迹
固定导航点引导SparseDrive预定义一组候选点,不追求精度,偏真值就崩
纯扩散生成Diffusion-ES、MotionDiffuser无约束 → 轨迹严重发散,模态间无清晰边界
真值端点强约束MotionDiffuser直接用 GT 端点 → 引入过强先验,训练-测试不一致

GoalFlow 作者犀利地指出两个被忽视的问题:

  1. 大家只盯着碰撞率和 L2,却忽略了"车还在不在可行驶区域里"——这正是 DAC(Drivable Area Compliance)指标要衡量的。一条 L2 误差很小的轨迹,如果冲出路面,照样是灾难。
  2. 回归式模型靠不同引导信息做多模态,但引导信息一旦偏离真值,轨迹质量就断崖式下跌。因为回归模型只会"忠实拟合引导",引导错了它不会纠偏。

核心矛盾:扩散/回归模型要么"发散无边界",要么"约束太强不真实"——GoalFlow 要在两者之间找到一个既精确又自适应的平衡点。


💡 核心思想:目标点 + Flow Matching

GoalFlow 的解法一句话:用一个精确的"目标点"给生成过程上紧箍咒,再用高效的 Flow Matching 一步生成多模态轨迹。

它把规划拆成三段流水线,各司其职:

模块职责关键创新
感知模块融合相机 + LiDAR → BEV 特征复用 Transfuser 架构
目标点构造模块从词表中选出最合理的目标点密集词表 + 评分机制
轨迹规划模块用 Flow Matching 生成轨迹 + 打分选最优单步去噪 + 轨迹评分器

GoalFlow 整体架构:感知出 BEV 特征,目标点模块从词表选点,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特点
传统 E2EUniAD、VAD~80+回归单模态
离散指令多模态VAD~85+三模态,约束粗糙
扩散策略DiffusionDrive 等~87-89多步去噪,易发散
GoalFlow90.3单步去噪 + 目标引导

几个关键结论:

  • DAC 指标暴涨:得益于目标点约束,车几乎不会跑出可行驶区域,这是其他扩散类方法的最大短板被补上
  • 单步去噪就够了:相比扩散策略动辄几十步,GoalFlow 只需 1 步,分数仅降 1.6%——这对实时部署意义重大
  • 对去噪步数鲁棒:1 步、5 步、10 步性能差异小,工程师可以按算力灵活权衡,不会被"步数"这个超参绑架

⚖️ Flow Matching vs 扩散:为什么是趋势

GoalFlow 把 Flow Matching 引入端到端驾驶,背后是一个更大的趋势。对比一下:

维度扩散(Diffusion)Flow Matching
数学形式随机微分方程,反向去噪连续标准化流,向量场
路径形状曲线直线(最优传输)
采样效率慢,需多步快,可单步
训练稳定性较好更稳定
代表工作DiffusionDrive、DiffuserGoalFlow、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 对照阅读,理解"扩散→流匹配"的范式迁移。