面向自动驾驶的端到端实时三维多目标追踪方法及装置

文档序号:25822012发布日期:2021-07-09 15:04阅读:192来源:国知局
面向自动驾驶的端到端实时三维多目标追踪方法及装置

1.本申请涉及自动驾驶领域,尤其涉及一种面向自动驾驶的端到端实时三维多目标追踪方法及装置。


背景技术:

2.在自动驾驶场景中,自动驾驶车辆行驶路线上的道路情况并不是一成不变的,若不能实时获取道路情况,并根据道路情况及时调整路径,可能会发生碰撞,道路情况的获取可通过三维多目标追踪实现,因此,三维目标追踪对于后续路径规划和碰撞避免具有至关重要的作用。
3.因此,如何提供一种实现三维多目标追踪的技术方案,是目前本领域人员亟需解决的技术问题。


技术实现要素:

4.本申请所要解决的技术问题是提供一种面向自动驾驶的端到端实时三维多目标追踪方法,以实现三维多目标追踪。
5.本申请还提供了一种面向自动驾驶的端到端实时三维多目标追踪装置,用于保证上述方法在实际中的实现及应用。
6.一种面向自动驾驶的端到端实时三维多目标追踪方法,包括:
7.在自动驾驶的过程中,当接收到第t帧的传感器数据时,并行执行预测步骤和状态更新步骤;其中,所述t为正整数;
8.所述预测步骤包括:
9.获取第r帧的状态集合;其中,所述r小于所述t,所述第r帧的状态集合为最近更新得到的集合,所述第r帧的状态集合由第r帧的传感器数据更新得到,所述状态集合包括多个物体的物体状态数据;
10.依据所述第r帧的状态集合,预测所述第t帧的追踪结果;所述追踪结果用于表征真实场景中每个物体在第t帧的位置与姿态;
11.所述状态更新步骤包括:
12.检测所述第t帧的传感器数据中包含的多个物体,得到第t帧的多个检测包围框,并在状态集合更新至第t

1帧时,获取第t

1帧的状态集合;
13.将所述第t帧的各个检测包围框和所述第t

1帧的状态集合进行关联,得到所述第t帧的状态集合;
14.将所述第t

1帧的状态集合更新为所述第t帧的状态集合。
15.上述的方法,可选的,所述依据所述第r帧的状态集合,预测所述第t帧的追踪结果,包括:
16.基于所述第r帧的状态集合中包括的每一个物体的物体状态数据,计算每一个物体在第t帧的包围框;
17.针对每一个物体,将所述物体在第t帧的包围框、以及所述第r帧的状态集合中所述物体对应的物体状态数据中的轨迹标识符,组成所述物体在第t帧的子追踪结果;
18.将各个子追踪结果组成所述第t帧的追踪结果。
19.上述的方法,可选的,所述基于所述第r帧的状态集合中包括的每一个物体的物体状态数据,计算每一个物体在第t帧的包围框,包括:
20.依据所述第r帧的状态集合中包括的每一个物体的物体状态数据中的运动速度,计算每一个物体在每个维度上的第一位移;
21.依据所述第r帧的状态集合中包括的每一个物体的物体状态数据中的包围框、以及每一个物体在每个维度上的第一位移,计算每一个物体在第t帧的包围框。
22.上述的方法,可选的,所述将所述第t帧的各个检测包围框和所述第t

1帧的状态集合进行关联,得到所述第t帧的状态集合,包括:
23.基于所述第t

1帧的状态集合中包括的每一个物体的物体状态数据,计算每一个物体在第t帧的预测包围框;
24.基于各个预测包围框和所述第t帧的各个检测包围框,构建亲和矩阵;
25.对所述亲和矩阵进行求解,得到未被匹配的各个检测包围框、未被匹配的各个预测包围框和多个匹配对;每个匹配对包括检测包围框和预测包围框;
26.基于未被匹配的各个检测包围框、未被匹配的各个预测包围框、各个匹配对、以及所述第t

1帧的状态集合,得到所述第t帧的状态集合。
27.上述的方法,可选的,所述基于未被匹配的各个检测包围框、未被匹配的各个预测包围框、各个匹配对、以及所述第t

1帧的状态集合,得到所述第t帧的状态集合,包括:
28.针对每个匹配对,确定所述匹配对中的检测包围和预测包围框各自的权重,依据所述匹配对中的检测包围和预测包围框各自的权重,对所述匹配对中的检测包围框和观测包围框进行加权平均,得到第一包围框,并对初始物体状态数据中的第一计数结果加一,得到新的第一计数结果,将所述第一包围框、新的第一计数结果、以及所述初始物体状态数据中的运动速度、轨迹标识符和第二计数结果,组成第一物体状态数据;其中,所述初始物体状态数据为第t

1帧的状态集合中与所述匹配对中的预测包围框对应物体状态数据,所述第一计数结果用于表征物体被观测到的次数,第二计数结果用于表征物体连续未被观测到的次数;
29.针对未被匹配的检测包围框,为所述检测包围框分配轨迹标识符,并对所述检测包围框对应的运动速度和第二计数结果进行初始化设置,将所述检测包围框对应的第一计数结果赋值为1,将所述检测包围框、所述检测包围框对应的轨迹标识符、运动速度、第一计数结果和第二计数结果,组成第二物体状态数据;
30.针对未被匹配的每个预测包围框,将所述第t

1帧的状态集合中与所述预测包围框对应的物体状态数据中的第二计数结果加一,得到新的第二计数结果,若所述新的第二计数结果小于消失阈值,则将所述预测包围框、所述新的第二计数结果、所述第t

1帧的状态集合中与所述预测包围框对应的物体状态数据中的运动速度、轨迹标识符和第一计数结果,组成第三物体状态数据;
31.将所有的第一物体状态数据、第二物体状态数据和第三物体状态数据,组成第t帧的状态集合。
32.上述的方法,可选的,所述基于所述第t

1帧的状态集合中包括的每一个物体的物体状态数据,计算每一个物体在第t帧的预测包围框,包括:
33.依据所述第t

