文章目录
1.概要
LiDAR点云中的3D单目标跟踪算法,之前都基于孪生网络框架的外观匹配。但是激光雷达点云通常是无纹理或不完整的,所以M²Track引入了Motion-Centirc范式的跟踪,通过物体的运动信息跟踪。M²Track分为两阶段,第一阶段,M²Track通过连续帧的运动变换来定位目标,第二阶段通过运动辅助的外形补全细化目标框。
2.整体架构流程
现有的基于lidar的SOT方法都遵循Siamese范式,该范式在2D SOT中被广泛采用,因为它在性能和速度之间取得了平衡。在跟踪过程中,Siamese模型使用外观匹配技术在候选区域中搜索目标,该技术依赖于目标模板的特征和共享骨干提取的搜索区域。M²Track首次引入了一种新的以运动为中心的范式,通过明确建模连续帧之间的目标运动来定位连续帧中的目标,而不需要进行外观匹配。
图(a)中,Siamese方法利用先前的目标框获得一个规范的目标模板,并根据匹配相似度在当前帧中搜索目标,但对干扰因素很敏感。图(b)中M²Track以运动为中心的模式从两个连续的帧中学习相对的目标运动,然后通过运动变换对当前帧中的目标进行鲁棒定位。
整体算法框架图如上图所示,这是一个两阶段算法。第一阶段旨在通过帧间目标的相对运动生成目标框;第二阶段利用第一阶段的信息,通过更密的点云来细化目标框。其中,该目标点云由两个部分目标视图使用它们的相对运动聚合而成。
3.以运动为中心的LiDAR点云单目标跟踪
3.1 问题声明
P t ∈ R N t × 3 \mathcal{P}_t\in\mathbb{R}^{N_t\times3} Pt∈RNt×3是一个在t时刻雷达点云的帧,有 N t {N_t} Nt个point和3个channel,点通道(point channels)用xyz全局坐标编码。目标一开始的状态通过第一帧 P 1 \mathcal{P}_1 P1给出它的3D目标框。一个3D BBox B t ∈ R 7 \mathcal{B}_t\in\mathbb{R}^{7} Bt∈R7通过它的中心(xyz坐标)朝向(绕up-axis的角度)和尺寸(宽,长和高)。对于跟踪任务来说,M2Track进一步假设目标的尺寸在帧与帧之间保持不变,即使是非刚性目标(对于非刚性目标,它的目标框通过场景中的最大程度定义)。对于每一帧 P t \mathcal{P}_t Pt,跟踪器只通过历史帧输出目标的3D目标框。
3.2以运动为中心的架构
输入雷达序列和第一帧3D BBox的信息给出之后,以运动为中心的跟踪器就会使用明确的运动模型逐帧定位目标。与以前的孪生网络方法不同,以运动为中心的方法预测相关目标运动(Relative target motion,RTM)并且通过运动转换定位目标。RTM是一个通过两目标的框定义刚体变换。由于感兴趣的物体总是与地面对齐,只考虑4DOF RTM,它包括平移偏移量(∆x,∆y,∆z)和偏航偏移量∆θ。给定一个已知的t时刻的目标状态(目标框 B t \mathcal{B}_t Bt在第 P t \mathcal{P}_t Pt帧)和在t’(t’>t)时刻将要到来的帧 P t ′ \mathcal{P}_{t^{\prime}} Pt′,以运动为中心的跟踪器首先预测两帧之间的RTM,然后获得 B t ′ \mathcal{B}_{t^{\prime}} Bt′和 P t ′ \mathcal{P}_{t^{\prime}} Pt′通过刚性变换。整个过程可以表示成如下公式 F \mathcal{F} F:
F : R N t ′ × C × R N t × C × R 7 ↦ R 7 , G : R N t ′ × C × R N t × C × R 7 ↦ R 4 , B t ′ = F ( P t ′ , P t , B t ) = T r a n s f o r m ( B t , G ( P t ′ , P t , B t ) ) \begin{aligned} & \mathcal{F}:\mathbb{R}^{N_{t^{\prime}}\times C}\times\mathbb{R}^{N_{t}\times C}\times\mathbb{R}^{7}\mapsto\mathbb{R}^{7}, \\ & \mathcal{G}:\mathbb{R}^{N_{t^{\prime}}\times C}\times\mathbb{R}^{N_{t}\times C}\times\mathbb{R}^{7}\mapsto\mathbb{R}^{4}, \\ & \mathcal{B}_{t^{\prime}}=\mathcal{F}(\mathcal{P}_{t^{\prime}},\mathcal{P}_{t},\mathcal{B}_{t})=\mathrm{Transform}(\mathcal{B}_{t},\mathcal{G}(\mathcal{P}_{t^{\prime}},\mathcal{P}_{t},\mathcal{B}_{t})) \end{aligned} F:RNt′×C×RNt×C×R7↦R7,G:RNt′×C×RNt×C×R7↦R4,Bt′=F(Pt′,Pt,Bt)=Transform(Bt,G(Pt′,Pt,Bt))
其中 G \mathcal{G} G预测4DOF的RTM并用其对 B t ′ \mathcal{B}_{t^{\prime}} Bt′进行刚体变换。
3.3以运动为中心的跟踪方法
如图2所示,M2-Track首先在第一阶段通过目标分割和运动变换对目标进行粗定位,然后在第二阶段使用运动辅助形状补全对BBox进行细化。每个模块的详细信息如下所示。
基于时空学习的目标分割
为了学习目标的相对运动,首先需要将目标点从其周围分割出来。将两个连续帧 P t \mathcal{P}_{t} Pt和 P t − 1 \mathcal{P}_{t-1} Pt−1以及目标BBox B t − 1 \mathcal{B}_{t-1} Bt−1作为输入,通过利用两帧之间的时空关系来实现这一点(如图2的第一部分所示)。具体作法是,通过给每个point添加时间channel,并将它们合并在一起,从 P t − 1 \mathcal{P}_{t-1} Pt−1到 P t \mathcal{P}_t Pt重构时空点云 P t − 1 , t ∈ R ( N t − 1 + N t ) × 4 = { p i = ( x i , y i , z i , t i ) } i = 1 N t − 1 + N t \mathcal{P}_{t-1,t}\in\mathbb{R}^{(N_{t-1}+N_{t})\times4}=\{p_{i}=(x_{i},y_{i},z_{i},t_{i})\}_{i=1}^{N_{t-1}+N_{t}} Pt−1,t∈R(Nt−1+Nt)×4={pi=(xi,yi,zi,ti)}i=1Nt−1+Nt。由于场景中有很多目标,因此要根据 B t − 1 \mathcal{B}_{t-1} Bt−1明确感兴趣的目标。为此,构建了一个先验目标映射 S t − 1 , t ∈ R N t − 1 + N t {\mathcal{S}_{t-1,t}}\in\mathbb{R}^{N_{t-1}+N_{t}} St−1,t∈RNt−1+Nt来表示目标在 P t − 1 , t \mathcal{P}_{t-1,t} Pt−1,t中的位置,其中 s i ∈ S t − 1 , t s_{i}\in\mathcal{S}_{t-1,t} si∈St−1,t被定义为:
s i = { 0 i f p i i s i n P t − 1 a n d p i is not in B t − 1 1 i f p i i s i n P t − 1 a n d p i i s i n B t − 1 0.5 i f p i i s i n P t s_i=\left\{ \begin{array} {cc}0 & \quad\mathrm{if}p_i\mathrm{is~in}\mathcal{P}_{t-1}\mathrm{and}p_i\text{is not in}\mathcal{B}_{t-1} \\ 1 & \quad\mathrm{if}p_i\mathrm{is~in}\mathcal{P}_{t-1}\mathrm{and}p_i\mathrm{is~in}\mathcal{B}_{t-1} \\ 0.5 & \quad\mathrm{if}p_i\mathrm{is~in}\mathcal{P}_t \end{array}\right. si=⎩ ⎨ ⎧010.5ifpiis inPt−1andpiis not inBt−1ifpiis inPt−1andpiis inBt−1ifpiis inPt
s i s_{i} si可以看作 p i p_{i} pi的先验置信度,在 P t − 1 \mathcal{P}_{t-1} Pt−1中,如果点在目标框内就设为1,不在就设为0。而在 P t \mathcal{P}_t Pt中,由于不知道点的状态,所以设置置信度为0.5。但是这个先验置信度不一定百分百正确,因为前一帧的目标框是跟踪器输出的,并不是groudtruth。之后,把t-1和t时刻的所有点云加上先验状态联合构建一个5D的点云,这个5D是通道维度的( x i , y i , z i , t i , s i {x}_{i},{y}_{i},{z}_{i},{t}_{i},{s}_{i} xi,yi,zi,ti,si)。之后通过基于PointNet的分割网络获得目标的掩膜,利用基于pointnet的分割网络提取一个时空目标点云 P ~ t − 1 , t ∈ R ( M t − 1 + M t ) × 4 \widetilde{\mathcal{P}}_{t-1,t}\in\mathbb{R}^{(M_{t-1}+M_{t})\times4} P t−1,t∈R(Mt−1+Mt)×4,其中 M t − 1 \mathcal{M}_{t-1} Mt−1和 M t \mathcal{M}_{t} Mt分别为帧t−1和帧t中目标点的个数。
一阶段:以运动为中心的目标框预测
如图中所示,M2Track将t-1和t时刻的点云使用一个PointNet联合编码,顶端通过一个多层感知机得到目标的运动状态,包括4D的RTM
M
t
−
1
,
t
\mathcal{M}_{t-1,t}
Mt−1,t和2D二分类回归代表目标是否是动态的。为了减少逐帧跟踪时的累积误差,文中通过另一个MLP预测其相对于
B
~
t
−
1
\tilde{\mathcal{B}}_{t-1}
B~t−1的RTM来生成一个改进的前帧目标BBox
B
t
−
1
\mathcal{B}_{t-1}
Bt−1。最后,如果目标被定义为动态的,则通过使用
M
t
−
1
,
t
\mathcal{M}_{t-1,t}
Mt−1,t转换
B
~
t
−
1
\tilde{\mathcal{B}}_{t-1}
B~t−1,可以得到当前目标框
B
t
{\mathcal{B}}_{t}
Bt;否则,将
B
t
\mathcal{B}_{t}
Bt设为
B
t
−
1
\mathcal{B}_{t-1}
Bt−1。
二阶段:通过外形补全来细化BBox
受两阶段检测网络的启发,M2Track通过额外回归一个相对偏移量来提高第一阶段BBox Bt的质量,该偏移量可以看作是 B t \mathcal{B}_{t} Bt和改进后的BBox B ~ t \tilde{\mathcal{B}}_{t} B~t之间的RTM(如图4所示)。与检测网络不同,M2Track通过一种新的运动辅助的形状补全策略来改进BBox。由于激光雷达点云的自遮挡和传感器运动,存在很大的不完整性,阻碍了精确的BBox回归。为了缓解这一问题,通过使用预测的运动状态来聚合来自两个连续帧的目标,从而形成更密集的目标点云。根据时间通道,两个不同时刻的目标点云 P ~ t − 1 ∈ R M t − 1 × 3 \widetilde{\mathcal{P}}_{t-1}\in\mathbb{R}^{M_{t-1}\times3} P t−1∈RMt−1×3和 P ~ t ∈ R M t × 3 \widetilde{\mathcal{P}}_t\in\mathbb{R}^{M_t\times3} P t∈RMt×3从 P ~ t − 1 , t \tilde{\mathcal{P}}_{t-1,t} P~t−1,t中提取。基于运动状态,使用 M t − 1 , t \mathcal{M}_{t-1,t} Mt−1,t转换 P ~ t − 1 \tilde{\mathcal{P}}_{t-1} P~t−1到当前时间戳下,如果目标是动态的话。转换点云与 P ~ t \tilde{\mathcal{P}}_{t} P~t的点云融合去构建一个更密的点云 P ˉ t ∈ R ( M t − 1 + M t ) × 3 \bar{\mathcal{P}}_{t}\in\mathbb{R}^{(M_{t-1}+M_{t})\times3} Pˉt∈R(Mt−1+Mt)×3。文中将 P ˉ t \bar{\mathcal{P}}_{t} Pˉt从世界坐标系转换为由 B t {\mathcal{B}}_{t} Bt定义的标准坐标系,用PointNet将 P ˉ t \bar{\mathcal{P}}_{t} Pˉt回归另一个RTM去对应 B t {\mathcal{B}}_{t} Bt。最后,利用回归的RTM对 B ~ t \tilde{\mathcal{B}}_{t} B~t进行刚体变换,得到精细化的目标BBox B t {\mathcal{B}}_{t} Bt。
3.4目标框感知特征增强
雷达点云单目标跟踪直接受益于局部感知和尺寸感知信息,这些关系都可以用点-框相关性来描述。M2Track通过计算 P t − 1 {\mathcal{P}}_{t-1} Pt−1与 B t − 1 {\mathcal{B}}_{t-1} Bt−1的9个关键点(8个角和1个中心相对于规定框坐标系按预定顺序排列)之间的两两欧氏距离,构建了距离图 C t − 1 ∈ R N t − 1 × 9 \mathcal{C}_{t-1}\in\mathbb{R}^{N_{t-1}\times9} Ct−1∈RNt−1×9。之后,无填充地扩展 C t − 1 \mathcal{C}_{t-1} Ct−1到 ( N t − 1 + N t ) × 9 (N_{t-1}+N_t)\times9 (Nt−1+Nt)×9的尺寸(对 P t {\mathcal{P}}_{t} Pt中的点)并将它与 P t − 1 , t \mathcal{P}_{t-1,t} Pt−1,t和 S t − 1 , t \mathcal{S}_{t-1,t} St−1,t拼接起来。然后将整体的盒感知特征发送到PointNet分割网络,以获得更好的目标分割。除了输出分割结果外,文中还进一步预测每个点的框感知特征,该特征由其相应的真值监督。在阶段I和阶段II中,M2Track也将预测的框感知特征与点坐标拼接起来,以构建PointNet的输入。
3.5多帧组合
虽然 M2-Track 在公式中总是以两个连续的帧(t-1 和 t)作为输入,但它也可以从时间间隔大于 1 的帧对中学习 RTM,这启发作者使用多帧来改进跟踪结果。假设已经知道从时间 (t-N) 到 (t-1) 的目标轨迹 { B t − n } n = 1 N \{\mathcal{B}_{t-n}\}_{n=1}^N {Bt−n}n=1N,那么就可以通过在不同的时间间隔应用 M2-Track 来获得时间 t 中的 N 个目标提案:
P r o p o s a l s = { F ( P t , P t − n , B t − n ) } n = 1 N \mathcal{Proposals}=\{\mathcal{F}(\mathcal{P}_t,\mathcal{P}_{t-n},\mathcal{B}_{t-n})\}_{n=1}^N Proposals={F(Pt,Pt−n,Bt−n)}n=1N
其中 F \mathcal{F} F是公式 (1) 中定义的跟踪器函数,它以 M2-Track 的形式实现。获得 N 个提案后,检查每个提案中的点数,并选择点数最多的提案作为最终预测。
3.6M-Vanilla:概念验证实现
为了展示以运动为中心范式的有效性,作者还引入了一个名为 M-Vanilla 的概念验证跟踪器,它严格采用图 1 下部所示的架构。M-Vanilla 与 M2-Track 中的第一阶段非常相似,不同之处在于它同时将前景色和背景点作为输入,并省略了运动分类分支。给定两个连续帧 P t {\mathcal{P}}_{t} Pt和 P t − 1 {\mathcal{P}}_{t-1} Pt−1以及前一个目标 BBox B t − 1 {\mathcal{B}}_{t-1} Bt−1,首先构建一个时空点云,如第 3.3 节所述,然后使用框感知特征进一步增强这个时空点云,如第 3.4 节所述。之后,直接将时空点云通过 mini-PointNet 以获得 4D RTM,而无需任何目标分割。最后,M-Vanilla 使用预测的 RTM 变换前一个目标 BBox B t − 1 {\mathcal{B}}_{t-1} Bt−1以获得当前目标 BBox B t {\mathcal{B}}_{t} Bt。
3.7结合基于运动和匹配的模型
虽然运动建模有助于减少外观模糊性,但外观匹配在捕获实现高精度目标定位所必需的细粒度模式方面起着至关重要的作用。为了实现稳健而准确的跟踪,文中进一步研究了基于运动和匹配的模型的简单组合,如图 5 所示。给定两个连续帧 P t {\mathcal{P}}_{t} Pt和 P t − 1 {\mathcal{P}}_{t-1} Pt−1以及前一个目标 BBox B t − 1 {\mathcal{B}}_{t-1} Bt−1,首先使用以运动为中心的跟踪器在时间 t 获得目标 BBox B m o t i o n {\mathcal{B}}_{motion} Bmotion。随后,将 B m o t i o n {\mathcal{B}}_{motion} Bmotion放大一点并在其中收集点以生成搜索区域 P s e a r c h {\mathcal{P}}_{search} Psearch,然后将其规范化为由 B m o t i o n {\mathcal{B}}_{motion} Bmotion定义的对象坐标系。同时,使用前一个目标 BBox B t − 1 {\mathcal{B}}_{t-1} Bt−1裁剪前一帧 P t − 1 {\mathcal{P}}_{t-1} Pt−1并将裁剪后的点云居中以创建目标模板 P t e m p {\mathcal{P}}_{temp} Ptemp。然后将搜索区域 P s e a r c h {\mathcal{P}}_{search} Psearch和目标模板 P t e m p {\mathcal{P}}_{temp} Ptemp发送到 Siamese 跟踪器以通过外观匹配细化 B m o t i o n {\mathcal{B}}_{motion} Bmotion,从而得到最终的目标 BBox B f i n a l {\mathcal{B}}_{final} Bfinal。在这种设置下,运动追踪器提供了目标位置的可靠初始化,减少了干扰因素,从而确保 Siamese 追踪器中的外观匹配更准确。相关实验请参考 5.2.4 节
3.8改进的运动增强
为了鼓励模型在训练期间学习各种运动,随机翻转目标点和 BBox 的水平轴,并围绕其上轴以 Uniform[−10◦,10◦] 旋转它们。此外还随机平移目标,偏移量从 Uniform [-0.3, 0.3] 米开始。虽然合成运动减少了数据中的运动偏差,从而提高了模型的通用性,但原始数据中的真实运动也很有价值,因为它描绘了自然场景中真实的物体运动。然而,真实的运动,特别是静态运动,被这种增强所淹没。通过抛硬币测试缓解了这个问题,其中使用概率 p ≤ 1 的增强数据,同时以概率 1 − p 保留原始数据。在实验中,p 经验设置为 0.5。虽然简单,但这样的抛硬币测试显著提高了 M2-Track 的性能(表 3)。通过沿时间维度翻转点云序列来进一步扩充训练数据,从而避免模型偏向于仅向前运动。由于它使运动空间加倍,因此当标记数据非常有限时(例如,在半监督设置下),这种时间翻转策略非常有用。
3.9实施细节
损失函数
损失函数包含分类损失和回归损失,定义为:
L m = λ 1 L c l s _ t a r g e t + λ 2 L c l s _ m o t i o n + λ 3 L r e g _ b o x _ a w a r e + λ 4 ( L r e g _ m o t i o n + L r e g _ r e f i n e _ p r e v + L r e g _ 1 s t + L r e g _ 2 n d ) \begin{aligned} \mathcal{L}_{m} = &\ \lambda_1 \mathcal{L}_{\mathrm{cls\_target}} + \lambda_2 \mathcal{L}_{\mathrm{cls\_motion}} + \lambda_3 \mathcal{L}_{\mathrm{reg\_box\_aware}} \\ & + \lambda_4 \big( \mathcal{L}_{\mathrm{reg\_motion}} + \mathcal{L}_{\mathrm{reg\_refine\_prev}} + \mathcal{L}_{\mathrm{reg\_1st}} + \mathcal{L}_{\mathrm{reg\_2nd}} \big) \end{aligned} Lm= λ1Lcls_target+λ2Lcls_motion+λ3Lreg_box_aware+λ4(Lreg_motion+Lreg_refine_prev+Lreg_1st+Lreg_2nd)
L c l s _ t a r g e t \mathcal{L}_{\mathrm{cls\_target}} Lcls_target和 L c l s _ m o t i o n \mathcal{L}_{\mathrm{cls\_motion}} Lcls_motion是目标分割和第一阶段运动状态分类的交叉熵损失(点被认为是目标,如果他们在目标框里面的话);一个目标如果在两帧之中,它的中心移动了超过0.15m则被视为动态的。所有回归损失定义为RTM(通过目标框的真值推断)预测值和真值之间的Huber损失, L r e g _ m o t i o n \mathcal{L}_{\mathrm{reg\_motion}} Lreg_motion为两帧之间目标的RTM损失; L r e g _ r e f i n e _ p r e v \mathcal{L}_{\mathrm{reg\_refine\_prev}} Lreg_refine_prev是t-1时刻预测的RTM与目标框真值之间的损失; L r e g _ 1 s t \mathcal{L}_{\mathrm{reg\_1st}} Lreg_1st和 L r e g _ 2 n d \mathcal{L}_{\mathrm{reg\_2nd}} Lreg_2nd是第一和第二阶段RTM与真值框的损失。 L r e g _ b o x _ a w a r e \mathcal{L}_{\mathrm{reg\_box\_aware}} Lreg_box_aware是预测9D框感知特征的回归损失。 λ \lambda λ的值分别设置为0.1,0.1,1,1。
网络输入
由于 SOT 仅关注场景中的一个目标,因此只需要考虑目标可能出现的子区域。基本上,M2-Track 的输入是帧对。对于 (t − 1) 和 t 时间戳的两个连续帧,通过将 (t − 1) 时间戳的目标 BBox 扩大 2 米来选择子区域。然后,分别在 (t − 1) 和 t 时间戳从子区域采样 1024 个点以形成 Pt-1 和 Pt。为了模拟训练期间的测试错误,通过在 (t-1) 时间戳向地面真实目标 BBox 添加轻微的随机偏移来向模型提供扰动的 BBox。为了实现多帧集成,使用一个帧及其之前的 N ≥ 2 帧来构建每个输入,使网络能够感知具有各种时间间隔的 RTM。
算法1:基于伪标签的运动增强工作流程
训练和推理
M2Track使用Adam优化器训练我们的模型,批大小为256,初始学习率为0.001,每20个epoch衰减10倍。在KITTI汽车的V100 GPU上进行训练需要4个小时。在推理过程中,模型在给定第一帧目标BBox的点云序列中逐帧跟踪目标。
小结
M2Track是一种针对LiDAR点云数据的创新性3D单目标跟踪算法,其核心在于突破了传统基于外观匹配的Siamese范式,提出以运动信息为中心的两阶段跟踪架构。该算法主要解决自动驾驶场景中因点云无纹理、不完整导致的跟踪鲁棒性不足问题。
该算法的技术框架分为两个关键阶段:第一阶段通过运动变换建模连续帧间的目标位移,直接定位目标在当前帧的位置,避免传统方法依赖外观特征匹配导致的累积误差。第二阶段引入运动辅助的形状补全策略,利用时序运动信息优化目标边界框参数,提升三维空间定位精度。实验数据表明,该方法在KITTI、NuScenes和Waymo Open Dataset三大基准数据集上分别实现了8%、17%和22%的精度提升,同时保持57FPS的实时处理速度。
相较于传统方法,M2Track的突破性贡献体现在三个方面:首先,建立运动信息主导的跟踪范式,有效克服了点云数据特征稀疏性的限制;其次,设计的两阶段架构将粗定位与精调解耦,兼顾跟踪效率和精度;最后,通过开源代码验证了算法在复杂动态场景中的泛化能力,为自动驾驶感知系统提供了新的技术路径。