预测行人的移动的系统和方法与流程

文档序号:26279918发布日期:2021-08-13 19:36阅读:185来源:国知局
预测行人的移动的系统和方法与流程

记载在本文中的主题一般涉及预测行人的移动的系统和方法。



背景技术:

所提供的背景技术说明是为了概括地呈现本公开的上下文。在可记载在本背景技术部分中的程度上的发明人的工作,以及在提出申请时可能不构成现有技术的说明的各个方面,既不明确地也不隐含地被承认为本技术的现有技术。

目前的一些车辆具有传感器,所述传感器可以检测在车辆所操作的环境中发现的物体。这些检测到的物体中的一些包括移动的物体,比如其他车辆和行人。就行人来说,预测的行人的移动可由自主车辆系统的几个下游组件利用,比如路径规划和决策。

目前的一些方法通过直接依赖于社会、场景和/或其他线索来模拟行人移动的动态。例如,目前的一些方法使用“社会力”模型,该模型生成能量项,以避免与场景元素、场景中的其他行人等的碰撞。一些其他方法通过依赖于深度模型来学习潜在的机制,而不是显式建模,利用更多数据驱动的方法进行动态建模。



技术实现要素:

本部分概括地总结了本公开,并不是对本公开的全部范围或所有特征的全面解释。

在一个实施例中,一种用于预测多个行人的移动的系统包括一个或多个处理器,以及与所述一个或多个处理器通信的存储器。所述存储器包括初始轨迹模块、退出点预测模块、路径规划模块和调整模块。所述初始轨迹模块包括当由所述一个或多个处理器执行时,使所述一个或多个处理器获得所述多个行人的轨迹的指令。所述退出点预测模块包括当由所述一个或多个处理器执行时,使所述一个或多个处理器基于所述多个行人的轨迹,预测所述多个行人离开场景的未来退出点的指令。所述路径规划模块包括当由所述一个或多个处理器执行时,使所述一个或多个处理器基于所述未来退出点和地图的至少一个场景元素,确定所述多个行人的轨迹路径的指令,其中所述轨迹路径是预测所述多个行人为到达所述未来退出点所要采用的路径。所述调整模块包括当由所述一个或多个处理器执行时,使所述一个或多个处理器基于所述多个行人中的至少两个行人之间的至少一个预测的相互作用,调整所述轨迹路径的指令。

在又一个实施例中,一种用于预测多个行人的移动的方法包括以下步骤:获得所述多个行人的轨迹,基于所述多个行人的轨迹,预测所述多个行人离开场景的未来退出点,基于所述未来退出点和地图的至少一个场景元素,确定所述多个行人的轨迹路径,和基于所述多个行人中的至少两个行人之间的至少一个预测的相互作用,调整所述轨迹路径。

在另一个实施例中,一种用于预测多个行人的移动的非临时性计算机可读介质包含指令,当由一个或多个处理器执行时,所述指令使所述一个或多个处理器获得所述多个行人的轨迹,基于所述多个行人的轨迹,预测所述多个行人离开场景的未来退出点,基于所述未来退出点和地图的至少一个场景元素,确定所述多个行人的轨迹路径,和基于所述多个行人中的至少两个行人之间的至少一个预测的相互作用,调整所述轨迹路径。

根据所提供的说明,进一步的适用性领域和增强所公开技术的各种方法将变得显而易见。本发明内容部分中的说明和具体例子只是用于举例说明,并不意图限制本公开的范围。

附图说明

包含在说明书中,并构成说明书的一部分的附图图解说明本公开的各个系统、方法和其他实施例。要意识到图中的例示元件边界(例如,方框、各组方框、或其他形状)表示边界的一个实施例。在一些实施例中,一个元件可被设计成多个元件,或者多个元件可被设计成一个元件。在一些实施例中,表示成另一个元件的内部组件的元件可被实现成外部组件,反之亦然。此外,各个元件可能未按比例绘制。

图1图解说明具有包含用于预测行人的移动的系统的车辆的场景;

图2图解说明两个行人之间的预测的相互作用和由图1的系统预测的调整后的路径的更详细视图;

图3图解说明包含用于预测行人的移动的系统的车辆的更详细视图;

图4图解说明用于预测行人的移动的系统的更详细视图;

图5是图解说明用于预测行人的移动的系统所利用的处理的一个例子的流程图;

图6图解说明用于预测行人的移动的方法。

具体实施方式

描述的是用于预测一个或多个行人的移动的系统和方法。在一个例子中,所述系统基于行人的轨迹,确定行人离开场景的退出点。由系统确定的退出点可以使用混合密度网络来确定。接下来,系统随后基于退出点和至少一个场景元素,预测行人将采用的路径。例如,场景元素可以是位于行人和未来退出点之间的人行道。最可能的是,行人将利用该人行道到达所述退出点。因而,在预测行人可能采用的路径时,系统在确定预测的路径时可以考虑场景元素。

然后将比较行人的路径,以判定在任何行人之间是否存在任何预期的相互作用,诸如行人同时穿过彼此的路径,从而导致碰撞。如果判定在行人之间会发生可能的相互作用,那么系统随后调整路径以遵从社会线索、道路规则等。例如,如果判定两个行人的路径会导致碰撞,那么系统会调整路径以防止碰撞。系统可以利用图神经网络来确定应当如何基于行人之间的相互作用、社交线索、道路规则等来调整路径。