1帧的状态集合中包括的每一个物体的物体状态数据中的运动速度,计算每一个物体在每个维度上的第二位移;
34.依据第t

1帧的状态集合中包括的每一个物体的物体状态数据中的包围框、以及每一个物体在每个维度上的第二位移,计算每一个物体在第t帧的预测包围框。
35.上述的方法,可选的,所述检测所述第t帧的传感器数据中包含的多个物体,得到第t帧的多个检测包围框,包括:
36.调用三维目标检测器,检测所述第t帧的传感器数据中包含的多个物体,得到第t帧的多个检测包围框。
37.一种面向自动驾驶的端到端实时三维多目标追踪装置,包括:
38.执行单元,用于在自动驾驶的过程,当接收到第t帧的传感器数据时,并行执行预测步骤和状态更新步骤;其中,所述t为正整数;
39.所述预测步骤包括:
40.获取第r帧的状态集合;其中,所述r小于所述t,所述第r帧的状态集合为最近更新得到的集合,所述第r帧的状态集合由第r帧的传感器数据更新得到,所述状态集合包括多个物体的物体状态数据;
41.预测单元,用于依据所述第r帧的状态集合,预测所述第t帧的追踪结果;所述追踪结果用于表征真实场景中每个物体在第t帧的位置与姿态;
42.所述状态更新步骤包括:
43.检测所述第t帧的传感器数据中包含的多个物体,得到第t帧的多个检测包围框,并在状态集合更新至第t

1帧时,获取第t

1帧的状态集合;
44.将所述第t帧的各个检测包围框和所述第t

1帧的状态集合进行关联,得到所述第t帧的状态集合;
45.将所述第t

1帧的状态集合更新为所述第t帧的状态集合。
46.上述的装置,可选的,所述执行单元用于依据所述第r帧的状态集合,预测所述第t帧的追踪结果,包括所述执行单元具体用于:
47.基于所述第r帧的状态集合中包括的每一个物体的物体状态数据,计算每一个物体在第t帧的包围框;
48.针对每一个物体,将所述物体在第t帧的包围框、以及所述第r帧的状态集合中所述物体对应的物体状态数据中的轨迹标识符,组成所述物体在第t帧的子追踪结果;
49.将各个子追踪结果组成所述第t帧的追踪结果。
50.上述的装置,可选的,所述执行单元用于基于所述第r帧的状态集合中包括的每一个物体的物体状态数据,计算每一个物体在第t帧的包围框,包括所述执行单元具体用于:
51.依据所述第r帧的状态集合中包括的每一个物体的物体状态数据中的运动速度,计算每一个物体在每个维度上的第一位移;
52.依据所述第r帧的状态集合中包括的每一个物体的物体状态数据中的包围框、以及每一个物体在每个维度上的第一位移,计算每一个物体在第t帧的包围框。
53.一种存储介质,所述存储介质包括存储的程序,其中,在所述程序运行时控制所述
存储介质所在的设备执行上述的面向自动驾驶的端到端实时三维多目标追踪方法。
54.一种电子设备,包括存储器,以及一个或者一个以上的程序,其中一个或者一个以上程序存储于存储器中,且经配置以由一个或者一个以上处理器执行上述的面向自动驾驶的端到端实时三维多目标追踪方法。
55.与现有技术相比,本申请包括以下优点:
56.本申请提供了一种面向自动驾驶的端到端实时三维多目标追踪方法及装置,在自动驾驶的过程中,当接收到第t帧的传感器数据时,并行执行预测步骤和状态更新步骤;t为正整数;预测步骤包括:获取第r帧的状态集合;r小于t,第r帧的状态集合为最近更新得到的集合,第r帧的状态集合由第r帧的传感器数据更新得到,状态集合包括多个物体的物体状态数据;依据第r帧的状态集合,预测第t帧的追踪结果;追踪结果用于表征真实场景中每个物体在第t帧的位置与姿态;状态更新步骤包括:检测第t帧的传感器数据中包含的多个物体,得到第t帧的多个检测包围框,并在状态集合更新至第t

1帧时,获取第t

1帧的状态集合;将第t帧的各个检测包围框和第t

1帧的状态集合进行关联,得到第t帧的状态集合;将第t

