自动驾驶日志数据的语义化处理方法、装置及存储介质与流程

文档序号:30610399发布日期:2022-07-01 23:28阅读:138来源:国知局
自动驾驶日志数据的语义化处理方法、装置及存储介质与流程

1.本技术涉及自动驾驶技术领域,尤其涉及一种自动驾驶日志数据的语义化处理方法、装置及存储介质。


背景技术:

2.自动驾驶日志数据内容繁杂,因此,工程师难以通过浏览自动驾驶日志数据来还原自动驾驶过程。在工程师还原自动驾驶过程时,对自动驾驶日志数据进行语义化处理是至关重要的。其中,语义化处理是指根据自动驾驶日志数据,在3d(3-dimension,三维)世界中重建自动驾驶过程这一处理方式。
3.在进行语义化处理的过程中,可将自动驾驶日志数据实时处理为虚拟3d数据,并通过如webgl(web graphics library,web图形库)等的方式实现3d渲染,进而得到语义化处理结果。然而,传统技术在获取虚拟3d数据时需要耗费大量算力,对处理设备的性能要求高,因而存在成本过高的问题。


技术实现要素:

4.本技术的目的旨在至少能解决上述的技术缺陷之一,特别是现有技术中需要耗费大量算力方可获取虚拟3d数据,对处理设备的性能要求高,进而导致成本过高的技术缺陷。
5.第一方面,本技术提供了一种自动驾驶日志数据的语义化处理方法,所述方法包括:
6.获取自动驾驶日志数据,所述自动驾驶日志数据包括多类待渲染日志数据;
7.将多类所述待渲染日志数据分为至少两个数据组别,并根据每一类所述待渲染日志数据所属的数据组别,生成多个渲染数据生成任务;其中,所属数据组别不同的待渲染日志数据对应不同的渲染数据生成任务;
8.处理各所述渲染数据生成任务,以得到语义化处理结果。
9.在其中一个实施例中,若所述方法执行于单机计算系统,则将多类所述待渲染日志数据分为至少两个数据组别的步骤,包括:
10.获取每一类所述待渲染日志数据对应的所需算力;
11.根据各所述所需算力,将多类所述待渲染日志数据分为至少两个数据组别,以使任意两个数据组别所对应的总算力之差小于第一预设阈值;
12.其中,每一个所述数据组别所对应的总算力为该数据组别包括的各类所述待渲染日志数据的所需算力之和。
13.在其中一个实施例中,根据各所述所需算力,将多类所述待渲染日志数据分为至少两个数据组别的步骤,包括:
14.获取所述单机计算系统的处理器数量,并根据所述处理器数量确定组别数量;其中,所述组别数量小于所述处理器数量;
15.根据各所述所需算力,将多类所述待渲染日志数据分为所述组别数量个数据组
别。
16.在其中一个实施例中,若所述方法执行于计算集群系统,则将多类所述待渲染日志数据分为至少两个数据组别的步骤,包括:
17.确定所述计算集群系统为所述自动驾驶日志数据分配的容器;
18.获取每一类所述待渲染日志数据对应的所需算力,并根据各所述所需算力,将多类所述待渲染日志数据分为至少两个数据组别,以使任意两个容器所对应的平均算力之差小于第二预设阈值,或任意两个数据组别所对应的平均算力之最大差值最小;
19.其中,每一所述容器对应的平均算力为该容器的总消耗算力与该容器的处理器数量之间的比值,该容器的总消耗算力为目标数据组别包括的各类所述待渲染日志数据的所需算力之和,所述目标数据组别为分配至该容器处理的待渲染日志数据的所属数据组别。
20.在其中一个实施例中,所述方法还包括:
21.对所述自动驾驶日志数据所对应的总驾驶时段进行拆分,以得到多个时间段;
22.根据每一类所述待渲染日志数据所属的数据组别,生成多个渲染数据生成任务的步骤,包括:
23.根据每一所述时间段的起止时间及每一类所述待渲染日志数据所属的数据组别,生成多个渲染数据生成任务;所属时间段相同的待渲染日志数据对应同一渲染数据生成任务。
24.在其中一个实施例中,对所述自动驾驶日志数据所对应的总驾驶时段进行拆分,以得到多个时间段的步骤,包括:
25.获取预设时间间隔,并根据所述预设时间间隔对所述总驾驶时段进行拆分,以得到多个所述时间段。
26.在其中一个实施例中,若所述方法执行于计算集群系统,则根据所述预设时间间隔对所述总驾驶时段进行拆分,以得到多个所述时间段的步骤,包括:
27.获取所述计算集群系统的总负载;
28.根据所述预设时间间隔及所述总负载确定目标时间间隔,并基于所述目标时间间隔对所述总驾驶时段进行拆分,以得到多个所述时间段。
29.在其中一个实施例中,若所述方法执行于计算集群系统,且所述自动驾驶日志数据以数据块的形式存储于所述计算集群系统的多个设备中,则对所述自动驾驶日志数据所对应的总驾驶时段进行拆分,以得到多个时间段的步骤,包括:
30.对于每一所述数据块,获取所述数据块所对应的目标驾驶时段,并从所述总驾驶时段中将所述目标驾驶时段拆分为预设数量个时间段。
31.在其中一个实施例中,对所述自动驾驶日志数据所对应的总驾驶时段进行拆分,以得到多个时间段的步骤,包括:根据所述自动驾驶日志数据的元数据,对所述总驾驶时段进行拆分,以得到多个所述时间段。
32.第二方面,本技术提供了一种自动驾驶日志数据的语义化处理装置,该装置包括:
33.数据获取模块,用于获取自动驾驶日志数据,所述自动驾驶日志数据包括多类待渲染日志数据;
34.数据分组模块,用于将多类所述待渲染日志数据分为至少两个数据组别,并根据每一类所述待渲染日志数据所属的数据组别,生成多个渲染数据生成任务;其中,所属数据
组别不同的待渲染日志数据对应不同的渲染数据生成任务;
35.语义化处理模块,用于处理各所述渲染数据生成任务,以得到语义化处理结果。
36.第三方面,本技术提供了一种存储介质,该存储介质中存储有计算机可读指令,所述计算机可读指令被一个或多个处理器执行时,使得一个或多个处理器执行如上述任一实施例中所述自动驾驶日志数据的语义化处理方法的步骤。
37.第四方面,本技术提供了一种计算系统,该系统包括:一个或多个处理器,以及存储器。所述存储器中存储有计算机可读指令,所述计算机可读指令被所述一个或多个处理器执行时,执行上述任一实施例所述自动驾驶日志数据的语义化处理方法的步骤。
38.从以上技术方案可以看出,本技术实施例具有以下优点:
39.本技术提供的自动驾驶日志数据的语义化处理方法、装置及存储介质,对多类待渲染日志数据进行分组,以得到多个数据组别,并将所属数据组别不同的待渲染日志数据分配至不同的渲染数据生成任务中进行处理,以实现自动驾驶日志数据的语义化处理。相较于现有技术将全部待渲染日志数据分配至同一渲染数据生成任务的方式,本技术可减小每一个渲染数据生成任务所需的算力,进而能降低处理设备的性能要求,并降低成本。同时,本技术提供的语义化处理方法还可应用于多种不同部署方式的计算系统中,具备高可拓展性。
附图说明
40.为了更清楚地说明本技术实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本技术的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其它的附图。
41.图1为一实施例中语义化处理方法的流程示意图之一;
42.图2为一实施例中语义化处理方法的流程示意图之二;
43.图3为一实施例中语义化处理方法的流程示意图之三;
44.图4为一实施例中对总驾驶时段进行拆分的流程示意图;
45.图5为一实施例中进行数据分组的流程示意图;
46.图6为一实施例中自动驾驶日志数据的语义化处理装置的结构示意图;
47.图7为一实施例中计算机设备的结构示意图。
具体实施方式
48.下面将结合本技术实施例中的附图,对本技术实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本技术一部分实施例,而不是全部的实施例。基于本技术中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本技术保护的范围。
49.正如背景技术所言,在对自动驾驶日志数据(以下简称日志数据)进行语义化处理的过程中,需要将日志数据实时处理为虚拟3d数据(以下将处理自动驾驶日志数据以得到虚拟3d数据的过程简称为数据处理过程),并基于虚拟3d数据进行渲染,以在3d维度重建自动驾驶过程,便于工程师进行测试、仿真等工作。目前,在进行数据处理之前,工程师需要将
日志数据(如bag数据)下载到工作站中,在全部日志数据下载完成后方可进行后续的数据处理及3d渲染。然而,由于日志数据的数据量庞大,下载全部日志数据需要花费非常长的时间,导致语义化处理存在处理效率低的问题。同时,现有技术会一次性完成全部日志数据的数据处理及3d渲染,在庞大的数据量下,数据处理及渲染需要耗费大量的算力,因此需要通过高性能工作站方可实现,提高了数据处理的成本。
50.为解决前述问题,本技术对多类待渲染日志数据进行分组以得到多个数据组别,并将所属数据组别不同的待渲染日志数据分配至不同的渲染数据生成任务中进行处理,以实现自动驾驶日志数据的语义化处理。如此,可减小每一个渲染数据生成任务所需的算力,进而能降低处理设备的性能要求及配置要求,并降低成本。
51.在一些实施例中,本技术将总驾驶时段拆分为多个时间段,并根据多个时间段与每一类待渲染日志数据所述的数据组别生成渲染数据生成任务,使得所属数据组别不同的待渲染日志数据分配至不同的渲染数据生成任务中,以及所属时间段相同的待渲染日志数据分配至同一渲染数据生成任务中进行处理。如此,可并行执行数据处理及日志数据的下载,或者并行执行对应于不同时间段的多个渲染数据生成任务,无需等到全部日志数据下载完成后再启动数据处理,进而可提高数据处理效率及语义化处理效率。
52.本技术提供的自动驾驶日志数据的语义化处理方法,可以执行于具备数据处理功能的计算系统中,该计算系统的算力可满足一定的算力要求,具体的算力要求可依据自动驾驶日志数据所包括的待渲染日志数据的类型、数据分组情况和/或时间段划分情况等因素确定,本技术对此不作具体限制。
53.在一些实施例中,前述计算系统可以为单机计算系统,单机计算系统可以是一个计算机设备。也即,本技术的方法可执行于一个计算机设备,以得到语义化处理结果。在另一些实施例中,前述计算系统可以是计算集群系统。计算集群系统可以是通过多个计算机设备的联合来实现对应功能的系统,例如,可以为数据与计算混部的计算集群系统(如hadoop系统)。由此可见,本技术提供的方法既可以在单机部署方案下执行,也可以集群部署方案下执行,可拓展性高。
54.在一个实施例中,本技术提供了一种自动驾驶日志数据的语义化处理方法,如图1所示,该方法可包括以下步骤:
55.s100,获取自动驾驶日志数据,该自动驾驶日志数据包括多类待渲染日志数据。
56.其中,待渲染日志数据可以是在自动驾驶过程中,能够反映驾驶场景的日志数据,可以是以下数据的任一种或任意组合:环境数据、车辆状态数据、自动驾驶算法在执行过程中产生的中间结果和/或最终结果。在一个示例中,环境数据可以由雷达和/或摄像设备来采集,故环境数据可以包括多路雷达数据及多路摄像数据。车辆状态数据可以包括车辆的速度、加速度、加减速状态、各驱动机构的运行参数和/或车辆向用户推送的文本提示。自动驾驶算法的中间结果和最终结果可以包括障碍物识别结果及车辆的规划轨迹,其中,障碍物识别结果可以包括障碍物识别边框、障碍物分类、障碍物轨迹预测结果及障碍物预测值的置信区间等。
57.待渲染日志数据的具体分类可以依据该数据的采集设备或者数据标签来确定,在前述示例中,可将全部环境数据划分为第一类数据,将全部车辆状态数据划分为第二类数据,将全部中间结果及最终结果划分为第三类数据。进一步地,为便于进行更细化的数据分
组,以进一步降低执行各渲染数据子任务的所需算力,可对待渲染日志数据进行更细化的分类。例如,可将第一雷达设备生成的日志数据划分为第一类数据,将第二雷达设备生成的日志数据划分为第二类数据,将第一摄像设备生成的日志数据划分为第三类数据等。
58.s200,将多类待渲染日志数据分为至少两个数据组别,并根据每一类待渲染日志数据所属的数据组别,生成多个渲染数据生成任务;其中,所属数据组别不同的待渲染日志数据对应不同的渲染数据生成任务。
59.具体地,计算系统可按照各待渲染日志数据的类别,将多类待渲染日志数据拆分为多个数据组别,以实现数据空间维度的拆分。在其中一个实施例中,计算系统可将各类待渲染日志数据随机分为多个数据组别。在另一个实施例中,计算系统可根据预设规则及每一类待渲染日志数据的数据量进行分组,该预设规则可以依据实际情况确定,本技术对此不作具体限制。
60.在确定待渲染日志数据的所属数据组别后,计算系统可将任意两类所属数据组别不同的待渲染日志数据,分配至不同的渲染数据生成任务中。其中,渲染数据生成任务可以是将对应的待渲染日志数据处理为虚拟3d数据的任务。可以理解,对于任意两类所属数据组别相同的待渲染日志数据,计算系统可将其分配至同一渲染数据生成任务中,也可将其分别分配至不同的渲染数据生成任务中,本实施例对此不作具体限定。
61.s300,处理各渲染数据生成任务,以得到语义化处理结果。
62.具体地,计算系统可分别处理多个渲染数据生成任务,以得到语义化处理结果。其中,“分别处理”至少可以被理解为以下情况之一:(1)采用计算系统中同一处理器的不同时间片来处理任意两个渲染数据生成任务;(2)采用计算系统中不同处理器的同一时间片来处理任意两个渲染数据生成任务;(3)采用计算系统中不同处理器的不同时间片来处理任意两个渲染数据生成任务。需要说明的是,处理器及时间片的分配均可以由计算系统的调度器基于现有分配技术来实现,本实施例对此不作具体限制。
63.本实施例中,对多类待渲染日志数据进行分组,以得到多个数据组别,并将所属数据组别不同的待渲染日志数据分配至不同的渲染数据生成任务中进行处理,以实现自动驾驶日志数据的语义化处理。相较于现有技术将全部待渲染日志数据分配至同一渲染数据生成任务的方式,本技术可减小每一个渲染数据生成任务所需的算力,进而能降低处理设备的性能要求,并降低成本。同时,本技术提供的语义化处理方法还可应用于多种不同部署方式的计算系统中,具备高可拓展性。
64.在一个实施例中,本技术语义化处理方法还包括步骤:对自动驾驶日志数据所对应的总驾驶时段进行拆分,以得到多个时间段。
65.根据每一类待渲染日志数据所属的数据组别,生成多个渲染数据生成任务的步骤,包括:根据每一时间段的起止时间及每一类待渲染日志数据所属的数据组别,生成多个渲染数据生成任务。其中,所属时间段相同的待渲染日志数据对应同一渲染数据生成任务。
66.其中,总驾驶时段是指自动驾驶日志数据所记录的驾驶场景对应的总驾驶时段,例如,自动驾驶日志数据记录了车辆从12:00至14:00的自动驾驶过程,则总驾驶时段可为12:00至14:00,或者为2小时。
67.具体地,计算系统可确定自动驾驶日志数据的总驾驶时段,并将总驾驶时段从一个完整的时段拆分为多个时间段,且确定各时间段的起止时间。在其中一个实施例中,本申
请可将总驾驶时段拆分为多个时间长度相同的时间段,或者将总驾驶时段拆分为多个时间长度不相同的时间段,本技术对此不作具体限制。在生成渲染数据生成任务时,计算系统可将所属时间段相同的待渲染日志数据在同一渲染数据生成任务中进行处理,将所属数据组别不同的待渲染日志数据在不同的渲染数据生成任务中进行处理。
68.需要说明的是,对于某类待渲染日志数据而言,该类待渲染日志数据包括了多个时刻(或时段)下的日志数据,本技术可根据同一类待渲染日志数据中各个数据所对应的时刻(或时段),将同一类待渲染日志数据的不同数据分配至相同或不同的渲染数据生成任务中进行处理。例如,某类待渲染日志数据a和某类待渲染日志数据b同属于同一数据组别,待渲染日志数据a包括数据a1和a2,待渲染日志数据b包括数据b1和b2。其中,数据a1和b1为时间段t1所对应的数据,数据a2和b2为时间段t2所对应的数据,则本技术可生成2个渲染数据生成任务,分别用于对(a1,b1)及(a2,b2)进行数据处理。
69.本实施例中,计算系统将总驾驶时段拆分为多个时间段,并根据多个时间段与每一类待渲染日志数据所述的数据组别生成渲染数据生成任务,使得所属数据组别不同的待渲染日志数据分配至不同的渲染数据生成任务中,以及所属时间段相同的待渲染日志数据分配至同一渲染数据生成任务中进行处理。如此,可在时间维度上对各类待渲染日志数据进行拆分,以便于并行执行数据处理及日志数据的下载,或者并行执行对应于不同时间段的多个渲染数据生成任务,无需等到全部日志数据下载完成后再启动数据处理,进而可提高数据处理效率及语义化处理效率,并可提供更快速的响应体验。
70.在一个实施例中,对自动驾驶日志数据所对应的总驾驶时段进行拆分,以得到多个时间段的步骤,包括:根据自动驾驶数据的元数据(metadata)对总驾驶时段进行拆分,以得到多个时间段。其中,元数据可用于描述自动驾驶数据的数据属性,包括但不限于描述总驾驶时段、自动驾驶日志数据大小、自动驾驶日志数据的存储地址和需要渲染的数据空间。本技术基于元数据实现总驾驶时段的拆分,无需获取全部自动驾驶日志数据即可实现时间维度的拆分,可进一步提高数据处理效率及语义化处理效率,并可提供更快速的响应体验。
71.在一个实施例中,对自动驾驶日志数据所对应的总驾驶时段进行拆分,以得到多个时间段的步骤,包括:获取预设时间间隔,并根据预设时间间隔对总驾驶时段进行拆分,以得到多个时间段。
72.可以理解,该预设时间间隔的具体数值可以依据响应效率要求、计算系统的算力配置、下载速率与数据处理效率之间的平衡等因素来确定,本技术对此不作具体限制。在一个示例中,预设时间间隔可以为5秒。
73.若预设时间间隔为

