一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

机器人系统的性能测试的制作方法

2022-04-02 05:26:49 来源:中国专利 TAG:


1.本公开涉及自动驾驶车辆和其他机器人系统的性能测试。性能测试对于确保此类系统能够以有保证的安全级别运行至关重要。


背景技术:

2.据估计,为了使自动驾驶车辆(autonomous vehicle,av)达到与人类驾驶员相匹配的安全级别,必须在av的整个运行设计域(operational design domain,odd)中保证每10^7个自动驾驶决策最多出现1个错误。
3.鉴于av和odd本身的复杂性,这带来了巨大的挑战。无人驾驶系统(self-driving system)是由交叉依赖和交互的软件和硬件部件(每个部件都容易受到限制或出错)组成的异常复杂的组件。若干个部件使用神经网络进行对象检测(object detection)、类型分类(type classification)、动作预测(action prediction)和其他关键任务。该系统需要在odd中安全运行。在这种情况下,odd描述av可能遇到的所有可能的驾驶场景,因此,它本身具有无限的可能性,其变量包括道路拓扑(road topologies)、用户、外观、照明、天气、行为、季节、速度、随机性和故意行为。
4.安全测试的行业标准方法基于实际驾驶测试里程。自动驾驶车队由测试驾驶员驾驶,并且当需要测试驾驶员干预时,决策被定性为不安全。一旦在特定的真实世界驾驶场景中发生了测试驾驶员干预的实例,就可以探究该驾驶场景的情况以隔离导致av行为不安全的因素并采取适当的缓解动作。


技术实现要素:

