购买
下载掌阅APP,畅读海量书库
立即打开
畅读海量书库
扫码下载掌阅APP

1.2 自动驾驶测试场景与仿真的关系

1.2.1 测试场景的定义

“场景”一词并不是自动驾驶领域的专属名词,由于场景在不同的领域应用十分广泛,因此对场景形成共同的理解很重要。在过去十几年中,场景作为自动驾驶系统开发的需求指导性内容,功能的定义、开发、测试都离不开对场景的描述,经常出现在各类测试研究报告中。

在汽车行业尤其是自动驾驶领域,场景是从空间和时间维度描述人-车-路-环境之间复杂动态关系的模型,是自动驾驶汽车产品研发和功能开发的基础。Ulbrich等提出情景(Scene)、情形(Situation)和场景(Scenario)的关联性,并认为场景是多个情景按照时序情形依次发生的过程,并会持续一段时间。欧盟PEGASUS项目系统分析了自动驾驶汽车不同研发阶段的测试需要,依据抽象程度和表达方式的不同,将场景分为功能场景、逻辑场景和具体场景三类,并结合测试需求将场景划分为道路层、交通设施层、临时调整的交通设施层、移动物体层、环境状态层和通信层六个层次。赵祥模等认为自动驾驶测试场景指在一定时空范围内,自动驾驶汽车与行驶环境中的其他车辆、基础设施、天气、光照、障碍物等要素综合交互的过程,同时,将场景要素分为静态要素和动态要素两大类。Geyer等认为场景是自动驾驶测试要素,涵盖了环境元素、动态元素和驾驶指令,同时也包括了驾驶员的行为和自动驾驶的自主行为。美国国家公路交通安全管理局(NHTSA)发布的报告中提出了自动驾驶汽车测试场景的框架,具体包括车辆运动行为(DDT)、设计运行范围(ODD)、事件感知与决策行为(OEDR)和失效模式行为(FM),从车辆功能特征的角度对测试场景进行描述。

在ISO 34501《Road vehicles—Test scenarios for automated driving systems—Vocabulary》中,对适用于自动驾驶系统的场景和测试场景的定义如下:

Scene(情景)——snapshot of all entities including the ADS/subject vehicle, scenery, dynamic environment, and all actor and observer self-representations, and the relationships between those entities.

Scenery(静景)——static environment, part of the surrounding environment that remains unchanged during a scenario.

Scenario(场景)——sequence of the scenes incorporated with the ADS(s)/subject vehicle(s), and its/their interactions in the process of performing the Dynamic Driving Task(DDT).

Test scenario(测试场景)——scenario intended for testing and assessment of ADS(s)/subject vehicle(s).”

场景是执行动态驾驶任务(DDT)过程中与自动驾驶系统/被试车辆发生交互的场景序列及其相互作用。近些年来,对于场景要素组成以及内部逻辑关系的研究,奠定了场景建模的理论基础。ISO 21448中从预期功能安全的角度,将场景分为了已知安全场景、已知危险场景、未知安全场景、未知危险场景这四大类,希望通过不断发现更多的已知危险场景,从而缩小未知危险场景区域,来提高系统的安全性。除此之外,为了统一在不同的应用阶段,对场景的抽象描述方式,形成高效、可读的场景表达方法,业内基本达成共识,将场景划分为功能场景、逻辑场景、具体场景三大类。功能场景是一种语言描述,是在早期的开发阶段讨论场景使用;逻辑场景描述了场景中不同元素之间的逻辑关系,例如时序逻辑、因果关系等;具体场景是在逻辑场景的基础上,对其状态空间中的变量赋予具体的数值。

1.2.2 仿真的重要性

“零事故”是目前自动驾驶技术发展的重要目标之一,随着众多科技公司在自动驾驶领域的持续发力,传感器探测技术、目标识别技术、规划控制技术等都有了快速的发展,L2及L2以下级别的辅助驾驶功能,已经能够在量产车上进行前装配套,并且受到了消费者的认可;高级别的自动驾驶能够在实验室、封闭场地和部分开放道路上实现各类功能。图1-1展示了部分企业开发的自动驾驶车辆。

图1-1 部分企业开发的自动驾驶车辆

