📄 论文信息

  • 标题DriveVLM: The Convergence of Autonomous Driving and Large Vision-Language Models
  • 来源:上海交通大学 × 蔚来(NIO)
  • 关键词:VLM、场景理解、空间推理、双系统架构
  • 一句话总结:用 VLM 做自动驾驶的"大脑",理解场景 + 推理决策,再用一个小模型保证实时性。

🤔 要解决什么问题?

传统自动驾驶 pipeline 能做检测、跟踪,但缺乏"理解"和"推理"能力

  • 能识别"前方有锥桶",但不懂"因为施工所以要变道绕行"
  • 能检测"雨天",但不会推理"路滑所以要提前减速"
  • 能看到"路口有交警",但不会推理"交警手势优先级高于红绿灯"

人类开车靠的是对场景的语义理解和因果推理,而这正是大语言模型(LLM)的强项。规则系统无法枚举所有 corner case,而 VLM 可以借助预训练知识做"举一反三"。

核心问题:如何让 VLM(视觉语言模型)的推理能力服务于自动驾驶决策?更进一步——如何让又大又慢的 VLM 真正跑在车端?

DriveVLM 给出的答案是两步走:先把推理流程结构化(CoT)再用双系统架构解决实时性


💡 核心思路:CoT 场景推理

DriveVLM 设计了一套**思维链(Chain-of-Thought)**式的场景理解流程,模拟人类司机的思考过程:

描述分析提取推理

先看清楚 → 想明白 → 再行动。这四步不是随意切分,而是对应人类从"看到"到"想到"再到"决定"的认知链条。

M1 场景描述(Describe)

这一步要说清楚"我在哪、周围有什么"。模型输出对自车状态和环境元素的客观描述,分三类枚举:

  • 交通参与者:轿车、卡车、行人、骑行者、交警……
  • 交通信号与标识:红绿灯、停止线、限速牌、施工标志……
  • 道路结构与障碍:车道线、护栏、锥桶、施工围挡……

📍 例子: “本车行驶在城市双向两车道上,前方约 20 米有一辆白色厢式货车正缓慢行驶;右车道被一排施工锥桶占用;路口东侧有一个红绿灯当前显示为绿灯剩余 3 秒;右侧人行道上有两名行人正朝路口走来。”

注意,这一步只描述,不下判断——先把场景"拍下来",避免过早决策漏掉关键信息。

M2 场景分析(Analyze)

在描述的基础上,评估每个目标的状态、属性及其对自车的潜在影响

  • 目标的运动状态:速度、朝向、是否在加速/减速
  • 目标的空间关系:相对距离、所在车道、与自车的相对位置
  • 目标的潜在影响:会不会变道、会不会闯红灯、是否构成风险

📍 例子: “前方货车速度明显低于本车(约 15 km/h),且其右车道已被锥桶封闭,短期内无法避让;红绿灯即将变黄,本车按当前速度无法在变灯前通过路口;右侧行人虽然还在人行道,但步速较快,预计会在本车到达路口时进入斑马线。”

这一步把"看到的事实"升级成"懂的含义",是从感知到推理的关键过渡。

M3 关键目标提取(Extract)

真实场景里目标几十上百个,全盘推理既慢又没必要。这一步用一套拓扑关系筛出当前最影响决策的目标:

  • 与自车交互最强的目标(同车道前车、汇入车辆)
  • 具有高风险的目标(行人、电动车、施工区)
  • 具有高不确定性的目标(打灯未变道、犹豫的行人)

提取后形成一个关键目标集合,后续推理只围绕它们展开。

📍 例子: 当前关键目标 = {前方货车, 右侧行人, 红绿灯},其余车辆因距离远或车道无关而被剔除。

M4 推理决策(Reason)

最后一步基于上述三个模块的输出,给出明确的驾驶决策和理由

📍 例子: “由于前方货车速度过低且右车道施工封闭,本车应减速跟车而非强行变道;同时红绿灯即将变黄,应准备在停止线前停车;右侧行人可能在变灯时进入斑马线,需保持观察并随时制动最终决策:缓慢减速,准备停车。

这一步的输出不仅是动作,更包含可解释的因果链——这是 VLM 路线相比黑盒端到端的巨大优势。

四步对比一览