1帧的状态集合更新为第t帧的状态集合。本技术方案中,在接收到第t帧的传感器数据时,直接基于第r帧的状态集合预测第t帧的追踪结果,从而实现了三维多目标追踪,并提高了三维多目标追踪的效率,且基于第t帧的传感器数据,对状态集合进行更新,确保了三维多目标追踪的准确度。
附图说明
57.为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据提供的附图获得其他的附图。
58.图1为本申请提供的一种面向自动驾驶的端到端实时三维多目标追踪方法的方法流程图;
59.图2为本申请提供的一种面向自动驾驶的端到端实时三维多目标追踪方法的又一方法流程图;
60.图3为本申请提供的一种面向自动驾驶的端到端实时三维多目标追踪方法的再一方法流程图;
61.图4为本申请提供的一种面向自动驾驶的端到端实时三维多目标追踪方法的实例图;
62.图5为本申请提供的一种面向自动驾驶的端到端实时三维多目标追踪方法的又一示例图;
63.图6为本申请提供的一种面向自动驾驶的端到端实时三维多目标追踪装置的结构示意图;
64.图7为本申请提供的一种电子设备的结构示意图。
具体实施方式
65.下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完
整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
66.本申请实施例提供了一种面向自动驾驶的端到端实时三维多目标追踪方法,该方法可以应用在thundermot系统,所述方法的方法流程图如图1所示,具体包括:
67.s101、在自动驾驶的过程中,接收第t帧的传感器数据。
68.本实施例中,接收第t帧的传感器数据,其中,t为正整数,传感器数据包括但不限于rgb图像数据、激光点云数据、惯性测量单元数据。
69.需要说明的是,传感器数据为车辆预设观测范围内的传感器数据。
70.本实施例中,在接收到第t帧的传感器器数据后,并行执行步骤s102和步骤s104。
71.s102、获取第r帧的状态集合。
72.本实施例中,当接收到车辆预设观测范围内第t帧的传感器数据,获取第r帧的状态集合;其中,r小于t,第r帧的状态集合为最近更新得到的集合,第r帧的状态集合由第r帧的传感器数据更新得到,状态集合包括多个物体的物体状态数据。
73.本实施例中,物体状态数据可以以s标识,物体状态数据s包括物体的运动状态数据s
m
和控制状态数据s
c
,运动状态数据s
m
包括包围框b和运动速度v,控制状态数据s
c
包括轨迹标识符α、第一计数结果β和第二计数结果γ,其中,包围框b=(h,w,l,x,y,z,θ),(h,w,l)表示包围框大小,(x,y,z)表示包围框底面中心,θ表示包围框偏航角,v=(v
x
,v
y
,v
z
)。
74.本实施例中,第一计数结果β用于表征物体状态数据对应物体被观测到的次数,第二计数结果用于表征物体状态数据对应物体连续未被观测到的次数,轨迹标识符用于唯一标识物体状态数据对应物体的运动轨迹。需要说明的是,不同物体对应不同的轨迹标识符。
75.s103、依据第r帧的状态集合,预测第t帧的追踪结果。
76.本实施例中,依据第r帧的状态集合中的每一个物体的物体状态数据,预测每一个物体第t帧位置和姿态,也就是预测每一个物体在第t帧的包围框,将预测得到的每一个物体在第t帧的包围框,和该物体对应的物体状态数据中的轨迹标识符组成该物体的在第t帧的子追踪结果,将所有物体在第t帧的子追踪结果作为该第t帧的追踪结果。其中,追踪结果用于表征真实场景中每个物体在第t帧的位置与姿态。
77.参阅图2,依据第r帧的状态集合,预测第t帧的追踪结果的过程,具体包括:
78.s201、基于第r帧的状态集合中包括的每一个物体的物体状态数据,计算每一个物体在第t帧的包围框。
79.依据第r帧的状态集合中包括的每一个物体的物体状态数据,计算每一个物体的包括框,具体的,基于第r帧的状态集合中包括的每一个物体的物体状态数据中的包围框,对第t帧每一个物体的包围框进行预测。
80.具体的,基于第r帧的状态集合中包括的每一个物体的物体状态数据,计算每一个物体在第t帧的包围框的过程,具体包括:
81.依据第r帧的状态集合中包括的每一个物体的物体状态数据中的运动速度,计算每一个物体在每个维度上的第一位移;
82.依据第r帧的状态集合中包括的每一个物体的物体状态数据中的包围框、以及每一个物体在每个维度上的第一位移,计算每一个物体在第t帧的包围框。
83.本实施例中,依据第r帧的状态集合中包括的每一个物体的物体状态数据中的运动速度和单位时间间隔,计算每一个物体在每个维度上的第一位移,其中,单位时间间隔为相邻两帧传感器数据到达的时间间隔,本实施例中,计算第t帧传感器数据与第r帧传感器数据到达的时间间隔,基于第t帧传感器数据与第r帧传感器数据到达的时间间隔、以及第r帧的状态集合中包括的每一个物体的物体状态数据中的运动速度,计算每一个物体在每个维度上的第一位移,并依据第r帧的状态集合中包括的每一个物体的物体状态数据中的包围框、以及每一个物体在每个维度上的第一位移,计算每一个物体在第t帧的包围框。
84.对上述提及的基于第r帧的状态集合中包括的每一个物体的物体状态数据,计算每一个物体在第t帧的包围框的过程进行举例说明如下:
85.例如,第r帧的状态集合中包括物体a对应的物体状态数据s,其中,s中包括包围框b=(h,w,l,x,y,z,θ)和运动速度v=(v
x
,v
y
,v
z
),单位时间间隔为δt,则,物体a在x轴上的第一位移δx=v
x
(t

r)δt,该物体在y轴上的第一位移为δy=v
y
(t

r)δt,该物体在z轴上的第一位移为δz=v
z
(t

r)δt。
86.所以物体a在第t帧的包围框b'=(h,w,l,x+δx,y+δy,z+δz,θ)。
87.s202、针对每一个物体,将物体在第t帧的包围框、以及第r帧的状态集合中该物体对应的物体状态数据中的轨迹标识符,组成该物体在第t帧的子追踪结果。
88.针对每一个物体,将物体在第t帧的包围框、以及第r帧的状态集合中该物体对应的物体状态数据中的轨迹标识符,组成该物体在第t帧的子追踪结果,也即,物体在第t帧的子追踪结果包括该物体在第t帧的包围框和该物体对应的轨迹标识符。
89.s203、将各个子追踪结果组成所述第t帧的追踪结果。
90.将所有物体在第t帧的子追踪结果组成所述第t帧的追踪结果。
91.s104、检测第t帧的传感器数据中包含的多个物体,得到第t帧的多个检测包围框。
92.对第t帧的传感器数据中包括的每一个物体进行检测,得到第t帧的传感器数据中包括的每一个物体的检测包围框。
93.本实施例中,检测第t帧的传感器数据中包含的多个物体,得到第t帧的多个检测包围框的过程,具体包括:
94.调用三维目标检测器,检测第t帧的传感器数据中包含的多个物体,得到第t帧的多个检测包围框。
95.本实施例中,通过将传感器数据发送至三维目标检测器,由三维目标检测器对传感器数据进行检测,从而得到三维目标检测器反馈的传感器数据中包括的每一个物体的检测包围框。
96.需要说明的是,本实施例可以同时运行多个三维目标检测器,在接收到一帧传感器数据后,通过轮询的方式,确定待检测的当前帧的传感器数据的三维目标检测器,并将当前帧的传感器数据发送至所确定的三维目标检测器,由该三维目标检测器对传感器数据进行检测。从而保证任意传感器数据到达三维目标检测器后无需等待,即可检测,提高传感器数据的检测效率。
97.s105、在状态集合更新至第t

1帧时,获取第t