参见图1,图中图解说明的是包括车辆100的场景10,车辆100具有用于感知在车辆100外部的一个或多个物体的传感器系统120和行人预测系统170。应理解的是该场景10仅仅是举例说明如后所述的可确定场景10内的一个或多个行人的移动的行人预测系统170的一个例子。在本例中,车辆100正沿着道路12行驶。道路12两侧是人行道14和16。人行道14和16可以是允许行人、骑自行车者和其他非汽车相关物品在其上行进的人行道。

行人20和30也位于场景10内。行人20被图示成具有用箭头表示为轨迹22的轨迹。轨迹22表示行人20正在移动的位置、方向和/或速度。类似地,行人30也具有用箭头表示的轨迹32。与之前一样,轨迹32通常指示行人30正在行进的位置、方向和/或速度。在本例中,行人20正试图从人行道16到人行道14穿越道路12。至于行人30,行人30正在沿着人行道14行进。

如后更详细所述,行人预测系统170能够分别预测行人20和30离开场景10的未来退出点26和36。在这个例子中,行人预测系统170已基于轨迹22和场景10内的一个或多个元素,预测行人20将在未来退出点26离开场景10。场景10的一个或多个元素可包括人行道14和16。因而,行人预测系统170已基于通向可能被行人20利用的人行道16的轨迹22,确定行人20将在未来退出点26离开场景10。通过使用这些元素,行人预测系统170预测未来退出点26。行人20到未来退出点26所采用的路径24也将由行人预测系统170确定。同样地,至于行人30,行人预测系统170也预测未来退出点36,以及行人30为到达未来退出点36将要采用的路径34。

行人预测系统170还可以分别调整行人20和30的路径24和34,以考虑当行人20和30分别沿着路径24和34行进时在他们之间可能发生的相互作用。例如,如图2中最佳所示,行人20和30的路径24和34分别通向将导致两者之间的碰撞的区域40。系统170具有不考虑这些相互作用以避免碰撞的能力,从而更准确地预测行人,比如行人20和30的移动。此外,行人20和/或30,或者甚至其他物体的移动可被一个或多个车辆系统用于控制车辆100。再次地,前述段落仅仅提供行人预测系统170的总体概览。行人预测系统170的更详细说明将稍后在本公开中提供。

参见图3,图中图解说明了车辆100的例子。本文中使用的“车辆”是任何形式的动力运输工具。在一种或多种实现中,车辆100是汽车。尽管本文中将关于汽车说明各种方案,不过应理解的是实施例不限于汽车。在一些实现中,车辆100可以是例如包括一个或多个自动化或自主系统,从而受益于本文中所讨论的功能的任何机器人设备或任何形式的动力运输工具。

在各个实施例中,自动化/自主系统或者系统的组合可能变化。例如,在一个方面,自动化系统是按照一个或多个自动化级别,比如由汽车工程师协会(sae)定义的级别(例如,级别0-5),提供车辆的自主控制的系统。因而,自主系统可以提供如关于自主驾驶模块160所讨论的半自主控制或完全自主控制。

车辆100还包括各种元件。应理解的是在各个实施例中,车辆100不必具有图3中所示的所有元件。车辆100可具有图3中所示的各种元件的任意组合。此外,车辆100可以具有除了图3中所示元件以外的附加元件。在一些方案中,可在没有图3中所示的元件之中的一个或多个元件的情况下实现车辆100。尽管在图3中,各个元件被表示成位于车辆100之内,不过,应理解的是这些元件中的一个或多个元件可以位于车辆100之外。此外,所示的元件可以物理隔开较大的距离,并且是作为远程服务(例如,云计算服务)提供的。

车辆100的可能元件中的一些元件示于图3中,并将连同后续附图一起说明。不过,为了说明的简洁起见,将在讨论图1和4-6之后提供图3中的许多元件的说明。另外,要意识到的是为了举例说明的简单和清楚起见,在适当的情况下,在不同的附图中重复了附图标记,以指示对应或类似的元件。另外,所述说明概述了众多的具体细节,以透彻地理解记载在本文中的各个实施例。可以使用这些元件的各种组合来实践记载在本文中的各个实施例。

在任一情况下,车辆100都包括行人预测系统170。行人预测系统170可以包含在车辆100的自主驾驶模块160内,或者可以如图所示是单独的。参见图4,图中进一步图解说明了行人预测系统170的一个实施例。如图所示,行人预测系统170包括一个或多个处理器110。因而,处理器110可以是行人预测系统170的一部分,或者行人预测系统170可通过数据总线或者另外的通信路径访问处理器110。在一个或多个实施例中,处理器110是配置成实现与初始轨迹模块250、退出点预测模块252、路径规划模块256和调整模块258关联的功能的专用集成电路。通常,处理器110是能够进行记载在本文中的各种功能的电子处理器,比如微处理器。在一个实施例中,行人预测系统170包括存储初始轨迹模块250、退出点预测模块252、路径规划模块256和调整模块258的存储器210。存储器210是随机存取存储器(ram)、只读存储器(rom)、硬盘驱动器、闪存、或者用于存储模块250、252、256和258的其他适当存储器。模块250、252、256和258例如是当由处理器110执行时,使处理器110进行本文中公开的各种功能的计算机可读指令。