t,总驾驶时段的起始时间为t1,结束时间为t2,则可将总驾驶时段拆分为以下各时间段:(t1,t1+

t),(t1+

t,t1+2

t),(t1+2

t,t1+3

t),
……
,(t1+n

t,t2)。其中,n为正整数。如此,无需获取全部自动驾驶日志数据即可实现时间维度的拆分,可进一步提高数据处理效率及语义化处理效率,并可提供更快速的响应体验。
74.在一个实施例中,如图2所示,在确定对自动驾驶日志数进行数据处理的情况下,计算系统可在时间维度及数据空间维度上对自动驾驶日志数据进行拆分,并根据各时间段的起止时间和每一类待渲染日志数据的所属数据组别,生成渲染数据生成任务,并通过调度器将各渲染数据生成任务调度至对应的处理器进行处理,以得到虚拟3d数据,并对虚拟3d数据进行渲染。如此,降低对用户电脑配置要求,并能够更快看到数据处理之后的3d渲染
结果。
75.具体而言,如图3所示,本实施例的处理过程具体可包括如下步骤:
76.s402,计算系统获取自动驾驶日志数据,该自动驾驶日志数据包括多类待渲染的日志数据。
77.s404,计算系统将自动驾驶日志数据所对应的总驾驶时段拆分为多个时间段,以实现时间维度的拆分。具体地,可通过一时间维度拆分算法/模型来实现本步骤,将自动驾驶日志数据的元数据输入至该算法/模型,并获取该算法/模型的输出。进一步地,该输出可以为一数组,数组中每个元素用于表示一时间段的起止时间。
78.s406,计算系统对多类待渲染日志数据进行分组,以实现数据空间维度的拆分。类似于步骤s404,可通过一空间维度拆分算法/模型来实现本步骤,将各类待渲染日志数据(如每类待渲染日志数据的定义、参数配置、时间维度拆分结果和/或自动驾驶日志数据的地址等)输入至该算法/模型,并获取该算法/模型的输出。进一步地,该输出可以为一数组,数组中每个元素为每一数据组别所包含的数据。
79.s408,计算系统生成多个渲染数据生成任务,并将各渲染数据生成任务调度至对应的处理器处进行处理。
80.具体地,每个渲染数据生成任务负责处理一个时间段下,一个数据组别所对应的各类待渲染日志数据。也即,每一渲染数据生成任务为各类属于同一数据组别的待渲染日志数据中,对应于同一时间段的子数据的数据处理任务。在得到多个渲染数据生成任务后,可将各个渲染数据生成任务的信息输入至调度器,以通过调度器将多个渲染数据生成任务分发给对应的处理器进行处理。
81.s410,计算系统通过其所包括的处理器处理各渲染数据生成任务,并将处理得到的虚拟3d数据返回至用户前端。
82.s412,计算系统将处理器返回的虚拟3d数据渲染在虚拟3d世界中,以重建自动驾驶过程。
83.本实施例中,时间维度拆分算法、空间维度拆分算法和调度器等均可以以插件的形式调用,可通过多种实现方式来实现,本技术对此不作具体限制。
84.在一个实施例中,计算系统可以为计算集群系统。如图4所示,根据预设时间间隔对总驾驶时段进行拆分,以得到多个时间段的步骤,包括:
85.s510,获取计算集群系统的总负载;
86.s520,根据预设时间间隔及总负载确定目标时间间隔,并基于目标时间间隔对总驾驶时段进行拆分,以得到多个时间段。
87.具体地,计算集群系统可以基于总负载对预设时间间隔进行调整,以确定目标时间间隔,并根据目标时间间隔来拆分总驾驶时段,得到多个时间段。可以理解,基于总负载对预设时间间隔进行调整可以采用现有技术中的任意方式来实现,本技术对此不作具体限制。在其中一个实施例中,计算集群系统可以根据总负载确定比例系数,并将该比例系数与预设时间间隔的乘积作为目标时间间隔。例如,若总驾驶时段为10秒,预设时间间隔为5秒,则可将总驾驶时段划分为2个时间段,分别为0到5秒,及5到10秒。当总负载小于50%时,可将2个时间段分别一分为二,以得到4个时间段,各时间段的时间长度均为2.5秒。当总负载小于25%时,可将4个时间段分别一分为二,以得到8个时间段,各时间段的时间长度均为
1.25秒,以此类推。
88.如此,计算集群系统可以根据计算集群系统的总负载确定目标时间间隔,在总负载较低的情况下,可以在时间维度上做更细颗粒度的拆分。在总负载较高的情况下,可以在时间维度上做粗颗粒度的拆分,进而可提高并行处理效率,并进一步提高数据处理及语义化处理的效率。
89.在一个实施例中,自动驾驶日志数据能够以数据块(block)的形式存储于计算集群系统的多个设备中。以hadoop系统为例,hadoop系统会以数据块的形式将自动驾驶日志数据存储在hdfs(hadoop distributed file system,分布式文件系统)中,根据每个数据块的大小及自动驾驶日志数据的header,可以尽可能地将每一数据块所对应的目标驾驶时段与拆分得到的各时间段在时间维度上进行对齐。其中,自动驾驶日志数据的header是指自动驾驶日志数据中的一片特殊数据,若某个时间戳对应的数据地址为addr1,则通过自动驾驶日志数据的header可以明确addr1在自动驾驶日志数据的偏移量(offset),以便于快速地根据数据块的大小获得各时间戳对应的数据地址在自动驾驶日志数据的偏移量。
90.具体地,对所述自动驾驶日志数据所对应的总驾驶时段进行拆分,以得到多个时间段的步骤,包括:对于每一数据块,获取该数据块所对应的目标驾驶时段,并从总驾驶时段中将目标驾驶时段拆分为预设数量个时间段。可以理解,该预设数量的具体数值可以依据实际情况来确定,例如可为1个或多个,本技术对此不作具体限制。在一个示例中,预设数量可为1。
91.以预设数量为1,自动驾驶日志数据的总大小为2.3g,hdfs会将数据大小为512mb的日志数据划分为一个数据块为例,自动驾驶日志数据通过5个数据块分别存储于5个不同的设备中,其中,第一数据块为自动驾驶日志数据中[0mb,512mb]的数据,第二数据块为自动驾驶日志数据中[512mb,1gb]的数据,第三数据块为自动驾驶日志数据中[1gb,1.5gb]的数据,第四数据块为自动驾驶日志数据中[1.5gb,2gb]的数据,第五数据块为自动驾驶日志数据中[2gb,2.3gb]的数据。
[0092]
计算集群系统通过读取自动驾驶日志数据的header,从而可明确每个时间戳在自动驾驶日志数据的偏移量,并可据此确定每个数据块所对应的最大时间戳。在本示例中,可拆分得到如下5个时间段:
[0093]
a.[自动驾驶日志数据的最小时间戳,第一数据块所对应的最大时间戳];
[0094]
b.[第一数据块所对应的最大时间戳,第二数据块所对应的最大时间戳];
[0095]
c.[第二数据块所对应的最大时间戳,第三数据块所对应的最大时间戳];
[0096]
d.[第三数据块所对应的最大时间戳,第四数据块所对应的最大时间戳];
[0097]
e.[第四数据块所对应的最大时间戳,第五数据块所对应的最大时间戳]。
[0098]
本实施例中,通过将数据块与多个时间段在时间维度上进行对齐,从而可尽可能地将对应的渲染数据生成任务分配到存储数据块的物理机器处,以避免数据的网络拷贝,并进一步加快处理效率。
[0099]
对于每个时间段,计算集群系统可查询对应的数据块,获得该数据块所属信息(如该数据块所属的节点node),通过对资源管理器,如hadoop yarn(yet another resource negotiator,另一种资源协调者)资源管理器,发起谈判资源分配,根据分配到的容器(container)资源进行数据分组。
[0100]
在一个实施例中,将多类所述待渲染日志数据分为至少两个数据组别的步骤,包括:
[0101]
确定计算集群系统为自动驾驶日志数据分配的容器;
[0102]
获取每一类待渲染日志数据对应的所需算力,并根据各所需算力,将多类待渲染日志数据分为至少两个数据组别,以使任意两个容器所对应的平均算力之差小于第二预设阈值,或任意两个数据组别所对应的平均算力之最大差值最小;
[0103]
其中,每一容器对应的平均算力为该容器的总消耗算力与该容器的处理器数量之间的比值,该容器的总消耗算力为目标数据组别包括的各类待渲染日志数据的所需算力之和,目标数据组别为分配至该容器处理的待渲染日志数据的所属数据组别。
[0104]
具体地,计算集群系统可以为自动驾驶日志数据分配容器,所分配的每一容器均用于将待渲染日志数据处理为虚拟3d数据,即用于执行渲染数据生成任务。在计算集群系统为自动驾驶日志数据分配了多个容器的情况下,考虑到各容器包括了不同数量的处理器,为尽可能地平衡不同容器的算力负载,计算集群系统可结合容器资源来进行数据分组。
[0105]
具体而言,计算集群系统可获取每一类待渲染日志数据对应的所需算力。其中,每一类待渲染日志数据对应的所需算力可以为将该类待渲染日志数据处理为虚拟3d数据的所需算力。换言之,若某一渲染数据生成任务为一类待渲染日志数据的数据处理任务,则执行该渲染数据生成任务的处理器在其可用算力不小于该类待渲染日志数据的所需算力时,方可执行该渲染数据生成任务,并得到对应的虚拟3d数据。可以理解,每一所需算力可以采用任意方式获取,本技术对此不作具体限制。在一个示例中,每一所需算力可为该类待渲染日志数据的算力经验值。
[0106]
计算集群系统可根据每一类待渲染日志的所需算力进行数据分组,并确定每一数据组别所对应的容器。其中,每一数据组别所对应的容器为将该数据组别对应的各类待渲染日志数据处理为虚拟3d数据的容器,也即用于执行该数据组别对应的渲染数据生成任务的容器。对于每一容器而言,该容器所对应的数据组别(即目标数据组别)可以为目标渲染数据生成任务中包括的待渲染日志数据的所属数据组别,目标渲染数据生成任务可为分配至该容器执行的渲染数据生成任务。
[0107]
对于每一容器,计算集群系统可对目标数据组别所对应的各类待渲染日志数据的所需算力进行求和,以得到该容器的总消耗算力。并将总消耗算力与该容器的处理器数量的比值作为该容器的平均算力。
[0108]
本技术中,计算集群系统可按照以下两个规则之一来确定最终数据分组方式:
[0109]
(1)在最终的数据分组方式中,任意两个容器所对应的平均算力之差小于第二预设阈值。换言之,对于任意两个容器所对应的平均算力作差,该差值均小于第二预设阈值。其中,第二预设阈值的具体数值可以依据计算集群系统中各容器的处理器资源来确定,本技术对此不作具体限制。
[0110]
(2)相较于其他数据分组方式,在最终的数据分组方式中,任意两个容器所对应的平均算力的最大差值最小。换言之,若仅存在第一数据分组方式和第二数据分组方式,且在第一数据分组方式中,任意两个平均算力的最大差值为1,在第二数据分组方式中,任意两个平均算力的最大差值为2,则可按照第一数据分组方式来确定各类待渲染日志数据的所属数据组别。
[0111]
通过上述方式进行数据分组,能够尽可能地平衡各个容器的平均算力,以进一步降低每一个渲染数据生成任务所需的算力。如此,可进一步降低处理设备的性能要求,并降低成本。
[0112]
上述实施例中,若语义化处理方法执行于计算集群系统,则通过在时间维度对自动驾驶日志数据进行拆分,计算集群系统中的多个设备可以同时执行不同时间段所对应的渲染数据生成任务,将时间域上的串行处理变为并行处理,进而可提高处理效率并减低用户等待时间。通过在数据空间维度进行拆分,从而可降低数据处理的算力需求,并优化计算集群系统中各设备的负载均衡。同时,对于服务器集群系统,本技术可使用资源池管理,以有效控制总算力消费,减低每个用户的均摊成本。
[0113]
在一个实施例中,计算系统可以为单机计算系统,该单机计算系统中包括一个或多个的处理器。如图5所示,将多类待渲染日志数据分为至少两个数据组别的步骤,可以包括:
[0114]
s210,获取每一类待渲染日志数据的所需算力;
[0115]
s220,根据各所需算力,将多类待渲染日志数据分为至少两个数据组别,以使任意两个数据组别所对应的总算力之差小于第一预设阈值,或任意两个数据组别所对应的总算力之最大差值最小。其中,每一个数据组别所对应的总算力为该数据组别包括的各类待渲染日志数据的所需算力之和。
[0116]
其中,每一类待渲染日志数据的所需算力可参照上述实施例,此处不再赘述。本技术中,单机计算系统可获取每一类待渲染日志数据的所需算力,并根据各个所需算力进行数据分组。在数据分组后,对于每一个数据分组,单机计算系统可确定该数据分组所包括的各类待渲染日志数据,即各目标类别待渲染日志数据,并将各目标类别待渲染日志数据所对应的所需算力进行累加,以得到该数据分组所对应的总算力。可以理解,某一数据分组所对应的总算力可以为将该数据分组下的各目标类别待渲染日志数据处理为虚拟3d数据的所需算力。
[0117]
本技术中,单机计算系统可按照以下两个规则之一来确定最终数据分组方式:
[0118]
(1)在最终的数据分组方式中,任意两个数据组别所对应的总算力之差小于第一预设阈值。换言之,对于任意两个数据组别的总算力作差,该差值均小于第一预设阈值。其中,第一预设阈值的具体数值可以依据单机计算系统中处理器的型号和/或处理器的最小内核数等确定,本技术对此不作具体限制。
[0119]
(2)相较于其他数据分组方式,在最终的数据分组方式中,任意两个数据组别所对应的总算力的最大差值最小。换言之,若仅存在第一数据分组方式和第二数据分组方式,且在第一数据分组方式中,任意两个总算力的最大差值为1,在第二数据分组方式中,任意两个总算力的最大差值为2,则可按照第一数据分组方式来确定各类待渲染日志数据的所属数据组别。
[0120]
可以理解,本技术可采用现有技术中的任意算法来实现前述数据分组,在其中一个实施例中,可采用贪心算法来实现上述数据分组。
[0121]
通过上述方式进行数据分组,能够尽可能地平衡各个数据分组的总算力,以进一步降低每一个渲染数据生成任务所需的算力。如此,可减少程序崩溃的发生,提高程序执行的稳定性,并可通过较低配置的单机计算系统来执行语义化处理方法,从而可进一步降低
处理设备的性能要求,并降低成本。
[0122]
在确定数据分组后,单机计算系统可根据每一类待渲染日志数据所属的数据组别,生成多个渲染数据生成任务,使得所属数据组别不同的待渲染日志数据对应不同的渲染数据生成任务。在一个示例中,所属数据组别相同的待渲染日志数据可对应相同的渲染数据生成任务,从而在平衡总算力的情况下,减少渲染数据生成任务的数量,加快处理效率。
[0123]
在一个实施例中,若单机计算系统中包括多个处理器,则根据各所述所需算力,将多类所述待渲染日志数据分为至少两个数据组别的步骤,可以包括:
[0124]
获取单机计算系统的处理器数量,并根据该处理器数量确定组别数量,该组别数量小于处理器数量;
[0125]
根据各类待渲染日志数据所对应的所需算力,将多类待渲染日志数据分为组别数量个数据组别。
[0126]
具体地,若执行方法的单机计算系统为单机多处理器计算系统(如一个计算机设备中包括多个中央处理器),则可根据单机计算系统的处理器数量确定数据分组的组别数量,将小于处理器数量的值确认为组别数量。单机计算系统可根据各类待渲染日志数据所对应的所需算力,将多类待渲染日志数据分为组别数量个数据组别,以降低渲染数据生成任务的数量。如此,可为其他任务(如软件编辑任务和仿真任务等)预留一定的算力,以提高数据处理过程的可靠性。
[0127]
在一个实施例,组别数量可以为处理器数量与预设数值之差,该预设数值可以根据其他任务的所需算力来确定,本技术对此不作具体限制。在一个示例中,预设数值可为2,即组别数量等于处理器数量减2。
[0128]
在一个实施例中,处理各渲染数据生成任务,以得到语义化处理结果的步骤可以包括:单机计算系统可启动组别数量个线程,不同的处理器并行执行各个线程,每一线程分别处理同一数据组别所对应的渲染数据生成任务。
[0129]
在一个示例中,在单机计算系统包括多个cpu(central processing unit,中央处理器)的情况下,本技术可尽可能地利用多个处理器,并平衡不同处理器的算力负载。
[0130]
具体地,在进行时间维度拆分时,单机计算系统可按照5秒的时长进行拆分。例如,总驾驶时长为15秒,则经时间维度的拆分后,可得到[0s,5s],[5s,10s]及[10s,15s]三个时间段。
[0131]
在进行数据空间维度的拆分时,可将各类待渲染日志数据拆分为(cpu数量-2)个数据组别,根据每一类待渲染日志数据的所需算力,尽可能地平衡各数据组别所对应的总算力。例如,在一台8核的单机计算系统上,需要对25类待渲染日志数据进行数据处理。则可将以下数据输入至空间维度拆分算法/模型中,并获取该算法/模型的输出。
[0132]
a.16路camera1-camera16(6),即16路摄像数据;
[0133]
b.3路lidara-lidarc(10),即3路雷达数据;
[0134]
c.1路障碍物bounding box(6),即1路障碍物识别边框数据;
[0135]
d.1路障碍物classification(4),即1路障碍物分类数据;
[0136]
e.1路障碍物prediction-trajectory(4),即1路障碍物轨迹预测结果数据;
[0137]
f.1路障碍物prediction-confidence(1),即1路障碍物预测值的置信区间数据;
[0138]
g.1路planning-trajectory(1),即1路车辆的规划轨迹数据;
[0139]
h.3路textlogger1-textlogger3(2),即3路文本数据。
[0140]
空间维度拆分算法/模型的输出6个数据分组,分组情况可如下所示:
[0141]
a.数据分组1(总算力24分):[lidara,camera1,camera2,textlogger1]
[0142]
b.数据分组2(总算力24分):[lidarb,camera3,camera4,textlogger2]
[0143]
c.数据分组3(总算力24分):[lidarc,camera5,camera6,textlogger3]
[0144]
d.数据分组4(总算力25分):[camera7,camera8,camera9,camera10,planning-trajectory]
[0145]
e.数据分组5(总算力24分):[camera11,camera12,camera13,camera14]
[0146]
f.数据分组6(总算力24分):[camera15,camera16,bounding box,classification,prediction-trajectory,prediction-confidence]]
[0147]
在确定数据分组后,调度器可启动(cpu数量-2)个线程,即启动6个线程,每一线程分别处理同一数据组别所对应的渲染数据生成任务。调度器可将同一时间段内各数据组别所对应的渲染数据生成任务分发给各cpu,等到同一时间段所对应的各渲染数据生成任务均处理完成后,方将下一时间段所对应的各渲染数据生成任务分发给各cpu,以此类推。
[0148]
如此,时间维度的拆分可以使得日志数据下载和数据处理并行进行,即一边下载一边进行数据处理。数据空间维度的拆分可以使得数据处理算力需求减低,减少程序崩溃,进而可提高程序执行的稳定,并使自动驾驶日志数据的语义化处理方法在更廉价的计算系统上使用,降低成本。
[0149]
下面对本技术实施例提供的自动驾驶日志数据的语义化处理装置进行描述,下文描述的文本处理装置与上文描述的文本处理方法可相互对应参照。
[0150]
在一个实施例中,如图6所示,提供了一种自动驾驶日志数据的语义化处理装置700。该装置包括数据获取模块610、数据分组模块620和语义化处理模块630。其中,数据获取模块610用于获取自动驾驶日志数据,所述自动驾驶日志数据包括多类待渲染日志数据。数据分组模块620用于将多类所述待渲染日志数据分为至少两个数据组别,并根据每一类所述待渲染日志数据所属的数据组别,生成多个渲染数据生成任务,所属数据组别不同的待渲染日志数据对应不同的渲染数据生成任务。语义化处理模块630用于处理各所述渲染数据生成任务,以得到语义化处理结果
[0151]
在一个实施例中,若所述装置应用于单机计算系统,则数据分组模块620包括算力获取单元和算力分组单元。其中,算力获取单元用于获取每一类所述待渲染日志数据对应的所需算力。算力分组单元用于根据各所述所需算力,将多类所述待渲染日志数据分为至少两个数据组别,以使任意两个数据组别所对应的总算力之差小于第一预设阈值,或任意两个数据组别所对应的总算力之最大差值最小;其中,每一个所述数据组别所对应的总算力为该数据组别包括的各类所述待渲染日志数据的所需算力之和。
[0152]
在一个实施例中,算力分组单元包括组别数量确定单元及第一分组单元。其中,组别数量确定单元用于获取所述单机计算系统的处理器数量,并根据所述处理器数量确定组别数量,所述组别数量小于所述处理器数量。第一分组单元用于根据各所述所需算力,将多类所述待渲染日志数据分为所述组别数量个数据组别。
[0153]
在一个实施例中,若所述装置应用于计算集群系统,则数据分组模块620可包括容
器确定单元及容器分组单元。其中,容器确定单元用于确定所述计算集群系统为所述自动驾驶日志数据分配的容器。容器分组单元用于获取每一类所述待渲染日志数据对应的所需算力,并根据各所述所需算力,将多类所述待渲染日志数据分为至少两个数据组别,以使任意两个容器所对应的平均算力之差小于第二预设阈值,或任意两个数据组别所对应的平均算力之最大差值最小。其中,每一所述容器对应的平均算力为该容器的总消耗算力与该容器的处理器数量之间的比值,该容器的总消耗算力为目标数据组别包括的各类所述待渲染日志数据的所需算力之和,所述目标数据组别为分配至该容器处理的待渲染日志数据的所属数据组别。
[0154]
在一个实施例中,所述装置还包括时段拆分模块,数据分组模块620还包括任务生成单元。其中,该时段拆分模块用于对所述自动驾驶日志数据所对应的总驾驶时段进行拆分,以得到多个时间段。该数据分组模块620用于根据每一所述时间段的起止时间及每一类所述待渲染日志数据所属的数据组别,生成多个渲染数据生成任务,所属时间段相同的待渲染日志数据对应同一渲染数据生成任务。
[0155]
在一个实施例中,时段拆分模块包括第一拆分单元,该第一拆分单元用于获取预设时间间隔,并根据所述预设时间间隔对所述总驾驶时段进行拆分,以得到多个所述时间段。
[0156]
在一个实施例中,若所述装置应用于计算集群系统,则第一拆分单元包括总负载获取单元及目标时间间隔确定单元。其中,总负载获取单元获取所述计算集群系统的总负载。目标时间间隔确定单元用于根据所述预设时间间隔及所述总负载确定目标时间间隔,并基于所述目标时间间隔对所述总驾驶时段进行拆分,以得到多个所述时间段。
[0157]
在一个实施例中,若所述装置应用于计算集群系统,则时段拆分模块包括第二拆分单元,该第二拆分单元用于针对每一所述数据块,获取所述数据块所对应的目标驾驶时段,并从所述总驾驶时段中将所述目标驾驶时段拆分为预设数量个时间段。
[0158]
在一个实施例中,时段拆分模块包括第三拆分单元,该第三拆分单元用于根据所述自动驾驶日志数据的元数据,对所述总驾驶时段进行拆分,以得到多个所述时间段。
[0159]
在一个实施例中,本技术还提供了一种存储介质,所述存储介质中存储有计算机可读指令,所述计算机可读指令被一个或多个处理器执行时,使得一个或多个处理器执行如上述实施例中任一项所述自动驾驶日志数据的语义化处理方法的步骤。
[0160]
在一个实施例中,本技术还提供了一种计算系统,所述计算系统中存储有计算机可读指令,所述计算机可读指令被一个或多个处理器执行时,使得一个或多个处理器执行如上述实施例中任一项所述自动驾驶日志数据的语义化处理方法的步骤。
[0161]
具体地,计算系统可包括一个或多个的计算机设备。示意性地,如图7所示,图7为本技术实施例提供的一种计算机设备的内部结构示意图,该计算机设备700可以被提供为一服务器。参照图7,计算机设备700包括处理组件702,其进一步包括一个或多个处理器,以及由存储器701所代表的存储器资源,用于存储可由处理组件702的执行的指令,例如应用程序。存储器701中存储的应用程序可以包括一个或一个以上的每一个对应于一组指令的模块。此外,处理组件702被配置为执行指令,以执行上述任意实施例的文本识别方法。
[0162]
计算机设备700还可以包括一个电源组件703被配置为执行计算机设备700的电源管理,一个有线或无线网络接口704被配置为将计算机设备700连接到网络,和一个输入输
出(i/o)接口705。计算机设备700可以操作基于存储在存储器701的操作系统,例如windows server tm、mac os xtm、unix tm、linux tm、free bsdtm或类似。
[0163]
本领域技术人员可以理解,图7中示出的结构,仅仅是与本技术方案相关的部分结构的框图,并不构成对本技术方案所应用于其上的计算机设备的限定,具体的计算机设备可以包括比图中所示更多或更少的部件,或者组合某些部件,或者具有不同的部件布置。
[0164]
最后,还需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个
……”
限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。本文中,“一”、“一个”、“所述”、“该”和“其”也可以包括复数形式,除非上下文清楚指出另外的方式。多个是指至少两个的情况,如2个、3个、5个或8个等。“和/或”包括相关所列项目的任何及所有组合。
[0165]
本说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间可以根据需要进行组合,且相同相似部分互相参见即可。
[0166]
对所公开的实施例的上述说明,使本领域专业技术人员能够实现或使用本技术。对这些实施例的多种修改对本领域的专业技术人员来说将是显而易见的,本文中所定义的一般原理可以在不脱离本技术的精神或范围的情况下,在其它实施例中实现。因此,本技术将不会被限制于本文所示的这些实施例,而是要符合与本文所公开的原理和新颖特点相一致的最宽的范围。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1