5.模拟已被用于安全测试,但只有在模拟场景足够现实时才有用(如果av规划器在完全不现实的模拟场景中做出不安全的决策,那么在安全测试背景中的用处远不如现实场景中的不安全行为的实例)。
6.一种方法是基于需要测试驾驶员干预的真实场景来运行模拟。收集来自av的传感器输出,并且传感器输出可用于在模拟器中重建需要测试驾驶员干预的驾驶场景。场景的变量可在规划级别被“模糊化”,以便测试仍然现实的真实场景的变化。通过这种方式,可以获取、分析和使用更多关于不安全行为原因的信息,以改进预测和规划模型。然而,显著的问题出现了,因为随着每个决策的误差数量的减少,为了找到足够数量的不安全行为实例而需要行驶的测试里程数增加。典型的av规划器可能平均每两秒做出大约1个决策。以每小时20英里的平均速度,这相当于每英里行驶要作出约90个决策。这进而暗示每10^5英里的行驶里程小于一个误差,以便与人类安全级别相匹配。鲁棒的安全测试需要多次测试以跨av的odd充分测试av。随着感知堆栈的发展,这种情况会进一步恶化,因为随着感知堆栈的每次变化,都需要更多的测试里程。由于这些原因,当以接近人类的安全级别下进行测试时,这种方法根本不可行。
7.现有的模拟方法还存在其他问题。
8.一种方法是规划级别的模拟,但这无法充分考虑感知误差的影响。许多因素会影响感知误差,诸如天气、照明、与另一车辆的距离或另一车辆的速度、遮挡等。
9.替代方案将是完全的“真实感”模拟,其中,模拟av的整个硬件和软件堆栈。然而,这本身就是巨大的挑战。av感知流水线通常由多个感知部件组成,多个感知部件协同解释av的传感器输出。
10.一个问题是某些感知部件(诸如卷积神经网络(convolutional neural networks,cnn))对模拟数据的质量特别敏感。尽管可以生成高质量的模拟图像数据,但感知中的cnn甚至对与真实数据的微小偏差也极为敏感。因此,这些将需要涵盖av可能在真实世界中遇到的所有可能的条件(例如,模拟天气条件、照明条件等的不同组合)的异常高质量的模拟图像数据-否则它们在模拟场景中的行为将不会充分反映它们在真实世界中的行为。
11.第二个问题是某些类型的传感器数据特别难以建模(模拟)。因此,即使是对输入数据的质量不是特别敏感的感知系统也会给出差的结果,例如,雷达属于极难模拟的传感器数据类别。这是因为雷达的物理特性本质上很难建模。
12.第三个首要问题是计算效率问题。基于当前的硬件约束,估计可能尽可能实时地实现真实感的模拟(即使可以克服其他问题)。
13.本公开提供了一种使用本文称为“感知统计性能模型”(pspm)的模型为基于模拟的安全测试的截然不同的方法。本公开中解决的核心问题是以不仅比真实感模拟更鲁棒而且显著更有效的方式模拟现实感知输出-即具有现实误差的感知输出。
14.pspm基于通过被建模的一个或更多个感知部件计算的实际感知输出的鲁棒统计分析,在概率不确定性分布方面对感知误差进行建模。pspm的独特方面是,在给定感知地面实况(即,将由完美但不现实的感知部件计算的“完美”感知输出)的情况下,pspm提供概率不确定性分布,概率不确定性分布代表可以由它正在建模的感知部件提供的现实感知部件。例如,给定地面实况3d边界框的情况下,对模拟3d边界框检测器的pspm建模的pspm将提供代表现实3d对象检测输出的不确定性分布。甚至当感知系统是确定性的时,它也可以被有效地建模为随机的,以考虑它依赖于实践的许多隐藏变量的认知不确定性。
15.当然,感知地面实况在真实世界的av中不会在运行时可用(这就是需要复杂的感知部件来可靠地解释不完美的传感器输出的原因)。然而,感知地面实况可以直接从在模拟器中运行的模拟场景中导出。例如,在给定存在外部活动者时具有自我车辆(正在测试的模拟av)的驾驶场景的3d模拟情况下,可以根据外部活动者相对于自我车辆的大小和位姿(位置和方向)从外部活动者的模拟场景中直接计算地面实况3d边界框。然后,pspm可用于从这些地面实况导出现实的3d边界对象检测输出,而现实的3d边界对象检测输出又可以由剩余的av堆栈处理,就像它们在运行时一样。
16.本文的第一方面提供了一种用于测试和/或训练机器人系统的运行时堆栈的计算机系统,该计算机系统包括:
17.模拟器,该模拟器被配置为运行模拟场景,其中,模拟主体与一个或更多个外部对象交互;
18.运行时堆栈的规划器,该运行时堆栈的规划器被配置为根据为模拟场景计算的感知输出的第一时间序列和感知输出的第二时间序列为每个模拟场景做出自主决策;以及
19.运行时堆栈的控制器,该运行时堆栈的控制器被配置为生成一系列控制信号以使模拟主体随着模拟场景的进展而执行自主决策;
20.其中,计算机系统被配置为通过以下操作来计算第一时间序列的每个感知输出:
21.基于模拟场景的当前状态计算感知地面实况;
22.将第一感知统计性能模型(pspm)应用于感知地面实况,从而确定概率感知不确定性分布;以及
23.从概率感知不确定性分布中采样感知输出;
24.其中,第一pspm用于对运行时堆栈的第一感知切片进行建模,并且被配置为基于从使用要被建模的感知切片生成的实际感知输出集合中学习的参数集合来确定概率感知不确定性分布;
25.其中,计算机系统被配置为使用对运行时堆栈的第二感知切片建模的第二pspm来计算感知输出的第二时间序列,第一pspm从感知切片的第一传感器模态和时间序列的数据中学习,以及第二pspm独立地从第二感知切片的第二传感器模态和第二时间序列的数据中学习。
26.这种方法的一个益处是模块性。可独立地训练单独的pspm以对运行时堆栈的不同感知切片建模,且在不同配置中重新部署以测试运行时堆栈的不同配置,而无需重新训练。
27.在实施例中,计算机系统可被配置为将运行时堆栈的至少一个未建模的感知部件应用于感知输出的第一时间序列和第二时间序列,从而计算处理后的感知输出,规划器被配置为根据处理后的感知输出做出所述自主决策。
28.未建模的感知部件可以是应用于感知输出的第一时间序列和第二时间序列的滤波部件,处理后的感知输出是滤波后的感知输出。
29.可应用滤波部件将第一传感器模态的感知输出的时间序列与感知输出的第二时间序列融合。
30.pspm可以被应用于感知地面实况以及与模拟场景相关的一个或更多个混杂因素,每个混杂因素都是pspm的变量,变量的值表征适用于模拟场景的物理条件,并且概率感知不确定性分布依赖于该变量。
31.一个或更多个混杂因素c可以包括以下混杂因素中的一个或更多个,混杂因素至少部分地确定从中采样感知输出的概率不确定性分布:
32.外部对象中的至少一个的遮挡级别;
33.一个或更多个照明条件;
34.一天中的时间的指示;
35.一种或更多种天气条件;
36.季节的指示;
37.外部对象中的至少一个的物理特性;
38.传感器条件,例如,外部对象中的至少一个在主体的传感器视场中的位置;
39.外部对象的数量或密度;
40.两个外部对象之间的距离;
41.外部对象中的至少一个的截断级别(truncation level);
42.对象中的至少一个的类型,以及
43.关于外部对象中的至少一个是否对应于来自模拟场景的较早时刻的任何外部对象的指示。
44.该计算机系统可以包括场景评估部件,该场景评估部件被配置为通过应用预定规则集合来评估外部主体在每个模拟场景中的行为。
45.预定规则中的至少一些可能与安全有关,并且场景评估部件可被配置为评估主体在每个模拟场景中的行为的安全性。
46.场景评估部件可被配置为通过主体自动地标记不安全行为的实例以供进一步分析和测试。
47.计算机系统可以被配置为基于为重新运行场景确定的感知地面实况的时间序列,重新运行主体最初表现出不安全行为的模拟场景,而无需将pspm应用于那些感知地面实况,因此没有感知误差;以及评估主体在重新运行场景中是否仍然表现出不安全行为。
48.从概率感知不确定性分布的采样可能是不均匀的并且偏向于较低概率的感知输出。
49.该计算机系统可以包括场景模糊化部件,该场景模糊化部件被配置为通过对至少一个现有场景进行模糊化来生成用于在模拟器中运行的至少一个模糊化场景。
50.为了对假阴性检测进行建模,概率感知不确定性分布可以提供成功检测对象中的可见对象的概率,该概率用于确定是否为该对象提供对象检测输出,当对象在模拟场景中处于主体的传感器视场内时对象是可见的,从而不能保证该可见对象的检测。
51.可以使用光线跟踪为一个或更多个外部对象计算感知地面实况。
52.外部对象中的至少一个可以是移动的活动者,计算机系统包括运行时堆栈的预测堆栈,该运行时堆栈的预测堆栈被配置为基于感知输出预测外部活动者的行为,规划器被配置为根据所预测的行为做出自主决策。
53.计算机系统可以被配置为在测试数据库中记录每个模拟场景的细节,其中,细节包括规划器做出的决策、那些决策所基于的感知输出以及模拟主体在执行那些决策时的行为。
54.本文的第二方面提供一种对机器人系统的运行时堆栈进行性能测试的计算机实现方法,该方法包括:
55.在模拟器中运行模拟场景,其中,模拟主体与一个或更多个外部对象交互,其中,运行时堆栈的规划器根据为模拟场景计算的感知输出的第一时间序列和第二时间序列为模拟场景做出自主决策,以及运行时堆栈的控制器生成一系列控制信号以使模拟主体随着模拟场景的进展而执行自主决策;
56.其中,第一时间序列的每个感知输出通过以下操作来计算:
57.基于模拟场景的当前状态计算感知地面实况;
58.将第一感知统计性能模型(pspm)应用于感知地面实况,从而确定概率感知不确定性分布;以及
59.从概率感知不确定性分布中采样感知输出;
60.其中,第一pspm用于对运行时堆栈的第一感知切片进行建模,并且基于从使用要被建模的感知切片生成的实际感知输出集合学习的参数集合来确定概率感知不确定性分布;
61.其中,使用对运行时堆栈的第二感知切片建模的第二pspm来计算感知输出的第二时间序列,第一pspm从感知切片的第一传感器模态和时间序列的数据中学习,以及第二pspm独立地从第二感知切片的第二传感器模态和第二时间序列的数据中学习。
62.本文的另一方面提供一种计算机程序,用于对一个或更多个计算机进行编程以实现本文的任何方法或功能。
附图说明
63.为了更好地理解本公开,并且为了示出可以如何实施本公开的实施例,请参考附图,其中:
64.图1示出了自动驾驶车辆运行时堆栈的示意性框图;
65.图2示出了真实世界驾驶场景的示例;
66.图3示出了使用真实感模拟的测试流水线;
67.图4示出了根据本公开的可替代的基于pspm的测试流水线;
68.图5示出了感知性能如何受到混杂因素的影响;
69.图6提供了基于pspm的安全测试的某些原则的高级概述;
70.图7示出了可用于训练pspm的感知误差数据集;
71.图7a示出了应用于图7的感知误差数据集的经过训练的pspm的结果;
72.图8示出了并入pspm的工程流水线;
73.图9示出了感知堆栈的示例;
74.图9a-图9c示出了可以使用一个或更多个pspm建模图9的感知堆栈的不同方式;
75.图10提供了可导致感知不确定性的因素的示意性概述;
76.图11示出了模拟图像数据的示例,某些形式的感知部件对模拟图像数据是高度敏感的;
77.图12和图13示出了环岛场景的鸟瞰图和驾驶员视图;
78.图14示意性地描绘了立体成像几何(stereo imaging geometry);
79.图15示出了位置分量的加性误差的示例时间序列;
80.图16示出了位置误差的滞后图;
81.图17示出了时间相关位置误差模型的图形表示;
82.图18示出了混杂因素方位角和距离的示例分格方案;
83.图19示出了位置误差增量的滞后图;
84.图20示出了x、y和z分量的位置误差增量的直方图;
85.图21示出了x、y和z分量的pdf拟合位置误差增量;
86.图22示出了(基于跟踪的单个对象)训练数据中误差增量分布的示例均值;
87.图23示出了真实感知误差与模拟误差的时间序列图;
88.图24示出了用于真实感知误差与模拟误差的滞后图;
89.图25以图形方式描绘了针对如通过multisurf relief分析确定的目标关联状态的特定(从左到右)中的某些混杂因素的相对重要性;
90.图26以图形方式描绘了针对如通过multisurf relief分析确定的目标转移的混杂因素(从左到右)的相对重要性;
91.图27示出了神经网络中的示例节点;
92.图28示出了卷积神经网络架构的高级概述;
93.图29示出了在训练和推断时pspm实现为神经网络;
94.图30示出了在输入层具有一个或更多个混杂因素输入的神经网络pspm;
95.图31示出了时间依赖神经网络架构的一个示例;
96.图32示出了实现为神经网络的“集合到集合”pspm;
97.图33a示意性地描绘了有助于卷积神经网络(cnn)中的处理的感知输出的空间编码;
98.图33b示意性地描绘了cnn pspm的训练阶段;
99.图33c示意性地描绘了在推断时经过训练的cnn pspm;
100.图33d示出了cnn pspm可以如何被架构为在输出张量中编码感知输出分布,从中可以对现实感知输出进行采样;以及
101.图34示出了可以如何配置pspm以对包括在线误差估计部件的感知切片进行建模。
具体实施方式
102.1.概述
103.以下描述中互换地使用了术语“pspm”和“prism”。
104.在为自动驾驶车辆制作安全案例时,在真实世界中执行所有必需的测试是不切实际的。然而,以这种高保真构建模拟使车辆的感知系统对真实数据和模拟数据等效地执行是尚未解决的问题。在本文中被称为“prism”的方法通过构建感知系统的代理模型(surrogate model)解决了该问题,其中,该感知系统包括传感器和解释由传感器捕获的传感器数据的(一个或更多个)感知部件两者。prism是在给定一些低保真场景表示(感知地面实况)的情况下可信的感知输出的分布。
105.在上述基础上扩展,确保无人驾驶技术可证明是安全的,需要在大量情况下测试无人驾驶技术。用真车进行这种测试既昂贵又耗时。在自然场景下,行驶的大多数里程将平安无事-2016年英国有136,621人因道路事故受伤,1,792人死亡,并且所有机动车辆行驶了3237亿英里,每行驶240万英里仅发生一次事故。模拟必须成为无人驾驶技术测试策略的一部分。模拟里程比真实里程要便宜得多,而且在模拟中增加每英里的危险数量比在真实世界中更容易且更安全。
106.生成现实感知输出(realistic perception outputs)的一种方法是经由对世界的高保真模拟,包括传感器测量。在这种方法中,产生逼真的传感器读数,传感器读数被馈送到汽车的软件来代替真实的传感器读数,例如,渲染为用于感知输入的图像的真实世界的现实孪生(realistic twin)。这种渲染如图11所示。汽车软件输出用于汽车致动器的控制信号,控制信号被馈送至物理模拟(physics simulation)。基于物理模拟的输出产生新的传感器读数,从而关闭循环(loop)。这种方法需要针对从具有挑战性的到未解决的范围内的任务产生准确的模型:
107.·
用当前技术对路面、车辆动力学和其他物理特性进行模拟是可能的,但没有被很好的理解。
108.·
对gps、imu和车轮编码(wheel-encoding)进行模拟是可能的,但是获得它们的
误差统计正确是重要的。
109.·
视觉外观(visual appearance)、相机镜头和图像传感器建模被合理地理解,但高保真渲染是缓慢的。
110.·
激光雷达建模(lidar modelling)类似于相机建模(camera modelling),但具有不同的材料反射特性。激光雷达的扫描特性是额外的难题。
111.·
用当前技术很难对雷达回波进行准确建模,因为难以对相关材料特性、对形状和多重反射(multiple reflections)的详细依赖性建模。
112.·
最糟糕的是,用于视觉对象检测(visual object detection)的最先进的神经网络对详细的图像统计极为敏感,并且构建引起与等效真实图像相同的网络行为的合成图像是尚未解决的问题。
113.上述传感器的不准确模型将影响模拟中感知模块的输出,导致可能不同的自我行为(ego behaviour)。行为中的此类差异限制了这些模拟在评估真实世界性能中的有用程度。此外,运行为验证自动驾驶车辆的安全行为所需的许多英里的真实感模拟(photorealistic simulation)是昂贵的。这是因为渲染真实感场景(photorealistic scenes)是需要gpu的缓慢的、计算密集的任务。高保真模拟既困难又昂贵,并且来自使用高保真模拟进行测试的结论不太可能推广到真实世界。
114.图1示出了通过分解的自动驾驶车辆堆栈100的数据流图。感知系统102接收来自世界的传感器读数并输出场景表示(scene representation)。(由附图标记104和106分别表示的)规划和预测系统(planning and prediction system)采用该场景表示并规划穿过场景的轨迹。控制系统108向世界输出控制信号,控制信号将使车辆跟随该轨迹。
115.感知系统102、规划和预测系统104、106及控制系统108使用明确定义的接口彼此通信。感知系统102使用原始传感器数据(raw sensor data)并将原始传感器数据处理成更抽象的场景表示。该表示包括动态对象位姿(dynamic object pose)、范围(extent)、运动(motion)和检测置信度(detection confidence)。规划和预测系统预测场景中其他主体(agent)的可能轨迹,并规划安全、合法且舒适的穿过场景的路径。控制系统使用来自规划和预测系统的所期望的轨迹,并输出用于致动器的控制信号。
116.在许多情况下,特别是在感知(perception)与规划(planning)之间的接口的情况下,这些内部接口比传感器读数更容易模拟。这些接口可用于被称为低保真模拟(low-fidelity simulation)的第二类模拟。可以仅模拟重建规划器(planner)所使用的抽象场景表示所必需的世界的那些方面,并将该抽象场景表示直接提供给规划器,从而使感知系统脱离循环。这虽然避免了高保真模拟的一些负担,但提出了新的挑战:复制感知系统的行为。众所周知,感知系统并不完美,并且感知系统的误差会以有意义的方式影响预测、规划和控制系统。因为模拟中测试的结果应推广到真实世界,所以必须能够模拟现实感知输出。
117.提出了一种使用被称为prism的模型来模拟现实感知输出的方法。prism是在给定一些低保真场景表示的情况下可信的感知输出(plausible perception outputs)的分布。概述了指导prism创建的数学框架,创建了原型(prototype),并记录了建模选择(modelling choices)。这样做表明了建模方法是合理的。
118.概况地说,在高保真模拟中,用模拟器(simulator)代替世界,将整个车辆堆栈视为黑匣子(black box)。在低保真模拟中,世界和感知系统102被代替(参见图4和下文中的
描述)。
119.图1示出了用于自动驾驶车辆(av)的运行时堆栈(runtime stack)100的高度示意性框图。运行时堆栈100被示为包括感知堆栈(perception stack)102、预测堆栈(prediction stack)104、规划器106和控制器108。
120.感知堆栈102从av的车载传感器系统(on-board sensor system)110接收传感器输出。
121.车载传感器系统110可采用不同的形式,但通常包括各种传感器,诸如,图像捕获设备(image capture device)(相机/光学传感器)、激光雷达(lidar)和/或雷达(radar)单元、卫星定位传感器(gps等)、运动传感器(加速度计、陀螺仪等)等,各种传感器共同提供丰富的传感器数据,从传感器数据中可以提取关于周围环境和该环境内的av与任意外部活动者(车辆、行人、骑自行车的人等)的状态的详细信息。
122.因此,传感器输出通常包括多个传感器模态的传感器数据,诸如,来自一个或更多个立体光学传感器(stereo optical sensor)、激光雷达、雷达等的立体图像。
123.感知堆栈102包括多个感知部件,感知部件协作以解释传感器输出,并由此向预测堆栈104提供感知输出。
124.来自感知堆栈102的感知输出被预测堆栈104使用,以预测外部活动者的未来行为。
125.由预测堆栈104计算的预测被提供给规划器106,规划器106使用预测来以考虑外部活动者的预测行为的方式做出将由av执行的自动驾驶决策。
126.控制器108通过向av的车载马达112提供合适的控制信号来执行由规划器106做出的决策。特别地,规划器106规划将由av采取的操纵(manoeuvres),以及控制器108生成控制信号以便执行这些操纵。
127.图2示出了可形成感知堆栈102的一部分的某些感知部件的示例,某些感知部件即3d对象检测器(3d object detector)204和卡尔曼滤波器(kalman filter)206。
128.深度估计器(depth estimator)202捕获立体图像对(stereo image pairs),并应用立体成像(诸如,半全局匹配(semi-global matching))以从立体图像对中提取深度估计。每个深度估计都是深度图(depth map)的形式,该深度图将深度值分配给从深度图导出的立体图像对的一个图像的像素(另一个图像用作参考)。深度估计器202包括立体光学传感器对(stereo pair of optical sensors)和立体处理部件(stereo processing component)(硬件和/或软件),立体光学传感器对和立体处理部件在图中未单独示出。根据本文使用的术语,深度估计器202的光学传感器和立体处理部件两者都被认为是车载传感器系统110(不是感知堆栈102)的一部分。深度图是提供给感知堆栈102的传感器输出的一种形式。
129.3d对象检测器204接收深度估计并用它们来估计av(自我车辆(ego vehicle))附近的外部活动者的位姿。以另外两个车辆的形式示出了两个这样的外部活动者。在此背景下的位姿表示6d位姿,即(x、v、z、俯仰(pitch)、翻滚(roll)、偏航(yaw)),表示每个外部活动者在3d空间中的位置和方向。
130.为了说明的目的,图2被高度简化。例如,3d对象检测器可由多个协作的感知部件形成,多个协作的感知部件共同对多个传感器模态的传感器输出进行操作。pspm在更复杂
的堆栈中的应用将在后面描述。目前,为了说明pspm的某些核心原理,考虑简化的示例,在该示例中,假设3d对象检测器对单模态(立体深度)的传感器输出进行操作。
131.在真实世界场景中,多个物理条件可以影响感知堆栈102的性能。如所指出的,被视为关于特定pspm的变量的物理条件被称为“混杂因素(confounder)”。这样允许考虑与特定感知切片(perception slice)在统计上相关的变量物理条件。
132.如上所述,一种模拟方法将是不仅尝试对图1的整个运行时堆栈100进行真实感模拟,而且还尝试对车载传感器系统110和马达112进行真实感模拟。这在图3中进行了说明。在这种场景中的挑战是传感器数据的模拟:某些类型的传感器数据(例如,雷达(radar))本质上很难很好地模拟,而其他类型的传感器数据(图像数据)相对更容易模拟,某些感知部件(诸如,cnn)对与实际传感器数据的即使是微小的偏差也高度敏感。另一个挑战是模拟传感器和运行复杂的感知部件(诸如,cnn)所需的大量计算资源。
133.例如,对于图3的布置,将需要模拟极高质量的深度图,并且需要在那些模拟的深度图上运行3d对象检测器204。在模拟期间,(与立体深度估计器202提供的真实深度图相比)模拟深度图中即使是极小的偏差也会显著影响3d对象检测器204的性能。
134.图4提供了基于pspm的模拟的高级示意概述图。在这种情况下,使用“无头(headless)”模拟器设置,无需创建模拟传感器数据(例如,模拟图像、深度图、激光雷达和/或雷达测量等),并且无需应用感知堆栈102(或至少无需完全应用感知堆栈102-参见下文)。而是,使用一个或更多个pspm以有效地计算现实感知输出,现实感知输出又馈送到运行时堆栈100的高级部件中,并如它们在运行时那样被处理。
135.据说pspm对“感知切片”进行建模,该“感知切片”可以是感知堆栈102的全部或一部分。感知切片可以是单个感知部件或多个协作感知部件。
136.在数学上,感知切片可以表示为函数f,其中:
137.e=f(x),
138.e是感知切片的感知输出,以及x是在感知部件上运行的传感器输出的集合。
139.在运行时的av上,e是通过将f应用于x来确定的,而x又由传感器给出。
140.映射到混杂空间(confounder space)c的pspm可以表示为函数p,其中:
141.p(e|t,c)表示概率不确定性分布(probabilistic uncertainty distribution),该概率不确定性分布提供在给定感知地面实况t和一个或更多个混杂因素c的集合(即,给定了由混杂空间c中的点c表示的可能的真实世界条件的特定集合)的情况下f计算感知输出e的概率。
142.例如,对于2d边界框(2d bounding box)检测:
143.·
f可以是cnn
144.·
x可以是rgb图像
145.·
t可以是可以使用光线跟踪(ray tracing)直接从模拟中计算出(无需模拟x,也无需应用f)的地面实况边界框,或者是针对多个地面实况对象加框的多个这样的边界的集合(集合到集合方法)
146.·
c可能是距离和/或天气等。
147.在图3的示例中,e表示由3d对象检测器204计算的一个或更多个6d位姿向量(pose vector),以及x表示由立体深度估计器202提供的从中导出e的深度图。
148.图5示出了如何使用pspm来模拟图3场景的现实感知输出。在这种情况下,感知切片是3d对象检测器204。
149.在当前背景下的“现实(realistic)”是指比感知地面实况更现实的感知输出。
150.提供pspm 500,其本质上将感知切片204建模为受立体深度估计器202的特性和物理环境两者影响的噪声“通道(channel)”。物理环境由混杂因素c的集合表征,在该示例中混杂因素是:照明、天气、遮挡(occlusion)和与每个外部活动者的距离。
151.为了应用pspm 500,可以直接从所考虑的模拟场景中计算出感知地面实况。例如,在模拟av(自我车辆)在其附近有许多外部活动者的模拟场景中,可以通过直接计算自我车辆的参照系中的每个外部活动者的6d位姿来确定6d位姿地面实况。
152.然后,pspm 500使用计算出的地面实况t来计算分布p(e|t,c)。继续上述示例,这将为每个模拟的外部活动者提供,在给定由相同混杂因素c为特征的真实世界场景中的感知地面实况t[“实际”6d位姿]的情况下,实际3d对象检测器204计算感知输出e[估计的外部活动者的3d位姿]的概率。
[0153]
计算出p(e|t,c)后,它可以用于对通过采样p(e|t,c)获得的一系列现实感知输出(pspm样本)运行多次模拟。根据p(e|t,c)的足够高概率的现实手段(realistic means)-注意,如果相对低概率的感知输出(异常值(outliers))仍然是现实的话),则可能非常期望测试它们。测试异常值的程度将取决于av需要满足的安全级别。
[0154]
在图5中,以示例的方式示出了三个现实感知输出e1、e2、e3。这些是从p(e|t,c)中采样的。
[0155]
一种方法是以有利于最可能的感知输出的方式例如,使用蒙特卡洛采样(monte carlo sampling)从p(e|t,c)中采样感知输出。从广义上讲,这将测试更多数量的最可能的感知输出和较少的不太可能的输出。
[0156]
然而,虽然这在一些背景下可能有用,但在其他背景下,故意测试更大数量的“异常值”(即,不太可能但仍然现实的感知输出)可能更有用,因为可能异常值更有可能导致或造成不安全行为。也就是说,p(e|t,c)可以以故意偏向异常值的方式进行采样,以故意使特定场景随着其进展而更具“挑战性”或“令人感兴趣”。这可以通过转换pspm的分布和从转换的分布中采样来实现。
[0157]
图6提供了构建pspm的过程的概述。收集大量真实传感器输出x,并用感知地面实况t进行注释。这与生成用于训练感知堆栈102的感知部件的训练数据的过程(由框602表示)完全相同-并且带注释的传感器输出的第一子集用于该提议。示出了经过训练的感知切片204,其(在真实世界中)运行时执行并用于构建pspm 500,该pspm 500将在模拟时对该感知切片204进行建模。
[0158]
继续图3的示例,真实传感器输出将是深度图,并且地面实况将是深度图中捕获的任何对象的地面实况6d位姿。这种带注释的数据不仅用于训练3d对象检测器204(本示例中的感知切片),而且还用于构建pspm 500,pspm 500在模拟期间对3d对象检测器204进行建模。
[0159]
框604表示pspm构建(训练),并且为此目的使用带注释的传感器输出的第二子集。每个传感器输出都额外注释了混杂因素c的集合,混杂因素c表征了其在真实世界中被捕获的物理条件。pspm需要能够适应的每个混杂因素c的集合都需要大量的传感器输出。对于完
全的“级别4”的自动驾驶,这意味着在整个odd中捕获和注释传感器输出。
[0160]
pspm 500可以采取参数分布的形式:
[0161]
dist(t,c;θ)
[0162]
其中,t和c是分布所依赖的变量,以及θ是学习参数的集合。
[0163]
参数θ学习如下:
[0164]
1)将经过训练的感知切片204应用于每个传感器输出x以计算相应的感知输出e;
[0165]
2)对于每个感知输出e,确定e与相应的地面实况t之间的偏差(误差)a;
[0166]
3)每个误差δ都与地面实况t以及与相应的传感器输出x有关的混杂因素c的集合相关联;
[0167]
4)考虑相关联的地面实况和变量混杂因素c,调整参数θ以使分布与误差δ拟合。
[0168]
如将显而易见的,各种已知形式的参数分布/模型可以在该背景下应用。因此不再赘述。
[0169]
更一般地,用于pspm训练的训练集由(来自手动、自动或半自动注释的)感知地面实况和由要建模的感知切片204生成的相应的实际感知输出组成。训练的目的是学习感知地面实况与捕获实际感知输出的统计的感知输出分布之间的映射。因此,对于给定地面实况t的情况下,从分布p(e|t)采样的感知输出将在统计上类似于用于训练的实际感知输出。
[0170]
作为一个示例,感知切片204可以被建模为具有零均值高斯噪声(gaussian noise)。然而,需要强调的是,本公开不限于该方面。pspm可以很好地采用更复杂的非高斯模型(non-gaussian models)的形式。作为一个示例,pspm可以采用隐马尔可夫模型的形式,这将允许明确地建模在不同时间的感知输出之间的时间依赖性。
[0171]
在高斯情况下,例如pspm 500可以被表征为:
[0172]
e=t ε
[0173]
ε~n(0,∑(c)),
[0174]
其中,n(0,∑(c))表示具有零均值和协方差∑(c)的高斯分布,协方差∑(c)根据混杂因素c而变化。在模拟期间,然后将从高斯采样噪声并将其添加到感知地面实况中。这将取决于高斯的方差,因此取决于适用于模拟场景的混杂因素。
[0175]
示例性pspm误差数据集
[0176]
图7示出了二维预测空间的原始误差图(raw error plot)的示例-例如,每个点都可对应于(x,y)坐标,该(x,y)坐标可由2d对象检测器估计。每个预测e由圆表示,并且每个地面实况t由星形表示。每个误差δ由相应的预测e与相应的地面实况t之间的线段表示(线段越长表示误差越大)。
[0177]
为了构建pspm,目的是将变量混杂因素c考虑在内,以在概率方面准确地捕获图7的数据点之间的误差关系(在此背景下,数据点是误差δ)的方式来调整参数分布。
[0178]
图7a示出了应用于图7的误差数据集的经过训练的pspm的结果。
[0179]
选择混杂因素
[0180]
关于并入哪个混杂因素的决策是通过观察驱动的:当可以看出特定的物理特性/条件对感知不确定性有物质影响时,这可能会触发将其作为混杂变量引入适用的pspm。应当仅引入统计上相关的混杂因素。
[0181]
混杂因素的一种方法是根据混杂因素划分误差数据集,并为数据集的每个划分训
练单独的模型。举一个非常简单的示例,两个混杂因素可以是“照明”和“天气”,每个混杂因素都可以采用二进制“好/差(good/poor)”值。在这种情况下,数据集可被分为分别具有(照明,天气)=(好,好)、(好,坏)、(坏,好)和(坏,坏)的四个子集,并且可以针对每个子集训练四个单独的模型。在这种情况下,pspm由四个模型组成,其中混杂因素变量c=(照明,天气)用作确定模型的选择的索引。
[0182]
工程流水线架构(engineering pipeline architecture)
[0183]
图8示出了并入pspm的工程流水线的高度示意性概述图。整个流水线涵盖了来自数据收集、注释和提取;感知部件的训练;pspm表征(pspm characterisation)和基于模拟的测试的所有内容。
[0184]
大量的传感器输出(诸如,立体图像、深度图、激光雷达测量和雷达测量)是使用各自都配备有上述类型的传感器系统110的一队车辆来收集的。这些是在av实践中将需要能够处理的环境和驾驶场景类型中收集的,例如,在期望部署av的目标城市区域中。收集车辆本身可以是av,也可以是配备有类似传感器系统的手动驾驶车辆。
[0185]
出于用地面实况来注释所捕获的传感器输出的目的,提供了地面实况流水线802。这包括用上述类型的感知地面实况对传感器输出进行注释。用感知地面实况注释的传感器输出被存储在带注释的地面实况数据库804中。下面描述进一步的细节。
[0186]
此外,由车队捕获的传感器输出还用于提取驾驶场景,然后该驾驶场景可以在模拟器中被重新创建。使用高级结构化场景描述语言(high-level structured scenario description language)来捕获驾驶场景并将驾驶场景存储在场景数据库806中。
[0187]
从车队捕获的传感器输出并不是可以从中提取驾驶场景的唯一信息来源。此外,cctv(closed circuit television,闭路电视)数据800被用作场景提取的基础,通常在城市环境中捕获的cctv数据,例如该城市环境示出挑战性的城市驾驶场景,诸如,复杂的环岛。这为具有挑战性的驾驶场景提供了丰富的来源,进而为安全测试提供了极好的基础。后端感知部件808的集合用于处理cctv数据800以协助从cctv数据800中提取驾驶场景的过程,驾驶场景进而也以场景描述语言(scenario description language)格式存储在场景数据库806中。
[0188]
场景描述语言的进一步细节以及从cctv数据和其他数据中提取场景的过程可以在英国的专利申请no.1816852.6中找到,该专利申请no.1816852.6通过引用整体并入本文。
[0189]
以场景描述语言格式捕获的驾驶场景是驾驶场景的高级描述。驾驶场景具有静态布局(诸如道路布局(车道、标记等)、建筑物、道路基础设施等)和动态元素两者。在图8的流水线中,静态布局在场景描述中被捕获为指向存储在地图数据库826中的hd(高清晰度)地图的指针(pointer)。hd地图本身可以从由av车队收集的带注释的传感器输出和/或从cctv导出。
[0190]
动态元素包括例如静态布局中活动者(例如,车辆、行人、骑自行车的人等)的位置和运动,并以场景描述语言被捕获。
[0191]
运行模拟(running simulation)
[0192]
测试套件编排部件(test suite orchestration component)810使用所捕获的驾驶场景来制定测试实例规范(test instance specifications)812,该测试实例规范812继
而可以在3d模拟器814中被运行为3d多体模拟(3d multibody simulations)。这些模拟的目的是使得能够导出准确的感知地面实况,然后应用pspm。因此,它们包含足够级别的3d几何细节,以便能够导出例如地面实况3d边界框(尺寸、外部活动者在自我车辆参照系中的6d位姿)、里程计(odometry)和自我定位输出(ego-localization outputs)等。但是,它们不是真实感模拟,因为不需要那种级别的细节。他们也不会尝试模拟诸如下雨、照明等条件,因为它们被建模为混杂因素c。
[0193]
为了提供更大的场景变化,提供了可以在上述意义上对场景进行模糊的场景“模糊器(fuzzer)”820。模糊场景意味着改变场景的一个或更多个变量以创建仍然现实的新场景。
[0194]
通常,这将涉及到将动态元素模糊到静态场景中,例如,改变外部活动者的运动、移除或添加外部活动者等。
[0195]
然而,静态布局也可能被模糊化,例如以改变道路的曲率、改变静态对象的位置、改变道路/车道标记等。
[0196]
图8的训练块602被示出为可以访问带注释的地面实况数据数据库804,如上所述,该带注释的地面实况数据数据库804用于训练运行时堆栈100的感知切片204。
[0197]
如上所述并如图8所示,感知切片204不一定是整个感知堆栈102。在该示例中,在最终融合部件(滤波器)的集合之前感知堆栈102是“切片”,最终融合部件(滤波器)的集合协作以融合来自感知堆栈102下方的感知输出。这些形成一个或更多个剩余预测切片205的一部分,一个或更多个剩余预测切片205不使用pspm建模而是应用于pspm样本。最终(未建模)预测切片205的输出直接馈送到预测堆栈104中。
[0198]
pspm被示出为存储在pspm数据库820中。
[0199]
运行模拟
[0200]
pspm采样编排部件(pspm sampling orchestration component)816使用3d模拟器814中的3d多体模拟来导出地面实况,地面实况进而形成用于对感知切片104pspm建模的一个或更多个pspm的输入并为每个模拟提供pspm样本818。pspm样本818被馈送到运行时堆栈100的剩余部分(即在该示例中pspm样本818被馈送到滤波器205的最终集合中)并用作规划和预测的基础,最后使控制器108生成控制信号,控制信号被提供给模拟av马达的集合。
[0201]
模拟马达未在图8中示出,但在图4中有示出,并用附图标记412表示。如图4所示,3d模拟器中的3d多体模拟被部分地由模拟马达驱动。这些确定了(在这种情况下是模拟的)主体如何在静态布局内移动(即,它们确定了主体的状态(在本文可以被称为模拟机器人状态)的变化)。反过来,主体的行为也可影响模拟的外部活动者在响应av的运动时的行为。随着3d模拟的进行,新的感知地面实况继续以迭代方式被导出并馈送到pspm500,直到模拟完成。
[0202]
每个完成的模拟被记录为存储在测试数据库822中的测试结果的集合。
[0203]
请注意,相同的场景可以运行多次,但不一定会产生相同的结果。这是由于pspm的概率性质:每次运行场景时,可能会从pspm获得不同的pspm样本。因此,通过在多个场合运行相同的模拟场景并观察例如模拟主体在该场景的每个实例中行为不同的程度(主体行为的巨大差异表明感知误差的影响是显著的)或者主体行为不安全的场景实例的比例,来获得大量信息。如果在相同的场景运行大量次数并且主体在每个场景中行为安全且非常相
似,则表明规划器106能够在该场景中在不确定条件下正确地规划。
[0204]
测试预言(test oracle)
[0205]
用作模拟基础的驾驶场景通常基于真实世界场景或模糊的真实世界场景。这确保了正在测试现实场景。但是请注意,这些通常是未涉及任何实际自动驾驶车辆的驾驶场景,即,至少在大多数情况下,测试的驾驶场景源自人类驾驶的现实生活实例。因此,无法知道哪些场景可能会导致失败。
[0206]
为此,提供了场景评估部件824(其在本文中被称为“测试预言(test oracle)”),场景评估部件824具有一旦模拟完成时评估模拟的av在该场景中的行为是否可接受的作用。测试预言824的输出可以包括简单的二进制(是/否)输出以标记av是否行为安全,或者它可以是更复杂的输出。例如,它可以包括风险分数(risk score)。
[0207]
为了做到这一点,测试预言824应用预定规则集合,本文可以将预定规则集合称为“数字高速公路代码(digital highway code,dhc)”。本质上,硬编码定义安全驾驶行为的规则。如果在不违反那些规则的情况下完成场景,则av被视为已经通过。然而,如果违反了那些规则中的任何一条,则av将被视为失败并被标记为需要进一步测试和分析的不安全行为实例。那些规则在本体论层次(ontological level)上编码,使得它们可应用于场景的本体描述(ontological description)。本体论(ontology)的概念在机器人领域是众所周知的,并且在本背景下,旨在以相同抽象级别表征驾驶场景和该场景中模拟av的行为,使得dhc规则可以被测试预言824应用。分析的结果可以量化主体相对于dhc的表现如何,例如,违反规则的程度(例如,规则可以指定规定与骑自行车的人始终保持一定距离,并且结果可以表明违反该规则的程度以及违反该规则的情况)。
[0208]
不安全行为的实例也可以被标记为需要“脱离(disengagement)”的实例。例如,这可以是运行时堆栈100内的故障转移机制(failover mechanism)被激活,以防止撞毁或一些其他关键故障(就像在真实世界中的那个场景中那样)的情况。
[0209]
本技术不限于检测不安全行为。可以根据其他度量(例如,舒适度、进展等)来评估行为。
[0210]
示例感知堆栈
[0211]
图9示出了示例感知堆栈的一部分的示意框图。3d对象检测器被示出并由附图标记204表示,3d对象检测器又被示出为包括2d对象检测器902、2d跟踪器滤波器(2d tracker filter)904、尺寸估计部件(size estimation component)906、方向估计部件(orientation estimation component)908、深度分割部件(depth segmentation component)910和模板拟合部件(template fitting component)912。这表示上面提到的并且在较早附图中示出的3d对象检测器204的一个示例架构。
[0212]
2d对象检测器接收每个所捕获的立体图像对的一个图像(在该示例中的右侧图像r),并将2d对象检测应用于该图像。输出是在该图像中检测到的每个对象的2d边界框。这提供了每个对象在图像平面中的2d(x,y)位置和指示该对象到图像平面中的投影的大小的边界框。2d跟踪滤波器904接收2d边界框输出并对它们应用滤波以完善2d边界框估计。例如,基于对象行为模型(object behaviour model),该滤波可考虑先前的2d检测到的边界框和检测到的对象的预期行为。滤波后的2d边界框和包含在其中的原始图像的图像数据之后用于许多不同的目的。2d对象检测器902可以采用经过训练的cnn的形式。
[0213]
深度分割部件910接收滤波后的2d边界框,并且还接收由立体估计器202从原始立体图像对所提取的深度图。它使用滤波后的2d框来分离属于深度图内的每个对象的深度点。这是深度分割的形式。
[0214]
尺寸估计部件906也接收滤波后的2d边界框,并使用它们来基于包含在2d边界框内的右侧图像的图像数据以估计每个所检测到的对象的3d尺寸。
[0215]
方向估计部件908类似地接收滤波后的2d边界框,并使用它们以使用包含在应用的2d边界框内的右侧图像的图像数据来确定每个所检测到的对象的3d方向。尺寸估计部件906和方向估计部件908可以采用经过训练的cnn的形式。
[0216]
针对每个检测到的对象,3d模板拟合部件912从深度分割部件910接收该对象的分离的深度点、从尺寸估计部件906接收该对象的3d尺寸、以及从方向部件908接收该检测到的对象的3d方向。3d模板拟合部件902使用那三条信息,来将模板以3d边界框的形式拟合到属于该对象的深度点。3d边界框的3d尺寸和3d方向两者分别从尺寸和方向估计部件906、908获知,并且边界框必须被拟合到的点也是已知的。因此,这只是寻找3d边界框的最佳3d位置的情况。一旦为每个对象完成此操作,就可以知道每个所检测到的对象在给定时刻的3d尺寸和6d位姿(3d位置和3d方向)。
[0217]
示出了从3d模板拟合部件912到最终滤波器205的输入的输出。此外,最终滤波器205被示为具有分别从激光雷达和雷达接收感知输出的输入。激光雷达和雷达感知部件被示出并分别由附图标记914和916表示。这些中的每一个都提供可以与来自3d对象检测器204的感知输出(诸如,6d位姿)融合的感知输出。这种融合发生在最终滤波器205中,并且最终滤波器的输出被示出为连接到预测堆栈104的输入。例如,这可以是考虑了所有这些立体、激光雷达和雷达测量的滤波后的(完善后的)6d位姿。它还可以考虑如在3d对象的预期行为模型中捕获的3d空间中的预期对象行为。
[0218]
感知堆栈的切片
[0219]
图9a示出了如何将图9的感知堆栈“切片”的一个示例,即建模为pspm。感知堆栈102被认为在由pspm建模的最终感知部件之后被切片,并且该感知部件的感知输出可以被称为用于pspm的“最终输出”。将在那些最终输出上定义该pspm的分布,即在p(e|t,c)中的e对应于感知堆栈102在其后被切片的部件的那些最终输出。根据所有感知部件和传感器对最终输出e中的不确定性的影响,由该pspm对所有感知部件和为该部件(直接或间接)提供输入的传感器进行建模(并且被称为“包裹”在该pspm中)。
[0220]
在这种情况下,为每个传感器模态提供单个pspm,即,一个用于立体成像、第二个用于lidar以及第三个用于radar。三个pspm分别由附图标记500a、500b和500c表示。为了构建第一pspm 500a,感知堆栈102在3d模板拟合部件912之后被切片,因此,第一pspm 500a的分布被定义在模板拟合部件912的感知输出上。馈送至3d模板拟合部件912的所有感知部件和传感器被包裹在第一pspm 500a中。第二和第三pspm 914、916分别在激光雷达和雷达感知部件914、916之后被切片。
[0221]
最终滤波器205不被建模为pspm,而是应用于在测试期间从三个pspm 500a、500b和500c获得的pspm样本。
[0222]
图9b示出了第二个示例切片,其中,使用单个pspm 500d对所有三个传感器模态进行建模。在这种情况下,在所有三个传感器模态上定义分布p(e|t,c),即,e=(e
stereo
,elidarelidar
)。因此,每个pspm样本将包括用于所有三个传感器模态的现实感知输出。在此示例中,最终滤波器仍未被建模为pspm,并将在测试时应用于使用单个pspm 500d获得的采样的pspm。
[0223]
图9c示出了第三个示例切片,其中,所有三个传感器模态连同最终滤波器205被建模为单个pspm 500e。在这种情况下,在最终滤波器205的滤波后的感知输出上定义分布p(e|t,c)。在测试期间,pspm 500e将应用于从模拟导出的地面实况,并且产生的pspm样本将被直接馈送到预测堆栈104。
[0224]
切片考虑因素
[0225]
当决定将感知堆栈“切片”在何处时的因素是将所需的地面实况的复杂性(所需的地面实况将对应于堆栈被切片后的感知部件):对于pspm方法的潜在动机是拥有相对容易测量的地面实况。感知堆栈102的最低部分直接对传感器数据进行操作,但是规划和预测所需的信息级别要高得多。在pspm方法中,想法是“绕过”较低级别的细节,同时在测试期间仍然为预测和规划提供具有统计上代表性的感知输出。从广义上讲,感知堆栈102被切片的越高,地面实况通常越简单。
[0226]
另一考虑因素是感知部件本身的复杂性,因为任何未包裹在pspm中的感知部件都必须在测试期间执行。
[0227]
通常预期的是,切片将总是发生在感知堆栈中的cnn之后,从而避免模拟对cnn的输入的需要并避免在测试时使用运行cnn的计算资源。
[0228]
在某种意义上,将尽可能多的感知堆栈102包裹到单个pspm中是有益的。在极端情况下,这意味着整个感知堆栈102被建模为单个pspm。这样做的益处是能够对不同传感器和/或感知部件之间的任何相关性进行建模,而无需了解这些相关性。然而,随着越来越多的感知堆栈102被包裹在单个pspm中,这会显著增加被建模的系统的复杂性。
[0229]
对于图9a,每个单独的pspm 500a、500b、500c可以独立于单个传感器模态的数据被构建。这具有调制的益处-现有的pspm可以被重新整理以测试感知切片204的不同配置而无需重新训练。最后,最佳pspm架构将取决于背景。
[0230]
特别是在图9c的情况下,可能还需要使用时间依赖模型(time-dependent model)以充分捕获对由最终滤波器205引入的先前测量/感知输出的依赖性。例如,图9c的pspm 500e可以采用隐马尔可夫模型的形式,以捕获额外的时间依赖程度。更一般地,此类时间依赖性的pspm可用于上述任何一项。这是时间依赖模型有用的背景,但在许多情况下,时间依赖性的明确建模可能有用。
[0231]
对于图9a和图9b,在最终滤波器205之前切断具有以下益处:可能不需要引入明确的时间依赖性,即,可以使用pspm的形式,pspm的形式对先前从pspm获取的pspm样本没有任何明确的依赖性。
[0232]
pspm的示例
[0233]
以上描述主要集中于动态对象,但pspm也可以以相同的方式用于静态场景检测器(scene detectors)、分类器(classifiers)和其他静态场景感知部件(例如,交通灯检测器(traffic light detector)、车道偏移校正(lane offset correction)等)。
[0234]
实际上,可以为感知堆栈102的任何部分构建pspm,包括:
[0235]-里程计(odometry),例如:
[0236]
o imu,
[0237]
o视觉里程计(visual-odometry),
[0238]
o激光雷达里程计(lidar-odometry),
[0239]
o雷达里程计(radar-odometry),
[0240]
o车轮编码器(wheel encoders);
[0241]-(自我-)定位,例如:
[0242]
o基于视觉的定位,
[0243]
o gps定位(或更普遍的卫星定位)。
[0244]“里程计”指的是局部相对运动的测量,而“定位(localisation)”指的是地图上全球位置(global position)的测量。
[0245]
pspm可以以完全相同的方式构建,以使用合适的感知地面实况对此类感知部件的感知输出进行建模。
[0246]
这些允许以与检测误差、分类误差等相同的方式将现实的里程计(realistic odometry)和定位误差引入到模拟场景中。
[0247]
地面实况流水线
[0248]
如上所述,地面实况流水线802中的注释的生成可以是手动、自动或半自动注释。
[0249]
自动或半自动地面实况注释可以使用在运行时av通常不可用(或至少在所有时间都不可用)的高质量的传感器数据。实际上,这可以提供一种测试是否需要此类部件的方法。
[0250]
自动或半自动注释可以使用离线处理(offline processing)来获得更准确的感知输出,该感知输出可以用作pspm构建的地面实况。例如,为了获得用于定位或里程计部件的感知地面实况,可以使用诸如光束平差法(bundle adjustment)等离线处理以高精度重建车辆的路径,这进而可以用作地面实况来测量和建模av的在线处理的准确性。由于计算资源限制或因为使用的算法固有地是非实时的,这种离线处理在运行时在av本身上可能是不可行的。
[0251]
混杂因素的示例
[0252]
图10示出了可能导致感知输出中的不确定性的各种因素(即潜在感知误差的各种来源)的高度概述。这包括可作为pspm的变量并入在内的混杂因素c的进一步示例:
[0253]-遮挡
[0254]-照明/当日时间
[0255]-天气
[0256]-季节
[0257]-到对象的(线性和/或角度)距离
[0258]-对象的(线性和/或角度)速度
[0259]-在传感器视场中的位置(例如,与图像中心的角度)
[0260]-其他对象特性,诸如,反射率,或其对不同信号和/或频率(红外、超声等)的响应的其他方面
[0261]
可能的混杂因素的其他示例包括场景的地图(指示环境结构(environmental structure))和主体间变量(inter-agent variables),诸如,“业务(business)”(场景中主
体的数量或密度的测量)、主体之间的距离及主体类型。
[0262]
每个都可以在混杂空间(confounder space)c的一个或更多个可变分量(维度)中进行数字地或分类地表征。
[0263]
但是,请注意,混杂因素可以是表示关于可能与感知误差相关的物理世界的某些事物的任何变量。这不一定必须是直接可测量的物理量,如速度、遮挡等。例如,与另一活动者相关的混杂因素的另一示例可能是“意图(intent)”(例如,骑自行车的人在特定时刻在即将到来的转弯处是意图左转还是继续向前直行,这可以通过向前看骑自行车的人实际采取的动作在给定时间的真实世界数据来确定)。在一种意义上,诸如意图之类的变量是潜在变量(latent variable)或未观察到的变量(unobserved variable),在某种意义上,在特定时刻(在这种情况下是在骑自行车的人采取明确动作之前),意图不能直接使用感知系统102测得,而只能通过其他可测量的量进行推断;关于混杂因素的要点在于,不必知道或测量那些其他可测量的物理量以便对意图对混杂因素误差的影响进行建模。例如,与具有“继续直行”意图的骑自行车的人相比,具有“左转”意图的骑自行车的人相关的感知误差可能在统计上显著增加,这可能是由于要左转的骑自行车的人的行为的多种、未知且潜在复杂的行为变化引起的,这意味着实际上,感知系统对它们的感知更差。通过在误差模型(error model)中引入“意图”变量作为混杂因素,无需尝试确定意图的哪些可观察的物理表现与感知误差相关-只要“意图”地面实况可以(例如,基于对骑自行车的人最后采取的动作的后见之明)以与模拟一致的方式(在这种情况下,模拟骑自行车的人的意图是已知的,以便随着场景的发展模拟他们的行为)系统地分配给训练数据,然后,这样的数据可用于为不同意图构建合适的行为模型以便模拟该行为、以及依赖于意图的感知误差模型,(如果有的话)而不必确定意图的哪些物理表现实际上与感知误差相关。换句话说,为了建模意图对感知误差的影响,没有必要理解为什么意图与感知误差相关,因为意图本身可以被建模为感知混杂因素(而不是试图将意图的可观察表现形式(observable manifestations)建模为混杂因素)。
[0264]
低级别误差(low level erros)
[0265]
低级别传感器误差的示例包括:
[0266]-注册误差(registration errors)
[0267]-校准误差(calibration errors)
[0268]-传感器限制(sensor limitations)
[0269]
此类误差在模拟中并未明确地建模,但它们的影响包裹在用于对解释适用传感器数据的感知切片进行建模的pspm中。也就是说,这些影响将被编码在表征pspm的参数θ中。例如,对于高斯型(gaussian-type)pspm,此类误差会导致表示更大的不确定性的较大的协方差。
[0270]
高级别感知误差(high-level perception errors)
[0271]
感知流水线(perception pipeline)中可能会发生其他误差,例如:
[0272]-跟踪误差(tracking errors)
[0273]-分类误差(classification errors)
[0274]-动态对象检测失败(dynamic object detection failures)
[0275]-固定场景检测失败(fixed scene detection failures)
distribution)。
[0291]
·
由于世界状态(world state)随时间平滑地变化,因此,采样的感知输出也应随时间平滑地变化。由于世界状态仅被部分地观察到,因此,实现这一点的适当方式是使概率分布取决于观察到的世界状态和感知输出的历史。
[0292]
·
模拟器(genie)负责在运行时生成世界的表示。genie的输出是动态对象的6d位姿和范围、以及一些如道路几何形状和天气条件等的其他信息。
[0293]
·
对于真实世界训练数据,该世界表示(world representation)从注释获得。
[0294]
数学陈述
[0295]
2.2.1前言(preliminaries)
[0296]
对于任意集合s,令s的历史的集合为,令s的历史的集合为元素t,h∈histories(s)由t(当前时间)和h(在过去的任意时间返回s的元素的函数)组成。符号表示x的模拟等价物。
[0297]
感知系统是随机函数f:histories(world)

