4. 问题复现工程方法论

在 Mobileye EyeQ 这类车规级视觉感知平台上,现场问题往往以“某次触发 AEB 误刹”“某段高速上车道保持突然退出”“某次雨天前视摄像头报遮挡”等形式出现。它们共同的特点是:发生时间短、现场数据分散、复现条件模糊。如果直接让算法工程师“照着描述去调”,通常只能得到“偶发、无法复现”的结论。问题复现工程要解决的,正是把这种模糊的现场描述,转化为一个可反复运行、可观测、可判定的场景。

一、从现场问题到可复现场景的转化流程

转化流程的核心不是“写一个脚本”,而是把现场证据逐层收敛为可执行条件。以一次典型的 EyeQ 前视感知误报为例,现场只留下一条事件记录:时间戳、车速约 72 km/h、雨刮开启、AEB 触发。要复现它,需要依次完成证据收集、条件抽象、场景构建和回灌验证四步。

证据收集阶段,优先取三类数据:EyeQ 输出的感知结果(目标列表、车道线、置信度)、车辆总线信号(车速、横摆角速度、方向盘转角、雨刮/灯光状态)、以及原始或压缩图像帧。EyeQ 平台通常通过日志与数据回传通道保留事件前后若干秒的感知帧和信号,这是复现的起点。若只有事件记录而没有图像,则复现等级会被限制在“信号级”,无法验证感知层。

条件抽象阶段,把现场描述翻译成可参数化的条件。例如“雨刮开启”对应环境状态位,“车速 72 km/h”对应纵向速度区间,“AEB 触发”对应功能输出事件。抽象时要区分三类条件:触发条件(必须出现才能进入场景)、边界条件(影响结果但不决定是否触发,如光照、雨量)、排除条件(用于剔除无关变量,如是否开启远光灯)。

场景构建阶段,把抽象条件落到具体的数据回灌或仿真环境中。EyeQ 数据闭环中常见两种载体:一是基于真实回传数据的离线回灌,把图像帧与总线信号按时间对齐后重新送入感知链路;二是基于场景描述的仿真注入,在虚拟环境中构造目标、车道线和天气参数。前者保真度高但依赖数据留存,后者可控性强但需要标定虚拟传感器与真实 EyeQ 的差异。

回灌验证阶段,观察复现结果是否与现场一致。一致不等于“也触发了 AEB”,而是关键中间量一致:同一目标在同一帧被赋予相近置信度、同一车道线在同一位置出现跳变、同一信号组合下状态机进入相同分支。只有中间量对齐,才能认为场景被真正复现,而不是碰巧得到相似输出。

现场问题 → 可复现场景的转化与复现等级判定 现场问题 事件记录 / 用户描述 时间戳·车速·功能输出 证据收集 感知帧·总线信号·图像 事件前后若干秒 条件抽象 触发 / 边界 / 排除条件 参数化与区间化 场景构建 回灌 / 仿真注入 时间对齐 回灌验证:中间量对齐 目标置信度 · 车道线跳变位置 · 状态机分支 复现等级(L0–L3) L0 描述级 仅有文字/事件记录 不可运行,仅归档 判定:无法回灌 L1 信号级 有总线信号,无图像 可验证状态机/功能逻辑 判定:信号分支一致 L2 感知级 图像+信号可回灌 可验证感知输出 判定:中间量对齐 L3 闭环级 可注入变量并回归 可批量重放与对比 判定:修复前后可区分 根因分析框架:感知 → 融合 → 决策 → 执行 感知层 目标/车道线置信度 融合层 时序关联与航迹 决策层 AEB/LKA 触发条件 执行层 制动/转向指令

二、复现等级定义

复现等级不是“做得好不好”的评价,而是对当前证据充分程度的客观标注。建议统一使用四级定义,便于团队沟通和任务分派。

L0 描述级:只有文字描述或事件记录,没有可回灌数据。此级别只能归档和做初步分类,不能声称“已复现”。L1 信号级:有总线信号但缺少图像,可验证状态机、功能逻辑和信号时序,无法验证感知输出。L2 感知级:图像与信号均可回灌,能验证目标、车道线等感知中间量,是 EyeQ 问题复现的主力级别。L3 闭环级:在 L2 基础上可注入变量、批量重放并对比修复前后结果,用于回归验证和根因确认。

等级判定要写进复现记录,例如“本次复现等级 L2,因缺少事件前 3 秒图像,感知层仅能验证后 2 秒”。这样后续任何人接手都能知道结论的边界在哪里。

三、根因分析框架

EyeQ 的问题根因通常落在四个层次:感知层、融合层、决策层、执行层。分析时按“从输出反推输入”的顺序逐层排除,而不是从代码第一行开始读。

感知层关注目标置信度、车道线拟合参数、检测框抖动。例如误刹场景中,若某帧出现一个置信度 0.62 的“车辆”目标,而真实场景中该位置是护栏,则根因可能在感知层的误检。融合层关注时序关联与航迹连续性,若同一目标在相邻帧被反复新建和删除,会导致决策层收到不稳定输入。决策层关注触发条件与阈值,例如 AEB 的 TTC 阈值、LKA 的车道线置信度门限。执行层关注指令是否发出、是否被下游正确接收。

一个实用的做法是:在回灌环境中把四层的关键中间量同时打印到同一时间轴,观察异常最早出现在哪一层。最早出现异常的那一层,就是根因候选层;其上游是输入,下游是放大或抑制。

四、验证标准

复现是否成立,需要可判定的标准,而不是“看起来像”。建议从三个维度验证。

第一,中间量一致性:复现场景中,异常层的关键中间量应与现场记录在数值和时序上对齐。例如现场记录显示第 128 帧目标置信度从 0.31 跳到 0.62,复现时应在相近帧号出现相近跳变,允许因数据压缩产生的小幅偏差,但趋势和量级必须一致。

第二,可重复性:同一场景连续回灌至少 3 次,异常现象应稳定出现。若三次中只出现一次,说明场景条件尚未收敛,需要补充边界条件或检查数据对齐。

第三,修复可区分性:在 L3 级别,修复前后回灌结果应可区分。修复后异常中间量应消失或降到阈值以下,同时不能引入新的异常。若修复前后结果无差异,说明根因判断错误或修复未生效。

建议为每个复现任务建立一份“复现记录卡”,至少包含:现场事件编号、复现等级、数据来源与时间范围、触发/边界/排除条件、异常层与关键中间量、回灌次数与结果、修复前后对比结论。这份记录卡是数据闭环中场景资产的最小单元。

把上述流程、等级、框架和标准固定下来后,现场问题就不再是一次性的“救火”,而会沉淀为可检索、可回归、可复用的场景资产。EyeQ 数据闭环的价值,也正体现在这些资产能够持续反哺感知与决策的迭代。