1.以下的说明通常涉及生成机器学习模型的训练和/或调优数据。
背景技术:2.自主运载工具(av)通常包括需要使用训练数据来训练和调优的机器学习模型。机器学习模型的准确度高度依赖于训练和/或调优数据的质量。例如,如果机器学习模型将用于预测av在具有许多静态和动态对象(诸如其它运载工具等)的操作环境中的行为,则为了确保机器学习模型的准确度,重要的是训练和/或调优数据包括定性地捕获对象的正常行为的不同驾驶情景的大数据集。
技术实现要素:3.提供了用于对驾驶情景进行采样以提供机器学习模型的训练和/或调优数据的技术。
4.在实施例中,一种方法包括:使用至少一个处理器,将一组初始物理状态分配至用于一组模拟驾驶情景(例如,穿过交叉口、车道改变)的地图中的一组对象(例如,虚拟运载工具、行人、骑车者),其中所述一组组初始物理状态是根据随机数生成器的一个或多个输出来分配的;使用所述至少一个处理器,利用对象的初始物理状态来生成所述地图中的所述一组模拟驾驶情景;使用所述至少一个处理器来选择所述模拟驾驶情景的样本;使用所述至少一个处理器,利用所选择的样本训练机器学习模型(例如,深度神经网络);以及使用控制电路,利用经训练的机器学习模型在环境中操作运载工具。
5.在实施例中,所述一组对象中的至少一个对象是虚拟运载工具,并且所述方法还包括:分配所述虚拟运载工具的虚拟驾驶员的心理状态(例如,倾向于从停止位置起快速加速、倾向于紧跟);以及使用所述地图、所述一组对象中的各对象的初始物理状态和所述虚拟运载工具的所述虚拟驾驶员的心理状态来模拟驾驶情景。
6.在实施例中,所述虚拟驾驶员的心理状态包括驾驶员的加速偏好(例如,从停止位置起快速加速的偏好)。
7.在实施例中,所述虚拟驾驶员的心理状态包括维持另一虚拟运载工具与其它对象之间的间隙的偏好(例如,紧跟的偏好)。
8.在实施例中,所述虚拟驾驶员的心理状态包括对特定路线的偏好。
9.在实施例中,所述虚拟驾驶员的心理状态包括驾驶员的目标(例如,快速到达目的地)。
10.在实施例中,所述虚拟驾驶者的心理状态包括礼貌因素(例如,权重因子),所述礼貌因素用于确定驾驶员在多大程度上有意愿给驾驶情景中的其它虚拟驾驶员带来不便。
11.在实施例中,所述方法还包括:确定一组驾驶情景中的一个或多个失败的情景(例如,两个或更多个对象之间的碰撞);以及将所述一个或多个失败的驾驶情景从对所述机器学习模型进行训练中排除(例如,该一个或多个失败的驾驶情景未包括在训练数据中)。
12.在实施例中,失败的驾驶情景包括在两个或更多个对象之间预测到碰撞的驾驶情景。
13.在实施例中,失败的驾驶情景包括一个或多个对象的加速度值或减速度值高于或低于一个或多个指定阈值(例如,加速度将导致运载工具失去控制)的驾驶情景。
14.在实施例中,所述一组对象中的对象的初始物理状态包括初始位置和初始加速度,并且所述初始位置和所述初始加速度是根据所述随机数生成器所输出的不同随机数来分配的。
15.在实施例中,生成所述模拟驾驶情景还包括:在选择样本之前针对指定时间段在时间上向前预测各驾驶情景(例如,以允许各种对象无失败地遍历各自的轨迹)。
16.在实施例中,驾驶情景包括一个或多个对象所遵守的交通灯或交通标志。
17.在实施例中,所述机器学习模型是用于运动预测的深度学习神经网络。
18.在实施例中,一个或多个对象包括至少一个行人。
19.在实施例中,各采样驾驶情景包括各对象的多个时间戳以及关联的位置、速率或标记。
20.在实施例中,所述方法还包括:将采样情景嵌入到伪图像(例如,bev图像)中;以及使用所述伪图像训练所述机器学习模型(例如,训练图像语义神经网络)。
21.在实施例中,所述方法还包括:从统计分布(例如,正态分布)中选择唯一种子;以及利用所述种子初始化所述随机数生成器。
22.在实施例中,所述统计分布是驾驶情景上的联合分布。
23.在实施例中,驾驶情景是基于对象的指定密度(例如,城市vs乡村)、指定天、以及一天中的指定时间至少之一所生成的(例如,模拟高峰时间交通)。
24.所公开的实施例中的一个或多个提供了以下的优点中的一个或多个。所公开的系统和方法允许用户经由用户界面针对多个不同的驾驶情景选择、随机初始化、模拟和采样对象的物理和心理状态。采样驾驶情景可被单独用作机器学习模型的训练和/或调优数据或者用于增加实际驾驶日志数据。模拟驾驶情景可以提供更全面的训练和/或调优数据,然后可以由现实世界中的运载工具实际收集。对训练和/或调优数据的附加改进包括用于将心理状态分配至对象以更好地对现实世界驾驶情景进行建模的能力,其中驾驶员的偏好可以显著影响驾驶情景。
25.这些和其它方面、特征和实现可被表示为方法、设备、系统、组件、程序产品、用于进行功能的方法或步骤以及其它方式。从以下的包括权利要求书的说明书,这些和其它方面、特征和实现将变得明显。
附图说明
26.图1示出根据一个或多个实施例的具有自主能力的自主运载工具(av)的示例。
27.图2例示根据一个或多个实施例的示例“云”计算环境。
28.图3例示根据一个或多个实施例的计算机系统。
29.图4示出根据一个或多个实施例的av的示例架构。
30.图5示出根据一个或多个实施例的用于对驾驶情景进行采样的示例系统。
31.图6示出根据一个或多个实施例的用于使用采样驾驶情景来训练和/或调优机器
学习模型的示例系统。
32.图7是根据一个或多个实施例的用于对驾驶情景进行采样的示例处理的流程图。
具体实施方式
33.在以下描述中,为了解释的目的,阐述了许多具体细节,以便提供对本发明的透彻理解。然而,显而易见的是,本发明可以在没有这些具体细节的情况下实施。在其它实例中,众所周知的构造和装置是以框图形式示出的,以避免不必要地使本发明模糊。
34.在附图中,为了便于描述,显示了示意要素的具体安排或次序,例如表示设备、模块、指令块和数据要素的那些要素。然而,本领域技术人员应当理解,附图中示意要素的具体排序或安排并不意味着要求特定的处理顺序或序列、或处理过程的分离。此外,在附图中包含示意性要素并不意味着在所有实施例中都需要这种要素,也不意味着由这种要素表示的特征不能包括在一些实施例中或不能在一些实施例中与其它要素结合。
35.此外,在附图中,连接要素、例如实线或虚线或箭头用于说明两个或两个以上其它示意要素之间的连接、关系或关联,没有任何此类连接要素并不意味着不能存在连接、关系或关联。换句话说,一些要素之间的连接、关系或关联未在附图中显示,以便不掩盖本发明。此外,为了便于说明,使用单个连接要素来表示要素之间的多个连接、关系或关联。例如,如果连接元件代表信号、数据或指令的通信,本领域技术人员应理解,该元件代表影响通信可能需要的一个或多个信号路径(例如,总线)。
36.现在将详细参考实施例,其示例在附图中示出。在下面的详细描述中,阐述了许多具体细节,以便提供对所描述的各种实施例的透彻理解。然而,对于本领域的普通技术人员来说明显的是,可以在没有这些具体细节的情况下实施所描述的各种实施例。在其它情况下,没有详细描述众所周知的方法、程序、组件、电路和网络,以便不会不必要地掩盖实施例的方面。
37.下面描述的若干特征可以彼此独立地使用,也可以与其它特征的任何组合一起使用。但是,任何个别特征可能不能解决上述任何问题,或者只能解决上述问题之一。上文讨论的一些问题可能不能通过本文所述的任何一个特征得到充分解决。虽然提供了标题,但在本说明的其它地方也可以找到与某一标题有关但在该标题部分未找到的信息。本文根据以下概要描述实施例:
38.1.总体概述
39.2.系统概述
40.3.自主运载工具架构
41.4.对驾驶情景进行采样
42.总体概述
43.提供了用于对驾驶情景进行采样以用来训练和/或调优机器学习模型的技术。在实施例中,情景初始化器随机地选择与模拟驾驶情景中的一个或多个对象的物理和/或心理状态有关的要初始化的一个或多个参数。情景初始化器利用随机选择的一个或多个参数来初始化驾驶情景模拟器。驾驶情景模拟器针对驾驶情景中的一个或多个对象中的各对象生成对象踪迹(object track)。情景采样模块对一个或多个对象踪迹进行采样,并将样本存储在数据库中。然后使用这些样本来训练和/或调优一个或多个机器学习模型。
44.系统概述
45.图1示出具有自主能力的自主运载工具100的示例。
46.如本文所使用的,术语“自主能力”是指一种功能、特征或设施,该功能、特征或设施使运载工具能够部分地或完全地运行,而无需实时的人类干预,包括但不限于完全自主运载工具、高度自主运载工具、部分自主运载工具和有条件自主运载工具。
47.如本文所使用的,自主运载工具(av)是一种具有自主能力的运载工具。
48.如本文所使用的,“运载工具”包括货物或人员的运输方式。例如,小汽车、公共汽车、火车、飞机、无人机、卡车、船只、舰艇、潜水器、飞船等。无人驾驶的小汽车是运载工具的示例。
49.如本文所使用的,“轨迹”是指将av从第一时空地点操作到第二时空地点的路径或路线。在实施例中,第一时空地点被称为初始地点或起始地点,第二时空地点被称为目的地、最终地点、目标、目标位置或目标地点。在一些示例中,轨迹由一个或多个路段(例如,道路的数段)组成,并且各路段由一个或多个块(例如,车道或交叉路口的一部分)组成。在实施例中,时空地点对应于真实世界地点。例如,时空地点是上车或下车地点,以使人员或货物上车或下车。
50.如本文所使用的,“(一个或多个)传感器”包括一个或多个硬件组件,用于检测与传感器周围环境有关的信息。一些硬件部件可包括感测部件(例如,图像传感器、生物测量传感器)、发送和/或接收部件(例如,激光或射频波发射器和接收器)、电子部件(例如,模数转换器)、数据存储装置(例如,ram和/或非易失性存储器)、软件或固件部件和数据处理部件(例如,专用集成电路)、微处理器和/或微控制器。
51.如本文所使用的,“场景描述”是一种数据结构(例如,列表)或数据流,其包括由av运载工具上的一个或多个传感器检测到的一个或多个分类或标记的对象,或由av外部的源提供的一个或多个分类或标记的对象。
52.如本文所使用的,“道路”是一个可以被运载工具穿过的物理区域,并且可以对应于已命名的通道(例如,城市街道、州际高速公路等)或可对应于未命名的通道(例如,房屋或办公楼内的行车道、停车场的一段、空置停车场的一段、乡村地区的污物通道等)。因为有些运载工具(如四轮驱动的小卡车、越野车(suv)等)能够穿越各种不特别适合运载工具行驶的物理区域,因此“道路”可以是任何市政当局或其它政府或行政机构没有正式界定为一条通道的物理区域。
53.如本文所使用的,“车道”是道路的可被运载工具穿过的部分,并且可对应于车道标记之间的大部分或全部空间,或仅对应于车道标记之间的部分空间(例如,小于50%)。例如,具有相距很远的车道标记的道路可能容纳两个或两个以上的运载工具,使得一个运载工具可以在不穿过车道标记的情况下超过另一个运载工具,因此可被解释为车道比车道标记之间的空间窄,或车道之间有两个车道。在没有车道标记的情况下,也可以对车道进行解释。例如,可以基于环境的物理特征(例如,农村地区的岩石和沿着大道的树木)来定义车道。
[0054]“一个或多个”包括由一个要素执行的功能,由多个要素执行的功能、例如以分布式的方式,由一个要素执行的几个功能,由几个要素执行的几个功能,或上述的任意组合。
[0055]
还将理解的是,尽管在某些情况下,术语“第一”、“第二”等是用来描述各种要素
的,但这些要素不应受到这些术语的限制。这些术语仅用于区分一个要素与另一个要素。例如,在未背离各种所述实施例的范围的情况下,第一触点可被称为第二触点,并且同样,第二触点可被称为第一触点。第一触点和第二触点都是触点,但这两者不是相同触点。
[0056]
此处描述的各种实施例的描述中使用的术语仅用于描述特定实施例,而不是意在限制。正如在所描述的各种实施例和所附权利要求书的描述中所使用的,单数形式“a”、“an”和“the”也意在包括复数形式,除非上下文另有明确说明。还应理解,本文所用的"和/或"一词是指并且包括一个或多个相关清单项目的任何和所有可能的组合。还应理解的是,在本说明中使用的术语“包括”、“包含”、“具备”和/或“具有”具体说明存在所述的特征、整数、步骤、操作、要素和/或组成部分,但并不排除存在或添加一个或多个其它特征、整数、步骤、操作、要素、组成部分、和/或上述的组。
[0057]
如本文所使用的,“如果”一词可选择地理解为在该情况下、在当时、或者响应于检测到、或响应于确定为,视上下文而定。同样,“如果已确定”或“如果[所述条件或事件]已被检测到”这一短语,视情境而定,可以理解为“在确定时”或“响应于确定为“或”在检测到[所述条件或事件]时”或“响应于检测到[所述条件或事件]”。
[0058]
如本文所使用的,av系统是指av以及实时生成的支持av操作的硬件、软件、存储的数据和实时生成的支持av运作的数据。在实施例中,av系统并入在av内。在实施例中,av系统跨多个地点分布。例如,av系统的一些软件是在类似于下面结合图3描述的云计算环境300的云计算环境中实现的。
[0059]
一般而言,本文件描述了适用于任何具有一种或多种自主能力的运载工具的技术,包括完全自主运载工具、高度自主运载工具和有条件自主运载工具,如所谓的第5级、第4级和第3级运载工具(见sae国际标准j3016:道路上机动车自动驾驶系统相关术语的分类和定义,通过引用将其全部内容纳入本说明,以了解运载工具自主权等级的更多详细信息)。本说明所述技术也适用于部分自主运载工具和驾驶员辅助运载工具,如所谓的2级和1级运载工具(见sae国际标准j3016:道路上机动车自动驾驶系统相关术语的分类和定义)。在实施例中,一个或多个1级、2级、3级、4级和5级运载工具系统可根据对传感器输入的处理,在某些操作条件下自动执行某些运载工具操作(例如,转向、制动和使用地图)。本文件中所述的技术可以使从完全自主运载工具到人类操作的运载工具的各级运载工具受益。
[0060]
参考图1,av系统120使av 100沿着轨迹198运行,穿过环境190至目的地199(有时称为最终地点),同时避开对象(例如,自然障碍物191、运载工具193、行人192、骑车者和其它障碍物)和遵守道路规则(例如,操作规则或驾驶偏好)。
[0061]
在实施例中,av系统120包括用于从计算机处理器146接收操作命令并对其进行操作的装置101。在实施例中,计算处理器146与下面参考图3描述的处理器304相似。装置101的示例包括转向控制器102、制动器103、挡位、加速踏板或其它加速控制机构、挡风玻璃雨刮器、侧门锁、窗控器和转向指示器。
[0062]
在实施例中,av系统120包括用于测量或推断av 100的状态或条件的属性的传感器121,这些属性诸如是av的位置、线速度和加速度及角速度和加速度、以及航向(例如,av 100的前端的方向)。传感器121的示例是全球导航卫星系统(gnss)接收器、以及测量运载工具线性加速度和角速率的惯性测量单元(imu)、用于测量或估计车轮滑移率的车轮速率传感器、车轮制动压力或制动扭矩传感器、引擎扭矩或车轮扭矩传感器以及转向角度和角速
率传感器。
[0063]
在实施例中,传感器121还包括用于感测或测量av的环境的属性的传感器。例如,可见光、红外或热(或两者兼有)光谱的单目或立体摄像机122、lidar 123、radar、超声波传感器、飞行时间(tof)深度传感器、速率传感器、温度传感器、湿度传感器和降水传感器。
[0064]
在实施例中,av系统120包括数据存储单元142和存储器144,用于存储与计算机处理器146或由传感器121收集的数据相关的机器指令。在实施例中,数据存储单元142与以下结合图3描述的rom 308或存储装置310类似。在实施例中,存储器144与下面描述的主存储器306类似。在实施例中,数据存储单元142和存储器144存储有关环境190的历史、实时和/或预测性信息。在实施例中,存储的信息包括地图、驾驶性能、交通拥堵更新或天气条件。在实施例中,与环境190有关的数据通过来自远程数据库134的通信通道传输到av100。
[0065]
在实施例中,av系统120包括通信装置140,用于将对其它运载工具的状态和条件(诸如位置、线性和角速度、线性和角加速度以及线性和角航向等)的测量到或推断的属性传送到av 100。这些装置包括运载工具到运载工具(v2v)和运载工具到基础设施(v2i)通信装置以及用于通过点对点或自组织(ad hoc)网络或两者兼而有之进行无线通信的装置。在实施例中,通信装置140跨电磁频谱(包括无线电和光通信)或其它介质(例如,空气和声学介质)进行通信。运载工具对运载工具(v2v)、运载工具对基础设施(v2i)通信(以及在一些实施例中为一种或多种其它类型的通信)的组合有时被称为运载工具对所有事物(v2x)通信。v2x通信通常符合一个或多个通信标准,用于与自主运载工具进行的和在自主运载工具之间的通信。
[0066]
在实施例中,通信装置140包括通信接口。例如,有线、无线、wimax、wi-fi、蓝牙、卫星、蜂窝、光、近场、红外或无线电接口。通信接口将数据从远程数据库134传输到av系统120。在实施例中,远程数据库134嵌入云计算环境200中,如图2中所述。通信接口140将从传感器121收集的数据或与av 100操作有关的其它数据传输到远程数据库134。在实施例中,通信接口140向av 100传输与远程操作有关的信息。在一些实施例中,av 100与其它远程(例如,“云”)服务器136通信。
[0067]
在实施例中,远程数据库134还存储和传输数字数据(例如,存储道路和街道地点等的数据)。这些数据存储在av 100上的存储器144中,或者通过通信通道从远程数据库134传输到av 100。
[0068]
在实施例中,远程数据库134存储和传输与以前在一天中类似时间沿着轨迹198行驶的运载工具的驾驶属性有关的历史信息(例如,速率和加速率分布)。在一个实现中,这种数据可以存储在av 100上的存储器144中,或者通过通信通道从远程数据库134传输到av 100。
[0069]
位于av 100上的计算装置146基于实时传感器数据和先验信息以算法方式生成控制动作,使得av系统120能够执行其自主驾驶能力。
[0070]
在实施例中,av系统120包括连接到计算装置146的计算机外围设备132,用于向av 100的用户(例如,乘员或远程用户)提供信息和提醒并接收来自该用户的输入。在实施例中,外围设备132类似于下面参考图3讨论的显示器312、输入装置314和光标控制器316。连接是无线的或有线的。任意两个或更多的接口设备可以集成到单个设备中。
[0071]
示例云计算环境
[0072]
图2例示示例“云”计算环境。云计算是一种服务交付模式,可以方便、按需地在网络上访问共享的可配置计算资源池(例如网络、网络带宽、服务器、处理、内存、存储、应用程序、虚拟机和服务)。在典型的云计算系统中,一个或多个大型云数据中心容纳用于递送云所提供的服务的机器。现在参考图2,云计算环境200包括通过云202互连的云数据中心204a、204b和204c。数据中心204a、204b和204c为连接到云202的计算机系统206a、206b、206c、206d、206e和206f提供云计算服务。
[0073]
云计算环境200包括一个或多个云数据中心。通常,云数据中心(例如图2中所示的云数据中心204a)是指构成云(例如图2中所示的云202或云的特定部分)的服务器的物理排列。例如,服务器在云数据中心中物理排列成房间、组、行和机架。云数据中心有一个或多个区域,其中包括一个或多个服务器房间。每个房间有一行或多行服务器,每行都包括一个或多个机架。每个机架包括一个或多个单独的服务器节点。在一些实现中,区域、房间、机架和/或行中的服务器根据数据中心设施的物理基础设施要求(包括电力、能源、热力、热源和/或其它要求)分为若干组。在实施例中,服务器节点类似于图3中描述的计算机系统。数据中心204a具有许多分布在多个机架上的计算系统。
[0074]
云202包括云数据中心204a、204b和204c以及用于连接云数据中心204a、204b和204c并有助于促进计算系统206a-f对云计算服务的访问的网络和网络资源(例如,网络设备、节点、路由器、交换机和网络电缆)。在实施例中,该网络表示一个或多个本地网络、广域网或通过使用地面或卫星连接部署的有线或无线链路连接的网际网络的任意组合。通过网络交换的数据采用多种网络层协议(如internet协议(ip)、多协议标签交换(mpls)、异步传输模式(atm)、帧中继(framerelay)等)进行传输。此外,在网络代表多个子网络的组合的实施例中,在每个底层子网络上使用不同的网络层协议。在一些实施例中,网络代表一个或多个互连网际网络(例如公共互联网等)。
[0075]
计算系统206a-f或云计算服务消费者通过网络链路和网络适配器连接到云202。在实施例中,计算系统206a-f被实现为各种计算装置,例如服务器、台式机、膝上型计算机、平板电脑、智能手机、物联网(iot)设备、自主运载工具(包括小汽车、无人机、航天飞机、火车、公共汽车等)和消费电子产品。在实施例中,计算系统206a-f在其它系统中实现或作为其它系统的一部分实现。
[0076]
计算机系统
[0077]
图3例示计算机系统300。在实现中,计算机系统300是一种专用计算装置。专用计算装置被硬连线以执行这些技术,或包括诸如一个或多个专用集成电路(asic)或现场可编程门阵列(fpga)等的被持久编程为进行上述技术的数字电子装置,或可包括一个或多个通用硬件处理器,这些硬件处理器经编程以根据固件、存储器、其它存储器、或者组合中的程序指令执行这些技术。这种专用的计算装置还可以将定制的硬线逻辑、asic或fpga与定制的编程相结合来完成这些技术。在各种实施例中,专用计算装置是台式计算机系统、便携式计算机系统、手持设备、网络设备或包含硬线和/或程序逻辑以实现这些技术的任何其它设备。
[0078]
在实施例中,计算机系统300包括总线302或用于通信信息的其它通信机制、以及与总线302连接以处理信息的硬件处理器304。硬件处理器304是例如通用微处理器。计算机系统300还包括主存储器306,例如随机存取存储器(ram)或其它动态存储装置,连接到总线
302以存储信息和指令,该信息和指令由处理器304执行。在一个实现中,主存储器306用于在执行要由处理器304执行的指令期间存储临时变量或其它中间信息。当这些指令存储在处理器304可访问的非暂时性存储介质中时,使计算机系统300变成一个专用机器,该机器被定制以执行指令中指定的操作。
[0079]
在实施例中,计算机系统300还包括只读存储器(rom)308或连接到总线302的其它静态存储装置,用于存储处理器304的静态信息和指令。提供诸如磁盘、光盘、固态驱动器或三维交叉点存储器等的存储装置310,并连接到总线302以存储信息和指令。
[0080]
在实施例中,计算机系统300通过总线302连接到诸如阴极射线管(crt)、液晶显示器(lcd)、等离子体显示器、发光二极管(led)显示器或用于向计算机用户显示信息的有机发光二极管(oled)显示器等的显示器312。包括字母数字键和其它键的输入装置314连接到总线302,用于向处理器304传送信息和命令选择。另一种类型的用户输入装置是光标控制器316,例如鼠标、轨迹球、触控显示器或光标方向键,用于将方向信息和命令选择传送到处理器304,并用于控制光标在显示器312上的移动。这种输入装置通常具有两个轴线上的两个自由度,第一轴线(例如,x轴)和第二轴线(例如,y轴),这两个轴线允许装置指定平面上的位置。
[0081]
根据一个实施例,这里的技术由计算机系统300执行,以响应处理器304执行主存储器306中包含的一个或多个指令的一个或多个序列。这些指令从诸如存储装置310等的另一存储介质读入主存储器306。执行主存储器306中包含的指令序列使处理器304执行本文所述的处理步骤。在替代实施例中,使用硬连线电路代替或与软件指令结合使用。
[0082]
此处使用的术语“存储介质”是指存储数据和/或指令的任何非暂时性介质,这些数据和/或指令使机器以特定方式运行。这种存储介质包括非易失性介质和/或易失性介质。非易失性介质例如包括诸如存储装置310等的光盘、磁盘、固态驱动器或三维交叉点存储器。易失性介质包括动态存储器,诸如主存储器306等。存储介质的常见形式包括例如软盘、软盘、硬盘、固态驱动器、磁带或任何其它磁数据存储介质、cd-rom、任何其它光数据存储介质、任何具有孔型的物理介质、ram、prom和eprom、flash-eprom、nv-ram、或任何其它存储芯片或存储盒。
[0083]
存储介质有别于传输介质,但可以与传输介质相结合使用。传输介质参与存储介质之间的信息传输。例如,传输介质包括同轴电缆、铜线和光纤,其包括具备总线302的电线。传输介质也可以采取声波或光波的形式,如在无线电波和红外数据通信过程中产生的声波或光波。
[0084]
在实施例中,各种形式的介质涉及向处理器304携带一个或多个指令序列以供执行。例如,这些指令最初是在远程计算机的磁盘或固态驱动器上执行的。远程计算机将指令加载到其动态存储器中,并使用调制解调器通过电话线路发送指令。计算机系统300的本地调制解调器接收电话线路上的数据,并使用红外发射机将数据转换为红外信号。红外检测器接收红外信号中携带的数据,并且适当的电路将数据放置在总线302上。总线302将数据承载到主存储器306,处理器304从主存储器306检索并执行指令。主存储器306接收的指令可以任选地在处理器304执行之前或之后存储在存储装置310上。
[0085]
计算机系统300还包括连接到总线302的通信接口318。通信接口318提供耦合到连接至本地网络322的网络链路320多双向数据通信。例如,通信接口318是综合业务数字网
(isdn)卡、电缆调制解调器、卫星调制解调器或用以提供与相应类型电话线路的数据通信连接的调制解调器。作为另一示例,通信接口318是局域网(lan)卡,用于提供与兼容lan的数据通信连接。在一些实现中,无线链路也被实现。在任何这种实现中,通信接口318发送和接收承载代表各种信息的数字数据流的电、电磁或光信号。
[0086]
网络链路320通常通过一个或多个网络向其它数据装置提供数据通信。例如,网络链路320通过本地网络322提供与主计算机324或与由因特网服务提供商(isp)326运营的云数据中心或设备的连接。isp 326又通过现在通常称为“因特网”的世界范围分组数据通信网络来提供数据通信服务。本地网络322和因特网328都使用携带数字数据流的电、电磁或光信号。通过各种网络的信号以及网络链路320上并通过通信接口318的信号是传输介质的示例形式,其中通信接口318承载了进出计算机系统300的数字数据。在实施例中,网络320包含上述云202或云202的一部分。
[0087]
计算机系统300通过(一个或多个)网络、网络链路320和通信接口318发送消息和接收包括程序代码的数据。在实施例中,计算机系统300接收用于处理的代码。接收到的代码在接收到时由处理器304执行,和/或存储在存储装置310中,或存储在其它非易失性存储装置中以便以后执行。
[0088]
自主运载工具架构
[0089]
图4示出用于自主运载工具(例如,图1所示的av 100)的示例架构400。架构400包括感知模块402(有时称为感知电路)、规划模块404(有时称为规划电路)、控制模块406(有时称为控制电路)、定位模块408(有时称为定位电路)和数据库模块410(有时称为数据库电路)。各模块在av 100的操作中发挥作用。共同地,模块402、404、406、408和410可以是图1所示的av系统120的一部分。在一些实施例中,模块402、404、406、408和410中的任何模块是计算机软件(例如,计算机可读介质上所存储的可执行代码)和计算机硬件(例如,一个或多个微处理器、微控制器、专用集成电路[asic]、硬件存储器装置、其它类型的集成电路、其它类型的计算机硬件、或者这些硬件中的任何或所有的组合)的组合。
[0090]
在使用中,规划模块404接收表示目的地412的数据,并且确定表示av100为了到达(例如,抵达)目的地412而可以行驶的轨迹414(有时称为路线)的数据。为了使规划模块404确定表示轨迹414的数据,规划模块404从感知模块402、定位模块408和数据库模块410接收数据。
[0091]
感知模块402使用例如也如图1所示的一个或多个传感器121来识别附近的物理对象。将对象分类(例如,分组成诸如行人、自行车、汽车、交通标志等的类型),并且将包括经分类的对象416的场景描述提供至规划模块404。
[0092]
规划模块404还从定位模块408接收表示av位置418的数据。定位模块408通过使用来自传感器121的数据和来自数据库模块410的数据(例如,地理数据)以计算位置来确定av位置。例如,定位模块408使用来自gnss接收器的数据和地理数据来计算av的经度和纬度。在实施例中,定位模块408所使用的数据包括具有行车道几何属性的高精度地图、描述道路网络连接属性的地图、描述行车道物理属性(诸如交通速率、交通量、运载工具和自行车车道的数量、车道宽度、车道交通方向、或车道标记类型和地点,或者它们的组合)的地图、以及描述道路特征(诸如十字路口、交通标志或各种类型的其它行驶信号等)的空间地点的地图。
[0093]
控制模块406接收表示轨迹414的数据和表示av位置418的数据,并且以将使得av 100行驶轨迹414到达目的地412的方式来操作av的控制功能420a~420c(例如,转向、油门、制动、点火)。例如,如果轨迹414包括左转,则控制模块406将以如下方式操作控制功能420a~420c:转向功能的转向角度将使得av 100左转,并且油门和制动将使得av 100在进行转弯之前暂停并等待经过的行人或运载工具。
[0094]
对驾驶情景进行采样
[0095]
图5是根据一个或多个实施例的用于对驾驶情景进行采样的示例系统500。系统500包括种子生成器501、伪随机数生成器502、情景数据库503、情景初始化器504、模拟器505、用户界面(ui)506和情景样本数据库507。
[0096]
在实施例中,ui 506可以是允许用户从情景数据库503中所存储的多个驾驶情景中选择驾驶情景的图形用户界面(gui)、文本或语音界面。用户还可以使用ui 506来从情景数据库503中选择一个或多个参数,以随机地初始化所选择的驾驶情景中的一个或多个对象的物理和心理状态。用户的输入由情景初始化器504接收到,该情景初始化器504初始化模拟器505所要模拟的一个或多个对象的物理和心理状态。在实施例中,即使准确的参数未存储在数据库503中,ui 506也允许用户通过指定一个或多个对象的物理和心理状态以及路网(地图)来创建情景。
[0097]
如本文所使用的,对象的“物理状态”例如包括对象的位置、速率、加速度、方向或朝向、以及对象类型(例如,运载工具、行人、骑车者)。对象的“心理状态”是指运载工具、摩托车、自行车或任何其它运载工具的虚拟驾驶员、或者行人的心理状态。心理参数的一些示例包括但不限于:驾驶员的加速偏好(例如,从停止位置快速加速的偏好)、与其它对象维持特定距离的偏好(例如,紧跟的偏好)、对特定路线的偏好、驾驶员的目标(例如,快速到达目的地)、使用转向或手势信号的倾向、以及礼貌因素(例如,权重因子),该礼貌因素确定虚拟驾驶员在多大程度上有意愿通过在驾驶情景中采用例如过于挑衅或过于被动的驾驶方式来给其它驾驶员带来不便。
[0098]
在实施例中,用户可以使用ui 506来选择prng 502所要使用的统计分布(例如,正态分布),以根据所选择的分布生成伪随机数。在实施例中,统计分布可以是两个或更多个情景参数上的联合概率分布。随机数用于随机地生成或分配情景数据库503中所存储的情景参数。例如,随机数可以是指定范围中的实数,并且参数可以是对象(例如,运载工具)的加速度。在该示例中,随机数用于从情景数据库504内所存储的一组初始加速度中随机地选择初始加速度。在实施例中,可以使用由通过例如硬件或物理现象提供的真正随机种子播种的真随机数生成器(例如,硬件rng)。
[0099]
在初始化之后,模拟器505基于初始化后的物理状态和心理状态来模拟对象在地图中的运动,以生成对象踪迹。例如,模拟器505可以实现动态模型和运动方程,以在用户例如经由ui 506指定的模拟时间段内生成对象踪迹。用户还可以经由ui 506选择样本数据速率。例如,用户可能希望按1hz来采样对象踪迹。对象踪迹由模拟器505输出,并被存储在情景样本数据库507中。在实施例中,各所存储的样本至少包括驾驶情景中的各对象的时间戳和物理状态(例如,位置、速率和加速度)。如果对象具有也将连同样本一起存储的心理状态,则用户可以使用ui 506来从情景样本数据库507中查看和选择样本。
[0100]
在实施例中,模拟器505确定特定驾驶情景是否是“失败的”驾驶情景。“失败的”情
景的示例包括但不限于:两个或多个对象碰撞、或者对象中的一个或多个的加速度或减速度值高于或低于一个或多个指定阈值(例如,加速度过高会导致运载工具失去控制)的情景。
[0101]
在实施例中,在将样本输出到情景样本数据库507之前,针对指定数量的时间单位在时间上向前模拟各驾驶情景,以使得一个或多个对象能够无失败地遍历各自的轨迹。例如,根据两个或更多个对象的随机化初始状态,这些对象可能在模拟的最初几秒内相撞,从而产生失败的驾驶情景。通过在采样之前使模拟运行指定时间段(例如,2-3秒),可以避免或从数量上减少这些失败的情景。
[0102]
在实施例中,对象遵守规则手册和/或交通规则(例如,在停车标志和交通灯处停止、在张贴的限速内驾驶)。
[0103]
在实施例中,模拟器505模拟任何希望的驾驶情景,这些驾驶情景包括但不限于传感器故障情景、不利的天气条件、不利的道路条件、低或高的对象或交通密度、通信故障情景。所模拟的驾驶情景可以针对任何希望的道路特性或条件,这些道路特性或条件包括但不限于:交叉口情景、车道改变情景、碰撞避免情景等。在实施例中,驾驶情景是基于对象的指定密度(例如,城市vs农村)、指定天、以及一天中的指定时间至少之一所生成的(例如,以模拟高峰时间交通或者比较城市与乡村表现)。
[0104]
在实施例中,对于给定的情景,一个或多个对象的“物理状态”是固定的,并且虚拟驾驶员的“心理状态”是变化的,例如,改变预期路线、礼貌、到前方运载工具的车头时距等。
[0105]
图6是根据一个或多个实施例的用于使用系统500所生成的采样驾驶情景来训练和调优机器学习模型的示例系统600。系统600包括情景样本数据库507、数据拆分器601、训练数据库602a、调优数据库602b、机器学习模型603(例如,运动预测模型)、调优模块604和av日志数据库605。
[0106]
在实施例中,将情景样本数据库507中的情景样本拆分为训练数据602a和调优数据602b。在训练模式中,利用训练数据602a训练机器学习模型603。可以使用监督、无监督或强化方法来训练和/或调优机器学习模型603。机器学习模型603包括但不限于:人工神经网络、决策树、支持向量机、回归分析、贝叶斯网络和遗传算法。在实施例中,将采样驾驶情景嵌入在诸如鸟瞰图(bev)等的伪图像中,该伪图像用于训练机器学习模型(例如,训练基于图像的深度神经网络)。
[0107]
在调优模式中,使用调优数据602b和/或来自数据库605的av日志数据来调优机器学习模型603。调优模块604通过机器学习模型603所输出的预测的损失函数以及地面真值数据的迭代优化来调优机器学习模型603。例如,通过损失函数的迭代优化,机器学习模型603学习可用于预测与新输入相关联的输出的最优函数。最优函数允许机器学习算法正确地确定针对调优数据602b和/或av日志数据的输出。在实施例中,机器学习模型603是深度神经网络,并且调优模块604使用计算该深度神经网络的更新权重的随机梯度下降或adam优化器来迭代地优化均方误差(mse)损失函数。经训练的机器学习模型603被存储并随后用于现实世界自主驾驶的推断,诸如针对定位、规划、感知和控制任务中的一个或多个的运动预测等。
[0108]
示例处理
[0109]
图7是根据一个或多个实施例的对驾驶情景进行采样的处理700的流程图。处理
700例如可以使用参考图3所述的计算机系统来实现。
[0110]
处理700从将一组初始物理状态分配至用于一组模拟驾驶情景的地图中的一组对象开始,其中该组初始物理状态是根据随机数生成器的一个或多个输出所分配的(701)。例如,随机数或伪随机数生成器可以利用种子初始化,并且被配置为生成可用于生成或分配一个或多个对象的物理和心理状态的初始化参数的随机数或伪随机数。在实施例中,对于给定的情景,一个或多个对象的“物理状态”是固定的,并且虚拟驾驶员的“心理状态”是变化的,例如,改变预期路线、礼貌、到前方运载工具的车头时距等。
[0111]
处理700继续使用初始化后的一个或多个对象的物理状态和可选的心理状态来生成模拟驾驶情景(702)。例如,可以使用动态模型和运动方程来从一个或多个对象的随机初始化的物理状态开始在地图中移动该一个或多个对象。
[0112]
处理700继续选择模拟驾驶情景的样本(703)。例如,用户可以如参考图6所述从驾驶样本数据库507中选择驾驶情景样本,并且还可以指定模拟数据输出的数据速率。
[0113]
处理700继续使用所选择的样本来训练和/或调优机器学习模型(704)。例如,如参考图6所述,可以使用用户经由用户界面选择的驾驶情景样本来训练深度神经网络。
[0114]
处理700继续使用经训练和/或调优的机器学习模型来在环境中操作运载工具(705)。例如,经训练的深度神经网络可以由av的感知模块使用以推断一个或多个对象的运动。
[0115]
在先前描述中,已经参考许多具体细节描述了本发明的实施例,这些具体细节可因实现而不同。因此,说明书和附图应被视为说明性的,而非限制性意义的。本发明范围的唯一且排他的指示、以及申请人期望是本发明范围的内容是以授权权利要求的具体形式从本技术授权的权利要求书的字面和等同范围,包括任何后续修正。本文中明确阐述的用于被包括在此类权利要求中的术语的任何定义应当以此类术语如在权利要求书中所使用的意义为准。另外,当在先前的说明书或所附权利要求书使用术语“还包括”时,该短语的下文可以是附加的步骤或实体、或先前所述的步骤或实体的子步骤/子实体。