histories(perception)。通常,f的形式将为:
[0298]
f=perceiveοsense,
[0299]
sense:histories(world)

histories(sensorreading),
[0300]
perceive:histories(sensorreading)

histories(perception).(1)
[0301]
目标是模拟一些f。世界状态可被分解为特性的集合observedworld和其他所有事物的集合unobservedworld(相机图像的精确像素值,每个表面上每个点的温度),使得在world和observedworld
×
unobservedworld之间存在双射,特性的集合observedworld可以可靠测得(这可能包括场景中每个对象的网格(meshes)和纹理、光源的位置、材料密度等)。在传统的真实感模拟方法中,模拟f相当于找到一些随机函数histories(observedworld)

histories(sensorreading),其可以与perceive组合形成
[0302][0303][0304]
令observe:world

observedworld成为将世界状态映射到它们观察到的对应物(counterparts)上的函数。请注意,此函数不是一对一的:将存在映射到单个观察到的世界状态的许多世界状态。f的准确且有用的模拟对于所有历史(t,h)∈histories(world)将具有
[0305][0306]
其中,map:((s

t)
×
histories(s))

histories(t)在历史上映射函数。
[0307]
那么必须得出结论,最佳真实感模拟具有使得
[0308][0309]
由于通过。的结合性、组合等式1、2和4给出了等式3,所以sense预测了传感器读数的历史、历史(sensorreading)的联合分布,以及不同传感器读数的相关性使得对世界未观
察到的特性的依赖能够更有效地建模。因此,在计算的中应观察到类似的相关性。
[0310]
因为sensorreading具有高维度,并且sense是随机函数(因为它非常依赖于世界的未观察到的特性),所以找到使得等式4甚至近似成立是非常重要的。因此,可直接找到
[0311]
2.2.2创建代理模型(surrogate model)
[0312]
代理模型的创建可以表征为随机函数估计任务。令s 为s的元素的有限序列集。令为具有元素si的长度为n的序列。得到传感器读数序列的数据集
[0313][0314]
其中,每个i
ij
∈sensorreading是运行i中的时间t
ij
的传感器读数,以及mi是特定运行中的时间戳的数量。使用从传感器读数恢复观察到的场景参数的函数annotate:sensorreading