步骤作用关注什么输出形式例子
M1 描述客观陈述场景元素存在性自然语言清单“前方有施工锥桶,右侧有行人”
M2 分析评估状态与影响运动/空间关系带属性的描述“锥桶占据左车道,行人靠近路边”
M3 提取聚焦关键目标拓扑重要性目标集合“施工区域是当前主要风险”
M4 推理得出决策因果链决策+理由“需减速并变道至右车道”

为什么不直接"看图出决策"?

一个自然的疑问:为什么不让 VLM 直接从图像输出动作? 实验表明,直接映射有两个问题:

  1. 幻觉严重:模型会编造场景中不存在的东西(凭空出现一辆车)
  2. 推理跳跃:跳过中间步骤,决策缺乏依据,出错难定位

CoT 把一个大跳跃拆成几个小步骤,每步可验证、可监督,既提升准确率,也带来可解释性——这也是 LLM 领域"think step by step"在驾驶场景的迁移。


⚙️ 关键创新:DriveVLM-Dual 双系统架构

VLM 虽然聪明,但推理慢(单次推理几百毫秒到数秒),无法满足车端实时性(规划通常需要 10Hz+)。作者借鉴卡尼曼《思考,快与慢》中的双系统理论,设计了 DriveVLM-Dual:

  • 🐢 慢系统(VLM 大模型):深度推理,频率低(几秒一次),处理复杂/罕见场景
  • 快系统(轻量网络):高频运行,实时输出控制,处理常规场景

两者通过触发机制条件融合协同工作。

快系统:高频实时

快系统是一个轻量化 CNN/Transformer,输入多帧图像和传感器数据,直接输出轨迹或控制量。它的特点:

  • 频率高:10Hz 以上,保证平顺性和安全性
  • 覆盖常规场景:直线行驶、跟车、普通变道等
  • 不擅长长尾:对施工、复杂路口、突发情况理解不足

可以理解为" reflex 反射弧"——大部分时间它在开车。

慢系统:低频深度推理

慢系统就是上文的 VLM + CoT,输出的是高层语义指导

  • 场景描述(M1)
  • 关键目标集合(M3)
  • 高层决策意图(M4,如"减速准备停车"“变道绕行”)

注意慢系统不直接输出最终轨迹,而是给快系统当"指挥官"。

关键场景触发机制

慢系统很贵,不能一直开。**触发器(Trajectory Trigger)**负责判断"当前是否需要请慢系统出山":

触发条件说明
目标突变前车急刹、有车强汇入、行人闯入
特殊路况施工区、事故、临时管制
复杂拓扑多岔路口、无保护左转、环岛
异常天气雨、雪、雾影响感知
快系统置信度低快系统对自己的输出"没把握"
定时兜底即使无异常,每隔几秒也跑一次

触发器本质上是一个轻量分类器,把"是否复杂"做成一个可学习的判断,避免人工写死规则。

双系统的融合方式

慢系统被触发后,它的输出如何"指导"快系统?大致是条件注入的思路:

慢系统输出(描述/关键目标/决策意图)编码为条件向量作为额外输入拼到快系统快系统输出最终轨迹

这样设计的好处:

  • 快系统始终在跑,保证实时性
  • 慢系统的指导像"提词器",把语义信息注入到低层规划
  • 即使慢系统偶尔延迟,快系统也能维持基本安全
维度慢系统(VLM)快系统(轻量网络)
频率低(~0.2–1Hz)高(10Hz+)
算力
擅长语义推理、长尾实时反应、常规场景
输出高层决策指导轨迹/控制量
类比人脑"深思"人脑"反射"

这套设计的精髓在于:用频率解耦"深度"和"速度"——重要的不是让 VLM 跑得多快,而是让它在关键时刻"点一下"。


🧪 训练策略与数据

DriveVLM 不只是"调一个 GPT-4V",而是有完整的训练 pipeline。

基座模型选择

作者选用 Qwen-VL 系列作为基座(实验中也对比了 InternVL 等),原因:

  • 中文场景描述能力强(适配国内路况标注)
  • 开源可微调,便于车端部署
  • 视觉编码器(ViT)与 LLM 部分解耦,便于优化

视觉-语言对齐