1帧的状态集合。
98.本实施例中,判断状态集合是否更新至第t

1帧,若未更新至第t

1帧,则返回执行判断状态集合是否更新至第t

1帧的步骤,直至状态更新至第t

1帧。在状态集合更新至第
t

1帧时,获取第t

1帧的状态集合。
99.本实施例中,在每次更新状态集合时,将旧的状态集合更新为新的状态集合,并将旧的状态集合对应的帧号更新为新的状态集合对应的帧号。
100.本实施例中,由于将状态集合以及其对应的帧号进行存储,通过判断帧号是否为t

1,即可实现判断状态集合是否更新至第t

1帧。
101.本实施例中,需要堵塞的等待状态集合至第t

1帧,也就是需要阻塞的等待状态集合更新为第t

1帧的状态集合,才获取第t

1帧的状态集合。
102.s106、将第t帧的各个检测包围框和第t

1帧的状态集合进行关联,得到第t帧的状态集合。
103.本实施例中,将第t

1帧的状态集合和第t帧的各个检测包围框进行关联,以确定互相匹配的检测包围框和第t

1帧的状态集合中的物体状态数据、以及未匹配的检测包围框和第t

1帧的状态集合中的物体状态数据,从而对互相匹配的检测包围框和第t

1帧的状态集合中的物体状态数据、以及未匹配的检测包围框和第t

1帧的状态集合中的物体状态数据进行处理,得到第t帧的状态集合。
104.参阅图3,将第t帧的各个检测包围框和第t

1帧的状态集合进行关联,得到第t帧的状态集合的过程,具体包括以下步骤:
105.s301、基于第t

1帧的状态集合中包括的每一个物体的物体状态数据,计算每一个物体在第t帧的预测包围框。
106.依据第t

1帧的状态集合中包括的每一个物体的物体状态数据,计算每一个物体在第t帧的预测包括框,也就是基于第t

1帧的状态集合中包括的每一个物体的物体状态数据中的包围框,对每一个物体在第t帧的包围框进行预测。
107.具体的,基于第t

1帧的状态集合中包括的每一个物体的物体状态数据,计算每一个物体在第t帧的预测包围框的过程,具体包括:
108.依据第t

1帧的状态集合中包括的每一个物体的物体状态数据中的运动速度,计算每一个物体在每个维度上的第二位移;
109.依据第t

1帧的状态集合中包括的每一个物体的物体状态数据中的包围框、以及每一个物体在每个维度上的第二位移,计算每一个物体在第t帧的预测包围框。
110.本实施例中,依据第t帧的状态集合中包括的每一个物体的物体状态数据中的运动速度和单位时间间隔,计算每一个物体在每个维度上的第一位移,其中,单位时间间隔为相邻两帧传感器数据到达的时间间隔,本实施例中,计算第t帧传感器数据与第t

1帧传感器数据到达的时间间隔,也就是单位时间间隔,基于单位时间间隔、以及第t

1帧的状态集合中包括的每一个物体的物体状态数据中的运动速度,计算每一个物体在每个维度上的第二位移,并依据第t

1帧的状态集合中包括的每一个物体的物体状态数据中的包围框、以及每一个物体在每个维度上的第二位移,计算每一个物体在第t帧的预测包围框。
111.对上述提及的基于第t

1帧的状态集合中包括的每一个物体的物体状态数据,计算每一个物体在第t帧的包围框的过程进行举例说明如下:
112.例如,第t

1帧的状态集合中包括物体b对应的物体状态数据s1,其中,s1中包括包围框b1=(h,w,l,x,y,z,θ)和运动速度v1=(v
x
,v
y
,v
z
),单位时间间隔为δt,则,物体b在x轴上的第一位移δx1=v
x
δt,该物体在y轴上的第一位移为δy1=v
y
δt,该物体在z轴上的第
一位移为δz1=v
z
δt。所以物体b在第t帧的预测包围框b1'=(h,w,l,x+δx,y+δy,z+δz,θ)。
113.s302、基于各个预测包围框和第t帧的各个检测包围框,构建亲和矩阵。
114.本实施例中,针对第t帧的每一个检测包围框,计算该检测包围框和每一个预测包围框在三维空间上的交并比;并基于计算得到的各个交并比,构建亲和矩阵。
115.其中,亲和矩阵a
ij
=iou3d(b
id
,b
jp
)whereb
id
∈d
t
,b
jp
∈p
t

116.其中,b
id
表示第i个检测包围框,b
jp
表示第j个预测包围框,iou3d()表示两个包围框在三维空间上的并交比。
117.s303、对亲和矩阵进行求解,得到未被匹配的各个检测包围框、未被匹配的各个预测包围框和多个匹配对。
118.本实施例中,对亲和矩阵进行求解,得到未被匹配的各个检测包围框、未被匹配的各个预测包围框和多个匹配对,其中,每个匹配对包括一个检测包围框和一个预测包围框,需要说明的是,每个匹配对中的检测包围框和预测包围框互相匹配。
119.需要说明的是,每个检测包围框存在与其相匹配的一个预测包围框,或不存在与其相匹配的预测包围框。
120.本实施例中,采用匈牙利算法,对亲和矩阵进行求解,得到未被匹配的各个检测包围框、未被匹配的各个检测包围框和多个匹配对。
121.本实施例中,将检测包围框和上一状态集合的匹配问题抽象为最大二分图匹配问题,也就是构建亲和矩阵,利用匈牙利算法,对亲和矩阵进行求解,从而得到未被匹配的检测包围框、未被匹配的预测包围框和多个匹配对。
122.s304、基于未被匹配的各个检测包围框、未被匹配的各个预测包围框、各个匹配对、以及第t

1帧的状态集合,得到第t帧的状态集合。
123.本实施例中,依据未被匹配的各个检测包围框、未被匹配的各个预测包围框、各个匹配对、以及上一状态集合,处理得到第t帧的状态集合。
124.本实施例中,对未被匹配的各个检测包围框、未被匹配的各个预测包围框和各个匹配对采用不同的处理方式进行处理,从而得到第t帧的状态集合。
125.具体的,基于未被匹配的各个检测包围框、未被匹配的各个预测包围框、各个匹配对、以及第t