此外,在一个实施例中,行人预测系统170包括数据仓库240。在一个实施例中,数据仓库240是存储在存储器210或者另外的存储器中的诸如数据库之类的电子数据结构,所述电子数据结构配置有可由处理器110执行,以便分析存储的数据、提供存储的数据、组织存储的数据等等的例程。从而,在一个实施例中,数据仓库240存储模块250、252、256和258在执行各种功能时所使用的数据。在一个实施例中,数据仓库240包括传感器数据242,以及例如模块250、252、256和258使用的其他信息。传感器数据242可包括图3所示并且稍后在本公开中说明的传感器数据119的部分或全部。

除了传感器数据242之外,数据仓库240还可以包括模块250、252、256和258在执行各种功能时可利用的其他信息。在一个例子中,数据仓库240还可以包括一个或多个人工智能模型。例如,数据仓库240可包括混合密度网络244、图神经网络246和逆向强化学习模型248。如后所述,退出点预测模块252可以利用混合密度网络244来预测离开场景10的退出点。路径规划模块256可以利用逆向强化学习模型来确定孤立的行人的轨迹路径。调整模块258可以利用图神经网络246来调整行人的路径,以考虑到与其他行人的任何相互作用,比如碰撞。

因而,初始轨迹模块250包括当由处理器110执行时,使处理器110获得场景中多个行人,比如场景10中的行人20和30的轨迹的指令。在一个例子中,场景10可以是鸟瞰图。场景10可以是静态场景,或者可以基于一个或多个物体的移动而在移动。在一个例子中,包含行人预测系统170的车辆,比如图3的车辆100的移动可以用于确定场景10的整体移动,如果场景10是移动场景的话。例如,场景10可以是位于车辆100周围的半径,并且随着车辆100移动而移动。

行人20和30的轨迹22和32可以分别从位于车辆100内的其他系统和子系统获得。在一个例子中,车辆100的传感器系统120能够检测行人20和/或30的存在和移动。另外,传感器系统120可以利用从一个或多个环境传感器122接收的信息来确定轨迹22和/或32,轨迹22和/或32可以包括位置、行人20和30正在行进的方向以及行人20和30的速度。

退出点预测模块252可包括当由处理器110执行时,使处理器110分别预测退出点,比如行人20和30的未来退出点26和36。给定行人20和30的先前轨迹以及以轨迹22和32为中心的语义地图或场景10的裁剪,退出点预测模块252可以分别预测行人20和30的未来退出点26和36。

退出点预测模块252可以使用混合密度网络244来维持图像或场景边界上的混合缠绕正态分布,它在给定轨迹的情况下近似未来退出点。混合密度网络244可以是通过将传统神经网络与混合密度模型组合而获得的一类的一个或多个模型。混合密度网络244输出混合概率分布的参数以及用于组合分量分布的权重。在这个例子中,混合密度网络244可以分别基于行人20和30的轨迹22和32以及一个或多个场景元素,确定行人20和30的未来退出点26和36。

场景元素可以包括位于场景10内的元素。在图1中所示的例子中,场景元素包括道路12以及人行道14和16。通常可以理解,诸如行人20和30之类的行人通常使用诸如人行道14和16之类的人行道,并且通常遵循道路规则。在这个例子中,行人20已经开始横穿不包括人行横道的道路12。然而,基于行人20朝向人行道14的轨迹22,混合密度网络244可确定行人20可能继续沿着相同的方向到达人行道14,并且继续沿着人行道14到达未来退出点26。类似地,混合密度网络244可基于行人30的轨迹32,确定行人30可能继续沿人行道14而行,并在未来退出点36离开场景10。

路径规划模块256包括当由处理器110执行时,使处理器110预测孤立的行人的路径的指令。此外,诸如未来退出点26和36之类的未来退出点采样自退出点预测模块252,并被送入路径规划模块256。路径规划模块256规划行人的类人轨迹(或路径),以实现行人的到达如由退出点预测模块252预测的退出点的目标。

在这个例子中,孤立的行人的路径可被解释成预测行人要走的路径。例如,返回参见图1,行人20已被路径规划模块256确定为沿着路径24行进,而行人30已被确定为沿着路径34行进。路径规划模块256可利用先前由初始轨迹模块250确定的轨迹22和32,以及由退出点预测模块252预测的未来退出点26和/或36。除了这些输入之外,路径规划模块256还可以利用其他输入,比如道路规则。例如,通常假设行人将遵循道路规则,比如利用适当的位置来穿越道路12、使用人行道、以及遵循诸如停止标志、交通信号灯之类的道路信号。

路径规划模块256可以利用逆向强化学习模型248。逆向强化学习是可解决强化学习的逆向问题的机器学习架构。此外,逆向强化学习是关于通过观察行为主体的行为来学习行为主体的目的、值或回报。例如,传统的强化学习设定通常要求目标是学习决策过程,以产生使某个预先定义的回报函数最大化的行为。逆向强化学习通常逆转该问题,并改为试图从观察到的诸如行人20和30之类行为主体的行为中提取回报函数。

调整模块258包括当由处理器110执行时,调整由路径规划模块256确定的轨迹路径,以考虑到一个或多个行为之间的相互作用的指令。给定存在于场景中的每个行人的长期轨迹,协商并调整所有这些轨迹,以避免碰撞和/或遵循普遍的社会线索和道路规则。这是通过将轨迹作为节点特征嵌入图神经网络246中实现的,图神经网络246遵循消息传递算法来调整这些预测。

