第2章:场景理论——场景的定义与六层模型
大家好,我是你们的老朋友。今天我们来聊聊场景理论。
说实话,我刚入行那会儿,大家对「场景」的理解特别模糊。有人说场景就是一条路,有人说场景就是天气不好。嗯,这些都对,但都不完整。
直到后来,我参与了一个L3级自动驾驶项目。测试时发现,车辆在某个路口总是莫名其妙地急刹车。我们排查了整整两周,最后发现——问题出在路边的电子广告牌上。屏幕闪烁的频率刚好和摄像头曝光周期产生了共振,导致感知系统误判。
你看,这就是典型的场景问题。它不光是路、不光是天气,而是多种因素的组合。
2.1 场景的定义
先给场景下个定义。
场景,是指在特定时间和空间范围内,自动驾驶系统所面临的所有外部环境条件的集合。它包含了道路、交通参与者、天气、信号、临时事件等一切可能影响系统行为的因素。
我个人习惯把场景理解成「剧本」。你想想看,拍电影需要剧本,自动驾驶也需要。剧本里写了什么时间、什么地点、谁出场、发生了什么事。场景也是一样。
核心要点:
- 场景是动态的,不是静态快照
- 场景是多维的,不是单一因素
- 场景是连续的,不是孤立片段
我在项目中遇到过一件事:同一个十字路口,白天和晚上的场景完全不同。白天有行人、非机动车、交通协管员;晚上只有零星车辆,但多了路灯眩光。如果你只测试了白天场景,那晚上出问题是迟早的事。
2.2 六层场景模型
好了,定义清楚了。那场景怎么拆解?
业内有个经典框架——六层场景模型。我第一次看到这个模型时,心里想的是:「终于有人把这事说清楚了。」
六层模型把场景拆成六个维度,每一层都对应一类影响因素。我们一层一层来看。
第一层:道路
道路是场景的「舞台」。没有路,车就没法开。
这一层包括:
- 道路类型:高速公路、城市道路、乡村道路、匝道
- 车道数量:单车道、双车道、多车道
- 道路几何:直道、弯道、坡道、交叉口
- 路面条件:干燥、湿滑、积雪、坑洼
举个例子。我测试过一个场景:城市快速路的弯道上,路面有轻微积水。结果车辆在弯中突然减速,差点被后车追尾。为什么?因为系统把积水误判成了障碍物。你看,道路条件直接影响感知。
我的经验:测试道路时,别只盯着「好路」。烂路、窄路、施工路段才是真正的考验。
第二层:交通设施
这一层说的是「人为设置的交通规则载体」。
包括:
- 交通信号灯:红绿灯、箭头灯、闪烁灯
- 交通标志:限速牌、禁止通行、让行标志
- 标线:车道线、停止线、导流线
- 护栏、隔离带、路缘石
这里有个坑,我踩过。有一次测试,路边的限速牌被树枝挡住了三分之一。系统没识别到,结果超速行驶。嗯,后来我们专门加了一个「遮挡检测」模块。
为什么会这样?因为交通设施不是永远清晰可见的。老化、遮挡、损坏,都是常态。
第三层:临时操作
这一层最容易被忽略。它指的是临时性、非永久性的交通管理措施。
比如:
- 施工区域:锥桶、围挡、临时改道
- 交通事故现场:车辆停靠、碎片散落
- 临时交通管制:交警手势、临时信号灯
- 特殊事件:游行、马拉松、火灾
我曾经在测试中遇到一个场景:前方有交通事故,交警用手势指挥车辆绕行。我们的车完全没反应,因为它只认红绿灯,不认人。后来我们花了三个月才把「交警手势识别」加进去。
注意:临时操作是SOTIF的「重灾区」。因为系统训练数据里很少包含这些边缘情况,但实际道路上随时可能发生。
第四层:物体
这一层是「动态参与者」和「静态障碍物」的集合。
动态物体:
- 车辆:轿车、卡车、公交车、摩托车
- 行人:成人、儿童、老人、推婴儿车的人
- 动物:狗、猫、鸟、野生动物
- 非机动车:自行车、电动滑板车
静态物体:
- 路边的垃圾桶、邮筒、消防栓
- 掉落的货物、轮胎碎片
- 低矮的路障、石墩
我印象最深的一次测试:一只猫突然从路边窜出来。我们的车紧急刹车,但猫又突然折返,车又加速,结果猫又回头……最后猫跑了,但车里的测试员差点吐了。你看,动物的行为是不可预测的。
第五层:环境
环境层包括自然环境和气象条件。
主要因素:
- 光照:白天、夜晚、黄昏、隧道出入口
- 天气:晴天、雨天、雪天、雾天、沙尘
- 温度:高温、低温、结冰
- 其他:强风、逆光、阴影
这里有个经典问题:逆光。下午三四点,太阳正好在正前方,摄像头直接过曝。我见过一个案例,车辆因为逆光没识别到前方的静止车辆,直接撞上去了。嗯,后来我们给摄像头加了偏振片,情况好了一些。
关键认知:环境不是「有或无」的问题,而是「程度」的问题。小雨和大雨对传感器的影响完全不同。
第六层:数字信息
这一层是近年来才加进来的。它指的是非物理世界的数字信号。
包括:
- V2X通信:车与车、车与路、车与云
- 高精地图:实时更新、差分定位
- 云端信息:交通流量、事故预警、天气预报
- 数字孪生:虚拟仿真中的场景数据
数字信息的好处是「看得更远」。但坏处是——它可能出错。我遇到过V2X信号延迟,导致车辆提前减速,后车追尾。还有一次,高精地图没更新,路已经改了,车还在按旧地图走。
我的建议:数字信息可以作为辅助,但不能完全依赖。系统必须能在「断网」情况下安全运行。
2.3 六层模型的实践意义
你可能会问:知道这六层有什么用?
用处大了去了。
第一,场景覆盖。做测试时,你可以按这六层来设计场景矩阵。每一层都覆盖到,就不会漏掉关键因素。
第二,根因分析。出问题后,按六层去排查。是道路问题?还是物体问题?还是数字信息问题?定位更快。
第三,SOTIF分析。预期功能安全的本质就是「未知危险场景的发现」。六层模型帮你系统性地思考:哪些场景还没测到?哪些组合可能出问题?
我举个例子。有一次我们做SOTIF分析,按六层模型列了一个表格:
| 层 | 因素 | 潜在危险 |
|---|---|---|
| 道路 | 急弯+下坡 | 车速过快,弯道偏离 |
| 交通设施 | 限速牌被遮挡 | 超速行驶 |
| 临时操作 | 施工改道 | 系统无法规划路径 |
| 物体 | 儿童突然冲出 | 制动距离不足 |
| 环境 | 逆光+雨天 | 传感器性能下降 |
| 数字信息 | V2X延迟 | 误判前方路况 |
你看,这么一列,哪些场景需要重点测试,一目了然。
2.4 小结
场景理论是SOTIF的基石。没有场景,就没有测试;没有测试,就没有安全。
六层模型帮我们把「混沌的现实」拆解成「可管理的维度」。每一层都有它的特殊性,每一层都可能藏着未知的危险。
我个人习惯在做项目时,先把六层模型贴在墙上。每次开会、每次评审,都对着它看一遍。你会发现,很多问题其实早就写在模型里了,只是你没注意到。
下一章,我们会深入探讨「场景探索的方法论」。到时候我会分享一些实战中踩过的坑,以及怎么用系统化的方法去发现那些「看不见的危险」。
嗯,今天就到这里。记住:场景不是玄学,是科学。拆开来看,其实没那么复杂。