2. 驾驶场景基础
要让视觉语言模型真正服务于自动驾驶,第一步不是调模型,而是理解驾驶场景本身。驾驶场景是一个高速、动态、强约束的物理世界:车辆以每秒十几米甚至三十米的速度移动,感知系统必须在毫秒级完成对车道、车辆、行人、交通标志和可行驶区域的判断。视觉语言模型(VLM)进入这个领域,意味着我们不仅要处理图像,还要把图像、点云、雷达、GPS、IMU、车辆总线信号以及自然语言指令统一到同一个语义空间里。本节从感知任务、多模态数据特点、VLM 的价值与挑战三个层面建立驾驶场景的基础认知。
一、自动驾驶感知任务:从像素到驾驶决策
自动驾驶感知任务可以按输出形式分为四类:检测、分割、跟踪与预测。检测回答“有什么、在哪里”,典型输出是 2D 或 3D 边界框;分割回答“每个像素属于什么”,包括语义分割、实例分割和可行驶区域分割;跟踪回答“同一目标在时间上如何运动”,输出轨迹 ID 与速度;预测则回答“接下来几秒它会怎么动”,输出未来轨迹分布。这四类任务层层递进,共同构成从原始传感器数据到驾驶决策的中间表示。
在工程实现中,感知任务通常以多任务网络形式共享骨干特征。例如 BEV(Bird's Eye View)架构将多相机图像投影到统一俯视空间,再在 BEV 特征上同时完成检测、分割和运动预测。VLM 的介入点通常不在最底层像素处理,而在 BEV 特征之后或决策之前,用语言对齐的方式提供可解释的语义描述、长尾场景理解和人机交互能力。
核心链路:传感器原始数据 → 时空对齐 → 特征提取 → BEV/占用栅格 → 感知任务头 → 跟踪与预测 → 规划控制。VLM 可嵌入在“感知任务头”之后,将结构化感知结果转译为自然语言描述,或直接对原始图像做视觉问答。
二、多模态数据特点:异构、异步、高冗余
驾驶数据与互联网图文数据有本质差异。互联网图文是“静态、精选、语义完整”的,而驾驶数据是“连续、原始、强时序”的。具体来说,驾驶多模态数据具有以下特点:
- 异构性:相机输出稠密像素,激光雷达输出稀疏点云,毫米波雷达输出距离-速度-角度谱,GPS/IMU 输出低频位姿,CAN 总线输出车辆状态。不同模态的物理量纲、采样率和空间坐标系完全不同。
- 时间异步:相机 30Hz、激光雷达 10Hz、雷达 20Hz、GPS 1Hz,硬件触发存在毫秒级抖动。训练前必须做时间戳对齐和运动补偿,否则融合特征会出现“鬼影”。
- 空间外参依赖:各传感器安装位置和朝向不同,需要精确标定外参才能投影到统一坐标系。标定误差会直接传播为融合误差。
- 高冗余与低信息密度:连续帧中大量画面重复,真正决定驾驶行为的关键帧可能只占 1%~5%。这要求数据采样和标注策略必须面向“事件”而非“均匀时间”。
- 长尾分布:常规跟车、直行占绝大多数,而 cut-in、鬼探头、施工区、异形车辆等长尾场景稀少但风险极高。
这些特点决定了 VLM 在驾驶数据上的训练不能简单套用图文预训练流程。我们需要设计模态对齐层、时间采样策略和长尾重采样机制,才能让模型学到真正有用的驾驶语义。
三、VLM 在驾驶中的价值:从感知到可解释交互
视觉语言模型在驾驶场景中的价值主要体现在三个方向。第一是开放词汇感知:传统检测器只能识别预定义类别,而 VLM 可以通过语言提示识别“正在搬运梯子的工人”“临时摆放的锥桶”等长尾目标,显著提升对未知障碍物的召回。第二是场景理解与可解释性:VLM 可以将 BEV 特征或前视图像转译为自然语言描述,例如“右前方有车辆正在减速并入本车道,建议保持车距”,为规划模块提供语义先验,同时为安全员和乘客提供可读的决策依据。第三是人机交互与指令跟随:乘客可以用自然语言下达“靠边停车”“避开施工区域”等指令,VLM 将语言映射为驾驶行为,降低对固定按钮和预设场景的依赖。
在工程落地中,VLM 通常不直接输出控制量,而是作为“语义中间层”与规则规划器或端到端规划器协同。例如,VLM 输出场景描述和风险标签,规划器根据标签调整跟车距离或换道策略。这种分工既保留了 VLM 的语义泛化能力,又保证了底层控制的安全性和可验证性。
四、核心挑战与常见误区
尽管前景广阔,VLM 在驾驶场景中仍面临多重挑战。首先是实时性:7B 参数模型在边缘端推理延迟可能超过 200ms,而驾驶决策周期通常要求 50ms 以内。其次是幻觉问题:VLM 可能生成与视觉证据不符的描述,例如把阴影误判为行人,这在安全关键系统中不可接受。第三是模态缺失:雨天相机失效、激光雷达被遮挡时,模型需要具备降级运行能力。第四是数据与标注成本:驾驶场景的细粒度语言标注需要专业知识和大量人力,且标注一致性难以保证。
常见误区:把 VLM 当作端到端驾驶模型直接输出油门和方向盘。当前 VLM 的推理延迟、数值精度和时序一致性尚不足以支撑直接控制。更合理的定位是“语义感知与交互层”,与规则规划器或专用控制网络形成冗余架构。
| 维度 | 传统感知方案 | VLM 增强方案 | 工程建议 |
|---|---|---|---|
| 目标类别 | 预定义闭集 | 开放词汇、语言提示 | VLM 做长尾召回,传统检测器做高频主目标 |
| 输出形式 | 框、掩码、轨迹 | 自然语言描述、问答 | VLM 输出语义标签,规划器消费结构化结果 |
| 推理延迟 | 10~30ms | 100~500ms | 异步运行,VLM 结果用于策略调整而非实时控制 |
| 可解释性 | 低,依赖可视化 | 高,语言可读 | 用于安全员监控和事故复盘 |
| 数据需求 | 标注框和掩码 | 图文对、指令数据 | 构建驾驶场景指令微调数据集 |
五、案例复盘:施工区场景的 VLM 辅助感知
某 L2+ 项目在施工区场景中频繁出现漏检锥桶和临时护栏的问题。传统检测器对标准锥桶召回率约 85%,但对异形水马和临时指示牌召回率不足 40%。团队引入 VLM 作为二级校验:当 BEV 感知结果中出现“可行驶区域边界突变”或“前方车辆异常绕行”时,触发 VLM 对前视图像进行视觉问答,提示词为“画面中是否存在施工相关障碍物?请描述其位置和类型”。VLM 输出结构化 JSON 后,与 BEV 检测结果做融合,最终将施工区障碍物召回率提升至 78%,同时将误报率控制在 5% 以内。
# 施工区 VLM 触发与融合伪代码
if bev_boundary_shift > threshold or lead_vehicle_swerve:
prompt = "画面中是否存在施工相关障碍物?请描述位置和类型。"
vlm_result = vlm_infer(front_image, prompt) # 异步调用,超时 150ms
if vlm_result.confidence > 0.7:
fuse_to_bev(vlm_result.objects, weight=0.6)
else:
keep_bev_only()
复盘发现,VLM 的触发时机和提示词设计比模型规模更关键。过早触发会增加算力负担,过晚触发则失去安全冗余意义。团队最终将触发条件与车辆运动状态、BEV 边界变化率和历史误报模式联合建模,使 VLM 调用频率从每帧一次降至每 8 帧一次,整体延迟增加控制在 15ms 以内。
实践建议:在驾驶场景中引入 VLM 时,优先明确三个边界——它负责什么(语义理解与长尾召回)、不负责什么(实时控制与安全兜底)、何时被调用(事件触发而非全时运行)。把 VLM 放在正确的架构位置上,比盲目追求更大参数量的模型更能带来工程收益。