1帧的状态集合,得到第t帧的状态集合的过程,包括:
126.针对每个匹配对,确定匹配对中的检测包围和预测包围框各自的权重,依据匹配对中的检测包围和预测包围框各自的权重,对匹配对中的检测包围框和观测包围框进行加权平均,得到第一包围框,并对初始物体状态数据中的第一计数结果加一,得到新的第一计数结果,将所述第一包围框、新的第一计数结果、以及初始物体状态数据中的运动速度、轨迹标识符和第二计数结果,组成第一物体状态数据;其中,初始物体状态数据为第t

1帧的状态集合中与匹配对中的预测包围框对应物体状态数据,第一计数结果用于表征物体被观测到的次数,第二计数结果用于表征物体连续未被观测到的次数;
127.针对未被匹配的检测包围框,为检测包围框分配轨迹标识符,并对检测包围框对应的运动速度和第二计数结果进行初始化设置,将检测包围框对应的第一计数结果赋值为1,将检测包围框、所述检测包围框对应的轨迹标识符、运动速度、第一计数结果和第二计数结果,组成第二物体状态数据;
128.针对未被匹配的每个预测包围框,将所述第t

1帧的状态集合中与预测包围框对应的物体状态数据中的第二计数结果加一,得到新的第二计数结果,若新的第二计数结果小于消失阈值,则将预测包围框、新的第二计数结果、第t

1帧的状态集合中与预测包围框对应的物体状态数据中的运动速度、轨迹标识符和第一计数结果,组成第三物体状态数据;
129.将所有的第一物体状态数据、第二物体状态数据和第三物体状态数据,组成第t帧的状态集合。
130.本实施例中,由于自动驾驶场景是高度动态的,观测点和被观测物体都会运动,因此被追踪物体可能从观测范围内消失,而新物体可能会进入观测范围开始被追踪。本实施例采用如图4所示的状态机来管理观测范围内物体的出现与消失。本实施例中,引入阈值n1来评估物体在一段时间被观测的稳定性:物体每次被观测到一次,计数器的计数结果就自增1,当物体被观测到的计数β<n1时,称该物体处于非稳定状态,此时难以判断它是真实存在还是因为预测误差导致的短时间假阳;当β≥n1,该物体处于稳定状态,可以认为它稳定地存在于观测范围内。并进一步引入阈值n2来评估原先观测到的物体是否从观测范围中消失:当已观测到的物体在某一帧未被观测到时,该物体未被观测到的计数结果γ置为1,随后若该物体持续未被观测到,则每次未观测到就对计数结果γ自增1;当γ≥n2时,该物体被认为彻底地从观测范围中消失。其中,n1和n1均为正整数。
131.需要说明的是,未被匹配的检测包围框对应为新的物体进入观测范围内。未被匹配的预测包围框对应为原有的物体当前未被观测到。
132.本实施例中,对于每个匹配对,该匹配对中的检测包围框的权重由检测包围框的不确定性决定,预测包围框的权重由预测包围框的不确定性决定,利用滤波器,计算该匹配对中的检测包围框的权重和预测包围框的权重,可选的,滤波器可以是卡尔曼滤波器,具体的,将该匹配对中的检测包围框和预测包围框输入中卡尔曼滤波器中,得到卡尔曼滤波器输出的检测包围框和预测包围框各自的权重;依据检测包围框和预测包围框各自的权重,对检测包围框和预测包围框进行加权平均,得到该匹配对所对应的第一包围框。本实施例中,该匹配对所对应的控制状态数据的更新对应于图5中转移条件为“观测到”的有向边,也就是物体被观测到,对初始物体状态数据中的第一计数结果加一,得到新的第一计数结果,将新的第一计数结果、初始物体状态数据中包括的轨迹标识符和第二计数结果组成第一控制状态数据,将第一包围框和初始物体状态数据中的运动速度组成第一运动状态,将第一控制状态数据和第一运动状态数据组成第一物体状态数据,第一物体状态数据即为对初始物体状态数据进行更新后得到的物体状态数据,初始物体状态数据为第t

1帧的状态集合中与匹配对中的预测包围框对应物体状态数据。
133.本实施例中,对于未被匹配的每个检测包围框,需在第t帧的状态集合中创建新的物体状态数据,具体的,为该检测包围框分配轨迹标识符,并将运动速度v和第二计数结果γ进行初始化设置,可以将运动速度初始化为0,第二计数结果初始化对应于图4中从“开始”状态到“不稳定”状态的有向边,也就是将第二计数结果γ初始化为0,将第一计数结果β赋值为1,将检测包围框和运动速度组成第二运动状态数据,将轨迹标识符、第一计数结果和第二计数结果组成第二控制状态数据,并将第二运动状态数据和第二控制状态数据组成该检测包围框对应的第二物体状态数据,第二物体状态数据为新创建的物体状态数据。
134.本实施例中,对于未被匹配的每个预测包围框,由于观测结果缺失,只能完全信任
预测包围框,控制状态数据的更新对应于图4中转移条件为“未观测到”的有向边。具体的,将第t

1帧的状态集合中与所述预测包围框对应的物体状态数据中的第二计数结果加一,得到新的第二计数结果,并判断新的第二计数结果是否小于消失阈值,消失阈值对应为图4中的n2,若新的第二计数结果不小于消失阈值,则认为物体彻底从观测范围中消失,并无需计算对应的新的物体状态数据,若新的第二计数结果小于消失阈值,则将预测包围框和第t

1帧的状态集合中与预测包围框对应的物体状态数据中的运动速度组成第三运动状态数据,将新的第二计数结果和第t

1帧的状态集合中与预测包围框对应的物体状态数据中的轨迹标识符和第一计数结果,组成第三物体状态数据,第三物体状态数据为对第t

