自动驾驶感知新范式:用视觉语言模型推理遮挡风险,提升规划安全 📅 发布时间:2026/8/23 5:38:11 👁 浏览次数: 1. 项目概述当自动驾驶“看不见”时我们如何思考在自动驾驶的研发一线摸爬滚打了十几年我见过太多因为“看不见”而引发的惊险瞬间。传感器再先进也总有盲区摄像头分辨率再高也躲不开前方大货车的完全遮挡。传统的感知模块会老老实实地报告“前方无目标。”但一个经验丰富的司机却会下意识地踩下刹车或准备变道因为他“知道”那个被遮挡的区域里很可能有行人正要横穿马路或者有车辆正准备汇入。这种基于常识和场景理解的“隐性认知”恰恰是当前自动驾驶系统从“功能实现”迈向“可靠智能”的关键瓶颈。最近一个名为“What‘s Hidden Matters”的研究项目直指这个核心痛点。它的目标非常明确利用视觉-语言模型去识别那些被严重遮挡、但对行车规划至关重要的交通参与者。简单说就是教会AI“看见”那些它物理上“看不见”的东西。这听起来有点像玄学但其背后的逻辑却极其务实——通过融合视觉线索与语言描述的常识知识模型能够对遮挡区域进行合理的、概率化的推理判断其中是否存在“规划关键”的障碍物。这里的“规划关键”指的是那些一旦突然出现会迫使车辆进行紧急制动或大幅度转向规避的物体比如行人、自行车、突然刹停的车辆等。这个项目之所以让我这个老司机感到兴奋是因为它跳出了传统感知“检测-跟踪-预测”的流水线开始触及驾驶智能的本质理解与推理。它不再仅仅满足于回答“那里有什么”而是尝试去回答“那里可能有什么以及如果真有我该怎么办”。这对于提升自动驾驶在复杂城市场景中的安全冗余和通行流畅性具有颠覆性的意义。无论你是算法工程师、规控研发还是对自动驾驶前沿技术感兴趣的爱好者理解这套思路都将帮助你重新审视感知系统的边界与可能性。2. 核心思路拆解从“感知结果”到“风险认知”的范式转移2.1 传统感知的“阿喀琉斯之踵”完美数据与残缺现实的矛盾在深入新方法之前我们必须先认清现有体系的局限。当前主流的自动驾驶感知系统严重依赖于高质量的传感器数据和标注完美的训练集。在nuScenes、Waymo Open Dataset这类标杆数据集上模型的表现可以非常亮眼。但一到真实世界问题就暴露无遗严重遮挡等于目标消失当一个行人被公交车完全挡住激光雷达点云缺失摄像头图像中也没有任何像素属于该行人。此时无论是基于相机、激光雷达还是融合的感知模型输出结果大概率是“该区域无目标”。系统会认为前方道路是畅通的。上下文信息利用不足传统模型虽然也能通过时序信息如目标历史轨迹或场景上下文如靠近人行横道进行一定预测但这种能力是隐式的、有限的并且严重捆绑于训练数据的分布。对于训练集中未充分覆盖的长尾、极端遮挡情况模型缺乏有效的推理机制。输出与规划模块脱节感知模块通常输出的是边界框、类别、速度等几何与运动状态信息。规划模块基于这些“确定性”或“高置信度”的信息进行决策。当感知说“没有”时规划就默认“真的没有”。两者之间缺乏一个关于“未知与可能性”的有效沟通语言。实操心得我们在路测中无数次验证大多数接管干预并非发生在感知清晰标注了所有物体的场景而是发生在那些“应该有但没看到”的瞬间。例如在狭窄的街道路旁停满车辆感知系统一切正常。但突然从两辆车之间窜出一个小孩。事故复盘时人类驾驶员会说“我应该预见到那里可能有小孩”但AI系统在事发前没有任何预警。问题的核心在于系统缺乏对“遮挡区域蕴含风险”进行量化评估的能力。2.2 VLMs带来的破局思路常识作为推理的“燃料”视觉-语言模型的崛起为解决上述问题提供了一把新钥匙。像GPT-4V、LLaVA等模型展示了令人惊叹的跨模态理解与推理能力。它们不仅能看到图像中的物体还能理解物体之间的关系并根据常识回答关于场景的复杂问题。“What‘s Hidden Matters”项目的核心洞见在于将遮挡区域识别问题重新定义为基于视觉上下文和语言常识的问答VQA或生成问题。具体来说其思路可以拆解为以下几步从“检测”到“查询”不再让模型直接输出边界框而是向模型提出针对性的问题。例如给定一张包含严重遮挡如大型卡车遮挡右侧路口的驾驶场景图像我们可以询问VLM“在这辆卡车的后面可能有哪些类型的交通参与者如行人、自行车、汽车正准备进入主路请按可能性排序。”利用场景先验VLM在训练时吞食了海量的互联网图文数据其中包含了丰富的世界知识常识。它知道“校车附近可能有小孩”、“施工区域前方可能有工人”、“下雨天路口行人可能打伞视线不佳”。这些常识可以作为先验知识注入到对遮挡区域的推理中。生成概率化描述模型的输出不再是0/1的检测结果而是一系列带有可能性描述的文本例如“很可能70%有一辆等待左转的汽车较小可能20%有行人可能性很低10%有自行车”。这种概率化的、语义丰富的输出为下游规划模块提供了远比“有/无”二值信号更丰富的信息。方案选型考量为什么选择VLM而不是传统的概率感知模型传统方法如贝叶斯滤波也能输出概率但其不确定性主要来源于传感器噪声和模型置信度而非基于语义的推理。VLM的优势在于其“知识库”是开放域的、可泛化的。一个从未在训练数据中见过的特殊障碍物比如一个推着冰柜过马路的人VLM可能无法说出准确名称但能推断出“有一个大型的、移动缓慢的障碍物”这已经足够为规划提供关键风险提示。2.3 关键桥梁Planning KL-divergence (PKL) 作为评估标尺引入了VLM进行推理后下一个关键问题是如何评估这种推理的价值或者说如何判断模型预测的“可能存在的障碍物”是否真的“关键”这里就引出了项目中一个核心的技术概念——规划KL散度。它的思想非常巧妙我们通过对比两种不同规划策略的差异来量化被忽略信息的重要性。基准策略盲目策略假设自动驾驶车完全信任当前感知结果即认为遮挡区域为空并基于此进行轨迹规划。理想策略全知策略假设我们拥有“上帝视角”知道遮挡区域后真实的、完整的场景信息包括所有被遮挡的物体并基于此进行轨迹规划。计算差异PKL通过计算这两种策略下产生的规划轨迹分布之间的KL散度来度量其差异。如果差异很大说明被遮挡的信息对规划产生了根本性影响即被遮挡的物体是“规划关键”的如果差异很小则说明即使有物体被遮挡也不影响当前的决策该物体可能不那么关键比如远处一个静止的广告牌。为什么PKL至关重要它为整个系统提供了可量化的优化目标。我们训练模型的目标不再是简单地提高对遮挡物体的检测精度这在训练阶段无法直接获得真值而是最小化其预测所引导的规划与“全知规划”之间的KL散度。这使得学习过程直接与最终的驾驶安全与舒适性指标对齐。注意PKL的计算依赖于一个前提即我们需要一个可微分的、或至少能进行策略采样的规划器。在实际工程中这可能采用简化的运动规划模型或基于采样的方法进行近似以确保整个 pipeline 可以进行端到端的优化或评估。3. 系统架构与核心模块实现解析3.1 整体数据处理与特征工程 Pipeline要实现上述思路需要一个精心设计的数据处理流程。项目通常基于nuScenes这类包含丰富标注和传感器数据的数据集进行。第一步关键帧与遮挡场景提取并非所有帧都适合用于训练。我们需要自动筛选出那些包含“规划关键遮挡”的场景。一个实用的方法是利用数据集提供的3D标注框和传感器数据模拟生成遮挡。例如将某个真实存在的目标标注框从当前帧的感知输入如图像、点云中“抹去”模拟其被完全遮挡的效果。针对原始帧有目标和模拟遮挡帧无目标分别用同一个规划器进行轨迹预测。计算这两组轨迹之间的PKL。设定一个阈值筛选出PKL值高的场景——这些就是“规划关键遮挡”的正样本。PKL值低的场景作为负样本或困难样本。第二步多模态特征提取与融合对于筛选出的关键帧我们需要构建模型的输入视觉特征使用一个预训练的视觉主干网络如ResNet、ViT提取场景图像的深度特征。重点在于特征图需要保留空间信息以便后续能与语言查询进行空间对齐。语言查询构造这是发挥VLM能力的关键。我们不能简单地问“有什么”而要设计结构化、引导性的问题模板。例如“在[区域描述如‘前方卡车车尾后方’]的区域最可能出现的对车辆行驶有影响的物体是什么”“考虑到当前场景是[场景描述如‘学校区域下午三点’]在[遮挡区域]内存在行人的可能性有多高”这些问题模板可以参数化[区域描述]部分可以通过图像坐标或语义分割图来自动生成。特征对齐与融合将语言查询通过文本编码器如BERT、CLIP的文本编码器转换为文本特征向量。然后需要一种机制将文本特征与视觉特征进行融合。常见的方法包括Cross-Attention让文本特征作为Query去关注视觉特征的Key和Value使模型能够根据问题“凝视”图像的相关区域。特征拼接后接MLP将视觉特征和文本特征在某个维度拼接然后通过多层感知机进行融合。这种方法相对简单但融合能力可能较弱。第三步概率化语义输出头模型最终需要输出对遮挡区域内容的概率化描述。这可以设计为一个多任务学习头存在性分类输出一个二分类概率表示遮挡区域是否存在任何规划关键物体。类别分布预测输出一个在多类别行人、自行车、小汽车、摩托车等上的概率分布。属性预测可选对于存在的物体预测其可能的状态如静止、移动、移动方向等同样以概率形式输出。这个输出头的训练需要依赖我们通过PKL筛选出的“关键性”标签以及模拟遮挡前的真实标注作为监督信号在模拟设定下我们知道被“抹去”的目标是什么。3.2 视觉-语言推理模块的核心实现细节这里我们深入一下VLM模块的具体实现选择。目前有两种主流路径路径一基于大型通用VLM如GPT-4V的零样本/少样本推理做法直接将构造好的场景图像和语言查询输入到如GPT-4V的API。通过设计精妙的提示词Prompt引导模型给出结构化的概率输出。优点无需训练直接利用大模型强大的通识推理能力泛化性可能极好。缺点成本与延迟API调用成本高且网络延迟不稳定难以满足车载系统实时性要求通常需100ms。可控性与确定性输出是自然语言需要额外的后处理解析成结构化数据过程不可控可能存在幻觉。无法端到端优化无法与PKL损失进行联合优化整个系统是割裂的。路径二训练专有的、轻量化的车载VLM做法采用一个较小的视觉编码器如EfficientNet和文本编码器如小型BERT在自动驾驶领域数据nuScenes的图文描述子集、人工标注的VQA数据上进行微调。模型架构上采用Cross-Attention进行深度融合。优点实时高效模型可部署在车端计算平台。输出可控可以直接设计为输出结构化的概率分布便于下游规划模块使用。可端到端训练可以与PKL计算模块连接虽然规划器可能不可微但可以通过强化学习或代理损失函数的方式让VLM的输出直接向“降低规划风险”的目标优化。缺点需要大量的领域数据进行训练且模型的通识推理能力可能弱于超大模型。实操心得在现阶段的研究和原型系统中路径二更具工程落地潜力。我们可以先用路径一大模型API来生成大量的、高质量的“伪标签”数据即让GPT-4V对大量遮挡场景进行推理标注然后用这些数据来训练我们轻量化的专有模型。这相当于用大模型的知识来蒸馏Distill小模型是兼顾性能与效率的实用策略。3.3 与下游规划模块的接口设计VLM模块的输出如何有效地传递给规划控制模块是决定其价值能否兑现的最后一步。这里不能简单地把概率输出扔过去需要设计一个清晰的接口。生成“虚拟障碍物”或“风险场”这是最直观的集成方式。根据VLM输出的类别和概率在遮挡区域的几何中心或按一定分布生成一个或多个带有置信度属性的“虚拟障碍物”。规划器如基于优化的轨迹规划器会像对待真实感知障碍物一样对这些虚拟障碍物施加排斥力成本项但排斥力的权重与其置信度相关。高置信度的“可能行人”会产生很强的排斥力促使车辆提前减速或绕行。调整规划器的风险敏感参数另一种更柔和的集成方式。规划器本身有一些风险容忍度参数。VLM的输出可以作为一个调节信号动态调整这些参数。例如当VLM判断遮挡区域存在高风险物体的概率很高时就调低规划器的最大允许加速度、调高与前车的安全距离阈值等。这种方式不改变规划问题的结构而是改变了其约束条件。作为预测模块的输入将VLM输出的语义概率作为目标预测模块的一个额外输入。预测模块可以据此生成一些“假设性”的预测轨迹。例如如果VLM认为“可能有行人”预测模块就可以生成几条行人突然窜出的假设轨迹供规划器进行多模态决策。重要提示无论采用哪种接口都必须进行大量的仿真测试和闭环评估。需要验证这种“基于猜测的谨慎”不会导致车辆过于保守从而严重影响通行效率例如在每个路口都因为“可能有人”而龟速行驶。需要在安全性和流畅性之间找到平衡点。4. 实验验证、评估与避坑指南4.1 评估指标超越mAP的新标准在传统的感知任务中平均精度mAP是黄金标准。但在“识别规划关键遮挡物”的任务中mAP不再适用因为我们缺乏遮挡区域的真实标注在真实数据中我们不知道那里到底有没有东西。因此项目需要建立一套全新的评估体系规划一致性指标这是核心指标。在测试集上对比以下两种策略的规划性能A策略使用真实感知包含被遮挡物体进行规划。B策略使用模拟遮挡后的感知但辅以我们VLM模块的预测结果进行规划。C策略基线使用模拟遮挡后的感知且无视遮挡风险进行规划。 计算A与B之间规划轨迹的差异如位置误差、加速度变化等这个差异应尽可能小同时B策略应显著优于C策略如碰撞率更低、舒适度更高。PKL可以作为这个差异的理论度量在实际评估中的代理。关键场景召回率定义一个“关键场景”集合例如所有最终发生碰撞或紧急接管的遮挡场景。计算我们的系统在这些关键场景中成功发出高风险预警即输出高置信度的关键物体预测的比例。这个指标直接衡量系统的安全价值。虚警率与效率影响在“非关键”的遮挡场景如遮挡物只是一个垃圾桶中系统错误发出高风险预警的比例。同时统计因为系统预警而导致车辆进行不必要的减速或变道的频率和幅度量化其对通行效率的影响。实操心得在内部测试中我们发现最大的挑战在于平衡召回率和虚警率。初期模型倾向于“宁可错杀不可放过”导致虚警率很高车辆行驶起来像“惊弓之鸟”。通过调整模型输出的概率阈值、在损失函数中增加对“过度谨慎”的惩罚项以及引入更丰富的负样本明确无风险的遮挡场景进行训练可以逐步改善这一问题。4.2 基于nuScenes数据集的实操复现步骤如果你想在自己的环境中复现或验证类似想法以下是一个基于nuScenes数据集的简化步骤数据准备与场景筛选# 伪代码筛选高PKL场景 from nuscenes import NuScenes import numpy as np # 初始化NuScenes对象 nusc NuScenes(versionv1.0-mini, dataroot/path/to/data, verboseTrue) # 遍历样本模拟遮挡 high_pkl_samples [] for sample in nusc.sample: # 获取当前样本的激光雷达点云和标注 points, boxes get_lidar_and_boxes(sample) # 随机选择一个标注框作为“被遮挡目标” occluded_box select_random_box(boxes) # 模拟遮挡从点云中移除该框内的点 masked_points remove_points_in_box(points, occluded_box) # 简化规划器模拟计算原始和遮挡后的“安全通过速度” original_speed simple_planner(points, boxes) masked_speed simple_planner(masked_points, boxes_without_occluded) # 计算简化的“PKL”这里用速度差绝对值模拟 pkl abs(original_speed - masked_speed) if pkl threshold: high_pkl_samples.append({ sample_token: sample[token], occluded_box: occluded_box, pkl: pkl })构建VLM训练数据对于每个高PKL样本渲染对应的相机图像。根据被遮挡框的位置用图像处理技术如填充平均像素在图像中模拟遮挡区域。编写语言查询模板并将被遮挡物体的真实类别作为答案在模拟设定下我们知道答案。例如对于被遮挡的行人查询是“在[图像中遮挡区域坐标]这个被遮挡的区域最可能存在的交通参与者是什么”答案是“行人”。模型训练选择一个轻量化的视觉编码器如MobileNetV3和文本编码器如DistilBERT。使用Cross-Attention层进行特征融合。输出头设计为多类别分类器。使用标准交叉熵损失进行训练。集成与测试将训练好的模型接入一个简单的规划仿真环境如使用Python的车辆动力学模型。在筛选出的测试场景中运行对比使用和不使用VLM预测建议的规划结果统计碰撞率、急刹车次数等指标。4.3 常见问题与排查技巧实录在实现和调试此类系统时以下几个坑几乎一定会遇到问题一VLM输出不稳定时而合理时而“胡言乱语”。排查首先检查输入图像和查询的构造是否一致。遮挡区域的描述是否准确查询语句是否清晰无歧义如果是自研小模型检查训练数据中是否包含了足够多样化的查询-答案对。解决对查询模板进行标准化和简化。增加数据增强特别是对查询语句的同义改写。在模型输出端加入后处理规则例如只输出置信度高于某个阈值的类别或对连续几帧的预测结果进行平滑滤波。问题二系统过于保守严重影响了通行效率。排查分析虚警场景。是不是对某些特定类型的遮挡如树木、建筑阴影过度反应VLM输出的概率是否普遍偏高解决场景细分训练一个二分类器先判断当前遮挡场景是否属于“高风险类别”如路口、人行道旁、学校区域。只有在高风险类别中才启用高灵敏度的VLM推理在低风险类别如高速公路中间隔离带则降低灵敏度或直接忽略。成本函数调节在规划器中为“基于VLM预测的虚拟障碍物”设计一个动态的成本权重。该权重不仅与VLM的置信度相关还与当前车速、道路类型相关联。在高速场景下即使置信度较高也可能适当降低权重以避免剧烈制动。问题三模型在仿真中表现良好但路测效果不佳。排查仿真与实车环境的差异。仿真中的遮挡是“完美”的数字化抹除而实车中遮挡是物理光学现象可能留有部分特征如影子、车轮。此外实车传感器噪声、光照变化都是仿真难以完全复现的。解决数据域适配在模拟数据训练的基础上必须加入大量实车采集的遮挡场景数据无需精确标注可通过人工或大模型进行粗标注进行微调。多传感器融合不要只依赖摄像头VLM。可以结合毫米波雷达的特性。雷达可能无法识别被遮挡的物体但如果遮挡物如前车在移动雷达对前车的测速测距信息结合VLM对前车类型是公交车还是小轿车的判断可以更好地推理其后方风险。例如紧跟在一辆缓慢行驶的公交车后面其右侧窜出行人的风险就远高于跟在一辆正常行驶的小轿车后面。问题四计算延迟无法满足实时性要求。排查对推理pipeline进行逐阶段耗时分析。是视觉特征提取慢还是Cross-Attention计算量大或是文本编码耗时解决模型轻量化使用知识蒸馏用大VLM如GPT-4V的输出作为标签训练一个更小的学生网络。异步处理与缓存VLM推理不需要像传统感知那样严格每帧执行。可以以较低频率如5Hz运行并将其输出结果作为“场景风险先验”缓存起来供高频如50Hz的规划器查询使用。当场景没有剧烈变化时风险先验可以持续生效数秒。硬件加速利用车端AI芯片如NVIDIA Orin地平线征程系列的特定算子对Transformer或Attention层进行加速。这个方向的探索其意义远不止于提升一个模块的精度。它代表着自动驾驶系统开始从“反应式”的感知-规划向“预见式”的场景理解与推理演进。我们不再满足于看到世界更致力于理解世界那些“隐藏的规则”。这其中的挑战巨大从模型的可靠性、系统的实时性到评估的复杂性每一步都是坑。但每解决一个问题我们就离那个能像人类老司机一样“眼观六路、耳听八方”甚至能“预判风险”的自动驾驶系统更近一步。我的体会是这项工作的核心魅力在于它迫使我们去思考驾驶智能的本质而不仅仅是堆砌算力和数据。它是一条充满荆棘但方向正确的路。