3. 失败案例来源与采集

感知失败案例聚类与根因分析的质量,首先取决于案例来源是否完整、采集是否规范。单一来源的失败样本往往带有明显偏差:路测覆盖真实但长尾稀疏,仿真覆盖密集但存在“仿真到现实”的差距,影子模式能捕获量产车真实分布却缺少人工标注,数据回灌则擅长复现和放大特定场景。工程上必须把四类来源统一到同一条采集与入库流水线上,才能形成可聚类、可追溯、可复盘的案例库。

一、四类来源的定位与互补关系

路测是案例库的“真实基准”。测试车搭载激光雷达、相机、毫米波雷达与高精定位,在开放道路中记录原始传感器数据、感知输出、车辆状态与人工接管事件。它的价值在于真实光照、天气、交通参与者行为,但单位里程的失败密度低,稀有场景难以稳定复现。

仿真提供“可控放大”。在场景库中回放真实片段,或通过参数扰动生成变体,可以批量制造遮挡、逆光、雨雾、异形车辆等条件,快速验证感知边界。仿真案例必须记录场景配置、渲染参数与随机种子,否则无法复现。

影子模式是“量产真实分布”。算法在量产车上旁路运行,不参与控制,只把感知结果与人工驾驶行为、其他传感器一致性进行比对。当出现急刹、接管、感知置信度骤降等触发条件时,自动上传片段。它覆盖真实用户路线,但数据需脱敏、抽样和筛选。

数据回灌是“定向复现与回归”。把已入库的失败片段重新注入感知栈,在离线环境中反复运行,用于确认修复效果、观察版本差异。回灌案例通常与缺陷单、代码版本、模型版本绑定。

核心原则:四类来源不是并列的四个文件夹,而是同一条流水线上的四个入口。每个入口都必须输出统一格式的“案例包”,包含原始数据引用、时间戳、传感器标定、感知输出、触发原因、场景标签和采集环境元数据。

二、采集与入库流程

从触发到入库,建议采用“触发—切片—脱敏—标注—质检—入库—索引”的七步流程。每一步都应有明确的准入条件,避免脏数据污染案例库。

  1. 触发:路测由安全员接管、急刹、感知置信度低于阈值触发;仿真由断言失败触发;影子模式由行为不一致或置信度异常触发;回灌由缺陷单指定片段触发。
  2. 切片:以触发时刻为中心,向前后各截取若干秒,保留足够上下文。切片需包含触发前至少 3 秒的感知历史,便于分析时序演化。
  3. 脱敏:对人脸、车牌、地理位置进行模糊或替换,保留场景语义但去除个人可识别信息。
  4. 标注:标注失败类型(漏检、误检、分类错误、定位漂移、时序抖动等)、目标类别、距离、遮挡程度、光照天气。
  5. 质检:检查数据完整性、时间同步、标定文件、标注一致性,剔除无效片段。
  6. 入库:写入案例库,生成唯一案例 ID,关联原始数据路径、版本信息与缺陷单。
  7. 索引:建立场景标签、失败类型、传感器模态、时间、里程等多维索引,供聚类与检索使用。

三、案例包字段清单

统一字段是后续聚类和根因分析的前提。下表给出建议的最小字段集,实际工程中可按需扩展。

字段说明示例
case_id案例唯一标识RD-2024-07-15-000123
source来源类型road / sim / shadow / replay
trigger触发原因takeover / low_conf / assertion
timestamp触发时刻1721030400.123
duration切片时长8.0s
sensors传感器模态camera, lidar, radar
calib_id标定版本calib_2024_06_30
perception_ver感知版本perception_v3.2.1
failure_type失败类型false_negative
scene_tags场景标签night, rain, occlusion
object目标信息pedestrian, 12m, 60% occluded
defect_id关联缺陷单BUG-4521

四、采集流水线示意

下图展示四类来源如何汇入统一案例库,并经过触发、切片、脱敏、标注、质检、入库、索引形成可检索案例。图中同时标出各环节的关键产物与常见失败点。

失败案例来源与采集入库流程 路测 真实道路 · 接管/急刹触发 仿真 场景回放 · 断言失败触发 影子模式 量产车 · 行为不一致触发 数据回灌 缺陷单 · 定向复现触发 触发与切片 前后各截取 3~5s 保留感知历史 脱敏 人脸/车牌模糊 地理坐标替换 标注 失败类型/目标 遮挡/光照/天气 质检 完整性/同步 标注一致性 入库 唯一 case_id 关联缺陷单 索引 场景/失败类型 模态/时间/里程 统一案例库 可聚类 · 可检索 · 可追溯 · 可回灌 常见失败点 时间不同步 · 标定缺失 触发阈值过松 · 标注漂移

五、典型场景与误区复盘

场景一:影子模式触发过松。某项目把“感知置信度低于 0.5”作为唯一触发条件,结果每天上传数万片段,其中大量是正常遮挡或远距离小目标,案例库被噪声淹没。复盘后改为“置信度骤降 + 行为不一致 + 时间窗聚合”的组合触发,上传量下降 90%,有效案例占比显著提升。

场景二:仿真案例无法复现。仿真中出现的漏检在回灌时消失,原因是场景配置未记录随机种子和渲染参数。修复后要求每个仿真案例必须携带场景文件、种子、传感器配置和版本号,回灌成功率从 60% 提升到 95% 以上。

场景三:路测切片过短。只截取触发前后各 1 秒,导致无法判断目标是何时进入视野、感知何时开始退化。改为前后各 5 秒并保留感知时序输出后,根因定位时间明显缩短。

常见误区:把“采集”等同于“存数据”。没有统一字段、没有质检、没有索引的数据只是磁盘占用,无法支撑聚类和根因分析。采集流程的终点不是文件落盘,而是案例可被检索、可被复现、可被关联到缺陷单。

工程建议:为四类来源定义统一的案例包 schema,并在流水线入口做强制校验;对触发阈值进行周期性统计,避免过松或过严;对入库案例定期抽样人工复核,监控标注漂移和场景分布变化。

只有把路测、仿真、影子模式和数据回灌统一到同一条采集与入库流水线上,才能保证案例库既覆盖真实长尾,又具备可控复现能力,为后续的聚类、根因分析和修复验证提供可靠输入。