1帧的状态集合中与该预测包围框对应物体状态数据进行更新后得到的物体状态数据。
135.本实施例中,将所有的第一物体状态数据、所有的第二物体状态数据和所有的第三物体状态数据,组成第t帧的状态集合。
136.s107、将第t

1帧的状态集合更新为第t帧的状态集合。
137.本实施例中,对状态集合进行更新,将第t

1帧的状态集合更新为第t帧的状态集合。
138.本申请实施例提供的面向自动驾驶的端到端实时三维多目标追踪方法,在自动驾驶的过程中,当接收到第t帧的传感器数据时,并行执行获取第r帧的状态集合,并依据第r帧的状态集合,预测第t帧的追踪结果的过程、以及检测第t帧的传感器数据中包含的多个物体,得到第t帧的多个检测包围框,并在状态集合更新至第t

1帧时,将第t帧的各个检测包围框和第t

1帧的状态集合进行关联,得到第t帧的状态集合,将第t

1帧的状态集合更新为第t帧的状态集合的过程。应用本申请实施例提供的面向自动驾驶的端到端实时三维多目标追踪方法,在接收到第t帧的传感器数据时,直接基于第r帧的状态集合预测第t帧的追踪结果,无需阻塞的等待状态集合更新为第t帧的转态集合,才预测第t帧的追踪结果,从而实现了三维多目标追踪,并提高了三维多目标追踪的效率,且基于第t帧的传感器数据,对状态集合进行更新,确保了三维多目标追踪的准确度。
139.参阅图5,对上述提及的一种面向自动驾驶的端到端实时三维多目标追踪方法的具体实现过程进行举例说明如下:
140.状态定义:
141.给定一个物体o,它的状态s由运动状态s
m
和控制状态s
c
两部分组成:s
m
包括包围框b=(h,w,l,x,y,z,θ)和运动速度v=(v
x
,v
y
,v
z
),其中(h,w,l)为包围框大小,(x,y,z)为包围框底面中心点,θ为包围框偏航角;s
c
包括轨迹标识符α,物体o被观测到的计数器β以及未被观测到的计数器γ。在第t帧的所有被追踪物体的状态构成集合s
t
={s
i
|i=1,...,n
t
},其中n
t
表示第t帧中被追踪物体的数量。
142.具体的,在接收到第t帧的传感器数据i
t
后,并行地启动和执行快速预测模块和慢速更新模块。
143.慢速检测模块首先调用三维目标检测器对i
t
进行检测得到物体包围框集合d
t
,然后慢速追踪模块将d
t
与上一状态集合s
t
‑1进行关联并更新得到第t帧状态集合s
t
。快速预测模块根据当前状态集合s
r
直接预测被追踪物体在第t帧的包围框并将包围作和其对应的轨迹标识符α作为最终的输出,其中,因为状态更新速度可能比数据到达速度慢,所以r≤t。
144.其中,对于快速预测模块:
145.由于慢速追踪模块对状态集合的更新速率很可能慢于数据到达速率,当接收到第t帧的快速预测任务时,全局共享的状态集合,也就是集合库可能只更新到第r帧(r<t),记为s
r

146.此时,不同于传统的检测追踪范式阻塞地等待状态集合s
r
更新为s
t
再去输出第t帧的追踪结果,快速预测模块并不会被阻塞,而是对每个s∈s
r
应用常速度模型预测物体在第t帧的包围框,快速给出第t帧的追踪结果。
147.具体地讲,假设某物体的状态s∈s
r
且每帧数据到达时间间隔固定为δt,根据常速度模型,则该物体在观测坐标系下从第r帧到第t帧的位移估计为:
148.δx=v
x
(t

r)δt,δy=v
y
(t

r)δt,δz=v
z
(t

r)δt
ꢀꢀꢀ
(1)
149.进而可得第t帧的包围框b=(h,w,l,x+δx,y+δy,z+δz,θ)。
150.对于慢速检测模块:
151.目标检测步骤调用三维目标检测器得到输入数据中的物体包围框集合。检测步骤的具体实现不受限制,只要满足其输入和输出接口的定义就能够集成到thundermot系统中。这使得thundermot可以根据场景灵活地接入不同的检测器,实现检测模型的热插拔。
152.对于慢速追踪模块:
153.慢速追踪模块包括数据关联步骤和状态更新步骤。
154.数据关联步骤具体包括:
155.将慢速检测模块检测出的包围框集合d
t
与状态集合s
t
‑1进行匹配。需要注意的是,该步骤需要阻塞地等待慢速追踪模块更新至状态集合s
t
‑1后才能继续执行。
156.具体地讲,将第t帧的包围框集合d
t
与第t

1帧的状态集合s
t
‑1的匹配问题抽象为最大二分图匹配问题,采用匈牙利算法进行求解,其中亲和矩阵的定义如公式(2)所示,m
t
为包围框集合d
t
的大小,n
t
‑1为状态集合s
t
‑1的大小。p
t
为按照公式(1)预测得到的第t帧包围框集合,函数iou3d()表示两个包围框在三维空间上的交并比。
157.a
ij
=iou3d(b
id
,b
jp
)whereb
id
∈d
t
,b
jp
∈p
t
ꢀꢀꢀ
(2)
158.数据关联步骤的输出为三个集合:匹配集合m
t
、未匹配包围框集合d
t
'、未匹配状态集合s
t
‑1'。
159.状态更新步骤:
160.对于每个匹配元组(b
td
,b
tp
,s
t
‑1)∈m
t
,s
t
‑1、b
td
、b
tp
分别代表某物体o在第t

