VILTA: A VLM-in-the-Loop Adversary for Enhancing Driving Policy Robustness¶
会议: AAAI 2026
arXiv: 2601.12672
代码: 无
领域: 自动驾驶 / VLM应用
关键词: VLM-in-the-Loop, 对抗轨迹生成, 闭环训练, 长尾场景, 驾驶策略鲁棒性
一句话总结¶
VILTA 将 VLM(Gemini-2.5-Flash)直接嵌入自动驾驶 RL 训练循环中,通过"Vision-Language-Editing"(VLE)范式让 VLM 编辑周围车辆的未来轨迹来生成具有挑战性的危险场景,训练出的驾驶策略在 CARLA 挑战场景中路线完成率提升 13.3%、碰撞率降低 28.5%。
研究背景与动机¶
- 领域现状:自动驾驶安全部署被长尾问题严重阻碍——真实驾驶数据中极端危险场景极其稀少,导致 AD 模型在这些"corner cases"上表现不佳。
- 现有痛点:现有方案分两类——(1) 安全关键场景生成(离线生成但不用于训练);(2) 闭环学习(将生成场景用于训练,但依赖规则/重采样/离线学习的生成模型,多样性不足)。近期虽有工作用 VLM 分析场景并指导下游模型生成轨迹,但这种两阶段方式限制了 VLM 的生成潜力。
- 核心矛盾:VLM 有强大的泛化和推理能力,但现有方法仅将其用于高层描述/分析,然后交给下游模型做实际生成——最终轨迹的多样性被下游模型的泛化能力上限所限制。
- 本文要解决什么? 如何充分发挥 VLM 的生成能力来创建多样、挑战性强的对抗驾驶场景并集成到训练循环中?
- 切入角度:借鉴图像编辑领域的思路——VLM 不从零生成轨迹(容易不合理),而是编辑一条规则生成的基础轨迹,使其变得更具挑战性,同时保持运动学合理性。
- 核心 idea 一句话:VLM 直接在训练循环中编辑周围车辆轨迹来创建对抗场景,替代两阶段的间接生成。
方法详解¶
整体框架¶
闭环训练:RL 环境提供当前场景 → BEV 表示+车辆状态 → VLM(Gemini-2.5-Flash)同时做场景理解和轨迹编辑 → 后处理确保运动学可行性 → 编辑后的轨迹控制"危险车辆"在环境中执行 → ego 车辆在此挑战场景中学习。正常场景和挑战场景交替训练(默认 1:2 比例)。
关键设计¶
- 场景表示与危险车辆选择:
- 做什么:将驾驶场景转化为 BEV 表示,并识别最应成为"危险车辆"的对象
- 核心思路:构建 BEV 图(ego=白色、危险车辆=黄色、其他=蓝色、可行驶区域=灰色、车道线=洋红色),选择危险圈内距 ego 最近的车辆。根据其相对位置和行驶方向自动分配危险操作类型(前方→急刹、后方→超车、相邻→切入、对向→掉头/越线)
-
设计动机:规则化的危险操作类型选择确保了场景描述的准确性,BEV 输入使 VLM 能直接理解空间关系
-
Vision-Language-Editing (VLE) 范式:
- 做什么:让 VLM 编辑基础轨迹而非从零生成
- 核心思路:先用 CTRV 运动模型+地图 waypoint 线性融合生成一条"正常"基础轨迹 \(T_{\text{base}}\)(前期由 CTRV 主导保证连续性,后期由地图 waypoint 主导保证方向性)。VLM 基于场景理解和指定的危险操作类型编辑这条轨迹,输出编辑后的航点 \(T_{\text{edit}}\)
-
设计动机:类比图像编辑——编辑比从零生成更可控。实验验证:VLM 直接生成的轨迹虽然多样性不差,但挑战性不足(与 ego 的最小距离与原始轨迹相当),而编辑后的轨迹既更多样又更具挑战性
-
三阶段轨迹后处理:
- 做什么:确保 VLM 编辑后的轨迹运动学可行
- 三个组件:(a) B-spline 平滑 \(T_{\text{edit}} \rightarrow T_B\);(b) Sigmoid 融合 \(T_{\text{curve}} = w_i \cdot T_{\text{base}} + (1-w_i) \cdot T_B\)(初始阶段权重偏向 \(T_{\text{base}}\) 确保行为连续性,后期偏向编辑轨迹);(c) LQR 控制器执行 \(T_{\text{curve}}\) 生成最终运动学可行轨迹 \(T_{\text{final}}\)
- 设计动机:VLM 输出的原始航点可能有运动学不可行的突变,三阶段处理逐步平滑和约束
训练策略¶
使用 SAC(Soft Actor-Critic)算法训练 ego 驾驶策略。正常场景和挑战场景交替训练,消融显示 8:1 比例(每 8 个正常场景穿插 1 个挑战场景)效果最优。VLM 使用 Gemini-2.5-Flash API,不做微调。
实验关键数据¶
主实验 — CARLA Town01-03(挑战场景)¶
| 方法 | Total RC↑ | Total CR↓ | Total CPM↓ |
|---|---|---|---|
| VLM-RL | 2.10 | 1.44 | 51.74 |
| CAT | 1.90 | 1.70 | 67.50 |
| VILTA | 2.38 | 1.03 | 48.62 |
消融实验 — Town02 挑战场景¶
| 配置 | RC↑ | CR↓ | CPM↓ |
|---|---|---|---|
| w/o Post-Processing | 0.73 | 0.60 | 18.75 |
| w/o Following Reward | 0.74 | 0.60 | 19.28 |
| w/o VLE(直接生成) | 0.75 | 0.53 | 18.50 |
| x2(默认) | 0.77 | 0.50 | 18.13 |
| x8(最优比例) | 0.87 | 0.30 | 5.33 |
关键发现¶
- VILTA 在挑战场景下 RC 总和比 VLM-RL 高 13.3%(2.38 vs 2.10),碰撞率低 28.5%(1.03 vs 1.44)
- 在正常场景下 VILTA 表现最好(RC=2.70, CR=0.63),证明不存在灾难性遗忘
- VLE 编辑范式 vs 直接生成:编辑后的轨迹与 ego 的最小距离明显更小、加速度和转向角更极端——VLE 既增加多样性又增加挑战性
- 后处理贡献显著:加入后 RC 提升 5.5%,CPM 降低 3.3%
- 场景交替频率敏感:1:8 日比最优,过于频繁(1:2)或过于稀少(1:16)都降低效果
- nuScenes 离线验证也一致:VILTA 在挑战场景成功率 65%(vs BC+PPO 62%),正常场景 93%(vs BC+PPO 89%)
亮点与洞察¶
- VLE 范式创新:不让 VLM 从零生成轨迹而是编辑基础轨迹——这个"编辑 > 生成"的洞察来自图像编辑领域,在自动驾驶中首次验证。直接生成虽然多样但不够"有挑战性",编辑则两者兼得
- VLM 作为闭环对抗者:打破了 VLM 仅做分析/描述的两阶段范式,让 VLM 直接参与轨迹编辑,充分利用其泛化能力
- 正常/挑战交替训练防止灾难性遗忘:简单的交替策略就有效保持正常场景性能
局限性 / 可改进方向¶
- 仅在仿真中验证,sim-to-real 迁移未讨论
- 当前仅编辑单个"危险车辆"的轨迹,真实场景可能涉及多车协同的复杂交互
- 危险车辆选择和危险操作分配使用预定义规则,可以改为学习化的发现机制
- 性能依赖底层 VLM 能力,未分析 VLM 的具体偏差
- Town05 上 VILTA 在挑战场景下碰撞率高于 CAT(0.43 vs 0.27),说明泛化性需进一步提升
相关工作与启发¶
- vs CurricuVLM: CurricuVLM 用 VLM 分析弱点指导重采样(两阶段),VILTA 让 VLM 直接编辑轨迹(一阶段)
- vs CAT: CAT 用运动预测模型生成对抗轨迹,多样性受限于训练数据;VILTA 用 VLM 的泛化能力生成更多样的挑战
- vs VLM-RL: VLM-RL 用 VLM 做奖励信号生成,VILTA 用 VLM 做场景生成——不同维度的 VLM 应用
- 启发:TAPA 论文的"LLM 做动作空间调制器"和 VILTA 的"VLM 做场景生成器"思路类似——都是让大模型做"幕后设计师"而非前台决策者
评分¶
- 新颖性: ⭐⭐⭐⭐ VLM-in-the-Loop + VLE 编辑范式是新颖的组合
- 实验充分度: ⭐⭐⭐⭐ CARLA 5 towns + nuScenes + 多消融 + 轨迹分析
- 写作质量: ⭐⭐⭐⭐ 框架描述清晰,可视化丰富
- 价值: ⭐⭐⭐⭐ 为 VLM 在自动驾驶训练中的应用提供了新范式