observedworld,构建新的数据集。
[0315]
x
ij
=annotate(i
ij
),y
ij
=perceive(i
ij
).
[0316]
然后,prism的任务是估计来自中的样本的分布中的样本的分布的实现可以通过从该分布中抽取样本来获得。
[0317]
对先前采样的堆栈输出的依赖包括在内,因为y的分布有意义地依赖于未观察到的世界,并且未观察到的世界会随着时间平滑地变化。正如第2.2.1节所讨论的,这种对未观察到的世界的依赖意味着y将以难以仅根据对依赖建模的方式随着时间的推移平滑地变化。在第4.2.3节中为感知系统102探索了堆栈输出的这种与时间相关的性质,其中发现了时间上的强相关性。
[0318]
来自学习的prism分布的样本给出了以低保真场景表示和先前样本的历史为条件的合理的感知输出。这些因素是生成模型(generative model)中的自变量(independent variables),因变量(dependent variable)是感知到的场景。有意义地影响因变量分布的自变量在本文中被称为confounders。构建prism模型的过程的一部分是识别要包含在模型中的相关混杂因素、以及应如何组合这些混杂因素。第3.2节探讨了一种用于识别相关混杂因素的方法。
[0319]
2.2.3动态对象问题
[0320]
提出了感知系统的具体示例-使用rgbd图像检测场景中的动态对象的系统。“动态对象”是由方向边界框(oriented bounding box)(6d位姿和范围)描述的汽车、卡车、骑自行车的行人或其他道路使用者。观察到的世界就是这样的动态对象的集合。在这种设定下,
[0321][0322][0323][0324]
sensorreading=image=[0,1]w×h×4,
[0325]
其中,是s的有限子集的集合,1type表示对象类型(汽车(car)、货车(van)、有轨电车(tram)、行人(pedestrian)),spin(3)是单位四元数(unit quaternions)的集合,以及info是其元素描述动态对象的附加特性的任意集合,例如,对象在更靠近相机的场景中被其他(可能是静态的)对象遮挡的程度,动态对象在表征感知系统的行为时是有用的。
[0326]
此示例甚至进一步简化了动态对象问题,仅选择对给定observedworld的动态对象的位置进行建模。这包括为可观察对象不被感知(假阴性)的可能性拟合模型。
[0327]
在第4.2.8节中示出了,假阴性是感知系统102所犯的比假阳性(虚假动态对象检测(spurious dynamic object detections))更常见的错误。
[0328]
为简单起见,以下描述仅考虑3d空间中的危险目标(poison),并省略对方向、范围、对象类型或其他可能的感知输出的讨论。然而,原理同样可应用于此类其他感知输出。
[0329]
3方法
[0330]
3.1数据
[0331]
呈现了特定驾驶场景,该特定驾驶场景的数据已在类似条件下被多次记录。本文以示例的方式提及的场景是位于测试路线上的位于伦敦东南的环岛。图12中可以看到该环岛的背景和车辆通过的路径,其中从如图13所示的相机观察。
[0332][0333]
通过将prism训练数据限制在类似气候条件下在相同环岛上运行,天气和阳光作为感知性能的混杂因素的影响被最小化。在类似收集的数据上测试的prism的潜在性能同样被最大化。例如,通过估计在环岛数据上训练的prism如何在高速公路场景中执行,可以在域外数据(out-of-domain data)上对prism的性能进行测试。
[0334]
3.1.1数据集生成
[0335]
prism训练需要包含足够信息的数据集来学习感知误差的分布。为简单起见,本节仅考虑由感知系统102在预测动态对象在观察动态对象的相机帧中的中心位置时引入的误差。为了学习此类误差,需要地面实况中心和感知中心估计。
[0336]
地面实况中心位置是根据环岛的记录视频序列的每一帧中存在的人工注释3d边界框(human-annotated 3d bounding boxes)估计的,并应用于场景中的所有动态对象。使用地面实况工具套件(tooling suite)将这些边界框拟合到场景。地面实况工具套件将相机图像、立体深度点云(stereo depth pointclouds)和激光雷达点云(lidar pointclouds)组合到场景的3d表示中,以最大限度地提高注释准确度。假设注释准确度足够好,可以用作地面实况。
[0337]
图9示出了从所记录的相机图像中获取堆栈预测对象的过程。需要注意的是,该流水线是无状态的,每对相机帧被独立地处理。这迫使在感知误差数据中发现的任何时间相关性都归因于检测器在密切相关的输入上的行为,而不是检测算法的内部状态。
[0338]
一般来说,由图像时间戳索引的对象预测的集合与来自地面实况工具套件的地面实况数据的类似索引的集合相结合,对于prism训练数据是足够的。但是,本节中考虑的所有模型都在数据上进行训练,该数据已通过额外处理步骤以生成地面实况与预测对象之间的关联。这限制了供选择的模型的空间,但通过将拟合任务分为以下几部分来对其进行简化:拟合位置误差的模型;拟合用于生成假阴性的模型;拟合用于生成假阳性的模型。使用的关联算法在每个帧上独立地运行。对于每个时间戳,使用交并比(intersection over union,iou)比较堆栈预测集合和地面实况对象集合,其中,具有最高置信度分数(confidence score)(由感知堆栈102生成的指示预测可能多好的测量)的预测对象被首先考虑。对于每个预测对象,具有最高iou的地面实况对象与其相关联,形成用于学习误差分布的对。对于iou分数小于0.5(可调阈值)的对不会形成任何关联。在所有的预测对象已经被考虑关联之后,将保留未关联的地面实况对象的集合和未关联的预测对象的集合。未关联的地面实况对象被存储为假阴性示例,而未关联的预测对象被存储为假阳性示例。
[0339]
稍后会考虑不需要此类关联的“集合到集合”模型。
[0340]
3.1.2训练数据的内容
[0341]
上一节描述了如何产生prism训练数据并将其分为三个来源:关联、假阴性、假阳性。表1指定了每个来源中存在的数据,并提供以下定义:
[0342]
centre_x,centre_y,centre_z:地面实况3d框的中心的x、y、z坐标。
[0343]
orientation_x,orientation_y,orientation_z:从相机框架(正面立体右侧)到地面实况3d框框架(box frame)的旋转的轴角表示的x、y、z分量。
[0344]
height,width,length:地面实况3d框沿着在3d框的坐标系中z、y、x轴的范围。
[0345]
manual_visibility:由人工注释器应用的标签,用于标注地面实况对象属于四个可见性类别中的哪一个。类别是:完全遮挡(fully-occluded,100%)、大部分遮挡(largely-occluded,80-99%)、有些遮挡(somewhat-occluded,1-79%)和完全可见(fully-visible,0%)。
[0346]
occluded:地面实况2d边界框与更靠近相机的其他地面实况对象的2d边界框重叠的区域的部分。
[0347]
occluded_category:manual_visibility和occluded的组合,其可以被认为是两者中的最大值。以这种方式组合manual_visibility和occluded以最大化正确的遮挡标签(occlusion labels)的数量是有用的。要看到这一点,请注意由场景的静态部分(灌木、树木、交通信号灯)遮挡的对象的occluded分数将为o,但将具有由人工注释器正确设置的manual_visibility。仅被其他地面实况对象遮挡的对象不具有由人工注释器设置的manual_visibility字段,但将具有正确的occluded字段。这两种情况可以通过取这两个值中的最大值来处理。即使采用这种逻辑,即使背景对象中的一些是可见的,地面实况对象的2d边界框也有可能完全掩盖其后面的对象的2d边界框。这将生成可以被感知系统检测到的一些fully-occluded的情况。
[0348]
truncated:位于传感器椎体(sensor frustum)之外的地面实况3d框的八个顶点
的部分。
[0349]
type:当附加到地面实况对象(假阴性,关联对的地面实况部分)时,这是人工注释的对象类型,诸如car或tram。当附加到预测对象(假阳性,关联对的预测部分)时,这是感知堆栈对对象类型的最佳猜测,对象类型仅限于pedestrian或vehicle。
[0350]
除上述外,本节还将提及以下导出量:
[0351]
distance:对象中心到相机的距离,被计算为相机框架中对象中心位置的欧几里得范数(euclidean norm)。
[0352]
azimuth:连接相机和对象中心的光线在相机的y=0平面上的投影与相机的正z轴之间形成的角度。极性(polarity)由围绕相机y轴的旋转方向定义。由于无法观察到相机后面的对象,所以范围(range)限制在[-π/2,π/2]。
[0353]
表1
[0354][0355]
数据集的构成将在稍后的节中在相关处详细讨论。以下呈现数据的高级别摘要。
[0356]
·
环岛场景的15次遍历,跨越大约5分钟的总镜头。
[0357]
·
8600个独特的帧,帧中包含96k个对相机可见的地面实况对象实例。
[0358]
·
在这96k个实例中:77%是汽车;14%是货车;6%是行人;3%属于较小的群体。
[0359]
·
在这96k个实例中:29%是完全可见的;43%有点被遮挡;28%大部分被遮挡。
[0360]
在表1中,三个生成的prism数据源中的每一个中都存在特定数据元素。x表示该列存在于给定的数据源中。gt=地面实况,fn=假阴性,fp=假阳性。这些中的每一个实际上都是三个独立的变量(例如,center_x、center_y、center_z),但为了易读性,这里进行了“压缩”。*在带星号的情况下,类型的内容可以是“车辆(vehicle)”或“行人(pedestrian)”,这些是由五种感知堆栈预测的唯一类别。在没有星号的情况下,存在更多的类(诸如,“卡车(lorry)”和“货车(van)”),这些是地面实况数据中报告的所有类。
[0361]
3.1.3训练和测试数据
[0362]
对于本文描述的所有建模实验,环岛数据集被分成大致相等的两半以形成训练集和测试集。不执行超参数优化(hyperparameter optimisation),因此,不需要验证集(validation set)。
[0363]
3.2识别相关的混杂因素
[0364]
prism模型可能会考虑许多混杂因素。不是针对混杂因素的每个可能的组合优化模型,优选地在已知相关的混杂因素的有限集合上执行这种优化。
[0365]
为了识别相关的混杂因素,使用基于relief的算法(relief-based algorithm)。
算法1中给出了一般的基于relief的算法的概要。relief算法产生范围[-1,1]中的特征权重阵列,其中,大于0的权重表示特征是相关的,因为特征变化倾向于改变目标变量。在实践中,一些特征偶然将具有大于0的权重,只选择具有大于一些用户定义的截止值0<τ<1的权重的特征。
[0366][0367]
该算法具有以下期望的特性:
[0368]
·
它对特征和目标变量之间的非线性关系敏感。其他特征选择方法对这些种类的关系不敏感,其他特征选择方法诸如朴素主成分分析(naive principal component analysis)或pearson相关性的比较。并非所有不相关的事物都是独立的。
[0369]
·
它对特征之间的交互敏感。
[0370]
·
它是保守的。它会偶然地包含不相关或多余的混杂因素,而不是偶然地排除相关的混杂因素。
[0371]
重要的是要注意此方法的以下注意事项:
[0372]
·
它识别了数据中的相关性,但没有深入了解目标变量如何或为什么与正在调查的混杂因素相关。
[0373]
·
结果依赖于混杂变量的参数化。
[0374]
relief算法有很多扩展。这里使用称为multisurf的扩展。发现multisurf在广泛的问题类型中表现良好,并且对三个或更多特征的交互比其他方法更敏感。该实现是从scikit-rebate中使用的,scikit-rebate是开源python库,开源python库提供了许多基于relief的算法的实现,基于relief的算法被扩展以涵盖标量特征(scalar features)和目标变量。
[0375]
在实验中,使用其中,n是数据集的大小,以及α=0.2是期望的假发现率(false discovery rate)。根据切比雪夫不等式(chebyshev

s inequality),我们可以说接受不相关的混杂因素作为相关的概率小于α。
[0376]
基于relief的方法是识别可能的混杂因素及其相对重要性的有用工具。然而,并
非所有影响感知系统的误差特性的特征都会在带注释的训练数据中被捕获。检查模型失败以假设新特征来标记为混杂因素的手动过程是必要的。
[0377]
4模型
[0378]
4.1启发式模型(heuristicmodel)
[0379]
相机坐标表示图像中的点在像素空间中的位置。在双目视觉(binocularvision)中,两幅图像中的点的相机坐标是可用的。这允许重建3d笛卡尔世界中的点的位置。点p在3d空间中的相机坐标由下式给出:
[0380][0381][0382][0383]
其中,(u1,v1),(u2,v2)分别是p在左相机和右相机中的图像像素坐标,(x
p
,y
p
,z
p
)是p相对于左相机的3d世界坐标,b是相机基线,以及f是相机的焦距。如图14所示。将视差(disparity)d定义为:
[0384][0385]
p的3d世界坐标可以写成:
[0386][0387][0388][0389]
通过在相机坐标中施加分布并使用上述关系将其传播到3d坐标来获得启发式模型。此分布同样可用于对象中心或对象范围。当图像被离散为像素时,该模型允许考虑相机的物理传感器不确定性。该模型由下式给出:
[0390]
p(xs,ys,zs|xg,yg,zg)=∫∫∫p(xs,ys,zs|u1,v,d)p(u1,v,d|xg,yg,zg)du1dvdd,(12)
[0391]
其中,(xg,yg,zg)是地面实况点的坐标,以及(xs,ys,zs)是堆栈预测的坐标。给定世界坐标的情况下,相机坐标上的概率分布是:
[0392]
p(u1,v,d|xg,yg,zg)=p(u1|xg,yg,zg)p(v|xg,yg,zg)p(d|xg,yg,zg),(13)
[0393]
其中,假设在每个相机坐标中的分布独立性:
[0394][0395]
[0396][0397]
其中,σ是常数,是正态分布,以及lognormal是对数正态分布(log-normaldistribution),选择lognormal是因为它仅支持正实数。这定义了以3d空间中的点的相机坐标为中心的正态分布概率密度。基于数学简单性选择正态分布。如果只考虑离散化误差(discretisationerror),均匀分布可能更合适。然而,其他误差很可能会导致立体视觉的不确定性,因此正态分布的扩展尾部(extendedtails)对于在实践中对此类现象进行建模是有用的。对于正面立体相机,可通过最大似然估计(maximumlikelihoodestimation)确定α为0.7。p(xs,ys,zs|u1,v,d)由以从等式9-等式11获得的xs,ys和zs的点值为中心的dirac分布给出。
[0398]
通过形成等式12的分段常数对角多元正态分布逼近(piecewiseconstantdiagonalmultivariatenormallydistributedapproximation)、通过用蒙特卡罗模拟(montecarlosimulation)求解积分并使用采样值的均值和方差针对不同的xg,yg和zg值估算p(xs,ys,zs|xg,yg,zg),来获得运行时模型。
[0399]
可以通过考虑更准确地近似等式12中的条件分布、或通过对相机参数f和b(在模型中设置为它们的测量值)中的不确定性进行建模,来改进该模型。如何扩展该模型以包括时间依赖性是一个悬而未决的问题。
[0400]
4.2prism
[0401]
下面描述的是建立由数据分析引导的感知堆栈/子堆栈204的合理代理模型(prism)的尝试。该模型包括与时间依赖性的位置误差和对象未被检测到的非零概率,这些是数据的显著性特征。
[0402]
4.2.1位置误差(positionalerrors)
[0403]
由感知堆栈检测到的动态对象的中心位置将使用由下式给出的加性误差模型(additiveerrormodel)进行建模:
[0404]
yk=xk ek[0405]
其中,yk是对象的观察位置,xk是该对象的地面实况位置,以及ek是误差项,均在时间tk。短语“位置误差”将用于指代该模型的加性噪声分量(additivenoisecomponent)ek。
[0406]
图15示出了由感知堆栈检测到的特定动态对象相对于人类标记的地面实况的位置误差。可以在图16中找到相同数据的滞后图(lagplot),表明这些误差的强的时间相关性。从这些图中可以得出结论,位置误差的生成模型必须对先前样本上的每个样本进行调节。针对时间相关的位置误差提出一种自回归模型(autoregressivemodel),其中,每个误差样本线性地依赖于先前误差样本和一些噪声。所提出的模型可以写成:
[0407]ek
=e
k-1
δek(18)
[0408]
其中,ek是时间步长k处的位置误差样本,以及δek是随机项,δek可以是一个或更多个混杂因素的函数,通常被称为“误差增量(errordeltas)”。图17示出了可视化该模型的图表,包括对假设的混杂因素c1和c2的依赖关系。
[0409]
该模型基于若干假设。第一,后续的误差增量是独立的。这在第4.2.3节中进行了探讨。第二,误差增量的经验分布(empiricaldistribution)可以通过参数分布合理地捕获。这在第4.2.4节中进行了探讨。第三,所描述的模型是固定的,使得平均误差不会随时间
变化。这在第4.2.5节中进行了探讨。
[0410]
4.2.2分段常数模型(piecewise constant model)
[0411]
已经表明,建模位置误差需要后续误差以先前误差为条件,但是应该如何选择第一个误差样本呢?现在考虑拟合与时间无关的位置误差分布的任务。如果在数据中没有发现时间相关性,这里采用的方法同样可以应用于每个动态对象的所有样本,而不仅应用于第一个样本。
[0412]
一般来说,这样的模型将是所有混杂因素的复杂的联合概率分布(joint probability distribution)。如第2节所讨论的,由于感知堆栈中不完整场景表示(observedworld≠world)和可能的不确定性,预期在给定地面实况场景的情况下可能感知输出的分布。预期方差是异方差的(heteroskedastic);它会基于混杂因素值而变化。作为简单的示例,不应令人惊讶的是,动态对象的位置估计中的误差具有随对象与检测器的距离而增加的方差。
[0413]
由prism建模的条件分布预期具有复杂的函数形式。这种函数形式可以通过使每个混杂因素离散来近似。在此表示中,将分类混杂因素(例如,车辆类型)映射到bin。连续的混杂因素(例如,与检测器的距离)被分割成范围,并且每个范围被映射到bin。这些离散化的组合是多维表,对于该多维表,混杂因素的输入集合映射到bin。假设在每个bin内,方差是同方差(homoskedastic),并且可以拟合具有常数参数的分布。全局异方差性(global heteroskedasticity)由每个bin中的不同参数捕获。在每个bin中具有固定参数的分布的模型在本文中被称为分段常数模型(piecewise constant model,pcm)。类似模型的一般实现示例可以在文献中找到。在数学上,这可以写成p(y|x)~g(α[f(x)],β[f(x)],...),其中,y是输出的集合,x是混杂因素的集合,f(
·
)是将混杂因素映射到bin的函数,以及g是具有固定在每个bin内的参数α[f(x)],β[f(x)],...的概率分布。
[0414]
在用于prism的pcm中,假设误差是加性的,即动态对象的堆栈预测的位置、位姿和范围等于地面实况位置、位姿和范围加上一些噪声。噪声由每个bin中的分布表征。在该pcm中,假设这个噪声是正态分布的。在数学上这可以写成:
[0415][0416][0417]
其中,y是堆栈观察(stack observation),是地面实况观察,以及∈是噪声。每个bin中的分布由均值μ和协方差∑表征。μ和∑可以看作是混杂因素bin的函数。
[0418]
图18示出了示例分格方案(binning scheme)。bin由方位角和到地面实况动态对象中心的距离构成。
[0419]
训练模型需要如第3.1.1节所述收集的地面实况和堆栈预测(实际感知输出)。(例如,使用最大后验方法(posteriori method)来合并先验(prior))将正态分布的均值和协方差拟合到该bin中的观察值。对于正态分布的均值,使用正态分布的先验。对于正态分布的尺度,使用逆伽马(inverse gamma)先验。
[0420]
为了设置先验的超参数,物理知识可以与针对当数据变得可用时模型应该多快地忽略先验的直觉结合使用。这种直觉可以用伪观察的概念来表示,即在后验分布中,与实际观察(封装在似然函数(likelihood function)中)相比,先验分布的加权强度有多大。增加
伪观察的数量会导致具有较低方差的先验。用于正态分布先验的超参数可以设置为μh=μ
p
和其中,μ
p
和σ
p
表示所考虑的bin的均值和标准差的先验点估计,以及n
pseudo
表示伪观察的数量。inverse gamma先验的速率和尺度超参数(scale hyper-parameters)可以分别设置为和对于本模型,选择n
pseudo
=1,并使用第4.1节中描述的启发式模型为每个bin的参数提供先验点估计。
[0421]
pcm方法的优点是它考虑了全局异方差性,提给出了捕获不同类型的混杂因素的统一的框架,并且它利用了简单的概率分布。此外,该模型是可解释的:可以检查bin中的分布,可以直接检查训练数据,并且没有隐藏的变换。此外,可以分析地拟合参数,这意味着可以避免来自优化例程中缺乏收敛的不确定性。
[0422]
混杂因素选择
[0423]
为了为pcm选择合适的混杂因素,使用第3.2节中描述的方法和第3.1.2节中描述的数据。应用于位置、范围和方向误差的调查结果如表2所示。
[0424]
表2:示出了识别为对所考虑的目标变量重要的混杂因素
[0425][0426]
从表2可以看出,对于d_centre_x和d_centre_z,相关的混杂因素是相对于相机的对象位置以及对象被遮挡的程度的某种组合。感知系统102假设检测到的对象存在于接地平面上,y=0,这可能是d_centre_y不显示对距离的依赖性的原因。
[0427]
对于由感知系统102检测到的动态对象的位置误差的模型,该分析将位置和遮挡识别为要开始的良好的混杂因素。数据并未示出有利于基于笛卡尔网格(centre_x、center_y、center_z)对极坐标(distance,azimuth)的位置混杂因素的强烈偏好。distance和azimuth用于本文描述的prism原型,但可以对每一个原型的相对性能进行更深入的评估。
[0428]
4.2.3位置误差增量的时间相关性分析
[0429]
针对位置误差执行的时间相关性分析可以针对误差增量的时间序列重复,从而给出图19中所示的滞后图。这些图示出了比位置误差中发现的要少得多的误差增量中的时间相关性。误差增量的皮尔逊(pearson)相关系数如表3所示。对于每个维度,它们的量级上都相当小,-0.35距离零最远。从这个分析可以得出结论:误差增量的良好模型可以由来自相关分布的独立样本形成。
[0430]
表3:误差增量样本与一个时间步延迟样本的pearson相关系数
[0431][0432]
位置误差增量的分布
[0433]
通常,x、y、z误差增量维度是相关的。在这里,它们被独立地考虑,但请注意,未来的努力可以考虑将它们联合建模。图20中呈现了误差增量样本的直方图,从中可以清楚地看出,误差增量更可能接近于零,但具有极值的长尾。图21示出了对一些试验分布的该数据的最大似然最佳拟合(maximumlikelihoodbest-fit)。这些图的视觉检查表明学生的t-分布(student

st-distribution)可以是用于生成误差增量的良好建模选择。由于数据中存在大量极端误差增量,正态分布的拟合效果不佳。
[0434]
限制随机游走(boundingtherandomwalk)
[0435]
第4.2.1节中提出的自回归误差增量模型通常是无界随机过程(non-boundedstochasticprocess)。然而,众所周知,动态对象的检测位置不会简单地偏离,而是保持在地面实况附近。这是必须在时间依赖模型中捕获的重要特性。作为此点的具体示例,考虑将位置误差建模为高斯随机游走(gaussianrandomwalk),设置这产生了在的时间tk的位置误差分布,其中方差随时间增加而不受时间限制。prism模型中不得存在此类特性。
[0436]
ar(1)是由下式定义的一阶自回归过程(first-orderautoregressiveprocess):
[0437]yt
=a1y
t-1

