4. 场景来源与采集

场景库不是“把数据堆在一起”,而是把不同来源的原始素材,经过抽取、标注、参数化、分类和版本管理,转化为可被测试用例、仿真引擎和评价体系直接调用的结构化资产。理解场景来源的差异,是构建高覆盖度场景库的第一步。本节围绕四类核心来源——真实路采、仿真生成、事故数据、自然驾驶数据——说明它们各自的价值、采集方式与融合流程。

一、四类场景来源的定位与差异

真实路采强调“路上真实发生过”,适合发现长尾与未知风险;自然驾驶数据强调“常态驾驶行为分布”,适合建立基线;事故数据强调“极端后果事件”,适合安全边界与法规验证;仿真生成强调“可控、可扩展、可复现”,适合参数扫描与危险组合补全。四者不是替代关系,而是互补关系。

来源 核心价值 典型采集方式 主要局限
真实路采 发现长尾场景、验证感知真实分布 测试车+多传感器+路侧设备 成本高、覆盖率低、复现难
自然驾驶数据 建立正常驾驶行为基线 大规模车队长期采集 极端事件稀少、标注量大
事故数据 覆盖高后果、法规强制场景 事故深度调查、EDR、视频重建 样本少、隐私与责任敏感
仿真生成 参数可控、危险组合可批量生成 场景描述语言+仿真引擎 模型偏差、真实性需校准

二、真实路采:从传感器到片段

真实路采通常由测试车搭载摄像头、激光雷达、毫米波雷达、GNSS/IMU 等传感器,按固定路线或随机路线采集。采集后先做时间同步与标定检查,再切分为“场景片段”。一个片段通常包含触发前若干秒到触发后若干秒,例如切入、急刹、施工改道等。

# 路采片段切分伪代码
for frame in synchronized_stream:
    if trigger.detect(frame):          # 触发条件:切入/急刹/锥桶等
        clip = extract(frame, pre=5s, post=3s)
        clip.meta = {
            "source": "real_road",
            "weather": frame.weather,
            "road_type": frame.map.road_type,
            "trigger": trigger.type
        }
        scene_pool.append(clip)

真实路采的关键不是“采得多”,而是“采得准”。需要明确触发条件、采样频率、传感器标定有效期和隐私脱敏规则。否则后期会出现片段无法对齐、目标 ID 跳变、地图匹配失败等问题。

三、自然驾驶数据与事故数据:基线与边界

自然驾驶数据(NDS)通过大规模车队长期运行,记录驾驶员在真实交通中的行为。它的价值在于统计正常跟车距离、换道间隙、反应时间等参数分布,为场景参数化提供“合理区间”。例如,跟车时距的 5% 分位、50% 分位和 95% 分位,可以直接作为仿真参数扫描的输入。

事故数据则来自事故深度调查、EDR 记录、监控视频和现场重建。它往往对应法规测试中的高风险场景,如“前车突然消失”“行人横穿”“二轮车闯红灯”。事故数据样本少,但每一条都极具价值,通常需要人工重建为参数化场景,并标注事故形态、碰撞位置和速度。

自然驾驶数据回答“通常怎样”,事故数据回答“最坏怎样”,两者结合才能同时覆盖基线与边界。

四、仿真生成:参数化与批量扩展

仿真生成不是凭空编造,而是基于真实片段和事故重建提取参数,再用场景描述语言批量生成变体。常见参数包括:主车速度、目标车速度、相对距离、切入角度、路面附着系数、光照和天气。通过拉丁超立方或网格采样,可以生成数千个可复现的测试用例。

{
  "scenario": "cut_in",
  "ego": { "speed_kph": 60 },
  "target": { "speed_kph": 45, "gap_m": 12, "angle_deg": 8 },
  "environment": { "weather": "rain", "friction": 0.6 },
  "variants": 200
}

仿真生成的优势是可复现、可扩展,但必须用真实数据校准。若仿真中的感知噪声、控制延迟和交通流分布与实车差异过大,生成的场景库就会“看起来很多,实际无效”。

五、场景库构建流程

四类来源最终要汇入统一的场景库。典型流程为:采集与接入 → 清洗与同步 → 片段切分 → 标注与参数化 → 分类与标签 → 去重与覆盖分析 → 版本发布 → 测试调用与反馈。每一步都要有质量门禁,例如标注一致性、参数完整率、重复率上限。

场景来源 → 场景库构建流程 真实路采 测试车 / 路侧感知 自然驾驶数据 大规模车队 / 行为基线 事故数据 深度调查 / EDR / 重建 仿真生成 参数化 / 批量变体 清洗与同步 时间对齐 / 标定检查 片段切分 触发前/后窗口 标注与参数化 目标 / 轨迹 / 参数 分类标签 ODD / 风险等级 去重与覆盖分析 重复率 / 场景缺口 版本发布 场景库 v1.0 / v1.1 测试调用 仿真 / 实车 / 回灌 测试反馈:新增触发条件 / 补充采集 / 修正参数

流程中的“去重与覆盖分析”常被忽视。若同一路口、同一时段采集了大量相似片段,场景库会虚高。建议用特征向量(道路类型、天气、目标类型、交互类型、速度区间)做聚类,统计每个簇的样本数,识别稀疏区域,再决定补采或仿真扩展。

六、常见误区与复盘

  • 只重数量不重标签:没有统一标签体系的场景库,无法按 ODD、风险等级和功能模块检索,测试时只能人工翻找。
  • 仿真与实车脱节:仿真参数未用自然驾驶数据校准,导致“仿真通过、实车失败”。
  • 事故数据未参数化:只保存视频或报告,无法批量生成变体,难以支撑回归测试。
  • 缺少版本管理:场景库更新后未记录变更,导致测试结果无法追溯。
场景库构建的核心不是“采集”,而是“可检索、可复现、可扩展、可追溯”。四类来源必须统一到同一套标签、参数和版本体系下,否则来源越多,维护成本越高。

综上,真实路采提供真实分布,自然驾驶数据提供行为基线,事故数据提供安全边界,仿真生成提供批量扩展。四者通过清洗、切分、标注、参数化、分类、去重和版本发布,最终形成可被测试体系直接调用的场景库。只有把来源差异转化为结构化能力,场景覆盖与里程验证才有可靠基础。