例如,返回参见图1,前面说明了如果行人20和行人30的路径24和34没有改变,那么行人20和行人30会彼此碰撞。为了判定是否会发生碰撞,调整模块258配置处理器110以判定行人的路径24和34是否交叉。另外,为了判定路径24和34是否交叉,调整模块258还配置处理器110,以判定如果行人以预测的速率继续沿着路径24和34而行,那么行人是否会相互碰撞。此外,在一些例子中,行人的路径可能交叉,但是由于行人的位置和速度,不会发生碰撞。不过,在其他情况下,行人的速度和位置,以及重叠的轨迹路径指示会发生碰撞。

在预测会发生行人之间的相互作用,比如碰撞的情况下,调整模块258分别调整行人的轨迹路径,比如行人20和30的预测轨迹路径24和34。调整模块258可利用图神经网络246来调整行人的轨迹路径,以避免正如所料的碰撞,因为行人通常不会故意相互碰撞。

图神经网络246结构是直接作用于图形结构的一类神经网络。因而,图神经网络可以作用于具有更复杂几何形状和拓扑的图形。这可以包括社交网络、三维网格和物理系统。因而,图神经网络246可以用于协商行人之间的社会相互作用,以避免碰撞,并且更准确地预测行人,比如行人20和30的移动。因而,参见图2,调整模块258已分别调整路径24和34,以避免行人20和30之间的直接碰撞。通过利用图神经网络246考虑社会相互作用(比如对行人的避免彼此碰撞的期望和其他社会线索)的能力,行人预测系统170可以更准确地预测场景内的行人的移动。

为了更好地举例说明可能利用的不同类型的人工智能网络和模型,参见图5。在这个例子中,场景是静态的,不过场景不必是静态的,并可通过使用运动补偿,随着自我车辆移动而移动。此外,图5图解说明退出点预测模块252、路径规划模块256和调整模块258。另外,图5图解说明指示退出点预测模块252、路径规划模块256和调整模块258可以被菊花链连接在一起的信息流,其中退出点预测模块252的输出被送入路径规划模块256,路径规划模块256随后送入调整模块258。因而,在这个例子中,利用了三种不同类型的人工智能模型。此外,退出点预测模块252利用混合密度网络224,路径规划模块256利用逆向强化学习模型248,而调整模块258利用图神经网络246。

来自调整模块258的最终输出然后成为该行人的短期预测轨迹。注意,这样,行人预测系统170不仅考虑了诸如社会线索之类的短期信息,而且考虑了诸如目标和静态场景元素之类的较长时间信号。

参见图6,图中表示了用于预测行人的移动的方法300。将从图3的车辆100和图4的行人预测系统170的角度说明方法300。不过,这只是实现方法300的一个例子。尽管方法300是结合行人预测系统170讨论的,不过应意识到的是方法300并不局限于在行人预测系统170内实现,相反这仅仅是可实现方法300的系统的一个例子。

方法300始于步骤302,在步骤302,初始轨迹模块250使处理器110获得多个行人的轨迹。在本例中,初始轨迹模块250可分别接收一个或多个轨迹,比如行人20和30的轨迹22和32。行人20和30的轨迹22和32可以分别从位于车辆100内的其他系统和子系统获得。在一个例子中,车辆100的传感器系统120能够检测行人20和/或30的存在和移动。另外,传感器系统120可利用从一个或多个环境传感器122接收的信息来确定轨迹22和/或32,轨迹22和/或32可包括位置、行人20和30正在行进的方向以及行人20和30的速度。

在步骤304,退出点预测模块252使处理器110分别确定一个或多个退出点,比如与行人20和30相关的未来退出点26和36。如前所述,退出点预测模块252可以使用混合密度网络244来维持图像或场景边界上的混合缠绕正态分布,它在给定轨迹的情况下近似未来退出点。混合密度网络244可以是通过将传统神经网络与混合密度模型组合而获得的一类的一个或多个模型。混合密度网络244输出混合概率分布的参数以及用于组合分量分布的权重。在这个例子中,混合密度网络244可以基于行人20和30的轨迹22和32以及一个或多个场景元素,分别确定行人20和30的未来退出点26和36。

场景元素可以包括位于场景10内的元素。在图1中所示的例子中,场景元素包括道路12以及人行道14和16。通常可以理解,诸如行人20和30之类的行人通常使用诸如人行道14和16之类的人行道,并且通常遵循道路规则。在这个例子中,行人20已经开始横穿不包括人行横道的道路12。然而,基于行人20朝向人行道14的轨迹22,混合密度网络244可确定行人20可能继续沿着相同的方向到达人行道14,并且继续沿着人行道14到达未来退出点26。类似地,混合密度网络244可基于行人30的轨迹32,确定行人30可能继续沿人行道14而行,并在未来退出点36离开场景10。

在步骤306,路径规则模块256使处理器110基于未来退出点26和36,以及场景10的至少一个元素,分别确定多个行人20和30的轨迹路径。此外,诸如未来退出点26和36之类的未来退出点采样自退出点预测模块252,并被送入路径规划模块256。路径规划模块256规划行人的类人轨迹(或路径),以实现行人的到达如由退出点预测模块252预测的退出点的目标。

