预期功能安全场景库复杂度量化方法研究
2022-02-20庞智恒唐春蓬李光平
庞智恒,唐春蓬,李光平
(1.中国汽车工程研究院股份有限公司,重庆 401147;2.智能汽车电子信息安全评价技术重庆市工业和信息化重点实验室,重庆 401147)
自动驾驶汽车因安全问题导致危害的主要原因包括两方面:(1)由于电子电器故障或软件系统失效而导致的危害。对于该原因,ISO 提出了ISO 26262《道路车辆—功能安全标准》,而国内提出了对应的GB/T 34590《道路车辆—功能安全标准》。(2)由于系统性能不足或合理预见的人为误用而导致的危害。对于该原因,ISO 提出了ISO/PAS 21448 Safety of the Intended Functionality,简称SOTIF 标准。
在SOTIF 标准中,将自动驾驶汽车行驶时面临的场景分为4 类:已知安全场景、已知不安全场景、未知安全场景以及未知不安全场景,如图1 所示。对于已知安全场景和未知安全场景,在SOTIF 标准中并未给予关注。对于已知危险场景,SOTIF 标准提出了一套方法论。其目的是提高自动驾驶汽车相关系统的性能或缩小相关系统的运行区域范围,并基于相关场景库进行测试与验证,即将已知危险场景转化为已知安全场景。而对于未知危险场景,则可以基于场景库进行大量的试验,以此发现和探测出相关系统存在的安全隐患场景,即将未知危险场景转化成已知危险场景。最后,基于上述方法论,将已知危险场景转化为已知安全场景。总之,SOTIF 标准的目标是尽可能地扩大自动驾驶汽车相关系统在运行时所面临的已知安全和未知安全场景的范围,从而尽可能地缩小已知危险和未知危险场景的范围,如图2 所示。要实现上述目标,其中一个关键因素是构建高质量的预期功能安全场景库。
图1 行驶场景
图2 优化后的行驶场景
目前,许多企业和组织都构建了自己的预期功能安全场景库。例如:Kitti 场景库、NuScenes场景库、Lyft 自动驾驶汽车场景库等。大多数企业和组织在场景库的构建过程中重点关注场景库数据的收集,而对收集到的场景数据质量却缺乏合理的量化指标。这无疑带来了两个问题:(1)场景库中可能包含着大量重复且低质量的场景数据,导致基于场景库的试验时间过长,甚至无法发现自动驾驶汽车的性能缺陷,降低了试验结果可信度。(2)不同场景库之间无法进行优劣性比较,导致自动驾驶汽车场景库试验无法选择最优的场景库数据。因此,采用一种科学合理的场景库质量量化方法是十分必要的。
场景数据越复杂,对相关系统的挑战越大,探测出相关系统性能缺陷的可能性就越大。因此,可以认为场景数据的复杂度是影响场景库质量的关键因素之一。本文提出了一种量化场景数据复杂度的方法。该方法是基于德国Pegasus 项目的场景分层体系,对场景中的要素进行分类统计,以计算场景数据中要素的复杂度,并以此评估场景数据的质量。
1 Pegasus 场景分层体系
Pegasus 项目由德国汽车行业相关企业和研究机构共同发起,以制定与自动驾驶汽车相关的一系列测试标准为目的。该项目提出了一种场景分层体系,即在场景中根据场景要素的不同将其分为6 层场景,见表1。
表1 场景分层
场景数据如图3 所示。基于Pegasus 场景分层体系,可以将场景数据进行分层,见表2。
图3 场景数据
表2 场景分层示例
2 场景数据复杂度量化方法
Pegasus 场景分层体系将场景要素进行分层。本文进一步对每一层要素进行分析,量化每层要素复杂度。
道路层的复杂度主要由车道线的可视性决定,见表3。对于清晰的车道线,其复杂度规定为1;被遮挡或磨损的车道线,会影响车道线的识别,其复杂度为2;路面积水、覆冰覆盖车道线,不但影响车道线识别,还会造成行车困难,其复杂度为3;不规则的车道线可能会引起车道线误识别,导致车辆行驶方向错误,其复杂度为4;无车道线场景可能影响车辆行驶方向,其复杂度为5。
表3 道路层复杂度
交通设施层的复杂度主要由交通设施的可视性决定,见表4。无交通设施的场景,其复杂度为1;交通设施清晰的场景,其复杂度为2;交通设施距离过远导致无法清晰识别的场景,其复杂度为3;交通设施反光、脏污等导致难以识别的场景,其复杂度为4;交通设施不规则,可能引起错误识别,导致车辆闯红灯等危险行为,其复杂度为5。
表4 交通设施层复杂度
临时交通事件层的复杂度主要由其事件的偶然性和可预见性决定,见表5。无临时交通事件,其复杂度为1;交通管制等有专人维护现场的临时交通事件,其复杂度为2;道路施工等有警告指示牌的临时交通事件,其复杂度为3;交通事故等对行车有较大影响的临时交通事件,其复杂度为4;落石、掉落的车轮等偶发性很强且难以预见的临时交通事件,其复杂度为5。
表5 临时交通事件层复杂度
交通参与者层的复杂度由参与者的常见性和合规性决定,见表6。无交通参与者,其复杂度为1;只包含车辆的场景,其复杂度为2;包含行人、自行车等常见参与者且位于法规规定位置(如人行道、自行车道等),其复杂度为3;包含行人、自行车等常见参与者且不位于法规规定位置(行人横穿马路、自行车行驶在机动车道上等),其复杂度为4;不常见的交通参与者(如拖着大象的货车、骑着马的行人等),其复杂度为5。
表6 交通参与者层复杂度
环境条件层的复杂度主要由可见度决定,见表7。晴天高可见度,其复杂度为1;雨天、傍晚中可见度,其复杂度为2;夜晚有环境灯光,其复杂度为3;夜晚无环境灯光,可见度较低,其复杂度为4;浓雾天可见度极低,其复杂度为5。
表7 环境条件层复杂度
信息层的复杂度主要由是否有交通信息决定,见表8。有高精度地图或V2X 提供交通信息,则复杂度为1;无高精度地图或V2X 提供交通信息,则复杂度为2。
表8 信息层复杂度
通过上述分层方式以及每层的复杂度量化方式,可以计算出单个场景数据的复杂度,即每层复杂度之和。例如:图3 场景数据,其复杂度为18(每层复杂度见表9)。
表9 场景数据复杂度
对于整个场景库而言,将每个场景数据的复杂度相加再除以场景库中场景数据总数,得到整个场景库的复杂度。根据场景库复杂度可对比不同场景库的质量。
值得注意的是,由于篇幅限制,上述每层复杂度表中并没有列举和覆盖所有要素。对于没有列举或覆盖的要素,应根据所在层复杂度的决定因素来确定其复杂度。例如:环境条件层复杂度的决定因素是可见度,那么对于没有列举出的浓度较低的雾天,其可见度与夜晚有环境灯光的可见度相当,因此其复杂度为3。
3 场景数据复杂度修正
在采用上述复杂度量化方法构建场景库时,容易出现“过复杂”现象,即为了追求场景库复杂度,场景库只收集高复杂度的场景,致使场景库复杂度虽然很高却都是出现概率很低的场景,最终导致不能发现系统的性能缺陷。为了避免“过复杂”现象,本文提出“母子库”和“系统场景概率”两个概念。
3.1 母子库
在实际场景库收集过程中,采取随机地点、随机时间段、随机气候等的随机收集方式收集到的数据构成“母库”。然后,针对相关系统的特性与运行域,从“母库”中提取出“子库”。例如:对于只适用于高速公路的自动驾驶系统,从“母库”中提取高速公路的场景数据,并形成“子库”。例如:针对特定城市开发的自动驾驶系统,从“母库”中提取出该城市的场景数据,形成针对该系统的“子库”。
值得注意的是:理论上,既可以先构建“母库”,再提取“子库”,也可以先构建“子库”,再汇集成“母库”。但本文建议采用“先母后子”的方法。因为“母库”的构建是随机的,所以从“母库”中提取的“子库”也具有随机的属性。如果先构建“子库”,又因为“子库”是针对特定系统的,那么在构建过程中难以做到完全随机。
3.2 系统场景概率
对于从“母库”中提取出的“子库”,进一步分析其场景中每层要素在系统运行过程中出现的概率,即系统场景概率。例如:对于只适应于高速公路的自动驾驶系统,交通参与者层中出现只包含车辆的概率(复杂度2)是远高于出现行人、自行车的概率(复杂度3)。因此,在评估该层要素的复杂度时,还需要将复杂度乘以一个概率系数,得出该层最终的复杂度。其公式为:
式中:为该场景数据的最终复杂度;C为第层场景要素的复杂度;P为第层场景要素在相关系统运行时出现的概率系数。
3.3 防止“过复杂”现象
通过“母子库”和“系统场景概率”可以避免“过复杂”现象。主要原因有:(1)在构建“母库”时,采用了随机地点、随机时间段、随机气候等的随机收集方式,降低了“母库”收集过程中的人为因素。(2)针对特定系统,从“母库”中提取相关“子库”,间接避免了“子库”中的人为因素。(3)根据该系统运行时场景出现概率及其复杂度,计算出最终场景复杂度。将复杂度与概率这个客观因素结合,避免了人为因素的影响。例如:对于高复杂度、低概率的场景要素或对于低复杂度、高概率的场景要素,其最终场景复杂度的值可能较低。
3.4 概率系数取值
针对不同系统,其概率系数是不一样的。例如:仅限于高速公路使用的系统,交通参与者层中出现只包含车辆的概率系数大于出现行人、自行车的概率系数;对于可以用于城市交通场景的系统,交通参与者层中出现行人、自行车的概率系数大于只包含车辆的概率系数。此外,对于相同系统,处在无人驾驶发展进程的不同阶段,其概率系数也可能是不相同的。例如:现阶段,信息层中有高精度地图或V2X 的系统,其概率系数低于没有高精度地图或V2X 的系统的概率系数。而在无人驾驶发展进程后期,有高精度地图或V2X 的系统,其概率系数可能高于没有高精度地图或V2X 的系统的概率系数。
因此,针对不同系统,需要从其运行范围、地点、时间、目标市场以及整体市场水平等多方面进行考量,以此来确定其不同场景要素的概率系数。
4 结论
为了满足ISO/PAS 21448 的要求,需要构建预期功能安全场景库。而场景库的构建质量缺乏相应的量化指标,本文基于Pegasus 场景分层体系,量化每层要素的复杂度,以此评定场景库的质量。同时,为了避免“过复杂度”现象,提出了“母子库”和“系统场景概率”两个概念,阐述了如何构建“母子库”以及如何计算“系统场景概率”,并以此提出了最终复杂度的计算方法。本文中提到的量化方法以及防止“过复杂度”方法对预期功能安全场景库的建立和推进起到指示作用。