场景化验证工程深度 — 三层场景 / ASAM 栈 / corner-case / sim-to-road
本质与导读
本质 SOTIF Area 3(未知不安全)的残余风险用纯路测算不动——naive 路测要 ~ 英里才能统计显著证明罕见致命事件率,每改一版软件还得重来(approval trap)。场景化验证的破局点是不穷举里程,而把驾驶世界结构化成可参数化、可复现的场景去定向造、挖、跑;前提是仿真 credibility 顶得住,验收靠统计置信论证残余风险足够低。
主线坐标:方法 / 标准层(跨站支撑) · ↑ 全景主线
1. 为什么纯里程路测算不动
要统计显著地证明"自动驾驶致命事故率低于人类基线",罕见事件 + 高置信要求让 naive 路测里程飙到天文数字,且每改一版软件就得重跑——这就是 approval trap。场景化把"穷举里程"换成"针对性造关键场景":
- 纯里程:覆盖靠运气,罕见场景出现概率极低,证不动尾部,且不可复现、改版重来
- 场景化:把驾驶世界结构化成可枚举/可采样的场景空间,针对性造关键与边界场景,可复现、可规模化、改版可回归
2. 三层场景 + ASAM 标准栈
场景按抽象度分三层(Menzel/PEGASUS),从语言到可执行逐级具体:
| 层 | 是什么 | 例 |
|---|---|---|
| 功能场景 | 自然语言描述 | "高速公路上前车切入" |
| 逻辑场景 | 给参数 + 取值范围 | 切入车速 80–120 km/h、横向距离 1–3 m、TTC 1–4 s |
| 具体场景 | 参数取具体值 | 切入车 100 km/h、横向 2 m、TTC 2 s(一条可执行用例) |
ASAM 标准栈让这三层可交换、可复现、可规模化:
- OpenSCENARIO(动态层) — 描述演员、机动动作、触发条件、时序(1.x XML / 2.0 DSL);一条具体场景就是一份 OpenSCENARIO
- OpenODD(运行设计域) — 形式化 ODD(道路类型/天气/光照/速度域等),界定"系统该在什么条件里工作",是场景空间的边界
- OpenDRIVE(静态层) — 道路网络几何 + 车道 + 标志,场景的"地图底座"
- OpenLABEL(标注) — 给传感数据/场景打标签,喂场景库与回归
3. 逻辑→具体 — 参数空间采样
逻辑场景的参数范围张成一个高维参数空间,具体场景是其中的点。怎么从范围取点决定覆盖效率:
- 全网格 — 每维等分穷举,维度一高就组合爆炸(维度灾难),只适合低维
- 拉丁超立方 / 准蒙特卡洛 — 均匀铺满空间,比网格省样本,适合先扫整体响应面
- 重要性采样 / 自适应 — 把样本集中到关键/边界区(criticality 高的参数组合),用响应面/代理模型引导,挖尾部最高效
- 基于覆盖的停止 — 以参数空间覆盖度 + criticality 覆盖为停止判据,而非固定样本数
关键:不是随机撒点,而是往危险区聚焦——这与 FMEDA 的 fault list 完整性 同理:覆盖的代表性比样本数重要。
4. corner-case 挖掘
Area 3 的本质是"还没想到的危险场景"。挖它有四条互补路:
- criticality 度量 — 用 TTC(碰撞时间,纵向接近/跟车)/ PET(后侵入时间,交叉冲突点如路口横穿)/ THW(车头时距) 等指标给场景打危险分,低 TTC = 高危;注意 TTC 与 PET 适用拓扑不同
- 别忘 ODD 边界场景 — ODD exit → DDT fallback → MRC(最小风险状态) 是一类必验场景(WP.29 NATM 要求验 ODD 边界行为),不只验 ODD 内
- 搜索式测试(SBT / falsification) — 把"找反例"建成优化问题:在参数空间里用进化/梯度搜索主动逼系统失效,比随机高效几个数量级
- 重要性采样 — §3 的自适应采样,统计上加权挖尾部
- fleet / 影子模式(shadow mode) — 量产车上 AD 算法只算不控,与人类驾驶/真值比对,自动捞出分歧场景回灌场景库——这是把真实世界的"未知"源源不断翻成"已知"的最强引擎
挖到的 corner-case → 转 Area 2(已知不安全)→ 设计改进消除,这正是 SOTIF "把 Area 2/3 翻译到 Area 1" 的执行层。
5. sim-to-road — V&V 金字塔
验证不能全靠路测,也不能全靠仿真,而是分层金字塔:仿真量大廉价跑覆盖,试车场可控复现危险工况,路测/影子模式抓长尾真值。
- X-in-the-loop 仿真(MiL/SiL/HiL/ViL) — 量最大、最廉价、可批量跑场景库 + 搜索式;但保真度有限(传感器/物理建模误差)
- 试车场(proving ground) — 真车真传感,可控复现危险场景(假人/气球车);成本高、量有限
- 公开路测 / 影子模式 — 真实长尾 + 真值来源;但危险场景不可主动造、不可复现
金字塔成立的前提是仿真可信度(credibility)+ 可复现性(determinism):仿真要替代部分里程,必须有 credibility assessment(模型校准 + 真实数据验证 + 不确定度量化,对标 NASA-STD-7009 / ISO 仿真可信度框架),且同一具体场景多次运行结果一致(确定性),否则"仿真过了"不可采信、不可回归。
6. 验收 — 统计置信 + GAMAB/ALARP/PRB
场景化把"多少里程"换成"哪些场景 + 多少置信",验收落到统计与接受准则:
- 统计置信 — 在目标 ODD 内,关键场景集 + 采样使残余风险的统计上界低于可接受阈,给定置信度(而非穷举)
- 接受准则(接 SOTIF):GAMAB(整体至少和现有一样好)/ ALARP(风险降到合理可行的最低)/ PRB(正向风险平衡,比人类驾驶净更安全)——任选一作为"残余风险足够低"的论证框架
- 监管对接 — UNECE WP.29 的 ADS 框架要求场景库 + 仿真可信度 + 统计论证的完整证据链(中国首批 L3 准入亦要 SOTIF case 证据链)
核心:验证目标不是"零风险",而是"残余风险论证到可接受 + 有证据链"。
7. 工程陷阱
场景化验证翻车几乎都在"把覆盖当里程"和"仿真没可信度"这两件事上:
- 拿里程当覆盖 — 里程多不等于尾部覆盖;必须按场景空间 + criticality 覆盖度量
- 随机撒点采样 — 高维随机采样挖不到尾部;用重要性采样 / 搜索式往危险区聚焦
- 仿真无可信度评估 — "仿真过了"若无 credibility assessment 不可采信,要校准 + 真值验证 + 不确定度
- 场景库不闭环 — fleet/影子模式挖出的 corner-case 不回灌场景库,Area 3 永远挖不干
- ODD 不形式化 — ODD 边界含糊 → 场景空间边界含糊 → 覆盖论证站不住;用 OpenODD 形式化
核心要点
- approval trap:纯里程路测证不动 Area 3 残余风险(naive ~ 英里、改版重来);场景化破局
- 三层场景:功能(语言)→ 逻辑(参数范围)→ 具体(参数取值,一条可执行 OpenSCENARIO)
- ASAM 栈:OpenSCENARIO(动态)+ OpenODD(ODD 边界)+ OpenDRIVE(路网)
- 参数化采样往危险区聚焦(重要性采样/搜索式),不是随机撒点;覆盖代表性 > 样本数
- corner-case 挖掘:criticality(TTC/PET)+ 搜索式 falsification + fleet/影子模式回灌
- V&V 金字塔:仿真(量大,需 credibility)→ 试车场(可控)→ fleet(长尾真值)
- 验收:统计置信 + GAMAB/ALARP/PRB,论证残余风险到可接受 + 证据链(WP.29)
缩写表
| 缩写 | 全称 | 中文 |
|---|---|---|
| SOTIF | Safety Of The Intended Functionality | 预期功能安全(ISO 21448) |
| ODD | Operational Design Domain | 运行设计域 |
| ASAM | Association for Standardization of Automation and Measuring Systems | 自动化与测量标准化协会 |
| TTC | Time To Collision | 碰撞时间 |
| PET | Post-Encroachment Time | 后侵入时间 |
| THW | Time Headway | 车头时距 |
| SBT | Search-Based Testing | 搜索式测试 |
| MiL | Model-in-the-Loop | 模型在环 |
| SiL | Software-in-the-Loop | 软件在环 |
| HiL | Hardware-in-the-Loop | 硬件在环 |
| ViL | Vehicle-in-the-Loop | 整车在环 |
| GAMAB | Globalement Au Moins Aussi Bon | 整体至少一样好 |
| ALARP | As Low As Reasonably Practicable | 合理可行最低 |
| PRB | Positive Risk Balance | 正向风险平衡 |
| ADS | Automated Driving System | 自动驾驶系统 |
Cross-references
- ← 索引
- ISO 21448 SOTIF 深度 — Area 1–4 与"翻译到 Area 1"的方法学母页
- 故障注入测试深度 — fault list 完整性/代表性的同源思路
- 功能安全工程师指南 hub — V-cycle 与验证在全流程的位置
- HARA 报告写作深度 — 场景与危害事件的源头