t
(19)
[0438]
其中,∈
t
是来自零均值噪声分布的样本,以及yt是在时间t感兴趣的变量的样本。已知此过程对于|a1|<1是广义平稳的,否则生成的时间序列是非平稳的。比较等式18和等式19,可以看出,给定ar(1)的已知结果,如果δek为零均值,则等式18中提出的误差增量模型将是非平稳的。因此,这样的模型不足以生成合理的堆栈输出。
[0439]
提出了对等式18的模型建议的扩展,由所收集的误差增量数据的性质激励。扩展是以先前的误差为条件对δek进行建模,使得找到对p(δek|e
k-1)的最佳拟合。这种形式的模型应该学习对误差增量进行采样,误差增量将位置误差朝向零移动,位置误差离零越远,概率越大。这被发现是真的。
[0440]
按照第4.2.2节中描述的分段常数建模方法,p(δek|e
k-1)近似如下:
[0441]
为e
k-1
值的空间形成m个bin,其中边界为{b0,b1,...,bm}。
[0442]
为每个bin表征单独的分布pm(δek),其中,0<m<m表示bin索引。
[0443]
给定前一时间步长位置误差e
k-1
,下一个误差增量是从pm(δek)得出的,其中,b
m-1
<e
k-1
<bm。
[0444]
图22示出了在m=5的prism训练数据上计算的样本均值。所揭示的趋势与预期一致,并具有以下直观的解释。考虑一系列具有相同极性的误差增量样本,累积了远离地面实况的绝对位置误差。为了使整个过程看起来是平稳的,具有相同极性的后续误差增量样本
应该比朝向真实对象位置的方向上的改变更不可能。该观察结果有助于解释表3中呈现的负pearson系数,这表明后续误差增量略倾向于反转极性。
[0445]
针对pm(δek)的分格方案遭受极端bin中的低样本基数的典型pcm缺点。可以使用简单的先验来降低这种风险,例如,将每个bin中的分布的均值设置为遵循μm=-aem,其中,em是第m个bin的中心值并且a>0。值得注意的是如果选择pm(δek)为高斯分布,使得则时间依赖模型变为:
[0446][0447]
时间依赖模型是典型的ar(1)过程,并且在a<2的情况下是平稳的。在实践中,良好的先验将需要a~0,因此,这样的模型在构造上是平稳的。
[0448]
4.2.6简单验证
[0449]
看到来自所提出的时间相关的位置误差模型中的样本是否再现了激励其构造的特征是有益的。图23中示出了从所学习的分布中采样的单个动态对象轨迹的位置误差的图。图24示出了相同数据的滞后图。在这两种情况下,都提供了真实感知误差数据以进行视觉比较。prism样本和观察到的堆栈数据的相似性令人鼓舞。显然,需要进行更定量的评估(这将是第5节的主题),以做出任何有意义的合理性声明。
[0450]
假阴性和假阳性
[0451]
感知系统具有超出动态对象的噪声位置估计的故障模式。检测器可能无法识别场景中的对象,即假阴性,或者它可能识别出不存在的对象,即假阳性。像prism的代理模型必须仿真检测器的观察到的假阴性和假阳性率。本节讨论假阴性建模的重要性,调查哪些混杂因素会影响假阴性率,并提出两个简单的马尔可夫模型。已经证明,使用更多的混杂因素可以产生更好性能的马尔可夫模型,并突出使用分段常数方法这样做的一些问题。
[0452]
进行了项调查以确定真阳性(tp)、假阴性(fn)和假阳性(fp)的频率。结果总结在表4中。假阴性事件明显多于假阳性。表4中的计数适用于所有对象的距离。在距离检测器如此距离处假阴性计数似乎是不公平的,即人类将具有很难的时间识别。在事件上引入距离滤波器(distance filter)可减少假阴性比假阳性更普遍的因素,但差异仍然很明显。当考虑深度小于50m的对象时,tp/fn/fp事件的数量为34046/13343/843。将距离阈值降低到20m深度,tp/fn/fp事件的数量为12626/1236/201。
[0453]
表4:示出了描述数据集中的假阳性和假阴性事件的数字
[0454][0455]
4.2.9假阴性建模(false negative modelling)
[0456]
遵循第3.2节中阐述的方法,通过采用relief算法探索不同混杂因素对假阴性的重要性。milts2用于随机选择的20%的训练数据样本。结果如图25所示。数据的20%随机样本允许算法在可处理的内存使用情况下运行。目标变量是检测器产生的关联类别:关联或假阴性。关联的类别称为关联状态。使用与第3.2节相同的混杂因素列表,其中,距离和方位角代替center_x、center_y和center_z。已经发现,基于距离和方位角的分格方案与中心值
的分格一样好,但维度较低。此外,使用occluded_category,它是最可靠的遮挡变量。此外,前一时间步长中的对象的关联状态被包括为潜在的混杂因素。这在图25中被标记为“来自(from)”。请注意,“来自”具有三个可能的值:关联、假阴性和空。当对象第一次对检测器可见时,将没有先前的关联状态;在前一时间步长中,检测器确实没有检测到该对象。此类时间步长的关联状态被视为空的,即真阴性。同样,对于从视场中消失的对象,无论是通过退出相机视图截锥(camera frustum)还是完全被遮挡,空关联状态都用作对象重新出现的第一帧的先前关联状态。
[0457]
从图25可以看出,最重要的混杂因素是“来自”类别。这意味着关联状态的最强预测因子是前一时间步长的关联状态。这种关系符合直觉;如果检测器未能在一个时间步长内检测到对象,则预期会在多个帧中检测到对象。对象可能天生就难以被检测器所识别,或者场景的一些特性(例如,相机的镜头光晕)可能会影响其感知能力并在多个帧中持续存在。下一个最重要的混杂因素是occluded_category。这再次符合直觉-如果对象被遮挡,则更难以检测,因此更可能是假阴性。距离也很重要。同样,这是意料之中的;对象越远,关于它的信息就越少(例如,在相机图像中,与更近的汽车相比,更远的汽车由更少的像素表示)。
[0458]
在此评估的指导下,构建假阴性模型,其中仅混杂变量是前一时间步长的关联状态。这是马尔可夫模型,因为它假设当前状态仅依赖于前一状态。这是通过确定从时间步长t-1的状态转移到时间步长t的状态的概率来建模的。表示关联状态x,这相当于找到条件概率p(x
t
|x
t-1
)。为了确定这些转移概率,计算训练数据中这些转移的频率。这相当于贝叶斯似然最大化(bayesian likelihood maximisation)。表5显示了数据中每种转移类型的转移概率和实例数。表5中的每个bin都有超过800个条目,表明隐含的转移频率是可靠的。观察到的从假阴性到假阴性的转移概率是0.98,从关联到关联是0.96。正如relief分析结果所预期的那样,这些值显示出很强的时间相关性。是否存在到假阴性状态的转移和假阴性状态持续存在可归因的原因?从空(真阴性)状态转移到假阴性状态有0.65的概率,从空(真阴性)状态转移到相关联状态有0.35的概率。这意味着当对象第一次变得可见时,它更有可能是假阴性。许多对象在远处进入场景,这很可能是生成这些初始假阴性的重要因素。一些对象从侧面进入场景,特别是在本示例中考虑的环岛场景中。此类对象在前几帧被截断,这可能是早期假阴性的因素。为了更详细地探讨这些要点,构造依赖于其他因素的模型。
[0459]
表5:从前一时间步长(行)中的关联状态转移到当前时间步长(列)中的关联状态的概率(左两列)、以及训练数据集中转移次数的计数(右两列)
[0460]
[0461]
作为迈向更复杂模型的第一步,执行relief分析以识别对转移很重要的混杂因素,而不考虑先前的关联状态。multisurf用于随机选择的20%的训练数据样本。结果如图26所示。
[0462]
图26表明可能影响转移概率的最重要的混杂因素是:occluded_category、距离和方位角。事实上,使用第3.2节中列出的标准,所有混杂因素都是良好的混杂因素。基于这些证据,创建下一个最复杂的马尔可夫模型;occluded_category被添加为混杂因素。表示关联状态x和被遮挡类别c,条件概率p(x
t
|x
t-1
,c
t
)。与第一个马尔可夫模型一样,通过对出现频率进行计数从训练数据中确定这些转移概率。表6显示了数据中每个转移的转移概率和实例数。
[0463]
表6:从前一时间步长(行)中的关联状态和被遮挡类别转移到当前时间步长(列)中的关联状态的概率(左两列)、以及训练数据集中转移次数的计数(右两列)。
[0464][0465]
表6显示了一些频率是从非常低的计数确定的。例如,从完全遮挡的假阴性到关联状态,只有27次转移发生。但是,预期此事件很少见,这些转移中的任何都可能表明错误的训练数据。这些计数可能来自带注释的数据与检测器观察的错误关联;如果对象真的被完全遮挡了,那么检测器就不会被期望观察到它。也许最不值得信任的转移来自关联和完全遮挡;该类别总共只有111个观察值。从关联和完全遮挡转移到关联的概率为0.61,即极有可能;虽然从假阴性和完全遮挡转移到关联的计数很少,但它实际上具有零概率(因为从假阴性和完全遮挡到假阴性的计数数量如此之高)。应谨慎处理具有低总和的行。
[0466]
尽管存在这些限制,但仍有预期的趋势。当对象从空状态(即它们首次被观察到)转移时,如果它们是完全可见的,则有0.60的机会转移为关联,即对象比假阴性更有可能被转移到关联。但是,如果对象被大部分遮挡,则转移到关联的概率仅为0.17。
[0467]
鉴于识别的限制,可以确定添加混杂因素是否改进了模型。为了比较这些模型,采用具有较小负对数预测密度(negative log predictive density,nlpd)的模型更好地解释数据的方法。相应的nlpd是在保留的测试集(held-out test set)上计算的。与具有混杂因素的马尔可夫模型的9,189相比,简单马尔可夫模型的nlpd为10,197。添加occlusion_category混杂因素通过该指标改进了模型。
[0468]
这种比较表明了包含混杂因素可以改进模型。为了构建包含所有相关混杂因素的模型,遵循在分段常数模型中使用的范式(paradigm),新混杂因素添加额外的bin(例如,表
6的行数比表5多)。
[0469]
5.神经网络prism
[0470]
本节描述了如何使用神经网络或类似的“黑匣子(black box)”模型来实现prisms。
[0471]
如本领域公知的,神经网络由一系列“层”形成,一系列“层”又由神经元(节点)形成。在经典的神经网络中,输入层中的每个节点都会接收到网络输入的分量(例如,图像),该分量通常是多维的,并且每个后续层中的每个节点都连接到前一层中的每个节点,并计算其所连接的节点的输出的加权和(weighted sum)的函数。
[0472]
举例来说,图27示出了神经网络中的节点i,节点i接收输入{uj}的集合,并计算那些输入的加权和的函数作为其输出:
[0473][0474]
这里,g是可能是非线性的“激活函数(activation function)”,以及{w
i,j
}是应用于节点i的权重集合。在训练期间调整整个网络的权重。
[0475]
参考图28,将cnn的层的输入和输出概念化为离散三维空间(即三维阵列)中的“卷”是有用的,每个离散三维空间由在本文中被称为“特征图(feature maps)”的二维阵列的堆栈形成。更一般地说,cnn将“张量(tensors)”作为输入,其通常可以具有任何维度。以下描述也可将特征图称为张量的层。
[0476]
举例来说,图28示出了五个这样的张量302、304、306、308和310的序列,其例如可以通过如本领域已知的一系列卷积运算(convolution operation)、池化运算(pooling operaion)和非线性变换(non-linear transformation)来生成。作为参考,第一张量302内的两个特征图分别标记为302a和302b,并且第五张量310内的两个特征图分别标记为310a和310b。本文中(x,y)坐标是指特征图或图像内适用的位置。z维度对应于特征图或图像的“深度(depth)”,并且可以称为特征维度。彩色图像具有与三个颜色通道对应的三个深度,即(x,y,z)处的值是在位置(x,y)处的颜色通道z的值。在cnn内的处理层处生成的张量具有对应于在该层处应用的多个滤波器的深度,其中,每个滤波器对应于cnn学习识别的特定特征。
[0477]
cnn与经典神经网络架构的不同之处在于cnn具有未完全连接的处理层。相反,提供仅部分地连接到其他处理层的处理层。特别地,卷积层中的每个节点仅连接到处理层的局部3d区域,从该局部3d区域接收输入,并且该局部3d区域上的节点相对于滤波器执行卷积。该节点特别连接的节点被称为在该滤波器的“感受野(receptive field)”内。滤波器由滤波器权重集合定义,并且每个节点处的卷积是滤波器感受野内的节点的输出的加权和(根据滤波器权重加权)。从一层到其相应张量内的值的下一方面的(x,y)位置的局部部分连接,使得在数据通过网络时(x,y)位置信息至少在某种程度上被保留在cnn中。
[0478]
每个特征图都是通过在输入张量上卷积给定滤波器来确定的。因此,每个卷积层的深度(z方向上的范围)等于在该层应用的滤波器的数量。输入张量本身可以是图像,也可以是一堆特征图,特征图本身是通过卷积确定的。当卷积直接应用于图像时,每个滤波器都作为低级结构检测器运行,因为当滤波器的感受野内的像素形成某种结构(即,匹配特定滤
波器的结构)时发生“激活”(即,相对较大的输出值)。然而,当卷积应用于本身是网络中较早卷积结果的张量时,每个卷积都是针对不同特征的特征图集合执行的,因此,当较低级别特征的特定组合存在于感受野内时会进一步激活网络。因此,对于每个连续的卷积,网络都会检测与来自前一个卷积的特征的特定组合相对应的越来越高级的结构特征的存在。因此,在早期层中,网络有效地执行较低级别的结构检测,但在后面的层中逐渐转向更高级别的结构语义理解移动。滤波器权重是在训练期间学习的,这就是网络学习要寻找什么结构的方式。如本领域所知,卷积可以与其他运算结合使用。例如,池化(降维形式)和非线性变换(如relu、softmax等)是在cnn中与卷积结合使用的典型运算。
[0479]
图29示出了被实现为神经网络(net)或类似可训练函数逼近器的pspm的高度示意性概述。
[0480]
在此示例中,神经网络a00具有输入层a02和输出层a04。虽然神经网络a00被示意性地描绘为简单的前馈神经网络(feed-forward neural network),但这仅仅是说明性的,并且,神经网络a100可以采用任何形式,包括例如循环神经网络(recurrent neural network,rnn)和/或卷积神经网络(convolutional neural network,cnn)架构。术语“输入层”和“输出层”并不意味着任何特定的神经网络架构,并且包括例如在cnn的情况下的输入和输出张量。
[0481]
在输入层a02,神经网络a00接收感知地面实况t作为输入。例如,感知地面实况t可编码为输入向量或张量。通常,感知地面实况t可以与任意数量的对象和任意数量的底层传感器模态相关。
[0482]
神经网络a00可以在数学上表示为如下函数:
[0483]
y=f(t;w)
[0484]
其中,w是可调整的权重(参数)集合,根据可调整的权重(参数)集合处理输入t。在训练期间,目的是针对输出y上定义的某些损失函数优化权重w。
[0485]
在图29的示例中,输出y是定义了预测概率分布p(e|t)的分布参数集合,预测概率分布p(e|t)即在输入层a02处给定感知地面实况t的情况下获得一些预测感知输出e的概率。
[0486]
以高斯(正态)分布的简单示例为例,输出层a04可以被配置为提供针对给定地面实况的预测均值和方差:
[0487]
y={μ(t;w),σ(t;w)}.
[0488]
请注意,均值和方差中的任何一个都可以随着如由学习权重w定义的输入地面实况t而变化,从而给予神经网络a00在训练期间学习这种依赖性的灵活性,达到它们在其被暴露于的训练数据中反映的程度。
[0489]
在训练期间,目的是学习权重w,权重w将p(e|t)与要被建模的感知切片204生成的实际感知输出a06相匹配。这意味着例如,经由梯度下降或上升优化合适的损失函数a08,可以有意义地将针对给定地面实况t在输出层预测的分布p(e|t)与对应于地面实况t的实际感知输出进行比较。如上所述,用于训练的地面实况输入t由地面实况(注释)流水线802提供,地面实况(注释)流水线802已经经由感知切片204应用到的传感器数据的手动、自动或半自动注释来定义。感知切片204所应用的传感器数据集合可以在以下描述中被称为输入样本或者等效地称为帧,并且由附图标记a01表示。通过将感知切片204应用于该帧的传感
器数据来计算每一帧a01的实际感知输出。然而,根据上述教导,神经网络a00在训练期间并未暴露于底层传感器数据,而是接收该帧a01的带注释地面实况t作为传达底层场景的输入。
[0490]
在给定足够的示例{e,t}对集合的情况下,可以训练现有的各种神经网络架构来预测形式p(e|t)的条件分布。对于简单的高斯分布(单变量或多变量),可以使用对数正态或(负)对数pdf损失函数a08。将此扩展到非高斯分布的一种方式是使用高斯混合模型(gaussian mixture model),其中,训练神经网络a00以及用于组合这些的混合系数(以与每个高斯分量的均值和方差相同的方式根据输入t学习)一起来预测多分量高斯分布。从理论上讲,任何分布都可以表示为混合高斯(mixed gaussians),因此,高斯混合模型是近似一般分布的有用方法。本文对“拟合正态分布(fitting normal distributions)”等的引用包括高斯混合模型。相关描述也更普遍地适用于其他分布参数化。如将理解的,存在各种已知技术,通过这些技术可以构建和训练神经网络以在给定输入-输出对的足够代表性示例的情况下预测条件概率分布。因此,除非与所描述的实施例特别相关,否则本文不描述进一步的细节。
[0491]
在推理时,如上所述使用经训练的网络a00。由模拟器814提供的感知地面实况t被提供给输入层a02的神经网络a00,其由神经网络a00进行处理以在输出层a04生成形式为p(e|t)的预测感知输出分布,然后可以通过采样编排部件(sampling orchestration component)(采样器)816以上述方式对其进行采样。
[0492]
重要的是要注意本文使用的术语。在这种情况下,“地面实况”是指神经网络a00的输入(input),从中生成其输出。在训练中,地面实况输入来自注释,并且在推理时由模拟器814提供地面实况。
[0493]
虽然实际感知输出a06可以被视为训练背景中的地面实况形式-因为它是神经网络被训练复制的输出类型的示例-但本文通常避免该术语以避免与pspm的输入混淆。通过将感知切片204应用于传感器数据而生成的感知输出被称为“实际”或“目标”感知输出。训练的目的是经由优化测量网络输出与目标感知输出之间的偏差的合适损失函数来调整权重w,以使输出层a04的分布参数与实际感知输出a06匹配。
[0494]
图29不一定是神经网络a00的输入或输出的完整表示-它可以采用预测分布将依赖的额外输入和/或它可以提供其他作为其输入的函数的输出。
[0495]
5.1混杂因素
[0496]
图30示出了神经网络的扩展,以根据上述原理合并一个或更多个混杂因素c。混杂因素很容易并入该架构中,因为它们可以简单地作为输入层a02(在训练和推理时)的附加输入提供,因此,在训练期间,神经网络a00可以学习输出分布对混杂因素c的依赖性。也就是说,网络a00可以在输出层a04学习分布p(e|t,c),其中,分布的任何参数(例如,均值、标准差和混合系数)不仅可以依赖于地面实况t,而且还依赖于混杂因素c,在训练数据中捕获那些依赖关系的程度。
[0497]
5.2时间依赖性
[0498]
图31示出了另一个扩展,以包含明确时间依赖性(explicit time dependency)。在这种情况下,函数(神经网络)在输入层a02以以下作为输入:
[0499]
·
当前地面实况t
t
function)来诱导依赖性/相关性。这实际上是一种混合分布(mixture distribution)。
[0516]
神经网络a00使用随机梯度下降(stochastic gradient descent)(最大似然-使用随机变量的负对数pdf作为位置和范围变量(如果合适的话可以是多元正态))进行训练。
[0517]
单个对象方法需要在地面实况对象和实际感知输出a06之间建立明确的关联。这是因为给定对象的预测分布需要与由感知切片204实际产生的适当的单个对象感知输出相匹配。为了pspm训练的目的识别和编码这些关联可以作为地面实况流水线802内的额外步骤实施。
[0518]
5.4集合到集合(set-to-set)方法
[0519]
在最广泛的意义上,集合到集合方法是一种不依赖于地面实况对象和预测对象之间的明确关联的方法,即在训练期间,不需要告诉pspm哪个地面实况对象对应于哪个预测对象。
[0520]
图32示出了集合到集合pspm d00,集合到集合pspm d00针对任意大小的地面实况对象集合(本例中的两个地面实况对象,索引为0和1)采用感知地面实况{t0,t1}作为输入,并且针对预测感知对象集合(本例中也是两个-但请注意下面对fp和fn的讨论)提供现实的感知输出或分布{e0,e1}。
[0521]
集合到集合方法有各种益处。
[0522]
首要的益处是减少了注释负担-不需要为了训练的目的而确定地面实况和实际感知目标之间的关联。
[0523]
另一个益处是可以对对象之间的相关性进行建模。在图32的示例中,示出了集合到集合神经网络prism,集合到集合神经网络prism在其输入层针对任意数量的输入对象获取的感知地面实况,并输出每个预测对象的分布。值得注意的是,网络的架构使得针对任何给定预测对象m的预测感知输出分布p(em|t0,t1)通常可以取决于针对所有地面实况对象的地面实况感知输出(在这个示例中是t0,t1)。更准确地说,该架构足够灵活以能够学习这些依赖关系到它们在训练数据中反映的程度。集合到集合方法还可以学习感知切片204提供重叠边界框的程度、以及它必须“交换(swap)”对象的任何趋势,这是可学习的对象相关性的进一步示例。
[0524]
更一般地,集合到集合方法的结果是一次考虑所有检测的联合分布,即p(e1,e2,...|t0,t1)(当em彼此独立时,其只减少到上一段提到的每个p(em|t0,t1)的乘积)。这样做的好处是可以对检测之间的相关性进行建模,例如,e1可具有实例标识符0,并且e2也可以,但不能同时。虽然前面的段落和图32假设em是独立的,但这通常不是必需的-输出层可替代地被配置为更一般地表示联合分布p(e1,e2|t0,t1)。
[0525]
另一个好处是能够使用某些集合到集合架构对假阳性进行建模。这是因为地面实况对象的数量不一定要与预测感知对象的数量相匹配-集合到集合架构是可行的,其中后者将小于、等于或大于前者,具体取决于网络的输入。
[0526]
5.5 cnn集合到集合架构
[0527]
举例来说,现在将参考图d1-图d4描述集合到集合cnn架构。以下假设由感知切片204提供的实际感知输出包括用于任何检测到的对象的3d边界框,具有定义的位置、方向和范围(大小/尺寸)。cnn使用输入张量,并产生输出张量,其构造如下所述。
[0528]
cnn pspm d00基于特定帧中的所有地面实况检测来联合地建模输出检测。可以使
用rnn架构来诱导时间依赖性,rnn架构是一种实现对先前帧的明确时间依赖性的方式。
[0529]
地面实况t和输出预测以“pixor”格式进行空间编码。简而言之,pixor格式允许基于自上而下(鸟瞰)视图对3d空间数据进行有效编码。有关详细信息,请参阅:yang等人的“pixor:real-time 3d object detection from point clouds(pixor:点云的实时3d对象检测)”[https://arxiv.org/abs/1902.06326],通过引用将其全部内容并入本文中。
[0530]
如图33a所示,为了表示用于训练目的的实际感知输出a06,生成实际感知3d边界框的低分辨率(例如,800px正方形)鸟瞰图(分类层d12,或更多通常对象地图(object map))。输出对象仅以一种“颜色”绘制一即具有“检测性(detection-ness)”二进制编码的分类检测图像(针对给定对象的“检测”像素形成对象区域)。这可以对地面实况对象重复,或者通过根据它们的遮挡状态绘制输入对象的颜色来概括(独热编码(one hot encoding))。
[0531]
为了在空间上编码对象的其他特性,生成更多的鸟瞰图,其中表示每个像素中存在的车辆的位置、范围、方向和任何其他重要变量。这些进一步的图像被称为回归层(regression layers)或感知层(perception layers),并由附图标记d14表示。这意味着单个检测在相邻像素中多次表示,并且某些信息是冗余的,如图所示。图像被堆栈以产生尺寸的张量(tensor of size)(高度x,宽度x,重要变量的数量(height x width x number of important variables))。
[0532]
请注意,编码3d边界框的是感知层,具有冗余性。当“解码”输出张量时,回归层d14的实际数值定义了边界框的位置、方向和范围。鸟瞰图中空间编码的目的是以有利于cnn解释的形式提供在输入张量的感知层d14内编码的信息。
[0533]
该模型的一个优点是可以学习不同对象检测之间的相关性-例如,如果堆栈不预测重叠对象则可以学习。此外,pspm可以学习堆栈是否在对象之间交换对象id。
[0534]
通过馈入额外的输入图像,可以鼓励cnn以在物理上有意义的地方预测假阳性,因为这为cnn提供了在训练期间确定假阳性与地图之间的相关性所需的信息,图像例如场景的地图(指示环境结构)。
[0535]
cnn还可以有输入以以任何合适的形式接收混杂因素。可以以相同的方式对对象特异性混杂因素进行空间编码。这种混杂因素的示例包括遮挡值,即被其他对象遮挡的程度和/或截断(对象在传感器视场之外的程度)的测量。
[0536]
图33b示意性地说明了cnn的训练。
[0537]
cnn d00被训练以使用分类层的分类(例如,交叉熵(cross entropy))损失d32和那些张量的回归层的回归(例如,平滑的l1)损失d34从输入张量d20预测输出张量d22。输入和输出张量d20、d22的分类和回归层仅为清楚起见单独绘出。通常,信息可以编码在一个或更多个张量。
[0538]
输入张量d20的回归层对任意数量的地面实况对象的当前帧的感知地面实况t进行编码。
[0539]
分类损失d32是关于从当前帧的实际感知输出e导出的目标分类图像d24a定义的。回归损失是关于目标感知层d24b定义的,目标感知层d24b对当前帧的实际感知输出进行空间编码。
[0540]
输出张量d22的分类层的每个像素都编码了在该像素处检测到对象的概率(“检测
性”的概率)。回归层的相应像素定义相应的对象位置、范围和方向。
[0541]
对输出张量d22的分类层进行阈值处理,以产生二进制输出分类图像。在训练期间,二进制输出分类图像d23用于掩蔽回归层,即回归损失仅考虑在阈值图像d23内存在对象的区域,而忽略此之外的回归层的区域。
[0542]
图33c示出了如何在测试时或推理时应用经过训练的网络。
[0543]
在推理时,输入张量d20现在编码由模拟器814提供的(对于任意数量的对象)感知地面实况t。
[0544]
输出图像上的分类层被阈值化,并用于掩蔽输出张量d22的回归层。阈值图像的对象区域内的未标记像素包含感知值,然后可以将其视为检测。
[0545]
预测的感知3d边界框是从输出张量d22的掩蔽回归层(masked regression layers)解码的。
[0546]
回想一下,对于任何给定的像素,回归层中该像素的数值定义边界框的范围、位置和方向,因此,可以直接获得每个未掩蔽像素的预测3d边界框。如图所示,这通常会导致大量重叠框(提议框(proposed boxes)),因为每个对象区域内的每个像素都被二进制图像激活(即作为有效的边界框提议)。
[0547]
将非最大抑制(non-maximal suppression,nms)应用于解码的边界框,以确保不会多次检测到对象。众所周知,nms提供一种系统方式来基于框的置信度和与其他框的重叠程度来丢弃所提议的框。在这种情况下,对于与输出张量d22的任何给定像素对应的框,来自(非阈值)分类层的该像素的检测性概率可以用作置信度。
[0548]
作为替代方案,可以通过选择仅激活对象中心位置的输出分类图像来避免使用非最大抑制。因此,针对每个对象只会获得一次检测,并且不需要nms。这可以与随机可能性相结合(将噪声作为额外输入馈入到神经网络中),以减轻仅在对象中心位置激活输出分类图像的影响。
[0549]
除了其他损失之外,还可以使用gan(生成对抗网络(generative adversarial network))来获得更现实的网络输出。
[0550]
上面描述的简单示例没有提供输出层的概率分布一即,输出层的概率分布是感知地面实况t和直接编码在输出张量中的预测感知输出e集合之间的一对一映射(网络在这个意义上是确定性的)。这可以解释为给定地面实况t的情况下感知切片204的“平均”响应。
[0551]
然而,如图33d所示,该架构可以扩展以预测输出张量d22处的分布,从而应用与上面参考图29描述的完全相同的原理。在这种情况下,输出张量d22的感知值编码分布参数,并且l1回归损失d34被替换为对数pdf损失或其他适合学习条件分布的损失。
[0552]
另一种选择是以相同的方式但在训练数据的不同子集上训练确定性神经网络集合。在以这种方式训练的m个神经网络情况下,结合地那些网络将直接提供采样的感知输出(针对每个地面实况t总共有m个样本)。使用足够数量的适当配置的确定性网络,它们的输出样本的分布可以以类似于学习的参数化分布的方式捕获被建模的感知切片204的统计特性。
[0553]
5.6建模在线误差估计
[0554]
图34示出了进一步扩展以适应要被建模的感知切片816内的在线误差(例如,协方差)估计的建模。堆栈内的在线误差估计器816u提供与其感知输出相关联的误差估计(或误
差估计集合)。在线误差估计是预测系统816内关于与其输出相关联的误差的估计。请注意,这是预测切片自身(潜在地有缺陷的)对其输出不确定性的估计,通常仅使用运行时车辆上可用的信息实时生成。这本身可能会出错。
[0555]
这样的误差估计很重要,例如,在滤波或融合的背景下,(例如,来自不同传感器模态的)多个感知输出可以以遵守其相对不确定性级别的方式融合。不正确的在线协方差会导致融合误差。在线误差估计也可以直接馈送到预测104和/或规划106,例如,其中规划基于概率预测。因此,在线误差估计中的误差可能会对堆栈性能产生重大影响,并且,在最坏的情况下可能导致不安全的决策(特别是如果低估了给定感知输出的误差级别)。
[0556]
建模在线协方差(或其他在线误差估计)的方法与位置、范围和方向不同,因为没有可用的地面实况协方差,即地面实况输入t不包括任何地面实况协方差。
[0557]
因此,唯一的变化是在输出层a04添加额外的分布参数,以额外地对分布p(e|t)进行建模,即在线误差估计器816u在给定感知地面实况t的情况下提供e的误差估计的概率。
[0558]
注意,这也将在线误差估计器816u视为随机函数。不失一般性,这可以称为神经网络a00学习“协方差的协方差(covariance of the covariance)”。以这种方式对在线误差估计部件816u进行建模可以以与关于感知系统204的其他此类不确定性相同的方式适应关于在线误差估计器816u的认知不确定性。如果在线误差估计器816u的输入很难模拟或模拟费用高昂,这尤其有用。例如,如果将在线误差估计器816u直接应用于传感器数据,这将是对在线误差估计器816建模而不必模拟那些传感器数据输入的方式。
[0559]
通过对协方差矩阵进行乔里斯基(cholesky)分解e02来拟合协方差以产生三角矩阵(triangular matrix)。这会产生正对角元素(positive diagonal element),从而允许计算对角元素的对数。然后,可以将正态分布拟合到矩阵的每个分量(如果需要,可以使用多元正态分布)。在测试时,该过程被反转以产生期望的协方差矩阵(下三角尺度矩阵(lower triangular scale matrices)被乘在一起)。这允许在cholesky分解的无约束空间上将损失函数表述为直接的数值回归损失(straightforward numerical regression loss)。为了“解码”神经网络,可以应用逆变换(inverse transformation)。
[0560]
在推断时,可以以与p(e|t)相同的方式对p(e|t)进行采样,以获得现实的采样在线误差估计。
[0561]
图29-图34中描绘了所有架构。例如,时间和/或混杂因素依赖性可以结合到图34的模型中,使得协方差的协方差取决于一者或两者。
[0562]
更一般地,网络可以被配置为学习形式为p(e,e|t)的联合分布,当e和e彼此独立(但两者都依赖于地面实况t)时,其减少到上述。
[0563]
6.pspm应用
[0564]
pspm有许多有用的应用,现在将描述其中的一些。
[0565]
6.1不确定性下的规划
[0566]
上面列出的用例在不确定性下测试规划。这意味着在存在统计代表性感知误差的情况下测试规划器106如何执行。在那种情况下,好处在于能够以鲁棒且有效的方式将规划器106和预测堆栈104暴露于现实感知误差。
[0567]
混杂因素方法的一个益处是,当在特定场景中发生不安全行为的实例时,可以通过运行相同的场景但使用不同的混杂因素c来探索任何混杂因素对该行为的贡献(这可能
具有改变感知不确定性p(e|t,c)的作用)。
[0568]
如前所述,当从pspm采样时,不需要以统一的方式采样。故意将采样偏向异常值(即较低概率的pspm样本)可能是有益的。
[0569]
结合混杂因素c的方式也促进测试更具挑战性的场景。例如,如果通过模拟观察到规划器106在存在遮挡的情况下做出相对更多的误差,这可能是测试外部对象被遮挡的更多场景的触发。
[0570]
6.2分离感知和规划/预测误差
[0571]
另一个有点相关但仍然是独立的应用是在运行时堆栈100中隔离规划器106的不安全决策原因的能力。特别是,它提供了方便的机制来推断原因是否是感知误差而不是预测/规划误差。
[0572]
例如,考虑发生不安全行为的实例的模拟场景。这种不安全的行为可能是由于感知误差而引起的,但同样也可能是由预测或规划误差引起的。为了帮助隔离原因,可以在没有pspm的情况下运行相同的场景,即直接在完美感知地面实况上运行,以查看规划器106如何在完全相同的场景中执行但具有完美的感知输出。如果仍然发生不安全行为,这表明不安全行为至少部分归因于感知堆栈102之外的误差,这可能指示预测和/或规划误差。
[0573]
6.3训练
[0574]
模拟也可以用作训练(例如,强化学习训练(reinforcement learning training))的基础。例如,模拟可以用作对预测堆栈104、规划器106或控制器108内的部件进行训练基础。在一些情况下,基于pspm提供的现实感知输出运行训练模拟可能是有益的。
[0575]
6.4测试不同的传感器布置
[0576]
pspm方法的一个可能优势是能够模拟未实际测试的传感器类型/位置。这可用于对移动av上的组特定传感器集合或使用不同类型的传感器的影响做出合理的推断。
[0577]
例如,测试降低车载相机的像素分辨率的影响的相对简单的方式是降低带注释的地面实况数据库804中带注释的图像的像素分辨率、重新构建pspm并重新运行适当的模拟。作为另一个示例,可以在完全移除特定传感器模态(例如,lidar)的情况下重新运行模拟,以测试可能产生的影响。
[0578]
作为更复杂的示例,可以推断出改变特定传感器对感知不确定性的影响。这不太可能用作证明安全性的基础,但在考虑例如相机布置时这可以用作有用的工具。
[0579]
6.6模拟传感器数据的pspm
[0580]
虽然以上考虑了经由将感知切片204应用于真实传感器数据而生成的pspm,但用于训练pspm的实际感知输出可以替代地通过将感知切片204应用于模拟传感器数据来导出,以便对模拟传感器数据上的感知切片204的性能进行建模。请注意,经过训练的pspm不需要模拟传感器数据-它仍然适用于感知地面实况,无需模拟传感器输入。模拟传感器数据仅用于生成用于训练的实际感知输出。这可以用作对模拟数据上的感知切片204的性能进行建模的方式。
[0581]
6.7在线应用
[0582]
某些pspm也可在运行时有效地部署在av上。即,作为运行时堆栈100本身的一部分。这进而最终可以帮助规划器106考虑感知不确定性的知识。pspm可以与作为滤波/融合基础的现有在线不确定性模型(online uncertainty models)结合使用。
[0583]
由于pspm依赖于混杂因素,为了在运行时最大化pspm的有用性,需要实时测量相关混杂因素。这可能不适用于所有混杂因素类型,但当适当的混杂因素可测量时,仍然可以有效地部署pspm。
[0584]
例如,由pspm进行的不确定性估计可以在运行时与来自av在线不确定性模型之一的不确定性的独立测量结合用作先验。总之,这些可以提供实际感知不确定性的更可靠的指示。
[0585]
结构感知是指一类数据处理算法,其可以有意义地解释在感知输入(传感器输出或来自较低级别感知部件的感知输出)中捕获的结构。这种处理可以跨不同形式的感知输入应用。感知输入通常是指任何结构表示,即捕获结构的任何数据集。结构感知可以应用于二维(2d)和三维(3d)空间。将结构感知算法应用于给定结构输入的结果被编码为结构感知输出。
[0586]
一种形式的感知输入是二维(2d)图像;也就是说,只有颜色分量(一个或更多个颜色通道)的图像。结构感知最基本的形式是图像分类,即将图像作为整体相对于图像集合类别进行简单分类。应用于2d空间的更复杂的结构感知形式包括2d对象检测和/或定位(例如,2d空间中的方向、位姿和/或距离估计)、2d实例分割等。其他形式的感知输入包括三维(3d)图像,即具有至少一个深度分量(深度通道)的图像;例如,使用雷达或激光雷达捕获的或从3d图像中导出的3d点云;基于体素(voxel)或网格(mesh)的结构表示,或任何其他形式的3d结构表示。可以在3d空间中应用的感知算法的示例包括3d对象检测和/或定位(例如,3d空间中的距离、方向或位姿估计)等。单个感知输入也可以由多个图像形成。例如,可以在2d图像的立体对中捕获立体深度信息,并且该图像对可以用作3d感知的基础。3d结构感知也可以应用于单个2d图像,示例是单目深度提取(monocular depth extraction),单目深度提取从单个2d图像中提取深度信息(注意,2d图像在没有任何深度通道的情况下可以在其一个或更多个颜色通道内捕获一定程度的的深度信息)。这种形式的结构感知是如在本文使用的术语的不同“感知模态(perception modalities)”的示例。应用于2d或3d图像的结构感知可以被称为“计算机视觉(computer vision)”。
[0587]
对象检测是指检测在感知输入中捕获的任意数量的对象,并且通常涉及将每个这样的对象表征为对象类的实例。此类对象检测可能涉及位置估计的一种或更多种形式或与位置估计的一种或更多种形式结合地执行,例如,2d或3d边界框检测(对象定位的形式,其中目的是在包围对象的2d或3d空间中定义区域或体积)、距离估计、位姿估计等。
[0588]
在机器学习(ml)的情况下,结构感知部件可以包括一个或更多个经过训练的感知模型。例如,机器视觉处理经常使用卷积神经网络(cnn)来实现。这样的网络需要大量的训练图像,训练图像已经用神经网络需要学习(监督学习的形式)的信息进行了注释。在训练时,网络被呈现数千、或者优选是数十万这样的注释图像,并且自己学习在图像本身中捕获的特征如何与同其相关的注释相关。在与注释数据相关联的意义上对每个图像进行注释。图像用作感知输入,并且相关联的注释数据为图像提供“地面实况”。可以构建cnn和其他形式的感知模型来接收和处理其他形式的感知输入(例如,点云(point clouds)、体素张量(voxel tensors)等),并感知2d和3d空间中的结构。在一般训练的情况下,感知输入可被称为“训练示例(training example)”或“训练输入(training input)”。相比之下,在运行时捕获用于由受过训练的感知部件处理的训练示例可被称为“运行时输入”。与训练输入相关
联的注释数据为该训练输入提供地面实况,因为注释数据对该训练输入的预期感知输出进行了编码。在有监督的训练过程中,感知部件的参数被系统地调整,以在定义的范围内最小化由感知部件当应用于训练集中的训练示例时产生的感知输出(“实际”感知输出)与由相关联的注释数据提供的相应地面实况(预期的感知输出)之间的差异的总度测量(overall measure)。以这种方式,感知输入从训练示例中“学习”,并且此外能够“概括”该学习,在能够训练的意义上,一个被训练来为其在训练期间没有遇到的感知输入提供有意义的感知输出.
[0589]
这样的感知部件是许多成熟和新兴技术的基石。例如,在机器人领域,能够在复杂环境中自主规划路径的移动机器人系统正变得越来越普遍。这种迅速兴起的技术的示例是可以在城市道路上自行导航的自动驾驶车辆(av)。这样的车辆不仅必须在人和其他车辆之间执行复杂的操纵,而且它们必须经常这样做,同时保证对不利事件发生的概率进行严格限制,例如,与环境中的这些其他主体发生碰撞。为了让av安全地进行规划,其能够准确可靠地观察其环境至关重要。这包括需要准确可靠地检测车辆附近的真实世界结构。自动驾驶车辆,也称为无人驾驶车辆,是指具有用于监控其外部环境的传感器系统和能够使用这些传感器自动做出和执行驾驶决策的控制系统的车辆。这尤其包括基于来自传感器系统的感知输入自动适配车辆速度和行驶方向的能力。全自动或“无人驾驶”车辆具有足够的决策能力,无需人类驾驶员的任何输入即可运行。然而,本文使用的术语“自动驾驶车辆”也适用于半自主车辆,其自主决策能力更有限,因此仍需要人类驾驶员进行一定程度的监督。正在开发的例如,在内部和外部工业区运送货物的其他移动机器人。这种移动机器人将没有人在车上,并且属于被称为uav(unmanned autonomous vehicle,无人自主车辆)的一类移动机器人。自主空中移动机器人(无人机)也正在开发中。
[0590]
因此,在更普遍的自动驾驶和机器人领域中,可能需要一个或更多个感知部件来解释感知输入,即,一个或更多个感知部件可以确定在给定感知输入中捕获的有关真实世界结构的信息。
[0591]
越来越多的复杂的机器人系统(例如,av)可能需要实现多种感知模态,从而准确解释多种形式的感知输入。例如,av可以配备一个或更多个立体光学传感器(相机)对,从中提取相关的深度图(depth maps)。在这种情况下,可以将av的数据处理系统配置为将一种或更多种形式的2d结构感知应用于图像本身-例如,2d边界框检测和/或其他形式的2d定位、实例分割等-加上将一种或更多种形式的3d结构感知应用于相关深度图的数据-例如,3d边界框检测和/或其他形式的3d定位。这样的深度图也可以来自lidar、radar等,或者通过合并多个传感器模态导出。
[0592]
本技术可用于模拟各种机器人系统的行为以用于测试/训练等目的。运行时应用也可在不同的机器人系统中实现。
[0593]
为了针对期望的感知模态训练感知部件,感知部件被构建成它可以接收期望形式的感知输入并提供期望形式的感知输出作为响应。此外,为了训练基于监督学习的适当架构的感知部件,需要提供符合所需感知模态的注释。例如,为了训练2d边界框检测器,需要2d边界框注释;同样,为了训练执行图像分割(各个图像像素的逐像素分类)的分割部件,注释需要对模型可以从中学习的合适的分割掩膜(segmentation masks)进行编码;3d边界框检测器需要能够接收3d结构数据、以及带注释的3d边界框等。
[0594]
感知部件可以指感知部件的一个或更多个底层感知模型(underlying perception models)的任何有形实施例(实例),其可以是软件或硬件实例,或组合的软件和硬件实例。这样的实例可以使用诸如通用处理器(例如,cpu、诸如gpu等加速器等)或现场可编程门阵列(field programmable gate array,fpga)或任何其他形式的可编程计算机之类的可编程硬件来体现。因此,用于对计算机进行编程的计算机程序可以采用在通用处理器上执行的程序指令、用于对fpga进行编程的电路描述代码(circuit description code)等形式。感知部件的实例也可以使用非可编程硬件来实现,例如,专用集成电路(application specific integrated circuit,asic),并且这种硬件在本文中可以被称为非可编程计算机(non-programmable computer)。一般而言,感知部件可以体现在一个或更多个计算机中,一个或更多个计算机可以是可编程的也可以不是可编程的,并且一个或更多个计算机被编程或以其他方式配置为执行该感知部件。
[0595]
参照图8,所描绘的流水线部件是计算机系统的功能部件,其可以在硬件级别以各种方式实现:虽然图8中未示出,但计算机系统包括一个或更多个处理器(计算机),一个或更多个处理器执行上述部件的功能。处理器可以采用通用处理器的形式(例如,cpu(中央处理单元)或加速器(例如,gpu)等)、或者更专业的硬件处理器形式(例如,fpga(filed programmable gate array,现场可编程门阵列))或asic(application-specific integrated circuit,专用集成电路)。尽管未单独示出,但ui通常包括用于接收用户输入以允许用户与系统交互的至少一个显示器和至少一个用户输入设备,例如,鼠标/触控板、触摸屏、键盘等。
[0596]
上面阐述了本发明的各个方面及其示例性实施例。本发明的其他方面和示例性实施例在下文中进行阐述。
[0597]
另一方面提供一种测试机器人规划器和感知系统的性能的方法,该方法包括:
[0598]
接收用于对感知系统的至少一个感知部件进行建模的至少一个概率不确定性分布,如基于通过将至少一个感知部件应用于从一个或更多个传感器部件直接或间接获得的输入而导出的实际感知输出的统计分析来确定至少一个概率不确定性分布;以及
[0599]
在模拟器中运行模拟场景,其中,模拟机器人状态根据由机器人规划器根据为每个模拟场景计算的现实感知输出做出的自主决策而变化;
[0600]
其中,现实感知输出对将由模拟场景中的至少一个感知部件提供的实际感知输出进行建模,但在不将至少一个感知部件应用于模拟场景并且不模拟一个或更多个传感器部件的情况下进行计算,而是通过:
[0601]
(i)基于模拟场景和模拟机器人状态直接计算至少一个感知部件的感知地面实况,以及
[0602]
(ii)根据至少一个概率不确定性分布修改感知地面实况,从而计算现实感知输出。
[0603]
注意术语“感知流水线”、“感知堆栈”和“感知系统”在本文中被同义地使用。术语“感知切片”用于指代由单个pspm建模的感知堆栈(包括一个或更多个感知部件)的全部或部分。如后面所述,在模拟安全测试期间,感知堆栈可以全部或部分地被一个或更多个pspm替换。术语切片也可用于指代预测堆栈中未被pspm建模或由pspm替换的部分,并且含义在背景中将是清楚的。
[0604]
在本发明的优选实施例中,现实感知输出不仅取决于感知地面实况,还取决于一个或更多个“混杂因素”。也就是说,混杂因素对由pspm建模的感知输出的影响。混杂因素表示可能影响感知输出的准确度(例如,天气、照明、另一车辆的速度、与另一车辆的距离等;其他类型的混杂因素的示例将在后面给出)的现实世界条件。据说pspm被映射到表示pspm可以考虑的所有可能的混杂因素或混杂因素的组合的“混杂空间(confounder space)”。这允许pspm以高效的方式准确地建模由混杂空间中的不同点表示的不同真实世界条件,因为pspm消除了为那些不同条件模拟传感器数据的需要,并且不需要作为模拟的一部分应用感知部件本身。
[0605]
词语“混杂因素”有时在统计学中用于指代对因变量和自变量均产生因果影响的变量。然而,在本文中,该词在更一般意义上被用于表示表示某种物理条件的感知误差模型(pspm)的变量。
[0606]
在实施例中,至少一个概率不确定性分布可以用于对感知系统的多个协作感知部件进行建模。
[0607]
在实施例中,可以仅对感知系统的一部分进行建模,并且可以将感知系统的至少第二感知部件应用于现实感知输出,以便提供用于做出所述决策的第二感知输出。
[0608]
第二感知部件可以是融合部件(fusion component),例如,贝叶斯(bayesian filter)或非贝叶斯滤波器(non-bayesian filter)。
[0609]
建模的感知部件可以是对模拟数据中的伪影(artefacts)高度敏感的传感器数据处理部件。在这种情况下,上述方法避免了为该部件模拟高质量传感器数据的需要。例如,感知部件可以是卷积神经网络(cnn)或其他形式的神经网络。
[0610]
替代地或额外地,建模的感知部件可以是传感器数据处理部件,传感器数据处理部件处理固有地难以模拟的传感器数据。例如,radar处理部件。
[0611]
该方法可以包括分析模拟机器人状态的变化以检测模拟机器人状态的不安全行为的实例并确定不安全行为的原因的步骤。
[0612]
可以基于应用于模拟场景和模拟机器人状态的预定义的可接受行为规则集合,来检测不安全行为的实例。
[0613]
这种可接受行为的规则可采用“数字高速公路代码”(dhc)的形式。
[0614]
与dhc结合的pspm允许在不知道哪些会导致不安全/不可接受的行为的情况下被高效地运行的许多现实的模拟(与已知从真实世界测试驾驶不安全的场景的运动变化相反),其中,dhc的预定义的规则用于自动地检测此类行为的实例。
[0615]
可以修改感知部件和/或规划器以减轻不安全行为的原因。
[0616]
可以使用从一个或更多个传感器获得的传感器输出以及与传感器输出相关联的相应感知地面实况来确定概率不确定性分布。
[0617]
概率不确定性分布可以随着一个或更多个混杂因素而变化,其中,为模拟场景选择的一个或更多个混杂因素的集合可用于根据概率不确定性分布修改感知地面实况,其中,每个混杂因素表示物理特性。
[0618]
上述一个或更多个混杂因素可包括以下中的一种或多种:
[0619]-遮挡级别
[0620]-一个或更多个照明条件
[0621]-一天中的时间的指示
[0622]-一种或更多种天气条件
[0623]-季节的指示
[0624]-至少一个外部对象的物理特性
[0625]-传感器条件(例如,视场中的对象位置)
[0626]
在时间依赖模型中,pspm所依赖的另一变量输入可以是从中计算的先前的地面实况和/或至少一个先前的现实感知输出。
[0627]
模拟场景可以源自观察到的真实场景。
[0628]
模拟场景可以是通过模糊化观察到的真实世界场景确定的模糊化场景(fuzzed scenario)。
[0629]
也就是说,作为感知误差的结果,除了在预测和规划系统中出现的输入中产生变化外,还可以将其与通过对测试场景的情况(例如,在该场景中稍微加速或减慢的其他车辆,例如,稍微改变自我汽车(ego car)和其他车辆的初始位置和方向等)进行改变(小或大)来产生额外测试场景的方法相结合。已知现实场景的这两种类型的变化将一起具有更高的命中危险的情况的机会,并且系统需要能够应对。
[0630]
另一方面涉及一种训练感知统计性能模型(pspm)的计算机实现的方法,其中,pspm对由感知切片计算的感知输出中的不确定性进行建模,该方法包括:
[0631]
将感知切片应用于多个训练传感器输出,从而为每个传感器输出计算训练感知输出,其中,每个训练传感器输出与感知地面实况相关联;
[0632]
将每个感知输出与相关联的感知地面实况进行比较,从而计算感知误差δ的集合;
[0633]
使用感知误差δ的集合来训练pspm,其中,所训练的pspm提供形式为p(e|t)的概率感知不确定性分布,其中,p(e|t)表示在给定感知地面实况t的情况下感知切片计算特定感知输出e的概率。
[0634]
另一方面提供了一种在计算机系统中实施的感知统计性能模型(pspm),该pspm用于对感知切片进行建模并被配置为:
[0635]
接收计算的感知地面实况t;
[0636]
基于学习参数θ的集合从感知地面实况t确定形式为p(e|t)的概率感知不确定性分布,其中,p(e|t)表示在给定所计算的感知地面实况t情况下感知切片计算特定感知输出e的概率,以及概率感知不确定性分布是在可能的感知输出的范围上定义的,参数θ从使用要被建模的感知切片生成的实际感知输出集合中学习。
[0637]
在优选实施例中,pspm可根据一个或更多个混杂因素c而变化,其中,每个混杂因素表征物理条件。在这种情况下,概率感知不确定性分布采用的形式为p(e|t,c)。
[0638]
在实施例中,pspm可采用参数分布的形式,该参数分布由从感知误差δ的集合中学习的参数θ的集合定义,并且随着给定感知地面实况t而变化。
[0639]
为了根据混杂因素训练pspm,每个训练感知输出还可与一个或更多个混杂因素集合相关联,一个或更多个混杂因素集合表征其中捕获训练传感器输出的一个或更多个物理条件。
[0640]
可以离线生成用于训练pspm的地面实况,因为与在线情况相比,可以使用更准确
且因此通常更计算机密集型的算法。这些只需要生成一次。
[0641]
请注意,术语参数包括超参数,例如,通过变量推断(variational inference)学到的超参数。
[0642]
在实施例中,与传感器输出相关联的感知地面实况可以使用离线处理(例如,由于硬件限制或因为离线处理本质上是非实时的而不能实时执行的处理)从传感器输出导出。
[0643]
适合pspm的模型通常会引起人们对用于建模的数据中的混杂因素的注意,混杂因素最初可能会或可能不会很明显。这样做的好处是,只有显著的混杂因素才需要单独建模,并且通过数据偏离模型的程度来确定它们的重要性。
[0644]
混杂因素c是经过训练的pspm所依赖的变量。在运行时,通过改变混杂因素c的值,可以针对不同的物理情况获得现实感知输出(即具有现实误差)。变量可以是数值(例如,连续/伪连续)或分类(例如,二进制值或非二进制分类值)。
[0645]
可能的是pspm的训练揭示了对一个或更多个物理特性的统计显著依赖,一个或更多个物理特性当前没有被现有的混杂因素c表征。例如,当经过训练的pspm得到验证时,它在某些类型的数据上的表现可能比预期的差,并且,分析能够将其归因于对在pspm中未明确建模的物理条件的依赖。
[0646]
因此,在实施例中,该方法可包括以下步骤:针对混杂因素c分析经训练的pspm(例如,使用验证感知误差数据集验证pspm),以及响应于此,针对一个或更多个混杂因素c

的新集合重新训练pspm,由此,重新训练的pspm的概率感知不确定性分布采用形式p(e|t,c

)。
[0647]
例如,可以通过在中添加或删除混杂因素c来确定c

。例如,如果混杂因素被认为具有统计显著性,则可以添加该混杂因素,或者如果分析表明混杂因素实际上不具有统计显著性,则可以删除该混杂因素。
[0648]
通过以这种方式对pspm建模,可以确定哪些混杂因素具有统计显著性并需要建模,哪些混杂因素在统计上不显著且不需要建模。
[0649]
例如,上述一个或更多个混杂因素可包括以下一项或更多项:
[0650]-至少一个外部对象的遮挡级别(指示该对象相对于主体的遮挡程度。该外部对象可以是移动的活动者或静态对象)
[0651]-一个或更多个照明条件
[0652]-一天中的时间的指示
[0653]-一种或更多种天气条件
[0654]-季节的指示
[0655]-至少一个外部对象的物理特性(例如,与主体的位置/距离、相对于主体的速度/速率/加速度等)
[0656]-外部对象在主体视场中的位置(例如,在相机的情况下,与图像中心的角度)
[0657]
本文的另一方面提供一种用于测试和/或训练机器人系统的运行时堆栈的计算机系统,该计算机系统包括:
[0658]
模拟器,该模拟器被配置为运行模拟场景,其中,模拟主体与一个或更多个外部对象交互;
[0659]
运行时堆栈,该运行时堆栈包括被配置为接收每个模拟场景的感知输出的时间序
列的输入、被配置为根据感知输出做出自主决策的规划器、及被配置为生成一系列控制信号以使模拟主体随着模拟场景的进展执行决策的控制器;
[0660]
其中,计算机系统被配置为通过以下操作来计算时间序列的每个感知输出:
[0661]
基于模拟场景的当前状态计算感知地面实况;
[0662]
将上述pspm应用于感知地面实况,从而确定概率感知不确定性分布;以及
[0663]
从概率感知不确定性分布中采样感知输出。
[0664]
优选地,将pspm应用于感知地面实况和与模拟场景相关联的一个或更多个混杂因素集合。
[0665]
可以使用光线跟踪(ray tracing)为每个外部对象计算感知地面实况。
[0666]
每个外部对象可以是移动的活动者或静态对象。
[0667]
可以多次运行相同的模拟场景。
[0668]
可以使用不同的混杂因素多次运行相同的模拟场景。
[0669]
运行时堆栈可包括预测堆栈,该预测堆栈被配置为基于感知输出来预测外部活动者的行为,其中,控制器可被配置为根据预测的行为做出决策。
[0670]
计算机系统可被配置为在测试数据库中记录每个模拟场景的细节,其中,细节包括由规划器做出的决策、那些决策所基于的感知输出以及模拟主体在执行那些决策时的行为。
[0671]
该计算机系统可包括场景评估部件,该场景评估部件被配置为分析每个模拟场景中与预定行为规则集合相关的模拟主体的行为,以便对主体的行为进行分类。
[0672]
场景评估部件的分析结果可用于制定模拟策略。例如,可以根据分析结果对场景进行“模糊化”(见下文)。
[0673]
主体的行为可以分为安全或不安全。
[0674]
为了对假阴性检测进行建模,概率感知不确定性分布可提供成功检测到可见对象的概率,该概率用于确定是否为该对象提供对象检测输出。(在此情况下,可见对象意味着在模拟场景中处于主体的传感器视场中但主体仍有可能无法检测到的对象)。
[0675]
可以使用时间依赖pspm(例如,隐马尔可夫模型)可以在上述任何一个中。
[0676]
在对假阴性进行建模的情况下,可使用时间依赖pspm,使得检测可见对象的概率取决于关于是否为可见对象提供对象检测输出的至少一个较早的确定。
[0677]
为了对假阳性检测进行建模,概率不确定性分布可提供假对象检测的概率,该概率用于确定是否为不存在的对象提供感知输出。
[0678]
一旦确定了“地面实况”,如果在没有pspm的情况下在循环中运行场景,则可以探索规划器中的潜在误差。这可以扩展到自动地分类数据以指示感知问题或规划器问题。
[0679]
在实施例中,可以无需应用pspm而是通过直接向运行时堆栈提供感知地面实况来重新运行模拟主体表现出不安全行为的模拟场景。
[0680]
然后,可以执行分析,以确定模拟主体在重新运行场景中是否仍然表现出不安全的行为。
[0681]
本发明的另一方面提供了一种测试机器人规划器的方法,该机器人规划器用于使用至少一个感知部件的感知输出做出自主决策,该方法包括:
[0682]
在计算机系统中运行模拟场景,其中,模拟机器人状态根据由机器人规划器使用
针对每个模拟场景计算的现实感知输出做出的自主决策而变化;
[0683]
对于每个模拟场景,确定模拟场景和模拟机器人状态的本体表示(ontological representation);以及
[0684]
将预定义可接受行为规则集合[例如,dhc]应用于每个模拟场景的本体表示,以便在一个或更多个模拟场景中记录和标记预定义可接受行为规则的违反。
[0685]
本发明的另一方面提供一种计算机实现方法,该方法包括实现上述任何程序、系统或pspm功能的步骤。
[0686]
进一步的方面提供一种计算机系统,该系统包括被编程或以其他方式配置为执行本文公开的任何功能的一个或更多个计算机,以及用于对计算机系统进行编程以执行所述功能的一个或更多个计算机程序。
[0687]
应当理解,本发明的各种实施例仅以示例的方式进行了描述。本发明的范围不由所描述的实施例限定,而仅由所附权利要求限定。
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献