在这个例子中,孤立的行人的路径可被解释成预测行人要走的路径。例如,返回参见图1,行人20已被路径规划模块256确定为沿着路径24行进,而行人30已被确定为沿着路径34行进。路径规划模块256可利用先前由初始轨迹模块250确定的轨迹22和32,以及由退出点预测模块252预测的未来退出点26和/或36。除了这些输入之外,路径规划模块256还可以利用其他输入,比如道路规则。例如,通常假设行人将遵循道路规则,比如利用适当的位置来穿越道路12、使用人行道、以及遵循诸如停止标志、交通信号灯之类的道路信号。

在步骤308,调整模块258使处理器110判定在行人20与30之间是否存在任何预测的相互作用。例如,通过分别使用行人20和30的位置、轨迹22和32、以及路径24和34,调整模块258可以使处理器110判定在行人20和30之间是否存在碰撞或相互作用的可能性。如果在任何行人之间没有检测到相互作用,那么可以输出先前计算的轨迹路径,如在步骤310中所示。在一个例子中,先前计算的轨迹路径可被输出到一个或多个车辆系统或子系统,比如自主驾驶模块160。

如果判定行人有可能彼此相互作用,那么方法进入步骤312,在步骤312,调整模块258使处理器110基于预测的行人20与30之间的相互作用调整路径24和34。调整模块258分别调整行人的轨迹路径,比如行人20和30的预测路径24和34。调整模块258可以利用图神经网络246来调整行人的轨迹路径以避免正如所料的碰撞,因为行人通常不会故意相互碰撞。一旦路径24和34已由调整模块258调整,轨迹路径就可被输出到一个或多个车辆系统或子系统,比如自主驾驶模块160,如步骤310中所示。

现在非常详细地讨论图3,作为本文中公开的系统和方法可在其中操作的例证环境。在一个或多个实施例中,车辆100是自主车辆。本文中使用的“自主车辆”指的是以自主模式运行的车辆。“自主模式”指的是在来自人类驾驶员的输入极少或不存在的情况下,通过使用一个或多个计算系统来控制车辆100,沿着行驶路线导航和/或操纵车辆100。在一个或多个实施例中,车辆100是高度自动化或者完全自动化的。在一个实施例中,车辆100配置有一种或多种半自主操作模式,在所述半自主操作模式下,一个或多个计算系统进行车辆100沿着行驶路线的导航和/或操纵的一部分,车辆操作者(即,驾驶员)向车辆提供输入,以进行车辆100沿着行驶路线的导航和/或操纵的一部分。这种半自主操作可包括如由行人预测系统170实现的监督控制,以确保车辆100保持在规定的状态约束内。

车辆100可包括一个或多个处理器110。在一种或多种方案中,处理器110可以是车辆100的主处理器。例如,处理器110可以是电子控制单元(ecu)。车辆100可包括用于存储一种或多种类型的数据的一个或多个数据仓库115。数据仓库115可包括易失性和/或非易失性存储器。数据仓库115的例子包括ram(随机存取存储器)、闪存、rom(只读存储器)、prom(可编程只读存储器)、eprom(可擦可编程只读存储器)、eeprom(电可擦可编程只读存储器)、寄存器、磁盘、光盘、硬盘驱动器、或者任何其他适当的存储介质、或者它们的任意组合。数据仓库115可以是处理器110的组件,或者数据仓库115可在操作上连接到处理器110,以供其使用。在本说明书中使用的用语“操作上连接”可包括直接或间接连接,包括无直接物理接触的连接。

在一种或多种方案中,所述一个或多个数据仓库115可包括地图数据116。地图数据116可包括一个或多个地理区域的地图。在一些情况下,地图数据116可包括关于所述一个或多个地理区域中的道路、交通控制设备、路标、结构、特征和/或陆标的信息或数据。地图数据116可以是任何适当的形式。在一些情况下,地图数据116可包括区域的鸟瞰图。在一些情况下,地图数据116可包括区域的地面视图,包括360°地面视图。地图数据116可包括关于包含在地图数据116中的一个或多个项目和/或相对于包含在地图数据116中的其他项目的测量、尺寸、距离和/或信息。地图数据116可包括具有关于道路几何形状的信息的数字地图。地图数据116可以是高质量和/或非常详细的。

在一种或多种方案中,地图数据116可包括一个或多个地形图117。地形图117可包括关于一个或多个地理区域的地面、地形、道路、表面和/或其他特征的信息。地形图117可包括所述一个或多个地理区域中的高程数据。地图数据116可以是高质量和/或非常详细的。地形图117可定义一个或多个地表,所述一个或多个地表可包括铺面道路、未铺面道路、土地、和限定地表的其他事物。

在一种或多种方案中,地图数据116可包括一个或多个静态障碍物地图118。静态障碍物地图118可包括关于位于一个或多个地理区域内的一个或多个静态障碍物的信息。“静态障碍物”是其位置在一段时间内不变化或基本不变化,和/或其大小在一段时间内不变化或基本不变化的物理物体。静态障碍物的例子包括树木、建筑物、路缘、栅栏、栏杆、中间分隔带、电线杆、雕像、纪念碑、标志、长椅、设备(furniture)、邮筒、大石块、小山。静态障碍物可以是在地平面以上延伸的物体。包含在静态障碍物地图118中的一个或多个静态障碍物可具有位置数据、尺寸数据、维度数据、材料数据和/或与之关联的其他数据。静态障碍物地图118可包括关于一个或多个静态障碍物的测量、尺寸、距离和/或信息。静态障碍物地图118可以是高质量和/或非常详细的。静态障碍物地图118可以被更新,以反映绘图区域内的变化。

