数据处理方法、装置、车辆、存储介质及芯片与流程

文档序号:31168976发布日期:2022-08-17 09:07阅读:102来源:国知局
数据处理方法、装置、车辆、存储介质及芯片与流程

1.本公开涉及自动驾驶领域,尤其涉及数据处理方法、装置、车辆、存储介质及芯片。


背景技术:

2.在车辆自动驾驶过程中以及自动驾驶研发过程中,会采集海量的数据需要对这些数据进行处理以高效的筛选和利用。在相关技术中,会将这些数据从分布式文件系统或者非临时性存储介质中读取,并输入若干个模型,然后进行数据处理,在多模型推理的过程中同一份数据可能会输入多个模型,在海量数据的场景下,同一份数据的反复读取极大的影响了整体的数据处理效率。


技术实现要素:

3.为克服相关技术中存在的问题,本公开提供一种数据处理方法、装置、车辆、存储介质及芯片。
4.根据本公开实施例的第一方面,提供一种数据处理方法,所述方法包括:通过拓扑排序确定计算图中目标数据处理节点依赖的至少一个目标数据加载节点,所述目标数据处理节点为所述计算图中的任意一个或多个数据处理节点,所述计算图是一个有向无环图,包括多个节点,所述多个节点包括数据加载节点以及数据处理节点;响应于确定所述目标数据加载节点将目标数据加载至缓存,调用所述目标数据处理节点;通过所述目标数据处理节点对所述缓存中的所述目标数据进行数据处理,得到数据处理结果。
5.可选地,所述方法包括:通过所述目标数据加载节点,将所述目标数据存储至所述缓存;并,基于所述目标数据加载节点对应的节点名以及数据标识,生成数据指针;将所述数据指针发送至所述目标数据处理节点,并确定所述目标数据加载节点将数据加载至所述缓存;所述通过所述目标数据处理节点对所述缓存中的所述目标数据进行数据处理包括:基于所述数据指针,在所述缓存中获取所述目标数据。
6.可选地,所述确定所述计算图中目标数据处理节点依赖的目标数据加载节点之后,包括:将所述目标数据处理节点加入待调度队列;所述响应于确定所述目标数据加载节点将目标数据加载至缓存,调用所述目标数据处理节点包括:依次扫描所述待调度队列,在扫描至所述目标数据处理节点的情况下,确定所述目标数据是否加载至所述缓存;
在确定所述目标数据加载至所述缓存情况下,所述将所述目标数据处理节点加入就绪队列;依次扫描所述就绪队列,在扫描至所述目标数据处理节点的情况下,调用所述目标数据处理节点;并,在所述目标数据处理节点调用完成后,将所述目标数据处理节点加入所述待调度队列。
7.可选地,所述计算图包括输出节点,每一所述数据处理节点均连接至所述输出节点,所述调用所述目标数据处理节点之后,包括:将所述目标数据处理节点加入计算队列;依次扫描所述计算队列,在扫描至所述目标数据处理节点的情况下,若所述目标数据处理节点处理完成,将所述目标数据处理节点的数据处理结果存储至所述缓存;并,基于所述目标数据处理节点对应的节点名以及数据标识,生成数据指针;将所述数据指针发送至所述输出节点,并通过所述输出节点基于所述数据指针在所述缓存中获取所述数据处理结果并输出。
8.可选地,所述依次扫描所述待调度队列,在扫描至所述目标数据处理节点的情况下,确定所述目标数据加载是否加载至所述缓存之后,包括:在确定所述目标数据加载节点数据未准备就绪的情况下,调用所述目标数据加载节点,以将所述目标数据加载至所述缓存。
9.可选地,所述将所述目标数据处理节点加入待调度队列之后,包括:调用所述目标数据加载节点,以将所述目标数据加载至所述缓存。
10.根据本公开实施例的第二方面,提供一种数据处理装置,所述装置包括:确定模块,被配置为通过拓扑排序确定计算图中目标数据处理节点依赖的至少一个目标数据加载节点,所述目标数据处理节点为所述计算图中的任意一个或多个数据处理节点,所述计算图是一个有向无环图,包括多个节点,所述多个节点包括数据加载节点以及数据处理节点;调用模块,被配置为响应于确定所述目标数据加载节点将目标数据加载至缓存,调用所述目标数据处理节点;处理模块,被配置为通过所述目标数据处理节点对所述缓存中的所述目标数据进行数据处理,得到数据处理结果。
11.根据本公开实施例的第三方面,提供一种车辆,包括:处理器;用于存储处理器可执行指令的存储器;其中,所述处理器被配置为:通过拓扑排序确定计算图中目标数据处理节点依赖的至少一个目标数据加载节点,所述目标数据处理节点为所述计算图中的任意一个或多个数据处理节点,所述计算图是一个有向无环图,包括多个节点,所述多个节点包括数据加载节点以及数据处理节点;响应于确定所述目标数据加载节点将目标数据加载至缓存,调用所述目标数据处理节点;通过所述目标数据处理节点对所述缓存中的所述目标数据进行数据处理,得到数
据处理结果。
12.根据本公开实施例的第四方面,提供一种计算机可读存储介质,其上存储有计算机程序指令,该程序指令被处理器执行时实现本公开第一方面中任一项所述方法的步骤。
13.根据本公开实施例的第五方面,提供一种芯片,包括处理器和接口;所述处理器用于读取指令以执行本公开第一方面中任一项所述的方法。
14.本公开的实施例提供的技术方案可以包括以下有益效果:基于预先绘制得到的计算图确定目标数据处理节点所需的数据,并通过对应的数据加载节点将所需的数据加载至缓存,基于缓存实现了数据在节点间的零拷贝传输,在不同的数据处理模块进行数据处理时,无需多次获取相同的数据,有效地降低了计算资源以及存储资源,最大程度地复用了数据的加载。
15.应当理解的是,以上的一般描述和后文的细节描述仅是示例性和解释性的,并不能限制本公开。
附图说明
16.此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本公开的实施例,并与说明书一起用于解释本公开的原理。
17.图1是根据一示例性实施例示出的一种数据处理方法的流程图。
18.图2是根据一示例性实施例示出的一种计算图的示意图。
19.图3是根据一示例性实施例示出的一种数据处理方法的另一流程图。
20.图4是根据一示例性实施例示出的一种数据处理装置的框图。
21.图5是根据一示例性实施例示出的一种数据处理装置的另一框图。
22.图6是根据一示例性实施例示出的一种数据处理装置的又一框图。
23.图7是根据一示例性实施例示出的一种车辆的功能框图示意图。
具体实施方式
24.这里将详细地对示例性实施例进行说明,其示例表示在附图中。下面的描述涉及附图时,除非另有表示,不同附图中的相同数字表示相同或相似的要素。以下示例性实施例中所描述的实施方式并不代表与本公开相一致的所有实施方式。相反,它们仅是与如所附权利要求书中所详述的、本公开的一些方面相一致的装置和方法的例子。
25.图1是根据一示例性实施例示出的一种数据处理方法,该方法可以应用于车辆、终端或者服务器,该终端可以是部署于车辆上的具备数据处理能力的电子设备,也可以是手机、个人电脑等,本公开对此不作具体限定,所述方法包括:s101、通过拓扑排序确定计算图中目标数据处理节点依赖的至少一个目标数据加载节点。
26.所述目标数据处理节点为所述计算图中的任意一个或多个数据处理节点,所述计算图是一个有向无环图(dag,directed acyclic graph),包括多个节点,所述多个节点包括数据加载节点以及数据处理节点。
27.其中,该计算图可以是预先配置的,具体地可以是根据多个数据处理节点所需要的数据绘制得到的,示例地,可以将预先训练得到的神经网络模型或者其他具备数据处理
能力的程序模块(例如路径规划模型、目标检测模型、数据筛选模型等等),作为数据处理节点,并将这些数据处理节点所需的输入参数输入计算图构建模块,以使得该计算图构建模块构建对应的计算图。另外,应理解的是,在计算图初次绘制完成之后,还可以在其中新增节点,并重新构建节点间的有向连接关系,以得到更新后的计算图。
28.示例地,参照图2所示的计算图,该计算图包括3个数据加载节点,该3个数据加载节点包括相机1数据加载节点、相机2数据加载节点以及激光雷达数据加载节点,该计算图还包括4个数据处理节点,每一数据处理节点可以是一个预先训练得到的神经网络模型或者其他具备数据处理能力的程序模块,该4个数据处理节点包括模型1数据处理节点、模型2数据处理节点、模型3数据处理节点以及模型4数据处理节点。另外,该计算图还可以包括两个调度所需的特殊节点,input(输入)节点以及output(输出)节点。
29.以目标数据处理节点为模型1为例,该目标数据处理节点及依赖于相机1数据加载节点以及相机2数据加载节点。
30.具体地,上述拓扑排序可以是从上述计算图中选择一个没有前驱(即入度为0,例如input节点)的节点并输出,从图中删除该节点和所有以它为起点的有向边。重复上述步骤直到当前的计算图为空或当前计算图中不存在无前驱的顶点为止。通过拓扑排序,即可得到该计算图中各个节点之间的依赖关系。
31.s102、响应于确定所述目标数据加载节点将目标数据加载至缓存,调用所述目标数据处理节点。
32.其中,缓存可以是内存缓存,可以理解的是,该内存缓存是计算图中的各个节点的共享缓存空间。
33.可以理解的是,在步骤s102中仅在确定通过目标数据加载节点将目标数据从分布式文件系统或者非临时性存储介质读取到缓存之后,再调用目标数据处理节点以对数据进行处理。也就是说,各个节点的在前置数据准备好之后才会调度对应的节点进行计算,能够避免在数据尚未准备就绪的情况下即调用模型进行数据处理,导致模型无法正常工作,并造成资源的浪费。
34.值得说明的是,在目标数据处理节点包括多个的情况下,若其中的一个数据处理节点所需的数据均加载至缓存后,则可以先对该数据处理节点进行调用。示例地,参照图2所示的计算图,目标数据处理节点包括模型1节点以及模型3节点,若确定相机1数据加载节点以及相机2数据加载节点执行数据加载任务完成,将相机1数据以及相机2数据加载至缓存,则可以先调用模型1节点,以执行对应的数据处理任务,并且,在激光雷达数据加载节点执行数据加载任务完成,将激光雷达数据加载至缓存,再调用模型3节点以执行对应的数据处理任务。
35.s103、通过所述目标数据处理节点对所述缓存中的所述目标数据进行数据处理,得到数据处理结果。
36.在本公开实施例中,基于预先绘制得到的计算图确定目标数据处理节点所需的数据,并通过对应的数据加载节点将所需的数据加载至缓存,基于缓存实现了数据在节点间的零拷贝传输,在不同的数据处理模块进行数据处理时,无需多次获取相同的数据,有效地降低了计算资源以及存储资源,最大程度地复用了数据的加载。
37.在一些可选地实施例中,所述方法包括:
通过所述目标数据加载节点,将所述目标数据存储至所述缓存;并,基于所述目标数据加载节点对应的节点名以及数据标识,生成数据指针;将所述数据指针发送至所述目标数据处理节点,并确定所述目标数据加载节点将数据加载至所述缓存;所述通过所述目标数据处理节点对所述缓存中的所述目标数据进行数据处理包括:基于所述数据指针,在所述缓存中获取所述目标数据。
38.示例地,参照图2所示的计算图,以目标数据处理节点包括模型1节点为例,对应该节点,目标数据加载节点包括相机1数据加载节点以及相机2数据加载节点,针对相机1数据加载节点,则可以生成数据指针{相机1}-{数据id},其中,数据id可以是按照预设规则生成的数据标识,用于定位当前节点的输出数据,例如,可以是随机数,或者数据行序号等等,本公开对此不作限定。
39.采用上述方案,通过在数据加载节点在将数据加载至缓存后,生成数据指针并将数据指针发送至数据处理节点,以使得数据处理节点能够根据接受到的数据指针准确地在缓存中查找到其进行数据处理所需的数据,并且,通过该方案,无需拷贝实际的数据,而是传递对应数据的指针,实现了数据的零拷贝传输,有效地降低了计算资源以及存储资源。
40.在又一些可选地实施例中,所述确定所述计算图中目标数据处理节点依赖的目标数据加载节点之后,包括:将所述目标数据处理节点加入待调度队列;所述响应于确定所述目标数据加载节点将目标数据加载至缓存,调用所述目标数据处理节点包括:依次扫描所述待调度队列,在扫描至所述目标数据处理节点的情况下,确定所述目标数据是否加载至所述缓存;在确定所述目标数据加载至所述缓存情况下,所述将所述目标数据处理节点加入就绪队列;依次扫描所述就绪队列,在扫描至所述目标数据处理节点的情况下,调用所述目标数据处理节点;并,在所述目标数据处理节点调用完成后,将所述目标数据处理节点加入所述待调度队列。
41.可以理解的是,在待调度队列扫描过程中,若当前扫描到的数据处理节点所需的数据未加载至缓存的情况下(例如,未接收到一个或多个其依赖的数据加载节点发送的数据指针),则跳过该数据处理节点,在待调度队列扫描完成后,若该队列中还存在待调度的数据处理节点,则从头开始重新扫描。此外,就绪队列同理,在此不再赘述。
42.采用上述方案,通过设计待调度队列以及就绪队列,分别对待调度的节点以及准备就绪的节点进行调度,能够有效地对计算图中的各个节点进行管理,避免了因为调度有误导致的数据处理异常,有效地提高了整体的数据处理的鲁棒性。
43.在又一些可选地实施例中,所述计算图包括输出节点,每一所述数据处理节点均连接至所述输出节点,所述调用所述目标数据处理节点之后,包括:将所述目标数据处理节点加入计算队列;依次扫描所述计算队列,在扫描至所述目标数据处理节点的情况下,若所述目标数据处理节点处理完成,将所述目标数据处理节点的数据处理结果存储至所述缓存;并,基于所述目标数据处理节点对应的节点名以及数据标识,生成数据指针;将所述数据指针发送至所述输出节点,并通过所述输出节点,基于所述数据指针在所述缓存中获取所述数据处理结果并输出。
44.与上述待调度队列相似地,该计算队列在扫描至未完成数据处理的数据处理节点时,则可以跳过该节点,并在扫描完成后计算队列还有数据处理节点时,则重新扫描该队列。
45.其中,该输出节点可以是如图2所示的output节点。上述在所述缓存中获取所述数据处理结果并输出的步骤,可以是在响应于输出节点被外部调用的情况下再执行的。具体地,响应于输出节点被调用,且调用参数指定该输出节点输出模型1对应的数据处理结果,则该输出节点可以基于模型1发送的数据指针,在缓存中查找到模型1输出的数据处理结果,并将该数据处理结果发送至调用者。
46.采用上述方案,通过计算队列管理处于数据处理过程中的数据处理节点,并,在数据处理节点在数据处理完成的情况下生成发送数据指针至输出节点,并通过输出节点基于接收到的数据指针,在缓存中获取数据处理结果,能够进一步地对数据处理节点进行调度,并且能够输出节点在零拷贝的情况下获得数据处理节点输出的数据处理结果,有效地降低了计算资源以及存储资源。
47.针对数据加载节点的触发调用的方式,本公开提供如下两种可选地方案。
48.在一种可选地方案中,所述依次扫描所述待调度队列,在扫描至所述目标数据处理节点的情况下,确定所述目标数据加载是否加载至所述缓存之后,包括:在确定所述目标数据加载节点数据未准备就绪的情况下,调用所述目标数据加载节点,以将所述目标数据加载至所述缓存。
49.也就是说,在该方案中,数据加载节点可以是在依赖于其的数据处理节点在加入待调度队列后,被扫描到的情况下再发起数据加载节点的调用的。采用本方案,通过在依赖于其的数据处理节点被扫描到的情况下再发起数据加载节点的调用,能够有效地避免多个数据加载节点同时被调用,进而导致的数据拥堵的问题。
50.在另一种可选地方案中,所述将所述目标数据处理节点加入待调度队列之后,包括:调用所述目标数据加载节点,以将所述目标数据加载至所述缓存。
51.也就是说,在该方案中,数据加载节点是在依赖于其的数据处理节点在加入待调度队列之后立即发起调用的。采用本方案,通过在依赖于其的数据处理节点立即发起调用能够更加快速地完成数据的加载,进而整体提高数据处理的速度。
52.针对上述两种数据加载节点的触发调用的方式,本领域技术人员可以根据实际的网络情况或者实际需求选取。
53.为了使得本领域技术人员更加理解本公开提供的数据处理方法的调度流程,基于图2所示的计算图中的模型1数据处理节点,为了节省篇幅,在下文中模型1数据处理节点、相机1数据加载节点以及相机2数据加载节点分别简称为模型1、相机1以及相机2,本公开还提供如下的数据处理方法的流程图:s301、通过拓扑排序获得节点间的依赖关系,得到模型1依赖于相机1和相机2。
54.s302、将模型1加入待调度队列,并调用相机1和相机2开始数据加载。
55.s303、在确定相机1和相机2将数据加载至缓存的情况下,将第一数据指针发送至模型1。
56.其中,可以理解的是,该第一数据指针包括相机1对应的数据指针以及相机2对应的数据指针。
57.s304、扫描待调度队列,在确定模型1接收到第一数据指针的情况下,将模型1加入就绪队列。
58.s305、扫描就绪队列,调用模型1根据第一数据指针执行数据处理,并将模型1数据处理节点加入计算队列。
59.s306、在确定模型1数据处理完成的情况下,将第二数据指针发送至输出节点。
60.s307、扫描计算队列,在确定输出节点接收到第二数据指针的情况下,返回步骤s301。
61.基于相同的发明构思,图4是根据一示例性实施例示出的一种数据处理装置框图。参照图4,该数据处理装置40包括:确定模块41,被配置为通过拓扑排序确定计算图中目标数据处理节点依赖的至少一个目标数据加载节点,所述目标数据处理节点为所述计算图中的任意一个或多个数据处理节点,所述计算图是一个有向无环图,包括多个节点,所述多个节点包括数据加载节点以及数据处理节点;调用模块42,被配置为响应于确定所述目标数据加载节点将目标数据加载至缓存,调用所述目标数据处理节点;处理模块43,被配置为通过所述目标数据处理节点对所述缓存中的所述目标数据进行数据处理,得到数据处理结果。
62.可选地,所述数据处理装置40还被配置为:通过所述目标数据加载节点,将所述目标数据存储至所述缓存;并,基于所述目标数据加载节点对应的节点名以及数据标识,生成数据指针;将所述数据指针发送至所述目标数据处理节点,并确定所述目标数据加载节点将数据加载至所述缓存;所述处理模块43,被配置为:基于所述数据指针,在所述缓存中获取所述目标数据。
63.可选地,所述数据处理装置40还被配置为:将所述目标数据处理节点加入待调度队列;所述调用模块42,被配置为:依次扫描所述待调度队列,在扫描至所述目标数据处理节点的情况下,确定所述目标数据是否加载至所述缓存;在确定所述目标数据加载至所述缓存情况下,所述将所述目标数据处理节点加入就绪队列;依次扫描所述就绪队列,在扫描至所述目标数据处理节点的情况下,调用所述目标数据处理节点;并,在所述目标数据处理节点调用完成后,将所述目标数据处理节点加入所述待调度队列。
64.可选地,所述调用模块42,被配置为:将所述目标数据处理节点加入计算队列;依次扫描所述计算队列,在扫描至所述目标数据处理节点的情况下,若所述目标数据处理节点处理完成,将所述目标数据处理节点的数据处理结果存储至所述缓存;并,
基于所述目标数据处理节点对应的节点名以及数据标识,生成数据指针;将所述数据指针发送至所述输出节点,并通过所述输出节点基于所述数据指针在所述缓存中获取所述数据处理结果并输出。
65.可选地,所述数据处理装置40还被配置为:在确定所述目标数据加载节点数据未准备就绪的情况下,调用所述目标数据加载节点,以将所述目标数据加载至所述缓存。
66.可选地,所述数据处理装置40还被配置为包括:调用所述目标数据加载节点,以将所述目标数据加载至所述缓存。
67.关于上述实施例中的装置,其中各个模块执行操作的具体方式已经在有关该方法的实施例中进行了详细描述,此处将不做详细阐述说明。
68.本公开还提供一种计算机可读存储介质,其上存储有计算机程序指令,该程序指令被处理器执行时实现本公开提供的数据处理方法的步骤。
69.图5是根据一示例性实施例示出的一种数据处理装置的框图。例如,该第一数据处理装置500可以是移动电话,计算机,数字广播终端,消息收发设备,游戏控制台,平板设备,医疗设备,健身设备,个人数字助理等。
70.参照图5,第一数据处理装置500可以包括以下一个或多个组件:第一处理组件502,第一存储器504,第一电源组件506,多媒体组件508,音频组件510,第一输入/输出接口512,传感器组件515,以及通信组件516。
71.第一处理组件502通常控制第一数据处理装置500的整体操作,诸如与显示,电话呼叫,数据通信,相机操作和记录操作相关联的操作。第一处理组件502可以包括一个或多个第一处理器520来执行指令,以完成上述的方法的全部或部分步骤。此外,第一处理组件502可以包括一个或多个模块,便于第一处理组件502和其他组件之间的交互。例如,第一处理组件502可以包括多媒体模块,以方便多媒体组件508和第一处理组件502之间的交互。
72.第一存储器504被配置为存储各种类型的数据以支持在第一数据处理装置500的操作。这些数据的示例包括用于在第一数据处理装置500上操作的任何应用程序或方法的指令,联系人数据,电话簿数据,消息,图片,视频等。第一存储器504可以由任何类型的易失性或非易失性存储设备或者它们的组合实现,如静态随机存取存储器(sram),电可擦除可编程只读存储器(eeprom),可擦除可编程只读第一存储器(eprom),可编程只读存储器(prom),只读存储器(rom),磁存储器,快闪存储器,磁盘或光盘。
73.第一电源组件506为第一数据处理装置500的各种组件提供电力。第一电源组件506可以包括电源管理系统,一个或多个电源,及其他与为装置500生成、管理和分配电力相关联的组件。
74.多媒体组件508包括在所述第一数据处理装置500和用户之间的提供一个输出接口的屏幕。在一些实施例中,屏幕可以包括液晶显示器(lcd)和触摸面板(tp)。如果屏幕包括触摸面板,屏幕可以被实现为触摸屏,以接收来自用户的输入信号。触摸面板包括一个或多个触摸传感器以感测触摸、滑动和触摸面板上的手势。所述触摸传感器可以不仅感测触摸或滑动动作的边界,而且还检测与所述触摸或滑动操作相关的持续时间和压力。在一些实施例中,多媒体组件508包括一个前置摄像头和/或后置摄像头。当装置500处于操作模式,如拍摄模式或视频模式时,前置摄像头和/或后置摄像头可以接收外部的多媒体数据。
每个前置摄像头和后置摄像头可以是一个固定的光学透镜系统或具有焦距和光学变焦能力。
75.音频组件510被配置为输出和/或输入音频信号。例如,音频组件510包括一个麦克风(mic),当第一数据处理装置500处于操作模式,如呼叫模式、记录模式和语音识别模式时,麦克风被配置为接收外部音频信号。所接收的音频信号可以被进一步存储在第一存储器504或经由通信组件516发送。在一些实施例中,音频组件510还包括一个扬声器,用于输出音频信号。
76.第一输入/输出接口512为第一处理组件502和外围接口模块之间提供接口,上述外围接口模块可以是键盘,点击轮,按钮等。这些按钮可包括但不限于:主页按钮、音量按钮、启动按钮和锁定按钮。
77.传感器组件515包括一个或多个传感器,用于为装置500提供各个方面的状态评估。例如,传感器组件515可以检测到装置500的打开/关闭状态,组件的相对定位,例如所述组件为装置500的显示器和小键盘,传感器组件515还可以检测第一数据处理装置500或第一数据处理装置500一个组件的位置改变,用户与第一数据处理装置500接触的存在或不存在,第一数据处理装置500方位或加速/减速和第一数据处理装置500的温度变化。传感器组件515可以包括接近传感器,被配置用来在没有任何的物理接触时检测附近物体的存在。传感器组件515还可以包括光传感器,如cmos或ccd图像传感器,用于在成像应用中使用。在一些实施例中,该传感器组件515还可以包括加速度传感器,陀螺仪传感器,磁传感器,压力传感器或温度传感器。
78.通信组件516被配置为便于第一数据处理装置500和其他设备之间有线或无线方式的通信。第一数据处理装置500可以接入基于通信标准的无线网络,如wifi,2g或3g,或它们的组合。在一个示例性实施例中,通信组件516经由广播信道接收来自外部广播管理系统的广播信号或广播相关信息。在一个示例性实施例中,所述通信组件516还包括近场通信(nfc)模块,以促进短程通信。例如,在nfc模块可基于射频识别(rfid)技术,红外数据协会(irda)技术,超宽带(uwb)技术,蓝牙(bt)技术和其他技术来实现。
79.在示例性实施例中,第一数据处理装置500可以被一个或多个应用专用集成电路(asic)、数字信号处理器(dsp)、数字信号处理设备(dspd)、可编程逻辑器件(pld)、现场可编程门阵列(fpga)、控制器、微控制器、微处理器或其他电子元件实现,用于执行上述数据处理方法。
80.在示例性实施例中,还提供了一种包括指令的非临时性计算机可读存储介质,例如包括指令的第一存储器504,上述指令可由第一数据处理装置500的第一处理器520执行以完成上述数据处理方法。例如,所述非临时性计算机可读存储介质可以是rom、随机存取存储器(ram)、cd-rom、磁带、软盘和光数据存储设备等。
81.上述装置除了可以是独立的电子设备外,也可是独立电子设备的一部分,例如在一种实施例中,该装置可以是集成电路(integrated circuit,ic)或芯片,其中该集成电路可以是一个ic,也可以是多个ic的集合;该芯片可以包括但不限于以下种类:gpu(graphics processing unit,图形处理器)、cpu(central processing unit,中央处理器)、fpga(field programmable gate array,可编程逻辑阵列)、dsp(digital signal processor,数字信号处理器)、asic(application specific integrated circuit,专用集成电路)、
soc(system on chip,soc,片上系统或系统级芯片)等。上述的集成电路或芯片中可以用于执行可执行指令(或代码),以实现上述的数据处理方法。其中该可执行指令可以存储在该集成电路或芯片中,也可以从其他的装置或设备获取,例如该集成电路或芯片中包括处理器、存储器,以及用于与其他的装置通信的接口。该可执行指令可以存储于该存储器中,当该可执行指令被处理器执行时实现上述的数据处理方法;或者,该集成电路或芯片可以通过该接口接收可执行指令并传输给该处理器执行,以实现上述的数据处理方法。
82.在另一示例性实施例中,还提供一种计算机程序产品,该计算机程序产品包含能够由可编程的装置执行的计算机程序,该计算机程序具有当由该可编程的装置执行时用于执行上述的数据处理方法的代码部分。
83.图6是根据一示例性实施例示出的一种数据处理装置的框图。例如,该第二数据处理装置600可以被提供为一服务器。参照图6,装置600包括第二处理组件622,其进一步包括一个或多个处理器,以及由第二存储器632所代表的存储器资源,用于存储可由第二处理组件622的执行的指令,例如应用程序。第二存储器632中存储的应用程序可以包括一个或一个以上的每一个对应于一组指令的模块。此外,第二处理组件622被配置为执行指令,以执行上述自动驾驶方法。
84.装置600还可以包括一个第二电源组件626被配置为执行第二数据处理装置600的电源管理,一个有线或无线网络接口660被配置为将第二数据处理装置600连接到网络,和一个第二输入/输出接口668。第二数据处理装置600可以操作基于存储在第二存储器632的操作系统,例如windows server
tm
,mac os x
tm
,unix
tm
,linux
tm
,freebsd
tm
或类似。
85.参阅图7,图7是一示例性实施例示出的一种车辆700的功能框图示意图。车辆700可以被配置为完全或部分自动驾驶模式。例如,车辆700可以通过感知系统720获取其周围的环境信息,并基于对周边环境信息的分析得到自动驾驶策略以实现完全自动驾驶,或者将分析结果呈现给用户以实现部分自动驾驶。
86.车辆700可包括各种子系统,例如,信息娱乐系统710、感知系统720、决策控制系统730、驱动系统740以及计算平台750。可选的,车辆700可包括更多或更少的子系统,并且每个子系统都可包括多个部件。另外,车辆700的每个子系统和部件可以通过有线或者无线的方式实现互连。
87.在一些实施例中,信息娱乐系统710可以包括通信系统711,娱乐系统712以及导航系统713。
88.通信系统711可以包括无线通信系统,无线通信系统可以直接地或者经由通信网络来与一个或多个设备无线通信。例如,无线通信系统可使用3g蜂窝通信,例如cdma、evd0、gsm/gprs,或者4g蜂窝通信,例如lte。或者5g蜂窝通信。无线通信系统可利用wifi与无线局域网(wireless local area network,wlan)通信。在一些实施例中,无线通信系统可利用红外链路、蓝牙或zigbee与设备直接通信。其他无线协议,例如各种车辆通信系统,例如,无线通信系统可包括一个或多个专用短程通信(dedicated short range communications,dsrc)设备,这些设备可包括车辆和/或路边台站之间的公共和/或私有数据通信。
89.娱乐系统712可以包括显示设备,麦克风和音响,用户可以基于娱乐系统在车内收听广播,播放音乐;或者将手机和车辆联通,在显示设备上实现手机的投屏,显示设备可以为触控式,用户可以通过触摸屏幕进行操作。
90.在一些情况下,可以通过麦克风获取用户的语音信号,并依据对用户的语音信号的分析实现用户对车辆700的某些控制,例如调节车内温度等。在另一些情况下,可以通过音响向用户播放音乐。
91.导航系统713可以包括由地图供应商所提供的地图服务,从而为车辆700提供行驶路线的导航,导航系统713可以和车辆的全球定位系统721、惯性测量单元722配合使用。地图供应商所提供的地图服务可以为二维地图,也可以是高精地图。
92.感知系统720可包括感测关于车辆700周边的环境的信息的若干种传感器。例如,感知系统720可包括全球定位系统721(全球定位系统可以是gps系统,也可以是北斗系统或者其他定位系统)、惯性测量单元(inertial measurement unit,imu)722、激光雷达723、毫米波雷达724、超声雷达725以及摄像装置726。感知系统720还可包括被监视车辆700的内部系统的传感器(例如,车内空气质量监测器、燃油量表、机油温度表等)。来自这些传感器中的一个或多个的传感器数据可用于检测对象及其相应特性(位置、形状、方向、速度等)。这种检测和识别是车辆700的安全操作的关键功能。
93.全球定位系统721用于估计车辆700的地理位置。
94.惯性测量单元722用于基于惯性加速度来感测车辆700的位姿变化。在一些实施例中,惯性测量单元722可以是加速度计和陀螺仪的组合。
95.激光雷达723利用激光来感测车辆700所位于的环境中的物体。在一些实施例中,激光雷达723可包括一个或多个激光源、激光扫描器以及一个或多个检测器,以及其他系统组件。
96.毫米波雷达724利用无线电信号来感测车辆700的周边环境内的物体。在一些实施例中,除了感测物体以外,毫米波雷达724还可用于感测物体的速度和/或前进方向。
97.超声雷达725可以利用超声波信号来感测车辆700周围的物体。
98.摄像装置726用于捕捉车辆700的周边环境的图像信息。摄像装置726可以包括单目相机、双目相机、结构光相机以及全景相机等,摄像装置726获取的图像信息可以包括静态图像,也可以包括视频流信息。
99.决策控制系统730包括基于感知系统720所获取的信息进行分析决策的计算系统731,决策控制系统730还包括对车辆700的动力系统进行控制的整车控制器732,以及用于控制车辆700的转向系统733、油门734和制动系统735。
100.计算系统731可以操作来处理和分析由感知系统720所获取的各种信息以便识别车辆700周边环境中的目标、物体和/或特征。目标可以包括行人或者动物,物体和/或特征可包括交通信号、道路边界和障碍物。计算系统731可使用物体识别算法、运动中恢复结构(structure from motion,sfm)算法、视频跟踪等技术。在一些实施例中,计算系统731可以用于为环境绘制地图、跟踪物体、估计物体的速度等等。计算系统731可以将所获取的各种信息进行分析并得出对车辆的控制策略。
101.整车控制器732可以用于对车辆的动力电池和引擎741进行协调控制,以提升车辆700的动力性能。
102.转向系统733可操作来调整车辆700的前进方向。例如在一个实施例中可以为方向盘系统。
103.油门734用于控制引擎741的操作速度并进而控制车辆700的速度。
104.制动系统735用于控制车辆700减速。制动系统735可使用摩擦力来减慢车轮744。在一些实施例中,制动系统735可将车轮744的动能转换为电流。制动系统735也可采取其他形式来减慢车轮744转速从而控制车辆700的速度。
105.驱动系统740可包括为车辆700提供动力运动的组件。在一个实施例中,驱动系统740可包括引擎741、能量源742、传动系统743和车轮744。引擎741可以是内燃机、电动机、空气压缩引擎或其他类型的引擎组合,例如汽油发动机和电动机组成的混动引擎,内燃引擎和空气压缩引擎组成的混动引擎。引擎741将能量源742转换成机械能量。
106.能量源742的示例包括汽油、柴油、其他基于石油的燃料、丙烷、其他基于压缩气体的燃料、乙醇、太阳能电池板、电池和其他电力来源。能量源742也可以为车辆700的其他系统提供能量。
107.传动系统743可以将来自引擎741的机械动力传送到车轮744。传动系统743可包括变速箱、差速器和驱动轴。在一个实施例中,传动系统743还可以包括其他器件,比如离合器。其中,驱动轴可包括可耦合到一个或多个车轮744的一个或多个轴。
108.车辆700的部分或所有功能受计算平台750控制。计算平台750可包括至少一个第三处理器751,第三处理器751可以执行存储在例如第三存储器752这样的非暂态计算机可读介质中的指令753。在一些实施例中,计算平台750还可以是采用分布式方式控制车辆700的个体组件或子系统的多个计算设备。
109.第三处理器751可以是任何常规的处理器,诸如商业可获得的cpu。可替换地,第三处理器751还可以包括诸如图像处理器(graphic process unit,gpu)、现场可编程门阵列(field programmable gate array,fpga)、片上系统(system on chip,soc)、专用集成芯片(application specific integrated circuit,asic)或它们的组合。尽管图7功能性地图示了处理器、存储器、和在相同块中的计算机的其它元件,但是本领域的普通技术人员应该理解该处理器、计算机、或存储器实际上可以包括可以或者可以不存储在相同的物理外壳内的多个处理器、计算机、或存储器。例如,存储器可以是硬盘驱动器或位于不同于计算机的外壳内的其它存储介质。因此,对处理器或计算机的引用将被理解为包括对可以或者可以不并行操作的处理器或计算机或存储器的集合的引用。不同于使用单一的处理器来执行此处所描述的步骤,诸如转向组件和减速组件的一些组件每个都可以具有其自己的处理器,处理器只执行与特定于组件的功能相关的计算。
110.在本公开实施方式中,第三处理器751可以执行上述的数据处理方法。
111.在此处所描述的各个方面中,第三处理器751可以位于远离该车辆并且与该车辆进行无线通信。在其它方面中,此处所描述的过程中的一些在布置于车辆内的处理器上执行而其它则由远程处理器执行,包括采取执行单一操纵的必要步骤。
112.在一些实施例中,第三存储器752可包含指令753(例如,程序逻辑),指令753可被第三处理器751执行来执行车辆700的各种功能。第三存储器752也可包含额外的指令,包括向信息娱乐系统710、感知系统720、决策控制系统730、驱动系统740中的一个或多个发送数据、从其接收数据、与其交互和/或对其进行控制的指令。
113.除了指令753以外,第三存储器752还可存储数据,例如道路地图、路线信息,车辆的位置、方向、速度以及其它这样的车辆数据,以及其他信息。这种信息可在车辆700在自主、半自主和/或手动模式中操作期间被车辆700和计算平台750使用。
114.计算平台750可基于从各种子系统(例如,驱动系统740、感知系统720和决策控制系统730)接收的输入来控制车辆700的功能。例如,计算平台750可利用来自决策控制系统730的输入以便控制转向系统733来避免由感知系统720检测到的障碍物。在一些实施例中,计算平台750可操作来对车辆700及其子系统的许多方面提供控制。
115.可选地,上述这些组件中的一个或多个可与车辆700分开安装或关联。例如,第三存储器752可以部分或完全地与车辆700分开存在。上述组件可以按有线和/或无线方式来通信地耦合在一起。
116.可选地,上述组件只是一个示例,实际应用中,上述各个模块中的组件有可能根据实际需要增添或者删除,图7不应理解为对本公开实施例的限制。
117.在道路行进的自动驾驶汽车,如上面的车辆700,可以识别其周围环境内的物体以确定对当前速度的调整。物体可以是其它车辆、交通控制设备、或者其它类型的物体。在一些示例中,可以独立地考虑每个识别的物体,并且基于物体的各自的特性,诸如它的当前速度、加速度、与车辆的间距等,可以用来确定自动驾驶汽车所要调整的速度。
118.可选地,车辆700或者与车辆700相关联的感知和计算设备(例如计算系统731、计算平台750)可以基于所识别的物体的特性和周围环境的状态(例如,交通、雨、道路上的冰、等等)来预测识别的物体的行为。可选地,每一个所识别的物体都依赖于彼此的行为,因此还可以将所识别的所有物体全部一起考虑来预测单个识别的物体的行为。车辆700能够基于预测的识别的物体的行为来调整它的速度。换句话说,自动驾驶汽车能够基于所预测的物体的行为来确定车辆将需要调整到(例如,加速、减速、或者停止)何种稳定状态。在这个过程中,也可以考虑其它因素来确定车辆700的速度,诸如,车辆700在行驶的道路中的横向位置、道路的曲率、静态和动态物体的接近度等等。
119.除了提供调整自动驾驶汽车的速度的指令之外,计算设备还可以提供修改车辆700的转向角的指令,以使得自动驾驶汽车遵循给定的轨迹和/或维持与自动驾驶汽车附近的物体(例如,道路上的相邻车道中的车辆)的安全横向和纵向距离。
120.上述车辆700可以为各种类型的行驶工具,例如,轿车、卡车、摩托车、公共汽车、船、飞机、直升飞机、娱乐车、火车等等,本公开实施例不做特别的限定。
121.本领域技术人员在考虑说明书及实践本公开后,将容易想到本公开的其它实施方案。本技术旨在涵盖本公开的任何变型、用途或者适应性变化,这些变型、用途或者适应性变化遵循本公开的一般性原理并包括本公开未公开的本技术领域中的公知常识或惯用技术手段。说明书和实施例仅被视为示例性的,本公开的真正范围和精神由下面的权利要求指出。
122.应当理解的是,本公开并不局限于上面已经描述并在附图中示出的精确结构,并且可以在不脱离其范围进行各种修改和改变。本公开的范围仅由所附的权利要求来限制。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1