汽车自动驾驶仿真测试蓝皮书
上QQ阅读APP看本书,新人免费读10天
设备和账号都新为新人

1.4 汽车自动驾驶仿真测试面临的主要挑战

1.4.1 自动驾驶仿真测试的验证与精度

仿真对物理现实的表现是不充分的。以对图像进行仿真为例说明,大量的高精度图形将对仿真框架的吞吐量/速度造成不利影响,因此无法快速迭代不同的测试方案。但是,如果环境的逼真度可以高度贴近真实环境,就可能会提高基于机器学习的感知算法及测试传感器功能的开发速度。在视觉上,逼真的环境可以提供用于训练机器学习模型的充足训练数据(图像、数据馈送等),并轻松地将学习结果转移到现实世界,然而高度一致性需要非常高的成本。为了规避较高成本,目前也有一部分相关研究工作探索这一问题的解决方法,如百度利用增强现实生成高精度数据集用于仿真的AADS方法等[6]。一般来说,仿真模型必须满足三个条件。首先,仿真模型与系统原型之间具有一定程度上的相似关系,以保证两者之间的可类比性。比如,摄像头仿真,要在摄像头工作原理和参数关系的基础上进行物理模型仿真,这是仿真模型能够得以存在的基础。其次,仿真模型在一定程度上应该能够代替系统原型。比如,在无人驾驶仿真平台上,摄像头仿真模型应该能代替真实摄像头,在虚拟场景内做环境感知,生成数据。这是能够利用仿真模型来进行实验研究,也是仿真过程能够得以进行的前提条件。最后,通过对仿真模型的研究,能够得到一些关于系统原型的准确信息,即仿真模型具有外推性。比如,利用摄像头仿真模型的参数调节功能,找到真实摄像头可能存在的盲区,这是仿真技术要达到的目标。

1.4.2 所有相关的物理现象的考虑和真实场景的泛化

对自动驾驶系统进行测试,无论是实车测试,还是基于仿真的测试,其核心目的都是希望在覆盖绝大多数场景的情况下得到安全高效的算法,而往往对算法进行开发和测试的场景算例和最终需要达成的场景相比都是很小的一部分—如何通过这部分数据尽可能达成比较好的效果就涉及自动驾驶仿真的可复现性问题,即使仿真比实车测试更加可以覆盖和考虑边缘场景,但是在对保障非常高的安全性这个目标下,在每一个具体的可能涉及安全问题的实际场景中,测试用例都还是极其稀疏的。如何解决从这样一些局部的算例达成对模型整体在应用于全部的驾驶场景下的安全性和稳健性的问题,是自动驾驶仿真的关键问题。真实场景的泛化存在两个问题,一是泛化的方向是否符合统计学意义与测试需求,二是泛化过程中真实性损失。例如,对密集交通流案例进行泛化,更改一条车辆轨迹后,在实际中会对周边多条轨迹产生影响,单车的行驶扰动有时会造成整个交通流的失稳,而简单的泛化扩样方法可能难以重现这类现象。将案例的泛化与车辆行为模型相结合或许是解决这个问题的思路之一。

1.4.3 仿真测试的评价

自动驾驶仿真测试的评价体系主要针对的是自动驾驶整体算法的测试和评估。

本部分简要描述了自动驾驶仿真测试的评价体系,主要针对的是自动驾驶整体算法的测试和评估。在算法接入仿真平台后,起到测试目的的关键部分是交通场景的仿真,即系统预期运行环境的条件模型。环境条件通常概述于“场景”中,包括但不限于道路属性(车道数、坡度、出口、路障、道路条件等)、交通属性(其他交通参与者的数量和速度、其他驾驶员的可能模型)和总体环境条件(能见度、天气条件等)。这些条件模型的组合形态既包括实际交通中经常出现的“标准工况”,也包括对于安全性评价,导致事故的“危险工况”,以及两者相结合的“复杂交通流”。不管哪种模型,测试场景标准化都尤为关键。在第29届国际智能车大会IEEE IV 2018期间,有论文专门讨论了ISO 26262标准中不同阶段对场景描述的要求,提出了满足一致性的场景描述方法,并演示了如何系统建立满足不同阶段需求的场景。场景可以应用到标准的整个开发过程中以得到各中间产物,从概念阶段到产品开发,再到系统验证和测试。而在整个开发周期中,要求在不同抽象级别上对所用场景有一致性表述,就此可以将场景划分为三个抽象级别:功能场景(Functional Scenarios)、逻辑场景(Logical Scenarios)和具体场景(Concrete Scenarios)。功能场景是场景表述的抽象级别场景,是通过语义描述的操作场景,通过语言场景符号来描述域内的实体及实体间的关系。首先需要制定一个术语表,这个术语表包括不同实体的术语和这些实体的关系短语。为了生成一致的功能场景,术语表的所有术语必须是明确的,其来源可以是实际的标准和法规,如道路交通规则。功能场景的详细程度取决于实际的开发阶段和正在开发的项目。逻辑场景以状态空间呈现操作场景。通过定义状态空间内变量的参数范围,可以表达实体特征和实体间的关系。参数范围可以选择用概率分布来确定。此外,不同参数的关系可以通过相关性或数值条件来确定。逻辑场景应包含该场景的形式标记。具体场景以状态空间详细描述了操作场景。通过确定状态空间中每个参数的具体值来明确描述实体和实体间的关系。对于每一个具有连续取值范围的逻辑场景,都可以派生出任意数量的具体场景。为保证生成具体场景的效率,应选择有代表性的离散值进行组合。必须强调的是,只有具体场景可以直接转化为测试用例。要将具体场景转换成测试用例,需要增加被测对象的预期行为表现,以及对相关测试设施的需求。而被测对象的预期行为则可以从操作场景、逻辑场景或项目定义中导出。标准化交通场景确定之后,自动驾驶算法接入仿真平台即开始测试,我们可以记录下自动驾驶车辆从起点出发之后所有的细微表现,如是否闯红灯、压实线,是否发生碰撞,是否到达终点,甚至全程的油门、刹车、转向状态都会被记录下来。自动驾驶的测试评价缘于这些原子结果和车辆状态。