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
}
仿真生成的优势是可复现、可扩展,但必须用真实数据校准。若仿真中的感知噪声、控制延迟和交通流分布与实车差异过大,生成的场景库就会“看起来很多,实际无效”。
五、场景库构建流程
四类来源最终要汇入统一的场景库。典型流程为:采集与接入 → 清洗与同步 → 片段切分 → 标注与参数化 → 分类与标签 → 去重与覆盖分析 → 版本发布 → 测试调用与反馈。每一步都要有质量门禁,例如标注一致性、参数完整率、重复率上限。
流程中的“去重与覆盖分析”常被忽视。若同一路口、同一时段采集了大量相似片段,场景库会虚高。建议用特征向量(道路类型、天气、目标类型、交互类型、速度区间)做聚类,统计每个簇的样本数,识别稀疏区域,再决定补采或仿真扩展。
六、常见误区与复盘
- 只重数量不重标签:没有统一标签体系的场景库,无法按 ODD、风险等级和功能模块检索,测试时只能人工翻找。
- 仿真与实车脱节:仿真参数未用自然驾驶数据校准,导致“仿真通过、实车失败”。
- 事故数据未参数化:只保存视频或报告,无法批量生成变体,难以支撑回归测试。
- 缺少版本管理:场景库更新后未记录变更,导致测试结果无法追溯。
综上,真实路采提供真实分布,自然驾驶数据提供行为基线,事故数据提供安全边界,仿真生成提供批量扩展。四者通过清洗、切分、标注、参数化、分类、去重和版本发布,最终形成可被测试体系直接调用的场景库。只有把来源差异转化为结构化能力,场景覆盖与里程验证才有可靠基础。