1帧的状态以及该物体对应在第t帧的观测包围框和预测包围框。观测包围框b
td
作为状态s
t
‑1对应物体在第t帧的观测结果,调用卡尔曼滤波器进行状态估计,得到第t帧物体的运动状态s
tm
。根据贝叶斯规则,更新后的运动状态s
tm
是b
td
和b
tp
所处状态空间的加权平均,权重(即卡尔曼增益)由b
td
和b
tp
的不确定性决定。控制状态从到的更新对应于图5中转移条件为“观测到”的有向边。
161.对于每个未匹配的检测包围框在第t帧的状态集合s
t
中创建新的物体状态s
t
,中的b初始化为中的v初始化为0。控制状态初始化对应于图5中从“开始”状态到“不稳定”状态的有向边。
162.对于每个未匹配的被追踪物体状态由于观测结果缺失,只能完
全信任根据公式(1)预测得到的包围框直接将中的b设置为从而得到第t帧运动状态控制状态从到的更新对应于图5中转移条件为“未观测到”的有向边。
163.本实施例中,速追踪模块和快速预测模块除避免对状态集合的读写冲突外,不存在任何显式的同步操作,因此快速预测模块的执行时间即为每帧数据的响应延迟。快速预测模块基于运动模型预测实现,相较于传统的检测追踪方法,每个物体的运动预测计算开销非常小。
164.本实施例中,为了方便将依赖不同软件环境(如不同python版本、不同深度学习框架、同一框架的不同版本)的多种基于深度学习的3d目标检测模型接入系统,慢速目标检测实现为本地服务器,并选择http作为应用层通信协议。当每帧数据到达后,快速预测任务和慢速追踪任务被提交到线程池并行执行。慢速追踪模块作为客户端向检测服务器发送请求,得到该帧检测结果后依次调用associate()和update()方法实现对物体状态的关联和更新。
165.本实施例中,物体状态被快速预测和慢速追踪两类任务共享,前者调用物体状态的预测方法predict(),后者调用运动状态的更新方法update()。thundermot通过在物体级别引入读

拷贝

更新锁(read

copy

update,rcu)来保证并发行为下运动状态的一致性,同时保证快速预测任务不会因为被慢速追踪任务对物体状态的写操作阻塞而超时。在该机制下,快速预测任务作为读者,不需要获得任何锁就可以访问物体的运动状态;而慢速更新任务作为写者,在访问运动状态前首先拷贝副本,然后对副本进行修改,最后在适当时机修改指向历史状态的指针以指向更新后状态。不同物体的预测与更新被封装为独立的任务提交到线程池执行,互不影响。
166.本实施例中,thundermot系统、检测服务器、追踪服务器与数据传感器共享文件系统。原始传感器数据在各组件间传递通过传递传感数据在文件系统中的存储路径实现,从而避免显式地通过字节流传递传感数据地大额通信开销。
167.为了更好说明本申请实施例提供的一种面向自动驾驶的端到端实时三维多目标追踪方法的效果,本申请发明人通过实验从追踪速度和追踪精度两方面对thundermot系统进行评估。
168.本申请实验环境为一台配置2个intel xeon cpu e5

2690 v3(每个cpu含有12物理核心,开启超线程),4个geforce rtx 2080ti gpu(每个4352核心,12gb显存),256gb内存的服务器。服务器软件配置情况:操作系统为ubuntu 18.04,python版本为3.7.7,cuda版本为10.2。追踪精度评估采用kitti多目标追踪数据集。
169.评估结果表明在kitti多目标追踪数据集上,平均延迟2.0毫秒,最坏延迟8.6毫秒,多目标追踪准确度mota(multiple object tracking accuracy)可达83.71%,具有极为良好的追踪速度和追踪精度。
170.与图1所述的方法相对应,本申请实施例还提供了一种面向自动驾驶的端到端实时三维多目标追踪装置,用于对图1中方法的具体实现,其结构示意图如图6所示,具体包括:
171.执行单元601,用于在自动驾驶的过程,当接收到第t帧的传感器数据时,并行执行预测步骤和状态更新步骤;其中,所述t为正整数;
172.所述预测步骤包括:
173.获取第r帧的状态集合;其中,所述r小于所述t,所述第r帧的状态集合为最近更新得到的集合,所述第r帧的状态集合由第r帧的传感器数据更新得到,所述状态集合包括多个物体的物体状态数据;
174.依据所述第r帧的状态集合,预测所述第t帧的追踪结果;所述追踪结果用于表征真实场景中每个物体在第t帧的位置与姿态;
175.所述状态更新步骤包括:
176.检测所述第t帧的传感器数据中包含的多个物体,得到第t帧的多个检测包围框,并在状态集合更新至第t

1帧时,获取第t

1帧的状态集合;
177.将所述第t帧的各个检测包围框和所述第t

1帧的状态集合进行关联,得到所述第t帧的状态集合;
178.将所述第t

1帧的状态集合更新为所述第t帧的状态集合。
179.本申请实施例提供的面向自动驾驶的端到端实时三维多目标追踪装置,在接收到第t帧的传感器数据时,直接基于第r帧的状态集合预测第t帧的追踪结果,无需阻塞的等待状态集合更新为第t帧的转态集合,才预测第t帧的追踪结果,从而实现了三维多目标追踪,并提高了三维多目标追踪的效率,且基于第t帧的传感器数据,对状态集合进行更新,确保了三维多目标追踪的准确度。
180.在本申请的一个实施例中,基于前述方案,执行单元601用于依据所述第r帧的状态集合,预测所述第t帧的追踪结果,包括执行单元601具体用于:
181.基于所述第r帧的状态集合中包括的每一个物体的物体状态数据,计算每一个物体在第t帧的包围框;
182.针对每一个物体,将所述物体在第t帧的包围框、以及所述第r帧的状态集合中所述物体对应的物体状态数据中的轨迹标识符,组成所述物体在第t帧的子追踪结果;
183.将各个子追踪结果组成所述第t帧的追踪结果。
184.在本申请的一个实施例中,基于前述方案,执行单元601用于基于所述第r帧的状态集合中包括的每一个物体的物体状态数据,计算每一个物体在第t帧的包围框,包括执行单元601具体用于:
185.依据所述第r帧的状态集合中包括的每一个物体的物体状态数据中的运动速度,计算每一个物体在每个维度上的第一位移;
186.依据所述第r帧的状态集合中包括的每一个物体的物体状态数据中的包围框、以及每一个物体在每个维度上的第一位移,计算每一个物体在第t帧的包围框。
187.在本申请的一个实施例中,基于前述方案,执行单元601用于将所述第t帧的各个检测包围框和所述第t

