Joint Learning Architecture for Multiple Object Tracking and Trajectory Forecasting 详细解读

Joint Learning Architecture for Multiple Object Tracking and Trajectory Forecasting 详细解读

JLA

论文标题:Joint Learning Architecture for Multiple Object Tracking and Trajectory Forecasting
论文地址:https://arxiv.org/abs/2108.10543
论文源码:尚未开源

介绍:

​ 本文作者提出了一种用于多目标跟踪(MOT)和轨迹预测的联合学习体系结构。在多目标跟踪算法中除了提取物外观特征,使用目标外观特征进行检测、数据关联之外,将运动特征考虑其中也是一种很好的方式。一般会使用卡尔曼滤波器根据当前的状态或者位置来预测目标在下一帧中的运动状态(关于卡尔曼滤波器的知识点则不在此展开)。但是基于卡尔曼滤波器的方式是不能预测非线性轨迹预测的(以往的做法是将非线性的运动在时间上进行切割,那么在一个极短的时间内可以视为线性运动)。而本文是将目标运动以轨迹预测(又是一个新的知识点)的形式考虑到多目标跟踪中,用轨迹预测来对目标进行短期运动估计,以此来取代卡尔曼滤波器进行运动预测。

动机:

​ 多目标跟踪和轨迹预测在计算机视觉中是两个不同的任务。多目标跟踪(MOT)的目标是能够检测到帧中多个对象,且对每一个对象赋予唯一的id标签,并能够在后续帧中跟踪到该目标。轨迹预测则是通过使用目标过去的位置信息以及各种特征信息,当然也包括运动信息,来估计该目标未来可能存在的位置。用于轨迹预测的数据集通常是由鸟瞰的视角捕捉的行人或者车辆的镜头组成。

​ 但是这两个任务具有相似的性质,它们都需要跨帧检测和重新识别感兴趣的对象。这样的话就可以用轨迹预测来建模非线性轨迹,使用这些轨迹预测来改进检测得到的bbox,在进行数据关联,以形成跟踪轨迹。

​ 本文的贡献有如下:

  1. 介绍了一个新的多目标跟踪和轨迹预测模型 MOTF
  2. 提出了一个新的体系结构,联合执行多目标跟踪和轨迹预测
  3. 使用轨迹预测来细化目标的位置,以代替卡尔曼滤波。轨迹预测模型减少了由类似外观嵌入引起的ID切换问题。
  4. 提出了一种新的数据关联算法,利用先前的轨迹预测来估计被遮挡目标在后续帧中的位置。

网络架构

​ 先来看看整体的网络架构,如下图所示。如果已经过FairMOT那篇论文的小伙伴可能对这个网络结构很熟悉。对,本文就是使用FairMOT多目标跟踪器作为基准,只不过FairMOT并没有将运动信息加入到跟踪任务中,那么本文将轨迹预测分支添加到网络中,并对架构进行端到端的训练。(这里就不详细介绍FairMOT算)
在这里插入图片描述

然后下图是FairMOT的网络结构图:
在这里插入图片描述

通过对比可以发现 JLA 就是在FairMOT的基础上添加了轨迹预测分支,该分支的目标是利用过去的bounding box来预测目标对象在未来帧中的bounding box,预测得到的bounding box即为目标在后续中可能的移动轨迹。那么在处理到后续某一帧时,就可以与当前帧的目标进行数据关联以形成跟踪轨迹。

问题表述:

这部分对文中使用到的符号进行一些简要的介绍,以帮助后面逻辑的推理以及公式的理解。

假设一个视频有n个视频帧: f 0 , f 1 , f 2 , . . . , f n − 1 f_0,f_1,f_2,...,f_n-1 f0,f1,f2,...,fn1,在时刻s,视频帧 f s f_s fs

  • 视频帧中可识别的目标结合为 I I I,其中的一个目标为 i , i ∈ I i,i∈I i,iI
  • 视频帧中每个目标 i i i组成的bounding box的集合为 b s = { b s i } i = 1 I b_s=\{b_{s}^{i}\}_{i=1}^{I} bs={bsi}i=1I,每个bounding box包含4个值 b s i = ( x , y , w , h ) b_{s}^{i} = (x,y,w,h) bsi=(x,y,w,h) ,目标的中心点坐标为: ( x , y ) (x,y) (x,y),宽高为 ( w , h ) (w,h) (w,h)

