用于预测动态对象行为的方法和系统与流程
未命名
07-17
阅读:225
评论:0
用于预测动态对象行为的方法和系统
1.本技术要求于2020年11月13日提交的、发明名称为“用于预测动态对象行为的方法和系统(methods and systems for predicting dynamic object behavior)”的第17/097,840号美国专利申请的优先权的权益,所述美国专利申请的内容以引用的方式并入本文中,如全文再现一般。
技术领域
2.本发明的示例涉及用于生成动态对象行为预测的方法和系统,包括用于在自动驾驶车辆的感测环境中生成动态对象行为预测的方法和系统。
背景技术:
3.基于机器学习的行为预测单元用于许多实用系统,如自动驾驶系统或车辆高级驾驶员辅助系统。对于自动驾驶系统或高级驾驶员辅助系统来说,重要的是能够在感测环境(即,由车辆的传感器感测的车辆周围的环境)中生成动态对象将如何行为(例如,行人在穿过街道时将如何移动)的准确预测,以便可以规划车辆的期望路径(例如,避免撞到穿过街道的行人),或者可以向车辆的驾驶员提供反馈。对动态对象在感测环境中的行为生成有用且准确的预测的一个因素是能够对感测环境中的动态对象之间的交互进行编码,以便定义动态对象的行为如何相互影响。由于问题具有复杂时空性质,对感测环境中的动态对象之间的交互进行编码,具体是对感测环境中的动态对象之间的交互进行编码可能是具有挑战性的。
4.许多现有的交互建模方法通常对感测环境中单个动态对象与其它对象(在某些上下文中也称为代理)之间的交互进行编码。对感测环境中的相应单个动态对象与其它动态对象之间的交互进行编码,并训练基于机器学习的预测单元的模型,以使用表示相应单个动态对象与其它动态对象之间交互的编码数据生成对相应单个动态对象将如何行为的准确预测,在一些上下文中可能是有效的。但是,这种方法通常不能扩展到更大或更复杂的环境,在这些环境中,存在大量动态对象或动态对象的数量高度可变(例如,在繁忙的十字路口中)。用于根据感测环境中的单个动态对象与其它动态对象之间的交互生成单个动态对象将如何行为的准确预测的许多现有模型需要估计与单个动态对象交互的其它对象(包括动态对象和静态对象)的数量,这并不总是能够实现。另一种现有的交互建模方法是使用嵌入形式来创建环境中的单个动态对象与其它动态对象交互的固定大小表示,以便由机器学习的模型进行处理。但是,这种对动态对象之间的交互进行建模的方法必然会丢失一些关于动态对象之间的交互的信息。随着彼此交互的动态对象数量的增加,嵌入可能会导致信息丢失过多,达到令人无法接受的程度。
5.因此,提供一种基于机器学习的技术,用于对动态对象之间的交互进行编码,并用于生成动态对象在感测环境中将如何行为的准确预测,这种技术是有用的。
技术实现要素:
6.在各种示例中,本发明描述了用于将感测环境(即,由车辆的各种传感器感测的车辆周围的环境)中不同类别的动态对象与静态对象之间的交互编码为感测环境中交互的单个统一表示的方法和系统。单个统一表示被提供作为行为预测器的输入,以生成一个或多个感兴趣动态对象的未来行为的预测(即,目标动态对象在感测环境中将如何行为)。在感测环境中目标动态的预测未来行为可以进一步作为输入提供给车辆的自动驾驶系统(autonomous driving system,ads)或高级辅助驾驶系统(advanced-assistive driving system,adas)的运动规划器,以进行考虑到目标动态对象在感测环境中的预测行为的运动规划。
7.在本文描述的示例中,基于一些共享特征(例如对象类),将感测环境的动态对象和静态对象分组为不同的对象类别,并且对不同类别的动态对象与静态对象之间的交互进行编码。在感测环境中,这种不同类别的动态对象与静态对象之间的交互的编码被称为分类编码。与针对感测环境中动态对象之间的交互的传统建模相比,本发明的分类编码方法较不复杂,计算效率更高,该传统建模需要复杂模型来对感测环境中的可变数量的单个动态对象进行编码。对象类别可以是预定义的,并且可以根据所需的应用由任何合适的特征定义(例如,类别可以由不同的对象类别定义,其中,感兴趣的类取决于感兴趣的环境)。
8.由于类别和类别数量是预定义的,因此可以固定编码动态和静态对象类别之间的交互所需的计算时间和内存资源。本发明的示例可以是可扩展的,以能够在大型或复杂环境中预测目标动态对象(例如行人或其它车辆)的行为,而所需的计算时间或内存资源的增加很少或不增加。
9.本发明的示例可用于各种应用,包括自动驾驶、无人机驾驶、异常检测、辅助机器人或智能交通管理等。
10.在一些示例性方面中,本发明描述了一种用于预测车辆的环境中感兴趣动态对象的行为的方法。所述方法包括:接收多个时间序列特征数据,每个时间序列特征数据表示所述环境中的多个对象在多个时间步长上的相应特征,所述多个对象包括感兴趣动态对象。所述方法还包括:将每个时间序列特征数据分类为多个定义的对象类别中的一个,以获得每个定义的对象类别的分类数据集,每个分类数据集包括一个或多个时间序列特征数据,所述一个或多个时间序列特征数据表示属于相应定义的对象类别的一个或多个对象;将每个分类数据集编码为相应的分类表示,每个分类表示表示在所述相应定义的对象类别中的特征的时间变化。所述方法还包括:将所述分类表示组合成单个共享表示,生成分类交互表示,其中,所述分类交互表示是每个定义的对象类别中的时间变化对所述共享表示的最终时间步长的影响的加权表示;基于所述分类交互表示、表示所述多个对象的动态性的数据和表示所述车辆的状态的数据,生成表示所述感兴趣动态对象的预测未来行为的预测数据。
11.在上述任一示例中,组合分类表示可以包括根据时间步长级联所述分类表示,以生成所述单个共享表示。
12.在上述任一示例中,对每个分类数据集进行编码可以包括:对于属于给定对象类别的给定分类数据集,将所述一个或多个时间序列特征数据提供给经过训练的神经网络,以生成时间序列特征向量作为所述给定对象类别的分类表示。
13.在上述任一示例中,所述经过训练的神经网络可以是递归神经网络、卷积神经网络或组合的递归和卷积神经网络。
14.在上述任一示例中,至少一个定义的对象类别可以特定于感兴趣动态对象。
15.在上述任一示例中,所述方法可以包括:接收传感器生成的时间序列传感器数据;将所述时间序列传感器数据预处理为一个时间序列特征数据,所述一个时间序列特征数据包括在接收到的多个时间序列特征数据中。
16.在上述任一示例中,所述车辆是自动驾驶车辆,并且所述方法可以包括:将表示所述感兴趣动态对象的所述预测未来行为的所述预测数据提供给所述自动驾驶车辆的运动规划子系统,以生成所述自动驾驶车辆的规划路径。
17.在一些示例性方面中,本发明描述了一种用于预测车辆的环境中感兴趣对象的动态对象的行为的计算系统。所述计算系统包括:处理器系统,用于执行指令以使所述计算系统的对象行为预测子系统进行以下操作:接收多个时间序列特征数据,每个时间序列特征数据表示所述环境中的多个对象在多个时间步长上的相应特征,所述多个对象包括感兴趣动态对象;将每个时间序列特征数据分类为多个定义的对象类别中的一个,以获得每个定义的对象类别的分类数据集,每个分类数据集包括一个或多个时间序列特征数据,所述一个或多个时间序列特征数据表示属于相应定义的对象类别的一个或多个对象;将每个分类数据集编码为相应的分类表示,每个分类表示表示在所述相应定义的对象类别中的特征的时间变化;将所述分类表示组合成单个共享表示;基于所述单个共享表示生成分类交互表示,所述分类交互表示是加权表示,表示每个定义的对象类别中的时间变化对所述单个共享表示的最终时间步长的影响;基于所述分类交互表示、表示所述多个对象的动态性的数据和表示所述车辆的状态的数据生成预测数据,所述预测数据表示所述感兴趣动态对象的预测未来行为。
18.在一些示例中,所述处理系统可以用于执行指令以执行上述任何方法。
19.在一些示例性方面中,本发明描述了一种计算机可读介质,所述计算机可读介质包括计算机可执行指令,以实现对象行为预测子系统,预测车辆的感测环境中感兴趣动态对象的行为。所述指令当由计算系统的处理系统执行时使所述计算系统进行以下操作:接收多个时间序列特征数据,每个时间序列特征数据表示所述环境中的多个对象在多个时间步长上的相应特征,所述多个对象包括感兴趣动态对象;将每个时间序列特征数据分类为多个定义的对象类别中的一个,以获得每个定义的对象类别的分类数据集,每个分类数据集包括一个或多个时间序列特征数据,所述一个或多个时间序列特征数据表示属于相应定义的对象类别的一个或多个对象;将每个分类数据集编码为相应的分类表示,每个分类表示表示在所述相应定义的对象类别中的特征的时间变化;将所述分类表示组合成单个共享表示;基于所述单个共享表示生成分类交互表示,所述分类交互表示是加权表示,表示每个定义的对象类别中的时间变化对所述单个共享表示的最终时间步长的影响;基于所述分类交互表示、表示所述多个对象的动态性的数据和表示所述车辆的状态的数据生成预测数据,所述预测数据表示所述感兴趣动态对象的预测未来行为。
20.在一些示例中,所述指令可以使所述计算系统执行上述任何方法。
附图说明
21.现在将通过示例参考示出本技术示例性实施例的附图,在附图中:
22.图1是本发明的一些实施例提供的自动驾驶车辆运行的示例性环境的示意图;
23.图2是本发明的一些实施例提供的自动驾驶车辆的一些示例性组件的框图;
24.图3是本发明的一些实施例提供的用于编码分类交互的示例性子系统的框图;
25.图4是本发明的一些实施例提供的用于生成对象行为预测的示例性子系统的框图;
26.图5是本发明的一些实施例提供的用于预测动态对象的行为的示例性方法的流程图。
27.在不同的附图中可以使用相似的附图标记来表示相似的组件。
具体实施方式
28.下面参考附图对本发明中的技术方案进行描述。
29.本发明的一些示例在自动驾驶车辆的上下文中描述。虽然本文描述的示例可以将汽车称为自动驾驶车辆,但本发明的教导可以在其它形式的自动或半自动驾驶车辆中实现,包括例如电车、地铁、卡车、公共汽车、水面和潜水船只和船舶、飞机,无人机(也称为无人机(unmanned aerial vehicle,uav))、仓库设备、制造设施设备、建筑设备、农场设备、吸尘器和割草机等自主服务机器人以及其它机器人设备。自动驾驶车辆可以包括不载客的车辆以及载客的车辆。
30.本发明的示例可适用于除自动驾驶车辆以外的应用。例如,本发明的示例可应用于以下上下文中:用于自动驾驶车辆的自动驾驶系统(automated driving systems,ads)、用于半自动驾驶车辆的高级驾驶员辅助系统(advanced driver-assistance system,adas)、辅助机器人(例如,使辅助机器人能够预测从其它动态对象的预期或预测行为中突出的动态对象行为)、异常检测(例如,能够预测从其它动态对象的预期或预测行为中突出的动态对象行为),或智能交通管理(例如,能够预测十字路口的交通行为)等。本文描述的示例性方法和系统可以适用于在感测环境(也称为感测场景)中准确预测一个或多个感兴趣动态对象(另外单独称为目标动态对象,并统称为目标动态对象)的行为是有用的或期望的任何上下文。动态对象是环境中的任何对象,其状态(例如,位置)在感兴趣的时间段内(例如,超过10分钟)发生变化。静态对象是环境中的任何对象,其状态(例如,位置)在感兴趣的时间段内几乎没有变化(例如,位置变化在预定义的裕度内,例如1米)。
31.本文示例中描述的方法和系统可用于训练对象行为预测器,该对象行为预测器在被训练后可被部署到自动驾驶车辆的ads或车辆的adas。在所公开的方法和系统中,表示感测对象(包括静态对象和动态对象,也称为环境元素或场景元素)的特征数据和环境中的感测特征根据定义的对象类别分组在一起。编码对象类别之间的交互,而非单个对象和特征的交互。分类交互的编码表示用作输入,以预测环境中动态对象的行为。因此,所公开的方法和系统提供了一种技术效果,即可以预测动态对象的行为,而不必处理环境中每个单独对象的交互。另一个技术效果是,可以使用不太复杂的机器学习架构、使用更少的计算时间和/或使用更少的内存资源来实现经过训练的对象行为预测器。
32.在自动驾驶或辅助驾驶的上下文中,对感兴趣对象的准确行为预测非常重要,至
少对于确保车辆乘员和环境中其他人的安全非常重要。在设计和实现用于预测感测环境中感兴趣对象的行为的行为预测模型中的挑战是如何对感测环境中不同对象之间的交互进行编码的问题。准确表示环境中动态对象如何相互交互的信息非常重要,因为这种交互可能会影响动态对象在未来如何移动。
33.在本发明中,交互是指感兴趣对象由于环境中其它对象的存在而进行的行为。如下面将进一步讨论,可以基于另一个对象对感兴趣对象行为的影响程度来对交互加权。例如,如果感兴趣对象行为相同,则可以确定低(或零)交互(其可以被分配低权重),而不管其它对象是否在感测的环境中,并且,如果感兴趣对象由于环境中的另一个对象的存在而急剧改变行为,则可以确定高交互(可以被分配高权重)。交互可以在感兴趣动态对象与一个或多个其它感兴趣动态对象(例如,避开另一个行走行人的行走行人)之间,或者在感兴趣动态对象与一个或多个其它感兴趣静态对象(例如,避开人行道中的消防栓的行走行人)之间进行。在一些示例中,交互也可以是感兴趣对象由于环境中另一个对象表示的语义含义(即,不仅仅是由于另一个对象的存在)而改变行为(例如,如果红绿灯变为红色,行走行人可能会停止行走)。
34.一些现有的技术方案通过考虑所有单个动态对象(例如,道路使用者,如单个车辆、单个行人和/或单个骑自行车的人)之间的潜在交互来对相应单个对象与其它对象之间的交互进行建模。这种方案通常依赖于环境中所有动态对象的轨迹和位置信息,并忽略动态对象与静态对象(例如,道路标记、标志、交通信号等)之间的交互。基于对感兴趣对象与每个单个对象之间的交互进行建模的方案通常不可扩展(或可扩展性有限),并且难以或不可能适应对象数量高度可变的环境。基于对与单个对象的交互进行建模的方案的另一个缺点是,在对大量对象之间的交互进行建模时(当环境中存在20个或更多个动态对象时),对所有单个对象之间的交互进行建模可能是困难的(例如,需要过于复杂的机器学习模型)和/或在计算上无法实现(例如,需要过多的计算时间、处理能力和/或内存资源)。这是因为基于单个对象交互的方法需要估计交互对象的数量,并且计算复杂性(因此所需的内存资源和计算时间)随着交互元素的数量增加而增加。此外,可变数量的单个对象和交互的表示需要转换为固定大小的表示,以便使其在机器学习中可用。这种转换可能难以定义,或可能导致大量信息丢失。
35.现有方案通常以两种方式之一应对这些挑战。一种方法是单个对象的数量定义限制,该单个对象与其它对象的交互将被建模。但是,可能很难为单个对象的数量定义适当的限制,该单个对象与其它对象的交互在高度可变的环境中被建模(例如,流量密度混合且变化较大)。另一种方法是使用嵌入机制将可变大小表示(例如,表示环境中可变数量的动态对象)转换为固定大小表示。但是,当对大量动态对象的固定大小表示进行编码时,这种嵌入机制可能会导致大量信息丢失。
36.在本发明中,描述了通过对定义类别的对象(或对象特征)之间的交互进行编码来对进行交互建模而非对环境中的相应单个对象与其它对象之间的交互进行建模的示例性方法和系统。与一些现有的方案(例如,如上所述)相比,这可能有助于降低用于编码交互和生成动态对象行为预测(即,感测环境中感兴趣动态对象的行为的预测)的计算成本和模型复杂性。
37.通常,动态对象行为的预测可以由神经网络生成。为了便于理解,下面描述了与神
经网络相关的一些概念和可能与预测本文公开的感兴趣对象的动态对象行为的示例性神经网络相关的一些相关术语。
38.神经网络由神经元组成。神经元是一个计算单元,该计算单元使用xs和1的截距作为输入。计算单元的输出可以是:
[0039][0040]
其中,s=1、2、
……
、n,n是大于1的自然数,ws是xs的权重(或系数),b是神经元的偏移(即偏置),f是神经元的激活函数,用于将非线性特征引入神经网络,以将神经元的输入转换为输出。激活函数的输出可以用作神经网络中后续卷积层的神经元的输入。例如,激活函数可以是sigmoid函数。神经网络由多个上述单个神经元连接而成。换句话说,一个神经元的输出可以是另一个神经元的输入。每个神经元的输入可以与前一层的局部接收区域相关联,以提取局部接收区域的特征。局部接收区域可以是由几个神经元组成的区域。
[0041]
深度神经网络(deep neural network,dnn)也被称为多层神经网络,并且可以理解为包括第一层(通常称为输入层)、多个隐藏层和最后层(通常称为输出层)的神经网络。本文中的“多个”没有特殊的度量。当神经网络的两个相邻层之间存在全连接时,层被认为是全连接层。具体地,对于要全连接的两个相邻层(例如,第i层和第(i+1)层),第i层中的每个神经元必须连接到第(i+1)层中的每个神经元。
[0042]
dnn的每个层的处理可以描述如下。简言之,每个层的操作由以下线性关系表达式表示:其中,是输入张量,是输出张量,是偏移张量,w是权重(也称为系数),α(.)是激活函数。在每个层中,对输入张量执行操作,以获得输出张量
[0043]
由于dnn中有大量的层,因此也有大量的权重w和偏移向量dnn中的这些参数的定义如下,以权重w为例。在本示例中,在三层dnn(即具有三个隐藏层的dnn)中,从第二层的第四神经元到第三层的第二神经元的线性权重表示为上标3表示权重w的层(即,本示例中的第三层(或层3)),下标表示输出在层3索引2(即,第三层的第二神经元),输入在层2索引4(即,第二层的第四神经元)。通常,从第(l
–
1)层的第k神经元到第l层的第j神经元的权重可以表示为需要说明的是,输入层没有w参数。
[0044]
在dnn中,更多数量的隐藏层可以使dnn更好地建模复杂的情况(例如,现实世界的情况)。理论上,参数更多的dnn更复杂,容量更大(这可能是指学习模型适应各种可能场景的能力),并表明dnn可以完成更复杂的学习任务。dnn的训练是学习权重矩阵的过程。训练的目的是获得经过训练的权重矩阵,该经过训练的权重矩阵由dnn所有层的学习权重w组成。
[0045]
卷积神经网络(convolutional neural network,cnn)是具有卷积结构的dnn。cnn包括由卷积层和子采样层组成的特征提取器。特征提取器可以被视为过滤器。卷积过程可以被视为使用可训练滤波器对二维(two-dimensional,2d)输入图像或卷积特征图执行卷积。
[0046]
卷积层是对cnn中的输入执行卷积处理所在的神经元层。在卷积层中,一个神经元可以仅连接到相邻层中的神经元子集(即,不是所有神经元)。也就是说,卷积层通常不是全
连接层。一个卷积层通常包括几个特征图,每个特征图可以由以矩形排列的一些神经元组成。同一特征图上的神经元共享权重。共享权重可以统称为卷积核。通常,卷积核是一个2d权重矩阵。应理解,卷积核可以与图像信息提取的方式和位置无关。卷积层背后隐藏的一个原理是,图像的一部分的统计信息与图像的另一部分的统计信息相同。这意味着从图像的一部分学习的图像信息也可以适用于图像的另一部分。在同一卷积层可以使用多个卷积核来提取不同的图像信息。通常,卷积核的数量越多,表示卷积运算反映的图像信息越丰富。
[0047]
卷积核可以初始化为随机值的2d矩阵。在cnn的训练过程中,学习卷积核的权重。使用卷积核在同一特征图中的神经元之间共享权重的一个优点是,cnn的卷积层之间的连接减少(与全连接层相比),并且降低了过拟合的风险。
[0048]
在训练dnn的过程中,可以将dnn输出的预测值与期望目标值(例如,地面真值)进行比较。基于预测值与期望目标值之间的差值更新dnn的每个层的权重向量(其是包含给定层的权重w的向量)。例如,如果dnn输出的预测值过高,则可以调整每个层的权重向量以降低预测值。这种比较和调整可以迭代地执行,直到满足收敛条件(例如,已经执行了预定义的最大迭代次数,或者dnn输出的预测值与期望目标值充分收敛)。定义了损失函数或目标函数,作为定量表示预测值与目标值的接近程度的一种方法。目标函数表示要优化(例如,最小化或最大化)的量,以便使预测值尽可能接近目标值。损失函数更具体地表示预测值与目标值之间的差值,训练dnn的目标是最小化损失函数。
[0049]
反向传播是一种训练dnn的算法。反向传播用于调整(也称为更新)dnn中参数(例如权重)的值,以便输出中的误差(或损失)变得更小。例如,根据dnn的输入到输出的正向传播,计算定义的损失函数。反向传播计算损失函数相对于dnn的参数的梯度,并且使用梯度算法(例如,梯度下降)更新参数以减少损失函数。反向传播是迭代执行的,使得损失函数收敛或最小化。
[0050]
递归神经网络(recurrent neural network,rnn)是一种神经网络(通常是dnn),通常用于处理序列数据,其中,预计在数据的顺序中存在某种关系(例如,在包含时间步长序列上的数据的时间数据集中,或在信息按文本中单词的顺序编码的文本数据集中)。例如,为了预测句子中的单词,通常需要前一个单词,因为预测单词的可能性取决于句子中的前一个单词。在rnn中,序列的当前预测输出的计算也与先前的输出相关。在概念上,rnn可以被理解为“记忆”先前信息并将先前信息应用于当前预测输出的计算。在神经网络层方面,隐藏层之间的节点被连接,使得对给定隐藏层的输入包括前一层的输出,并且还包括由隐藏层从前一输入生成的输出。这可以被称为参数共享,因为参数(例如,层权重)在层的多个输入之间共享。因此,在序列数据中的不同顺序位置提供的对隐藏层的相同输入可能会导致隐藏层根据序列中的先前输入生成不同的输出。rnn可以被设计成处理任何期望长度的序列数据。
[0051]
rnn的训练可以类似于传统cnn或dnn的训练。也可以使用误差反向传播算法。为了考虑rnn中的参数共享,在梯度下降算法中,每个梯度步长的输出是根据当前步骤的权重以及几个先前步骤的权重计算的。用于训练rnn的学习算法可以被称为随时间反向传播(back propagation through time,bptt)。
[0052]
为了帮助理解本发明,现在讨论环境中的自动驾驶车辆的示例。应当理解,本发明并不意图限于在自动驾驶车辆的上下文中实现。
[0053]
图1是示出车辆105运行的示例性环境100的示意图。本发明的示例可以在车辆105中实现,例如以实现自动或半自动驾驶。环境100包括与车辆105通信的通信系统200。车辆105包括车辆控制系统115。车辆控制系统115连接到车辆105的驱动控制系统和机械系统,如下面参考图2进一步描述。在各种示例中,车辆控制系统115可以使车辆105能够在完全自动、半自动或完全用户控制的模式中的一个或多个下操作。
[0054]
车辆105可以包括传感器,本文中示出为收集关于车辆105周围外部环境100的信息并生成指示这种信息的传感器数据的多个环境传感器110,以及收集关于车辆105的操作条件的信息并生成指示这种信息的车辆数据的多个车辆传感器111。可以有不同类型的环境传感器110来收集关于环境100的不同类型的信息,如下文进一步讨论。在示例性实施例中,环境传感器110安装和定位在车辆105的前部、后部、左侧和右侧,以收集关于位于车辆105的前部、后部、左侧和右侧的外部环境100的信息。环境传感器110的单个单元可以安装或以其它方式位于车辆105上,以具有不同的重叠或非重叠视场(field of view,fov)或覆盖区域,以捕获关于车辆105周围环境100的数据。车辆控制系统115接收传感器数据,这些传感器数据指示由环境传感器110收集的关于车辆105的外部环境100的收集信息。
[0055]
车辆传感器111实时或接近实时地将指示关于车辆105的操作条件的收集信息的车辆数据提供给车辆控制系统115。例如,车辆控制系统115可以使用指示由一个或多个车辆传感器111提供的关于车辆105的操作条件的信息的车辆数据来确定车辆105的线速度、车辆105的角速度、车辆105的加速度、车辆105的发动机rpm、车辆105的变速器齿轮和轮胎抓地力等因素。
[0056]
车辆控制系统115可以包括或连接到一个或多个无线收发器130,一个或多个无线收发器130使车辆控制系统115能够与通信系统200通信。例如,一个或多个无线收发器130可以包括一个或多个蜂窝(rf)收发器,用于使用不同的无线数据通信协议和标准与多个不同无线接入网络(例如,蜂窝网络)通信。一个或多个无线收发器130可以在其地理覆盖区域内与无线广域网(wide area network,wan)210(例如,蜂窝网络)的多个固定收发器基站中的任何一个通信。一个或多个无线收发器130可以通过无线wan 210发送和接收信号。一个或多个无线收发器130可以包括支持多个射频频段的多频段蜂窝收发器。车辆控制系统115可以使用无线wan 210通过一个或多个通信网络220(例如互联网)访问服务器240(例如驾驶辅助服务器)。服务器240可以实现为数据中心中的一个或多个服务器模块,并且通常位于防火墙230后面。服务器240可以连接到网络资源250,例如可以提供车辆控制系统115使用的信息的补充数据源。
[0057]
一个或多个无线收发器130还可以包括无线局域网(wireless local area network,wlan)收发器,用于通过wlan接入点(access point,ap)与wlan(未示出)进行通信。wlan可以包括符合ieee 802.11x标准(有时称为)或其它通信协议的wi-fi无线网络。一个或多个无线收发器130还可以包括短程无线收发器,例如收发器,用于与移动计算设备(例如智能手机或平板电脑)进行通信。一个或多个无线收发器130还可以包括其它短程无线收发器,包括但不限于近场通信(near field communication,nfc)、ieee 802.15.3a(也称为超宽带(ultra wideband,uwb))、z-wave、zigbee、ant/ant+或红外线(例如国际红外数据协会(infrared data association,irda)通信)。
[0058]
通信系统100还包括有包括多个卫星的卫星网络260。车辆控制系统115可以使用
卫星网络260中的多个卫星的信号来确定其位置。卫星网络260通常包括多个卫星,这些卫星是至少一个全球导航卫星系统(global navigation satellite system,gnss)的一部分。至少一个gnss提供具有全球覆盖的自动地理空间定位。例如,卫星网络260可以是gnss卫星的集合。示例性gnss包括美国navstar全球定位系统(global positioning system,gps)或俄罗斯全球轨道导航卫星系统(global navigation satellite system,glonass)。其它已经部署或正在开发的卫星导航系统包括欧盟的伽利略定位系统、中国的北斗导航卫星系统(beidou navigation satellite system,bds)、印度区域卫星导航系统和日本卫星导航系统。
[0059]
图2示出了本文描述的一些示例提供的车辆105的选定组件。车辆105包括车辆控制系统115,该车辆控制系统115被连接到驱动控制系统150和机电系统190。车辆控制系统115还被连接以接收来自环境传感器110和车辆传感器111的数据。
[0060]
环境传感器110可以例如包括一个或多个相机单元112、一个或多个光检测和测距(light detection and ranging,lidar)单元114以及合成孔径雷达(synthetic aperture radar,sar)单元116等一个或多个雷达单元,以及其它可能性。每种类型的传感器单元112、114、116可以收集关于车辆105外部环境100的相应不同信息,并可以分别以不同的格式向车辆控制系统115提供传感器数据。例如,相机单元112可以提供代表数字图像的相机数据,lidar单元114可以提供二维或三维点云,并且sar单元可以提供代表雷达图像的雷达数据。
[0061]
车辆传感器111可以包括例如惯性测量单元(inertial measurement unit,imu)118,该imu 118感测车辆105的比力和角速率,并基于感测的比力和角速率提供关于车辆方向的数据。车辆传感器111还可以包括电子罗盘119和其它车辆传感器120,例如速度计、转速表、车轮牵引力传感器、变速器齿轮传感器、节气门和制动器位置传感器以及转向角度传感器。
[0062]
车辆控制系统115还可以使用通过卫星接收器132从卫星网络260接收的信号收集关于车辆105的位置的信息,并生成代表车辆105的位置的定位数据。
[0063]
车辆105还包括各种结构元件,例如车架、门、面板、座椅、窗户、镜子等,这些结构元件在本领域中是已知的,但为了避免混淆本发明的教导,这些结构元件已经从本发明中删掉。车辆控制系统115包括处理器系统102,该处理器系统102通过通信总线(未示出)连接到多个组件,该通信总线提供组件与处理器系统102之间的通信路径。处理器系统102连接到驱动控制系统150、随机存取存储器(random access memory,ram)122、只读存储器(read only memory,rom)124、闪存可擦除可编程只读存储器(erasable programmable read only memory,eprom)(闪存)等持久(非易失性)存储器126、一个或多个无线收发器130、卫星接收器132,以及一个或多个输入/输出(input/output,i/o)设备134(例如,触摸屏、扬声器、麦克风、显示屏、机械按钮等)。处理器系统102可以包括一个或多个处理单元,包括一个或多个中央处理单元(central processing unit,cpu)、一个或多个图形处理单元(graphical processing unit,gpu)、一个或多个张量处理单元(tensor processing unit,tpu)以及其它处理单元等。
[0064]
驱动控制系统150向机电系统190提供控制信号,以实现车辆105的物理控制。例如,当处于完全自动或半自动驾驶模式时,驱动控制系统150从车辆控制系统115接收规划动作(如下文进一步讨论),并使用转向单元152、制动单元154和节气门(或加速)单元156将
规划动作转换为控制信号。每个单元152、154、156可以实现为驱动控制系统150内的一个或多个软件模块或一个或多个控制块。驱动控制系统150可以包括用于控制车辆105的其它方面(包括控制转向信号灯和刹车灯等)的其它组件。
[0065]
机电系统190从驱动控制系统150接收控制信号,以操作车辆105中的机电组件。机电系统190影响车辆105的物理操作。机电系统190包括发动机192、变速箱194和车轮196。发动机192可以是汽油动力发动机、电池动力发动机、混合发动机等。其它组件可以包括在机械系统190中,包括例如转向信号灯、刹车灯、风扇和窗户。
[0066]
车辆控制系统115的存储器126在其上存储了可由处理器系统102执行的软件指令。软件指令可以由处理器系统102执行,以实现一个或多个软件系统、软件子系统和软件模块。通常,应当理解,本文公开的软件系统、软件子系统和软件模块可以实现为存储在存储器126中的指令集。例如,存储器126可以包括用于实现操作系统160和包括规划系统300(也称为路径规划系统)的ads或adas的可执行指令。规划系统300可以是基于机器学习的系统,其生成待由车辆105执行的规划路径(可以包括规划子路径和规划行为)。规划系统300包括任务规划子系统305、行为规划子系统310、运动规划子系统315和对象行为预测子系统320。对象行为预测子系统320还包括分类交互子系统400和行为预测器322。分类交互子系统400的细节将在下文进一步提供。
[0067]
规划系统300的规划和决策可以是动态的,并且随着环境的变化而重复执行。环境的变化可以是由于车辆105的移动(例如,车辆105接近新检测到的障碍物)以及由于环境的动态性质(例如,移动的行人和其它移动的车辆)。
[0068]
规划子系统305、310、315以不同的细节级别执行规划。由任务规划子系统305进行的任务级规划被认为是更高(或更全局)的规划级别,由运动规划子系统315进行的运动级规划被认为是更低(或更局部)的规划级别,并且由行为规划子系统310进行的行为级规划被认为是任务级与运动级之间的规划级别。通常,来自较高级规划子系统的输出可以构成对较低级规划子系统的输入的至少一部分。
[0069]
任务规划子系统305的规划(更简单地称为任务规划)涉及在高或全局级别上规划车辆105的路径,例如规划从起点(例如,家庭住址)到最终目的点(例如,工作地址)的行进路线。行为规划子系统310可以从任务规划子系统305接收规划路线。行为规划子系统310涉及在比任务规划子系统305更局部和更短期的基础上控制车辆105的行为。行为规划子系统310可以生成根据某些规则(例如,交通规则,例如速度限制或标志)或指导(例如,用于平滑和高效驾驶的指导,例如,如果可能的话,走更快的车道)的行为决策。行为决策可以作为运动规划子系统315的输入的一部分提供。运动规划子系统315涉及基于车辆105的直接环境100控制车辆105的运动。运动规划子系统315生成规划车辆运动,以确保环境中的车辆乘员和其它对象(例如,行人、其它车辆、骑自行车的人等)的安全。由于环境可以是高度动态的(例如,行人和其它车辆都在移动),运动规划子系统315应执行能够考虑环境100中的预期(或预测)变化的运动规划。
[0070]
从环境传感器110接收的传感器数据和从车辆控制传感器111接收的车辆数据(以及可选地还从卫星网络260收集的定位数据)可以被ads和adas的感知系统178使用以生成表示环境100的特征的经处理数据(例如,特征向量、占用网格图(occupancy grid map,ogm)、对象分类和边界框,等)。感知系统178可以包括一个或多个基于机器学习的系统(例
如,经过训练的神经网络),一个或多个基于机器学习的系统生成表示在每个时间步长的环境100的特征的经处理数据。
[0071]
感知系统178可以包括任何数量的独立或互连的系统或功能,并且可以例如包括基于规则的系统、基于机器学习的系统及其组合。基于机器学习的系统可以使用神经网络来实现,例如任何类型的dnn(包括cnn或rnn)、长短期记忆网络等。在一些示例中,感知系统178可以包括:融合子系统,用于融合来自多个环境传感器110和车辆传感器111的传感器数据和车辆数据,以生成融合数据;分类子系统,用于处理传感器数据或融合数据,以检测和识别环境100中的对象(例如,检测和识别静止障碍物、行人或另一车辆、车道和车道边界以及交通灯/标志等);以及定位和地图构建子系统,用于构建或更新环境100的地图并估计车辆105在地图中的位置。
[0072]
存储器126还可以在其上存储有指令,用于实现其它软件系统、子系统和模块,例如导航系统、气候控制系统、媒体播放器系统、电话系统和/或消息传递系统等。
[0073]
图3是分类交互子系统400的示例性细节的框图。分类交互子系统400可以是对象行为预测子系统320的子系统(也可以是规划系统300的子系统)。但是,应当理解,分类交互子系统400也可以在对象行为预测子系统320之外、规划系统300之外和/或自动驾驶车辆105的ads或adas之外使用。例如,分类交互子系统400可以适用于动态对象之间交互的编码将是有用的任何计算系统(例如,辅助机器人技术、异常检测或智能交通管理等)。
[0074]
分类交互子系统400接收特征数据作为输入,并生成分类交互表示作为输出,该分类交互表示是表示定义的对象类别之间交互(也称为分类交互)强度的数据(例如张量)。分类交互表示可以提供给预测模型,例如在行为预测器322中实现的预测模型,以预测在未来时间步长的环境100中感兴趣动态对象(即目标动态对象)的行为(例如,动作和轨迹)。预测行为可以是预测动作、预测轨迹或预测动作-轨迹对,以及其它可能性。预测动作可以是包含行为类(例如,行为的预测类标签)的更高级别的预测,并且可以与预期的未来事件相关联。预测动作可能不提供关于感兴趣动态对象为执行预测动作而将执行的特定运动(或轨迹)的数据。预测轨迹可以是预测感兴趣动态对象在未来时间间隔内的运动或位置的较低级别预测。预测轨迹不包括用于理解轨迹含义的标签。例如,如果感兴趣动态对象是行人,则预测动作可以是向另一车辆行走的行人(这可能与另一车辆将开始移动的未来事件相关联)或穿过道路的行人,则预测轨迹可以是行人到达另一车辆或到达道路另一侧所走的路径。然后,可以将感兴趣动态对象的预测行为提供给运动规划子系统315,以规划将由车辆105执行的运动。
[0075]
输入到分类交互子系统400的特征数据是表示车辆105的环境100的数据。在一些示例中,特征数据可以包括多个数据集。每个数据集可以是表示环境100的一个或多个特定特征(例如,环境100中的特定对象类别)的相应时间数据集(即,对应于多个时间步长的数据)。相应地,特征数据集也可以称为时间序列(或观察序列)特征数据,输入到分类交互子系统400的特征数据可以包括多个时间序列特征数据。输入到分类交互子系统400的所有时间序列特征数据可以简单地统称为特征数据。
[0076]
特征数据可以包括由一个或多个环境传感器110、车辆传感器111生成的时间序列数据(经过较少处理或没有处理,也称为原始传感器数据),并且还可以包括由感知系统178生成的时间序列数据。输入到分类交互子系统400的特征数据可以包括具有不同格式的时
间序列数据(例如,矩阵数据或张量数据等结构化数据,以及点云数据等非结构化数据)。例如,输入到分类交互子系统400的特征数据可以包括一个或多个特征向量、对象分类数据(例如,编码为2d矩阵数据)、对象分割数据(例如,编码为2d矩阵数据)、一个或多个对象边界框、一个或多个ogm、一个或多个2d图像,和/或一个或多个点云等。因此,特征数据可以包括表示从较早时间步长到当前时间步长的环境100的各种特征的时间序列数据。特征数据中每个时间序列的时间长度可以是相等的,时间步长之间的时间间隔也可以是相等的,但是应该理解,这不是一个严格的要求。特征数据的时间长度可以是任何合适的持续时间(例如,长达10分钟或更长时间、10分钟或更短、5分钟或更短等)。特征数据的时间长度可以基于预期环境预定义(例如,较短的时间长度可以适合于高度变化的动态环境,或者较长的时间长度可以适合于缓慢变化的动态环境)。移动时间窗口可用于确保特征数据的时间序列表示所需的时间长度,并且/或者衰减因子(或折扣因子)可用于确保较旧的数据从特征数据中逐渐减少。
[0077]
在一些示例中,分类交互子系统400中可以存在可选的预处理子系统(未示出),以将不同格式的特征数据预处理成通用格式。例如,给定时间序列特征数据中的每个时间步长可以被预处理成相应的2d语义分割图(例如,以2d图像的格式,其中,图像中的每个像素被分配标识定义的对象类集中的一个对象类的标签),以将给定时间序列特征数据转换为时间序列2d图像,其中,每个2d图像表示相应的时间步长。
[0078]
多个时间序列特征数据(如果适用的话,在可选的预处理之后)由执行对象分类的分类器405接收。例如,分类器405可以使用经过训练的模型(例如,在训练期间使用机器学习算法学习其参数的模型)来识别属于每个对象类别的特征数据。分类器405根据每个时间序列特征数据中表示的对象的共享特征,将时间序列特征数据分类为相应的对象类别。每个类别由一个或多个共享对象特征(例如,对象类、动态/静态性质等)定义。可以根据预期环境100定义对象类别(例如,在自动驾驶或辅助驾驶的上下文中,对象类别可以是行人、车辆、骑自行车的人和静态对象)。还可以为特定感兴趣对象(例如,感兴趣的行人,例如物理上最接近车辆105的行人;感兴趣的车辆,例如迎面而来的车辆;或环境100中的任何其它感兴趣动态对象)定义至少一个对象类别。应当理解,可以根据所需的应用为环境100中的任何实体或特征定义对象类别。例如,环境100中可能影响动态对象行为的任何事务(例如,可以在图像中分割的对象,例如树、消防栓、人、动物;以及可能在图像中不容易分割的对象,例如路缘、车道标记等)可以是定义对象类别的基础。
[0079]
可以定义任意数量的对象类别。定义的对象类别通常是固定的(例如,作为为对象行为预测子系统320的分类器405设计模型的一部分)。分类器405的输出是时间序列数据的分类集(或简称为分类数据集),其中,分类集的数量对应于定义的对象类别的数量。每个对象类别可以具有一个或多个时间序列特征数据。在图3的示例中,有五个定义的对象类别,并且分类器405输出五个分类数据集。
[0080]
分类数据集由时空编码器410接收,该时空编码器410将分类数据集编码为相应的分类表示。对于每个分类数据集,通过将每个分类数据集(可能包含多个时间序列特征数据)中的时间变化编码为单个时间序列表示,生成相应的时间表示。例如,如果分类数据集包含在m个时间步长上的特征数据,则时空编码器410输出的分类表示可以是张量m
×
n,其中,n是特征点的数量(其中,每个特征点是表示特征向量或特征图中相应条目的数据点)。
[0081]
时空编码器410可以使用确定性方法(例如,使用确定性模式过滤器、使用聚合等)或基于机器学习的方法(例如,使用马尔可夫链建模、rnn或任何其它能够编码时间关系的技术)来实现。例如,时空编码器410可以是对所有对象类别执行编码的单个神经网络。或者或另外,时空编码器410可以包括对相应类别执行编码的单个分类编码器412a至412e(通常称为分类编码器412)(在图3的示例中,用于对五个类别进行编码的五个分类编码器412)。每个分类编码器412可以独立地是经过训练的神经网络,例如rnn,或rnn和cnn的组合。分类编码器412可以完全独立地彼此操作,或者可以彼此共享一些计算(例如,共享卷积层的权重计算),以获得更高的计算效率。每个分类编码器412接收对应的分类数据集(其可以包括不同的时间序列特征数据,该时间序列特征数据表示环境100的不同特征和/或具有不同的格式),并将分类数据集映射到每个时间步长的特征点集(例如,以特征向量的形式),其中,特征中的时间变化在特征点中编码。因此,来自每个分类编码器412的输出可以是时间序列特征向量,在此称为分类表示。
[0082]
相应对象类别的分类表示由时空编码器410输出,并由组合器415接收。组合器412组合分类表示以形成单个共享表示,该单个共享表示是每个类别中时空变化的单个表示。例如,组合器415可以执行分类表示的时间级联以输出单个共享表示。时间级联是指属于同一时间步长的数据被级联在一起。例如,如果每个分类表示是相应的m
×
n张量,其中,m是时间步长的数量,n是特征点的数量,则分类表示可以根据从1到m的时间步长索引级联在一起,以获得尺寸为m
×
5n的单个共享表示(其中,5对应于图3示例中定义的对象类别的数量)。组合器415可以使用其它技术来生成共享表示,例如平均运算(例如,对每个给定时间步长的所有分类表示进行平均),或最大运算(例如,在每个给定时间步长的所有分类表示中取最大值),等等。
[0083]
单个共享表示被提供给交互注意力子系统420。交互注意力子系统420生成分类交互表示,该分类交互表示是基于单个共享表示中每个对象类别的时间变化计算权重的环境的加权表示。交互注意力子系统420可以使用任何合适的注意力机制来生成注意力分数、上下文向量和注意力向量。例如,luong等人在“基于注意力的神经机器翻译的有效方法(effective approaches to attention-based neural machine translation)”(arxiv:1508.04025,2015年)中描述了一种合适的注意力机制。由交互注意力子系统420生成的注意力向量被称为分类交互表示,因为注意力向量是表示一个对象类别中的特征对另一个对象类别中的特征的影响(或交互)的向量。
[0084]
在图3的示例中,交互注意力子系统420包括序列注意力分数生成器422、上下文向量生成器424和分类交互编码器426。在其它示例中,可以不存在单独的功能块422、424、426,并且交互注意力子系统420可以替代地使用更多或更少的功能来实现功能块422、424、426的操作。这里将关于功能块422、424、426描述交互注意力子系统420。
[0085]
序列注意力分数生成器422为单个共享表示的每个时间步长生成相应的权重分数。权重分数可以由序列注意力分数生成器422基于每个特征对行为预测器322要执行的预测任务的影响来学习。序列注意力分数生成器422可以实现全连接层以执行该学习。如果共享表示的大小为m
×
k(其中,m是时间步长的数量,k是组合特征点的数量),则权重分数也可以存储在大小为m
×
k的权重分数矩阵中。权重分数矩阵乘以共享表示的最后一个时间步长中的k
×
1特征点,并且得到的m
×
1向量被归一化(例如,使用softmax运算),使得其条目总
和为1。此归一化的结果是注意力分数m
×
1向量,表示应该应用于在每个时间步长的每个特征的注意力(或权重)。
[0086]
由序列注意力分数生成器422生成的注意力分数被提供给上下文向量生成器424。在上下文向量生成器424处,为每个时间步长生成的注意力分数被应用于(例如,乘以)每个相应时间步长的单个共享表示的特征点。例如,注意力分数m
×
1向量被转置并乘以m
×
k单个共享表示。此操作的结果是大小为1
×
k的上下文向量,其中,每个条目是表示单个共享表示的每个特征点对时间序列中的时间变化(即,对单个共享表示的最后一个时间步长的特征)的影响的加权和。
[0087]
由上下文向量生成器424生成的上下文向量被提供给分类交互编码器426。在分类交互编码器426处,上下文向量与单个共享表示的最后一个时间步长的特征组合(例如,级联),然后用全连接网络处理。全连接网络有效地执行嵌入操作,以减少数据的尺寸,并生成分类交互表示。
[0088]
分类交互表示是分类交互子系统400的输出。分类交互表示是大小为ci的统一表示,其中,ci是在分类交互子系统400中包括在分类交互编码器426中的全连接网络的最后一层的输出尺寸。分类交互表示是权重向量,其中,权重表示每个对象类别中的特征的时间变化对在最后一个时间步长的所有对象类别的特征的相对影响。
[0089]
分类交互子系统400可以包括多个经过训练的神经网络(例如,包括在时空编码器410中的经过训练的rnn,并且经过训练的全连接网络可以包括在交互注意力子系统420中)。包括在分类交互子系统400中的一些神经网络(例如,用于分类特征数据的神经网络,或用于提取特征数据的神经网络)可以离线训练(例如,在被包括在对象行为预测子系统320中之前),例如,在一个或多个物理机或一个或多个虚拟机上,使用来自外部数据库的训练数据(例如感测环境(通常称为场景)的图像序列)。在时空编码器410中实现的任何神经网络(例如,在分类编码器412中实现的神经网络)都应被端到端地训练。任何合适的训练技术都可用于包括在对象行为预测子系统320中的神经网络的端到端训练(例如,使用标记的训练数据的样本执行前向传播,使用对象行为预测子系统320的损失函数计算损失,并执行具有梯度下降的反向传播,以便学习(即优化)对象行为预测子系统320中包括的神经网络的参数。
[0090]
由分类交互子系统400生成的分类交互表示可以提供给对象行为预测子系统320)。
[0091]
图4是对象行为预测子系统320的示例性细节的框图。对象行为预测子系统320可以是车辆105的规划系统300的一部分。在下面的讨论中,将在预测车辆105的环境100中的感兴趣动态对象(例如行人)的行为的上下文中描述对象行为预测子系统320。但是,应当理解,行为预测子系统320也可以用于规划系统300之外和/或自动驾驶车辆105之外,用于预测感测环境中任何感兴趣动态对象的行为。例如,行为预测子系统320的指令可以存储在存储器中,并由任何计算系统的一个或多个处理单元执行,其中,感兴趣动态对象的行为(包括由于感兴趣动态对象与其它对象的交互而产生的行为)预测将是有用的(例如,辅助机器人、异常检测或智能交通管理等)。
[0092]
到对象行为预测子系统320的输入数据可以包括来自环境传感器110、车辆传感器111的未处理(或仅轻微处理)数据,并且还可以包括由感知系统178从环境传感器110、车辆
传感器111生成的经处理数据。需要说明的是,对象行为预测子系统320的输入数据包括输入到分类交互子系统400的特征数据。此外,输入数据可以包括表示环境100中多个对象的动态性的数据以及表示车辆105本身状态的数据(例如,表示当前速度、当前加速度等的数据)。表示环境100中的多个对象的动态性的数据可以包括表示对象轨迹的数据(例如,环境100中的动态对象的轨迹,该轨迹可以表示为2d地图)、表示对象位置的数据(例如,表示为一个或多个ogm的环境100中的对象的位置)、表示对象运动(例如,环境100中动态对象的运动)的数据。到行为预测子系统320的输入数据包括时间数据(例如,对象轨迹),并且还可以包括非时间数据(例如,车辆105的当前速度)。如前所述,分类交互子系统400接收输入数据的一部分(即,如前所述的特征数据),并生成分类交互表示。分类交互表示被提供给行为预测器322。
[0093]
行为预测器322还接收输入数据的至少一部分(例如,表示对象轨迹、对象位置、车辆状态等的数据)。行为预测器322可以是任何神经网络(例如,递归解码器网络、前馈生成神经网络等),该神经网络可以被训练以生成表示一个或多个感兴趣动态对象的预测行为的预测数据。具体地,行为预测器322可以包括任何神经网络,该神经网络可以被训练以接收分类交互表示作为输入(在其它输入中),并生成表示感兴趣动态对象的预测行为的预测数据。预测数据可以作为运动规划子系统315的输入的一部分提供。行为预测器322的输出可以包括不同类型的预测数据,该预测数据可以根据特定的应用(例如,取决于运动规划子系统315所需的输入)而变化。例如,预测数据可以包括感兴趣动态对象的预测轨迹(例如,在未来时间段内行人的预测轨迹,该预测轨迹可以表示为2d地图)、感兴趣动态对象的预测未来位置(例如,在未来时间步长行人的预测位置,该预测位置可以表示为2d ogm)和/或感兴趣动态对象的预测行为(例如,在未来时间步长行人的预测过路动作,该预测过路动作可以表示为向量或标量值)。
[0094]
由行为预测器322输出的预测数据还可以作为输入提供给运动规划子系统315。运动规划子系统315可以使用预测数据与其它输入数据(例如,来自传感器110、111的已处理和/或未处理数据)一起为车辆105生成规划路径。
[0095]
对象行为预测子系统320可以使用来自外部数据集的训练数据离线训练(例如,在一个或多个物理机或一个或多个虚拟机上,在部署到车辆105的ads或adas之前)。具体地,分类交互子系统400可以已经被训练,并且行为预测器322可以使用训练数据(例如车辆105的图像、轨迹、运动等),并且还使用由分类交互子系统400从训练数据生成的分类交互表示来训练。根据在行为预测器322中实现的神经网络的类型,可以使用任何合适的训练技术。
[0096]
图5是用于基于分类交互生成感兴趣动态对象的行为预测(例如,预测的行为)的示例性方法500的流程图。方法500可以使用对象行为预测子系统320(具体是例如使用分类交互子系统400)执行。
[0097]
在可选的步骤502中,时间序列传感器数据(即,在时间步长序列上的传感器数据)可以被预处理成时间序列特征数据(即,在相同时间步长序列上的特征数据)。例如,由环境传感器110在多个时间步长上生成的传感器数据可以被预处理成多个2d地图(例如,ogm),以表示在时间步长上被分类的对象(即被分类为多个对象类别中的一个的对象)的位置。在一些示例中,预处理可用于生成在下一步504中使用的至少一个时间序列特征数据,并且另一个时间序列特征数据可以不需要预处理。
[0098]
在504中,所有特征数据(包括由步骤502中可选预处理产生的任何时间序列特征数据)被分类为多个定义的对象类别中的一个(例如,使用上面关于分类器405描述的操作)。对象类别中的至少一个可以被定义为特定的感兴趣动态对象。为每个对象类别定义一个或多个共享特征(例如,对象类、数据的动态或静态性质等),并且表示具有为给定对象类别定义的一个或多个共享特征的对象的特征数据被分组为该给定对象类别。分类组被称为分类数据集,其中,每个对象类别可以具有一个或多个时间序列特征数据。
[0099]
在506中,分类数据集被编码成相应的分类表示(例如,使用上面关于时空编码器410描述的操作)。相应的神经网络(例如,rnn)可以对每个分类数据集执行编码。每个分类表示属于对应对象类别的所有特征的时间变化的表示。例如,每个分类表示可以是时间序列特征向量(或特征图),表示在每个时间步长上对应对象类别的特征,包括特征的时间变化。
[0100]
在508中,来自所有定义的对象类别的分类表示被组合成单个共享表示(例如,使用上面关于组合器415描述的操作)。例如,根据时间步长,单个共享表示可以是分类表示的级联。
[0101]
在510中,使用注意力机制,从单个共享表示生成分类交互表示(例如,使用上面关于交互注意力子系统420描述的操作)。通常,注意力机制涉及学习注意力分数(表示要应用于在每个时间步长的每个特征的注意力(或权重)),计算上下文向量(表示加权和,该加权和表示每个时间步长的特征对时间序列中时间变化的影响),以及学习注意力向量(表示每个对象类别中特征的时间变化对最后一个时间步长中所有对象类别的特征的相对影响)。如前所述,任何合适的注意力机制都可以用于生成作为分类交互表示的注意力向量。例如,步骤510可以使用步骤512、514和516执行,以分别生成注意力分数、上下文向量和分类交互表示。
[0102]
在512中,生成注意力分数(例如,使用上面关于序列注意力分数生成器422描述的操作),表示共享表示中每个时间步长的特征对共享表示的最后一个时间步长的特征的影响。
[0103]
在514中,将注意力分数应用于单个共享表示的每个时间步长的特征,以生成上下文向量(例如,使用上面关于上下文向量生成器424描述的操作)。
[0104]
在516中,上下文向量与单个共享表示的最后一个时间步长的特征组合,以生成分类交互表示(例如,使用上面关于分类交互编码器426描述的操作)。
[0105]
在518中,使用注意力机制生成的分类交互表示被提供作为行为预测器322(其可以包括任何合适的训练神经网络)的输入,以生成表示感兴趣动态对象的预测未来行为的预测数据(例如,使用行为预测器322)。分类交互表示与其它输入数据一起作为输入提供给行为预测器322,并且行为预测器322所需的输入数据可以取决于行为预测器322中包括的神经网络的设计。表示感兴趣动态对象的预测未来行为的预测数据可以包括感兴趣动态对象(例如,在自动驾驶的上下文中,感兴趣的行人、感兴趣的车辆或其它感兴趣的道路使用者)在一个或多个未来时间步长上的轨迹。
[0106]
表示感兴趣动态对象的预测未来行为的预测数据可用于生成其它预测和/或规划操作(例如,用于运动规划子系统315的运动规划)。
[0107]
在各种示例中,本发明描述了能够预测环境中感兴趣动态对象的行为的方法和系
统。具体地,本发明描述了能够对不同对象类别之间的交互进行编码的方法和系统。时间序列特征数据被分类为定义的对象类别,通过组合单个分类表示生成单个共享表示,并使用注意力机制将单个共享表示转换为单个分类交互表示,该单个分类交互表示是对不同对象类别之间的交互进行编码的加权向量。
[0108]
本发明能够基于定义的对象类别的交互而非在感测环境中相应的单个对象与其它对象之间的交互来对交互进行建模(即编码)。与一些现有方案相比,这实现了更好的可扩展性,因为对象类别的数量是定义的,而不是可变的。与一些现有方案相比,对定义的对象类别的交互进行编码,而不是对在感测环境中的相应单个对象与其它对象之间的交互进行编码,也可以提高计算效率和减少内存资源使用。
[0109]
虽然本发明已经描述了自动驾驶系统上下文中的示例,但应当理解,本发明可以适用于存在多个交互对象的各种应用。例如,本发明的示例可用于辅助机器人技术、异常检测或智能交通管理,其中涉及多个交互代理和元件。应当理解,本发明并不意图限于特定类型的环境特征或特定类型的任务目标。
[0110]
本领域普通技术人员可以意识到,结合本发明中所公开的实施例描述的各示例的单元及算法步骤,能够以电硬件、或者计算机软件和电硬件的结合来实现。功能是由硬件还是由软件执行取决于技术方案的特定应用和设计约束条件。本领域技术人员可以使用不同的方法实现每个特定应用的所描述的功能,但是不应认为该实现方式超出本发明的范围。
[0111]
本领域技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的系统、装置和单元的具体工作过程,可以基于上述方法实施例中的对应过程,在此不再赘述。
[0112]
应当理解,所公开的系统和方法可以以其它方式实现。作为分离部件描述的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,可以位于一个位置上,或者可以分布在多个网络单元上。可以根据实际需要选择部分或全部单元,以实现实施例的方案的目的。另外,在本技术各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。
[0113]
当这些功能通过软件功能单元的形式实现并作为独立的产品销售或使用时,可以将这些功能存储在计算机可读存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来。该软件产品存储在一个存储介质中,包括若干指令用以指示一台计算机设备(可以是个人计算机、服务器或网络设备)执行本技术各个实施例所述方法的全部或部分步骤。上述存储介质包括任何可以存储程序代码的介质,例如通用串行总线(universal serial bus,usb)闪存驱动器、可移动硬盘、只读存储器(read-only memory,rom)、随机存取存储器(random access memory,ram)、磁盘或光盘等。
[0114]
以上所述仅是本技术的一些具体实现方式,并非用于限定本技术的保护范围。在本发明所公开的技术范围内,本领域技术人员可以想到的变化或替换都应涵盖在本发明的保护范围内。
技术特征:
1.一种用于预测车辆的环境中感兴趣动态对象的行为的方法,其特征在于,所述方法包括:接收多个时间序列特征数据,每个时间序列特征数据表示所述环境中的多个对象在多个时间步长上的相应特征,所述多个对象包括感兴趣动态对象;将每个时间序列特征数据分类为多个定义的对象类别中的一个,以获得每个定义的对象类别的分类数据集,每个分类数据集包括一个或多个时间序列特征数据,所述一个或多个时间序列特征数据表示属于相应定义的对象类别的一个或多个对象;将每个分类数据集编码为相应的分类表示,每个分类表示表示在所述相应定义的对象类别中的特征的时间变化;将所述分类表示组合成单个共享表示;基于所述单个共享表示生成分类交互表示,所述分类交互表示是所述单个共享表示的加权表示,表示每个定义的对象类别中的时间变化对所述单个共享表示的最终时间步长的影响;基于所述分类交互表示、表示所述多个对象的动态性的数据和表示所述车辆的状态的数据,生成表示所述感兴趣动态对象的预测未来行为的预测数据。2.根据权利要求1所述的方法,其特征在于,组合所述分类表示包括根据时间步长级联所述分类表示,以生成所述单个共享表示。3.根据权利要求1或2所述的方法,其特征在于,对每个分类数据集进行编码包括:对于属于给定对象类别的给定分类数据集,将所述一个或多个时间序列特征数据提供给经过训练的神经网络,以生成时间序列特征向量作为所述给定对象类别的分类表示。4.根据权利要求3所述的方法,其特征在于,所述经过训练的神经网络是递归神经网络、卷积神经网络或组合的递归和卷积神经网络。5.根据权利要求1至4中任一项所述的方法,其特征在于,至少一个定义的对象类别与所述感兴趣动态对象关联。6.根据权利要求1至5中任一项所述的方法,其特征在于,所述方法还包括:接收传感器生成的时间序列传感器数据;将所述时间序列传感器数据预处理为一个时间序列特征数据,所述一个时间序列特征数据包括在接收到的多个时间序列特征数据中。7.根据权利要求1至6中任一项所述的方法,其特征在于,所述方法还包括:将表示所述感兴趣动态对象的所述预测未来行为的所述预测数据提供给所述车辆的运动规划子系统,以生成所述车辆的规划路径。8.一种用于预测车辆的环境中感兴趣动态对象的行为的计算系统,其特征在于,所述计算系统包括:处理器系统,用于执行指令以使所述计算系统的对象行为预测子系统进行以下操作:接收多个时间序列特征数据,每个时间序列特征数据表示所述环境中的多个对象在多个时间步长上的相应特征,所述多个对象包括感兴趣动态对象;将每个时间序列特征数据分类为多个定义的对象类别中的一个,以获得每个定义的对象类别的分类数据集,每个分类数据集包括一个或多个时间序列特征数据,所述一个或多个时间序列特征数据表示属于相应定义的对象类别的一个或多个对象;
将每个分类数据集编码为相应的分类表示,每个分类表示表示在所述相应定义的对象类别中的特征的时间变化;将所述分类表示组合成单个共享表示;基于所述单个共享表示生成分类交互表示,所述分类交互表示是加权向量,表示每个定义的对象类别中的时间变化对所述单个共享表示的最终时间步长的影响;至少基于所述分类交互表示、表示所述对象的动态性的数据和表示所述车辆的状态的数据生成预测数据,所述预测数据表示所述感兴趣动态对象的预测未来行为。9.根据权利要求8所述的计算系统,其特征在于,所述处理系统用于执行指令,以通过根据时间步长级联所述分类表示以生成所述单个共享表示来组合所述分类表示。10.根据权利要求8或9所述的计算系统,其特征在于,所述处理系统用于执行指令,以通过以下操作对每个分类数据集进行编码:对于属于给定对象类别的给定分类数据集,将所述一个或多个时间序列特征数据提供给经过训练的神经网络,以生成时间序列特征向量作为所述给定对象类别的分类表示。11.根据权利要求10所述的计算系统,其特征在于,所述经过训练的神经网络是递归神经网络、卷积神经网络或组合的递归和卷积神经网络。12.根据权利要求8至11中任一项所述的计算系统,其特征在于,至少一个定义的对象类别与所述感兴趣动态对象关联。13.根据权利要求8至12中任一项所述的计算系统,其特征在于,所述处理系统用于执行指令以使所述计算系统进行以下操作:接收传感器生成的时间序列传感器数据;将所述时间序列传感器数据预处理为一个时间序列特征数据,所述一个时间序列特征数据包括在接收到的多个时间序列特征数据中。14.根据权利要求8至13中任一项所述的计算系统,其特征在于,所述车辆是自动驾驶车辆,其中,所述计算系统在所述自动驾驶车辆中实现,所述处理系统用于执行指令,以使所述自动驾驶车辆的运动规划子系统进行以下操作:接收表示所述感兴趣动态对象的预测未来行为的所述预测数据作为输入;为所述自动驾驶车辆生成规划路径。15.一种计算机可读介质,其特征在于,包括计算机可执行指令,所述计算机可执行指令当由计算系统的处理系统执行时使所述计算系统执行根据权利要求1至7中任一项所述的方法。16.一种计算机程序,其特征在于,包括计算机可执行指令,所述计算机可执行指令当由计算系统的处理系统执行时使所述计算系统执行根据权利要求1至7中任一项所述的方法。
技术总结
公开了用于预测车辆(105)的环境(100)中感兴趣动态对象的行为的方法。接收时间序列特征数据,所述时间序列特征数据表示所述环境(100)中对象的特征,所述对象包括感兴趣动态对象。所述特征数据被分类为多个定义的对象类别中的一个。每个分类数据集被编码成相应的分类表示,所述相应的分类表示表示在相应定义的对象类别中的特征的时间变化。所述分类表示被组合为单个共享表示。分类交互表示是基于所述单个共享表示生成的,所述单个共享表示表示每个定义的对象类别中的时间变化对所述共享表示的最终时间步长的影响。所述分类交互表示与表示所述环境(100)中的所述对象的动态性的数据和表示所述车辆(105)的状态的数据一起用于生成表示所述感兴趣动态对象的预测未来行为的预测数据。还公开了用于预测所述车辆的所述环境中所述感兴趣动态对象的行为的系统。环境中所述感兴趣动态对象的行为的系统。环境中所述感兴趣动态对象的行为的系统。
技术研发人员:阿米尔
受保护的技术使用者:华为技术有限公司
技术研发日:2021.06.30
技术公布日:2023/6/29
版权声明
本文仅代表作者观点,不代表航空之家立场。
本文系作者授权航家号发表,未经原创作者书面授权,任何单位或个人不得引用、复制、转载、摘编、链接或以其他任何方式复制发表。任何单位或个人在获得书面授权使用航空之家内容时,须注明作者及来源 “航空之家”。如非法使用航空之家的部分或全部内容的,航空之家将依法追究其法律责任。(航空之家官方QQ:2926969996)
飞行汽车 https://www.autovtol.com/
