1. 课程导入

智能驾驶系统的安全性,不能仅靠“跑了很多公里”来证明。真正决定系统能否上路的,是它是否见过足够多样、足够危险、足够边缘的场景,并且在这些场景中做出了正确响应。本课程围绕场景覆盖与里程验证两条主线,建立一套可量化、可复现、可审计的工程方法体系。

一、学习目标

完成本课程后,学习者应能独立完成以下工作:

  • 理解场景、场景库、场景覆盖度、ODD(运行设计域)等核心概念及其工程含义;
  • 掌握从功能定义到场景抽取、参数化、泛化的完整场景构建流程;
  • 能够设计里程验证方案,区分真实里程、仿真里程与等效里程的统计意义;
  • 使用覆盖率、暴露率、危险场景命中率等指标评估验证充分性;
  • 识别“里程堆砌”“场景过拟合”“长尾遗漏”等常见验证误区。

二、核心概念与整体框架

智能驾驶验证的本质,是在有限资源下回答一个问题:系统在多大范围、多高概率的场景空间中已被证明安全?这需要三个层次的概念支撑。

第一层是ODD,即运行设计域,它定义了系统被允许工作的道路、天气、光照、交通、速度等边界条件。第二层是场景,即在ODD内对自车、他车、行人、静态设施及其交互关系的一次具体描述。第三层是场景覆盖,即已测试场景集合相对于目标场景空间的占比与分布质量。

里程验证则从统计角度补充场景验证:通过真实路测、仿真回放和影子模式积累里程,用暴露率与故障率估计系统风险。场景覆盖回答“测全了没有”,里程验证回答“测够了没有”,二者缺一不可。

核心公式:验证充分性 ≈ 场景覆盖度 × 里程置信度 × 场景危险度权重。任何一项偏低,整体验证结论都不可信。
场景覆盖与里程验证工程整体框架 ODD 定义 道路·天气·光照·交通 速度·区域·时间 场景空间构建 功能场景·逻辑场景 具体场景·参数泛化 验证执行 仿真·封闭场地·路测 影子模式·回放 场景覆盖度 覆盖率·分布均衡性 危险场景命中率 里程验证 真实里程·仿真里程 等效里程·暴露率 风险评估 故障率·置信区间 长尾风险·残余风险 验证结论:场景覆盖度 × 里程置信度 × 危险度权重 任一维度不足 → 验证不充分 → 需补充场景或里程 迭代闭环:发现缺口 → 补充场景 → 增加里程 → 重新评估

三、方法流程:从场景到里程的验证链路

工程实践中,验证链路通常按以下步骤推进:

  1. 功能与ODD定义:明确系统要解决哪些驾驶任务,在哪些条件下允许激活。
  2. 场景抽取:从事故数据库、自然驾驶数据、专家经验中提取功能场景与逻辑场景。
  3. 参数化与泛化:对车速、距离、角度、摩擦系数等参数进行组合采样,生成具体场景。
  4. 场景筛选与优先级排序:按危险度、暴露率、可测性排序,优先覆盖高风险场景。
  5. 仿真与实车执行:在仿真平台批量运行,在封闭场地和公开道路验证关键场景。
  6. 里程积累与统计:记录真实里程、仿真里程和等效里程,计算暴露率与故障率。
  7. 覆盖度评估与缺口分析:对比目标场景空间,识别未覆盖区域并迭代补充。
场景验证配置示例(YAML)
scenario:
  name: cut_in_highway
  odd: highway_day_dry
  parameters:
    ego_speed: [80, 100, 120]      # km/h
    cutin_gap: [10, 20, 30]        # m
    cutin_speed_diff: [-20, -10, 0]
  priority: high
  target_coverage: 0.95
mileage:
  real_km: 50000
  sim_km: 2000000
  equivalent_km: 350000
  exposure_rate: 0.012

四、案例与场景:一次高速切入验证

以“高速前车切入”为例。若只在晴天、干燥路面、车速100km/h、切入间距20m的条件下测试,即使跑十万公里,也不能证明系统在雨天、夜间、间距10m、相对速度-20km/h时安全。正确的做法是:先定义逻辑场景“相邻车道车辆切入自车前方”,再对天气、光照、路面、车速、间距、相对速度进行参数泛化,形成数百个具体场景,并按危险度排序执行。

里程验证则回答另一个问题:这些场景在真实世界中出现的频率有多高?如果切入场景的暴露率是1.2%,那么要积累足够多的切入样本,就需要相应规模的里程。仿真可以放大危险场景比例,但必须通过等效里程折算,避免高估验证效果。

五、常见误区与复盘

误区表现后果纠正方法
里程堆砌只追求总里程数字长尾场景仍未被覆盖按场景覆盖度分配里程
场景过拟合只测已知危险场景未知边缘场景漏测引入随机泛化与对抗生成
仿真里程虚高直接累加仿真里程置信度被高估使用等效里程折算
ODD边界模糊未明确天气与道路边界验证结论无法复用先固化ODD再建场景库
不要用“总里程”作为唯一验收指标。没有场景覆盖度支撑的里程,只是重复暴露,不是有效验证。