MOT的目标是关联所有帧中检测出来的bounding box ${b_{0}^i} ,{b_{1}^i} , . . . ,{b_{n-1}^i} $ ,每个bounding box对应唯一的目标 K ∈ 1 , 2 , . . . , K K ∈ 1 , 2 , . . ., K K1,2,...,K 。其中 K K K是所有帧中的所有目标的数量(或者可以这样认为, K K K是当前视频序列中所有的最大的 i d id id数)。定义 T = { t k } k = 1 K T = \{t^k \}_{k=1}^{K} T={tk}k=1K为整个视频序列中的轨迹集合。 { t k } \{t^k\} {tk}就表示第 k k k个目标在视频序列中的轨迹。

相同的MOF的目标定义为,给定一序列帧 f s − p , f s − p + 1 , f s − p + 2 , . . . , f s f_{s-p},f_{s-p+1},f_{s-p+2},...,f_{s} fsp,fsp+1,fsp+2,...,fs 代表过去的视频帧,它们的轨迹集合为 { t s − p k } . . . { t s k } \{t_{s-p}^{k}\}...\{t_{s}^{k}\} {tspk}...{tsk}。MOF任务就是在过去的视频帧中预测出未来帧的bounding box { b s + 1 k } . . . { b s + q k } \{b_{s+1}^{k}\}...\{b_{s+q}^{k}\} {bs+1k}...{bs+qk},对应未来q个帧,这里的 p 表示过去帧的输入数量,q 表示预测未来帧的个数。在MOF中,轨迹是在预测之前定义好的。那么联合MOTF任务就是给定视频帧 f s f_s fs和过去p个bounding box集合 { b s − p k } , . . . , { b s − 1 k } \{b_{s-p}^{k} \} ,...,\{b_{s-1}^{k}\} {bspk},...,{bs1k} 。通过训练器来计算帧 f s f_s fs的轨迹 { t s k } \{t_{s}^{k} \} {tsk}以及预测未来的帧中的bounding box。和MOF任务不同的是,这里的预测的bounding box的结果需要参与损失的计算,来评估边界框的预测准确度。

联合学习体系结构

轨迹预测分支使用过去目标的bounding box信息来预测未来帧中bounding box信息,轨迹预测网络由RNN网络组成,用于对过去的bounding box进行编码和解码,并对未来的bounding box进行预测。结构如下图:

在这里插入图片描述

Past Bounding box and Velocity Encoder:

PastEncoder被用来从以往p个bounding box中提取出特征,并且通过迭代的方式来获得每个对象的速度。首先,本文构造了一个8维的向量 B = { { B j k } k = 1 K } s − p s − 1 = { { B s − p k } , { B s − p + 1 k } , . . . , { B s − 1 k } } B=\{\{B_{j}^{k}\}_{k=1}^{K} \}_{s-p}^{s-1} = \{ \{B_{s-p}^{k}\},\{B_{s-p+1}^{k}\},...,\{B_{s-1}^{k}\} \} B={{Bjk}k=1K}sps1={{Bspk},{Bsp+1k},...,{Bs1k}},对于帧 f j f_j fj中的任意一目标对象 k k k B j k = ( x j k , y j k , w j k , h j k , Δ x j k , Δ y j k , Δ w j k , Δ h j k ) B_{j}^{k} = (x_{j}^k,y_j^k,w_j^k,h_j^k,\Delta x_j^k,\Delta y_j^k,\Delta w_j^k,\Delta h_j^k) Bjk=(xjk,yjk,wjk,hjk,Δxjk,Δyjk,Δwjk,Δhjk),前四个数据表示的相应的bounding box 的位置以及宽高,而后面的四个数据表示的是速度 V j k = ( Δ x j k , Δ y j k , Δ w j k , Δ h j k ) V_j^k = (\Delta x_j^k,\Delta y_j^k,\Delta w_j^k,\Delta h_j^k) Vjk=(Δxjk,Δyjk,Δwjk,Δhjk),其中 Δ \Delta Δ,表示在连续时间步之间的变化。计算方式就是两帧之间的bounding box的位置和宽高做差。然后将过去的bounding box以及速度送入到PastEncoder中,产生最后的隐藏向量 h j e h_j^e hje,然后将其通过一个具有ReLU激活函数的全连接网络来产生256维的特征向量 Φ B e \Phi _B^e ΦBe