高级别的自动驾驶功能正式量产投放市场之前,需要进行大量的安全测试,保证它能够安全平稳运行。现阶段应用最为成熟、最能直接发现问题的测试方法仍为实车道路测试,美国交通部发布的相关数据中提到,驾驶员发生一起人身伤害的碰撞事故所需的平均里程数为80万km,所需的平均时间为35年。美国某研究机构的相关数据显示:在95%置信度的前提下,要证明自动驾驶汽车在致死事故发生率方面比人类驾驶员低20%以上,需要至少进行1.42×10 10 km的道路测试。鉴于目前造成伤亡的交通事故相比于总的车辆行驶里程,属于较罕见的意外事件,L4及以上级别的全自动驾驶汽车必须积累数亿、甚至是数百亿公里的测试里程,其数据才能具有统计学意义,从而证明其自动驾驶技术在减少伤亡方面的可靠性。这对于计划在数年时间内将自动驾驶技术推向市场的相关厂商而言,根本就是一个不可能完成的任务。因此,许多学者认为,目前还没有经济、高效的实车测试评价方法,这也被称为“自动驾驶上路的陷阱”。由此可见,实车测试的长周期、高成本,很难满足数十亿公里的大样本与可靠性的要求,对于极限场景、危险场景这种小样本、小概率事件很难进行覆盖与复现,而且测试过程中的人员、设备安全性也很难保证,任何安全事故所带来的影响都是巨大的。除此之外,还应考虑到在不同国家、不同地区、不同城市的环境下,交通法规、道路条件、交通特征都会有不同的特点与差异,这也对自动驾驶系统的普适性提出了更高的要求。综上分析,传统的实车测试虽然有着直观的有效性优势,但也必须承认,其很难满足自动驾驶系统的可靠性与鲁棒性的测试需求。如果自动驾驶不能保证安全行驶,则会出现严重的安全事故,如图1-2所示。

图1-2 自动驾驶系统面临的安全问题

因此,建立一种能够任意创造场景、复现复杂开放行驶环境的技术方法,显得尤为重要。而虚拟仿真技术,恰好能解决以上问题,通过仿真的技术手段,对汽车行驶过程中涉及的道路、气象、交通等复杂、动态的变化进行虚拟复现,实现对自动驾驶有效的测试验证,成为自动驾驶产品开发的关键核心技术,并且对于提升其安全性尤为重要。

虚拟仿真并不是新型的应用技术,在很多领域、学科都有着广泛的应用,但是在自动驾驶领域,它有着更加复杂的特点,需要多学科的交叉应用。通过精细的数学建模、高效的数值求解、高保真的三维渲染等技术手段,构建丰富的静态元素(道路、设施、气象等)与动态元素(车辆、行人、指示灯等)。实现这些元素后,就可以根据仿真需求来搭建各类的仿真场景。但仅仅有这些元素是远远不够的,这些场景元素与自动驾驶功能之间是割裂的,中间需要传感器模型作为桥梁,应用目标列表映射、像素映射、概率映射、物理特性映射等多种技术方式,实现车载传感器对于场景的感知过程,即传感器的仿真。因此,这两部分的技术——元素建模与传感器仿真,是自动驾驶汽车虚拟仿真测试的重要核心内容。图1-3展示了某款仿真软件的仿真效果。

图1-3 场景与传感器仿真

1.2.3 场景仿真的定义

随着科学的进步和技术的发展,场景仿真技术在军事、科研、娱乐等领域得到进一步发展,已经走进人类日常生活的每一个角落,而在汽车领域,随着自动驾驶方向的快速发展,场景仿真作为虚拟仿真测试的基础,逐渐引起行业重视。

在自动驾驶测试的范畴内,场景通常是描述道路、交通流、交通信号、气象环境等信息的表述,该表述可以用不同的方式描述出来。为了用人类可以理解的方式描述出来,行业通常采用文字和图表的方式,图1-4是典型的图文表达方式。为了将场景应用于仿真测试中,如何使场景能够被机器阅读与理解就至关重要,因此需要一种以代码描述的方式来描述场景,并使场景可以被仿真测试软件读取出来,这种方式行业称之为场景仿真,图1-5是典型的代码描述方式。

图1-4 文字、图表的描述方式

图1-5 典型的代码描述方式

1.2.4 基于场景的仿真应用

1.感知模块开发与验证中的场景仿真

在开发智能驾驶系统的感知模块时,目前主流的方案是采用机器学习方法,通过标注的样本数据,训练算法,从而获得想要的结果模型。一个鲁棒性强、适用范围广的算法,其卷积神经网络的参数会非常多,这需要提供大量的训练数据集才能使得算法收敛,获取更优质的算法模型。

真实采集的训练集,由于缺少真值,需要通过纯人工或者半人工的方式对数据中的目标物进行标注与核对,虽然其真实性较高,但是为了提高效率与准确度,需要大量的人力投入,无法有效地降低边际成本;采集的场景在算法优化后期,势必面临无法覆盖边角、危险工况场景的问题。