VLM 预训练时见的多是"网络图片 + 描述",驾驶视角图像与日常照片差异巨大(鱼眼、多摄、低光照)。对齐的关键:

  • 视觉编码器用驾驶图像继续预训练,让 token 编码适配车端视角
  • 多视图融合:把环视多摄像头图像分别编码后拼接,让模型有 360° 视野
  • 时序信息:用少量历史帧提供运动线索,弥补单帧看不出速度的问题

训练阶段与 loss 设计

训练分多个阶段,逐步解锁能力:

阶段数据目标loss
阶段 1:对齐预训练大量驾驶图像 + 简短描述视觉-语言对齐图文对比 + 描述生成(CE)
阶段 2:CoT 监督微调标注的四步推理样本学会 Describe/Analyze/Extract/Reason逐步骤交叉熵(SFT)
阶段 3:决策对齐带决策动作的样本让推理对齐最终动作动作回归 + 语言 CE 联合

几个关键设计:

  • 逐步骤监督:每一步(M1–M4)都有独立标注和 loss,而不是只监督最后决策。这强迫模型"过程正确",显著降低幻觉
  • 关键目标提取的可学习性:M3 的输出用集合匹配 loss,允许目标顺序不固定
  • 高效微调:大模型部分用 LoRA / QLoRA,只训少量参数,降低显存压力
  • 快系统单独训练:快系统是独立的轻量网络,用海量驾驶轨迹数据训练,与慢系统解耦

🏭 Meta-DriveVLM 数据生成引擎

CoT 监督需要大量带四步推理标注的数据,人工标注又贵又慢。作者提出 Meta-DriveVLM,用 VLM 自己自动生成训练数据——一个"数据飞轮"。

工作流程

采集驾驶片段关键帧抽取用强 VLM(如 GPT-4V / 标注大模型)生成四步 CoT质量过滤入库用于训练小模型

关键技术点

  • 关键帧采样:不是每帧都标注,而是按"场景变化点"采样(变道、加减速、信号变化),提升数据效率
  • 多模型交叉验证:用多个 VLM 生成描述,取一致部分作为伪标签,过滤单模型幻觉
  • 结构化提示词:用固定 schema 约束输出格式,保证 M1–M4 结构整齐,便于下游训练
  • 人工抽检:抽样人工复核,估算伪标签准确率,反过来迭代提示词

数据飞轮的意义

Meta-DriveVLM 的真正价值在于可规模化

  • 人工标注一天几百条,自动生成可达几万到几十万量级
  • 新场景(新城市、新天气)只要采集视频,就能快速产出标注
  • 形成"采集 ➜ 生成 ➜ 训练 ➜ 部署 ➜ 再采集“的闭环
维度人工标注Meta-DriveVLM 自动生成
速度慢(小时级/条)快(秒级/条)
成本低(摊销算力)
一致性因人而异模板统一
准确性高(专家)中等(需过滤)
规模上限千-万万-百万

这也是论文把"数据"作为独立贡献的原因——VLM 落地驾驶的瓶颈不在模型,而在数据


🔬 实验与结果

评测数据集

作者在多个 benchmark 上评测:

  • DriveVLM 自建数据集:覆盖施工、复杂天气、复杂路口等长尾场景,带 CoT 标注
  • nuScenes:通用感知与预测基准,做对比验证
  • SUP-AD 等私有仿真平台:闭环/开环规划评测

关键指标

主要从两个维度看效果:

1. 推理与决策质量(开环)

方法场景描述准确率决策合理性(人工评分)
纯感知 + 规则基线
GPT-4V 直接推理中(幻觉多)
DriveVLM(CoT)

2. 规划精度(L2 误差 / 碰撞率)

DriveVLM-Dual 在长尾场景下相比纯快系统基线有明显提升,同时双系统设计把平均延迟控制在可接受范围。具体数值随 benchmark 差异较大,建议查原论文 Table。

经验性结论:在常规场景下双系统与纯快系统持平在长尾场景下显著优于纯快系统——这正是慢系统被触发的时候。

与 GPT-4V 直接做驾驶推理的对比

一个常见疑问:直接用 GPT-4V 不就行了? 实测下来差距明显:

维度GPT-4V 直接推理DriveVLM
空间感知弱(距离/车道判断常错)强(驾驶数据对齐过)
幻觉严重(编造目标)受 CoT 监督约束,显著降低
延迟数秒(云端调用)双系统可达车端实时
可控性黑盒,难微调可微调、可注入业务约束
成本每次调用付费一次性部署
离网可用否(依赖云)是(本地部署)

核心结论:通用 VLM 缺的不是智力,而是"驾驶常识"和"车端可部署性”,这正是 DriveVLM 微调 + 双系统要解决的。

失败案例

论文和分析中常见的失败模式:

  • 夜间/强逆光:视觉编码器失效,描述漏检关键目标,导致 M1 就错了,后续连锁出错
  • 罕见交通手势:训练数据少,模型识别不准
  • 远距离小目标:分辨率不足,行人/电动车在 M3 漏提取
  • 慢系统延迟过大:触发后慢系统没及时返回,快系统只能"盲开"几帧,存在安全隐患
  • 过度推理:简单场景也被触发慢系统,造成算力浪费和平顺性下降

这些失败案例提示:触发器的设计、视觉编码器的鲁棒性、慢系统的延迟预算是工程落地的三大关键。


🎯 这篇论文的意义

  1. 范式验证:证明了 VLM 的推理能力确实能提升自动驾驶决策质量,尤其在长尾场景
  2. 工程可行:双系统架构给出了一套"VLM 落地车端"的现实方案,而不只是 demo
  3. 数据飞轮:Meta-DriveVLM 展示了用 VLM 反哺数据生成的可能性,把"数据瓶颈"变成可工程化的 pipeline
  4. 可解释性:CoT 输出天然带因果链,对安全审计和事故复盘有重大价值

它是 VLA 这条路线在自动驾驶领域的重要奠基工作之一


🔗 相关工作延伸

工作团队与 DriveVLM 的关系
EMMAWayve更激进的端到端多模态大模型,统一感知+规划
DriveVLM-Dual本文DriveVLM 的实时化版本
LMDrive田野LLM 辅助的端到端驾驶
π0 / π0.5Physical Intelligence通用机器人 VLA,Flow Matching 动作头设计可借鉴
GPT-4V / Qwen-VLOpenAI / 阿里作为基线或数据生成器被对比/使用

📝 个人思考

这篇论文最打动我的不是某个模块设计,而是**“用人类思考方式来设计系统”这个理念。CoT 推理 + 双系统架构,本质上是在用 AI 架构模拟人类认知机制——人类开车也是"平时靠反射、遇到复杂情况才动脑子想"。这种仿认知结构**的设计哲学,比单纯堆参数或堆数据更有长期价值,因为它对齐了我们已知的最优驾驶智能体(人类司机)的工作方式。

对工程实践的第一点启发:VLM 落地车端的核心矛盾是**“聪明"和"快"不可兼得**,而双系统是一种通用的解法模板——不只是自动驾驶,机器人、具身智能、甚至工业控制都能用。关键不是把大模型蒸馏到多小,而是想清楚**“哪些决策需要深思、哪些只需要反射”**,把算力花在刀刃上。这个"重要性与算力的匹配"思想,比具体网络结构更值得迁移。

第二点启发在数据侧。Meta-DriveVLM 让我意识到,大模型时代自动驾驶的护城河正在从"模型结构"转移到"数据闭环”。谁能把"采集 ➜ 自动标注 ➜ 训练 ➜ 部署 ➜ 再采集"这条飞轮转得更快更稳,谁就有优势。CoT 的结构化输出在这里起到关键作用——它不仅是推理范式,更是一种数据 schema,让自动生成、人工校验、模型训练三者能对齐。这一点上,DriveVLM 的工程价值可能比它的模型设计更深远。

最后一点是对可解释性的体会。监管和安全验证是自动驾驶绕不开的坎,而黑盒端到端最大的软肋就是出事说不清。CoT 天然带因果链:“我看到了什么 ➜ 我判断了什么 ➜ 所以我怎么做”,这种可追溯的决策日志在事故复盘里价值巨大。我倾向于认为,未来真正能大规模上车的系统,一定会在"端到端的效率"和"CoT 的可解释"之间找一个平衡点——而 DriveVLM 给出了一个相当有说服力的左脚踩右脚的起点。


📖 这是论文精读系列的第 1 篇。下一篇你想看哪篇论文的解读?欢迎留言。