场景要素解析:静态要素、动态要素与环境要素
做预期功能安全场景库,说白了就是回答一个问题:我的车在什么情况下会出问题?
要回答这个问题,你得先把场景拆开来看。我个人的习惯是,把场景要素分成三大类:静态的、动态的、环境的。这三类要素组合在一起,才构成一个完整的、可复现的测试场景。
今天我们就来逐一拆解。你想想看,如果连场景里有什么东西都说不清楚,那后面的验证工作根本没法做。
一、静态要素:道路与交通设施
静态要素,就是那些不会动的东西。它们构成了场景的“骨架”。
1. 道路结构
道路是场景的基础。我在项目中遇到过最头疼的事,就是道路模型建得太粗糙,导致算法在仿真里跑得好好的,一上路就出问题。
道路要素至少包括:
- 车道线:实线、虚线、双黄线、导流线。注意,磨损的车道线也要考虑
- 曲率与坡度:弯道半径、纵向坡度、横向坡度(超高)
- 路面材质:沥青、水泥、砂石。不同材质摩擦系数不同
- 路口类型:十字路口、T型路口、环岛、匝道出入口
2. 交通设施
交通设施是给车“看”的,也是给车“遵守”的。
| 设施类型 | 典型要素 | 关键参数 |
|---|---|---|
| 交通标志 | 限速牌、停止牌、让行牌 | 位置、高度、反光率、遮挡程度 |
| 交通信号灯 | 红绿灯、箭头灯、倒计时器 | 相位、亮度、安装角度 |
| 路侧设施 | 护栏、路缘石、防撞桶 | 材质、颜色、高度 |
嗯,这里要注意:交通设施的可见性往往比设施本身更重要。一个被树枝挡住的限速牌,比没有限速牌更危险——因为系统可能误以为它看到了。
二、动态要素:车辆、行人、障碍物
动态要素是场景的“灵魂”。它们会动,会交互,会制造危险。
1. 车辆
车辆是场景中最主要的动态要素。我习惯把车辆分为三类:
- 自车(Ego Vehicle):搭载被测功能的车辆
- 目标车辆(Target Vehicle):与自车交互的其他车辆
- 背景车辆(Background Vehicle):不直接交互,但影响场景复杂度
每类车辆需要定义:
- 初始位置、速度、加速度
- 行驶轨迹(直线、变道、转弯)
- 车辆类型(轿车、SUV、卡车、摩托车)
- 传感器可见特征(颜色、尺寸、反射特性)
2. 行人
行人比车辆复杂得多。为什么?因为行人的行为不可预测。
行人要素的关键参数:
- 运动状态:静止、行走、奔跑、突然折返
- 群体行为:单人、结伴、拥挤
- 特殊场景:儿童突然冲出、老人缓慢过街、推婴儿车
- 遮挡情况:被车辆遮挡、被广告牌遮挡、夜间低可见度
说白了,行人场景的核心就一句话:系统能不能在最后一刻做出正确决策?
3. 障碍物
障碍物是“不该出现的东西”。它们可能是:
- 静态障碍物:锥桶、施工围挡、废弃轮胎
- 动态障碍物:掉落的货物、滚动的球、动物(猫狗)
- 低矮障碍物:减速带、井盖、路肩(容易被雷达忽略)
我建议把障碍物按危险等级分类。比如,一个掉落的轮胎比一个塑料袋危险得多——但很多算法会把它们都识别为“未知物体”然后忽略掉。
三、环境要素:光照、天气、GPS信号
环境要素是场景的“滤镜”。同样的道路和车辆,换一种环境,结果可能完全不同。
1. 光照条件
光照直接影响摄像头和激光雷达的性能。我见过太多算法在白天完美,到了黄昏就“失明”的例子。
光照要素包括:
- 时间维度:白天、黄昏、夜晚、黎明
- 方向维度:顺光、逆光、侧光
- 强度维度:晴天直射、阴天散射、隧道出入口的剧烈变化
- 特殊光源:对面远光灯、路灯闪烁、广告牌强光
关键认知: 光照不是“有”或“没有”的问题,而是“变化率”的问题。从隧道出来那1秒钟,光照强度可能变化100倍。系统能不能适应这种突变?这才是测试重点。
2. 天气条件
天气是环境要素里最“不讲道理”的。它会影响所有传感器。
| 天气类型 | 影响传感器 | 典型问题 |
|---|---|---|
| 雨 | 摄像头、激光雷达 | 雨滴造成噪点、地面反光 |
| 雾 | 摄像头、激光雷达、毫米波 | 能见度下降、信号衰减 |
| 雪 | 所有传感器 | 地面特征消失、传感器结冰 |
| 强风 | 间接影响 | 车辆稳定性、行人姿态变化 |
我个人习惯,在场景库中至少包含小雨、中雨、大雾、晴天四种基础天气。如果资源允许,再加一个“雨后路面湿滑”的场景——这个场景其实比下雨本身更危险。
3. GPS信号
GPS信号是很多人的盲区。大家总觉得GPS就是“有”或“没有”。其实不是。
GPS信号的关键参数:
- 卫星数量:4颗以下定位精度急剧下降
- 多路径效应:高楼峡谷、隧道、地下车库
- 信号干扰:电子干扰器、高压线、大型金属结构
- 更新频率:10Hz vs 1Hz,对高速场景影响巨大
知识体系总览
下面这张图,是我做场景库时贴在墙上的。它帮我把所有要素串在了一起。
你看,这三类要素不是孤立的。一个场景的复杂度,往往来自它们的组合效应。比如:
- 雨天 + 夜晚 + 行人穿深色衣服 = 极高风险
- 隧道出口 + 强光 + 前车急刹 = 典型危险场景
- 高架桥下 + GPS信号弱 + 多车道汇入 = 定位失效场景
做场景库的时候,我建议你先把每个要素单独列出来,然后再做组合。别一上来就想搞“完美场景”——那只会让你陷入细节的泥潭。
核心原则: 场景要素的粒度,取决于你要验证的功能。L2级的车道保持,不需要关心行人穿什么颜色的衣服。但AEB功能,就必须把行人外观作为关键参数。
好了,场景要素就讲到这里。记住一句话:你定义了什么要素,就决定了你能发现什么问题。