一个或多个数据仓库115可包括传感器数据119。在这种上下文下,“传感器数据”意味关于车辆100所配备的传感器的任意信息,包括关于此类传感器的能力和其他信息。如下所述,车辆100可包括传感器系统120。传感器数据119可与传感器系统120的一个或多个传感器相关。例如,在一种或多种方案中,传感器数据119可包括关于传感器系统120的一个或多个激光雷达(lidar)传感器124的信息。

在一些情况下,地图数据116和/或传感器数据119的至少一部分可以位于设置在车辆100上的一个或多个数据仓库115中。或者,或另外地,地图数据116和/或传感器数据119的至少一部分可以位于设置在远离车辆100之处的一个或多个数据仓库115中。

如上所述,车辆100可包括传感器系统120。传感器系统120可包括一个或多个传感器。“传感器”意味能够检测和/或感测某物的任意设备、组件和/或系统。所述一个或多个传感器可被配置成实时检测和/或感测。这里使用的术语“实时”意味用户或系统感觉到对于要进行的特定处理或判定而言足够即时,或者使处理器能够跟上某种外部处理的处理响应水平。

在其中传感器系统120包括多个传感器的方案中,传感器可以彼此独立地工作。或者,传感器中的两个或更多个传感器可以相互结合地工作。这种情况下,所述两个或更多个传感器可形成传感器网络。传感器系统120和/或一个或多个传感器可在操作上连接到处理器110、数据仓库115和/或车辆100的另外的元件(包括图3中所示的任意元件)。传感器系统120可获取车辆100的外部环境的至少一部分(例如,附近的车辆)的数据。

传感器系统120可包括任何适当类型的传感器。这里将说明不同类型的传感器的各种例子。不过,应理解的是实施例不限于所描述的特定传感器。传感器系统120可包括一个或多个车辆传感器121。车辆传感器121可检测、确定和/或感测关于车辆100本身的信息。在一种或多种方案中,车辆传感器121可被配置成比如基于惯性加速度,检测和/或感测车辆100的位置和定向变化。在一种或多种方案中,车辆传感器121可包括一个或多个加速度计、一个或多个陀螺仪、惯性测量单元(imu)、航位推测系统、全球导航卫星系统(gnss)、全球定位系统(gps)、导航系统147和/或其他适当的传感器。车辆传感器121可被配置成检测和/或感测车辆100的一个或多个特性。在一种或多种方案中,车辆传感器121可包括确定车辆100的当前速度的速度计。

或者,或另外地,传感器系统120可包括配置成获取和/或感测驾驶环境数据的一个或多个环境传感器122。“驾驶环境数据”包括关于自主车辆所位于的外部环境或其一个或多个部分的数据或信息。例如,所述一个或多个环境传感器122可被配置成检测、量化和/或感测在车辆100的外部环境的至少一部分中的障碍物,和/或关于此类障碍物的信息/数据。此类障碍物可以是固定物体和/或动态物体。所述一个或多个环境传感器122可被配置成检测、测量、量化和/或感测在车辆100的外部环境中的其他事物,比如车道标记、标志、交通信号灯、交通标志、车道线、人行横道、邻近车辆100的路缘、道路外的物体等等。

这里将说明传感器系统120的传感器的各种例子。例证的传感器可以是一个或多个环境传感器122和/或一个或多个车辆传感器121的一部分。不过,应理解的是实施例不限于所描述的特定传感器。

例如,在一种或多种方案中,传感器系统120可包括一个或多个雷达传感器123、一个或多个激光雷达传感器124、一个或多个声纳传感器125和/或一个或多个相机126。在一种或多种方案中,所述一个或多个相机126可以是高动态范围(hdr)相机或红外(ir)相机。

车辆100可包括输入系统130。“输入系统”包括使信息/数据能够被输入机器中的任意设备、组件、系统、元件或装置,或者成组的所述设备、组件、系统、元件或装置。输入系统130可接收来自车辆乘客(例如,驾驶员或乘客)的输入。车辆100可包括输出系统135。“输出系统”包括使信息/数据能够被呈现给车辆乘客(例如,人、车辆乘客等)的任意设备、组件或装置,或者成组的所述设备、组件或装置。

车辆100可包括一个或多个车辆系统140。图3中表示了所述一个或多个车辆系统140的各种例子。不过,车辆100可包括更多、更少或者不同的车辆系统。应意识到的是尽管分别定义了特定的车辆系统,不过,每个或任何一个系统或其各个部分都可以在车辆100内经由硬件和/或软件以其他方式组合或分离。车辆100可包括推进系统141、制动系统142、转向系统143、节气门系统144、传动系统145、信令系统146和/或导航系统147。这些系统中的每个可包括目前已知或者以后研发的一个或多个设备、组件和/或它们的组合。

导航系统147可包括配置成确定车辆100的地理位置和/或确定车辆100的行驶路线的目前已知或以后研发的一个或多个设备、应用和/或它们的组合。导航系统147可包括确定车辆100的行驶路线的一个或多个绘图应用。导航系统147可包括全球定位系统、本地定位系统或地理定位系统。

处理器110、行人预测系统170和/或自主驾驶模块160可在操作上连接以与各个车辆系统140和/或其各个组件通信。例如,返回图3,处理器110和/或自主驾驶模块160可以通信,以发送和/或从各个车辆系统140接收信息,从而控制车辆100的移动、速度、操纵、航向、方向等。处理器110、行人预测系统170和/或自主驾驶模块160可控制这些车辆系统140中的一些或全部,从而,可以是部分或完全自主的。

处理器110、行人预测系统170和/或自主驾驶模块160可在操作上连接以与各个车辆系统140和/或其各个组件通信。例如,返回图3,处理器110、行人预测系统170和/或自主驾驶模块160可以通信,以发送和/或从各个车辆系统140接收信息,从而控制车辆100的移动、速度、操纵、航向、方向等。处理器110、行人预测系统170和/或自主驾驶模块160可控制这些车辆系统140中的一些或全部。

处理器110、行人预测系统170和/或自主驾驶模块160可以操作,以通过控制车辆系统140中的一个或多个和/或其组件,控制车辆100的导航和/或操纵。例如,当按自主模式工作时,处理器110、行人预测系统170和/或自主驾驶模块160可控制车辆100的方向和/或速度。处理器110、行人预测系统170和/或自主驾驶模块160可导致车辆100加速(例如,通过增大提供给发动机的燃料的供给)、减速(例如,通过减小对发动机的燃料的供给和/或通过施加制动),和/或变更方向(例如,通过转动两个前轮)。这里使用的“导致”意味直接或间接地使、迫使、指导、命令、指令和/或允许事件或动作发生,或者至少处于此类事件或动作可能发生的状态。

车辆100可包括一个或多个致动器150。致动器150可以是可操作以修改、调整和/或变更车辆系统140中的一个或多个或其组件,以响应从处理器110和/或自主驾驶模块160接收信号或其他输入的任意元件或元件的组合。可以使用任何适当的致动器。例如,所述一个或多个致动器150可包括电动机、气动致动器、液压活塞、继电器、螺线管和/或压电致动器,仅仅列举一些可能性。

车辆100可包括一个或多个模块,其中的至少一些记载在本文中。模块可被实现成当由处理器110执行时,实现记载在本文中的各种处理中的一个或多个处理的计算机可读程序代码。模块中的一个或多个模块可以是处理器110的组件,或者模块中的一个或多个模块可在处理器110操作上连接到的其他处理系统上被执行,和/或分布在所述其他处理系统之间。模块可以包括可由一个或多个处理器110执行的指令(例如,程序逻辑)。或者或另外地,一个或多个数据仓库115可以包含这样的指令。

在一种或多种方案中,记载在本文中的模块中的一个或多个模块可包括人工或计算智能元件,例如神经网络、模糊逻辑或其他机器学习算法。此外,在一种或多种方案中,所述模块中的一个或多个模块可分布在记载在本文中的多个模块间。在一种或多种方案中,本文中描述的模块中的两个或更多个模块可被结合成单个模块。

车辆100可包括一个或多个自主驾驶模块160。自主驾驶模块160可被配置成从传感器系统120,和/或能够捕捉与车辆100和/或车辆100的外部环境相关的信息的任何其他类型的系统接收数据。在一种或多种方案中,自主驾驶模块160可以使用这样的数据来生成一个或多个驾驶场景模型。自主驾驶模块160可确定车辆100的位置和速度。自主驾驶模块160可确定障碍物的位置、障碍物或者其他环境特征,包括交通标志、树木、灌木、相邻的车辆、行人等。

自主驾驶模块160可被配置成接收和/或确定在车辆100的外部环境内的障碍物的位置信息,以便由处理器110和/或记载在本文中的模块中的一个或多个用于估计车辆100的位置和定向,基于来自多颗卫星的信号的全球坐标系中的车辆位置,或者可用于确定车辆100的当前状态或确定车辆100相对于其环境的位置以供创建地图或关于地图数据确定车辆100的位置之用的任何其他数据和/或信号。

自主驾驶模块160可以独立地或者与行人预测系统170组合地被配置成基于传感器系统120获取的数据、驾驶场景模型、和/或来自任何其他适当来源的数据,比如由发送模块230实现的根据传感器数据250的判定,来确定行驶路径、车辆100的当前自主驾驶操纵、未来自主驾驶操纵、和/或对当前自主驾驶操纵的修改。“驾驶操纵(drivingmaneuver)”意味影响车辆的移动的一个或多个动作。驾驶操纵的例子包括:加速、减速、制动、转向、沿车辆100的横向方向移动、变道、并道和/或倒车,仅仅列举一些可能性。自主驾驶模块160可被配置成实现确定的驾驶操纵。自主驾驶模块160可直接或间接地导致这样的自主驾驶操纵被实现。这里使用的“导致”意味直接或间接地使、命令、指令和/或允许事件或动作发生,或者至少处于此类事件或动作可能发生的状态。自主驾驶模块160可被配置成执行各种车辆功能,和/或向车辆100或其一个或多个系统(例如,车辆系统140中的一个或多个)发送数据,从车辆100或其一个或多个系统接收数据,与车辆100或其一个或多个系统相互作用,和/或控制车辆100或其一个或多个系统。

本文中公开了详细的实施例。不过,应理解的是公开的实施例仅仅作为例子。于是,本文中公开的具体结构和功能细节不应被解释成限制性的,而是仅仅作为权利要求书的基础,以及作为教导本领域的技术人员在实质上任何适当详细的结构中,不同地采用本文中的各个方面的代表性基础。此外,本文中使用的用语和短语不是限制性的,而是提供各种可能实现的可理解描述。图1-6中表示了各个实施例,不过,实施例不限于例示的结构或应用。

附图中的流程图和方框图图解说明按照各个实施例的系统、方法和计算机程序产品的可能实现的体系结构、功能和操作。在这方面,流程图或方框图中的各个方框可表示包含用于实现指定的逻辑功能的一个或多个可执行指令的模块、片段、或者代码部分。还应注意的是在一些备选实现中,记载在方框中的功能可不按照附图中所示的顺序发生。例如,相继所示的两个方框事实上可以基本同时地执行,或者各个方框有时可按照相反的顺序执行,取决于所涉及的功能。

上面说明的系统、组件和/或处理可以用硬件,或者硬件与软件的组合来实现,并且可以集中地在一个处理系统中实现,或者分布地实现,在分布实现的情况下,不同的元件分布在几个互连的处理系统间。适合于执行记载在本文中的各种方法的任意类型的处理系统或者另外的设备都是适合的。硬件和软件的典型组合可以是具有计算机可用程序代码的处理系统,当被加载和执行时,所述计算机可用程序代码控制处理系统,使得处理系统执行记载在本文中的方法。系统、组件和/或处理也可被嵌入计算机可读存储器,比如计算机程序产品或其他数据程序存储设备中,所述计算机可读存储器可由机器读取,有形地包含可由机器执行以进行记载在本文中的方法和处理的指令的程序。这些元件也可被嵌入应用产品中,所述应用产品包含使记载在本文中的方法的实现成为可能的所有特征,并且当被载入处理系统中时,能够执行这些方法。

此外,记载在本文中的各种方案可以采取包含在一个或多个计算机可读介质中的计算机程序产品的形式,所述一个或多个计算机可读介质具有包含在其上,例如存储在其上的计算机可读程序代码。可以利用一个或多个计算机可读介质的任意组合。计算机可读介质可以是计算机可读信号介质或计算机可读存储介质。短语“计算机可读存储介质”意味非临时性存储介质。计算机可读存储介质例如可以是(但不限于)电子、磁、光、电磁、红外或半导体系统、设备或装置,或者它们的任何适当组合。计算机可读存储介质的更具体例子(非详尽列表)包括:便携式计算机磁盘、硬盘驱动器(hdd)、固态驱动器(ssd)、只读存储器(rom)、可擦可编程只读存储器(eprom或闪存)、便携式光盘只读存储器(cd-rom)、数字通用光盘(dvd)、光学存储设备、磁存储设备、或者它们的任何适当组合。在本文的上下文中,计算机可读存储介质可以是可包含或存储供指令执行系统、设备或装置使用,或者与指令执行系统、设备或装置结合使用的程序的任何有形介质。

通常,本文中使用的模块包括进行特定任务或实现特定数据类型的例程、程序、对象、组件、数据结构等。在附加的方面,存储器通常存储所提到的模块。与模块关联的存储器可以是嵌入处理器内的缓冲器或高速缓存、ram、rom、闪存或另外的适当电子存储介质。在另外的附加方面,本公开所设想的模块被实现为专用集成电路(asic)、片上系统(soc)的硬件组件、可编程逻辑阵列(pla)、或者嵌入有用于进行所公开的功能的定义配置集(例如,指令)的另外的适当硬件组件。

包含在计算机可读介质上的程序代码可利用任何适当的介质,包括(但不限于)无线、有线、光纤、电缆、rf等,或者它们的任意适当组合来传送。用于执行本发明各种方案的各个方面的操作的计算机程序代码可以用一种或多种编程语言,包括诸如javatm、smalltalk、c++之类的面向对象的编程语言,和诸如“c”编程语言或类似编程语言之类的常规过程编程语言的任意组合编写。程序代码可以完全在用户的计算机上运行,部分在用户的计算机上运行,作为独立软件包运行,部分在用户的计算机上并且部分在远程计算机上运行,或者完全在远程计算机或服务器上运行。在后一情况下,远程计算机可通过任意类型的网络,包括局域网(lan)或广域网(wan),连接到用户的计算机,或者可以连接到外部计算机(例如,利用因特网服务提供商通过因特网连接)。

本文中使用的单数形式被定义成一个或不止一个。本文中使用的用语“多个”被定义成两个或不止两个。本文中使用的用语“另一个”被定义成至少第二个或更多个。本文中使用的用语“包括”和/或“具有”被定义成包含(即,开放式语言)。本文中使用的短语“…和…中的至少一个”指的是并且包含关联的列举项目中的一个或多个的任何可能组合。例如,短语“a、b和c中的至少一个”包括仅仅a、仅仅b、仅仅c、或者它们的任意组合(例如,ab、ac、bc或abc)。

本文中的各个方面可以用其他形式具体体现,而不脱离其精神或本质属性。因而在指示本公开的范围时,应参考以下权利要求书而不是上面的说明书。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1