Embedding Encoder

也就是上图左下的步骤,其中的Image Embedings是通过DLA-34的骨干网络来提取出来的,DLA-34网络为当前帧中预测的目标对象提供上下文信息。在轨迹预测模型中,视觉特征的使用提高了bounding box估计的精度。然后将提取出来的特征传递到一个完全连接层,以生成一个256为的向量 Φ B e \Phi_B^e ΦBe

Past Bounding box and Velocity Decoder:

**这个PastDecoder用于再现过去的bounding box和速度。在每个时间步上,解码器首先使用编码 Φ B e {\Phi}_B^e ΦBe来更新先前隐藏的状态量,然后将更新后的隐藏状态向量通过全连接层以生成8维向量。在这个阶段,隐藏状态量被初始化为编码器的最终隐藏状态向量 h p e h_p^e hpe 。解码器的输出是一组预测过去的边界盒和速度 **,预测的过去的bounding box和速度也时表示为8维的向量 B − B^- B。然后就可以通过之前的bounding box和速度来定义损失函数如下:(那么这个损失函数是去训练谁的呢?个人认为是去训练PastEncoder,并且PastDecoder在推理的时候是用不到的,只是在训练时时候)

在这里插入图片描述

Future Velocity Decoder

FutureDecoder用来预测后续 q 帧中 K 个目标的速度。将从过去p帧中的bounding box提取的特征 Φ B e \Phi_B^e ΦBe和提取的图片特征 Φ E e \Phi_E^e ΦEe进行连接形成一个512维度的向量 Φ C \Phi_C ΦC ϕ C \phi_C ϕC通过一个全连接层q次,同时在每个时间步上更新先前的隐藏状态量。隐藏状态向量被初始化为编码器的最终隐藏状态向量 h p e h_p^e hpe。最终解码器生成未来帧中目标的速度 V = { { V j k } k = 1 K } j = s s + q = { { V s k } , { V s + 1 k } , . . . , { V s + q k } } V = \{ \{V_j^k\}_{k=1}^{K}\}_{j=s}^{s+q} = \{ \{V_s^k \},\{V_{s+1}^{k}\},...,\{V_{s+q}^ {k}\} \} V={{Vjk}k=1K}j=ss+q={{Vsk},{Vs+1k},...,{Vs+qk}},其中 V j k = ( Δ x j k , Δ y j k , Δ w j k , Δ h j k ) V_j^k = (\Delta x_j^k,\Delta y_j^k,\Delta w_j^k,\Delta h_j^k ) Vjk=(Δxjk,Δyjk,Δwjk,Δhjk)

Trajectory Concatenation Layer

这部分对应上图中的最右部分,目的是将预测出未来p帧中的轨迹可能存在的地方,并使用bounding box在帧中标现出来。本文实现的方式很简单,此时我们已经通过Future Decoder预测出了目标在未来q帧中的偏移量 V j k = ( Δ x j k , Δ y j k , Δ w j k , Δ h j k ) V_j^k = (\Delta x_j^k,\Delta y_j^k,\Delta w_j^k,\Delta h_j^k ) Vjk=(Δxjk,Δyjk,Δwjk,Δhjk),那么我们把 f s − 1 f_{s-1} fs1帧的bounding box和速度 V V V加上预测出来的偏移量就可以得到未来p帧中的轨迹的出现位置。(详细的公式可以见文章)

实验结果

本文的基准跟踪器是FairMOT,因此下表为本文提出的跟踪器和FairMOT进行的对比:

在这里插入图片描述

本文的跟踪器在MOT15、16、17、20数据集上与SORT的跟踪器的对比:

在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值