CN113056749B - 用于自主机器应用的未来对象轨迹预测 - Google Patents

用于自主机器应用的未来对象轨迹预测 Download PDF

Info

Publication number
CN113056749B
CN113056749B CN201980075065.3A CN201980075065A CN113056749B CN 113056749 B CN113056749 B CN 113056749B CN 201980075065 A CN201980075065 A CN 201980075065A CN 113056749 B CN113056749 B CN 113056749B
Authority
CN
China
Prior art keywords
encoding
vehicle
spatial
environment
feature
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.)
Active
Application number
CN201980075065.3A
Other languages
English (en)
Other versions
CN113056749A (zh
Inventor
R·比列加斯
A·特罗科利
I·弗罗西奥
S·泰里
W·边
J·考茨
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Nvidia Corp
Original Assignee
Nvidia Corp
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Nvidia Corp filed Critical Nvidia Corp
Publication of CN113056749A publication Critical patent/CN113056749A/zh
Application granted granted Critical
Publication of CN113056749B publication Critical patent/CN113056749B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/04Architecture, e.g. interconnection topology
    • G06N3/044Recurrent networks, e.g. Hopfield networks
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/08Learning methods
    • BPERFORMING OPERATIONS; TRANSPORTING
    • B60VEHICLES IN GENERAL
    • B60WCONJOINT 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
    • B60W40/00Estimation or calculation of non-directly measurable driving parameters for road vehicle drive control systems not related to the control of a particular sub unit, e.g. by using mathematical models
    • B60W40/02Estimation or calculation of non-directly measurable driving parameters for road vehicle drive control systems not related to the control of a particular sub unit, e.g. by using mathematical models related to ambient conditions
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/04Architecture, e.g. interconnection topology
    • G06N3/045Combinations of networks
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N20/00Machine learning
    • G06N20/10Machine learning using kernel methods, e.g. support vector machines [SVM]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N20/00Machine learning
    • G06N20/20Ensemble learning
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/04Architecture, e.g. interconnection topology
    • G06N3/047Probabilistic or stochastic networks
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N5/00Computing arrangements using knowledge-based models
    • G06N5/01Dynamic search techniques; Heuristics; Dynamic trees; Branch-and-bound

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Mathematical Physics (AREA)
  • General Physics & Mathematics (AREA)
  • Computing Systems (AREA)
  • Software Systems (AREA)
  • Computational Linguistics (AREA)
  • Data Mining & Analysis (AREA)
  • Evolutionary Computation (AREA)
  • General Health & Medical Sciences (AREA)
  • Molecular Biology (AREA)
  • Biomedical Technology (AREA)
  • General Engineering & Computer Science (AREA)
  • Artificial Intelligence (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • Biophysics (AREA)
  • Health & Medical Sciences (AREA)
  • Automation & Control Theory (AREA)
  • Transportation (AREA)
  • Mechanical Engineering (AREA)
  • Traffic Control Systems (AREA)
  • Aviation & Aerospace Engineering (AREA)
  • Radar, Positioning & Navigation (AREA)
  • Remote Sensing (AREA)
  • Electromagnetism (AREA)

Abstract

在各种示例中,环境中的对象的历史轨迹信息可以由自我车辆追踪并且被编码为状态特征。可以通过使用由自我车辆观察到的每个对象的编码状态特征(例如通过双向长短期记忆(LSTM)网络)来对空间特征进行编码。对象的编码空间特征和编码状态特征可以用于预测对象的横向和/或纵向机动,并且该信息的组合可以用于确定对象的未来位置。未来位置可以由自我车辆用来确定通过环境的路径,或者可以由模拟系统使用以(根据从未来位置确定的轨迹)通过模拟环境来控制虚拟对象。

Description

用于自主机器应用的未来对象轨迹预测
背景技术
自主车辆要想有效地导航,就需要对周围环境生成了解,例如,识别附近汽车、行人、交通标志和信号的位置以及道路配置是自主车辆进行安全控制的关键方面。除了环境中对象的当前位置和配置之外,(通过自主车辆的观察)确定随时间推移这些对象可能的未来轨迹可证明有效地充分理解和解释预测的环境中的变化。
常规系统使用卷积社交池化来利用过去的对象轨迹信息。例如,可以使用长短期记忆(LSTM)网络对环境中的对象运动进行编码,并且可以将每个对象填充在空间网格内。然后可以将空间网格应用于卷积和池化层,以进行社交上下文编码。然后可以使用针对单个对象的社交上下文编码和运动编码来预测单个对象的未来运动。但是,这些常规方法仅限于一次预测单个对象的未来位置——从而限制了信息在自动驾驶应用中的有效性。在为每个对象重复这些常规过程的情况下,由于系统的处理负担,系统的运行时间对于实时部署变得无效。此外,通过使用卷积和池化层进行社交上下文编码,这些常规系统的结果通常会导致对训练数据的过度拟合。
发明内容
本公开的实施例涉及用于自主机器应用的未来对象轨迹预测。公开了关于利用机器学习模型(例如长短期记忆(LSTM)网络)来基于对对象的过去轨迹以及对象之间的空间关系的理解来预测环境中对象的未来轨迹的系统和方法。
与诸如上述的常规系统相反,本公开的系统利用自我车辆随着时间跟踪环境中的对象。例如,本系统可以预测环境中每个对象的未来轨迹,而仅需要跟踪每个对象轨迹一次。此外,可以并行计算多个对象的轨迹,从而减少了运行时间,并使系统能够针对自主车辆应用准确实时地执行。而且,在一些实施例中,双向LSTM可以用于生成表示环境中的每个对象及其相对于彼此的位置的空间编码。与常规系统相比,使用双向LSTM,通过空间编码可捕获更多上下文,因为对象之间的空间关系是从不同角度进行编码的。另外,由系统预测的对象的未来位置可以用作预测后续未来位置的输入——从而提高了系统尤其是对于未来的预测的准确性。
附图说明
下面参照附图详细描述用于自主机器应用的未来对象轨迹预测的本系统和方法,其中:
图1包括根据本公开的一些实施例的用于预测环境中一个或更多个对象的轨迹的过程的示例数据流程图;
图2A包括根据本公开的一些实施例的轨迹预测模型;
图2B包括根据本公开的一些实施例的用于生成编码状态特征的示例图示;
图2C包括根据本公开的一些实施例的用于填充空间布置的示例图示;
图2D包括根据本公开的一些实施例的用于生成编码空间特征的示例图示;
图2E包括根据本公开的一些实施例的用于生成编码空间特征的另一示例图示;
图2F包括根据本公开的一些实施例的用于预测对象的横向机动的示例图示;
图2G包括根据本公开的一些实施例的用于预测对象的纵向机动的示例图示;
图2H包括根据本公开的一些实施例的用于预测对象的未来位置的示例图示;
图2I包括根据本公开的一些实施例的用于使用预测的未来位置来为对象的未来轨迹建模的示例图示;
图3是示出了根据本公开的一些实施例的用于计算对象机动的方法的流程图;
图4是示出了根据本公开的一些实施例的用于使用未来预测来计算对象的编码状态特征的方法的流程图;
图5A是根据本公开的一些实施例的示例自主车辆的图示;
图5B是根据本公开的一些实施例的用于图5A的示例自主车辆的相机位置和视场的示例;
图5C是根据本公开的一些实施例的用于图5A的示例自主车辆的示例性系统架构的框图;
图5D是根据本公开的一些实施例的用于基于云的一个或更多个服务器与图5A的示例自主车辆之间通信的系统图;以及
图6是适合用于实现本公开的一些实施例的示例计算设备的框图。
具体实施方式
公开了与用于自主机器应用的未来对象轨迹预测有关的系统和方法。尽管可以关于示例自主车辆500(在本文中可替代地称为“车辆500”,“自我车辆500”或“自主车辆500”)描述本公开,但是其示例相对于图5A-5D进行描述,这并不旨在是限制性的。例如,本文描述的系统和方法可以由但不限于非自主车辆,半自主车辆(例如,在一个或更多个自适应驾驶员辅助系统中(ADAS)),机器人,仓库车辆,越野车辆,飞行器,船只,航天飞机,应急车辆,摩托车,电动或机动自行车,飞机,建筑车辆,水下航行器,无人机和/或其他车辆类型使用。另外,尽管可以相对于自动驾驶或ADAS系统来描述本公开,但这并不是限制性的。例如,本文所述的系统和方法可以在模拟环境(例如,以准确地模拟对象在模拟环境中的运动和控制)中,在机器人、航空系统、划船系统和/或其他技术领域(例如感知,世界模型管理,路径规划,避障和/或其他过程)中使用。
现在参照图1,图1包括根据本公开的一些实施例的用于预测环境中一个或更多个对象的轨迹的过程100的示例数据流程图。过程100可以包括从车辆500的一个或更多个传感器生成和/或接收传感器数据102。传感器数据102可以被车辆500使用,并且在过程100内,以预测环境中的一个或更多个对象(例如其他车辆,行人等)的未来轨迹。传感器数据102可以包括但不限于来自车辆500(和/或其他车辆或对象,在一些示例中,诸如机器人设备、VR系统、AR系统等)的任何传感器的传感器数据102。例如,并且参照图5A-5C,传感器数据102可以包括但不限于由一个或更多个全球导航卫星系统(GNSS)传感器558(例如,一个或更多个全球定位系统传感器),一个或更多个雷达(RADAR)传感器560,一个或更多个超声传感器562,一个或更多个激光雷达(LIDAR)传感器564,一个或更多个惯性测量单元(IMU)传感器566(例如,一个或更多个加速度计,一个或更多个陀螺仪,一个或更多个磁罗盘,一个或更多个磁力计等),一个或更多个麦克风596,一个或更多个立体照相机568,一个或更多个广角照相机570(例如鱼眼相机),一个或更多个红外照相机572,一个或更多个环绕照相机574(例如360度照相机),一个或更多个远程和/或中程照相机598,一个或更多个速度传感器544(例如,用于测量车辆500的速度)和/或其他传感器类型生成的数据。
在一些示例中,传感器数据102可以包括由一个或更多个前向传感器、侧视传感器和/或后视传感器生成的传感器数据。该传感器数据102可用于识别、检测、分类和/或跟踪环境内车辆500周围的对象的运动。在实施例中,任何数量的传感器可用于合并多个视场(例如,图5B的远程照相机598,前向立体照相机568和/或前向广角照相机570的视场)和/或感觉场(例如,LIDAR传感器564,RADAR传感器560等)。
传感器数据102可以包括表示一个或更多个图像的图像数据,表示视频的图像数据(例如,视频的快照)和/或表示传感器的感觉场的表示的传感器数据(例如,LIDAR传感器的深度图,超声波传感器的值图等)。在传感器数据102包括图像数据的情况下,可以使用任何类型的图像数据格式,例如但不限于压缩图像,例如联合图像专家组(JPEG)或亮度/色度(YUV)格式的压缩图像,压缩图像是源自压缩视频格式(诸如H.264/高级视频编码(AVC)或H.265/高效视频编码(HEVC))的帧,原始图像(诸如源自红色透明蓝色(RCCB),红色透明(RCCC)或其他类型的成像传感器)和/或其他格式。另外,在一些示例中,可以在过程100内使用传感器数据102,而无需任何预处理(例如,以原始或捕获的格式),而在其他示例中,传感器数据102可以进行预处理(例如,噪声平衡,去马赛克,缩放,裁剪,增强,白平衡,色调曲线调整等,例如使用传感器数据预处理器(未显示))。如本文所使用的,传感器数据102可以参考未处理的传感器数据、预处理的传感器数据或其组合。
在一些示例中,例如用于训练(例如,用于图2A的训练模型200),可以使用由一个或更多个车辆生成的传感器数据102。在其他示例中,除了或可选地来自车辆的传感器数据之外,可以使用来自一个或更多个固定照相机观察的路段的数据。在固定相机的一个或更多个视场中,这种类型的数据集可以包括二维(2D)位置或对象随时间的位置。然后,可以通过在数据集中选择随机对象作为自我车辆,将该数据转换为以自我车辆为中心的表示。这样,通过将不同的对象识别为自我车辆,可以使用相同的数据集来生成多个以自我为中心的表示。
对象检测器104可以使用传感器数据102来检测、识别和/或跟踪环境中的对象。例如,可以使用一个或更多个机器学习模型(例如,训练用于对象检测的深度神经网络),计算机视觉算法和/或另一类型的对象检测算法来检测环境中的对象。可以使用对象检测器104来确定位置,速别,速度,加速度,偏航角和/或关于每个对象的其他信息。在一些示例中,可以使用车辆500的一个或更多个传感器来确定速别,速度,加速度,偏航率,角速度和/或车辆500的其他信息,并且该信息可以用于确定对象相对于车辆500的位置,速别,速度等。这样,时间编码器106可以使用对象的该相对信息来对对象的状态信息进行编码。例如,以间隔和/或在多个帧或时间步长上,可以使用对象检测器104来确定关于环境中的对象的信息。
在一些示例中,对象检测器104和/或另一个检测器可以使用传感器数据102来确定关于对象和/或环境的附加信息。例如,关于对象,可以检测制动灯,信号灯,闪光灯和/或对象的其他指示器。另外,关于环境,可以检测交通信号灯,障碍物,行人,骑自行车的人,道路信号和/或其他环境特征。来自对象和/或环境的该附加信息可以在过程100中使用,例如以帮助由机动预测器114预测机动。在一些示例中,该附加信息可以被包括在对象的编码状态中,如由时间编码器106生成的。此外,如本文所述,附加信息可以被包括在由空间编码器108生成的空间编码中(例如,因为空间编码器108可以使用编码状态来生成空间编码)。这样,该附加信息可以用于增强关于对象在本文描述的其他状态信息。
时间编码器106可以用于学习在每个间隔、帧和/或时间步长处的车辆运动的动力学。在一些示例中,时间编码器106可以包括递归神经网络(RNN),例如长短期记忆(LSTM)网络,其可以接收多个对象中的一个对象的对象信息(在实施例中,被提供为相对于车辆500的信息),并且为每个对象生成编码状态。对象的编码状态可以表示对象在当前间隔、帧或时间步长下的运动状态。当将针对当前实例的更新的对象信息提供给时间编码器106时,可以在每个间隔、帧或时间步长更新编码状态。在一些实施例中,可以将每个对象的对象信息应用于时间编码器106的相应实例,其中每个对象的每个实例具有共享的权重。通过为每个对象使用单独的时间编码器(或LSTM),具有共享的权重,可以实现每个对象的编码状态的各个方面之间的更直接的对应关系。
作为一个示例,参照图2A,可以跟踪与多个对象204(例如,对象204A-204D)中的每个对象相对应的状态信息206(例如,状态信息206A-206D),并将其针对对象204中的每一个生成编码状态特征210(例如,编码状态特征210A-210D)。在一些示例中,对象204中的至少一个(例如,对象204C)可以对应于车辆500(例如,自我车辆),并且其他对象的编码状态特征210A、210B和210D可以具有相对于对象204C编码的状态信息,如本文所述。虽然有四个对象204在图2A中示出,这并不是限制性的,并且取决于实施例,在任何给定时间可以存在和/或跟踪任何数量的对象。例如,如本文所述,除了车辆500本身之外(例如,使用相对信息的地方),还可以跟踪距车辆500(例如,对象204C)一定距离(例如,半径,直线距离等)内的每个对象204。
对于每个对象204,可以将与对象204相对应的状态信息206应用于编码器LSTM208的实例(例如,分别与对象204A-204D相对应的编码器LSTM 208A-208D)。编码器LSTM208可用于使用状态信息206来生成对象204的编码状态特征210,如至少参照图2B在本文中更详细地描述的。在一些示例中,在对象类型不同的情况下,编码器LSTM 208可以是不同的。例如,在对象是车辆的情况下,可能存在一种类型(例如,多个实例)的编码器LSTM 208,在对象是行人的情况下,可能存在另一种类型的编码器LSTM 208。在这样的示例中,在每个对象是车辆的情况下,每个编码器LSTM 208可能相似,并且在每个对象是行人时,每个编码器LSTM 208可能相似,但是在某些对象是车辆而其他对象是行人的情况下,可能存在对应于每个对象的特定对象类型的编码器LSTM 208。车辆和行人不是限制性的,并且可以使用任何对象类型并且具有对应类型的编码器LSTM。在识别和/或跟踪两个或更多个对象类型并将其应用于编码器LSTM 208的示例中,当将已编码状态特征210放置在网格212中时,可以将附加对象类标签与每个对象相关联。
网格202可以表示驱动表面或其他环境,例如但不限于道路、高速公路、停车场、水路等。网格202的每个单元的宽度可以表示环境内的限定的横向尺寸,例如但不限于,驾驶表面的划定的(或推断的)车道的宽度、停车位、车辆的宽度(例如,平均宽度)或其他对象类型等。网格202的每个单元的高度可以表示环境中定义的纵向尺寸,例如但不限于车辆(例如,普通车辆)的长度、水容器的长度、卡车的长度(例如,平均18轮车)的长度、不同对象类型的长度等。网格202中的对象204的位置可能对应于对象在驾驶环境(例如,在实施例中,相对于对象204C或自我车辆)中的当前位置,并且状态信息206可以对应于在那些先前位置的对象204的先前的位置(以及对应的状态信息,例如速度,偏航角,转弯速度等)。在相对于车辆500(例如,对象204C)跟踪对象的情况下,网格202可以在车辆500上居中(例如,如图2A所示),使得当车辆500在环境中移动时,网格202紧随其后。
在一些实施例中,网格202和/或212可以表示环境中(例如,沿直线)的驾驶表面的二维(2D)映射。这样,网格202和/或212中的2D位置可以对应于环境中与网格相关的位置。通过将传感器数据102映射到网格202和/或212,可以将对象204的状态信息抽象为2D(或三维(3D))表示,从而将传感器数据102与预测方法分离。
在一些示例中,可以确定关于驾驶表面的附加信息,例如,有多少车道;以及道路是弯曲的、直的、在斜坡上、下坡上还是平坦上等。除了在实施例中来自一个或更多个映射应用程序的映射数据之外,该信息还可以从传感器数据102(例如照相机(例如,RGB照相机),LIDAR传感器,RADAR传感器,GNSS传感器和/或其他传感器)中提取此信息。在这样的示例中,在确定了该附加信息与驾驶表面相对应的情况下,网格202和/或网格212(或更一般地,空间布置)可以表示更鲁棒的信息集。空间布置因此可以包括到环境的(3D)映射,并且可以包括弯道、直线、山丘和/或驾驶表面的其他特征。这样,当车辆500移动通过环境时,由车辆500生成和/或接收新的传感器数据102和/或映射数据,空间布置可以动态地变化。在使用更鲁棒的空间布置或网格(例如202、212)的示例中,来自过程100或通过模型200的预测可以具有提高的准确性。
作为另一示例,参照图2B,可以随着时间跟踪与对象204E相对应的状态信息206E和与对象204F相对应的状态信息206F。如图所示,在每个时间步长x,状态信息206D可被应用于编码器LSTM 208E。编码器LSTM 208E可以在当前时间xn生成与对象204E相对应的编码状态特征210E。如本文所述,对象204E的当前状态和状态可以在预定数量的时间步长上进行跟踪(例如,但不限于,在五秒钟内每秒三十次,在十秒钟内每秒十次,在五秒钟内每秒五次等)。这样,应用于编码器LSTM 208E的状态信息206E可以对应于在预定数量的时间步长(x0至x(n-1))上的当前状态(例如,在xn处)和对象204E的状态。在下一个时间步长x(n+1),可以将对象204E的最旧的时间(例如,x0)状态从考虑中移除,并且可以将对象204E的新的当前状态(例如,在x(n+1)处)应用于编码器LSTM 208E。在一些示例中,状态信息206E可以被存储在滚动缓冲区中,使得在每个时间实例处,从缓冲区中移除最旧的状态信息,并且对应于当前状态减去一个时间步长(例如,x(n-l)的状态信息)被添加到缓冲区中。类似地,对于对象204F,状态信息206F可以被应用于编码器LSTM 208F。可以针对每个对象204重复该过程以生成该对象的编码状态特征210(例如,分别针对图2A的每个对象204A-204D以生成编码状态特征210A-210D)。
再次参照图1,空间编码器108可以生成与环境中对象的空间布置相对应的空间编码。在一些实施例中,对象的编码状态可以用于生成空间编码。例如,当生成包括环境中的对象的空间布置时,可以使用表示对象的编码状态的数据来施加应用于空间布置(例如,网格)的离散空间(例如,单元)的对象。这样,表示空间布置的离散空间中的对象的数据可以包括表示对象的编码状态的数据。以此方式,空间布置表示环境中的对象的当前布置(在实施例中,相对于自我车辆)以及由对象的编码状态表示的对象的历史状态信息。此信息可用于提供每个对象的更准确表示,并有助于预测当对象移动通过环境时的下一个或将来的移动。
作为示例,参照图2A,可以填充空间布置或网格212以包括对象204的编码状态特征210。可以基于对象204在环境中的位置将对象204的编码状态特征210应用于网格212中的单元(例如,如在网格202中所描绘的)。在一些实施例中,如本文所述,可以相对于车辆500(例如,自我车辆或对象204C)填充网格。在这样的实施例中,网格212可以被填充为分别包括相对于对象204C的对象204A、204B和204D的编码状态特征210A、210B和210D(其中对象204C可以在网格212中居中)。在一些示例中,网格202和网格212可以彼此对应。然而,在非限制性实施例中并且出于分配对象204或其编码状态特征210的目的,编码状态特征210可以仅位于网格212的单个单元中。例如,在确定对象204位于两个单元(例如,对象204B)之间的情况中,对象204的编码状态特征210(例如,编码状态特征210B)可以位于单个单元中。单个单元可以被选择为对象204重叠更多(例如,对象204的面积的比例)的单元,更接近对象204重叠的自我车辆的单元和/或基于不同的选择标准的另一个单元。在其他实施例中,编码状态特征210可以部分地应用于对象204重叠的两个或更多个单元。例如,如果对象204基于对象的历史状态信息,在跟踪的历史周期的30%的第一单元和跟踪的历史周期的70%的第二单元重叠,则编码状态特征210可以类似地在网格212中以30/70的比例定位。
作为填充网格212的另一示例,并且参照图2C,对象204(例如,对象204E和204F)的当前布置可以从当前布置网格230(和/或例如从网格202)确定。网格212A(例如,网格212的示例)因此可以被分别对应于对象204E和204F的编码状态特征210E和210F填充。如本文所述,编码状态特征210E和210F的位置可以对应于当前布置网格230中的对象204E和204F的位置。这样,其中当前布置网格230和网格212A表示环境的相似部分,可以在网格212A中的各个单元中填充编码状态特征210E和210F。
再次参照图1,空间编码器108可以使用多种方法中的任何一种来生成空间编码,例如但不限于,序列编码110和/或卷积编码112。空间编码可以捕获或表示环境中每个对象的运动/或历史状态之间的相互依赖性。例如,参考序列编码110,空间布置的离散空间可以对应于值(例如,对于n个单元,单元1,单元2,单元3等等)。这样,机器学习模型(诸如RNN或更具体地LSTM)可以用于使用序列从空间布置生成空间编码。例如,机器学习模型可以基于根据序列应用的训练数据来学习,从而在推理期间机器学习模型可以使用序列来计算空间编码。因此,空间编码将根据序列将与每个离散空间相对应的值应用于机器学习模型,其中每个离散空间可能对应于编码状态,也可能不对应于任何编码状态(因此例如可能具有对应值0或1)。在离散空间中存在编码状态的情况下,序列中对于离散空间应用于机器学习模型的值可能与相应对象的编码状态相对应。结果,可以通过机器学习模型将对对象的空间布置的理解编码为空间编码,其中空间编码本质上考虑了当前时间在空间布置中每个对象的编码状态。使用该方法,对于每个对象204,空间编码可以是相同的,从而允许空间编码针对每个对象被重用于计算机动(例如,通过机动预测器114)和/或轨迹(例如,通过轨迹解码器120)。这与使用卷积编码来生成空间编码的常规系统相反,因为常规的卷积编码要求感兴趣的对象相对于其他对象以空间布置为中心,从而需要为具有为其预测的机动和/或轨迹的每个不同对象生成不同的空间布置。为了训练用于序列编码110的机器学习模型(例如LSTM),可以使用损失函数来计算每个对象的状态信息的损失,而不是仅对每个对象具有单个损失函数(例如在常规系统中)。例如,可能存在与每个对象相对应的损失函数,并且每个损失函数可以聚合为单个损失函数。在一些示例中,但不限于,所使用的损失函数在实施例中可以是对抗性损失函数,可以在训练的不同阶段使用不同的损失函数。在这样的示例中,第一损失函数(例如,均方根误差(RMSE)损失)可以用于机动预测的初始训练(例如,参照图2F和图2G进行解释),以及第二损失函数(例如,负对数似然损失)可用于初始训练后的机动预测训练。
在一些实施例中,并且参照图2A中所示的序列编码,可以使用机器一个或更多个学习模型(例如,一个或更多个RNN或更具体地,一个或更多个LSTM)来生成一个或更多个编码空间特征。如图2A所示,可以使用两个机器学习模型来生成两个编码空间特征。例如,前向RNN可以通过将网格212在第一序列中的每个单元的值应用于前向RNN来生成第一编码空间特征214。例如,第一序列可以包括左上单元到右下单元的顺序,使得网格212的单元的值被应用于前向RNN,从左上单元到中上单元到右上单元,到第二行的左单元,到第二行的中间单元,依此类推。作为另一示例,通过将网格212的第二序列中的每个单元的值应用于后向RNN,可以使用后向RNN来生成第二编码空间特征216。例如,第二序列可以包括右下单元到左上单元的顺序(例如,与第一序列相反的顺序),使得网格212的单元的值被应用于后向RNN,从右下单元,到中下单元,再到左下单元,再到倒数第二行的右单元,再到倒数第二行的中间单元,依此类推。这样,在当前时间,第一编码空间特征214和第二编码空间特征216可以包括空间布置的两种不同编码,包括编码状态特征210在内。前向RNN和后向RNN的组合在本文中可以统称为双向LSTM。尽管本文分别描述了具有第一序列和第二序列的前向RNN和后向RNN,但这并不旨在进行限制。机器学习模型的数量和应用于它们的序列可能会根据实施例而有所不同,此处的描述仅出于示例目的。
通过将两个或更多个不同的序列应用于两个或更多个机器学习模型,编码空间特征可以表示较少的偏差,并且可以减少对训练集的过度拟合,从而为机动和/或轨迹预测产生更准确的结果。另外,如本文所述,因为可以使用序列编码来预测编码空间特征,所以编码空间特征对于每个对象204可以是可重复使用的。作为示例,如图2A中所示,第一编码空间特征214和第二编码空间特征216可以与编码状态特征210D和编码状态特征210B(以及其他编码状态特征210A和210C)结合使用以分别针对对象204D和204B预测机动和/或轨迹。
作为序列编码110的另一示例,参照图2D,与网格212A的单元相关联的值可以按序列顺序应用于空间LSTM 232A、空间LSTM 232B和/或另一空间LSTM 232。例如,在网格212A的单元以1、2、3、...、n的顺序的情况下,如图所示,与网格的单元相关联的值可以按1、2、3、...、n的顺序应用于空间LSTM 232A,以生成第一编码空间特征214A,并且与网格的单元相关联的值可以按n、...、3、2、1的顺序应用于空间LSTM 232B,以生成第二编码空间特征216A。作为另一个示例,应用与网格212A的单元相对应的值可以从1开始的第一列的顶部向下到第一列,然后从2开始的第二列向下到第二列,以此类推。这样,许多不同序列中的任何序列都可以用于从网格212A生成一个或更多个编码空间特征。
再次参照图1,并且关于卷积编码112,对于每个对象,可以相对于正被预测的当前对象(例如,因为使用卷积编码112可能一次将预测限制到一个对象,所以要预测机动和轨迹的对象,如本文所述)定义空间布置(例如,图2A的对象204C的网格212)。然后可以将与要预测的对象相对应的空间布置应用于机器学习模型,例如卷积神经网络(CNN),以生成空间编码。例如,可以生成与空间布置相对应的张量,并且可以将张量(或表示其的数据)用作机器学习模型的输入。在一些实施例中,并且类似于本文描述的序列编码110,空间布置以及因此张量可以表示空间布置内的对象的编码状态。
例如,并且参照图2E,卷积编码112可以用于使用CNN 242来生成编码空间特征244。被填充以包括编码状态特征210E和210F的网格212A可以被用来生成表示网格212A的张量240。这样,表示张量240的数据可以被应用于CNN 242以生成编码空间特征244。
CNN 242的一个或更多个层可以包括输入层。一个或更多个输入层可以保持与从空间布置生成的张量相关联的值。
一个或更多个层可以包括卷积层。张量数据可以被输入到CNN 242的一个或更多个卷积层中(例如,在一个或更多个输入层和/或其他层类型之后)。卷积层可以计算连接到输入层(例如,输入层)中的局部区域的神经元的输出,每个神经元计算它们的权重和它们在输入体积中连接到的小区域之间的点积。卷积层的结果可能是另一个体积,其中一个尺寸取决于所应用的滤波器的数量(例如,宽度、高度和滤波器的数量,例如32x32x12,如果12是滤波器的数量)。
一个或更多个层可以包括整流线性单元(ReLU)层。一个或更多个ReLU层可以应用元素激活函数,例如最大值(0,x),例如零处的阈值。ReLU层的最终体积可以与ReLU层的输入的体积相同。
一个或更多个层可以包括池化层。池化层可以沿空间维度(例如,高度和宽度)执行下采样操作,这可能导致比池化层的输入更小的体积(例如,来自32x32x12输入体积16x16x12)。在一些示例中,CNN 242可以不包括任何池化层。在这样的示例中,可以使用跨步卷积层代替池化层。
一个或更多个层可以包括完全连接的层。一个或更多个完全连接的层中的每个神经元可以连接到先前体积中的每个神经元。完全连接的层可以计算类别得分,并且得到的体积可以是1x1x类别数量。
尽管本文关于CNN讨论了输入层、卷积层、池化层、ReLU层和完全连接的层,但这并不是限制性的。例如,可以使用附加的或替代的层,例如归一化层、SoftMax层和/或其他层类型。
根据实施例,可以使用CNN 242的层的不同顺序和数量。这样,CNN 242的层的顺序和数量不限于任何一种架构。此外,某些层可能包含参数(例如权重和/或偏差),例如卷积流的层和/或一个或更多个输出层,而其他则可能不包含,例如ReLU层和池化层,例如。在一些示例中,可以在训练期间学习参数。此外,某些层可能包含附加超参数(例如学习率,步幅,历元,内核大小,过滤器数量,用于池化层的池化类型等),例如卷积层、一个或更多个输出层和池化层,而其他层则可能没有,例如ReLU层。可以使用各种激活函数,包括但不限于ReLU、泄漏的ReLU、S形、双曲正切(tanh)、指数线性单位(ELU)等。参数、超参数和/或激活函数不是限制性的,并且可以根据实施例而不同。
尽管被描述为CNN 242,但这并不意味着是限制性的。例如,除了或代替来自CNN242,可以使用另一种类型的一个或更多个机器学习模型。例如但不限于,可以使用任何类型的机器学习模型,例如使用线性回归、逻辑回归、决策树、支持向量机(SVM)、朴素贝叶斯、k近邻(Knn)、K均值聚类、随机森林、降维算法、梯度提升算法、神经网络(例如,自动编码器,卷积,递归,感知器,长/短期记忆(LSTM),Hopfield,玻尔兹曼,深层信念,反卷积,生成对抗,液态状态机等)的一个或更多个机器学习模型和/或其他类型的机器学习模型。
使用卷积编码112,编码空间特征244可以对应于单个对象(例如,以网格212为中心的对象(未示出))的空间编码。这样,当使用空间编码来预测机动和/或轨迹时,编码空间特征244可能仅相对于以网格为中心的对象可用。这样,对于对象204E,必须将网格调整为以对象204E为中心,以生成对于对象204E以及类似地对于对象204F准确的空间编码。卷积编码112可以在本公开的一些实施例中使用,但是当预测多个对象的机动和/或轨迹时,与序列编码110相比可以增加运行时间。
再次参照图1,机动预测器114可以用于为环境中的一个或更多个对象生成机动预测。机动预测器114可以但不限于包括机器学习模型,例如神经网络、预测算法和/或另一类型的机动预测器114。例如,在机动预测器114是神经网络的情况下,神经网络可以包括任意数量的层,例如至少关于图2E的CNN 142在本文中描述的那些。例如,由时间编码器106生成的编码状态和由空间编码器108生成的空间编码可以一起被应用于机动预测器114。在实施例中,可以针对每个对象并行地重复该过程,使得可以针对每个对象预测动作。例如,对于对象并且关于序列编码110,对象的编码状态可以应用通用空间编码(例如,可以针对每个对象使用空间编码,至少参照图2D所述)从序列编码110到机动预测器114。作为另一示例,对于对象并且利用卷积编码112,对象的编码状态可以与对应于该对象(例如,至少参照图2E所述)的空间编码一起应用于机动预测器114。结果,机动预测器114可以针对对象预测横向机动116、纵向机动118或其组合。例如,横向机动116可以包括向左改变车道、向右改变车道、向左改变两个车道、向右改变两个车道、停留在车道中、转弯、离开出口、合并、转弯和/或另一横向机动,以及纵向机动可包括加速、制动、保持速度和/或另一纵向机动。
作为示例,参照图2A,对于对象204D,可以将编码状态特征210D,第一编码空间特征214和第二编码空间特征216级联(框218D),并且应用于机动分类器220D。机动分类器220D可以使用来自编码状态特征210D、第一编码空间特征214和第二编码空间特征216的级联(框218D)信息来预测对象210D的横向机动116D和纵向机动118D。如图2A所示,输出可以是纵向机动118D和横向机动116D中的每一个的值(例如,在实施例中为比特值或一个热比特值)。在图2A的非限制性示例中,用于横向机动116D的机动分类器220D的输出可以包括三个潜在值(例如,0、1或2),其可以对应于三个可能的横向机动(例如,向右改变车道,向左改变车道,留在车道中)。作为图2A的另一个非限制性示例,用于纵向机动118D的机动分类器220D的输出可以包括两个潜在值(例如,0或1),其可以对应于两个可能的纵向机动(例如,制动或保持速度)。横向机动116D和纵向机动118D的输出值可以被级联(框238D)。
作为另一个示例,参照图2F,可以将编码状态特征210E,编码空间特征214A和编码空间特征216A应用于机器学习模型250(诸如神经网络),以计算与一个或更多个横向机动(例如,左车道改变252A,保持车道252B和右车道改变252C)相对应的值。如本文所使用的,在编码空间特征214A和/或216A被指示为正在使用的情况下,编码空间特征244(图2E)可以被用作编码空间特征214A和/或216A的补充或替代。机器学习模型250可以针对对象204E计算(如表254中所示),左车道改变252A的值为0.05,保持车道252B的值为0.92以及右车道改变252C的值为0.03。这样,确定可以是对象204E最有可能停留在相同的行进车道中(例如,保持车道252B)。
另外,参照图2G,可以将编码状态特征210E、编码空间特征214A和编码空间特征216A应用于机器学习模型258(诸如神经网络),以计算与一个或更多个纵向机动(例如,制动260A以及保持当前/恒定速度260B)相对应的值。例如,机器学习模型258可以针对对象204E计算(如表262中所示)保持当前/恒定速度260B的值0.8以及制动260A的值0.2。这样,确定可以是对象204E最有可能保持当前速度(例如,保持当前/恒定速度260B)。
机器学习模型250和258中的每一个可以包括神经网络,例如CNN,并且可以包括一个或更多个层,例如但不限于本文关于图2E所描述的那些。在一些实施例中,机器学习模型250和258可以包括但不限于使用线性回归、逻辑回归、决策树、支持向量机(SVM)、朴素贝叶斯、k近邻(Knn)、K均值聚类、随机森林、降维算法、梯度提升算法、神经网络(例如,自动编码器,卷积,递归,感知器,长短期记忆(LSTM),Hopfield,玻尔兹曼,深层信念,反卷积,生成对抗,液态状态机等)的一个或更多个机器学习模型和/或其他类型的机器学习模型。
再次参照图1,时间编码器106、空间编码器108和/或机动预测器114的输出或预测可以被轨迹解码器120用来确定环境中一个或更多个对象的轨迹。例如,轨迹解码器120可以针对一个或更多个对象的下一数量的帧或时间增量上的未来运动和/或位置生成预测分布。轨迹解码器120可针对当前时间实例和一个或更多个先前时间实例(例如,对应于先前的1秒,2秒,3秒,5秒等)使用对象的编码状态、空间编码以及机动预测(例如,横向机动116和纵向机动118)。这样,在针对轨迹解码器120被训练以预测的滚动时间段内针对每个时间实例对应于对象(例如,编码状态、空间编码和机动预测)的每个预测集可以被应用于该轨迹解码器120,轨迹解码器120可以输出预测位置。
预测位置可以对应于未来时间的任意数量的未来帧或位置。例如,预测可以对应于接下来的两秒、三秒、五秒或未来的另一时间段,并且预测可以包括预测间隔,例如每秒三十个预测、每秒十个预测等。这样,作为非限制性示例,轨迹解码器120可以生成五十个预测,其中预测的未来时间间隔是五秒并且每秒有十个预测。在一些示例中,均值、标准差、协方差和/或其他变量可用于生成或更新预测。例如,由于预测对应于更远未来的时间或位置,所以预测的位置发生变化的可能性可能会增加(例如,由于许多因素(例如人为变量、其他对象改变位置等),随着进入未来的时间增加,预测的准确性可能会降低)。这样,预测可以在使用变量(例如平均值,标准偏差,协方差和/或其他变量)中将此作为因素。轨迹解码器120可以(例如,轨迹解码器120包括LSTM的情况下)在处理期间考虑这些变量,使得预测表示未来位置(例如,在空间布置中)以及均值、标准差、协方差和/或其他变量值。这样,轨迹建模器122可以使用该信息来对一个或更多个对象的轨迹建模(如本文至少关于图2H所描述的)。
作为示例,参照图2A,可以将级联(框218D)的第一编码空间特征214、第二编码空间特征216和编码状态特征210D与级联(框238D)的横向机动116D和纵向机动118D进一步级联(框222D),并应用于解码器LSTM 224D。解码器LSTM 224D可以预测与第一未来帧或时间相对应的第一未来位置,并且可以预测与第二未来帧或时间相对应的第二未来位置等等。另外,在一些非限制性实施例中,每个先前的预测(例如,对应于较早的未来帧或时间)可以被用作解码器LSTM 224D的另一输入,用于预测在一个或更多个先前的预测之后的下一个或每个下一个未来预测。每个预测226D可以作为环境或网格202中的(x,y)坐标输出。这样,在坐标对应于网格202的情况下,并且由于网格202在环境中具有已知的对应位置,因此,将来的预测在环境中的位置可能是已知的。预测位置因此可以被转换成环境中的现实世界(或虚拟世界,在模拟环境中实施或与模拟环境一起使用的实施例中)位置,用于由车辆500(例如,自我车辆)在确定路线或穿过环境的路径时使用。在虚拟环境(诸如模拟环境)中使用预测的情况下,可以将预测用于控制对象穿过虚拟环境,以更准确地反映对象的自然驾驶路径和轨迹。这样,出于测试和训练的目的,可以在根据由解码器LSTM 224预测的这些更准确、更现实的轨迹控制的周围虚拟对象的环境中对虚拟自我车辆进行测试。
参照图2A描述的这个示例针对对象204D,但是可以在每个时间实例对网格202中的每个对象204类似地执行该过程。在一些示例中,本文参照图2A描述的过程可以针对每个对象并行地执行,从而减少了用于预测每个对象的轨迹的系统的运行时间。
在一些实施例中,如图2A所示,可将一个或更多个对象204的预测226反馈到状态信息206,从而基于解码器LSTM 224的未来预测进一步生成编码状态210。在这样的示例中,虽然未示出,状态信息206可以从网格202中的对象204向前扩展(例如,被投影),表示由解码器LSTM 224预测的对象204的未来状态信息。通过使用解码器LSTM 224(或者更一般的轨迹解码器120)的一个或更多个未来预测226在更远的未来可能更准确,因为编码状态特征210可能包含对象204先前的已知状态信息和未来的预测状态信息。
参照图2H,关于对象204E,可以将与每个时间实例相对应的编码状态特征210E、第一编码空间特征214A、第二编码空间特征216A、横向机动252和纵向机动260应用于解码器LSTM 224,并且解码器LSTM 224可以在每个帧或时间生成或计算预测N。对于每个时间实例,预测可以包括针对2D位置(例如,图2I的网格270、272或274)的空间的密度函数(或置信度值),其中可以鉴于一个或更多个变量(例如,均值,标准差,协方差,相关性等)来计算密度函数。在一些示例中,可以针对每个可能的机动来计算密度函数(其可以被称为热图)。这样,使用热图和机动置信度(至少参照图2F和2G描述),可以通过在热图上找到对应于排名最高的机动组合(例如,横向和纵向机动组合)的峰来确定每个对象(例如,车辆)的最可能的轨迹。作为示例,可以将第一组输入(例如,编码状态特征210E,第一编码空间特征214A,第二编码空间特征216A,横向机动252和纵向机动260)应用于解码器LSTM 224以更新第一隐藏状态h0,可以将第二组输入应用于解码器LSTM 224,以更新第二隐藏状态h1等等。在一些实施例中,每个隐藏状态可以被传递到解码器LSTM 224的下一层,以更新下一层的隐藏状态。另外,对应于每个未来帧或时间的预测N可以由解码器LSTM 224生成或计算。这样,可以预测第一预测N0,然后第二预测N1,依此类推直到预测Nn。在一些实施例中,解码器LSTM224可以使用对应于先前的一个或更多个帧或一个或更多个时间生成的隐藏状态来用于对应于下一未来的一个或更多个帧或一个或更多个时间的下一预测。以这种方式,除了输入集之外,解码器LSTM 224还可以使用先前由解码器LSTM 224计算出的隐藏状态来对更远的未来进行更准确的预测。
参照图2I,轨迹建模器(例如,图1的轨迹建模器122)可以使用来自解码器LSTM224的预测N并且对轨迹建模。例如,可以使用在每个帧或时间(例如在图2I中的0.2秒,1.0秒和4.0秒)计算的位置区域276(例如,位置区域276A-276C)来对轨迹建模。这样,如图所示,由于环境中的任何数量的变量,包括但不限于本文所述的那些,在未来的预测越远,位置区域276可能变得越大。一旦针对每个未来帧或时间生成了位置区域276,就可以使用位置区域276(例如,使用表示与每个机动组合相对应的密度函数的热图)来对整个轨迹进行建模。在一些示例中,可以将由解码器LSTM 224(或更一般地,轨迹解码器120)预测的位置和/或位置区域应用于网格(例如,网格270、272或274),以便从热图确定位置(例如,网格中的(x,y)坐标)。这样,由于置信度与热图相关联,并且在将热图位置与网格中的位置相关联之后,可以确定网格中的位置的置信度。以这种方式,可以确定对象相对于网格的预测的未来位置(和/或在现实世界或模拟环境中)。在一些示例中,网格270、272和274中的每一个以及对于每个彼此未来的帧或时间的每个其他网格可以是相同的网格。在进一步的示例中,网格270、272和274可以类似于图2C的当前布置网格230,或网格212A。在其他示例中,网格270、272和274可以是与用于生成预测的网格不同的网格。在任何示例中,网格270、272和274中的位置,除了对于每个彼此未来的帧或时间而言彼此互为网格之外,还可以具有与环境(例如,现实世界环境、模拟环境等等)中的位置的已知关联。这样,可以将从位置和/或位置区域276(例如,从热图)生成的建模轨迹与环境位置相关联,并且可以用于确定(例如,鉴于模拟环境中的虚拟对象的建模轨迹)车辆500(例如,自主车辆)通过现实世界环境的轨迹,或者用于通过虚拟或模拟环境(例如,根据建模的轨迹)控制虚拟对象。
在一些示例中,使用热图(例如,由解码器LSTM 224计算的密度函数并在图2I中表示为示例),可以对给定的机动采样轨迹。例如,使用预测的机动(例如,横向和/或纵向),可以使用由解码器LSTM 224计算出的概率函数的密度对轨迹进行采样(例如,使用均值,协方差,标准分布等)。在这样的示例中,如果采用大量样本轨迹,则大多数采样轨迹可能与最可能的轨迹相似,但有些可能不同。这样,例如当根据这些采样的轨迹控制虚拟对象时,虚拟对象所遵循的轨迹可能更现实,因为它们可能并不总是最可能的轨迹(例如,虚拟对象的轨迹可能是与最可能的轨迹不同的一条轨迹,从而类似于人的天性和现实的现实世界条件)。
在进一步的实施例中,决策树修剪可以用于评估未来的多个移动,其中每个移动可以对应于横向和/或纵向机动。例如,常规方法可能已经评估了将来的每个可能移动,但是由于对应于机动预测的置信度值,某些移动可能会从可能移动的树中修剪。这样可以减少计算开销,同时仍然可以评估将来最可能的移动。
再次参照图1,由轨迹建模器122输出的轨迹可以以多种方式应用。例如,对象的轨迹可以被应用于车辆500的驱动堆栈124(例如,自主驾驶软件堆栈,ADAS软件堆栈等),以供车辆500用于执行一个或更多个操作。例如,驱动堆栈124的感知层可以使用轨迹来确定环境中对象的先前、当前和未来位置,以更新世界模型。驱动堆栈124的世界模型管理器可以使用轨迹来更新世界模型以包括对象的过去、当前和/或先前位置。驱动堆栈124的规划层可以使用对象的过去、当前和/或先前位置来确定车辆500通过环境的一条或更多条路径或轨迹。驱动堆栈124的控制层可以使用来自驱动堆栈124的感知层、世界模型管理器、规划层和/或其他层的信息来确定车辆500的一个或更多个控件以根据针对车辆500确定的轨迹或路径来控制车辆。这样,环境中对象的预测轨迹对于与车辆500的驱动堆栈124的多个不同层中的任何一个对应的车辆500的多个操作中的任何一个可能都是有用的。
作为另一个示例,来自轨迹建模器122的轨迹可以由模拟器126使用。在一些实施例中,模拟器126可以类似于2019年3月27日提交美国非临时申请No.16/366,875中描述的那样,其全部内容通过引用并入本文。因此,从轨迹建模器122输出的轨迹可以用于在模拟或虚拟环境中控制一个或更多个对象(例如,车辆,行人,自行车,水船等)。使用过程100,轨迹可以用于以更自然、准确的方式控制对象,从而使得模拟环境对于测试或训练而言更加真实。另外,在一些示例中,可以训练模拟器126以模拟人类驾驶车辆、自主车辆或其组合。这可以用作分析工具,以研究从人类驾驶车辆到人类驾驶和自主车辆的组合到主要或仅自主车辆的过渡。
现在参照图3和图4,本文描述的方法300和400的每个框包括可以使用硬件、固件和/或软件的任何组合来执行的计算过程。例如,可以通过处理器执行存储在存储器中的指令来执行各种功能。方法300和400还可以体现为存储在计算机存储介质上的计算机可用指令。方法300和400可以由独立应用程序、服务或托管服务(独立或与另一托管服务组合)或另一产品的插件提供,仅举几例。另外,通过示例的方式,参照图2的模型200描述了方法300和400。但是,这些方法可以附加地或替代地由任何一个系统或系统的任何组合来执行,包括但不限于本文所述的那些。
图3是示出了根据本公开的一些实施例的用于计算对象机动的方法300的流程图。在框B302,方法300包括在空间布置内定位编码状态特征。例如,网格212可以被填充为包括与每个对象204相对应的每个编码状态特征210。
在框B304,方法300包括使用LSTM网络通过输入表示在第一方向上遍历的空间布置的第一数据来计算第一编码空间特征。例如,可通过将表示在第一方向(例如,左上至右下)遍历的网格212的数据应用于前向RNN,来使用前向RNN计算第一编码空间特征214。
在框B306,方法300包括使用LSTM网络或另一个LSTM网络通过输入表示在不同于第一方向的第二方向上遍历的空间布置的第二数据来计算第二编码空间特征。例如,可以通过将表示在第二方向(例如,从右下到左上)遍历的网格212的数据应用于后向RNN,来使用后向RNN计算第二编码空间特征216。
在框B308,方法300包括针对每个对象计算与发生多个对象机动的可能性相对应的置信度值。例如,可以使用与对象相对应的编码状态特征210、第一编码空间特征214和第二编码空间特征216为每个对象计算横向机动116和纵向机动118。在一些示例中,可以针对每个可能的纵向机动118和/或每个可能的横向机动116计算置信度。
现在参照图4,图4是示出了根据本公开的一些实施例的用于使用未来预测计算对象的编码状态特征的方法400的流程图。在框B402,方法400包括在第一时间实例处将表示环境中对象的过去位置和当前位置的第一数据输入到LSTM网络。例如,可以将与对象204相对应的状态信息206作为输入提供给编码器LSTM 208的实例。
在框B404,方法400包括使用LSTM网络计算与在第一时间实例处的对象相对应的第一编码状态特征。例如,可以为对象204计算编码状态特征210,其中编码状态特征210可以对应于第一时间实例。
在框B406,方法400包括在第一时间实例处计算编码空间特征。例如,可以在第一时间实例处计算编码空间特征(例如214和/或216)。
在框B408,方法400包括预测对象在环境中的未来位置。例如,编码空间特征、编码状态特征210和/或一个或更多个预测机动(例如,横向机动116和/或纵向机动118)可以用于(例如由解码器LSTM 224)预测对象在环境中的未来位置。
在框B410,方法400包括在第二时间实例处将表示更新的一个或更多个过去位置、新的当前位置和未来位置的第二数据输入到LSTM网络。例如,可以将模型200的一个或更多个预测226反馈到该对象的状态信息206,并且除了新的当前位置之外,还可以将一个或更多个预测226以及更新的一个或更多个过去位置作为输入提供给编码器LSTM 208的实例。
在框B412,方法400包括使用LSTM网络计算与第二时间实例处的对象相对应的第二编码状态特征。例如,可以使用一个或更多个预测226,由对应于第二时间实例(例如,在第一时间实例之后)的编码器LSTM 208计算的第二更新的编码状态特征210。
示例自主车辆
图5A为根据本公开一些实施例的示例自主车辆500的图示。自主车辆500(可替代地,在本文称为“车辆500”)可以包括但不限于乘用车,例如汽车、卡车、公共汽车、第一响应车、穿梭车、电动或机动自行车、摩托车、消防车、警车、救护车、船、工程车辆、水下航行器、无人驾驶飞机和/或另一种类型的车辆(例如,无人驾驶和/或可容纳一名或更多名乘客)。自主车辆通常按照美国运输部的一个部门——国家公路交通安全管理局(NFITSA)以及汽车工程师协会(SAE)“Taxonomy and Definitions for Terms Related to DrivingAutomation Systems for On-Road Motor Vehicles”(2018年6月15日发布的标准No.J3016-201806,2016年9月30日发布的标准No.J3016-201609,以及该标准的先前和未来的版本)定义的自动化级别进行描述。车辆500可能够实现符合自主驾驶级别的3级-5级中的一个或更多个的功能。例如,取决于实施例,车辆500可能够实现条件自动化(3级)、高自动化(4级)和/或全自动化(5级)。
车辆500可以包括诸如底盘、车身、车轮(例如2个、4个、6个、8个、18个等)、轮胎、车轴之类的部件以及车辆的其他部件。车辆500可以包括推进系统550,例如内燃机、混合动力发电厂、全电动发动机和/或另一种推进系统类型。推进系统550可以连接到可以包括变速器的车辆500的传动系以便实现车辆500的推进。可以响应于接收到来自油门/加速器552的信号而控制推进系统550。
可以包括方向盘的转向(steering)系统554可以用来在推进系统550操作时(例如在车辆运动时)使车辆500转向(例如沿着希望的路径或路线)。转向系统554可以接收来自转向执行器556的信号。对于全自动(5级)功能而言,方向盘可以是可选的。
制动传感器系统546可以用来响应于接收到来自制动执行器548和/或制动传感器的信号而操作车辆制动器。
可以包括一个或更多个片上系统(SoC)504(图5C)和/或一个或更多个GPU的一个或更多个控制器536可以向车辆500的一个或更多个部件和/或系统提供(例如表示命令的)信号。例如,一个或更多个控制器可以发送经由一个或更多个制动执行器548操作车辆制动器、经由一个或更多个转向执行器556操作转向系统554、经由一个或更多个油门/加速器552操作推进系统550的信号。一个或更多个控制器536可以包括一个或更多个板载(例如集成)计算设备(例如超级计算机),所述计算设备处理传感器信号并且输出操作命令(例如表示命令的信号),以实现自主驾驶和/或辅助人类驾驶员驾驶车辆500。一个或更多个控制器536可以包括用于自主驾驶功能的第一控制器536、用于功能性安全功能的第二控制器536、用于人工智能功能(例如计算机视觉)的第三控制器536、用于信息娱乐功能的第四控制器536、用于紧急情况下的冗余的第五控制器536和/或其他控制器。在一些示例中,单个控制器536可以处理上述功能中的两个或更多,两个或更多控制器536可以处理单个功能,和/或其任意组合。
一个或更多个控制器536可以响应于接收自一个或更多个传感器的传感器数据(例如传感器输入),提供用于控制车辆500的一个或更多个部件和/或系统的信号。传感器数据可以接收自例如且不限于全球导航卫星系统传感器558(例如全球定位系统传感器)、RADAR传感器560、超声传感器562、LIDAR传感器564、惯性测量单元(IMU)传感器566(例如加速度计、陀螺仪、磁罗盘、磁力计等)、麦克风596、立体照相机568、广角照相机570(例如鱼眼照相机)、红外照相机572、环绕照相机574(例如360度照相机)、远程和/或中程照相机598、速度传感器544(例如用于测量车辆500的速率)、振动传感器542、转向传感器540、制动传感器(例如作为制动传感器系统546的部分)和/或其他传感器类型。
控制器536中的一个或更多个可以接收来自车辆500的仪表组532的输入(例如由输入数据表示),并且经由人机接口(HMI)显示器534、听觉信号器、扬声器和/或经由车辆500的其他部件提供输出(例如输出数据、显示数据等表示的)。这些输出可以包括诸如车辆速度、速率、时间、地图数据(例如图5C的HD地图522)、位置数据(例如,车辆500例如在地图上的位置)、方向、其他车辆的位置(例如占用网格)之类的信息,如控制器536所感知的关于对象和对象状态的信息等等。例如,HMI显示器534可以显示关于一个或更多个对象(例如街道指示牌、警示牌、交通灯变化等)的存在性的信息和/或关于车辆已经做出、正在做出或者将会做出的驾驶机动的信息(例如现在变道、两英里后离开34B,等等)。
车辆500进一步包括网络接口524,其可以使用一个或更多个无线天线526和/或调制解调器通过一个或更多个网络通信。例如,网络接口524可能够通过LTE、WCDMA、UMTS、GSM、CDMA2000等通信。一个或更多个无线天线526也可以使用诸如蓝牙、蓝牙LE、Z波、ZigBee等等之类的一个或更多个局域网和/或诸如LoRaWAN、SigFox等等之类的一个或更多个低功率广域网(LPWAN)实现环境中的对象(例如车辆、移动设备等等)之间的通信。
图5B为根据本公开一些实施例的用于图5A的示例自主车辆500的照相机位置和视场的示例。照相机和各自的视场是一个示例实施例,并不意图是限制性的。例如,可以包括附加的和/或可替换的照相机,和/或这些照相机可以位于车辆500上的不同位置。
用于照相机的照相机类型可以包括但不限于可以适于与车辆500的部件和/或系统一起使用的数字照相机。所述照相机可以在汽车安全完整性级别(ASIL)B下和/或在另一个ASIL下操作。照相机类型可以具有任何图像捕获率,例如60帧每秒(fps)、520fps、240fps等等,这取决于实施例。照相机可能够使用滚动快门、全局快门、另一种类型的快门或者其组合。在一些示例中,滤色器阵列可以包括红白白白(RCCC)滤色器阵列、红白白蓝(RCCB)滤色器阵列、红蓝绿白(RBGC)滤色器阵列、Foveon X3滤色器阵列、拜耳传感器(RGGB)滤色器阵列、单色传感器滤色器阵列和/或另一种类型的滤色器阵列。在一些实施例中,诸如具有RCCC、RCCB和/或RBGC滤色器阵列的照相机之类的清晰像素照相机可以用在提高光敏感度的努力中。
在一些示例中,所述照相机中的一个或更多个可以用来执行高级驾驶员辅助系统(ADAS)功能(例如作为冗余或故障安全设计的部分)。例如,可以安装多功能单目照相机以提供包括车道偏离警告、交通指示牌辅助和智能前照灯控制在内的功能。所述照相机中的一个或更多个(例如全部照相机)可以同时记录和提供图像数据(例如视频)。
所述照相机中的一个或更多个可以安装在诸如定制设计的(3-D打印的)组件之类的安装组件中,以便切断可能干扰照相机的图像数据捕获能力的杂散光和来自汽车内的反射(例如挡风玻璃镜中反射的来自仪表板的反射)。关于翼镜安装组件,翼镜组件可以是定制3-D打印的,使得照相机安装板匹配翼镜的形状。在一些示例中,一个或更多个照相机可以集成到翼镜中。对于侧视照相机而言,一个或更多个照相机也可以集成到驾驶室每个拐角的四根柱子内。
具有包括车辆500前面的环境部分的视场的照相机(例如前置照相机)可以用于环视,以帮助识别前向路径和障碍,以及在一个或更多个控制器536和/或控制SoC的帮助下辅助提供对于生成占用网格和/或确定优选车辆路径至关重要的信息。前置照相机可以用来执行许多与LIDAR相同的ADAS功能,包括紧急制动、行人检测和碰撞避免。前置照相机也可以用于ADAS功能和系统,包括车道偏离警告(“LDW”)、自主巡航控制(“ACC”),和/或诸如交通指示牌识别之类的其他功能。
各种各样的照相机可以用于前置配置中,包括例如包括CMOS(互补金属氧化物半导体)彩色成像仪在内的单目照相机平台。另一个示例可以是广角照相机570,其可以用来感知从周边进入视野的对象(例如行人、十字路口交通或者自行车)。尽管图5B中图示出仅仅一个广角照相机,但是在车辆500上可以存在任意数量的广角照相机570。此外,远程照相机598(例如长视立体照相机对)可以用于基于深度的对象检测,尤其是用于尚未针对其训练神经网络的对象。远程照相机598也可以用于对象检测和分类以及基本的对象跟踪。
一个或更多个立体照相机568也可以包括在前置配置中。立体照相机568可以包括集成控制单元,该单元包括可扩展处理单元,其可以提供在单个芯片上具有集成的CAN或以太网接口的多核微处理器和可编程逻辑(FPGA)。这样的单元可以用来生成车辆环境的3-D地图,包括针对图像中的所有点的距离估计。可替代的立体照相机568可以包括紧凑型立体视觉传感器,其可以包括两个照相机镜头(左右各一个)以及可以测量从车辆到目标对象的距离并且使用生成的信息(例如元数据)激活自主紧急制动和车道偏离警告功能的图像处理芯片。除了本文所描述的那些之外或者可替代地,可以使用其他类型的立体照相机568。
具有包括车辆500的侧面的环境部分的视场的照相机(例如侧视照相机)可以用于环视,提供用来创建和更新占用网格以及生成侧撞击碰撞警告的信息。例如,环绕照相机574(例如如图5B中所示的四个环绕照相机574)可以置于车辆500上。环绕照相机574可以包括广角照相机570、鱼眼照相机、360度照相机和/或类似物。四个示例,四个鱼眼照相机可以置于车辆的前面、后面和侧面。在一种可替代的布置中,车辆可以使用三个环绕照相机574(例如左边、右边和后面),并且可以利用一个或更多个其他照相机(例如前向照相机)作为第四环视照相机。
具有包括车辆500的后面的环境部分的视场的照相机(例如后视照相机)可以用于辅助停车、环视、后面碰撞警告以及创建和更新占用网格。可以使用各种各样的照相机,包括但不限于也适合作为如本文所描述的前置照相机(例如远程和/或中程照相机598、立体照相机568、红外照相机572等等)的照相机。
图5C为根据本公开一些实施例的用于图5A的示例自主车辆500的示例系统架构的框图。应当理解,这种布置和本文描述的其他布置仅仅作为示例而被阐述。除了所示的那些之外或者代替它们的是,可以使用其他的布置和元素(例如机器、接口、功能、顺序、功能分组等等),并且一些元素可以完全省略。进一步,许多本文描述的元素是功能实体,其可以实现为分立的或分布式部件或者结合其他部件实现,以及以任何适当的组合和位置实现。本文描述为由实体执行的各个功能可以通过硬件、固件和/或软件实现。例如,各个功能可以通过处理器执行存储在内存中的指令而实现。
图5C中车辆500的部件、特征和系统中的每一个被图示为经由总线502连接。总线502可以包括控制器区域网络(CAN)数据接口(可替代地,本文称为“CAN总线”)。CAN可以是车辆500内部的网络,用来辅助控制车辆500的各种特征和功能,例如制动器、加速、制动、转向、挡风玻璃雨刷等等的驱动。CAN总线可以被配置为具有数十或者甚至数百个节点,每个节点具有其自己的唯一标识符(例如CAN ID)。可以读取CAN总线以找到方向盘角度、地速、每分钟发动机转速(RPM)、按钮位置和/或其他车辆状态指示符。CAN总线可以是ASIL B兼容的。
尽管这里将总线502描述为CAN总线,但是这并不意图是限制性的。例如,除了CAN总线之外或者可替代地,可以使用FlexRay和/或以太网。此外,尽管用单条线来表示总线502,但是这并不意图是限制性的。例如,可以存在任意数量的总线502,其可以包括一条或更多条CAN总线、一条或更多条FlexRay总线、一条或更多条以太网总线和/或一条或更多条使用不同协议的其他类型的总线。在一些示例中,两条或更多总线502可以用来执行不同的功能,和/或可以用于冗余。例如,第一总线502可以用于碰撞避免功能,并且第二总线502可以用于驱动控制。在任何示例中,每条总线502可以与车辆500的任何部件通信,并且两条或更多总线502可以与相同的部件通信。在一些示例中,车辆内的每个SoC 504、每个控制器536和/或每个计算机可以有权访问相同的输入数据(例如来自车辆500的传感器的输入),并且可以连接到诸如CAN总线之类的公共总线。
车辆500可以包括一个或更多个控制器536,例如本文关于图5A所描述的那些控制器。控制器536可以用于各种各样的功能。控制器536可以耦合到车辆500的任何其他不同的部件和系统,并且可以用于车辆500的控制、车辆500的人工智能、用于车辆500的信息娱乐和/或类似物。
车辆500可以包括一个或更多个片上系统(SoC)504。SoC 504可以包括CPU 506、GPU 508、处理器510、高速缓存512、加速器514、数据存储516和/或未图示出的其他部件和特征。在各种各样的平台和系统中,SoC 504可以用来控制车辆500。例如,一个或更多个SoC504可以在系统(例如车辆500的系统)中与HD地图522结合,所述HD地图可以经由网络接口524从一个或更多个服务器(例如图5D的一个或更多个服务器578)获得地图刷新和/或更新。
CPU 506可以包括CPU簇或者CPU复合体(可替代地,本文称为“CCPLEX”)。CPU 506可以包括多个核和/或L2高速缓存。例如,在一些实施例中,CPU 506在一致性多处理器配置中可以包括八个核。在一些实施例中,CPU 506可以包括四个双核簇,其中每个簇具有专用的L2高速缓存(例如2MB L2高速缓存)。CPU 506(例如CCPLEX)可以被配置为支持同时簇操作,使得CPU 506的簇的任意组合能够在任何给定时间是活动的。
CPU 506可以实现包括以下特征中的一个或更多个的功率管理能力:各硬件块在空闲时可以自动进行时钟门控以节省动态功率;由于WFI/WFE指令的执行,每个核时钟可以在该核不主动地执行指令时进行门控;每个核可以独立地进行功率门控;当所有核都进行时钟门控或者功率门控时,可以独立地对每个核簇进行时钟门控;和/或当所有核都进行功率门控时,可以独立地对每个核簇进行功率门控。CPU 506可以进一步实现用于管理功率状态的增强算法,其中指定允许的功率状态和期望的唤醒时间,并且硬件/微代码为所述核、簇和CCPLEX确定要进入的最佳的功率状态。处理核可以在软件中支持简化的功率状态进入序列,该工作被卸载到微代码。
GPU 508可以包括集成的GPU(可替代地,本文称为“iGPU”)。GPU 508可以是可编程的,并且对于并行工作负载而言是高效的。在一些示例中,GPU 508可以使用增强张量指令集。GPU 508可以包括一个或更多个流式微处理器,其中每个流式微处理器可以包括L1高速缓存(例如具有至少96KB存储能力的L1高速缓存),并且这些流式微处理器中的两个或更多可以共享L2高速缓存(例如具有512KB存储能力的L2高速缓存)。在一些实施例中,GPU 508可以包括至少八个流式微处理器。GPU 508可以使用计算应用编程接口(API)。此外,GPU508可以使用一个或更多个并行计算平台和/或编程模型(例如NVIDIA的CUDA)。
在汽车和嵌入式使用的情况下,可以对GPU 508进行功率优化以实现最佳性能。例如,可以在鳍式场效应晶体管(FinFET)上制造GPU 508。然而,这并不意图是限制性的,并且GPU 508可以使用其他半导体制造工艺来制造。每个流式微处理器可以合并划分成多个块的若干混合精度处理核。例如且非限制性地,可以将64个PF32核和32个PF64核划分成四个处理块。在这样的示例中,每个处理块可以分配16个FP32核、8个FP64核、16个INT32核、用于深层学习矩阵算术的两个混合精度NVIDIA张量核、L0指令高速缓存、线程束(warp)调度器、分派单元和/或64KB寄存器文件。此外,流式微处理器可以包括独立的并行整数和浮点数据路径,以利用计算和寻址计算的混合提供工作负载的高效执行。流式微处理器可以包括独立线程调度能力,以允许实现并行线程之间的更细粒度的同步和协作。流式微处理器可以包括组合的L1数据高速缓存和共享内存单元,以便在简化编程的同时提高性能。
GPU 508可以包括在一些示例中提供大约900GB/s的峰值内存带宽的高带宽内存(HBM)和/或16GB HBM2内存子系统。在一些示例中,除了HBM内存之外或者可替代地,可以使用同步图形随机存取存储器(SGRAM),例如第五代图形双倍数据速率同步随机存取存储器(GDDR5)。
GPU 508可以包括统一内存技术,其包括访问计数器以允许内存页面更精确地迁移到最频繁地访问它们的处理器,从而提高处理器之间共享的内存范围的效率。在一些示例中,地址转换服务(ATS)支持可以用来允许GPU 508直接访问CPU 506页表。在这样的示例中,当GPU 508内存管理单元(MMU)经历遗漏时,可以将地址转换请求传输至CPU 506。作为响应,CPU 506可以在其页表中寻找用于地址的虚拟-物理映射,并且将转换传输回GPU508。这样,统一内存技术可以允许单个统一虚拟地址空间用于CPU 506和GPU 508二者的内存,从而简化了GPU 508编程和将应用程序移(port)到GPU 508。
此外,GPU 508可以包括访问计数器,其可以跟踪GPU 508访问其他处理器的内存的频率。访问计数器可以帮助确保内存页面移至最频繁地访问这些页面的处理器的物理内存。
SoC 504可以包括任意数量的高速缓存512,包括本文描述的那些高速缓存。例如,高速缓存512可以包括CPU 506和GPU 508二者可用的L3高速缓存(例如,其连接到CPU 506和GPU 508二者)。高速缓存512可以包括回写高速缓存,其可以例如通过使用高速缓存一致性协议(例如MEI、MESI、MSI等)跟踪行的状态。取决于实施例,L3高速缓存可以包括4MB或者更多,但是也可以使用更小的高速缓存大小。
SoC 504可以包括一个或更多个加速器514(例如硬件加速器、软件加速器或者其组合)。例如,SoC 504可以包括硬件加速簇,其可以包括优化的硬件加速器和/或大型片上内存。该大型片上内存(例如4MB SRAM)可以使得硬件加速簇能够加速神经网络和其他计算。硬件加速簇可以用来补充GPU 508,并且卸载GPU 508的一些任务(例如释放GPU 508的更多周期以用于执行其他任务)。作为一个示例,加速器514可以用于足够稳定以易于控制加速的有针对性的工作负载(例如感知、卷积神经网络(CNN)等等)。当在本文中使用时,术语“CNN”可以包括所有类型的CNN,包括基于区域的或者区域卷积神经网络(RCNN)和快速RCNN(例如用于对象检测)。
加速器514(例如硬件加速簇)可以包括深度学习加速器(DLA)。DLA可以包括可以被配置成为深度学习应用和推理提供额外的每秒10万亿次操作的一个或更多个张量处理单元(TPU)。TPU可以是被配置为执行图像处理功能(例如用于CNN、RCNN等)且针对执行图像处理功能而优化的加速器。DLA可以进一步针对特定的一组神经网络类型和浮点运算以及推理进行优化。DLA的设计可以比通用GPU提供每毫米更高的性能,并且远远超过CPU的性能。TPU可以执行若干功能,包括单实例卷积函数,支持例如用于特征和权重二者的INT8、INT16和FP16数据类型,以及后处理器功能。
DLA可以在处理的或者未处理的数据上针对各种各样的功能中的任何功能快速且高效地执行神经网络,尤其是CNN,例如且不限于:用于使用来自照相机传感器的数据进行对象识别和检测的CNN;用于使用来自照相机传感器的数据进行距离估计的CNN;用于使用来自麦克风的数据进行应急车辆检测和识别与检测的CNN;用于使用来自照相机传感器的数据进行面部识别和车主识别的CNN;和/或用于安全和/或安全相关事件的CNN。
DLA可以执行GPU 508的任何功能,并且通过使用推理加速器,例如,设计者可以使DLA或GPU 508针对任何功能。例如,设计者可以将CNN的处理和浮点运算聚焦在DLA上,并且将其他功能留给GPU 508和/或其他加速器514。
加速器514(例如硬件加速簇)可以包括可编程视觉加速器(PVA),其在本文中可以可替代地称为计算机视觉加速器。PVA可以被设计和配置为加速用于高级驾驶员辅助系统(ADAS)、自主驾驶和/或增强现实(AR)和/或虚拟现实(VR)应用的计算机视觉算法。PVA可以提供性能与灵活性之间的平衡。例如,每个PVA可以包括例如且不限于任意数量的精简指令集计算机(RISC)核、直接内存访问(DMA)和/或任意数量的向量处理器。
RISC核可以与图像传感器(例如本文描述的任何照相机的图像传感器)、图像信号处理器和/或类似物交互。这些RISC核中的每一个可以包括任意数量的内存。取决于实施例,RISC核可以使用若干协议中的任何协议。在一些示例中,RISC核可以执行实时操作系统(RTOS)。RISC核可以使用一个或更多个集成电路设备、专用集成电路(ASIC)和/或存储设备实现。例如,RISC核可以包括指令高速缓存和/或紧密耦合的RAM。
DMA可以使得PVA的部件能够独立于CPU 506访问系统内存。DMA可以支持用来向PVA提供优化的任意数量的特征,包括但不限于支持多维寻址和/或循环寻址。在一些示例中,DMA可以支持高达六个或更多维度的寻址,其可以包括块宽度、块高度、块深度、水平块步进、竖直块步进和/或深度步进。
向量处理器可以是可编程处理器,其可以被设计为高效且灵活地执行用于计算机视觉算法的编程并且提供信号处理能力。在一些示例中,PVA可以包括PVA核和两个向量处理子系统分区。PVA核可以包括处理器子系统、一个或更多个DMA引擎(例如两个DMA引擎)和/或其他外围设备。向量处理子系统可以作为PVA的主处理引擎而操作,并且可以包括向量处理单元(VPU)、指令高速缓存和/或向量内存(例如VMEM)。VPU核可以包括数字信号处理器,诸如例如单指令多数据(SIMD)、超长指令字(VLIW)数字信号处理器。SIMD和VLIW的组合可以增强吞吐量和速率。
向量处理器中的每一个可以包括指令高速缓存并且可以耦合到专用内存。结果,在一些示例中,向量处理器中的每一个可以被配置为独立于其他向量处理器执行。在其他示例中,包括在特定PVA中的向量处理器可以被配置为采用数据并行化。例如,在一些实施例中,包括在单个PVA中的多个向量处理器可以执行相同的计算机视觉算法,但是在图像的不同区域上执行。在其他示例中,包括在特定PVA中的向量处理器可以在相同的图像上同时执行不同的计算机视觉算法,或者甚至在序列图像或者图像的部分上执行不同的算法。除其他的以外,任意数量的PVA可以包括在硬件加速簇中,并且任意数量的向量处理器可以包括在这些PVA中的每一个中。此外,PVA可以包括附加的纠错码(ECC)内存,以增强总体系统安全性。
加速器514(例如硬件加速簇)可以包括片上计算机视觉网络和SRAM,以提供用于加速器514的高带宽、低延迟SRAM。在一些示例中,片上内存可以包括由例如且不限于八个现场可配置的内存块组成的至少4MB SRAM,其可以由PVA和DLA二者访问。每对内存块可以包括高级外围总线(APB)接口、配置电路系统、控制器和复用器。可以使用任何类型的内存。PVA和DLA可以经由向PVA和DLA提供高速内存访问的主干(backbone)访问内存。主干可以包括(例如使用APB)将PVA和DLA互连到内存的片上计算机视觉网络。
片上计算机视觉网络可以包括在传输任何控制信号/地址/数据之前确定PVA和DLA二者都提供就绪且有效的信号的接口。这样的接口可以提供用于传输控制信号/地址/数据的单独相位和单独信道,以及用于连续数据传输的突发式通信。这种类型的接口可以符合ISO 26262或者IEC 612508标准,但是也可以使用其他标准和协议。
在一些示例中,SoC 504可以包括例如在2018年8月10日提交的美国专利申请No.16/101,1232中描述的实时光线追踪硬件加速器。该实时光线追踪硬件加速器可以用来快速且高效地确定(例如世界模型内的)对象的位置和范围,以便生成实时可视化模拟,以用于RADAR信号解释、用于声音传播合成和/或分析、用于SONAR系统模拟、用于一般波传播模拟、用于为了定位和/或其他功能的目的与LIDAR数据相比较和/或用于其他用途。
加速器514(例如硬件加速器簇)具有广泛的自主驾驶用途。PVA可以是可编程视觉加速器,其可以用于ADAS和自主车辆中的关键处理阶段。PVA的能力是需要可预测处理、低功率和低延迟的算法域的良好匹配。换言之,PVA在半密集或者密集规则计算上,甚至在需要具有低延迟和低功率的可预测运行时间的小数据集上都表现良好。因此,在用于自主车辆的平台的背景下,PVA被设计为运行经典计算机视觉算法,因为它们在对象检测和整数数学运算方面很有效。
例如,根据该技术的一个实施例,PVA用来执行计算机立体视觉。在一些示例中,可以使用基于半全局匹配的算法,但是这并不意图是限制性的。许多用于3-5级自主驾驶的应用都需要即时运动估计/立体匹配(例如来自运动的结构、行人识别、车道检测等等)。PVA可以在来自两个单目照相机的输入上执行计算机立体视觉功能。
在一些示例中,PVA可以用来执行密集的光流。根据过程原始RADAR数据(例如使用4D快速傅立叶变换)以提供经处理的RADAR。在其他示例中,PVA用于飞行时间深度处理,其例如通过处理原始飞行时间数据以提供经处理的飞行时间数据。
DLA可以用来运行任何类型的网络以增强控制和驾驶安全性,包括例如输出用于每个对象检测的置信度度量的神经网络。这样的置信度值可以解释为概率,或者解释为提供每个检测与其他检测相比的相对“权重”。该置信度值使得系统能够做出关于哪些检测应当被认为是真阳性检测而不是假阳性检测的进一步决策。例如,系统可以为置信度设置阈值,并且仅仅将超过阈值的检测看作真阳性检测。在自动紧急制动(AEB)系统中,假阳性检测会使得车辆自动地执行紧急制动,这显然是不希望的。因此,只有最确信的检测才应当被认为是AEB的触发因素。DLA可以运行用于回归置信度值的神经网络。该神经网络可以将至少一些参数子集作为其输入,例如边界框维度,(例如从另一个子系统)获得的地平面估计,与车辆500取向、距离相关的惯性测量单元(IMU)传感器566输出,从神经网络和/或其他传感器(例如LIDAR传感器564或RADAR传感器560)获得的对象的3D位置估计等。
SoC 504可以包括一个或更多个数据存储516(例如内存)。数据存储516可以是SoC504的片上内存,其可以存储要在GPU和/或DLA上执行的神经网络。在一些示例中,为了冗余和安全,数据存储516可以容量足够大以存储神经网络的多个实例。数据存储512可以包括L2或L3高速缓存512。对数据存储516的引用可以包括对与如本文所描述的PVA、DLA和/或其他加速器514关联的内存的引用。
SoC 504可以包括一个或更多个处理器510(例如嵌入式处理器)。处理器510可以包括启动和功率管理处理器,其可以是用于处理启动功率和管理功能以及有关安全实施的专用处理器和子系统。启动和功率管理处理器可以是SoC 504启动序列的一部分,并且可以提供运行时间功率管理服务。启动功率和管理处理器可以提供时钟和电压编程、辅助系统低功率状态转换、SoC 504热和温度传感器管理和/或SoC 504功率状态管理。每个温度传感器可以实现为环形振荡器,其输出频率与温度成比例,并且SoC 504可以使用环形振荡器检测CPU 506、GPU 508和/或加速器514的温度。如果确定温度超过阈值,那么启动和功率管理处理器可以进入温度故障例程并且将SoC 504置于较低功率状态和/或将车辆500置于司机安全停车模式(例如使车辆500安全停车)。
处理器510可以进一步包括可以用作音频处理引擎的一组嵌入式处理器。音频处理引擎可以是一种音频子系统,其允许实现对于通过多个接口的多声道音频的完全硬件支持以及一系列广泛而灵活的音频I/O接口。在一些示例中,音频处理引擎是具有带有专用RAM的数字信号处理器的专用处理器核。
处理器510可以进一步包括始终在处理器上的引擎,其可以提供必要的硬件特征以支持低功率传感器管理和唤醒用例。该始终在处理器上的引擎可以包括处理器核、紧密耦合的RAM、支持外围设备(例如定时器和中断控制器)、各种I/O控制器外围设备和路由逻辑。
处理器510可以进一步包括安全簇引擎,其包括处理汽车应用的安全管理的专用处理器子系统。安全簇引擎可以包括两个或更多处理器核、紧密耦合的RAM、支持外围设备(例如定时器、中断控制器等等)和/或路由逻辑。在安全模式下,所述两个或更多核可以操作于锁步模式下,并且用作具有检测它们的操作之间的任何差异的比较逻辑的单核。
处理器510可以进一步包括实时照相机引擎,其可以包括用于处理实时照相机管理的专用处理器子系统。
处理器510可以进一步包括高动态范围信号处理器,其可以包括图像信号处理器,该图像信号处理器是一种硬件引擎,该硬件引擎是照相机处理管线的部分。
处理器510可以包括可以是(例如微处理器上实现的)处理块的视频图像复合器,其实现视频回放应用程序产生用于播放器窗口的最终图像所需的视频后处理功能。视频图像复合器可以对广角照相机570、环绕照相机574和/或对驾驶室内监控照相机传感器执行镜头畸变校正。驾驶室内监控照相机传感器优选地由运行在高级SoC的另一个实例上的神经网络监控,被配置为识别驾驶室内事件并且相对应地做出响应。驾驶室内系统可以执行唇读,以激活移动电话服务并拨打电话、口述电子邮件、改变车辆目的地、激活或改变车辆的信息娱乐系统和设置或者提供语音激活的网上冲浪。某些功能仅在车辆操作于自主模式下时对于驾驶员可用,并且在其他情况下被禁用。
视频图像复合器可以包括用于空间和时间降噪的增强时间降噪。例如,在视频中出现运动的情况下,降噪适当地对空间信息加权,降低邻近帧提供的信息的权重。在图像或者图像的部分不包括运动的情况下,视频图像复合器执行的时间降噪可以使用来自先前的图像的信息以降低当前图像中的噪声。
视频图像复合器也可以被配置为对输入立体镜头帧执行立体校正。当操作系统桌面正在使用并且GPU 508无需连续地渲染(render)新的表面时,视频图像复合器可以进一步用于用户接口组成。甚至在GPU 508上电并且激活,进行3D渲染时,视频图像复合器可以用来减轻GPU 508的负担以提高性能和响应能力。
SoC 504可以进一步包括用于从照相机接收视频和输入的移动行业处理器接口(MIPI)照相机串行接口、高速接口和/或可以用于照相机和有关像素输入功能的视频输入块。SoC 504可以进一步包括可以由软件控制并且可以用于接收未提交到特定角色的I/O信号的输入/输出控制器。
SoC 504可以进一步包括大范围的外围设备接口,以使能与外围设备、音频编解码器、功率管理和/或其他设备通信。SoC 504可以用来处理来自(通过千兆多媒体串行链路和以太网连接的)照相机、传感器(例如可以通过以太网连接的LIDAR传感器564、RADAR传感器560等等)的数据,来自总线502的数据(例如车辆500的速率、方向盘位置等等),来自(通过以太网或CAN总线连接的)GNSS传感器558的数据。SoC 504可以进一步包括专用高性能大容量存储控制器,其可以包括它们自己的DMA引擎,并且其可以用来从日常数据管理任务中释放CPU 506。
SoC 504可以是具有灵活架构的端到端平台,该架构跨越自动化3-5级,从而提供利用和高效使用计算机视觉和ADAS技术以实现多样性和冗余、连同深度学习工具一起提供用于灵活可靠驾驶软件堆栈的平台的综合功能安全架构。SoC 504可以比常规的系统更快、更可靠,甚至更加能量高效和空间高效。例如,当与CPU 506、GPU 508和数据存储516结合时,加速器514可以提供用于3-5级自主车辆的快速高效平台。
因此该技术提供了不能通过常规系统实现的能力和功能。例如,计算机视觉算法可以在CPU上执行,这些CPU可以使用诸如C编程语言之类的高级编程语言配置为跨各种各样的视觉数据执行各种各样的处理算法。然而,CPU常常不能满足许多计算机视觉应用的性能要求,诸如与例如执行时间和功耗有关的那些要求。特别地,许多CPU不能实时地执行复杂的对象检测算法,这是车载ADAS应用的要求和实用3-5级自主车辆的要求。
与常规系统形成对比的是,通过提供CPU复合体、GPU复合体和硬件加速簇,本文描述的技术允许同时和/或顺序地执行多个神经网络,并且将结果组合在一起以实现3-5级自主驾驶功能。例如,在DLA或dGPU(例如GPU 520)上执行的CNN可以包括文本和单词识别,允许超级计算机读取和理解交通指示牌,包括尚未针对其特别地训练神经网络的指示牌。DLA可以进一步包括能够识别、解释和提供对指示牌的语义理解,并且将该语义理解传递给运行在CPU复合体上的路径规划模块的神经网络。
作为另一个示例,如3、4或5级驾驶所需的,多个神经网络可以同时运行。例如,由“注意:闪烁的灯指示结冰条件”组成的警告指示牌连同电灯可以由若干神经网络独立地或者共同地进行解释。指示牌本身可以由部署的第一神经网络(例如经过训练的神经网络)识别为交通指示牌,文本“闪烁的灯指示结冰条件”可以由部署的第二神经网络解释,该部署的第二神经网络告知车辆的路径规划软件(优选地在CPU复合体上执行)当检测到闪烁的灯时,存在结冰条件。闪烁的灯可以通过在多个帧上操作部署的第三神经网络而识别,该神经网络告知车辆的路径规划软件闪烁的灯的存在(或不存在)。所有三个神经网络可以例如在DLA内和/或在GPU 508上同时运行。
在一些示例中,用于面部识别和车主识别的CNN可以使用来自照相机传感器的数据识别车辆500的授权的驾驶员和/或车主的存在。始终在传感器上的处理引擎可以用来在车主接近驾驶员车门时解锁车辆并且打开灯,并且在安全模式下,在车主离开车辆时禁用车辆。按照这种方式,SoC 504提供了防范盗窃和/或劫车的安全性。
在另一个示例中,用于应急车辆检测和识别的CNN可以使用来自麦克风596的数据来检测并且识别应急车辆警报(siren)。与使用通用分类器检测警报并且手动地提取特征的常规系统形成对比的是,SoC 504使用CNN以对环境和城市声音分类以及对视觉数据分类。在优选的实施例中,运行在DLA上的CNN被训练为识别应急车辆的相对关闭速率(例如通过使用多普勒效应)。CNN也可以被训练为识别如GNSS传感器558所识别的特定于车辆在其中操作的局部区域的应急车辆。因此,例如,当在欧洲操作时,CNN将寻求检测欧洲警报,并且当在美国时,CNN将寻求识别仅仅北美的警报。一旦检测到应急车辆,在超声传感器562的辅助下,控制程序可以用来执行应急车辆安全例程,使车辆放慢速度,开到路边,停下车辆,和/或使车辆空转,直到应急车辆通过。
车辆可以包括可以经由高速互连(例如PCIe)耦合到SoC 504的CPU 518(例如分立的CPU或dCPU)。CPU 518可以包括例如X86处理器。CPU 518可以用来执行各种各样的功能中的任何功能,包括例如仲裁ADAS传感器与SoC 504之间潜在地不一致的结果,和/或监控控制器536和/或信息娱乐SoC 530的状态和健康状况。
车辆500可以包括可以经由高速互连(例如NVIDIA的NVLINK)耦合到SoC 504的GPU520(例如分立的GPU或dGPU)。GPU 520可以例如通过执行冗余的和/或不同的神经网络而提供附加的人工智能功能,并且可以用来至少部分地基于来自车辆500的传感器的输入(例如传感器数据)来训练和/或更新神经网络。
车辆500可以进一步包括网络接口524,该网络接口可以包括一个或更多个无线天线526(例如用于不同通信协议的一个或更多个无线天线,例如蜂窝天线、蓝牙天线等等)。网络接口524可以用来使能通过因特网与云(例如与服务器578和/或其他网络设备)、与其他车辆和/或与计算设备(例如乘客的客户端设备)的无线连接。为了与其他车辆通信,可以在这两辆车之间建立直接链接,和/或可以建立间接链接(例如跨网络以及通过因特网)。直接链接可以使用车对车通信链路提供。车对车通信链路可以向车辆500提供关于接近车辆500的车辆(例如车辆500前面、侧面和/或后面的车辆)的信息。该功能可以是车辆500的协作自适应巡航控制功能的部分。
网络接口524可以包括提供调制和解调功能并且使得控制器536能够通过无线网络通信的SoC。网络接口524可以包括用于从基带到射频的上转换以及从射频到基带的下转换的射频前端。频率转换可以通过公知的过程执行,和/或可以使用超外差(super-heterodyne)过程执行。在一些示例中,射频前端功能可以由单独的芯片提供。网络接口可以包括用于通过LTE、WCDMA、UMTS、GSM、CDMA2000、蓝牙、蓝牙LE、Wi-Fi、Z波、ZigBee、LoRaWAN和/或其他无线协议通信的无线功能。
车辆500可以进一步包括可包括片外(例如SoC 504外)存储装置的数据存储528。数据存储528可以包括一个或更多个存储元件,包括RAM、SRAM、DRAM、VRAM、闪存、硬盘和/或可以存储至少一个比特的数据的其他部件和/或设备。
车辆500可以进一步包括GNSS传感器558。GNSS传感器558(例如GPS和/或辅助GPS传感器)用于辅助映射、感知、占用网格生成和/或路径规划功能。可以使用任意数量的GNSS传感器558,包括例如且不限于使用带有以太网到串行(RS-232)网桥的USB连接器的GPS。
车辆500可以进一步包括RADAR传感器560。RADAR传感器560可以甚至在黑暗和/或恶劣天气条件下也由车辆500用于远程车辆检测。RADAR功能安全级别可以是ASIL B。RADAR传感器560可以使用CAN和/或总线502(例如以传输RADAR传感器560生成的数据)以用于控制以及访问对象跟踪数据,在一些示例中接入以太网以访问原始数据。可以使用各种各样的RADAR传感器类型。例如且非限制性地,RADAR传感器560可以适合前面、后面和侧面RADAR使用。在一些示例中,使用脉冲多普勒RADAR传感器。
RADAR传感器560可以包括不同的配置,例如具有窄视场的远程、具有宽视场的短程、短程侧覆盖等等。在一些示例中,远程RADAR可以用于自适应巡航控制功能。远程RADAR系统可以提供通过两个或更多独立扫描实现的广阔视场(例如250m范围内)。RADAR传感器560可以帮助区分静态对象和运动对象,并且可以由ADAS系统用于紧急制动辅助和前方碰撞警告。远程RADAR传感器可以包括具有多根(例如六根或更多)固定RADAR天线以及高速CAN和FlexRay接口的单站多模RADAR。在具有六根天线的示例中,中央四根天线可以创建聚焦的波束图案,其被设计为在更高速率下以来自邻近车道的最小交通干扰记录车辆500的周围环境。其他两根天线可以扩展视场,使得快速地检测进入或离开车辆500的车道的车辆成为可能。
作为一个示例,中程RADAR系统可以包括高达1460m(前面)或80m(后面)的范围以及高达42度(前面)或1450度(后面)的视场。短程RADAR系统可以包括但不限于被设计为安装在后保险杠两端的RADAR传感器。当安装在后保险杠两端时,这样的RADAR传感器系统可以创建持续地监控后方和车辆旁边的盲点的两个波束。
短程RADAR系统可以在ADAS系统中用于盲点检测和/或变道辅助。
车辆500可以进一步包括超声传感器562。可以置于车辆500的前面、后面和/或侧面的超声传感器562可以用于停车辅助和/或创建和更新占用网格。可以使用各种各样的超声传感器562,并且不同的超声传感器562可以用于不同的检测范围(例如2.5m、4m)。超声传感器562可以操作于功能安全级别的ASIL B。
车辆500可以包括LIDAR传感器564。LIDAR传感器564可以用于对象和行人检测、紧急制动、碰撞避免和/或其他功能。LIDAR传感器564可以为功能安全级别的ASIL B。在一些示例中,车辆500可以包括可以使用以太网(例如以将数据提供给千兆以太网交换机)的多个LIDAR传感器564(例如两个、四个、六个等等)。
在一些示例中,LIDAR传感器564可能够对360度视场提供对象列表及其距离。商业上可用的LIDAR传感器564可以具有例如近似500m的广告范围,精度为2cm-3cm,支持500Mbps以太网连接。在一些示例中,可以使用一个或更多个非突出的LIDAR传感器564。在这样的示例中,LIDAR传感器564可以实现为可以嵌入到车辆500的前面、后面、侧面和/或拐角的小设备。在这样的示例中,LIDAR传感器564可以甚至对于低反射率对象提供高达1420度水平的和35度竖直的视场,具有200m的范围。前面安装的LIDAR传感器564可以被配置用于45度与135度之间的水平视场。
在一些示例中,也可以使用诸如3D闪光LIDAR之类的LIDAR技术。3D闪光LIDAR使用激光的闪光作为发射源,以照亮高达约200m的车辆周围环境。闪光LIDAR单元包括接受器,该接受器将激光脉冲传输时间和反射光记录在每个像素上,其进而与从车辆到对象的范围相对应。闪光LIDAR可以允许利用每个激光闪光生成周围环境的高度精确且无失真的图像。在一些示例中,可以部署四个闪光LIDAR传感器,车辆500的每一侧一个。可用的3D闪光LIDAR系统包括没有风扇以外的运动部件(moving part)的固态3D凝视阵列LIDAR照相机(例如非扫描LIDAR设备)。闪光LIDAR设备可以使用每帧5纳秒I类(眼睛安全)激光脉冲,并且可以以3D范围点云和共同寄存的强度数据的形式捕获反射的激光。通过使用闪光LIDAR,并且因为闪光LIDAR是没有运动部件的固态设备,LIDAR传感器564可以不太容易受到运动模糊、振动和/或震动的影响。
该车辆可以进一步包括IMU传感器566。在一些示例中,IMU传感器566可以位于车辆500的后轴的中心。IMU传感器566可以包括例如且不限于加速度计、磁力计、陀螺仪、磁罗盘和/或其他传感器类型。在一些示例中,例如在六轴应用中,IMU传感器566可以包括加速度计和陀螺仪,而在九轴应用中,IMU传感器566可以包括加速度计、陀螺仪和磁力计。
在一些实施例中,IMU传感器566可以实现为微型高性能GPS辅助惯性导航系统(GPS/INS),其结合微机电系统(MEMS)惯性传感器、高灵敏度GPS接收器和高级卡尔曼滤波算法以提供位置、速度和姿态的估计。这样,在一些示例中,IMU传感器566可以使得车辆500能够在无需来自磁传感器的输入的情况下通过直接观察从GPS到IMU传感器566的速度变化并且将其相关来估计方向(heading)。在一些示例中,IMU传感器566和GNSS传感器558可以结合到单个集成单元中。
该车辆可以包括置于车辆500中和/或车辆500周围的麦克风596。除别的以外,麦克风596可以用于应急车辆检测和识别。
该车辆可以进一步包括任意数量的照相机类型,包括立体照相机568、广角照相机570、红外照相机572、环绕照相机574、远程和/或中程照相机598和/或其他照相机类型。这些照相机可以用来捕获车辆500整个外围周围的图像数据。使用的照相机类型取决于实施例和车辆500的要求,并且照相机类型的任意组合可以用来提供车辆500周围的必要覆盖。此外,照相机的数量可以根据实施例而不同。例如,该车辆可以包括六个照相机、七个照相机、十个照相机、十二个照相机和/或另一数量的照相机。作为一个示例且非限制性地,这些照相机可以支持千兆多媒体串行链路(GMSL)和/或千兆以太网。所述照相机中的每一个在本文关于图5A和图5B更详细地进行了描述。
车辆500可以进一步包括振动传感器542。振动传感器542可以测量车辆的诸如车轴之类的部件的振动。例如,振动的变化可以指示道路表面的变化。在另一个示例中,当使用两个或更多振动传感器542时,振动之间的差异可以用来确定道路表面的摩擦或滑移(例如当动力驱动轴与自由旋转轴之间存在振动差异时)。
车辆500可以包括ADAS系统538。在一些示例中,ADAS系统538可以包括SoC。ADAS系统538可以包括自主/自适应/自动巡航控制(ACC)、协作自适应巡航控制(CACC)、前方撞车警告(FCW)、自动紧急制动(AEB)、车道偏离警告(LDW)、车道保持辅助(LKA)、盲点警告(BSW)、后方穿越交通警告(RCTW)、碰撞警告系统(CWS)、车道居中(LC)和/或其他特征和功能。
ACC系统可以使用RADAR传感器560、LIDAR传感器564和/或照相机。ACC系统可以包括纵向ACC和/或横向ACC。纵向ACC监控并控制到紧接在车辆500前方的车辆的距离,并且自动地调节车速以维持离前方车辆的安全距离。横向ACC执行距离保持,并且在必要时建议车辆500改变车道。横向ACC与诸如LCA和CWS之类的其他ADAS应用程序有关。
CACC使用来自其他车辆的信息,该信息可以经由网络接口524和/或无线天线526经由无线链路或者通过网络连接(例如通过因特网)间接地从其他车辆接收。直接链接可以由车对车(V2V)通信链路提供,而间接链接可以是基础设施到车辆(I2V)的通信链路。通常,V2V通信概念提供关于紧接在前的车辆(例如紧接在车辆500前方且与其处于相同车道的车辆)的信息,而I2V通信概念提供关于前方更远处的交通的信息。CACC系统可以包括I2V和V2V信息源中的任一个或者二者。给定车辆500前方车辆的信息,CACC可以更加可靠,并且它有可能提高交通流的畅通性且降低道路拥堵。
FCW系统被设计为提醒驾驶员注意危险,使得驾驶员可以采取纠正措施。FCW系统使用耦合到专用处理器、DSP、FPGA和/或ASIC的前置照相机和/或RADAR传感器560,该专用处理器、DSP、FPGA和/或ASIC电耦合至诸如显示器、扬声器和/或振动部件之类的驾驶员反馈。FCW系统可以提供例如声音、视觉警告、振动和/或快速制动脉冲形式的警告。
AEB系统检测即将发生的与另一车辆或其他对象的前方碰撞,并且可以在驾驶员在指定的时间或距离参数内没有采取纠正措施的情况下自动地应用制动器。AEB系统可以使用耦合到专用处理器、DSP、FPGA和/或ASIC的前置照相机和/或RADAR传感器560。当AEB系统检测到危险时,它典型地首先提醒(alert)驾驶员采取纠正措施以避免碰撞,并且如果驾驶员没有采取纠正措施,那么AEB系统可以自动地应用制动器以努力防止或者至少减轻预测的碰撞的影响。AEB系统可以包括诸如动态制动支持和/或碰撞迫近制动之类的技术。
LDW系统提供了诸如方向盘或座位振动之类的视觉、听觉和/或触觉警告,以在车辆500穿过车道标记时提醒驾驶员。当驾驶员指示有意偏离车道时,通过激活转弯信号,不激活LDW系统。LDW系统可以使用耦合到专用处理器、DSP、FPGA和/或ASIC的前侧朝向照相机,该专用处理器、DSP、FPGA和/或ASIC电耦合至诸如显示器、扬声器和/或振动部件之类的驾驶员反馈。
LKA系统是LDW系统的变型。如果车辆500开始离开车道,那么LKA系统提供纠正车辆500的转向输入或制动。
BSW系统检测并向驾驶员警告汽车盲点中的车辆。BSW系统可以提供视觉、听觉和/或触觉警报以指示合并或改变车道是不安全的。系统可以在驾驶员使用转弯信号时提供附加的警告。BSW系统可以使用耦合到专用处理器、DSP、FPGA和/或ASIC的后侧朝向照相机和/或RADAR传感器560,该专用处理器、DSP、FPGA和/或ASIC电耦合至诸如显示器、扬声器和/或振动部件之类的驾驶员反馈。
RCTW系统可以在车辆500倒车时在后置照相机范围之外检测到对象时提供视觉、听觉和/或触觉通知。一些RCTW系统包括AEB以确保应用车辆制动器以避免撞车。RCTW系统可以使用耦合到专用处理器、DSP、FPGA和/或ASIC的一个或更多个后置RADAR传感器560,该专用处理器、DSP、FPGA和/或ASIC电耦合至诸如显示器、扬声器和/或振动部件之类的驾驶员反馈。
常规的ADAS系统可能易于出现假阳性结果,这可能会让驾驶员烦恼并分散注意力,但是典型地不是灾难性的,因为ADAS系统提醒驾驶员并且允许驾驶员决定安全条件是否真正存在并且相对应地采取行动。然而,在自主车辆500中,在冲突结果的情况下,车辆500本身必须决定是否注意(heed)来自主计算机或者辅助计算机(例如第一控制器536或第二控制器536)的结果。例如,在一些实施例中,ADAS系统538可以是用于向备用计算机合理性模块提供感知信息的备用和/或辅助计算机。备用计算机合理性监视器可以在硬件部件上运行冗余多样的软件,以检测感知和动态驾驶任务中的故障。来自ADAS系统538的输出可以提供给监督MCU。如果来自主计算机和辅助计算机的输出冲突,那么监督MCU必须确定如何协调该冲突以确保安全操作。
在一些示例中,主计算机可以被配置为向监督MCU提供置信度评分,指示主计算机对所选结果的置信度。如果置信度评分超过阈值,那么监督MCU可以遵循主计算机的方向,而不管辅助计算机是否提供冲突或不一致的结果。在置信度评分不满足阈值的情况下并且在主计算机和辅助计算机指示不同的结果(例如冲突)的情况下,监督MCU可以在这些计算机之间进行仲裁以确定适当的结果。
监督MCU可以被配置为运行神经网络,所述神经网络被训练并且被配置为基于来自主计算机和辅助计算机的输出,确定辅助计算机提供假警报的条件。因此,监督MCU中的神经网络可以了解何时可以信任辅助计算机的输出以及何时不能。例如,当辅助计算机为基于RADAR的FCW系统时,监督MCU中的神经网络可以了解FCW系统何时正在识别事实上不是危险的金属对象,例如触发警报的排水网格或井盖。类似地,当辅助计算机是基于照相机的LDW系统时,监督MCU中的神经网络可以学习在骑车者或行人在场并且车道偏离实际上是最安全的策略时无视该LDW。在包括运行在监督MCU上的神经网络的实施例中,监督MCU可以包括适合于利用关联的内存运行神经网络的DLA或GPU中的至少一个。在优选的实施例中,监督MCU可以包括SoC 504的部件和/或作为SoC 504的部件而被包括。
在其他示例中,ADAS系统538可以包括使用常规计算机视觉规则执行ADAS功能的辅助计算机。这样,辅助计算机可以使用经典的计算机视觉规则(如果-那么),并且在监督MCU中存在神经网络可以提高可靠性、安全性和性能。例如,多样化的实现方式和有意的非完全相同(non-identity)使得整个系统更加容错,对于软件(或者软件-硬件接口)功能造成的故障而言尤其如此。例如,如果在主计算机上运行的软件中存在软件漏洞或错误并且运行在辅助计算机上的非完全相同的软件代码提供相同的总体结果,那么监督MCU可以更加确信总体结果是正确的,并且主计算机上的软件或硬件中的漏洞不造成实质性的错误。
在一些示例中,ADAS系统538的输出可以馈送至主计算机的感知块和/或主计算机的动态驾驶任务块。例如,如果ADAS系统538由于对象紧接在前的原因而指示前方碰撞警告,那么感知块可以在识别对象时使用该信息。在其他示例中,辅助计算机可以具有它自己的神经网络,其被训练并且因此如本文所描述的降低假阳性的风险。
车辆500可以进一步包括信息娱乐SoC 530(例如车载信息娱乐系统(IVI))。尽管被图示和描述为SoC,但是信息娱乐系统可以不是SoC,并且可以包括两个或更多分立的部件。信息娱乐SoC 530可以包括可以用来向车辆500提供音频(例如音乐、个人数字助理、导航指令、新闻、广播等等)、视频(例如TV、电影、流媒体等等)、电话(例如免提呼叫)、网络连接(例如LTE、Wi-Fi等等)和/或信息服务(例如导航系统,后停车援助,无线电数据系统,诸如燃油水平、覆盖的总距离、制动燃油水平、油位、车门开/关、空气过滤器信息之类的车辆有关信息,等等)的硬件和软件的组合。例如,信息娱乐SoC 530可以包括收音机、盘播放器、导航系统、视频播放器、USB和蓝牙连接、车载电脑、车载娱乐、Wi-Fi、方向盘音频控件、免提语音控件、平视显示器(HUD)、HMI显示器534、远程信息处理设备、控制面板(例如用于控制各种部件、特征和/或系统,和/或与其交互)和/或其他部件。信息娱乐SoC 530可以进一步用来向车辆的用户提供信息(例如视觉的和/或听觉的),例如来自ADAS系统538的信息,诸如规划的车辆机动、轨迹、周围环境信息(例如交叉路口信息、车辆信息、道路信息等等)之类的自主驾驶信息,和/或其他信息。
信息娱乐SoC 530可以包括GPU功能。信息娱乐SoC 530可以通过总线502(例如CAN总线、以太网等)与车辆500的其他设备、系统和/或部件通信。在一些示例中,信息娱乐SoC530可以耦合至监督MCU,使得在主控制器536(例如车辆500的主和/或备用计算机)出现故障的情况下,信息娱乐系统的GPU可以执行一些自驾驶功能。在这样的示例中,信息娱乐SoC530可以如本文所描述的将车辆500置于司机安全停车模式。
车辆500可以进一步包括仪表组532(例如数字仪表板、电子仪表组、数字仪表面板等等)。仪表组532可以包括控制器和/或超级计算机(例如分立的控制器或超级计算机)。仪表组532可以包括一套仪器,例如车速表、燃油水平、油压、转速表、里程表、转弯指示器、换档位置指示器、安全带警告灯、停车制动警告灯、发动机故障灯、安全气囊(SRS)系统信息、照明控件、安全系统控件、导航信息等等。在一些示例中,信息可以被显示和/或在信息娱乐SoC 530和仪表组532之间共享。换言之,仪表组532可以作为信息娱乐SoC 530的部分而被包括,或者反之亦然。
图5D为根据本公开一些实施例的基于云的服务器与图5A的示例自主车辆500之间的通信的系统示意图。系统576可以包括服务器578、网络590以及包括车辆500在内的车辆。服务器578可以包括多个GPU 584(A)-1284(H)(这里统称为GPU 584)、PCIe交换机582(A)-582(H)(这里统称为PCIe交换机582)和/或CPU 580(A)-580(B)(这里统称为CPU 580)。GPU584、CPU 580和PCIe交换机可以与诸如例如且不限于NVIDIA开发的NVLink接口588之类的高速互连和/或PCIe连接586互连。在一些示例中,GPU 584经由NVLink和/或NVSwitch SoC连接,并且GPU 584和PCIe交换机582经由PCIe互连连接。尽管图示出八个GPU 584、两个CPU580和两个PCIe交换机,但是这并不意图是限制性的。取决于实施例,服务器578中的每一个可以包括任意数量的GPU 584、CPU 580和/或PCIe交换机。例如,服务器578中的每一个可以包括八个、十六个、三十二个和/或更多GPU 584。
服务器578可以通过网络590并且从车辆接收图像数据,该图像数据表示示出诸如最近开始的道路工程之类的意外或改变的道路状况的图像。服务器578可以通过网络590并且向车辆传输神经网络592、更新的神经网络592和/或地图信息594,包括关于交通和道路状况的信息。对地图信息594的更新可以包括对于HD地图522的更新,例如关于建筑工地、坑洼、弯道、洪水或其他障碍物的信息。在一些示例中,神经网络592、更新的神经网络592和/或地图信息594可以已从新的训练和/或从环境中的任意数量的车辆接收的数据中表示和/或至少部分地基于数据中心处执行的训练(例如使用服务器578和/或其他服务器)的经验产生。
服务器578可以用来基于训练数据训练机器学习模型(例如神经网络)。训练数据可以由车辆生成,和/或可以在模拟中生成(例如使用游戏引擎)。在一些示例中,训练数据被标记(例如在神经网络受益于有监督学习的情况下)和/或经历其他预处理,而在其他示例中,训练数据不被标记和/或预处理(例如在神经网络无需有监督学习的情况下)。一旦机器学习模型被训练,机器学习模型可以由车辆使用(例如通过网络590传输至车辆),和/或机器学习模型可以由服务器578用来远程地监控车辆。
在一些示例中,服务器578可以接收来自车辆的数据,并且将该数据应用到最新的实时神经网络以用于实时智能推理。服务器578可以包括由GPU 584供电的深度学习超级计算机和/或专用AI计算机,例如NVIDIA开发的DGX和DGX站机器。然而,在一些示例中,服务器578可以包括仅使用CPU供电的数据中心的深度学习基础设施。
服务器578的深度学习基础设施可能够快速实时推理,并且可以使用该能力来评估并验证车辆500中的处理器、软件和/或关联硬件的健康状况。例如,深度学习基础设施可以接收来自车辆500的定期更新,例如图像序列和/或车辆500已经定位的位于该图像序列中的对象(例如经由计算机视觉和/或其他机器学习对象分类技术)。深度学习基础设施可以运行它自己的神经网络以识别对象并且将它们与车辆500识别的对象相比较,如果结果不匹配并且该基础设施得出车辆500中的AI发生故障的结论,那么服务器578可以向车辆500传输信号,指示车辆500的故障保护计算机进行控制,通知乘客,并且完成安全停车操作。
为了推理,服务器578可以包括GPU 584和一个或更多个可编程推理加速器(例如NVIDIA的TensorRT)。GPU供电的服务器和推理加速的组合可以使得实时响应成为可能。在其他示例中,例如在性能不那么重要的情况下,CPU、FPGA和其他处理器供电的服务器可以用于推理。
示例计算设备
图6为适合用于实现本公开一些实施例的示例计算设备600的框图。计算设备600可以包括直接或间接耦合下列设备的总线602:内存604,一个或更多个中央处理单元(CPU)606,一个或更多个图形处理单元(GPU)608,通信接口610,输入/输出(I/O)端口612,输入/输出组件614,电源616,以及一个或更多个呈现组件618(例如显示器)。
尽管图6的各个框被示为经由具有线路的总线602连接,但是这并不意图是限制性的,并且仅仅为了清楚起见。例如,在一些实施例中,诸如显示设备之类的呈现组件618可以被认为是I/O组件614(例如如果显示器为触摸屏)。作为另一个示例,CPU 606和/或GPU 608可以包括内存(例如,内存604可以表示除了GPU 608、CPU 606和/或其他组件的内存以外的存储设备)。换言之,图6的计算设备仅仅是说明性的。在诸如“工作站”、“服务器”、“膝上型电脑”、“台式机”、“平板电脑”、“客户端设备”、“移动设备”、“手持式设备”、“游戏控制台”、“电子控制单元(ECU)”、“虚拟现实系统”和/或其他设备或系统类型之类的类别之间不进行区分,因为所有这些都被考虑在图6的计算设备的范围内。
总线602可以表示一条或更多条总线,例如地址总线、数据总线、控制总线或者其组合。总线602可以包括一种或更多种总线类型,例如行业标准架构(ISA)总线、扩展行业标准架构(EISA)总线、视频电子标准协会(VESA)总线、外围组件互连(PCI)总线、外围组件互连快速(PCIe)总线,和/或另一种类型的总线。
内存604可以包括各种各样的计算机可读介质中的任何介质。计算机可读介质可以是可以由计算设备600访问的任何可用介质。计算机可读介质可以包括易失性和非易失性介质以及可移除和不可移除介质。举例而言且非限制性地,计算机可读介质可以包括计算机存储介质和通信介质。
计算机存储介质可以包括易失性和非易失性介质和/或可移除和不可移除介质,其以用于存储诸如计算机可读指令、数据结构、程序模块和/或其他数据类型之类的信息的任何方法或技术实现。例如,内存604可以存储计算机可读指令(例如其表示程序和/或程序元素,例如操作系统)。计算机存储介质可以包括但不限于RAM、ROM、EEPROM、闪存或者其他存储技术、CD-ROM、数字多功能盘(DVD)或其他光盘存储装置、磁带盒、磁带、磁盘存储装置或其他磁存储设备,或者可以用来存储期望的信息且可以由计算设备600访问的任何其他介质。当在本文使用时,计算机存储介质并不包括信号本身。
通信介质可以在诸如载波之类的调制数据信号或其他传输机制中包含计算机可读指令、数据结构、程序模块和/或其他数据类型,并且包括任何信息输送介质。术语“调制数据信号”可以指这样的信号,该信号使它的特性中的一个或更多个以这样的将信息编码到该信号中的方式设置或改变。举例而言且非限制性地,通信介质可以包括诸如有线网络或直接有线连接之类的有线介质,以及诸如声音、RF、红外和其他无线介质之类的无线介质。任何以上所述的组合也应当包含在计算机可读介质的范围内。
CPU 606可以被配置为执行计算机可读指令以便控制计算设备600的一个或更多个组件执行本文描述的方法和/或过程中的一个或更多个。CPU 606中的每一个可以包括能够同时处理大量软件线程的一个或更多个核(例如一个、两个、四个、八个、二十八个、七十二个等等)。CPU 606可以包括任何类型的处理器,并且可以包括不同类型的处理器,这取决于实现的计算设备600的类型(例如具有用于移动设备的较少核的处理器以及具有用于服务器的更多核的处理器)。例如,取决于计算设备600的类型,处理器可以是使用精简指令集计算(RISC)实现的ARM处理器或者使用复杂指令集计算(CISC)实现的x86处理器。除了一个或更多个微处理器或者诸如数学协处理器之类的补充协处理器之外,计算设备600还可以包括一个或更多个CPU 606。
GPU 608可以由计算设备600用来渲染图形(例如3D图形)。GPU 608可以包括能够同时处理数百或数千个软件线程的数百或数千个核。GPU 608可以响应于渲染命令(例如经由主机接口接收的来自CPU 606的渲染命令)而生成用于输出图像的像素数据。GPU 608可以包括诸如显示内存之类的用于存储像素数据的图形内存。显示内存可以作为内存604的部分而被包括。GPU 608可以包括(例如经由链路)并行操作的两个或更多GPU。当组合在一起时,每个GPU 608可以生成用于输出图像的不同部分或者用于不同输出图像的像素数据(例如,第一GPU用于第一图像,第二GPU用于第二图像)。每个GPU可以包括它自己的内存,或者可以与其他GPU共享内存。
在其中计算设备600不包括GPU 608的示例中,CPU 606可以用来渲染图形。
通信接口610可以包括一个或更多个接收器、发送器和/或收发器,其使得计算设备600能够经由电子通信网络与其他计算设备通信,包括有线和/或无线通信。通信接口610可以包括使能通过若干不同网络中的任何网络进行通信的组件和功能,所述网络例如无线网络(例如Wi-Fi、Z波、蓝牙、蓝牙LE、ZigBee等等)、有线网络(例如通过以太网通信)、低功率广域网(例如LoRaWAN、SigFox等等)和/或因特网。
I/O端口612可以使得计算设备600能够逻辑地耦合到包括I/O组件614、呈现组件618和/或其他组件在内的其他设备,其中一些可以内置到(例如集成到)计算设备600中。说明性I/O组件614包括麦克风、鼠标、键盘、机动杆、游戏垫、游戏控制器、碟形卫星天线、扫描仪、打印机、无线设备等等。I/O组件614可以提供处理用户生成的空中手势、语音或其他生理输入的自然用户接口(NUI)。在一些实例中,输入可以传输至适当的网络元件以便进一步处理。NUI可以实现语音识别、手写笔识别、面部识别、生物特征识别、屏幕上和邻近屏幕的手势识别、空中手势、头部和眼睛跟踪以及与计算设备600的显示器关联的触摸识别(如下文更详细地描述的)的任意组合。计算设备600可以包括诸如立体照相机系统之类的深度照相机、红外照相机系统、RGB照相机系统、触摸屏技术以及这些的组合,以用于手势检测和识别。此外,计算设备600可以包括使能运动检测的加速度计或陀螺仪(例如作为惯性测量单元(IMU)的部分)。在一些示例中,加速度计或陀螺仪的输出可以由计算设备600用来渲染沉浸式增强现实或者虚拟现实。
电源616可以包括硬接线电源、电池电源或者其组合。电源616可以向计算设备600供电以使得计算设备600的组件能够操作。
呈现组件618可以包括显示器(例如监视器、触摸屏、电视屏幕、平视显示器(HUD)、其他显示器类型或者其组合)、扬声器和/或其他呈现组件。呈现组件618可以接收来自其他组件(例如GPU 608、CPU 606等等)的数据,并且输出该数据(例如作为图像、视频、声音等等)。
本公开可以在由计算机或者诸如个人数字助理或其他手持式设备之类的其他机器执行的、包括诸如程序模块之类的计算机可执行指令的机器可使用指令或者计算机代码的一般背景下进行描述。通常,包括例程、程序、对象、组件、数据结构等等的程序模块指的是执行特定任务或者实现特定抽象数据类型的代码。本公开可以在各种各样的系统配置中实践,这些配置包括手持式设备、消费电子器件、通用计算机、更专业的计算设备等等。本公开也可以在其中任务由通过通信网络链接的远程处理设备执行的分布式计算环境中实践。
如在本文中使用的,“和/或”关于两个或更多元素的叙述应当解释为仅指一个元素或者元素组合。例如,“元素A、元素B和/或元素C”可以包括仅仅元素A,仅仅元素B,仅仅元素C,元素A和元素B,元素A和元素C,元素B和元素C,或者元素A、B和C。此外,“元素A或元素B中的至少一个”可以包括元素A中的至少一个,元素B中的至少一个,或者元素A中的至少一个和元素B中的至少一个。进一步,“元素A和元素B中的至少一个”可以包括元素A中的至少一个,元素B中的至少一个,或者元素A中的至少一个和元素B中的至少一个。
这里详细地描述了本公开的主题以满足法定要求。然而,描述本身并非意在限制本公开的范围。相反地,本发明人已经设想到,要求保护的主题也可以以其他的方式具体化,以包括与本文中结合其他当前或未来技术描述的步骤不同的步骤或者相似的步骤的组合。而且,尽管术语“步骤”和/或“块”在本文中可以用来隐含采用的方法的不同元素,但是这些术语不应当被解释为暗示本文公开的各个步骤之中或之间的任何特定顺序,除非明确描述了各步骤的顺序。

Claims (20)

1.一种计算机实现的轨迹预测方法,包括:
在空间布置中定位一个或更多个编码状态特征,所述一个或更多个编码状态特征中的每个编码状态特征对应于环境中的相应对象,每个编码状态特征被定位在所述空间布置内的位置处,所述空间布置内的位置对应于所述环境中的所述相应对象相对于自我车辆的相对位置;
使用长短期记忆LSTM网络,通过将表示在第一方向上遍历的所述空间布置的第一数据输入到所述LSTM网络,来计算第一编码空间特征;
使用所述LSTM网络或另一个LSTM网络,通过将表示在不同于所述第一方向的第二方向上遍历的所述空间布置的第二数据输入到所述LSTM网络或所述另一个LSTM网络,来计算第二编码空间特征;以及
对于每个相应对象,至少部分地基于与所述相应对象相对应的所述编码状态特征、所述第一编码空间特征和所述第二编码空间特征,计算与多个对象机动发生的可能性相对应的置信度值。
2.根据权利要求1所述的方法,其中,每个编码状态特征是使用机器学习模型并且至少部分地基于与所述编码状态特征相对应的所述相应对象的所述环境内的多个先前位置来计算的。
3.根据权利要求1所述的方法,其中,所述多个对象机动包括选自改变到右相邻车道、改变到左相邻车道以及停留在当前车道的横向机动,并且所述多个对象机动还包括选自加速、减速或保持当前速度的纵向机动。
4.根据权利要求1所述的方法,还包括:至少部分地基于所述置信度值,从所述多个对象机动中确定一个或更多个对象机动;对于每个相应对象,至少部分地基于与所述相应对象相对应的所述编码状态特征、所述第一编码空间特征、所述第二编码空间特征以及所述一个或更多个对象机动,计算与所述相应对象的未来位置的空间相对应的密度函数。
5.根据权利要求4所述的方法,其中,所述密度函数表示未来位置的所述空间内的位置的区域,所述位置的区域使用以下至少一项计算:所述一个或更多个未来位置的标准偏差,所述一个或更多个未来位置的均值或所述一个或更多个未来位置的协方差。
6.根据权利要求4所述的方法,还包括:将表示所述环境内的未来位置的第三数据输入到机器学习模型中,所述机器学习模型用于计算所述一个或更多个编码状态特征;以及使用所述机器学习模型,使用所述第三数据计算所述相应对象的更新的编码状态特征。
7.根据权利要求6所述的方法,其中,所述更新的编码状态特征被用于计算所述相应对象的所述未来位置之后的另一未来位置。
8.根据权利要求1所述的方法,其中,所述环境是模拟环境,并且所述对象机动用于确定所述模拟环境内的所述相应对象的轨迹。
9.根据权利要求1所述的方法,其中,使用LSTM网络的相应实例化来计算所述一个或更多个编码状态特征中的每个编码状态特征。
10.一种计算机实现的轨迹预测方法,包括:
在第一时间实例处,将表示环境中对象的一个或更多个过去位置和当前位置的第一数据输入到长短期记忆LSTM网络;
使用所述LSTM网络并且至少部分地基于所述第一数据,来计算与在所述第一时间实例处的所述对象相对应的第一编码状态特征;
在所述第一时间实例处,使用所述第一编码状态特征和与所述环境中的一个或更多个附加对象相对应的一个或更多个附加编码状态特征来计算编码空间特征;
使用所述编码空间特征和所述第一编码状态特征预测所述对象在所述环境中的未来位置;
在所述第一时间实例之后的第二时间实例处,将表示所述环境中对象的一个或更多个更新的过去位置、新的当前位置以及所述未来位置的第二数据输入到所述LSTM网络;以及
使用所述LSTM网络并至少部分地基于所述第二数据,计算与所述第二时间实例处的所述对象相对应的第二编码状态特征。
11.根据权利要求10所述的方法,其中,所述一个或更多个过去位置和所述当前位置被表示为相对于所述环境中的自我车辆的原点的值。
12.根据权利要求10所述的方法,其中,计算所述编码空间特征包括:填充空间布置以包括所述第一编码状态特征和所述一个或更多个附加编码状态特征,所述填充包括:将所述第一编码状态特征和所述一个或更多个附加编码状态特征定位在所述空间布置内的空间布置位置处,所述空间布置位置对应于所述环境中的所述对象和所述一个或更多个附加对象相对于自我车辆的相对位置;以及将表示所述空间布置的第三数据输入到机器学习模型。
13.根据权利要求10所述的方法,其中,所述第一编码状态特征、所述第二编码状态特征和所述编码空间特征是至少部分地基于由自我车辆的一个或更多个传感器生成的传感器数据来计算的。
14.根据权利要求10所述的方法,其中,使用双向LSTM网络来计算所述编码空间特征。
15.根据权利要求10所述的方法,还包括:至少部分地基于所述第一编码状态特征和所述编码空间特征,从多个机动中确定预测机动,其中,所述预测所述对象的所述未来位置还至少部分地基于所述预测机动。
16.根据权利要求15所述的方法,其中,所述预测机动包括纵向分量和横向分量。
17.一种轨迹预测系统,包括:
一个或更多个传感器,其用于生成车辆周围环境的传感器数据;计算设备,其包括一个或更多个处理设备以及一个或更多个存储设备,所述一个或更多个存储设备通信地耦合至所述一个或更多个处理设备,在所述存储设备上存储了编程指令,当所述编程指令在由所述处理设备执行时导致以下实例化:
时间编码器,其用于生成一个或更多个编码状态特征,每个编码状态特征对应于环境中的对象;
空间编码器,其用于从空间布置生成编码空间特征,所述空间布置包括所述一个或更多个编码状态特征;
机动预测器,其用于至少部分地基于所述编码空间特征和所述一个或更多个编码状态特征中的编码状态特征,确定对应于所述编码状态特征的相应对象的一个或更多个预测机动的可能性;以及
轨迹解码器,其用于至少部分地基于所述编码状态特征、所述编码空间特征以及所述一个或更多个预测机动来确定所述相应对象的一个或更多个未来位置。
18.根据权利要求17所述的系统,其中,所述空间编码器使用长短期记忆LSTM网络来生成所述编码空间特征,其中,所述LSTM网络使用表示在第一方向上遍历的所述空间布置的第一数据和表示在与所述第一方向不同的第二方向上遍历的所述空间布置的第二数据作为输入。
19.根据权利要求17所述的系统,其中,对于所述环境中的每个对象,所述时间编码器使用长短期记忆(LSTM)网络的实例化来为所述对象生成相应的编码状态特征。
20.根据权利要求17所述的系统,其中,所述编码状态特征对应于第一时间实例,并且所述时间编码器使用所述一个或更多个未来位置来生成针对所述第一时间实例之后的第二时间实例的更新的编码状态特征。
CN201980075065.3A 2018-09-11 2019-09-09 用于自主机器应用的未来对象轨迹预测 Active CN113056749B (zh)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US201862729659P 2018-09-11 2018-09-11
US62/729,659 2018-09-11
PCT/US2019/050236 WO2020055759A1 (en) 2018-09-11 2019-09-09 Future object trajectory predictions for autonomous machine applications

Publications (2)

Publication Number Publication Date
CN113056749A CN113056749A (zh) 2021-06-29
CN113056749B true CN113056749B (zh) 2024-05-24

Family

ID=69719944

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201980075065.3A Active CN113056749B (zh) 2018-09-11 2019-09-09 用于自主机器应用的未来对象轨迹预测

Country Status (4)

Country Link
US (2) US11514293B2 (zh)
EP (1) EP3850548A1 (zh)
CN (1) CN113056749B (zh)
WO (1) WO2020055759A1 (zh)

Families Citing this family (68)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9836895B1 (en) 2015-06-19 2017-12-05 Waymo Llc Simulating virtual objects
CN117521725A (zh) * 2016-11-04 2024-02-06 渊慧科技有限公司 加强学习系统
US10739775B2 (en) * 2017-10-28 2020-08-11 Tusimple, Inc. System and method for real world autonomous vehicle trajectory simulation
CN113056749B (zh) * 2018-09-11 2024-05-24 辉达公司 用于自主机器应用的未来对象轨迹预测
US11155259B2 (en) * 2018-09-13 2021-10-26 Honda Motor Co., Ltd. System and method for egocentric-vision based future vehicle localization
US11488374B1 (en) * 2018-09-28 2022-11-01 Apple Inc. Motion trajectory tracking for action detection
EP3653459B1 (en) * 2018-11-15 2021-07-14 Volvo Car Corporation Vehicle safe stop
US10824913B1 (en) * 2018-11-21 2020-11-03 Amazon Technologies, LLC Training machine learning models for physical agents and robotic controls with simulations
US10997729B2 (en) * 2018-11-30 2021-05-04 Baidu Usa Llc Real time object behavior prediction
KR102673147B1 (ko) * 2019-01-30 2024-06-07 주식회사 에이치엘클레무브 운전자 보조 시스템 및 그 제어방법
JP7200037B2 (ja) * 2019-04-17 2023-01-06 株式会社日立製作所 機械の自動運転制御方法、及びシステム
US11161500B1 (en) * 2019-05-13 2021-11-02 GM Cruise Holdings, LLC Advanced passenger safety for an autonomous vehicle
EP3751699B1 (de) * 2019-06-13 2021-09-15 Siemens Aktiengesellschaft Verfahren und anordnung zur schätzung eines netzzustands eines energieverteilungsnetzes
US11409304B1 (en) 2019-09-27 2022-08-09 Zoox, Inc. Supplementing top-down predictions with image features
US11380108B1 (en) * 2019-09-27 2022-07-05 Zoox, Inc. Supplementing top-down predictions with image features
EP3806065A1 (en) * 2019-10-11 2021-04-14 Aptiv Technologies Limited Method and system for determining an attribute of an object at a pre-determined time point
US12012127B2 (en) 2019-10-26 2024-06-18 Zoox, Inc. Top-down view object detection and tracking
JP2021077088A (ja) * 2019-11-08 2021-05-20 ソニー株式会社 情報処理装置、情報処理方法及び情報処理プログラム
US20210142210A1 (en) * 2019-11-11 2021-05-13 Alibaba Group Holding Limited Multi-task segmented learning models
US11663726B2 (en) * 2020-01-31 2023-05-30 Zoox, Inc. Object velocity and/or yaw rate detection and tracking
CN114930804A (zh) * 2020-02-14 2022-08-19 索尼集团公司 摄像装置和车辆控制系统
US11429107B2 (en) 2020-02-21 2022-08-30 Argo AI, LLC Play-forward planning and control system for an autonomous vehicle
US11643105B2 (en) * 2020-02-21 2023-05-09 Argo AI, LLC Systems and methods for generating simulation scenario definitions for an autonomous vehicle system
CN111681335A (zh) * 2020-03-18 2020-09-18 桂林电子科技大学 一种基于lstm技术的汽车轨迹预测系统及其预测方法
US12001958B2 (en) * 2020-03-19 2024-06-04 Nvidia Corporation Future trajectory predictions in multi-actor environments for autonomous machine
US11092688B1 (en) * 2020-03-20 2021-08-17 Aptiv Technologies Limited Spatial and temporal processing of ultrasonic sensor detections for mapping in vehicle-parking-assist functions
CN111079721B (zh) * 2020-03-23 2020-07-03 北京三快在线科技有限公司 一种障碍物的轨迹预测方法及装置
CN111259801B (zh) * 2020-03-23 2021-07-20 重庆特斯联智慧科技股份有限公司 一种轨迹预测的人流冲突调节方法和系统
US11364883B2 (en) * 2020-03-27 2022-06-21 Nvidia Corporation Leveraging rear-view sensors for automatic emergency braking in autonomous machine applications
US11727690B2 (en) * 2020-04-03 2023-08-15 Waymo Llc Behavior prediction of surrounding agents
JP7388971B2 (ja) * 2020-04-06 2023-11-29 トヨタ自動車株式会社 車両制御装置、車両制御方法及び車両制御用コンピュータプログラム
EP3916676B1 (en) 2020-05-29 2023-04-19 IMRA Europe SAS Computer-implemented method for predicting multiple future trajectories of moving objects
CN111738337B (zh) * 2020-06-23 2022-03-25 吉林大学 一种混行交通环境下的驾驶人分心状态检测识别方法
US20200324794A1 (en) * 2020-06-25 2020-10-15 Intel Corporation Technology to apply driving norms for automated vehicle behavior prediction
CN112037506B (zh) * 2020-07-29 2021-07-09 长安大学 车辆轨迹预测模型构建方法、车辆轨迹预测方法及系统
EP3968281A1 (en) * 2020-09-09 2022-03-16 Tata Consultancy Services Limited System and method for forecasting location of target in monocular first person view
KR20220039903A (ko) * 2020-09-21 2022-03-30 현대자동차주식회사 자율주행 제어 장치 및 방법
US11912300B2 (en) * 2020-09-30 2024-02-27 GM Global Technology Operations LLC Behavioral planning in autonomus vehicle
US20220111869A1 (en) * 2020-10-08 2022-04-14 Nec Laboratories America, Inc. Indoor scene understanding from single-perspective images
US11648959B2 (en) * 2020-10-20 2023-05-16 Argo AI, LLC In-vehicle operation of simulation scenarios during autonomous vehicle runs
US11475577B2 (en) * 2020-11-01 2022-10-18 Southwest Research Institute Markerless motion capture of animate subject with prediction of future motion
JP7276306B2 (ja) * 2020-11-17 2023-05-18 トヨタ自動車株式会社 自動運転進路生成装置及び自動運転装置
US11753041B2 (en) 2020-11-23 2023-09-12 Waymo Llc Predicting behaviors of road agents using intermediate intention signals
US11554794B2 (en) 2020-11-25 2023-01-17 Argo AI, LLC Method and system for determining a mover model for motion forecasting in autonomous vehicle control
US11851081B2 (en) 2020-12-01 2023-12-26 Waymo Llc Predictability-based autonomous vehicle trajectory assessments
CN112752308B (zh) * 2020-12-31 2022-08-05 厦门越人健康技术研发有限公司 一种基于深度强化学习的移动预测无线边缘缓存方法
CN112926768A (zh) * 2021-01-27 2021-06-08 浙江工业大学 基于时空注意力机制的地面道路车道级交通流预测方法
US12019449B2 (en) 2021-02-18 2024-06-25 Argo AI, LLC Rare event simulation in autonomous vehicle motion planning
US20220308581A1 (en) * 2021-03-23 2022-09-29 Honda Motor Co., Ltd. System and method for completing continual multi-agent trajectory forecasting
CN113191539B (zh) * 2021-04-15 2022-03-15 电子科技大学 一种基于异构图聚合网络的高密度复合场景轨迹预测方法
CN112859883B (zh) * 2021-04-25 2021-09-07 北京三快在线科技有限公司 一种无人驾驶设备的控制方法及控制装置
CN117616415A (zh) * 2021-07-09 2024-02-27 保时捷股份公司 用于车辆中的切入和/或变道预测的系统和方法
US20230057100A1 (en) * 2021-08-20 2023-02-23 Robert Bosch Gmbh Method and system for a continuous discrete recurrent kalman network
US11887317B2 (en) * 2021-08-30 2024-01-30 Ford Global Technologies, Llc Object trajectory forecasting
US11780471B1 (en) * 2021-08-30 2023-10-10 Zoox, Inc. System for determining a state of an object using thermal data
EP4148456A1 (en) * 2021-09-10 2023-03-15 Aptiv Technologies Limited Computer implemented method, computer system and computer readable medium for object detection in a vehicle
US20230084262A1 (en) * 2021-09-10 2023-03-16 Edward Charles Troppi Smythe Prediction, Visualization, and Remediation of Conjunctions between Orbiting Bodies
WO2023044356A1 (en) * 2021-09-16 2023-03-23 X Development Llc Learning from demonstration for determining robot perception motion
CN113643542A (zh) * 2021-10-13 2021-11-12 北京理工大学 基于集成学习的多车交互环境下车辆轨迹预测方法及系统
CN114265373A (zh) * 2021-11-22 2022-04-01 煤炭科学研究总院 综采面一体式操控台控制系统
CN114237237A (zh) * 2021-12-06 2022-03-25 首都经济贸易大学 一种无人驾驶汽车自主转向控制的路径优化方法
EP4202753A1 (de) * 2021-12-21 2023-06-28 dSPACE GmbH Erzeugen von testdaten zum testen eines einen sensordatenstrom auswertenden steuersystems eines kraftfahrzeugs
EP4254267A1 (en) * 2022-03-30 2023-10-04 Aptiv Technologies Limited Methods and systems for object tracking
CN114881111B (zh) * 2022-04-02 2023-05-02 西安交通大学 基于无监督学习的载人航天器在轨耗氧状态自动判别方法
CN114926772B (zh) * 2022-07-14 2022-10-21 河南科技学院 一种咽拭子头部的跟踪与轨迹预测方法
CN115293297B (zh) * 2022-10-08 2023-01-20 武汉理工大学 一种意图驱动的船舶轨迹预测方法
WO2024081214A1 (en) * 2022-10-14 2024-04-18 Motional Ad Llc Graph exploration forward search
CN115629401B (zh) * 2022-12-22 2023-03-14 成都安则科技有限公司 一种无人机导航诱骗信号生成方法、系统、终端及介质

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2016156236A1 (en) * 2015-03-31 2016-10-06 Sony Corporation Method and electronic device
CN107368890A (zh) * 2016-05-11 2017-11-21 Tcl集团股份有限公司 一种以视觉为中心的基于深度学习的路况分析方法及系统
CN108022012A (zh) * 2017-12-01 2018-05-11 兰州大学 基于深度学习的车辆位置预测方法

Family Cites Families (33)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN114819137A (zh) * 2016-05-20 2022-07-29 渊慧科技有限公司 使用比较集对输入样本进行分类的方法、系统和存储介质
US11120353B2 (en) * 2016-08-16 2021-09-14 Toyota Jidosha Kabushiki Kaisha Efficient driver action prediction system based on temporal fusion of sensor data using deep (bidirectional) recurrent neural network
US9989964B2 (en) * 2016-11-03 2018-06-05 Mitsubishi Electric Research Laboratories, Inc. System and method for controlling vehicle using neural network
US10558750B2 (en) * 2016-11-18 2020-02-11 Salesforce.Com, Inc. Spatial attention model for image captioning
US10345449B2 (en) * 2016-12-02 2019-07-09 Verizon Connect Ireland Limited Vehicle classification using a recurrent neural network (RNN)
US10268200B2 (en) * 2016-12-21 2019-04-23 Baidu Usa Llc Method and system to predict one or more trajectories of a vehicle based on context surrounding the vehicle
US20180189647A1 (en) * 2016-12-29 2018-07-05 Google, Inc. Machine-learned virtual sensor model for multiple sensors
US11501154B2 (en) * 2017-05-17 2022-11-15 Samsung Electronics Co., Ltd. Sensor transformation attention network (STAN) model
US10589664B2 (en) * 2017-09-11 2020-03-17 Stanislav D. Kashchenko System and method for automatically activating turn indicators in a vehicle
US11017550B2 (en) * 2017-11-15 2021-05-25 Uatc, Llc End-to-end tracking of objects
US11461627B2 (en) * 2017-11-30 2022-10-04 Volkswagen Ag Systems and methods for training and controlling an artificial neural network with discrete vehicle driving commands
US11200489B2 (en) * 2018-01-30 2021-12-14 Imubit Israel Ltd. Controller training based on historical data
CN110622213B (zh) * 2018-02-09 2022-11-15 百度时代网络技术(北京)有限公司 利用3d语义地图进行深度定位和分段的系统和方法
WO2019191306A1 (en) 2018-03-27 2019-10-03 Nvidia Corporation Training, testing, and verifying autonomous machines using simulated environments
US10990096B2 (en) * 2018-04-27 2021-04-27 Honda Motor Co., Ltd. Reinforcement learning on autonomous vehicles
US11341356B2 (en) * 2018-06-15 2022-05-24 Uatc, Llc System and method for determining object intention through visual attributes
US10885698B2 (en) 2018-08-10 2021-01-05 Nvidia Corporation Method for programmable timeouts of tree traversal mechanisms in hardware
CN113056749B (zh) * 2018-09-11 2024-05-24 辉达公司 用于自主机器应用的未来对象轨迹预测
US20210397926A1 (en) * 2018-09-29 2021-12-23 VII Philip Alvelda Data representations and architectures, systems, and methods for multi-sensory fusion, computing, and cross-domain generalization
US11195418B1 (en) * 2018-10-04 2021-12-07 Zoox, Inc. Trajectory prediction on top-down scenes and associated model
US11256964B2 (en) * 2018-10-11 2022-02-22 Qualcomm Incorporated Recursive multi-fidelity behavior prediction
US20210339772A1 (en) * 2018-10-16 2021-11-04 Five Al Limited Driving scenarios for autonomous vehicles
US11062141B2 (en) * 2018-11-15 2021-07-13 Honda Motor Co., Ltd. Methods and apparatuses for future trajectory forecast
US10739777B2 (en) * 2018-11-20 2020-08-11 Waymo Llc Trajectory representation in behavior prediction systems
US11427210B2 (en) * 2019-09-13 2022-08-30 Toyota Research Institute, Inc. Systems and methods for predicting the trajectory of an object with the aid of a location-specific latent map
CN115605918A (zh) * 2019-10-04 2023-01-13 伟摩有限责任公司(Us) 时空嵌入
US11315421B2 (en) * 2019-11-20 2022-04-26 Toyota Motor Engineering & Manufacturing North America, Inc. Systems and methods for providing driving recommendations
US11276179B2 (en) * 2019-12-18 2022-03-15 Zoox, Inc. Prediction on top-down scenes based on object motion
US11687087B2 (en) * 2020-03-12 2023-06-27 Honda Motor Co., Ltd. Systems and methods for shared cross-modal trajectory prediction
US20200324794A1 (en) * 2020-06-25 2020-10-15 Intel Corporation Technology to apply driving norms for automated vehicle behavior prediction
CN114092751A (zh) * 2020-07-09 2022-02-25 北京图森未来科技有限公司 一种轨迹预测方法和装置
US20220144256A1 (en) * 2020-11-10 2022-05-12 Nec Laboratories America, Inc. Divide-and-conquer for lane-aware diverse trajectory prediction
US11851081B2 (en) * 2020-12-01 2023-12-26 Waymo Llc Predictability-based autonomous vehicle trajectory assessments

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2016156236A1 (en) * 2015-03-31 2016-10-06 Sony Corporation Method and electronic device
CN107368890A (zh) * 2016-05-11 2017-11-21 Tcl集团股份有限公司 一种以视觉为中心的基于深度学习的路况分析方法及系统
CN108022012A (zh) * 2017-12-01 2018-05-11 兰州大学 基于深度学习的车辆位置预测方法

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
EAVTP:一种环境自适应车辆轨迹预测方法;夏卓群;胡珍珍;罗君鹏;;小型微型计算机系统;20161015(10);全文 *

Also Published As

Publication number Publication date
US11989642B2 (en) 2024-05-21
EP3850548A1 (en) 2021-07-21
US20200082248A1 (en) 2020-03-12
WO2020055759A1 (en) 2020-03-19
US11514293B2 (en) 2022-11-29
CN113056749A (zh) 2021-06-29
US20230088912A1 (en) 2023-03-23

Similar Documents

Publication Publication Date Title
CN113056749B (zh) 用于自主机器应用的未来对象轨迹预测
CN113811886B (zh) 自主机器应用中的路口检测和分类
US11308338B2 (en) Distance to obstacle detection in autonomous machine applications
CN113168505B (zh) 用于自主驾驶机器的基于回归的线检测
CN110248861B (zh) 在车辆操纵过程中使用机器学习模型来引导车辆
US11966838B2 (en) Behavior-guided path planning in autonomous machine applications
US11704890B2 (en) Distance to obstacle detection in autonomous machine applications
US20220253706A1 (en) Distance to obstacle detection in autonomous machine applications
CN112825136B (zh) 自主机器应用中使用radar传感器检测障碍物的深度神经网络
CN113139642B (zh) 在自主驾驶应用中使用神经网络执行故障检测
CN114450724A (zh) 用于自主机器应用的多活动者环境中的未来轨迹预测
CN114631117A (zh) 使用机器学习的用于自主机器应用的传感器融合
JP2022530091A (ja) 自律マシン・アプリケーションにおける交差点姿勢検出
CN111133448A (zh) 使用安全到达时间控制自动驾驶车辆
CN113906271A (zh) 用于自主机器应用的使用地图信息增强的地面实况数据的神经网络训练
CN113950702A (zh) 在视频分析应用中使用相关滤波器的多对象跟踪
WO2021138160A1 (en) Lane change planning and control in autonomous machine applications
CN112825134A (zh) 自主机器应用中使用radar传感器检测障碍物的深度神经网络
CN114155272A (zh) 自主机器应用中的自适应目标跟踪算法
CN115315709A (zh) 自主系统中用于行为预测的基于模型的增强学习及应用
CN114550736A (zh) 用于自主驾驶应用的应急响应车辆检测
CN117581117A (zh) 自主机器系统和应用中使用LiDAR数据的动态对象检测
CN112989914B (zh) 具有自适应加权输入的注视确定机器学习系统
US20230391365A1 (en) Techniques for generating simulations for autonomous machines and applications
US20240232616A9 (en) Distance to obstacle detection in autonomous machine applications

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
GR01 Patent grant
GR01 Patent grant