CN115158309A - 使用上下文敏感融合的因素轨迹预测 - Google Patents
使用上下文敏感融合的因素轨迹预测 Download PDFInfo
- Publication number
- CN115158309A CN115158309A CN202210280603.6A CN202210280603A CN115158309A CN 115158309 A CN115158309 A CN 115158309A CN 202210280603 A CN202210280603 A CN 202210280603A CN 115158309 A CN115158309 A CN 115158309A
- Authority
- CN
- China
- Prior art keywords
- factor
- embedding
- trajectory
- data
- context
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
- 230000004927 fusion Effects 0.000 title claims description 11
- 238000000034 method Methods 0.000 claims abstract description 54
- 238000013528 artificial neural network Methods 0.000 claims description 43
- 239000013598 vector Substances 0.000 claims description 38
- 230000003993 interaction Effects 0.000 claims description 26
- 238000012545 processing Methods 0.000 claims description 25
- 230000000306 recurrent effect Effects 0.000 claims description 13
- 230000002452 interceptive effect Effects 0.000 claims description 5
- 238000004088 simulation Methods 0.000 claims description 4
- 238000005094 computer simulation Methods 0.000 claims description 3
- 230000001131 transforming effect Effects 0.000 claims description 3
- 238000004220 aggregation Methods 0.000 claims 1
- 230000002776 aggregation Effects 0.000 claims 1
- 238000004590 computer program Methods 0.000 abstract description 13
- 238000012549 training Methods 0.000 description 39
- 230000008569 process Effects 0.000 description 28
- 230000006870 function Effects 0.000 description 12
- 238000005259 measurement Methods 0.000 description 9
- 230000009471 action Effects 0.000 description 7
- 238000004891 communication Methods 0.000 description 6
- 238000010586 diagram Methods 0.000 description 6
- 239000011159 matrix material Substances 0.000 description 4
- 230000003068 static effect Effects 0.000 description 4
- 230000015654 memory Effects 0.000 description 3
- 239000000203 mixture Substances 0.000 description 3
- 238000011176 pooling Methods 0.000 description 3
- 230000026676 system process Effects 0.000 description 3
- 230000001133 acceleration Effects 0.000 description 2
- 230000006399 behavior Effects 0.000 description 2
- 238000004422 calculation algorithm Methods 0.000 description 2
- 230000005670 electromagnetic radiation Effects 0.000 description 2
- 238000010801 machine learning Methods 0.000 description 2
- 230000003287 optical effect Effects 0.000 description 2
- 230000004044 response Effects 0.000 description 2
- 238000013515 script Methods 0.000 description 2
- 238000000926 separation method Methods 0.000 description 2
- 230000006403 short-term memory Effects 0.000 description 2
- 238000012360 testing method Methods 0.000 description 2
- 230000000007 visual effect Effects 0.000 description 2
- ORILYTVJVMAKLC-UHFFFAOYSA-N Adamantane Natural products C1C(C2)CC3CC1CC2C3 ORILYTVJVMAKLC-UHFFFAOYSA-N 0.000 description 1
- 238000012935 Averaging Methods 0.000 description 1
- 240000004760 Pimpinella anisum Species 0.000 description 1
- 239000000654 additive Substances 0.000 description 1
- 230000000996 additive effect Effects 0.000 description 1
- 230000005540 biological transmission Effects 0.000 description 1
- 239000003795 chemical substances by application Substances 0.000 description 1
- 238000013135 deep learning Methods 0.000 description 1
- 238000001514 detection method Methods 0.000 description 1
- 239000004973 liquid crystal related substance Substances 0.000 description 1
- 238000007726 management method Methods 0.000 description 1
- 230000000644 propagated effect Effects 0.000 description 1
- 230000005855 radiation Effects 0.000 description 1
- 238000005070 sampling Methods 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
- 230000001953 sensory effect Effects 0.000 description 1
- 239000000758 substrate Substances 0.000 description 1
- 238000010408 sweeping Methods 0.000 description 1
- 238000012546 transfer Methods 0.000 description 1
Images
Classifications
-
- B—PERFORMING OPERATIONS; TRANSPORTING
- B60—VEHICLES IN GENERAL
- B60W—CONJOINT CONTROL OF VEHICLE SUB-UNITS OF DIFFERENT TYPE OR DIFFERENT FUNCTION; CONTROL SYSTEMS SPECIALLY ADAPTED FOR HYBRID VEHICLES; ROAD VEHICLE DRIVE CONTROL SYSTEMS FOR PURPOSES NOT RELATED TO THE CONTROL OF A PARTICULAR SUB-UNIT
- B60W30/00—Purposes of road vehicle drive control systems not related to the control of a particular sub-unit, e.g. of systems using conjoint control of vehicle sub-units
- B60W30/08—Active safety systems predicting or avoiding probable or impending collision or attempting to minimise its consequences
- B60W30/095—Predicting travel path or likelihood of collision
- B60W30/0956—Predicting travel path or likelihood of collision the prediction being responsive to traffic or environmental parameters
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06V—IMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
- G06V20/00—Scenes; Scene-specific elements
- G06V20/50—Context or environment of the image
- G06V20/56—Context or environment of the image exterior to a vehicle by using sensors mounted on the vehicle
-
- B—PERFORMING OPERATIONS; TRANSPORTING
- B60—VEHICLES IN GENERAL
- B60W—CONJOINT CONTROL OF VEHICLE SUB-UNITS OF DIFFERENT TYPE OR DIFFERENT FUNCTION; CONTROL SYSTEMS SPECIALLY ADAPTED FOR HYBRID VEHICLES; ROAD VEHICLE DRIVE CONTROL SYSTEMS FOR PURPOSES NOT RELATED TO THE CONTROL OF A PARTICULAR SUB-UNIT
- B60W50/00—Details of control systems for road vehicle drive control not related to the control of a particular sub-unit, e.g. process diagnostic or vehicle driver interfaces
- B60W50/0097—Predicting future conditions
-
- B—PERFORMING OPERATIONS; TRANSPORTING
- B60—VEHICLES IN GENERAL
- B60W—CONJOINT CONTROL OF VEHICLE SUB-UNITS OF DIFFERENT TYPE OR DIFFERENT FUNCTION; CONTROL SYSTEMS SPECIALLY ADAPTED FOR HYBRID VEHICLES; ROAD VEHICLE DRIVE CONTROL SYSTEMS FOR PURPOSES NOT RELATED TO THE CONTROL OF A PARTICULAR SUB-UNIT
- B60W50/00—Details of control systems for road vehicle drive control not related to the control of a particular sub-unit, e.g. process diagnostic or vehicle driver interfaces
- B60W50/0098—Details of control systems ensuring comfort, safety or stability not otherwise provided for
-
- B—PERFORMING OPERATIONS; TRANSPORTING
- B60—VEHICLES IN GENERAL
- B60W—CONJOINT CONTROL OF VEHICLE SUB-UNITS OF DIFFERENT TYPE OR DIFFERENT FUNCTION; CONTROL SYSTEMS SPECIALLY ADAPTED FOR HYBRID VEHICLES; ROAD VEHICLE DRIVE CONTROL SYSTEMS FOR PURPOSES NOT RELATED TO THE CONTROL OF A PARTICULAR SUB-UNIT
- B60W50/00—Details of control systems for road vehicle drive control not related to the control of a particular sub-unit, e.g. process diagnostic or vehicle driver interfaces
- B60W50/08—Interaction between the driver and the control system
- B60W50/14—Means for informing the driver, warning the driver or prompting a driver intervention
-
- B—PERFORMING OPERATIONS; TRANSPORTING
- B60—VEHICLES IN GENERAL
- B60W—CONJOINT CONTROL OF VEHICLE SUB-UNITS OF DIFFERENT TYPE OR DIFFERENT FUNCTION; CONTROL SYSTEMS SPECIALLY ADAPTED FOR HYBRID VEHICLES; ROAD VEHICLE DRIVE CONTROL SYSTEMS FOR PURPOSES NOT RELATED TO THE CONTROL OF A PARTICULAR SUB-UNIT
- B60W60/00—Drive control systems specially adapted for autonomous road vehicles
- B60W60/001—Planning or execution of driving tasks
- B60W60/0015—Planning or execution of driving tasks specially adapted for safety
- B60W60/0017—Planning or execution of driving tasks specially adapted for safety of other traffic participants
-
- B—PERFORMING OPERATIONS; TRANSPORTING
- B60—VEHICLES IN GENERAL
- B60W—CONJOINT CONTROL OF VEHICLE SUB-UNITS OF DIFFERENT TYPE OR DIFFERENT FUNCTION; CONTROL SYSTEMS SPECIALLY ADAPTED FOR HYBRID VEHICLES; ROAD VEHICLE DRIVE CONTROL SYSTEMS FOR PURPOSES NOT RELATED TO THE CONTROL OF A PARTICULAR SUB-UNIT
- B60W60/00—Drive control systems specially adapted for autonomous road vehicles
- B60W60/001—Planning or execution of driving tasks
- B60W60/0027—Planning or execution of driving tasks using trajectory prediction for other traffic participants
-
- B—PERFORMING OPERATIONS; TRANSPORTING
- B60—VEHICLES IN GENERAL
- B60W—CONJOINT CONTROL OF VEHICLE SUB-UNITS OF DIFFERENT TYPE OR DIFFERENT FUNCTION; CONTROL SYSTEMS SPECIALLY ADAPTED FOR HYBRID VEHICLES; ROAD VEHICLE DRIVE CONTROL SYSTEMS FOR PURPOSES NOT RELATED TO THE CONTROL OF A PARTICULAR SUB-UNIT
- B60W60/00—Drive control systems specially adapted for autonomous road vehicles
- B60W60/001—Planning or execution of driving tasks
- B60W60/0027—Planning or execution of driving tasks using trajectory prediction for other traffic participants
- B60W60/00276—Planning or execution of driving tasks using trajectory prediction for other traffic participants for two or more other traffic participants
-
- G—PHYSICS
- G05—CONTROLLING; REGULATING
- G05B—CONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
- G05B17/00—Systems involving the use of models or simulators of said systems
- G05B17/02—Systems involving the use of models or simulators of said systems electric
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F18/00—Pattern recognition
- G06F18/20—Analysing
- G06F18/24—Classification techniques
- G06F18/241—Classification techniques relating to the classification model, e.g. parametric or non-parametric approaches
- G06F18/2413—Classification techniques relating to the classification model, e.g. parametric or non-parametric approaches based on distances to training or reference patterns
- G06F18/24133—Distances to prototypes
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06V—IMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
- G06V10/00—Arrangements for image or video recognition or understanding
- G06V10/70—Arrangements for image or video recognition or understanding using pattern recognition or machine learning
- G06V10/82—Arrangements for image or video recognition or understanding using pattern recognition or machine learning using neural networks
-
- B—PERFORMING OPERATIONS; TRANSPORTING
- B60—VEHICLES IN GENERAL
- B60W—CONJOINT CONTROL OF VEHICLE SUB-UNITS OF DIFFERENT TYPE OR DIFFERENT FUNCTION; CONTROL SYSTEMS SPECIALLY ADAPTED FOR HYBRID VEHICLES; ROAD VEHICLE DRIVE CONTROL SYSTEMS FOR PURPOSES NOT RELATED TO THE CONTROL OF A PARTICULAR SUB-UNIT
- B60W50/00—Details of control systems for road vehicle drive control not related to the control of a particular sub-unit, e.g. process diagnostic or vehicle driver interfaces
- B60W2050/0001—Details of the control system
- B60W2050/0043—Signal treatments, identification of variables or parameters, parameter estimation or state estimation
-
- B—PERFORMING OPERATIONS; TRANSPORTING
- B60—VEHICLES IN GENERAL
- B60W—CONJOINT CONTROL OF VEHICLE SUB-UNITS OF DIFFERENT TYPE OR DIFFERENT FUNCTION; CONTROL SYSTEMS SPECIALLY ADAPTED FOR HYBRID VEHICLES; ROAD VEHICLE DRIVE CONTROL SYSTEMS FOR PURPOSES NOT RELATED TO THE CONTROL OF A PARTICULAR SUB-UNIT
- B60W50/00—Details of control systems for road vehicle drive control not related to the control of a particular sub-unit, e.g. process diagnostic or vehicle driver interfaces
- B60W2050/0062—Adapting control system settings
- B60W2050/0075—Automatic parameter input, automatic initialising or calibrating means
-
- B—PERFORMING OPERATIONS; TRANSPORTING
- B60—VEHICLES IN GENERAL
- B60W—CONJOINT CONTROL OF VEHICLE SUB-UNITS OF DIFFERENT TYPE OR DIFFERENT FUNCTION; CONTROL SYSTEMS SPECIALLY ADAPTED FOR HYBRID VEHICLES; ROAD VEHICLE DRIVE CONTROL SYSTEMS FOR PURPOSES NOT RELATED TO THE CONTROL OF A PARTICULAR SUB-UNIT
- B60W50/00—Details of control systems for road vehicle drive control not related to the control of a particular sub-unit, e.g. process diagnostic or vehicle driver interfaces
- B60W50/08—Interaction between the driver and the control system
- B60W50/14—Means for informing the driver, warning the driver or prompting a driver intervention
- B60W2050/146—Display means
-
- B—PERFORMING OPERATIONS; TRANSPORTING
- B60—VEHICLES IN GENERAL
- B60W—CONJOINT CONTROL OF VEHICLE SUB-UNITS OF DIFFERENT TYPE OR DIFFERENT FUNCTION; CONTROL SYSTEMS SPECIALLY ADAPTED FOR HYBRID VEHICLES; ROAD VEHICLE DRIVE CONTROL SYSTEMS FOR PURPOSES NOT RELATED TO THE CONTROL OF A PARTICULAR SUB-UNIT
- B60W2554/00—Input parameters relating to objects
- B60W2554/40—Dynamic objects, e.g. animals, windblown objects
-
- B—PERFORMING OPERATIONS; TRANSPORTING
- B60—VEHICLES IN GENERAL
- B60W—CONJOINT CONTROL OF VEHICLE SUB-UNITS OF DIFFERENT TYPE OR DIFFERENT FUNCTION; CONTROL SYSTEMS SPECIALLY ADAPTED FOR HYBRID VEHICLES; ROAD VEHICLE DRIVE CONTROL SYSTEMS FOR PURPOSES NOT RELATED TO THE CONTROL OF A PARTICULAR SUB-UNIT
- B60W2554/00—Input parameters relating to objects
- B60W2554/40—Dynamic objects, e.g. animals, windblown objects
- B60W2554/402—Type
-
- B—PERFORMING OPERATIONS; TRANSPORTING
- B60—VEHICLES IN GENERAL
- B60W—CONJOINT CONTROL OF VEHICLE SUB-UNITS OF DIFFERENT TYPE OR DIFFERENT FUNCTION; CONTROL SYSTEMS SPECIALLY ADAPTED FOR HYBRID VEHICLES; ROAD VEHICLE DRIVE CONTROL SYSTEMS FOR PURPOSES NOT RELATED TO THE CONTROL OF A PARTICULAR SUB-UNIT
- B60W2554/00—Input parameters relating to objects
- B60W2554/40—Dynamic objects, e.g. animals, windblown objects
- B60W2554/402—Type
- B60W2554/4026—Cycles
-
- B—PERFORMING OPERATIONS; TRANSPORTING
- B60—VEHICLES IN GENERAL
- B60W—CONJOINT CONTROL OF VEHICLE SUB-UNITS OF DIFFERENT TYPE OR DIFFERENT FUNCTION; CONTROL SYSTEMS SPECIALLY ADAPTED FOR HYBRID VEHICLES; ROAD VEHICLE DRIVE CONTROL SYSTEMS FOR PURPOSES NOT RELATED TO THE CONTROL OF A PARTICULAR SUB-UNIT
- B60W2554/00—Input parameters relating to objects
- B60W2554/40—Dynamic objects, e.g. animals, windblown objects
- B60W2554/402—Type
- B60W2554/4029—Pedestrians
-
- B—PERFORMING OPERATIONS; TRANSPORTING
- B60—VEHICLES IN GENERAL
- B60W—CONJOINT CONTROL OF VEHICLE SUB-UNITS OF DIFFERENT TYPE OR DIFFERENT FUNCTION; CONTROL SYSTEMS SPECIALLY ADAPTED FOR HYBRID VEHICLES; ROAD VEHICLE DRIVE CONTROL SYSTEMS FOR PURPOSES NOT RELATED TO THE CONTROL OF A PARTICULAR SUB-UNIT
- B60W2556/00—Input parameters relating to data
- B60W2556/10—Historical data
-
- B—PERFORMING OPERATIONS; TRANSPORTING
- B60—VEHICLES IN GENERAL
- B60W—CONJOINT CONTROL OF VEHICLE SUB-UNITS OF DIFFERENT TYPE OR DIFFERENT FUNCTION; CONTROL SYSTEMS SPECIALLY ADAPTED FOR HYBRID VEHICLES; ROAD VEHICLE DRIVE CONTROL SYSTEMS FOR PURPOSES NOT RELATED TO THE CONTROL OF A PARTICULAR SUB-UNIT
- B60W2556/00—Input parameters relating to data
- B60W2556/35—Data fusion
Landscapes
- Engineering & Computer Science (AREA)
- Automation & Control Theory (AREA)
- Transportation (AREA)
- Mechanical Engineering (AREA)
- Human Computer Interaction (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Evolutionary Computation (AREA)
- Data Mining & Analysis (AREA)
- Artificial Intelligence (AREA)
- Multimedia (AREA)
- Computer Vision & Pattern Recognition (AREA)
- Life Sciences & Earth Sciences (AREA)
- General Engineering & Computer Science (AREA)
- Evolutionary Biology (AREA)
- Bioinformatics & Computational Biology (AREA)
- Health & Medical Sciences (AREA)
- Computing Systems (AREA)
- Databases & Information Systems (AREA)
- General Health & Medical Sciences (AREA)
- Medical Informatics (AREA)
- Software Systems (AREA)
- Bioinformatics & Cheminformatics (AREA)
- Traffic Control Systems (AREA)
- Management, Administration, Business Operations System, And Electronic Commerce (AREA)
Abstract
用于使用锚轨迹的因素轨迹预测的包括在计算机存储介质上编码的计算机程序的方法、***和装置。
Description
技术领域
本说明书涉及预测环境中的因素(agent)的未来轨迹。
背景技术
环境可以是现实世界的环境,并且因素可以是例如载具、骑自行车者、行人或环境中的其他载具。预测因素的未来轨迹是运动规划(例如,通过自主载具)所需的任务。
自主载具包括自驾驶小汽车、船只和飞行器。自主载具使用各种机载传感器和计算机***来检测附近的对象,并使用这样的检测来做出控制和导航决策。
发明内容
本说明书一般地描述了在一个或多个位置(location)中的一个或多计算机上实现为计算机程序的***,该***预测环境中因素的未来轨迹。
本说明书中描述的主题可以在特定实施例中实施,以便实现以下优点中的一个或多个。
预测道路使用者的未来行为对于自主驾驶和控制其他类型的自主载具的其他方面来说是具有挑战性和重要的问题。将深度学习应用于这个问题需要以丰富的感知信号和地图信息的形式融合异构世界状态,并推理可能未来的高度多模态(multimodal)分布。本说明书描述了轨迹预测***,该***生成比传统***更准确的轨迹预测。特别地,所描述的***使用异构场景元素的稀疏编码(例如,使用紧凑高效的多段线描述道路特征并直接表示原始因素状态信息(例如,定位(position)、速度、加速度))对输入的世界状态(即,从感知信号(从传感器测量生成感知信号)和从识别环境中的道路特征的地图数据生成的地图信息中获得的表征环境当前状态的数据)进行编码。例如,与基于图像的编码或试图在单个输入表示中表示所有输入信号的其他编码类型相反,以这种方式表示状态数据允许***更好地捕获提供给***的静态和动态输入的高度异构混合内不同元素之间的交互。这导致了改进的轨迹预测性能,即,因为***可以更高效地捕获输入当中可能影响场景中的因素的未来轨迹的可能交互。
此外,所描述的***例如使用多上下文门控(gating)融合组件执行这些输入元素的上下文意识(aware)融合,其允许***在做出轨迹预测时高效地合并这些输入元素的特征,进一步改进了该***捕获重要交互并做出更准确的轨迹预测的能力。
在一些实施方式中,***使用已学习的隐匿(latent)锚嵌入(anchor embedding)来表示与模型的其余部分端到端学习的已学习的锚轨迹。使用这些已学习的轨迹来形成由***的输出表示的高斯混合模型的锚,允许***生成轨迹预测,所述轨迹预测更高效地捕获可能的因素行为的多模态性质,同时还避免如一些传统***所经历的“模式崩溃”。经历模式崩溃的传统***可能生成因素的多个预测未来轨迹,该因素的多个预测未来轨迹与因素的未来轨迹的单个确定性估计相差很小。
本说明书的主题的一个或多个实施例的细节在附图和下面的描述中阐述。本主题的其他特征、方面和优点将从描述、附图和权利要求中变得清晰。
附图说明
图1是示例***的示图。
图2是用于生成轨迹预测输出的示例过程的流程图。
图3示出了轨迹预测***生成目标因素的轨迹预测输出的操作。
图4示出了多上下文门控块和多上下文门控块的堆叠(stack)的操作。
图5是用于训练轨迹预测***的示例过程的流程图。
各个附图中相同的附图标记和表示指示相同的元素。
具体实施方式
本说明书描述了载具(例如,自主或半自主载具)可以如何使用已训练的机器学习模型(在本说明书中称为“轨迹预测***”)来针对环境中的在载具附近的一个或多个周围因素中的每一个生成相应的轨迹预测输出。
在本说明书中,“周围因素”可以指代载具、自行车、行人、船只、无人机或环境中的任何其他移动对象,而不失一般性。
本说明书还描述了可以如何使用由载具或其他源生成的训练示例来高效地训练轨迹预测***,以准确地且可靠地做出预测。
图1是示例***100的示图。***100包括机载***110和训练***120。
机载***110机载地位于载具102上。虽然图1中的载具102被示为汽车,但是机载***102可以机载地位于任何适当的载具类型上。
在一些情况下,载具102是自主载具。自主载具可以是完全自主载具,其确定并执行完全自主驾驶决策以便导航穿过环境。自主载具也可以是使用预测来辅助人类驾驶员的半自主载具。例如,如果预测指示人类驾驶员将要与另一个载具碰撞,则载具102可以自主地应用制动器。作为另一示例,载具102可以具有高级驾驶员辅助***(ADAS),其通过检测潜在的不安全情形并警报人类驾驶员或以其他方式对不安全情形作出响应来辅助载具102的人类驾驶员驾驶载具102。作为特定示例,当检测到障碍物时、当载具从驾驶车道离开时或当在人类驾驶员的盲点中检测到对象时,载具120可以警报载具102的驾驶员或采取自主驾驶动作。
机载***110包括一个或多个传感器子***130。传感器子***130包括接收电磁辐射的反射的组件的组合,例如,检测激光的反射的lidar***、检测无线电波的反射的雷达***、以及检测可见光的反射的相机***。
由给定传感器生成的传感器数据通常指示反射辐射的距离、方向和强度。例如,传感器可以在特定方向上传送一个或多个电磁辐射脉冲,并且可以测量任何反射的强度以及接收反射的时间。可以通过确定在脉冲和其对应的反射之间花费的时间来计算距离。传感器可以以角度、方位角或两者连续掠过(sweep)特定空间。例如,以方位角掠过可以允许传感器检测沿着相同视线的多个对象。
传感器子***130或载具102的其他组件还可以将来自一个或多个传感器的一个或多个原始传感器测量的组分类为另一因素的测量。取决于被捕获的传感器测量的种类,可以以各种方式中的任何一个来表示一组传感器测量。例如,每组原始激光传感器测量可以表示为三维点云,每个点在特定的二维或三维坐标空间中具有强度和定位。在一些实施方式中,定位被表示为范围和高度对。每组相机传感器测量可以表示为图像块(imagepatch),例如RGB图像块。
一旦传感器子***130将一组或多组原始传感器测量分类为相应的其他因素的测量,传感器子***130可以将原始传感器测量编译成原始数据132集,并将原始数据132发送到数据表示***140。
也机载于载具102上的数据表示***140从传感器***130接收原始传感器数据132并生成场景数据142。场景数据142表征截至当前时间点的载具102周围的环境的当前状态。
例如,场景数据可以表征对于环境中的所有周围因素,在当前时间点的当前状态和在一个或多个相应先前时间点的先前状态。换言之,场景数据可以包括对于环境中的所有周围因素,表征直到当前时间点的环境中因素的先前轨迹的数据。在时间点的因素的状态可以包括在该时间点该因素的位置,以及可选地,在该时间点的预定运动参数集的值。作为特定示例,运动参数可以包括因素的走向、因素的速度和/或因素的加速度。
场景数据还包括表征在当前时间点载具的当前状态和在一个或多个相应先前时间点的载具的先前状态的数据。在一些实施方式中,场景数据还包括从表征环境的地图信息中获得的表征环境的特征的数据。这些特征可以包括(i)环境的动态特征,例如当前时间点的交通灯状态,(ii)环境的静态特征,例如,表征车道连通性、车道类型、停止线、速度限制等中的一个或多个的道路图数据,或(iii)两者。
下面参考图2描述场景数据142如何表示环境的状态的示例。
数据表示***140将场景数据142提供给也机载于载具102上的轨迹预测***150。
轨迹预测***150处理场景数据142以生成一个或多个周围因素中的每个的相应轨迹预测输出152。给定因素的轨迹预测输出152表征在当前时间点之后因素的未来轨迹。
更具体地,给定因素的轨迹预测输出152表示因素可能遵循的可能未来轨迹上的概率分布。
通常,轨迹预测输出152包括表征因素的未来轨迹与多个锚轨迹中的每个的预测相似度的数据。每个锚轨迹表征在当前时间点之后因素的不同的可能未来轨迹,并且包括指定环境中多个航路点(waypoint)空间位置的序列的数据,其中,每个航路点空间位置对应于在未来时间点之后的相应未来时间点该因素的可能定位。换言之,每个锚轨迹识别周围因素在当前时间点之后可能驶过的、环境中的不同的航路点位置的序列。
在一些实施方式中,这些锚轨迹是预定的。在其他实施方式中,如下文将更详细描述的,锚轨迹是在***150的训练期间学习的隐匿(latent)轨迹。
下面将参考图2和图3更详细地描述生成轨迹预测输出。
机载***110还包括规划***160。规划***160可以为载具102做出自主或半自主驾驶决策,例如,通过生成表征载具102在未来将采取的路径的规划载具路径。
机载***100可以将由轨迹预测***150生成的轨迹预测输出152提供给载具102的一个或多个其他机载***,例如,规划***160和/或用户界面***165。
当规划***160接收轨迹预测输出152时,规划***160可以使用轨迹预测输出152来生成规划载具的未来轨迹的规划决策,即,生成新的规划载具路径。例如,轨迹预测输出152可以包含下述预测:特定的周围因素可能在特定的未来时间点切入到载具102前面,从而潜在地导致碰撞。在该示例中,规划***160可以生成避免潜在碰撞的新的规划载具路径,并使载具102遵循(例如,通过自主控制载具的转向)新的规划路径并避免潜在碰撞。
当用户界面***165接收轨迹预测输出152时,用户界面***165可以使用轨迹预测输出152来向载具102的驾驶员呈现信息以辅助驾驶员安全地操作载具102。用户界面***165可以通过任何适当的方式将信息呈现给载具102的驾驶员,例如,经由通过载具102的扬声器***发送的音频消息或经由因素中的视觉显示***(例如,载具102的仪表板上的LCD显示器)上显示的警报。在特定示例中,轨迹预测输出152可以包含下述预测:特定的周围因素可能切入到载具102前面,从而潜在地导致碰撞。在该示例中,用户界面***165可以向载具102的驾驶员呈现警报消息,具有调整载具102的轨迹以避免碰撞的指令,或通知载具102的驾驶员与特定的周围因素碰撞是可能的。
为了生成轨迹预测输出152,轨迹预测***150可以使用从训练***120中的轨迹预测模型参数存储装置190获得的已训练的参数值195,即轨迹预测***150的已训练的模型参数值。
训练***120典型地驻留在数据中心124内,该数据中心可以是在一个或多个位置中的、具有数百个或数千个计算机的分布式计算***。
训练***120包括训练数据存储装置170,其存储用于训练轨迹预测***的所有训练数据,即,确定轨迹预测***150的已训练的参数值195。训练数据存储装置170例如从在现实世界中操作的因素、从现实世界的计算机模拟或通过修改现实世界数据生成合成导航情景的一个或多个计算机程序接收原始训练示例。
例如,训练数据存储装置170可以从载具102和与训练***120通信的一个或多个其他因素接收原始训练示例155。原始训练示例155可以由训练***120处理以生成新的训练示例。原始训练示例155可以包括场景数据,即,类似于场景数据142,其可以用作新的训练示例的输入。原始训练示例155还可以包括表征在一个或多个未来时间点载具102周围的环境的状态的结果数据。该结果数据可以用于生成由场景数据表征的、在该时间点载具附近的一个或多个因素的基准真实轨迹。每个基准真实轨迹识别由对应的因素在未来时间点驶过的实际轨迹(如从结果数据中导出的)。例如,基准真实轨迹可以识别以因素为中心的坐标系中的、因素在多个未来时间点中的每个时间点移动到的空间位置。
训练数据存储装置170将训练示例175提供给也驻留在训练***120中的训练引擎180。训练引擎180使用训练示例175来更新将由轨迹预测***150使用的模型参数,并将已更新的模型参数185提供给轨迹预测模型参数存储装置190。一旦轨迹预测***150的参数值已经被完全训练,训练***120可以将已训练的参数值195(例如,通过有线或无线连接)发送给轨迹预测***150。
下面更详细地描述训练轨迹预测***150。
图2是用于生成载具附近的因素的轨迹预测的示例过程200的流程图。为方便起见,过程200将被描述为由位于一个或多个位置的一个或多个计算机的***执行。例如,根据本说明书适当地编程的轨迹预测***(例如,图1的轨迹预测***150)可以执行过程200。
具体地,***执行过程200来生成载具附近的一个或多个目标因素中的每一个的相应轨迹预测。处于载具附近的因素是指处于载具的传感器的范围内的因素。
***获得表征环境的上下文数据(步骤202)。如上所述,上下文数据包括表征在当前时间点的环境中的多个因素(包括目标因素)中的每一个的轨迹的数据和表征环境中的多个道路特征的数据。道路特征可以包括驾驶车道、人行横道、交通灯、减速带、交通标志等。
然后,***执行针对每个目标因素的步骤204-210。
***从上下文数据生成嵌入集(步骤204)。如在本说明书中所使用的,嵌入是数值的有序集合(collection)(例如,具有预定维度的数值向量)。
嵌入集包括用于表示道路特征的多个多段线中的每个多段线的相应多段线嵌入。
嵌入集还包括表征目标因素的轨迹的因素状态历史嵌入。
嵌入集还包括表征环境中其他因素相对于目标因素的运动的聚合交互嵌入。
因此,从上面可以看出,嵌入集表示环境的当前状态的不同的、异构的各方面。
下面将参考图3描述生成这些嵌入。
***从相应多段线嵌入和因素状态历史嵌入生成目标因素的上下文嵌入(步骤206)。上下文嵌入合并了来自环境的状态的静态元素(即道路特征)和环境的状态的动态元素(即环境中因素的运动)二者的上下文。下面参考图3描述生成上下文嵌入。
***从上下文嵌入、自因素状态历史嵌入导出的嵌入和聚合交互嵌入生成目标因素的融合嵌入(步骤208)。例如,***可以组合(例如,级联(concatenate)、求和、或者平均)上下文嵌入、从因素状态历史嵌入导出的嵌入以及聚合交互嵌入,以生成上下文嵌入。从因素状态历史嵌入导出的嵌入可以是因素状态历史嵌入或从处理因素状态历史嵌入生成的不同嵌入。下面参考图3更详细地描述生成融合嵌入。
***从融合嵌入生成表征目标因素在当前时间点之后的预测未来轨迹的、目标因素的未来轨迹预测(步骤210)。具体地,***使用一个或多个预测神经网络头处理包括融合嵌入的输入以生成目标因素的未来轨迹预测。
图3示出了由轨迹预测***150执行的用以生成目标因素的轨迹预测输出的操作。
如图3所示,***150接收因素状态历史302,其表征环境中因素的观察轨迹。
因素状态历史302包括针对目标因素和环境中的一个或多个其他因素的、相应观察序列,每个观察序列表征因素在不同时间点的状态。例如,因素状态历史302可以包括目标因素和相邻因素集中的每个因素的相应序列,例如,在当前时间与目标因素最近的阈值数量的因素或在当前时间在目标因素的阈值范围内的每个其他因素。在一些情况下,例如,由于因素变得被遮挡或传感器故障,一些因素可能仅在时间点的子集被观察(即由载具102的传感器测量)。在一些实施方式中,为了说明这一点,给定序列中的每个观察可以包括下述数据:该数据指示该观察是对应因素在对应时间点的状态的有效观察,还是由于在对应时间点在环境中没有观察到对应因素而生成的无效观察。
***150还接收表征载具102的先前轨迹的AV状态历史304。AV状态历史304包括观察序列,其中每个观察表征在不同时间点的载具102的状态。
***150从因素状态历史302和AV状态历史304生成目标因素的因素状态历史嵌入、以及每个相邻因素和载具102的相应交互嵌入。
为了生成因素状态历史嵌入,***150使用因素状态历史嵌入神经网络(即,因素历史编码器310)处理从目标因素的相应观察序列导出的一个或多个输入。
例如,***150可以通过将相应序列变换为目标因素的参考帧来从相应序列生成输入序列,并且然后使用因素历史编码器310内的循环神经网络(例如,长短期记忆(LSTM)神经网络或门控循环单元(GRU)神经网络)处理输入序列。在某些情况下,因素状态历史嵌入是在处理输入序列中的最后的观察之后的循环神经网络的隐藏状态。在其他情况下,***将隐藏状态与一个或多个其他输出组合(例如级联)以生成嵌入。
例如,***可以通过从相应序列生成另一个输入序列来生成另一个输出,该另一个输入序列包括对于第一时间点之后的每个时间点,目标因素在该时间点和先前时间点之间的定位的差异。***可以使用因素历史编码器310内的另一个循环神经网络(例如,长短期记忆(LSTM)神经网络或门控循环单元(GRU)神经网络)来处理该另一个输入序列,以生成作为另一个输出的、在处理另一个输入序列中的该最后的差异之后的循环神经网络的隐藏状态。
作为另一个示例,***可以生成目标因素的历史元素集。该集中的每个元素包括历史定位和因素占据历史定位的时间相对于当前时间的按秒的时间偏移。然后***可以使用多上下文门控块的堆叠(即,历史MCG编码器320)(其中上下文输入是默认上下文输入(例如全一向量(all-ones vector))的已学***均或级联)用作另一个输出。
多上下文门控块接收输入元素集和上下文向量,并生成该集中的每个输入的已更新的输入元素和已更新的上下文向量作为输出。多上下文门控块的堆叠是共同接收输入元素集和上下文向量并生成针对该集中的每个输入的已更新的输入元素和已更新的上下文向量作为输出的多上下文门控块的序列。
下面参考图4更详细地描述多上下文门控块和多上下文门控块的堆叠的操作。
为了生成针对给定其他因素(例如,相邻因素或载具102)的交互嵌入,***150将其他因素的相应序列变换为目标因素的参考帧以生成其他因素的相应的变换后序列,并且使用因素嵌入神经网络(即交互编码器330)处理其他因素的相应的变换后序列,以生成针对其他因素的交互嵌入。例如,交互编码器330可以是循环神经网络(例如LSTM或GRU),并且针对其他因素的嵌入可以是在处理变换后序列中的最后的观察之后的循环神经网络的隐藏状态。
一旦***150已经生成针对其他因素的交互嵌入,***150就组合针对其他因素的交互嵌入以生成针对目标因素的聚合交互嵌入。
***150可以以各种方式中的任何方式组合交互嵌入。
作为一个示例,***可以通过使用多上下文门控块的堆叠(即,交互MCG编码器350)(其中上下文输入是针对目标因素的因素状态历史嵌入和针对载具102的交互嵌入的级联)处理针对相邻因素的交互嵌入集来组合交互嵌入。然后***可以组合(例如,级联)由多上下文门控堆叠作为输出而生成的已更新的交互嵌入,以生成针对目标因素的聚合交互嵌入。
***150还接收表示定义环境中的场景中的道路特征的多个多段线的道路图多段线数据306。即,对于每个特定道路特征,该特定道路特征被表示为从表示环境的地图中的特定道路特征的一个或多个参数曲线导出的多个多段线。即,每个多段线是来自共同近似于特定道路特征的几何形状的线段(line segments)集的一个线段。例如,对于给定的目标因素,道路图多段线数据306可以表示在当前时间点与因素最近的阈值数量的多段线。
***150使用道路图多段线数据306来生成多个多段线中的每个多段线的相应的多段线嵌入。
为了生成针对表示特定道路特征的嵌入的多段线嵌入,***150获得每个多段线的相应特征。
***150然后使用多段线嵌入神经网络(即多段线编码器340)处理特征向量中的每一个,以生成针对从表示特定道路特征的一个或多个参数曲线导出的多个多段线中的每个多段线的相应多段线嵌入。
每个特征向量(i)表征多段线与目标因素的空间关系,并且可选地,(ii)识别特定道路特征的道路特征类型,例如,识别特定道路特征是否是车道边界、人行横道边界、减速带、道路标志、交通信号等。例如,每个特征向量可以包括道路特征类型的编码(例如,独热编码)、以及包括表示多段线的位置的特征的特征向量(例如,多段线的端点的位置)、以及从沿着多段线的一个或多个点到目标因素的距离。
多段线编码器340可以是可以将多段线的特征映射到嵌入的任何适当的神经网络。例如,多段线编码器340可以是多层感知器(MLP)。
***150然后生成上下文嵌入,该上下文嵌入将关于环境的状态的动态信息(例如,由用于目标因素的因素状态历史生成的)合并到关于环境的静态信息(例如,由多段线嵌入表示)中。
具体地,***150可以使用多上下文门控块的堆叠(即,道路图MCG编码器360),以因素状态历史嵌入作为上下文输入,处理多段线嵌入,以生成针对每个多段线的相应的上下文多段线嵌入并且然后组合(例如,级联或平均)上下文多段线嵌入以生成上下文嵌入。
***150然后通过组合(例如,级联)上下文嵌入、聚合交互嵌入和从因素状态历史嵌入导出的嵌入来生成针对目标因素的融合嵌入。从因素状态历史嵌入导出的嵌入可能是因素状态历史嵌入、或由使用因素状态历史嵌入作为上下文向量的上述多上下文门控块的堆叠中的一个生成的已更新的因素状态历史嵌入。
为了生成用于给定因素的轨迹预测,***使用预测神经网络头380处理针对目标因素的融合嵌入。
预测神经网络头380是被配置为处理融合嵌入以生成轨迹预测输出的神经网络,该轨迹预测输出包括表征因素的未来轨迹与多个锚轨迹中的每个锚轨迹(即,固定数量的锚轨迹中的每个锚轨迹)的预测相似度的数据。也就是说,轨迹预测输出包括表示锚轨迹是与因素的实际未来轨迹最相似的轨迹的可能性的每个锚轨迹的概率。
每个锚轨迹表征因素的可能未来轨迹,并且包括指定各自对应于该因素在相应未来时间点的可能定位的、环境中的多个航路点空间位置的序列的数据。即,每个锚轨迹定义在当前时间点之后因素可能驶过的、穿过环境的不同的可能未来路径。
在一些实施方式中,以固定数量包括的锚轨迹是预定的,并且表示从任何给定当前时间因素可以执行的各种可能行为集。也就是说,锚轨迹对于所有因素而言是相同的,并且不依赖于上下文数据或关于环境中的当前场景的任何其他信息。因为锚轨迹也在以因素为中心的坐标系中,所以无论在当前场景中因素的当前定位如何,对于任何因素,可以使用相同锚轨迹集。
也就是说,在这些实施方式中,锚轨迹是在轨迹预测***的训练之前预定的。
作为特定示例,***可以基于将用于训练轨迹预测***的因素轨迹的训练集来确定一些或所有锚轨迹。例如,***可以将训练集中的轨迹聚类成固定数量的集群(cluster),并且然后从每个集群中选择代表性的轨迹作为锚轨迹。
作为另一个示例,***可以通过从可能轨迹的空间中均匀地采样轨迹来确定固定数量的锚轨迹中的一些或全部锚轨迹。
在一些实施方式中,轨迹预测输出还可以包括对于每个锚轨迹的、针对锚轨迹的每个航路点空间位置表征与航路点空间位置相关的概率分布的数据。给定航路点空间位置的概率分布定义了因素将在对应于该航路点空间位置的未来时间点占据该航路点空间位置附近的相应空间定位的相应可能性。也就是说,给定因素遵循锚轨迹的情况下,概率分布表示因素的实际未来轨迹的、与锚轨迹的预测的可能偏离的空间。换言之,对于给定的锚轨迹,在给定未来时间点的概率分布表示因素与给定锚轨迹中航路点空间位置的可能偏离的空间,其中被分配较高概率的位置比被分配较低的概率位置更可能偏离。
因此,在这些实施方式中,轨迹预测输出包括K个概率或其他相似度分数,K个锚轨迹中的每个有一个。如果每个锚轨迹包括T个未来时间点,则轨迹预测输出还包括对于K个锚轨迹中的每个以及在T个未来时间点中的每个、表征概率分布的数据。因此,如果表征概率分布的数据包括D个值,则给定因素的轨迹预测输出包括K+K x T x D个值。
特别地,对于任何给定的航路点空间位置,表征与航路点空间位置相关的概率分布的数据包括定义与航路点空间位置相关的参数概率分布的参数的数据。
作为特定示例,与航路点空间位置相关的参数概率分布可以是正态概率分布,并且定义正态概率分布的参数的数据可以包括(i)指定正态概率分布的均值与航路点空间位置的偏移的偏移参数,以及(ii)正态概率分布的协方差参数。例如,协方差参数可以在以因素为中心的坐标系中定义2x 2协方差矩阵。在该示例中,轨迹预测输出包括用于每个锚轨迹的相应相似度分数,并且对于每个锚轨迹中的每个未来时间点,轨迹预测输出可以包括五个值:沿x维度的均值偏移、沿x维度的均值偏移、沿y维度的均值偏移,定义协方差矩阵的三个参数。因此,轨迹预测输出将包括定义了K个锚轨迹内在未来时间点的概率分布的K xT x 5个值和K个相似度分数。
作为另一个特定示例,协方差可以是固定的,并且定义在给定未来时间点的正态分布的参数的数据可以仅包括给定未来时间点的偏移参数。
在锚轨迹是固定的实施方式中,预测神经网络头380可以具有将融合嵌入映射到轨迹预测输出的任何适当架构,例如,头380可以是MLP或递归神经网络。
在一些其他实施方式中,锚轨迹是隐匿轨迹,每个隐匿轨迹由在***150的训练期间学习的隐匿嵌入372表示。也就是说,没有固定的锚轨迹,并且***学习以针对每个目标因素动态地生成锚。
在这些实施方式中,头380接收融合嵌入和已学习的隐匿锚的嵌入372集作为输入,并处理输入以生成轨迹预测输出。例如,头380可以使用以融合嵌入作为上下文向量的多上下文门控块374的堆叠来处理已学习的嵌入集,以生成每个锚的相应的已更新的嵌入。然后,头380可以使用MLP处理相应已更新的嵌入,以生成轨迹预测输出。
在这些实施方式中,轨迹预测输出包括(i)用于每个隐匿锚轨迹的相应概率,它表示锚轨迹是与因素的实际未来轨迹最相似的轨迹的可能性,以及(ii)定义每个隐匿锚轨迹的数据。
特别地,轨迹预测输出还包括对于每个隐匿锚轨迹和对于每个未来时间点,表征航路点空间位置上的概率分布的数据。给定未来时间点的概率分布定义了因素将在未来时间点占据相应空间定位的相应可能性。也就是说,给定因素遵循隐匿锚轨迹的情况下,概率分布表示在未来时间点因素的实际未来轨迹的预测的航路点位置的空间。
因此,在这些实施方式中,轨迹预测输出包括K个概率或其他相似度分数,K个隐匿锚轨迹中的每个有一个。如果每个锚轨迹包括T个未来时间点,则轨迹预测输出还包括对于K个隐匿锚轨迹中的每个以及在T个未来时间点中的每个、表征概率分布的数据。因此,如果表征概率分布的数据包括D个值,则给定因素的轨迹预测输出包括K+K x T x D个值。
特别地,对于给定隐匿未来轨迹内的任何给定未来时间点,表征概率分布的数据包括定义航路点空间位置上的参数概率分布的参数的数据。
作为特定示例,与航路点空间位置相关的参数概率分布可以是正态概率分布,并且定义正态概率分布的参数的数据可以包括(i)正态概率分布的均值,以及(ii)正态概率分布的协方差参数。例如,协方差参数可以在以因素为中心的坐标系中定义2x2协方差矩阵。在该示例中,轨迹预测输出包括用于每个锚轨迹的相应相似度分数,并且对于每个锚轨迹中的每个未来时间点,轨迹预测输出可以包括五个值:沿x维度的均值、沿y维度的均值、和定义协方差矩阵的三个参数。因此,轨迹预测输出将包括定义了K个锚轨迹内在未来时间点的概率分布的K x T x 5个值和K个相似度分数。
作为另一个特定示例,协方差可以是固定的,并且定义在给定未来时间点的正态分布的参数的数据可以仅包括给定未来时间点的偏移参数。
在一些实施方式中,***采用多个预测头的总成(ensemble)。在这些实施方式中,***将由总成中每个预测头生成的轨迹预测输出组合,以生成最终的轨迹预测输出。
当锚轨迹是固定的时,***可以通过对每个锚的相应分数和分布参数进行平均来组合轨迹预测输出。
当学习了锚轨迹时,总成中的每个头可以学习不同的隐匿嵌入,因此可以生成具有不同模式的概率分布。此外,当学习了锚轨迹时,每个头可能具有比最终轨迹预测输出中应该表示的隐匿锚轨迹更多的隐匿锚轨迹。
因此,当学习了锚轨迹时,***可以通过对用于不同头的各种不同隐匿锚的锚轨迹的分布参数应用迭代聚类技术来生成最终轨迹预测输出,以生成用于最终隐匿锚轨迹集的分布参数。例如,***可以使用流行的期望最大化算法(Expectation Maximizationalgorithm)执行迭代聚类技术以最大化概率目标。概率目标可以包括,例如,最大化从用于不同头的各种不同隐匿锚的锚轨迹的分布参数中采样的任何形心(centroid)在距最终隐匿锚轨迹集的分布参数中的形心中的一个的阈值距离内的概率。
图4示出了多上下文门控块410和多上下文门控块的堆叠420的操作。
特别地,多上下文门控块410接收上下文向量c元素和si的集合(其中,i范围从1到N,并且每个元素si是向量)作为输入,并生成每个元素si的相应已更新元素s’i和上下文向量c的已更新上下文向量c’作为输出。
为了生成这些更新,块410使用第一门控神经网络420处理上下文向量以生成门控上下文向量。例如,第一门控神经网络可以是MLP。
块410还使用第二门控神经网络430处理集合中的每个元素,以生成对应于每个元素的门控元素。例如,第一门控神经网络也可以是MLP。在一些实施方式中,第一和第二门控神经网络是相同的,例如,是具有不同参数的相同MLP。在一些其他实施方式中,第一和第二门控神经网络是不同的,例如,二者都是MLP但具有不同的参数值。
对于每个元素,块410从对应于元素的门控元素和门控上下文向量生成针对该元素的已更新的元素。例如,块410可以计算对应于元素的门控元素和门控上下文向量之间的逐元素(element-wise)乘积。
在更新元素之后,块410根据已更新的元素更新上下文向量。例如,块410可以组合已更新的元素以生成组合的已更新元素并且使用组合的已更新元素作为已更新的上下文向量。特别地,块410可以将池化操作440(例如,最大池化操作或平均池化操作)应用于已更新的元素以生成已更新的上下文向量。
当有多个块410时,块410被布置在堆叠420(即,块410的序列)中,其中第一块410接收作为输入被提供给块410的堆叠的输入元素和上下文向量,并且每个后续块410接收从作为先前块的输出而生成的已更新的上下文向量和已更新的元素生成的输入。
为了从作为先前块的输出而生成的已更新的上下文向量和已更新的元素来生成作为输入被提供给堆叠中的给定块的输入元素和上下文向量,***将对已更新的元素和已更新的上下文向量应用跳跃连接(skip connection)。
在一些实施方式中,跳跃连接是加性(additive)跳跃连接。也就是说,对于给定的元素,跳跃连接的输出是以下的总和:(i)元素的先前块的输出;和(ii)对元素的先前块的输入。
在一些其他实施方式中,跳跃连接是运行平均跳跃连接。也就是说,对于给定元素,跳跃连接的输出是以下的平均:(i)对于给定元素的堆叠的输入;和(ii)堆叠中所有先前块的给定元素的输出。
图5是用于训练轨迹预测***的示例过程500的流程图。为方便起见,过程500将被描述为由位于一个或多个位置的一个或多个计算机的***执行。例如,根据本说明书适当地编程的训练***(例如图1的训练***120)可以执行过程500。
***可以针对从基准真实因素轨迹的训练集中采样的小批量的一个或多个基准真实因素轨迹中的每个基准真实因素轨迹执行过程500,以确定每个基准真实因素轨迹的相应模型参数更新。然后,***可以组合(例如平均或相加)相应的模型参数更新以生成组合更新,然后例如根据用于训练的优化器(例如,亚当优化器、rmsProp优化器或随机梯度下降优化器)将组合更新应用于模型参数的当前值。
通过以这种方式针对不同的小批量的基准真实因素轨迹重复更新模型参数值,***可以训练轨迹预测***以生成准确的轨迹预测输出。
***获得训练示例(步骤502),该训练示例包括截至第一时间点的因素的场景数据和识别在第一时间点之后因素遵循的实际轨迹的因素的基准真实因素轨迹。
***使用如上所述的轨迹预测***并根据模型参数的当前值(即根据各种神经网络组件(例如,多上下文门控块、预测头和编码器神经网络)的参数的当前值)来处理上下文数据块,以生成轨迹预测输出(步骤504)。
对于每个锚轨迹,***确定锚轨迹与基准真实轨迹的相似度(步骤506)。例如,***可以将锚轨迹和基准真实轨迹之间的相似度计算为两个轨迹之间的(即,在每个轨迹中的均值航路点之间的)状态序列空间中的l2范数距离或其他适当的距离测量。
***通过计算关于基于相似度、基准真实轨迹和轨迹预测输出的损失函数的模型参数的梯度来确定对模型参数的当前值的更新(步骤508)。由于***联合训练轨迹预测神经网络的组件,***可以通过轨迹预测神经网络的不同组件反向传播损失函数的梯度。
在某些情况下,损失函数在基准真实轨迹和锚轨迹中的一个锚轨迹之间采用硬分配(hard assignment),因此仅取决于与基准真实轨迹最相似的锚轨迹。在这些情况下,损失函数可以满足:
其中K是锚轨迹的总数,θ是模型参数,是指示函数(indicatorfunction),当索引k与和基准真实轨迹最相似的锚轨迹的索引相同时指示函数为1、每当索引k与索引不相同时指示函数为0,π(xm;θ)是给定场景数据xm的情况下轨迹预测输出中分配给锚轨迹k的概率,T是锚轨迹中时间点的总数,是由具有均值和协方差参数的正态分布分配给在时间t的基准真实轨迹中的航路点空间位置的概率,其中是在时间t的锚轨迹k中的航路点空间位置、是在时间t的锚轨迹k的轨迹预测输出中正态概率分布的均值、以及是在时间t的锚轨迹k的轨迹预测输出中航路点空间位置的协方差参数。
在一些其他情况下,损失函数在基准真实轨迹和锚轨迹之间采用软分配,因此取决于所有锚轨迹,并且对任何给定锚轨迹的损失的贡献与给定锚轨迹和基准真实轨迹之间的相似度相关。在这些情况下,上面损失函数中的指示项将被替换为下述项:该项向锚轨迹k分配权重,其取决于基于轨迹k与基准真实轨迹之间的相似度的锚轨迹k之间的相似度。
尽管以上描述描述了机载于载具上进行的轨迹预测,但作为另一示例,轨迹预测可以在由模拟自主载具和目标因素导航通过的现实世界环境的计算机模拟中进行。在模拟中生成这些预测可能有助于控制模拟载具并测试模拟中遭遇的某些情形的现实性。更一般地说,在模拟中生成这些预测可以是在将软件机载地部署在自主载具上之前测试现实世界自主载具的控制软件的一部分、是训练稍后将机载地部署于自主载具上的一个或多个机器学习模型的一部分、或两者。
本说明书中描述的主题的实施例和功能操作可以在数字电子电路中、在有形地实现的计算机软件或固件中、在计算机硬件(包括本说明书中公开的结构以及其结构等同物)中或在它们中的一个或多个的组合中实现。本说明书中描述的主题的实施例可以被实现为一个或多个计算机程序,即编码在有形非暂态存储介质上以供数据处理装置执行或控制数据处理装置的操作的计算机程序指令的一个或多个模块。计算机存储介质可以是机器可读存储设备、机器可读存储基板、随机或串行存取存储器设备或它们中的一个或多个的组合。可替代地或附加地,程序指令可以编码在人工生成的传播的信号(例如,机器生成的电、光或电磁信号)上,该信号被生成为编码信息以传送到合适的接收器装置,以被数据处理装置执行。
术语“数据处理装置”指数据处理硬件并且涵盖用于处理数据的所有种类的装置、设备和机器,举例来说包括可编程处理器、计算机或多个处理器或计算机。该装置还可以是或者还包括现用的或定制的并行处理子***,例如GPU或另一种类的专用处理子***。该装置还可以是或者还包括专用逻辑电路,例如FPGA(现场可编程门阵列)或ASIC(专用集成电路)。除了硬件之外,该装置可以可选地包括为计算机程序创建执行环境的代码,例如,构成处理器固件、协议栈、数据库管理***、操作***或它们中的一个或多个的组合的代码。
计算机程序(其也可以被称为或被描述为程序、软件、软件应用、app、模块、软件模块、脚本或代码)可以以任何形式的编程语言(包括编译或解释性语言、或声明性或过程语言)编写,并且其可以以任何形式部署,包括作为独立程序或作为模块、组件、子例程或其他适合于在计算环境中使用的单元。程序可以但不必与文件***中的文件对应。程序可以存储在保持其他程序或数据的文件的一部分(例如,存储在标记语言文档中的一个或多个脚本)中、在专用于所讨论的程序的单个文件中或在多个协作的文件(例如,存储一个或多个模块、子程序或代码的部分的文件)中。计算机程序可以部署为在一个或多个计算机上执行,所述一个或多个计算机位于一个站点处或跨多个站点分布并通过数据通信网络互连。
对于一个或多个计算机的***被配置为执行特定操作或动作意味着***在其上安装有软件、固件、硬件或它们的组合,在操作时,软件、固件、硬件或它们的组合使***执行操作或动作。对于一个或多个计算机程序被配置为执行特定操作或动作意味着一个或多个程序包括指令,指令当在由数据处理装置执行时使装置执行操作或动作。
如本说明书中所使用的,“引擎”或“软件引擎”是指提供与输入不同的输出的软件实现的输入/输出***。引擎可以是编码的功能块,诸如库、平台、软件开发工具包(“SDK”)或对象。每个引擎都可以在任何适当类型的计算设备上实现,例如包括一个或多个处理器和计算机可读介质的服务器、移动电话、平板计算机、笔记本计算机、音乐播放器、电子书阅读器、膝上型或台式计算机、PDA、智能电话或其他固定或便携式设备。此外,引擎中的两个或更多个可以在相同的计算设备上或在不同的计算设备上实现。
本说明书中描述的过程和逻辑流程可以由执行一个或多个计算机程序的一个或多个可编程计算机执行,来通过对输入数据操作并生成输出来执行功能。所述过程和逻辑流程也可以由专用逻辑电路(例如FPGA或ASIC)执行,或者由专用逻辑电路和一个或多个已编程计算机的组合来执行。
适合于执行计算机程序的计算机可以基于通用或专用微处理器或二者,或者任何其他种类的中央处理单元。通常,中央处理单元将从只读存储器或随机存取存储器或二者接收指令和数据。计算机的基本元件是用于执行或运行指令的中央处理单元和用于存储指令和数据的一个或多个存储器设备。中央处理单元和存储器可以由专用逻辑电路来补充或可以结合到其中。一般来说,计算机也将包括用于存储数据的一个或多个大容量存储设备(例如,磁盘、磁光盘或光盘)或可操作地耦合以从一个或多个大容量存储设备(例如,磁盘、磁光盘或光盘)接收数据或将数据传送给该一个或多个大容量存储设备或者接收和传送二者。然而,计算机不必具有这样的设备。另外,计算机可以嵌入到另一设备(例如,仅举几例,移动电话、个人数字助理(PDA)、移动音频或视频播放器、游戏控制台、全球定位***(GPS)接收器或便携式存储设备(例如通用串行总线(USB)快闪驱动器))中。
适合于存储计算机程序指令和数据的计算机可读介质包括所有形式的非易失性存储器、介质和存储器设备,举例来说,包括半导体存储器设备,例如EPROM、EEPROM和闪存设备;磁盘,例如内部硬盘或可移动盘;磁光盘;以及CD-ROM和DVD-ROM盘。
为了提供与用户的交互,本说明书中描述的主题的实施例可以实现在具有用于向用户显示信息的显示设备以及键盘和指向设备的计算机上,显示设备例如为CRT(阴极射线管)或LCD(液晶显示器)监视器,并且用户可以通过键盘和指向设备(例如为鼠标、轨迹球或存在(presence)敏感显示器或其他表面)向计算机提供输入。也可以使用其他种类的设备来提供与用户的交互;例如,提供给用户的反馈可以是任何形式的感觉反馈,例如视觉反馈、听觉反馈或触觉反馈;并且可以以任何形式接收来自用户的输入,包括声学、语音或触觉输入。此外,计算机可以通过向由用户使用的设备发送文档和接收来自该设备的文档来与用户交互;例如,通过响应于从网络浏览器接收的请求而将网页发送到用户的设备上的网络浏览器。另外,计算机可以通过将文本消息或其他形式的消息发送给个人设备(例如,运行消息传递应用的智能电话)并且作为回应从用户接收响应消息来与用户交互。
本说明书中描述的主题的实施例可以在计算***中实现,该计算***包括后端组件(例如作为数据服务器)或包括中间件组件(例如应用服务器)或包括前端组件(例如具有图形用户界面、网络浏览器或app的客户端计算机,用户可通过其与本说明书中描述的主题的实施方式进行交互),或者一个或多个这样的后端、中间件或前端组件的任意组合。可以通过任意形式或媒介的数字数据通信(例如通信网络)将***的组件互连。通信网络的示例包括局域网(LAN)和广域网(WAN),例如互联网。
计算***可以包括客户端和服务器。客户端和服务器一般彼此远离,并且通常通过通信网络交互。通过运行在相应计算机上并且彼此具有客户端-服务器关系的计算机程序来形成客户端和服务器的关系。在一些实施例中,服务器向用作客户端的用户设备传送数据(例如,HTML页面)(例如,用于向与设备交互的用户显示数据和从与设备交互的用户接收用户输入的目的)。在用户设备处生成的数据(例如,用户交互的结果)可以在服务器处从该设备接收。
尽管本说明书包含许多具体的实施方式细节,但是这些细节不应当被解释为对任何发明的范围或对可能请求保护的范围进行限制,而应该被解释为可能特定于特定发明的特定实施例的特征的描述。在本说明书中在分开的实施例的上下文中描述的某些特征也可以以组合方式实现在单个实施例中。相反,在单个实施例的上下文中描述的各种特征也可以在多个实施例中分开实现或以任何合适的子组合实现。此外,尽管特征可以如上被描述为以某些组合起作用并且甚至最初也这样地请求保护,但在一些情况下,来自所请求保护的组合的一个或多个特征可以从组合中删除,并且所请求保护的组合可以针对子组合或子组合的变体。
类似地,尽管在附图中以特定次序描绘了操作,但是这不应当被理解为要求以示出的特定次序或以顺序的次序来执行这样的操作,或者要求执行所有示出的操作,以实现期望的结果。在某些情况下,多任务和并行处理可能是有利的。另外,在上述实施例中各种***模块和组件的分离不应当被理解为在所有实施例中要求这样的分离,而是应当理解,所描述的程序组件和***可以一般地在单个软件产品中被集成在一起或者被封装成多个软件产品。
已经描述了主题的特定实施例。其他实施例在所附权利要求的范围内。例如,记载在权利要求中的动作可以以不同的次序执行而仍然实现期望的结果。作为一个示例,附图中描绘的过程不一定要求所示出的特定次序或者顺序的次序来实现期望的结果。在某一些情况下,多任务和并行处理可能是有利的。
Claims (23)
1.一种由一个或多个计算机执行的方法,所述方法包括:
获得表征环境的上下文数据,该上下文数据包括:
表征在当前时间点的环境中的多个因素中的每个因素的轨迹的数据,以及
表征环境中的多个道路特征的数据;
对于环境中的多个因素中的一个或多个目标因素中的每个目标因素:
从上下文数据生成(i)针对表示道路特征的多个多段线中的每个多段线的相应多段线嵌入,(ii)表征目标因素的轨迹的因素状态历史嵌入,以及(iii)表征环境中其他因素相对于目标因素的运动的聚合交互嵌入;
从相应多段线嵌入和因素状态历史嵌入生成针对目标因素的上下文嵌入;
从上下文嵌入、因素状态历史嵌入和聚合交互嵌入生成针对目标因素的融合嵌入;以及
从融合嵌入生成表征在当前时间点之后目标因素的预测未来轨迹的针对目标因素的未来轨迹预测。
2.根据权利要求1所述的方法,其中,生成针对所述多个多段线中的每个多段线的相应多段线嵌入包括,对于特定道路特征:
针对从表示环境的地图中的特定道路特征的一个或多个参数曲线导出的多个多段线中的每个多段线,获得表征所述多段线的相应特征向量;以及
使用多段线嵌入神经网络处理所述相应特征向量中的每一个,以针对从表示特定道路特征的一个或多个参数曲线导出的多个多段线中的每个多段线生成相应多段线嵌入。
3.根据权利要求2所述的方法,其中,所述相应特征向量中的每一个表征目标因素与多段线的空间关系。
4.根据任一项前述权利要求所述的方法,其中,表征所述轨迹的数据包括针对每个因素的、各自表征因素在不同时间点的状态的相应观察序列,并且其中,生成所述因素状态历史嵌入包括:
使用因素状态历史嵌入神经网络处理从针对目标因素的相应观察序列导出的输入序列,以生成因素状态历史嵌入的至少一部分。
5.根据权利要求4所述的方法,还包括通过将相应序列变换为目标因素的参考帧来生成从针对目标因素的相应观察序列导出的所述输入序列。
6.根据权利要求4或5中任一项所述的方法,其中,所述因素状态历史嵌入神经网络是循环神经网络,并且其中,所述因素状态历史嵌入的部分是在处理输入序列中的最后的观察之后循环神经网络的隐藏状态。
7.根据任一项前述权利要求所述的方法,其中,表征所述轨迹的数据包括针对每个因素的、各自表征因素在不同时间点的状态的相应观察序列,并且其中,生成所述交互嵌入包括:
对于环境中的一个或多个其他因素中的每个因素:
将针对其他因素的相应序列变换为目标因素的参考帧,以生成针对其他因素的相应变换后序列;以及
使用因素嵌入神经网络处理针对其他因素的相应变换后序列,以生成针对其他因素的嵌入;以及
将针对其他因素的嵌入组合以生成针对目标因素的交互嵌入。
8.根据权利要求7所述的方法,其中,所述其他因素嵌入神经网络是循环神经网络,并且其中,针对所述其他因素的嵌入是在处理所述变换后序列中的最后的观察之后的循环神经网络的隐藏状态。
9.根据权利要求4-8中任一项所述的方法,其中,所述序列中的每个观察包括下述数据:该数据指示所述观察是对应因素在对应时间点的状态的有效观察,还是由于在对应时间点在环境中没有观察到对应因素而生成的无效观察。
10.根据任一项前述权利要求所述的方法,其中,从上下文嵌入、因素状态历史嵌入和交互嵌入生成针对目标因素的融合嵌入包括:
级联上下文嵌入、从因素状态历史嵌入导出的嵌入和交互嵌入。
11.根据任一项前述权利要求所述的方法,其中,生成所述上下文嵌入包括:
初始化来自因素状态历史嵌入的上下文向量;以及
在多个迭代中的每个迭代更新上下文向量和多段线嵌入。
12.根据权利要求11所述的方法,其中,所述更新包括:
在每个迭代:
使用第一门控神经网络处理所述上下文向量以生成门控上下文嵌入;
对于每个多段线,
使用第二门控神经网络处理针对所述多段线的多段线嵌入以生成门控向量,以及
根据针对多段线的门控向量和门控上下文嵌入更新多段线嵌入;以及
在更新门控嵌入之后,根据门控嵌入更新所述上下文向量。
13.根据权利要求12所述的方法,其中,第一门控神经网络与第二门控神经网络相同。
14.根据权利要求12或权利要求13所述的方法,其中,根据所述门控嵌入更新所述上下文向量包括:
组合所述门控嵌入以生成组合门控嵌入。
15.根据任一项前述权利要求所述的方法,其中,所述未来轨迹预测定义了用于所述目标因素的可能未来轨迹上的概率分布。
16.根据权利要求15所述的方法,其中,所述未来轨迹预测包括用于多个锚轨迹中的每个锚轨迹的相应轨迹预测,所述相应轨迹预测包括所述锚轨迹是与因素的未来轨迹最接近的锚轨迹的概率。
17.根据权利要求16所述的方法,其中,用于所述锚轨迹中的每个锚轨迹的轨迹预测包括偏离输出,所述偏离输出定义在给定所述锚轨迹是与因素的未来轨迹最接近的锚轨迹的情况下与所述锚轨迹的偏离。
18.根据任一项前述权利要求所述的方法,其中,生成所述未来轨迹预测输出包括:
对于多个预测头中的每个预测头,使用所述预测头处理融合嵌入,以生成用于多个锚轨迹中的每个锚轨迹的相应初始轨迹预测;以及
通过组合由多个预测头生成的初始轨迹预测来生成未来轨迹预测输出。
19.根据任一项前述权利要求所述的方法,其中:
所述多个因素中的每个因素是环境中的自主载具附近的因素,以及
所述上下文数据包括从由自主载具的一个或多个传感器捕获的数据生成的数据。
20.根据权利要求20所述的方法,还包括:
将(i)用于一个或多个目标因素的轨迹预测,(ii)从用于一个或多个目标因素的轨迹预测导出的数据,或(iii)两者提供给自主载具的机载***以用于控制自主载具。
21.根据任一项前述权利要求所述的方法,其中:
所述多个因素中的每个因素是在现实世界环境的计算机模拟中的模拟自主载具附近的模拟因素,以及
所述上下文数据包括从模拟将由现实世界环境中的自主载具的一个或多个传感器捕获的数据的数据所生成的数据。
22.一种***,包括:
一个或多个计算机;以及
一个或多个存储设备,存储指令,所述指令在由一个或多个计算机执行时,使一个或多个计算机执行如权利要求1-21中任一项所述的相应操作。
23.一种或多种计算机可读存储介质,存储指令,所述指令在由一个或多个计算机执行时,使一个或多个计算机执行如权利要求1-21中任一项所述的方法的相应操作。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US202163163274P | 2021-03-19 | 2021-03-19 | |
US63/163,274 | 2021-03-19 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN115158309A true CN115158309A (zh) | 2022-10-11 |
Family
ID=80928722
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202210280603.6A Pending CN115158309A (zh) | 2021-03-19 | 2022-03-21 | 使用上下文敏感融合的因素轨迹预测 |
Country Status (3)
Country | Link |
---|---|
US (1) | US20220297728A1 (zh) |
EP (1) | EP4060626A1 (zh) |
CN (1) | CN115158309A (zh) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US11878706B2 (en) * | 2021-08-19 | 2024-01-23 | GM Global Technology Operations LLC | Driver command prediction |
US12044545B2 (en) * | 2022-03-01 | 2024-07-23 | Here Global B.V. | Method, apparatus, and computer program product for differential variable count entity output head for map generation |
-
2022
- 2022-03-21 US US17/700,348 patent/US20220297728A1/en active Pending
- 2022-03-21 EP EP22163372.0A patent/EP4060626A1/en active Pending
- 2022-03-21 CN CN202210280603.6A patent/CN115158309A/zh active Pending
Also Published As
Publication number | Publication date |
---|---|
US20220297728A1 (en) | 2022-09-22 |
EP4060626A1 (en) | 2022-09-21 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN114080634B (zh) | 使用锚定轨迹的代理轨迹预测 | |
JP7239703B2 (ja) | 領域外コンテキストを用いたオブジェクト分類 | |
US20230150550A1 (en) | Pedestrian behavior prediction with 3d human keypoints | |
CN114787739A (zh) | 使用向量化输入的智能体轨迹预测 | |
US11755917B2 (en) | Generating depth from camera images and known depth data using neural networks | |
CN114929543A (zh) | 预测周围因素的加塞概率 | |
US11727690B2 (en) | Behavior prediction of surrounding agents | |
CN114061581A (zh) | 通过相互重要性对自动驾驶车辆附近的智能体排名 | |
US20210150199A1 (en) | Spatio-temporal-interactive networks | |
EP4060626A1 (en) | Agent trajectory prediction using context-sensitive fusion | |
CN114829225A (zh) | 自主载具的条件行为预测 | |
US11950166B2 (en) | Predicting occupancy probabilities of surrounding agents | |
US20230082365A1 (en) | Generating simulated agent trajectories using parallel beam search | |
US20230082079A1 (en) | Training agent trajectory prediction neural networks using distillation | |
EP4060613A1 (en) | Predicting the future movement of agents in an environment using occupancy flow fields | |
CN114580702A (zh) | 多模态多代理轨迹预测 | |
US12049221B2 (en) | Multi-modal multi-agent trajectory prediction | |
US20220289209A1 (en) | Evaluating multi-modal trajectory predictions for autonomous driving | |
US12051249B2 (en) | Behavior prediction of surrounding agents | |
US20230110391A1 (en) | 3d sensing and visibility estimation | |
US20230406360A1 (en) | Trajectory prediction using efficient attention neural networks | |
CN114509772A (zh) | 使用参考对象进行远程距离估计 | |
CN114663503A (zh) | 从图像进行三维位置预测 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination |