行业资讯

利用视觉语言模型推理自动驾驶盲区风险:从场景合理性到规划关键性判断

发布时间:2026/8/23 6:59:49
利用视觉语言模型推理自动驾驶盲区风险:从场景合理性到规划关键性判断 1. 项目缘起自动驾驶感知的“盲区”之痛在自动驾驶的研发一线待久了你一定会对一种场景印象深刻你的车规级传感器阵列——激光雷达、毫米波雷达、摄像头——数据流一切正常感知模块的检测框画得漂漂亮亮但就在一个看似平静的路口车辆突然做出了一个让你惊出一身冷汗的决策比如毫无征兆地减速或轻微转向。事后回看数据你可能会发现就在你的主车前方一辆公交车或大卡车暂时遮挡了你的视线而在那个被遮挡的“盲区”里一个行人或一辆自行车正准备横穿马路。你的系统“看”不到它但一个经验丰富的司机却能通过公交车车窗下沿晃动的影子、对向车辆微妙的避让姿态甚至是路口整体交通流的“节奏感”预判到那里“可能”有东西。这就是规划关键性被遮挡智能体问题。它不像常规的物体检测那样目标是在图像或点云里“找东西”它的核心是判断“那个我看不见的地方有没有什么东西会严重影响我接下来的行驶规划”。传统的感知方案在这里几乎束手无策被遮挡意味着没有直接的视觉或点云证据。而这篇题为《What‘s Hidden Matters: Identifying Planning-Critical Occluded Agents using Vision-Language Models》的工作提出了一种非常巧妙的思路利用视觉-语言模型来攻克这个难题。简单来说它不再试图去“检测”一个不存在的像素而是去“推理”一个场景的“合理性”——如果那个被遮挡的区域是空的整个场景看起来合理吗如果不合理那么那里很可能存在一个对规划至关重要的交通参与者。我第一次接触到这个想法时感觉它跳出了“感知-预测-规划”的经典流水线思维更像是在模拟人类驾驶员那种基于常识和场景理解的“第六感”。它不追求百分百的检出率而是旨在为规划模块提供一个至关重要的风险概率信号告诉规划器“前方左侧被卡车遮挡的区域有高概率存在规划关键物体请谨慎通过。” 这个信号的价值远超一个漏检的检测框。2. 核心思路拆解从“检测存在”到“推理缺失”这项工作的核心创新点在于将“识别被遮挡的关键智能体”这个感知问题转化为了一个“视觉-语言推理”问题。它没有去设计更复杂的神经网络结构来穿透遮挡而是利用了大规模预训练的视觉-语言模型所蕴含的、关于物理世界和交通场景的“常识”。2.1 传统方法的瓶颈与VLMs的潜力在深入其方法之前我们先看看为什么传统方法不行。主流的多模态融合感知无论是前融合、特征级融合还是决策级融合其基础都是传感器能接收到目标的部分信号。对于完全被遮挡的物体激光雷达点云是空的摄像头像素是背景毫米波雷达可能因分辨率不足或干扰而失效。一些研究尝试用历史轨迹预测或场景补全来猜测但这需要很强的时序关联性和准确的动态模型在复杂、陌生的路口往往不准。而视觉-语言模型如CLIP、BLIP等通过在亿级“图像-文本”对上进行训练学会了将图像内容与丰富的语言描述关联起来。它们学到的不仅仅是“这是一辆车”还包括“车通常在路上跑”、“行人走在人行道上”、“自行车可能从车后窜出来”这种深层的语义和关系知识。这就提供了一个新的可能性我们能否用语言去“询问”模型一个关于场景的假设性问题2.2 Planning KL-divergence用“语言扰动”量化风险论文的核心技术是一种称为Planning KL-divergence的度量方法。这个名字听起来有点学术但背后的思想非常直观。我们可以把它理解为一个“场景合理性诊断”工具。它的工作流程是这样的构建基础场景描述对于一个给定的自动驾驶车辆视角的场景图像或环视图像拼接我们用自然语言客观地描述它。例如“一张城市街道的图像。前景有一辆白色轿车正在直行。右侧有一辆公交车停靠在车站部分遮挡了道路。左侧是空旷的车道。”构建“无风险”假设描述这是关键一步。我们基于基础描述显式地添加一个“安全假设”。例如在上面的描述后加上“被公交车遮挡的区域后面没有行人、自行车或其他车辆。”构建“有风险”假设描述同样基于基础描述我们显式地添加一个“风险假设”。例如“被公交车遮挡的区域后面可能有一个行人正准备横穿马路。”利用VLM进行合理性评分将原始场景图像分别与“无风险假设描述”和“有风险假设描述”输入到视觉-语言模型如CLIP中。VLM会计算图像与每一段文本描述的匹配程度通常是一个相似度分数。一个训练良好的VLM会对符合物理常识和场景逻辑的“图像-文本”对给出高分。计算PKL散度如果场景图像与被遮挡区域“安全”的描述高度匹配而与“风险”描述不匹配那么PKL值会很低意味着VLM认为“那里是空的”这个假设很合理。反之如果图像与“风险”描述的匹配度相对更高PKL值就会升高这暗示着“那里是空的”这个假设与VLM所学的世界知识相悖即那个被遮挡区域存在关键物体的可能性很高。这个过程本质上是在利用VLM作为“常识裁判”去判断我们人为提出的两个关于隐藏区域的、互斥的假设哪一个更符合整个场景的上下文。PKL值的大小就成了量化“被遮挡区域存在规划关键物体”这一风险的概率指标。2.3 为什么是“规划关键性”这里必须强调“规划关键性”这个定语。并不是所有被遮挡的物体都需要被识别。例如被遮挡的远处广告牌、静止的垃圾桶通常不会影响车辆的即时规划。规划关键性指的是那些如果存在会显著改变车辆当前最优行驶路径的物体比如突然出现的行人、横穿的车辆、道路施工锥桶等。在方法实现上这通常通过设计特定的“风险假设”语言模板来体现。例如模板会更聚焦于“正在移动的”、“可能进入本车道的”、“与当前路径有冲突的”物体描述而不是泛泛的“有物体”。这使得方法的输出与下游的规划模块需求直接对齐规划器可以简单地设定一个PKL阈值当PKL值超过阈值时触发防御性驾驶策略如减速、备刹、或轻微偏移以扩大感知视野。3. 实战在nuScenes数据集上复现与验证思路由于原论文未提供完整的代码仓库要验证这个想法我们可以基于公开的nuScenes数据集和开源的VLM如OpenCLIP设计一个复现路线。这不仅能加深理解还能发现工程落地中的真实挑战。3.1 数据准备与场景提取nuScenes数据集提供了丰富的城市场景传感器数据、标注和高质量的地图信息。我们的第一步是提取出存在严重遮挡且标注中有“规划关键”被遮挡物体的关键帧。关键帧筛选遍历nuScenes的样本数据。利用标注的3D包围框和自车位姿计算每个物体相对于自车传感器的可视性。nuScenes本身提供了visibility_token但我们需要更精细的判断。可以计算物体3D框投影到图像上的2D框面积若面积小于某个阈值如50像素或物体被其他标注物体如车辆、大型交通设施的3D框在视角上完全遮挡则视为“严重遮挡”。同时判断该被遮挡物体是否具有“规划关键性”。一个简单的启发式规则是检查该物体在后续若干帧如1秒内是否与自车的规划边界框通常是一个以自车为中心、向前延伸的矩形区域有交集。或者检查其历史轨迹是否显示它正在向车道内移动。筛选出同时满足“严重遮挡”和“规划关键”的物体样本并记录其所在的场景、帧、以及被遮挡的区域位置如“公交车后方”。图像与文本对构建对于每个筛选出的关键帧渲染出自车摄像头通常是前视或环视拼接的图像。人工或半自动生成文本描述这是工作量最大但最关键的一步。需要为每张图像编写base_desc客观场景描述。“一个十字路口自车正在中间车道行驶。左侧对向车道有来车。正前方有一辆大型厢式货车完全遮挡了右转车道的视野。交通灯为绿色。”safe_hypo_desc在base_desc后追加安全假设。“被厢式货车遮挡的右转车道区域后方没有等待过马路的行人或自行车。”risk_hypo_desc在base_desc后追加风险假设。“被厢式货车遮挡的右转车道区域后方可能有行人或自行车正准备进入车道。”为了提高效率可以基于nuScenes的标注和地图信息预生成一些描述模板然后进行人工校对和细化确保语言自然且准确指向被遮挡区域。3.2 模型选择与PKL计算流程VLM模型加载使用open_clip库加载预训练的CLIP模型如ViT-B/32或ViT-L/14。这些模型在LAION等超大规模数据集上训练具备了丰富的常识。import open_clip model, preprocess_train, preprocess_val open_clip.create_model_and_transforms(ViT-B-32, pretrainedlaion2b_s34b_b79k) tokenizer open_clip.get_tokenizer(ViT-B-32)特征提取与相似度计算将图像I用preprocess_val预处理并通过模型的视觉编码器得到图像特征向量v_I。将safe_hypo_desc和risk_hypo_desc分别用tokenizer处理并通过模型的文本编码器得到文本特征向量t_safe和t_risk。计算图像与两个文本的余弦相似度S_safe cos(v_I, t_safe),S_risk cos(v_I, t_risk)。由于CLIP输出的是未归一化的相似度我们需要将其转换为概率分布。一种简单的方法是使用softmaxP_safe exp(S_safe) / (exp(S_safe) exp(S_risk)),P_risk 1 - P_safe。这里P_safe可以理解为VLM认为“安全假设”成立的概率。计算PKL值PKL的定义是“风险假设”分布相对于“安全假设”分布的KL散度。在我们的二分类设定下可以简化为PKL P_risk * log(P_risk / P_safe) 这里假设风险分布为[P_risk, 1-P_risk]安全分布为[P_safe, 1-P_safe]。一个重要的工程细节当P_safe接近1时PKL会趋近于0低风险当P_safe和P_risk相近时PKL值会增大不确定性高风险可能高当P_risk显著大于P_safe时PKL会是一个较大的正值高风险。这个值可以直接作为风险分数输出。3.3 阈值确定与性能评估得到每个测试样本的PKL值后我们需要评估其作为风险指示器的效果。标签定义将之前筛选出的样本作为正样本存在规划关键性被遮挡物体标签为1。同时需要构建负样本从数据集中找出那些同样存在遮挡如被建筑物、静止车辆遮挡但遮挡物后方经标注确认没有任何交通参与者的场景标签为0。绘制ROC曲线以PKL值为决策分数绘制ROC曲线计算AUC面积。AUC越高说明PKL值区分“有风险遮挡”和“无风险遮挡”的能力越强。确定操作阈值根据规划模块对误报和漏报的容忍度在ROC曲线上选择一个操作点。例如如果希望尽可能避免漏报没识别出风险可以选择一个让召回率TPR较高的阈值但这可能会增加误报虚惊一场。这个阈值T将用于实际部署当PKL T时系统发出风险预警。实操心得在nuScenes上初步尝试时我们发现文本描述的质量对结果影响巨大。过于笼统的描述如“有物体”会导致PKL对任何遮挡都有反应失去关键性。描述必须具体、空间关系明确、且与驾驶决策相关。例如比起“有东西”使用“一个可能进入本车道的行人”效果更好。这提示我们未来可能需要一个专门的“驾驶场景描述生成器”来辅助这一过程。4. 优势、局限与工程化挑战这种方法为我们打开了一扇新的大门但其走向实际车端应用还有很长的路要走。4.1 核心优势无需直接感知信号这是最大的优势。它不依赖于被遮挡物体的任何像素或点云完美规避了传统感知的物理极限。利用常识与上下文VLM提供的是一种基于统计的“常识推理”能够捕捉到人类驾驶员赖以判断的隐性上下文线索如车辆类型、道路结构、交通流态势等。轻量级与可解释性相比训练一个复杂的多模态融合网络这种方法在推理时只需要调用一次VLM的图像和文本编码器计算相对轻量。并且其决策依据是“文本假设”这为为什么系统认为有风险提供了一种可解释的视角虽然VLM内部仍是黑盒。与规划模块自然接口输出是一个标量的风险概率PKL值规划器可以非常方便地将其作为一个额外的代价函数项或风险触发条件集成进去。4.2 当前局限与挑战文本描述的敏感性与生成难题如前所述方法性能严重依赖于文本假设描述的质量。人工编写不具可扩展性。如何自动化生成精准、多样、贴合驾驶语境的风险描述是一个巨大的自然语言生成挑战。描述中细微的用词差别“可能有一个行人” vs. “有一个行人”都可能导致PKL值的波动。VLM的领域偏差公开的VLM是在通用互联网数据上训练的其“常识”可能不适用于所有驾驶场景特别是罕见的长尾场景如特种车辆、动物、复杂的施工区域。模型可能会学到一些虚假关联。对静态场景与动态意图的区分能力有限当前方法主要基于单帧图像进行推理对于判断被遮挡物体的动态意图是静止还是即将移动能力较弱。这需要引入时序信息例如结合连续多帧的PKL值变化趋势来判断。量化部署与实时性大型VLM模型如ViT-L在车规级芯片上的推理延迟可能难以满足实时性要求100ms。需要对模型进行剪枝、量化或知识蒸馏以适配嵌入式平台同时要小心性能下降。4.3 可能的改进方向提示工程与模板库针对常见的驾驶场景路口、匝道、跟车、路边停车构建一个丰富的“风险假设”文本模板库。在实际应用中根据感知模块输出的场景元素物体类别、位置、道路结构自动填充模板生成描述。领域自适应微调使用大规模驾驶场景数据图像-描述对对预训练的VLM进行轻量级微调使其“常识”更偏向于交通领域。描述数据可以通过半自动方式利用现有感知标注和规则来生成。多帧时序融合不仅计算当前帧的PKL值还计算过去N帧的PKL序列。通过观察PKL值随时间的变化例如持续升高、突然跳变可以更好地推断被遮挡物体的动态行为过滤掉一些静态背景导致的误报。与概率占用网络结合PKL提供的是一种区域级的风险概率。可以将其作为先验信息输入到概率占用网络模型中引导网络在PKL高的区域预测出更高的占用概率从而实现“推理”与“感知”的互补。5. 对自动驾驶系统设计的启示这项研究带给我们的远不止一个具体的算法。它更是一种系统设计思维的转变。它告诉我们在自动驾驶的感知层除了追求更高的检测精度、更远的探测距离我们还需要一类“异常与风险感知”能力。这类能力不追求对可见物体的完美重建而是专注于发现那些“不符合常理”、“可能存在潜在威胁”的场景片段。PKL方法只是这个方向上的一个起点。在实际的系统架构中我们可以将这样一个VLM-based的风险感知模块作为一个独立的、轻量的“哨兵”系统与传统感知流水线并行运行。它的输出不直接提供物体的精确位姿和速度而是为整个系统提供一个全局的风险热图或风险标签。规划模块可以据此调整行为策略预测模块可以将其作为重要的上下文信息甚至感知模块本身也可以受到启发对高风险区域进行更积极的扫描或算法聚焦。从我个人的工程经验来看这类方法在落地初期更适合作为驾驶员监控系统或高阶辅助驾驶的安全冗余特性。例如在L2/L3级系统中当主感知链路由於遮挡等原因信心不足时PKL模块可以提供额外的风险确认触发更早、更平顺的接管提醒或降级策略从而大幅提升系统的安全感和流畅度。它让机器开始具备一点“防患于未然”的嗅觉而这正是实现真正鲁棒且拟人化自动驾驶的关键一步。