目前各家主流智驾公司的算法不断推陈出新,传统人工标注的数据集方式越来越无法满足复杂算法开发的需求,都已经开始研究通过仿真的技术手段创造场景,供算法的训练与测试。这里,我们需要注意的是,场景的仿真绝不是实现画面的呈现这么简单,仅仅实现这部分功能,只能叫作场景动画,远远达不到场景仿真的程度。我们需要将场景中的信息,通过不同的形式,传递给感知算法或工程师,只有实现这个功能,才能称为实现了自动驾驶场景的仿真。

(1)仿真场景的视觉呈现

视觉上对场景的仿真是最直观的呈现方式,由仿真技术生成的画面,可以供视觉算法进行算法的训练、测试标定,同时也可以使工程师观察到当前的场景。

目前主流的仿真技术通常是依靠渲染引擎,来实现对画面的仿真。渲染引擎技术已经在游戏、影视等领域发展几十年了,其画面的呈现效果、透视关系等,通过开发人员的设计,可以得到准确的呈现。常用的渲染引擎有UnrealEngine、Unity3D、OGRE、OpenSceneGraph等。但智能驾驶领域的场景仿真,区别于传统领域的建模渲染,并不仅仅是对单一场景的仿真与呈现,如某一游戏关卡、某一影视场景,而是需要形成一套工具,用户可以完全自定义场景中的内容,包含天气、道路、交通设施、车、人等,通过不同的元素组合、状态变化,从而形成不同的场景。因为仿真的技术特点是先有元素的状态,再根据其属性通过复杂的计算,得到画面的呈现,所以其具备先天的优势:自带“真值”,画面中呈现出的元素,设计者可以准确地知道其种类、位置、速度、姿态等内容,这就免去了繁琐的人工标注过程。图1-6是某款仿真工具对于不同场景的仿真画面。

图1-6 仿真场景的快速遍历

实现了场景的仿真,仍不能最大地发挥仿真的技术优势。要知道,仿真的场景是通过计算机图形学计算出来的画面,通过对生成的参数加以泛化,则可以基于某些元素,快速生成大量的场景,再通过对参数的约束,形成具有针对性的场景集。这部分功能,是真实采集的场景无法实现的,既可以大大降低生成场景的边际成本,又可以通过人为设计,形成大量危险、复杂的场景集。

(2)仿真场景其他的呈现方式

除了视觉摄像头需要数据集的训练与测试,其他常见的传感器,如毫米波雷达、超声波雷达、激光雷达等,也可以通过场景的仿真来实现训练与测试数据集的构建。目标感知类的传感器目前主要有两种仿真方式:

1)在场景的仿真过程中加入“光线追踪”技术。光线追踪是一种“来自几何光学的通用技术,它通过追踪与光学表面发生交互作用的光线,得到光线经过路径的模型”。这个定义听起来有些晦涩,我们不妨说简单一点:首先假设屏幕内的世界是真实的,当光线投射到物体表面时,通常会同时发生三件事,即光被吸收、反射和折射。特别是当光被折射到不同方向时,光谱就会发生变化。无论怎样,光线总会经过一系列的衰减最后进入人的眼睛,光线追踪就是要计算出光线发出后经过一系列衰减再进入人眼时的情况,这样可确保3D画面看起来更真实。

借助这种技术,开发人员把对光线的建模修改为对超声波、毫米波、激光等能量形式的建模,则可以准确得到不同传感器在场景中反射的情况,如图1-7所示。这种技术需要复杂的建模过程,并且需要高算力的图形处理器的支持,技术难度比较高。

图1-7 激光雷达的仿真效果

2)通过数学建模,以物理模型与概率模型相结合的技术手段,整体描述空间中目标物在不同传感器下的反射特性。这种方式更关注场景中目标物对传感器信号的反射状态,而不是对整个场景的反射情况进行仿真,需要依据传感器的实验数据来进行建模与标定。

2.规控模块开发与验证中的场景仿真

规控算法的输入通常为目标列表的状态信号,其描述了周围相关目标物的不同属性信息。但由于规控算法更加关注动态的场景内容,如不同疏密程度的交通流的状态变化、交通设施的信号变化,以及道路起伏、曲率变化等,所以需要在场景仿真的过程中,将场景中元素的信息做统一输出。

由上文的阐述可知,仿真场景中的目标物是自带真值的,所以对于这部分场景信息的仿真相对比较简单,这也是各类场景仿真工具中最基础的功能。通过场景自定义工具,设计好场景中元素的动作流程,通常有按照时间序列与按照触发动作两种设计方式。按照场景的描述,可以仿真设计出切入、切出、紧急停车等各类场景。

规控模块开发对于动力学、闭环等内容的仿真需求,在此不做叙述。 CqcGfoyH6tACXoVfMy3sEDa2TeBMRc7cUSQi2fsYAmJfbchiQP2HPwMSfESH3rQf

点击中间区域
呼出菜单
上一章
目录
下一章
×