使用占用流场预测代理在环境中的未来移动的制作方法

文档序号:31656369发布日期:2022-09-27 22:21阅读:49来源:国知局
使用占用流场预测代理在环境中的未来移动的制作方法
使用占用流场预测代理在环境中的未来移动
1.对相关申请的交叉引用
2.本技术要求2021年3月18日提交的美国临时申请no.63/162,988和2022年3月4日提交的美国临时申请no.63/316,801的权益。这些在先申请的公开内容被视为本技术公开内容的一部分,并通过引用并入本技术公开内容中。


背景技术:

3.本发明预测代理在环境中的运动。
4.环境可以是真实世界的环境,并且代理可以例如是环境中的载具、行人或骑自行车的人。预测对象的运动是运动规划所需的任务,例如自主载具。
5.自主载具包括自动驾驶汽车、船只和飞机。


技术实现要素:

6.本说明书通常描述了在一个或多个位置的一个或多个计算机上实现为计算机程序的系统,生成环境的自上而下表示的特征,然后使用神经网络处理环境的自上而下表示的特征,以生成表征代理在环境中的未来运动的预测。
7.更具体地,对于未来时间点序列中的每个未来时间点和一组一个或多个代理类型中的每个代理类型,预测指定(i)对未来时间步长的占用预测,对于自上而下表示中的每个网格单元,指定代理类型的任何代理将在未来时间点占用该网格单元的占用可能性,以及(ii)运动流预测,对于每个网格单元,指定表示在未来时间点在该网格单元内代理类型的代理的预测运动的运动向量。
8.因此,对于给定代理类型,系统处理相同自上而下表示的相同特征,以并行生成一组占用预测和一组运动流预测二者。例如,系统可以为给定代理类型生成单个特征图,包括该代理类型的占用预测和该代理类型的运动流预测二者。
9.本说明书中描述的主题可以在特定实施例中实施,以便实现以下优点中的一个或多个。
10.运动预测是多代理环境中规划的重要组成部分,并且自主驾驶特别感兴趣。
11.一些现有方法对不确定的未来进行建模,即考虑到代理的未来运动可能具有多个可信的未来实现,作为每个代理的一组紧凑轨迹上的分布。相对于此,生成占用预测的基于占用网格的方法提供了一些显著的优势:非参数占用预测捕获更丰富的未来分布类别,结合形状和身份不确定性,并对时空单元中任何代理存在的联合概率(而不是每个代理的独立边际概率)建模。虽然这些优势使占用网格成为一个有吸引力的选择,但是占用网格方法的缺点是代理身份丢失,即,从给定占用预测中,哪个代理可能占用对应的网格单元并不明显(只有某些代理可能占用该单元),并且没有显而易见的方法可以从网格中提取运动(这是时间间隔的快照)。这使得不清楚如何以更精细的时间粒度在占用预测之间进行插值,并且无法从占用预测直接预测单个代理的速度。
12.另一方面,本说明书描述了使用流场扩展标准占用网格的占用流场。也就是说,所
描述的技术也对每个网格单元并在每个未来时间点预测运动流预测,其表示在网格单元内适当类型的任何代理的预测运动。通过使用流估计来增强输出,所描述的技术允许系统,例如自主载具的规划系统,通过遵循预测流向量序列,而将占用从遥远未来网格位置跟踪到当前时间位置。因此,克服了无法从占用预测中恢复代理身份的缺点,即,因为这种“跟踪”允许为任何未来的网格单元恢复最可能的代理身份,同时保持上述优势。
13.并入流预测的另一个优点是它允许占用模型以更少的“关键帧”来捕获未来行为,即具有更少、更多间隔的未来时间步长的序列,因为流预测可以被用于在任何连续的时间点扭曲(warp)或变形(morph)占用,允许在存在占用预测的两个时间点之间的时间点进行有效插值。也就是说,如果自主载具的规划系统需要一个时间点的占用预测,该时间点不是已经对其生成预测的序列中的未来时间点之一,则系统可以使用序列中的一个或多个相邻未来时间点的流预测来修改(“扭曲”)在一个或多个相邻未来时间点的占用预测,以生成所需时间点的占用预测。
14.此外,当流公式为每个代理捕获多个行进方向时,变形处理将导致从最后一个已知代理占用保守地扩展占用。因此,规划系统可以安全地使用变形的占用,该规划系统为自主载具规划路径,以最小化载具与预测占用的托管。
15.更进一步,由于所描述的技术不进行以代理为中心的预测,而是使用占用和流预测对未来行为进行建模,因此系统可以有效地进行其中并入截至当前时间点尚未检测和跟踪的代理行为的预测。具体而言,考虑到当前最先进的实时感知,运动预测系统可用的跟踪质量可能会受到限制。例如,由于遮挡或距离增加,系统可能无法有效地跟踪代理。更重要地,新代理可能会通过解除遮挡或以其他方式进入自主载具的视野而出现。推理这些所谓的投机代理的位置和速度对于安全有效的自主驾驶至关重要。为已经检测到并跟踪的代理预测相应轨迹的轨迹预测模型不能处理可能从遮挡区域出来或可能进入传感器范围内的代理,而所描述的技术可以结合在未来时间步长在占用和流预测内的此类事件的可能性。
16.本说明书的主题的一个或多个实施例的细节在附图和以下描述中阐述。本主题的其他特征、方面和优点将从描述、附图和权利要求中变得显而易见。
附图说明
17.图1是示例系统的示意图。
18.图2是用于生成占用流预测的示例处理的流程图。
19.图3示出运动预测系统执行的操作的示例。
20.图4是用于为给定代理类型的未来时间点生成流扭曲占用的示例处理的流程图。
21.不同附图中相同的附图标记和名称表示相同的元件。
具体实施方式
22.本说明书描述了载具——例如,自主或半自主载具——如何使用训练的机器学习模型(在本说明书中称为“运动预测系统”)来生成占用流预测(occupancy flow prediction),占用流预测表征在环境中周围代理在载具附近的预测未来运动。
23.在本说明书中,“周围代理”可以指代载具、自行车、行人、船舶、无人机或环境中的任何其他移动物体,而不失一般性。
24.本说明书也描述了如何使用由载具或其他源生成的训练示例来有效地训练运动预测系统以准确可靠地进行预测。
25.图1是示例系统100的示意图。系统100包括车载系统110和训练系统120。
26.车载系统110位于载具102上。虽然图1被示为汽车,但是车载系统102可以位于任何合适的载具类型上。
27.在一些情况下,载具102是自主载具。自主载具可以是完全自主的载具,其确定并执行全自主驾驶决策以便在环境中导航。自主载具也可以是使用预测来帮助人类驾驶员的半自主载具。例如,如果预测表明人类驾驶员将要与另一辆车相撞,则载具102可以自主地应用制动器。作为另一示例,载具102可以具有高级驾驶员辅助系统(adas),其通过检测潜在的不安全情况并警告人类驾驶员或以其他方式响应不安全情况来辅助载具102的人类驾驶员驾驶载具102。作为特定示例,载具120可以在检测到障碍物时、在载具离开行驶车道时或在人类驾驶员的盲区中检测到对象时提醒载具102的驾驶员或采取自主驾驶动作。
28.机载系统110包括一个或多个传感器子系统130。传感器子系统130包括接收电磁辐射反射的组件的组合,例如,检测激光反射的激光雷达系统、检测无线电波反射的雷达系统以及检测可见光反射的相机系统。
29.由给定传感器生成的传感器数据通常指示反射辐射的距离、方向和强度。例如,传感器可以在特定方向传输一个或多个电磁辐射脉冲,并且可以测量任何反射的强度以及接收到反射的时间。可以通过确定脉冲与其相应反射之间花费的时间来计算距离。传感器可以连续扫描特定空间的角度、方位角或两者。例如,按方位角扫描可以让传感器沿着同一视线检测多个对象。
30.传感器子系统130或载具102的其他组件也可以将来自一个或多个传感器的一组一个或多个原始传感器测量分类为另一代理的测量。传感器测量的组可以取决于所捕获的传感器测量的种类以多种方式中的任何一种来表示。例如,每组原始激光传感器测量可以被表示为三维点云,每个点在特定的二维或三维坐标空间中具有强度和位置。在一些实现中,位置被表示为范围和高度对。每组相机传感器测量都可以表示为图像块,例如rgb图像块。
31.一旦传感器子系统130将一组或多组原始传感器测量分类为相应其他代理的测量,传感器子系统130可以将原始传感器测量编译成一组原始数据132,并将原始数据132发送到数据表示系统140。
32.同样车载位于载具102上的数据表示系统140接收来自传感器系统130的原始传感器数据132和表征环境的其他数据,例如标识载具附近的地图特征的地图数据,并生成场景数据142。场景数据142表征截至当前时间点的载具102周围环境的当前状态。
33.特别地,场景数据142至少包括:(i)表征环境中一个或多个代理中的每一个的观察轨迹的数据,即,从传感器子系统130的输出生成的一个或多个周围代理的观察轨迹;以及(ii)表征环境地图的地图特征的道路图数据。表征观察轨迹的数据可以包括指定对应周围代理在当前时间步长以及在该时间步长之前的一个或多个时间步长的位置的数据。数据也可以可选地包括其他信息,例如代理的航向、代理的速度、代理的类型等。地图特征可以包括车道边界、人行横道、交通灯、路标、减速带和其他类型的道路特征。
34.数据表示系统140将场景数据142提供给运动预测系统150,运动预测系统150也在
载具102上。
35.运动预测系统150处理场景数据142以生成环境的自上而下表示的特征。环境的自上而下表示是包括多个网格单元的网格,每个网格单元表示环境中场景的区域。例如,网格可以以载具102的当前位置为中心并且可以包括覆盖环境中载具102周围的预定大小区域的均匀间隔的网格单元。对于自上而下表示中的每个网格单元,特征通常包括相应特征,例如特征向量、特征矩阵或高阶特征张量。
36.然后,运动预测系统150处理场景数据142以生成占用流预测152。
37.占用流预测152包括用于未来时间点序列中的每个未来时间点和用于一组一个或多个代理类型中的每个代理类型的相应输出。
38.未来时间点序列通常包括固定数量的未来时间点,例如,覆盖预定长度的未来时间窗的均匀间隔的未来时间点。
39.在某些情况下,只有单个代理类型,例如,所有动态代理被指定为同一类型,或者系统仅对某种动态代理进行预测,例如载具、行人或骑自行车的人。在其他一些情况下,存在多个代理类型,例如,系统对载具进行一组预测,并且对行人进行一组预测。
40.因此,当存在单个代理类型时,每个未来时间点存在单个输出。当有多个代理类型时,每个未来时间点存在多个输出,即,多个代理类型中的每一种都有一个输出。
41.给定代理类型和给定未来时间点的输出包括:(i)未来时间步长的占用预测,对于自上而下表示中的每个网格单元,指定代理类型的任何代理将在未来时间点占用网格单元的占用可能性;以及(ii)运动流预测,对于每个网格单元指定表示在未来时间点网格单元内代理类型的代理的预测运动的运动向量。
42.通常,对于每个网格单元和在每个未来时间点,运动向量表示对于在未来时间点位于网格单元的场景的一部分,预测对应的先前时间点和未来时间点之间的部分的位置变化。对于序列中的第一未来时间点,对应的先前时间点就是当前时间点。对于序列中的每个后续时间点,对应的时间点是序列中紧接在前的未来时间点。
43.作为特定示例,运动向量可以等于(i)网格单元的坐标和(ii)在对应的先前时间点处由场景的一部分所占用的网格单元的坐标之间的预测差。因此,运动向量是二维向量,指定在自上而下表示中以网格单元为单位以未来时间步位于网格单元处的对应代理类型的任何代理的预测运动。然而,每个坐标都可以是实值的,即,坐标不需要是唯一标识网格单元的整数值,并且可以是具有表示两个网格单元的整数之间的值的实值坐标。
44.通常,对于每个网格单元和在每个未来时间点,占用可能性表示代理类型的任何代理的任何部分将在未来时间点占用网格单元的预测可能性。也就是说,如果代理类型的任何代理的任何部分占用网格单元,则认为网格单元在对应的未来时间步长被占用,而不管代理类型的哪个代理正在占用网格单元。
45.特别地,占用流预测152可以包括对于每个代理类型的特征图,该特征图对于每个网格单元包括指定在每个未来时间点的网格单元的占用可能性和运动向量的相应向量。因此,对于每个网格单元,特征图包括表示代理类型的代理的运动向量的每个未来时间点的两个值以及表示代表运动向量的占用可能性的每个未来时间点的一个值。
46.通常,运动预测系统150使用一组训练的神经网络,即,根据一组训练的神经网络的训练模型参数195,生成占用流预测152。下文将参考图2和3更详细地描述生成占用流预
测152。
47.车载系统110也包括规划系统160。规划系统160可以为载具102做出自主或半自主驾驶决策,例如,通过生成表征载具102未来将采用的路径的规划载具路径。
48.车载系统100可以将由运动预测系统150生成的占用流预测152提供给载具102的一个或多个其他车载系统,例如规划系统160和/或用户接口系统165。
49.当规划系统160接收到占用流预测152时,规划系统160可以使用占用流预测152来生成规划载具未来轨迹的规划决策,即生成新的规划载具路径。
50.例如,占用流预测152可以包含特定网格单元将在特定未来时间点被占用的预测,这可能导致碰撞。在该示例中,规划系统160可以生成避免潜在碰撞的新规划载具路径,并使载具102遵循新规划路径,例如,通过自主控制载具的转向,并避免潜在碰撞。
51.作为另一个示例,规划系统160可以使用占用流预测152来预测在当前时间步长处当前在环境中可见的代理的可能行为。例如,规划系统160可以对于一个或多个未来时间点中的每一个以及对于每个网格单元,规划系统160可以确定在当前时间点的环境中的代理子集,其可以在未来时间点的网格单元中观察到,可以通过使用未来时间点的运动流预测迭代扭曲当前时间点的初始观察占用直至并包括未来时间点在未来时间点的网格单元中观察到。下面参考图3描述使用运动流预测来扭曲占用。因此,尽管未来时间步长的输出不是特定于代理的,但使系统160可以使用占用流预测152来恢复当前时间点环境中各个代理的合理未来轨迹。
52.当用户接口系统165接收到占用流预测152时,用户接口系统165可以使用占用流预测152向载具102的驾驶员呈现信息以帮助驾驶员安全地操作载具102。用户接口系统165可以通过任何适当的方式将信息呈现给代理102的驾驶员,例如,通过经由载具102的扬声器系统发送的音频消息或通过在代理中的视觉显示系统(例如,载具102的仪表板上的lcd显示器)上显示的警报。在特定示例中,占用流预测152可以包含预测,在载具102的当前路径中的特定网格单元将来可能被占用,从而潜在地导致碰撞。在该示例中,用户接口系统165可以向载具102的驾驶员呈现警报消息,指示调整载具102的轨迹以避免碰撞或通知载具102的驾驶员如果驾驶员不会修改其路径可能发生碰撞。
53.为了生成占用流预测152,运动预测系统150可以使用从训练系统120中的模型参数存储190获得的训练参数值195,即运动预测系统150的训练模型参数值。
54.训练系统120通常被托管在数据中心124内,该数据中心124可以是在一个或多个位置具有数百或数千台计算机的分布式计算系统。
55.训练系统120包括训练数据存储170,其存储用于训练运动预测系统的所有训练数据,即确定运动预测系统150的训练参数值195。训练数据存储170从在真实世界中操作的代理接收原始训练示例。例如,训练数据存储170可以从载具102和与训练系统120通信的一个或多个其他代理接收原始训练示例155。原始训练示例155可以由训练系统120处理以生成新训练示例。原始训练示例155可以包括场景数据,即,类似于场景数据142,其可以用作新训练示例的输入。原始训练示例155还可以包括表征载具102周围的环境在一个或多个未来时间点的状态的结果数据。该结果数据可以被用于为每个网格单元和一种或多种代理类型中的每一种以及一个或多个未来时间点中的每一个生成真值占用和真值流。
56.如果对应代理类型的任何代理的任何部分在给定未来时间点位于对应网格单元
内,则在给定未来时间点的真值占用等于1,并且如果没有对应代理类型的任何代理的任何部分在给定未来时间点位于对应网格单元内,则等于0。
57.如果对应代理类型的任何代理的任何部分在给定未来时间点位于对应网格单元内,则真值流识别网格单元的坐标与代理在先前时间点所在的网格单元的坐标之间的实际差异。如果没有对应代理类型的任何代理的任何部分在给定未来时间点位于对应网格单元内,则可以将真值流标记为无效,即,不会为对应预测计算损失。
58.训练数据存储170向训练引擎180提供训练示例175,训练引擎180也托管在训练系统120中。
59.训练引擎180使用训练示例175来更新将由运动预测系统150使用的模型参数,并且将更新模型参数185提供给模型参数存储190。
60.也就是说,训练引擎180在训练示例175上训练由运动预测系统150使用的神经网络,以使用基于梯度的机器学习技术来最小化损失函数。下面参考图2更详细地描述训练神经网络和用于训练的损失函数。
61.一旦运动预测系统150的参数值已经被完全训练,则训练系统120可以例如通过有线或无线连接将训练参数值195发送到运动预测系统150。
62.图2是用于生成占用流预测的示例处理200的流程图。为了方便,处理200将被描述为由位于一个或多个位置的一个或多个计算机的系统执行。例如,训练系统,例如图1的训练系统120,根据本说明书适当地编程,可以执行处理200。
63.系统接收表征在当前时间点的环境中的场景的输入(步骤202)。环境中的“场景”是自主载具传感器范围内的环境区域。
64.特别是,系统从至少两个源获得输入。
65.第一源是环境地图,即环境场景的地图。从环境地图获得的数据包括表征在环境地图中识别的一个或多个道路特征的数据,例如车道、人行横道、减速带、交通灯等。
66.第二源是处理传感器读取以检测环境中的对象的感知系统的输出,例如图1的传感器子系统130的输出。从感知系统的输出中获得的数据包括表征环境中一个或多个代理中的每一个到当前时间点的观察轨迹的数据。
67.系统从输入生成编码表示,包括环境的自上而下表示中的每个网格单元的相应特征(步骤204)。通常,系统使用编码器神经网络处理源自输入的数据以生成相应特征。
68.例如,系统可以将输入表示为自上而下表示中的多个点,每个点与属性相关联,并表示当前时间点的环境中的场景,然后使用编码器神经网络处理每个网格单元中点的属性,生成网格单元格的特征。
69.上面参考图3描述了用于生成编码表示的一种示例技术。
70.系统使用解码器神经网络来处理编码表示,该解码器神经网络被配置为处理编码表示以生成占用流预测(步骤206)。
71.占用流预测对未来时间点序列中的每个未来时间点以及一组一个或多个代理类型中的每个代理类型指定:(i)未来时间步长的占用预测,对每个网格单元指定代理类型的任何代理将在未来时间点占用网格单元的占用可能性;以及(ii)运动流预测,对每个网格单元指定表示在未来时间点网格单元内的代理类型的代理的预测运动的运动向量。
72.因此,对于给定代理类型,系统处理相同编码表示以并行生成一组占用预测和一
组运动流预测二者。
73.在某些情况下,只有一种代理类型,例如,所有动态代理都被指定为同一类型,或者系统仅对某种动态代理进行预测,例如载具、行人或骑自行车的人。在其他一些情况下,存在多种代理类型,例如,系统对载具进行一组预测,并且对行人进行一组预测。
74.如上所述,训练系统训练神经网络组件,即编码器和解码器神经网络,用于对训练示例批次生成占用预测,以使用任何适当的机器学习训练技术(例如,具有任何适当优化器的梯度下降技术,例如随机梯度下降、adam、rmsprop或adafactor)最小化损失函数。通常,梯度在训练期间通过解码器神经网络反向传播到编码器神经网络。
75.如上所述,每个训练示例包括训练输入,即,表征环境中场景的训练场景数据,并且对于每个代理类型,在每组未来时间点的真值占用和在每组未来时间点的真值流。
76.通常,损失函数包括:(i)占用损失,测量相对于对应真值占用的占用预测中的误差;以及(ii)流损失,测量相对于对应真值流的运动流预测中的误差。
77.例如,占用损失可以是每个网格单元的逻辑交叉熵损失,例如,所有网格单元、所有代理类型和批次内所有未来时间步长的平均值或总和。
78.作为另一个示例,流损失可以是关于真值流的l1范数回归损失,例如,所有代理类型、所有未来时间步长和所有具有有效真值流的网格单元(即对应代理类型的代理在对应时间实际位于对应网格单元)的平均值或总和。
79.可选地,损失函数也可以包括流迹损失(flow trace loss)。对于每个未来时间点、每个网格单元和每个代理类型,流迹损失测量:(i)未来时间点的流扭曲占用与未来时间点的占用预测的乘积和(ii)未来时间点的真值占用之间的误差。因此,流迹损失测量使用运动流预测在当前时间点扭曲初始占用的准确性。
80.每个未来时间点的流扭曲占用是通过使用在未来时间点直到并包括未来时间点的运动流预测迭代扭曲在当前时间点的初始观察的占用来生成的。也就是说,在每个未来时间点,从先前流扭曲占用产生的流扭曲占用和未来时间步长的流场,包括时间步长的所有网格单元的运动向量。对于第一未来时间点,先前流扭曲占用是在当前时间点观察的占用,指示对于每个网格单元,网格单元中是否存在任何对应类型的代理。
81.下面参考图4描述生成给定未来时间点的流扭曲占用。
82.例如,整体损失函数可以是单个损失的总和或加权总和,例如,损失权重是训练的超参数。
83.一旦训练系统训练了运动预测系统,训练系统就可以使用多种度量中的任何一种来评估运动预测系统的性能。例如,系统可以确定运动预测系统对于一组度量中的每个度量是否具有满足阈值的度量值并确定在载具上部署运动预测,即,通过仅当运动预测系统具有满足阈值的度量值时向载具的车载系统提供训练参数值。
84.该组度量可以包括一个或多个度量中的任何一个。
85.作为一个示例,该组可以包括测量占用预测的质量的一个或多个占用度量。
86.这种度量的一个示例是曲线下面积(auc)度量。对每种代理类型和每个未来时间点,auc度量计算在不同占用可能性阈值下计算的不同精度召回的精度召回曲线下的面积,例如,区间[0,1]上的线性间隔阈值。
[0087]
另一个示例占用度量是联合软交叉(soft-iou)度量,对于每种代理类型和每个未
来时间点,soft-iou度量测量占用预测和真值占用之间的重叠区域。
[0088]
例如,对于每个代理类型和每个未来时间点,soft-iou度量可以等于(i)网格单元的预测占用可能性与网格单元的真值占用之间的乘积在网格单元上的总和与(i)网格单元的预测占用可能性之和、(b)网格单元的真值占用和(iii)网格单元的预测占用可能性与网络单元的真值占用直接的乘积在网格单元上的总和的比率
[0089]
作为一个示例,该组可以包括测量流预测质量的一个或多个流度量。
[0090]
这种度量的一个示例是端点错误(epe)度量。epe度量计算平均端点误差l2距离,即,对于每种代理类型和每个未来时间点,预测运动向量与具有有效真值流的网格单元的真值流之间的l2距离的平均值。
[0091]
这种度量的另一个示例是id recall度量。id recall度量测量每个真实占用网格的正确召回id的百分比。也就是说,对于每个未来时间步长和每个代理类型,id recall度量测量(i)未来时间步长的流扭曲占用指示正确代理位于网格单元的网格单元数量与(ii)根据真值占用在未来时间点占用的网格单元总数的比率。
[0092]
作为另一示例,该组可以包括测量流预测和占用预测的质量的一个或多个组合度量。
[0093]
这种度量的一个示例是流迹(ft)auc度量。流迹auc度量被计算为上述auc度量,但是预测占用可能性被未来时间步长的流扭曲占用的可能性代替。
[0094]
这种度量的另一个示例是流迹(ft)iou度量。流迹iou度量被计算为上述(soft-iou)度量,但是预测占用可能性被未来时间步长的流扭曲占用的可能性代替。
[0095]
图3示出由运动预测系统150执行的操作的示例。
[0096]
如上所述,系统150从至少两个源获得输入:(i)环境地图;以及(ii)处理传感器读取以检测环境中的对象的感知系统的输出。
[0097]
此外,系统150将输入表示为自上而下表示310中的多个点,每个点与属性相关联并且表示当前时间点的环境中的场景。通常,每个点的属性至少标识自上而下表示310中的点的坐标,即,该点属于自上而下表示310中的哪个网格单元。
[0098]
特别地,在图3的示例中,从感知系统的输出获得的数据被表示为一组过去代理状态点302,即表征环境中一个或多个代理中的每一个直到当前时间点的观察轨迹的数据。
[0099]
每个观察的代理由在直到当前时间点为止观察代理的一个或多个时间点中的每一个的一个或多个点表示。例如,在观察代理的每个时间点,可以将点采样为固定大小的点网格,这些点从表示代理在表示中时间点的位置的框内均匀采样。给定时间点的属性可以包括表示代理在对应时间点的状态的属性。例如,属性可以包括以下任何一项或多项:代理的中心位置、表示代理位置的框的方向、框宽度和长度、代理在时间步长的速度、代理在时间步长的加速度、代理类型等。
[0100]
从环境地图获得的数据被表示为道路结构点304和交通灯点306。
[0101]
给定道路特征(例如车道、人行横道或其他交通对象)的道路结构点可以是从表示道路特征的线段和曲线中均匀采样的一组点。属性可以识别点的位置和基础道路特征的类型,例如,从包括人行横道、减速带、停车/让行标志、道路边缘边界、停车线、虚线、单/双实线和双黄实线中的一个或多个的组选择的。
[0102]
给定交通灯的交通灯点可以位于交通灯所在的网格单元中,属性可以识别交通灯
的位置,即位于交通灯控制的交通管制车道的一端以及灯状态,它是红、黄、绿、未知中的一种,可以从感知系统的输出中获得。
[0103]
系统150从状态点302、道路结构点304和交通灯点306生成编码表示350,包括用于环境的自上而下表示310(也称为自上而下表示310的“柱(pillar)”)中的每个网格单元的相应特征(也称为“嵌入(embedding)”)。
[0104]
在图3的示例中,为了生成编码表示350,对于每个网格单元,系统150识别网格单元内的点并使用编码器神经网络(“每柱编码器神经网络”)320处理网格单元内的点的属性,以生成网格单元的相应特征。
[0105]
如图3所示,例如,自上而下表示310中的网格单元322包括三个点并且编码器神经网络320包括多层感知器(mlp)330和池化层340,例如最大池化层或平均池化层。系统150使用mlp 330处理网格单元中每个点的属性以生成点的特征。然后系统150使用池化层340处理每个点的特征,即,对点的特征应用对应池化操作,以生成网格单元的特征342(“柱”的“嵌入”)。
[0106]
系统使用解码器神经网络360处理编码表示(“每柱嵌入”)350。解码器神经网络360被配置为处理编码表示350以生成解码器输出370。如图3所示,解码器输出370是[h,w,|k|*t
pred
*3]张量,即具有|k|*t
pred
*3个通道的h xw特征图,其中,h是自上而下表示的高度,w是自上而下表示的宽度,|k|是代理类型的数量,t
pred
是序列中未来时间长步的数量,并且3是表示给定代理类型和给定网格单元的每个运动向量(例如,运动向量的x和y分量)所需的2个值和表示给定代理类型和给定网格单元的占用可能性所需的1个值的总和。
[0107]
因此,解码器输出370为t
pred
个未来时间点序列中的每个未来时间点和一组k代理类型中的每个代理类型指定:未来时间步长的占用预测,对于h xw网格单元的每一个,指定代理类型的任何代理将在未来时间点占用网格单元的占用可能性;以及运动流预测,对于每个网格单元指定表示代理类型的代理在未来时间点的网格单元格内的预测运动的运动向量。
[0108]
因此,从相同的编码表示310,解码器神经网络360并行地生成占用预测和运动流预测二者。
[0109]
解码器神经网络370通常可以具有允许神经网络370将每个网格单元的相应嵌入映射到每个网格单元的相应占用预测和运动流预测的任何适当架构。例如,解码器神经网络370可以是将输入特征图映射到具有相同维度但不同数量通道的输出特征图的全卷积神经网络。
[0110]
在图3的特定示例中,解码器神经网络370包括卷积神经网络主干372,其从编码表示310生成不同空间尺度的多个特征图。作为特定示例,卷积主干可以具有生成特征图(p2,...,p7)的efficientnet架构,其中,pi从先前空间尺度被下采样2i。
[0111]
解码器神经网络370还包括融合神经网络374,其融合多尺度特征以生成至少用于最高分辨率特征图的融合特征。在图3的示例中,融合神经网络374是以双向方式融合多尺度特征的bifpn(双向特征金字塔网络)。
[0112]
然后,解码器神经网络370使用最高分辨率特征图p2来回归所有代理类别k在所有t
pred
个未来时间步长上的占用和流预测,例如,通过使用多层感知器(mlp)或卷积神经网络处理最高分辨率特征图。
[0113]
图4是用于为给定代理类型生成未来时间点的流扭曲占用的示例处理400的流程图。为了方便,处理400将被描述为由位于一个或多个位置的一个或多个计算机的系统执行。例如,训练系统,例如图1的训练系统120或车载系统,例如图1的车载系统110,根据本说明书适当地编程,可以执行处理400。
[0114]
系统获得给定代理类型的未来时间步长的流场,包括网格单元的运动向量(步骤402)。
[0115]
系统获得给定代理类型的先前流扭曲占用(步骤404)。先前流扭曲占用对于自上而下表示中的每个网格单元都有相应值。对于第一未来时间点,先前流扭曲占用是在当前时间点观察的占用,指示对于每个网格单元,网格单元处是否存在对应类型的任何代理。也就是说,观察占用中的所有值都为零或一。如下文将描述的,未来时间点的流扭曲占用中的值是介于零和一之间的实际值,包括零和一,即,不一定等于零或等于一。
[0116]
对于每个网格单元,系统识别与由网格单元的运动向量识别的自上而下表示中的位置相邻的一个或多个网格单元,即在先前时间点在网格单元处的场景部分的位置(步骤406),并通过在先前流扭曲占用中相邻网格单元的占用值之间进行插值,计算未来时间点的流扭曲占用中网格单元的占用值(步骤408)。
[0117]
例如,系统可以将在运动向量所识别的位置的阈值距离内的每个网格单元识别为相邻网格单元,或者可以识别与运动向量所识别的位置最接近的阈值数量的网格单元。
[0118]
然后,系统可以通过基于每个相邻网格单元的位置和坐标执行插值,例如双线性采样(双线性插值),在占用值之间进行插值,以生成每个相邻网格单元的相应权重。然后,系统可以将网格单元的占用值计算为先前流扭曲占用中相邻网格单元的占用值的加权和,即,由对应相邻网格单元的权重加权。因为占用值是作为加权和计算的,所以占用值不需要等于零或一,而是落在零和一之间的范围内,包括零和一。
[0119]
系统可以在训练期间执行处理400以计算训练的损失函数,可以在载具上执行处理400以确定在当前时间步长在环境中观察的代理的合理未来轨迹,或两者。
[0120]
本说明书中描述的主题和功能操作的实施例可以在数字电子电路中,在有形体现的计算机软件或固件中,在计算机硬件中实现,包括本说明书中公开的结构及其等同结构,或它们中的一个或多个的组合。本说明书中描述的主题的实施例可以被实现为一个或多个计算机程序,即,在有形非暂时性存储介质上编码的计算机程序指令的一个或多个模块,以由数据处理装置执行或控制操作。计算机存储介质可以是机器可读存储设备、机器可读存储基板、随机或串行访问存储设备或它们中的一个或多个的组合。可选地或附加地,程序指令可以被编码在人工产生的传播信号上,例如机器产生的电,光或电磁信号,其被产生以对信息进行编码用于传输到合适的接收器装置由数据处理装置执行。
[0121]
术语“数据处理装置”是指数据处理硬件,并且包括用于处理数据的各种装置、设备和机器,例如包括可编程处理器、计算机或多个处理器或计算机。装置还可以是或进一步包括现成的或定制的并行处理子系统,例如,gpu或另一种专用处理子系统。装置还可以是或进一步包括专用逻辑电路,例如,fpga(现场可编程门阵列)或asic(专用集成电路)。除了硬件之外,装置可以可选地包括为计算机程序创建执行环境的代码,例如,构成处理器固件、协议栈、数据库管理系统、操作系统或其一种或多种的组合的代码。
[0122]
也可以被称为或描述为程序、软件、软件应用、app、模块、软件模块、脚本或代码的
计算机程序可以以任何形式的编程语言来编写,包括编译或解释语言,声明性或程序性语言;它可以以任何形式进行部署,包括作为独立程序或作为模块、组件、子例程或适用于计算环境的其他单元进行部署。程序可以但不必对应于文件系统中的文件。程序可以存储在保存其他程序或数据的文件的一部分中,例如,存储在标记语言文档中的一个或多个脚本,专用于所讨论程序的单个文件或多个协调文件(例如,存储一个或多个模块、子程序或部分代码的文件。可以将计算机程序部署为在一个计算机上执行,或者在位于一个站点上或分布在多个站点上并通过数据通信网络互连的多个计算机上执行。
[0123]
对于配置为执行特定操作或动作的一个或多个计算机的系统而言,意味着系统已在其上安装了软件、固件、硬件或它们的组合,这些软件、固件、硬件或它们的组合在操作中导致系统执行操作或动作。对于配置为执行特定操作或动作的一个或多个计算机程序而言,意味着一个或多个程序包括指令,这些指令在由数据处理装置执行时使该装置执行操作或动作。
[0124]
如本说明书中所使用的,“引擎”或“软件引擎”是指提供与输入不同的输出的软件实现的输入/输出系统。引擎可以是编码功能块,诸如库、平台、软件开发工具包(“sdk”)或对象。每个引擎都可以在任何适当类型的计算设备上实现,例如服务器、移动电话、平板电脑、笔记本电脑、音乐播放器、电子书阅读器、笔记本电脑或台式电脑、pda、智能手机或其他固定或便携式设备,包括一个或多个处理器和计算机可读介质。此外,引擎中的两个或更多个可以在相同的计算设备上或在不同的计算设备上实现。
[0125]
本说明书中描述的处理和逻辑流程可以由执行一个或多个计算机程序以通过对输入数据进行操作并生成输出来执行功能的一个或多个可编程计算机来执行。处理和逻辑流程还可以通过专用逻辑电路(例如,fpga或asic)或者通过专用逻辑电路与一个或多个编程计算机的组合来执行。
[0126]
适用于执行计算机程序的计算机可以基于通用或专用微处理器或两者,或者基于任何其他类型的中央处理器。通常,中央处理单元将从只读存储器或随机存取存储器或两者接收指令和数据。计算机的基本元件是用于进行或执行指令的中央处理单元以及用于存储指令和数据的一个或多个存储设备。中央处理单元和存储器可以由专用逻辑电路补充或并入专用逻辑电路中。通常,计算机还将包括或可操作地耦合以从一个或多个用于存储数据的大容量存储设备(例如,磁、磁光盘或光盘)接收数据或将数据传输到一个或多个大容量存储设备或两者。然而,计算机不必具有此类设备。此外,计算机可以嵌入到另一设备中,例如,移动电话、个人数字助理(pda)、移动音频或视频播放器、游戏机、全球定位系统(gps)接收器或便携式存储设备,例如,通用串行总线(usb)闪存驱动器,仅举几例。
[0127]
适用于存储计算机程序指令和数据的计算机可读介质包括所有形式的非易失性存储器、介质和存储设备,包括例如半导体存储设备,例如,eprom、eeprom和闪存设备;磁盘,例如,内部硬盘或可移动磁盘;磁光盘;以及cd-rom和dvd-rom磁盘。
[0128]
为了提供与用户的交互,可以在具有用于向用户显示信息的显示设备(例如,crt(阴极射线管)或lcd(液晶显示器)监视器)以及键盘和指示设备(例如,鼠标或轨迹球,用户可通过其向计算机提供输入)的计算机上实现本说明书中描述的主题的实施例。其他种类的设备也可以用于提供与用户的交互,例如,提供给用户的反馈可以是任何形式的感觉反馈,例如,视觉反馈、听觉反馈或触觉反馈;并且可以以任何形式接收来自用户的输入,包括
声音、语音或触觉输入。另外,计算机可以通过向用户使用的设备发送文档和从用户使用的设备接收文档来与用户进行交互,例如,通过响应从网络浏览器收的请求,将网页发送到用户设备上的网络浏览器。此外,计算机可以通过将文本消息或其他形式的消息发送到个人设备(例如,运行消息收发应用的智能手机),并从用户接收响应消息来与用户交互。
[0129]
本说明书中描述的主题的实施例可以实现在包括后端组件(例如,作为数据服务器)或包括中间件组件(例如,应用服务器)或包括前端组件(例如,具有图形用户界面或web浏览器的客户端计算机,用户可以通过图形用户界面或web浏览器与本说明书中描述的主题的实现进行交互)或者包括一个或多个这种后端组件,中间件组件或前端组件的任意组合的计算系统中。系统的组件可以通过数字数据通信的任何形式或介质(例如,通信网络)互连。通信网络的示例包括局域网(lan)和广域网(wan),例如,互联网。
[0130]
计算系统可以包括客户端和服务器。客户端和服务器通常彼此远离,并且通常通过通信网络进行交互。客户端和服务器之间的关系通过在相应计算机上运行并彼此具有客户端-服务器关系的计算机程序产生。在一些实施例中,服务器例如为了向与作为客户端的设备交互的用户显示数据并从中接收用户输入的目的,向用户设备发送例如html页面的数据。可以在服务器上从设备接收在用户设备处生成的数据,例如,用户交互的结果。
[0131]
尽管本说明书包含许多特定实现细节,但是这些细节不应被解释为对任何发明或所要求保护的范围的限制,而应解释为对特定发明的特定实施例而言特定的特征的描述。在单独的实施例的上下文中在本说明书中描述的特定特征也可以在单个实施例中组合实现。相反,在单个实施例的上下文中描述的各种特征也可以分别在多个实施例中或以任何合适的子组合来实现。此外,尽管上面可以将特征描述为以特定组合起作用并且甚至最初如此宣称,但是在一些情况下,可以从组合中删除所要求保护的组合中的一个或多个特征,并且可以将所要求保护的组合用于子组合或子组合的变型。
[0132]
类似地,尽管在附图中以特定顺序描绘了操作并且在权利要求中对其进行了叙述,但是这不应理解为要求以所示的特定顺序或以连续的顺序执行这样的操作,或者执行所有示出的操作以实现期望的结果。在特定情况下,多任务和并行处理可能是有利的。此外,上述实施例中的各种系统模块和组件的分离不应被理解为在所有实施例中都需要这种分离,并且应当理解,所描述的程序组件和系统通常可以一起集成在单个软件产品或打包成多个软件产品。
[0133]
已经描述了主题的特定实施例。其他实施例在所附权利要求的范围内。例如,权利要求中记载的动作可以以不同的顺序执行并且仍然实现期望的结果。作为一个示例,附图中描绘的处理不一定需要所示的特定顺序或连续顺序来实现期望的结果。在特定情况下,多任务和并行处理可能是有利的。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1