1帧的状态集合进行关联,得到所述第t帧的状态集合,包括执行单元601具体用于:
188.基于所述第t

1帧的状态集合中包括的每一个物体的物体状态数据,计算每一个物体在第t帧的预测包围框;
189.基于各个预测包围框和所述第t帧的各个检测包围框,构建亲和矩阵;
190.对所述亲和矩阵进行求解,得到未被匹配的各个检测包围框、未被匹配的各个预测包围框和多个匹配对;每个匹配对包括检测包围框和预测包围框;
191.基于未被匹配的各个检测包围框、未被匹配的各个预测包围框、各个匹配对、以及所述第t

1帧的状态集合,得到所述第t帧的状态集合。
192.在本申请的一个实施例中,基于前述方案,执行单元601用于基于未被匹配的各个检测包围框、未被匹配的各个预测包围框、各个匹配对、以及所述第t

1帧的状态集合,得到所述第t帧的状态集合,包括执行单元601具体用于:
193.针对每个匹配对,确定所述匹配对中的检测包围和预测包围框各自的权重,依据所述匹配对中的检测包围和预测包围框各自的权重,对所述匹配对中的检测包围框和观测包围框进行加权平均,得到第一包围框,并对初始物体状态数据中的第一计数结果加一,得到新的第一计数结果,将所述第一包围框、新的第一计数结果、以及所述初始物体状态数据中的运动速度、轨迹标识符和第二计数结果,组成第一物体状态数据;其中,所述初始物体状态数据为第t

1帧的状态集合中与所述匹配对中的预测包围框对应物体状态数据,所述第一计数结果用于表征物体被观测到的次数,第二计数结果用于表征物体连续未被观测到的次数;
194.针对未被匹配的检测包围框,为所述检测包围框分配轨迹标识符,并对所述检测包围框对应的运动速度和第二计数结果进行初始化设置,将所述检测包围框对应的第一计数结果赋值为1,将所述检测包围框、所述检测包围框对应的轨迹标识符、运动速度、第一计数结果和第二计数结果,组成第二物体状态数据;
195.针对未被匹配的每个预测包围框,将所述第t

1帧的状态集合中与所述预测包围框对应的物体状态数据中的第二计数结果加一,得到新的第二计数结果,若所述新的第二计数结果小于消失阈值,则将所述预测包围框、所述新的第二计数结果、所述第t

1帧的状态集合中与所述预测包围框对应的物体状态数据中的运动速度、轨迹标识符和第一计数结果,组成第三物体状态数据;
196.将所有的第一物体状态数据、第二物体状态数据和第三物体状态数据,组成第t帧的状态集合。
197.在本申请的一个实施例中,基于前述方案,执行单元601用于基于所述第t

1帧的状态集合中包括的每一个物体的物体状态数据,计算每一个物体在第t帧的预测包围框,包括执行单元具体用于:
198.依据所述第t

1帧的状态集合中包括的每一个物体的物体状态数据中的运动速度,计算每一个物体在每个维度上的第二位移;
199.依据第t

1帧的状态集合中包括的每一个物体的物体状态数据中的包围框、以及每一个物体在每个维度上的第二位移,计算每一个物体在第t帧的预测包围框。
200.在本申请的一个实施例中,基于前述方案,执行单元用于检测所述第t帧的传感器数据中包含的多个物体,得到第t帧的多个检测包围框,包括执行单元具体用于:
201.调用三维目标检测器,检测所述第t帧的传感器数据中包含的多个物体,得到第t帧的多个检测包围框。
202.本申请实施例还提供了一种存储介质,所述存储介质包括存储的指令,其中,在所述指令运行时控制所述存储介质所在的设备执行上述面向自动驾驶的端到端实时三维多目标追踪方法。
203.本申请实施例还提供了一种电子设备,其结构示意图如图7所示,具体包括存储器
701,以及一个或者一个以上的指令702,其中一个或者一个以上指令702存储于存储器701中,且经配置以由一个或者一个以上处理器703执行所述一个或者一个以上指令702进行以下操作:
204.在自动驾驶的过程中,当接收到第t帧的传感器数据时,并行执行预测步骤和状态更新步骤;其中,所述t为正整数,
205.所述预测步骤包括:
206.获取第r帧的状态集合;其中,所述r小于所述t,所述第r帧的状态集合为最近更新得到的集合,所述第r帧的状态集合由第r帧的传感器数据更新得到,所述状态集合包括多个物体的物体状态数据;
207.依据所述第r帧的状态集合,预测所述第t帧的追踪结果;所述追踪结果用于表征真实场景中每个物体在第t帧的位置与姿态;
208.所述状态更新步骤包括:
209.检测所述第t帧的传感器数据中包含的多个物体,得到第t帧的多个检测包围框,并在状态集合更新至第t

1帧时,获取第t

1帧的状态集合;
210.将所述第t帧的各个检测包围框和所述第t

1帧的状态集合进行关联,得到所述第t帧的状态集合;
211.将所述第t

1帧的状态集合更新为所述第t帧的状态集合。
212.需要说明的是,本说明书中的各个实施例均采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似的部分互相参见即可。对于装置类实施例而言,由于其与方法实施例基本相似,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
213.最后,还需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个
……”
限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
214.为了描述的方便,描述以上装置时以功能分为各种单元分别描述。当然,在实施本申请时可以把各单元的功能在同一个或多个软件和/或硬件中实现。
215.通过以上的实施方式的描述可知,本领域的技术人员可以清楚地了解到本申请可借助软件加必需的通用硬件平台的方式来实现。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在存储介质中,如rom/ram、磁碟、光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本申请各个实施例或者实施例的某些部分所述的方法。
216.以上对本申请所提供的一种面向自动驾驶的端到端实时三维多目标追踪方法及装置进行了详细介绍,本文中应用了具体个例对本申请的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本申请的方法及其核心思想;同时,对于本领域的一般
技术人员,依据本申请的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本申请的限制。
当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1