26年3月来自上海交大和百度的论文“FlowAD: Ego-Scene Interactive Modeling For Autonomous Driving”。
有效的环境建模是自动驾驶的基础,支撑着从感知到规划的各项任务。然而,当前的范式往往未能充分考虑自身运动对观察的反馈,导致对驾驶过程理解不完整,进而限制规划能力。为了解决这个问题,提出一种自身-场景交互建模范式。受人类识别的启发,该范式将自身-场景交互表示为相对于自身车辆的场景流。这种概念化方法允许在特征学习模式下对自身运动反馈进行建模,从而能够有效地利用现有的日志回放数据集,而无需依赖场景模拟。FlowAD,是一个通用的基于流的自动驾驶框架。在该框架中,由自身引导的场景划分首先构建基本流单元来量化场景流。自身车辆的前向方向和转向速度直接影响场景划分,从而反映自身运动。然后,基于流单元,进行空间和时间流预测,以模拟场景流的动态特性,包括空间位移和时间变化。最终的任务-觉察增强利用学习的时空流动态特性,通过对象级和区域级策略来提升各种任务的性能。还提出一种“正确规划前的帧数”(FCP)指标来评估场景理解能力。开环和闭环评估实验均表明,FlowAD 在感知、端到端规划和 VLM 分析方面具有通用性和有效性。
通过对现有架构的回顾,可以明显看出,规划模块始终作为最终的计算步骤运行,并依赖于来自先前模块的环境信息。每个推理周期最终生成一个自我规划,之后流水线重置以进行下一个时间戳的计算(下图 a 所示)。然而,关键在于,这种架构在很大程度上忽略自车自身执行的运动对其后续感知和决策的深远影响。一个完整的驾驶过程应包含两个部分:基于当前观测进行规划,以及更重要的,执行控制输出以塑造未来的感知输入。缺少第二部分,即自我运动的反馈,会导致不同的开环和闭环环境(Caesar,2020;Dosovitskiy,2017)。闭环环境(Jia,2024)主要用于评估自车与驾驶场景之间的实时交互,从而能够更真实地测试驾驶策略。相比之下,由于其简单性,目前大多数自动驾驶系统都采用不包含自车运动反馈的开环模型(Contributors (2024))进行大规模训练和测试。使用预先录制的固定数据集,规划的轨迹无法在物理上实现,从而切断动作与后续观察之间的联系。这种解耦显著阻碍了模型理解自我-场景交互中固有的复杂动态相互作用的能力,最终限制其规划能力。即使是整合历史状态以模拟环境变化的时序架构(下图 b 所示),也常常无法充分捕捉自车动作对未来状态的细微反馈。
为了克服上述局限性,本文引入一种自车-场景交互建模架构。该架构旨在通过学习自车运动在潜特征空间中的影响,显式地整合自车运动的反馈。如上图 c 所示,该方法利用前一时间步的规划自我轨迹来指导后续环境观测的重建或预测,从而显式地建模自车与其周围环境之间的动态相互作用。该方法的核心直觉源于人类的感知运动过程,特别是相对运动的概念(Davis & Bobick (1997); Bobick & Davis (2001))。人类天生理解,当他们移动时,环境似乎会朝相反的方向流动。这种感知的光流对于预测性规划和导航至关重要。自车-场景交互的这一基本方面(表现为相对运动)可以被有效地捕捉,并表示为模型潜空间中可学习的“场景流”。至关重要的是,这种方法能够利用现成的预录制数据集对自车运动反馈进行建模,从而无需进行复杂的模拟来生成各种观察结果。
基于自车-引导的场景划分
基于自车引导的场景划分旨在构建基本单元,以基于自-运动和输入的多视角图像来建模自我-场景交互动态,如下图所示。该划分基于由骨干网络构建的多视角图像特征 F_img 进行。
划分起点。自车的前进方向决定驾驶场景通过相对运动展开的起点。因此,首先考虑划分的起点,以引入自运动的引导。如上图所示,假设自车在 t 时刻位于坐标系原点,六个相机平面排列在感知范围的边缘。自车的前进方向由 t − 1/t 时刻的自车位置构成一个向量(红色箭头)。然后,前进向量与多视角平面的交点(红点)作为划分的起点,从而划分出自车左侧/右侧场景。
动态调整分区大小。在转向过程中,由于左右两侧场景的横向运动速度不同,自车左右两侧场景的流速也会发生变化。在这种情况下,使用相同大小 P 对两侧场景进行分区并不符合自车场景交互的运动学特性。因此,设计一种动态调整分区大小的策略,如上图所示。假设自车的转向轨迹是圆的一部分(Wang,2005;Park,2015),则采用自车位置 {(x_t−2, y_t−2), (x_t−1, y_t−1), (x_t, y_t)} 来确定圆心 (x_c, y_c) 和半径 r。结合自车宽度 w_ego,即可得到自车左右转向的半径。如上图所示的右转场景,其值分别为 r + w_ego /r/2 − w_ego/2。假设原始分区大小 P 对应于转向半径 r,则左转区域的分区大小为 P_left = P × (r+w_ego /2)^2^/r^2^,右转区域的分区大小为 P_right = P × (r−w_ego /2)^2^/r^2^。不同的分区大小能够实现更精细的自车-场景交互建模,有助于理解自运动对环境观测的反馈。
多级分区和局部聚合。由于自车相对于场景的运动主要体现在水平方向上,沿多视图图像的宽度方向进行分区。如上图所示,每个图像特征 F^i^_img (1 ≤ i ≤ N) 被分割成多个项,即流单元 F^i^_unit,分割大小为预定义值 P (W = K×P)。利用骨干网络的多级特征 {F^l^_img | 1 ≤ l ≤ L},探索不同分割大小 {P^l^ | 1 ≤ l ≤ L} 下不同感受野的流动态。值得注意的是,对象可能会意外分割,导致信息碎片化。因此,设计局部聚合来解决这个问题。相邻流单元的信息被融合,这有助于扩大感受野并提高多视角图像之间的相关性。
具体来说,F_unit 的每个流单元 f^k^_k (1 ≤ k ≤ K) 与其相邻的两个流单元连接(如上图所示),形成局部流特征 f^k−1:k+1^_unit。然后,对3P维度执行Vaswani(2017)提出的自单元注意机制,以融合局部消息,随后通过线性层降低维度并输出̃f^k^_unit。局部聚合后的流单元F̃_unit被输入到后续的空间和时间流预测模块,以构建自车场景交互动态。
空间和时间流预测
利用自车引导场景划分后的流单元 F̃_unit,可以量化自车与场景相对运动的场景流。场景流包括:1)空间位移:场景从一个流单元移动到另一个流单元;2)时间变化:同一流单元的场景随时间变化。因此,提出空间和时间流预测模块来捕捉潜空间中的自车与场景交互动态。
空间流预测模块。提出空间流预测模块来学习自车-周围环境驾驶场景的空间动态。如下图 a 所示,该模块捕捉前方流单元的动态并预测后方流单元的动态,从而赋予其在 GT 状态监督下进行空间流预测的能力。具体而言,初始化可训练的空间流查询 Q_spat,它表示流单元的转换动态。由于场景在自车两侧流动,流单元和查询从分区开始被分为两部分,即 F̃_unit 和 Q_spat。
对于 Q_spat 中的每个 q^j^_spat,利用 F̃_unit 中的前向流单元 ̃f^j-1^_unit,通过门控循环单元 (GRU) (Chung,2014) 对缓存的运动信息进行自回归更新。
值得注意的是,第一个空间流查询 q^1^_spat 的前向流单元 ̃f^0^_unit 不存在。因此,用最后一帧的第一个流单元 ̃f^1,t−1^_unit 作为替代。由于空间流预测旨在捕捉场景流的动态特性,因此推断后续流单元的状态是前提条件。利用输出 qˆ^j^_spat,基于 ̃f^j-1^_unit 和交叉注意机制预测后方(rear)流单元 ˆf^j^_unit。
对所有流单元进行迭代后,预测的单元被排列成空间流特征 Fˆ_spat,该特征代表场景流的空间动态。
参考 Hafner (2020; 2021) 在世界模型中的损失函数设计,分别将每个预测的/GT 流单元 ˆf^j^_unit/ ̃f^j^_unit 映射到 MLP 层构成的 {μˆ^j^_spat, σˆ^j^_spat | μ^j^_spat, σ^j^_spat} 的潜状态,然后最小化它们的 KL 散度。ˆf^j^_unit 的预测状态被视为空间动态的预测。来自 ̃f^j^_unit 的 GT 状态代表来自真实观测的分布。KL 散度衡量了它们之间的差距。期望通过优化空间预测损失 L_spat 来增强空间流的认知能力。
时间流预测模块。场景流的时间变化由所提出的时间流预测模块建模。流程如上图 b 所示。与单帧中每个流单元内的空间流预测不同,时间流预测是通过一系列多视角图像 {F^t^_img} 和可训练的时间流查询 {Q^t^_tem | 1 ≤ t ≤ T } 来进行的。在每次迭代中,利用 t − 1 时刻的流单元(即 F̃^t−1^_unit)作为时间先验,通过 GRU 更新流查询 Q^t^_tem。
类似地,利用更新后的时间流查询 Qˆ^t^_tem,基于 F̃^t−1^_unit,通过交叉注意模块预测下一帧的流单元 Fˆ^t^_unit。
最后一次迭代的输出时间流特征(即 Fˆ^T^_unit)用于下游任务,从而提供自车场景交互的时间动态信息。时间预测损失 L_tem 由 Fˆ^t^_unit 的预测状态 {μˆ^t^_tem, σˆ^t^_tem} 和 F̃^t^_unit 的 GT 状态 {μ^t^_tem, σ^t^_tem} 计算得出,并通过 MLP 层进行映射。
流特征融合。在空间和时间流预测之后,输出 Fˆ_spat 和 Fˆ^T^_tem 由流单元连接,并使用自注意机制进行融合,形成 Fˆ_fuse。
通用流框架
利用自我引导的场景划分和空间/时间流预测,自我-场景交互的时空动态被表示为 Fˆ_fuse。这使得自动驾驶系统能够理解自我运动对周围场景的反馈,从而有利于下游任务。如下图所示,提出一种通用的基于流感知、端到端规划和 VLM 分析框架。该框架由三个主要部分组成:输入、自我场景交互建模和任务感知增强。以多视角视频为输入,图像骨干网络首先提取图像特征。然后,利用自我场景交互建模构建时空流特征,作为任务感知增强的输入。由于下游任务通常分为对象级任务(例如,目标检测)和区域级任务(例如,用于分析驾驶场景的 VLM),设计相应的增强策略。
目标级增强。对于使用 M 个目标查询 Q_obj 进行推理的目标级任务(例如,目标检测和运动预测),通过应用时空特征流,可增强感知能力。如上图所示,目标查询被回归到采样点 p,并投影到多视图图像平面上。覆盖目标查询采样点的流单元被用于通过交叉注意机制增强查询嵌入,从而注入时空动态信息。
区域级增强。对于基于驾驶场景特征进行推理的区域级任务(例如,在自车规划中使用观察特征构建自车查询,在 VLM 分析中生成场景描述),设计区域级增强策略。如上图所示,区域特征直接与相应的流单元连接,并通过卷积层减少特征通道数。这有助于模型更好地理解自车-场景交互的动态性,并做出更鲁棒的决策。
实验设置
基线。为了验证所提出的 FlowAD 的通用性和有效性,针对感知、端到端规划和 VLM 分析任务进行实验。1) 对于感知任务,将框架应用于 SparseBEV(Liu,2023),该数据集使用稀疏对象查询来感知场景。2) 对于端到端规划任务,采用 SparseDrive(Sun,2024)和 DiffusionDrive(Liao,2025)作为基线。3) 对于 VLM 分析任务,采用 Senna(Jiang,2024)作为基线。需要注意的是,官方的检查点是在未公开的 DriveX 数据集上训练的。因此,为了确保公平比较,在 nuScenes 数据集(Caesar,2020)上对官方的 Senna 进行微调。所有输入和参数均与基线的官方设置一致。
数据集。用 nuScenes 数据集(Caesar,2020)和 Bench2Drive 数据集(Jia,2024)评估 FlowAD。1) nuScenes 数据集包含 1000 个驾驶场景,其中 700 个序列用于训练,150 个序列用于验证。在此数据集上执行感知、端到端规划(开环)和 VLM 分析任务。评估指标与基线方法一致。2) Bench2Drive 数据集是一个用于以闭环方式评估驾驶能力的基准数据集,包含 200 万帧图像,这些图像来自 CARLA 数据集(Dosovitskiy,2017)。在此数据集上进行感知和端到端规划(包括开环和闭环)实验。按照官方设置,950 个片段用于训练,50 个片段用于验证(即感知和开环规划)。闭环规划评估在官方的 220 条路线上进行。所有指标均与之前的研究结果一致。