MotionTrack
MotionTrack: Learning Motion Predictor for Multiple Object Tracking[1]
作者是来自国防科大、京东、美团等机构的Changcheng Xiao、Qiong Cao等人。论文引用[1]:Qin, Zheng et al. “MotionTrack: Learning Robust Short-Term and Long-Term Motions for Multi-Object Tracking.” 2023 IEEE/CVF Conference on Computer Vision and Pattern Recognition (CVPR) (2023): 17939-17948.
Time
- 2024.Mar
Key Words
- long trajectory
- motion predictor
- 一句话来说:之前的MOT方法使用detection、appearance features来做,但是motion information 被忽略了,之气的motion model一般都是用kalman filter,作者利用Transformer的long-term dependencies的能力,利用历史的轨迹信息,来预测下一帧的位置。这里就用了token-level和channel-level两个granularity的信息,分别用多头自注意力和DyMLP来处理,然后进行融合,object motion prediction的目标是基于object的历史轨迹信息,预测其bbox的相对空间位移。
总结
- 通过detection的进步和reid方法,MOT领域有了很大的进步。尽管有了这些成就,精确地跟踪有着一致的外观和不同的运动的场景仍然是一个挑战,这个挑战来自于两个因素:ReID特征的不够充分的区分度和MOT中线性运动的模型的利用。在这个背景下,引入了一个新的基于Motion的tracker, MotionTrack。以一个可学习的motion predictor为中心,仅依赖于object trajectory information。这个predictor 全面地集成了motion features中的两个level的粒度,来增强时序动态建模能力,为每个objects提升准确的motion prediction。具体地说,提出的方式采用了自注意力机制,来得到token-level的information 和一个动态MLP layer来建模channel-level features。MotionTrack是一个简单、在线的tracking方法。
MOT 近些年由于它在很领域的应用,得到了很多的关注。受益于object detection和ReID的快速发展,tracking-by-detection方法占了主流。这个范式包含两个主要的步骤:1. 用一个off-the-shelf object detector来得到每一帧的detection results; 2. 用visual 和motion cues 关联 detection results,形成轨迹。在关联阶段,受现有的MOT的内在的特性的影响,大多数最近的MOT的成功使基于appearance feature 或者 detection 和simple tracking mechanism 的结合,motion information 没有被explore。这个趋势使得现有的tracker 在一些场景中失败,objects of interest 在group dancing之中有着相似的外观,players在sports scenes 中快速运动。这些观察激励作者仅用motion cues 来进行modelling,证明了它为准确和高效地关联objects的重要性。
在本文的工作中,作者聚焦于学习一个motion predictor来提升关联的准确性和tracking的性能。它具有挑战性,因为复杂的motion variations。现有trackers 用的motion models可以划分为基于贝叶斯估计的经典算法和数据驱动的算法。对于前者,代表性的是Kalman filter,它假设恒速,因此在线性运动中表现很好,但是在处理非线性运动的时候不佳。对于后者,基于光流的跟踪方法需要一个复杂的heavy的光流模型来计算帧间像素偏移,仅考虑局部运动信息,被耗时的optical flow model所限制。另外,基于LSTM的网络也被用来存储objects的motion information。然而,LSTMs面临的问题是它们的memory mechanism和它们建模long-term temporal interactions的能力。这些step-by-step的prediction方法导致错误累积,可能导致预测空间位置的时候的不准确。 为了解决上述的挑战和高效地利用object trajecotry information,作者提出了一个新的online tracker,MotionTrack,基于motion predictor,能够将Longer tracjectories作为输入,预测objects的future location,如图所示,作者提出的方法能够在遮挡和非线性运动场景中track objects,然而基于Kalman filter的trackers失败了,作者的贡献如下:
为了解决现有工作的据小型,在预测objects的bbox之前依次处理observations。作者利用Transformer的powerful long-range dependency modeling的能力。为了保持算法的简单和计算高效,作者基于Transformer的encoder设计了一个motion predictor来建模每个objects的long-term trajectories,用于motion prediction,特别地,提出的motion predictor同时考虑多个observations,基于token-level的pair-wise similarities对trajectory embeddings进行加权。
第二,为了进一步增强trajectory embedding sequences的利用,作者引入了一个类似MLP的架构,称之为Dynamic MLP。众所周知,在feature space中的不同的语义信息倾向于分布在不同的channels中,channel mixing为cross-channel interaction提供了更大的灵活性。受此启发,作者旨在这几一个更强的attention module来增强complex motion modeling,捕捉分布在不同channels的information,例如relative position changes和object motion的directions。提出的Dynamic MLP能够通过content-adaptive token-mixing,精确地利用分布在不同channels的motion information,有了Dynamic MLP,能够将它和self-attention model结合,来增强信息在两个不同粒度(token level和channel level)的传递,为了汇聚不同的语义信息。
另外,通过数据增强得到了更复杂的运动模式,来更好地理解motion dynamics,提升性能。具体而言,本方法通过引入随机丢弃(random drop)、随机空间抖动(random spatial jitter)和随机长度(random length)三种策略,生成包含快速移动目标、不同长度轨迹片段等多样化运动模式的训练数据。作者提出的方法,尽管很直接,在大规模的数据集上展示除了很好的性能。
MOT:早期的MOT研究主要依赖于优化算法,来解决数据关联问题,然而,随着深度学习的到来,tracking-by-detection用了更强的detectors占据了MOT的主流范式,近些年,一些方法将detection和tracking融合到single netowrk中,受益于神经网络的多任务学习。例如,Tracktor通过Faster RCNN的回归头,预测object's 下一帧的位置,但是但是在低帧率的时候可能失效。JDE用一个ReID分支扩展了YOLOv3,来得到object 的embedding用于data association。为了解决detection和reID任务,FairMOT基于anchro-free的object detector(centerNet),实现了更好的跟踪结果。另外,ByteTrack展示了MOT的trackers的瓶颈在于detection而不是association。因此,一个更强的detector结合简单分层关联策略,能够实现很好地跟踪性能。
- Motion Model:Motion Estimation对于Object trackers来说很重要,在早期的时候,很多经典的MOT算法,例如SORT、DeepSORT等,利用Kalman filter来预测每个object的帧间position offset,然而,KF 模型受限于它的恒速假设,在复杂和非线性场景中表现很差。为了处理这些挑战,研究人员提出了很多data driven models,例如Zhang等人利用optical flow来得到objects的pixel-level motion information,CenterTrack在object detector上增加了一个offset branch来预测object center的motion information。Milan等人基于RNNs提出了一个在线的tracker,后续的研究将RNNs用于融合visual 和motion information或者计算随后的数据关联的affinity scores。ArTIST和DEFT将Tracktor扩展了,用一个线性模型来预测lost tracks的位置,代替了trajectory tracking的visual cues。近期的研究将KF进行了提升,来更好地处理非线性运动。例如MAT提出了一个IML module,,同时考虑了camera和行人运动信息,实现了更好的性能。Cao等人认识到了原始KF在处理遮挡和非线性运动的局限性。
尽管有了以上的提升,大多数的研究仍然基于经典的KF和它的恒速模型假设。QuoVadis基于鸟瞰图(BEV)场景表征中的轨迹预测框架,通过多个复杂子模块,有效增强了现有先进目标跟踪算法对长期遮挡场景的鲁棒性,成功克服了传统方法在持续性遮挡处理方面的固有缺陷。
- Transformer-based methods:最近transformer models的成功,特别是object detection领域,导致很多基于transformer的方法出现,包括TransTrack, TrackFormer, TransCenter和MOTR,是同一时期的基于DETR的trackers,TrackFormers采用Track queries来保持object identities,利用启发式方法来抑制duplicate tracks。TransTrack直接利用之前的object features作为track queries来得到tracking boxes,将detection boxes基于IoU 匹配进行关联。TransCenter通过transformer得到了object center representation,通过CenterTracks的目标关联实现跟踪。另外,MOTR通过迭代更新track query,实现端到端地跟踪,不需要后处理。另外,GTR是一个基于transformer的离线的tracker,采用queries将detected boxes划分为tracjectories,而不是生成tracking boxes。值得注意的时候,所有这些模型的训练使得大量的训练样本、高昂的计算资源和训练时间变得必要。相比之下,我们的方法仅利用Transformer来充分利用物体轨迹信息。
MOT tracking task涉及识别objects的spaital和temporal locations,给定一个video sequence,Transformer model因其long-term dependencies而出名,证明了处理sequence data的高效。基于这个成功,作者展示了一个motion predictor,利用object的过去的轨迹信息来预测它在下一帧中的position。作者的数据关联方法仅依赖于当前帧和预测bbox的spatial similarity。为了实现这个,作者用一个简单的base model基于Transformer的encoder来得到每个objects的temporal dynamics。接下来,作者引入了Dynamic MLP,这是一种类似多层感知机(MLP)的架构,旨在探索通道间的相互作用,作者将其和self-attention 模块结合,,以学习跨token和通道层面的粒度信息。最后,,利用增强里构建更复杂的motion patterns,来提高motion dynamics的理解。总的来说,作者的方法利用Transformer的strengths,基于它构建一个简单有效地motion predictor。
Notations:object的轨迹包含一系列有序的bboxes,\(T = {b_{t1},..}\),bbox定义为 \(b_t = {x,y,w,h}\),\(t\) 是时间戳。在一些moments,observations可能由于遮挡或者detector failure丢失,因此轨迹是不连续的。\(D_t\) 是 detector得到的 第 \(t\) 帧的detections的集合。object的过去的轨迹repsentation可以表示为一个序列, \(X = (..., x_{t-2},x_{t-1})\),object在时刻 \(t-1\) 的representation 表示如下: \[\mathbf{x}_{t-1}=(c_x,c_y,w,h,a,\delta_{c_x},\delta_{c_y},\delta_w,\delta_h),\]
\(c_x, c_y\) 表示image plane 中的object的中心坐标。 \(w, h, a\) 分别表示 width, height和 bbox的aspect ratio. 对于每个object,motion predictor 表示为 \(MP\), 利用最后 \(n_{past}\) 个 历史observations,表示为 \(X_{t-n_{past}:t-1}\), 来预测positional offset,表示为 \(\hat{O}_t\),object motion prediction 的目标是基于目标的历史轨迹信息预测object bbox的relative spatial displacement。
\[\begin{aligned} \mathbf{X}_{t-n_{past}:t-1} & =\mathrm{Concat}(\mathbf{x}_{t-n_{past}},\ldots,\mathbf{x}_{t-1}), \\ \hat{\boldsymbol{O}}_{t} & =\mathcal{MP}(\mathbf{X}_{t-n_{past}:t-1}), \end{aligned}\]
在输入给encoder layer for further processing之前,\(X\) 通过一个linear projection嵌入到更高维度的space,为了使输入的token sequence \(E\) 包含相对位置信息,作者将sinusoidal position encoding information注入到input embeddings之中。
Transformer-based Motion Predictor:object的future motion被它的过去的dynamic information严重影响。一个直觉的思路是利用vanilla Transformer来得到individual objects的历史上下文信息。这个encoder能够建模long-term dependencies,主要的组件是MHSA机制,通过利用MHSA,编码器能够高效关注轨迹序列中的不同元素,并识别出对预测物体未来运动最具贡献的信息特征。为每个single object分开计算attention,输入的tokens \(E\) 序列线性地转换成 Q, K, V,对于多头自注意力,一些single-head attention联合关注不同的representation subspaces的信息。MOT 因为objects之间的interaction而变得challenging,一个object的行为在其它objects上的影响是一个复杂的过程。像很多之前的工作,作者尝试建模 objects之间的interactions,作者遵循AgentFormer,用一个agent-aware attention mechanism来建模multi-object motion in both temporal 和social dimensions using sequential representations。
Dual-granularity Information Fusion:仅依靠跨所有通道的token-level消息传递机制,缺乏充分传达不同语义信息的能力。这个局限限制了optimal exploitation,导致次优的性能。因此,需要用一个fine-grained message passing 机制,以自适应的方式满足不同的语义,这种方法通过在跨通道信息传递中实现更细粒度的交互,能够构建更充分的运动建模。
Dynamic MLP:作者探索了一个新的module称之为:Dynamic MLP,和encoder中的self-attention并行,来进一步捕捉objects的复杂的motion patterns,它汇聚了分布在不同temporal channels的positions。如图所示,DyMLP的核心是channel fusion layer,包含一个动态的全连接层(fully-connected layer) 和一个identity layer。给定输入的token sequence \(E\),对于每个token,首先用一个FC layer来预测 \(d_m\) offsets。因为在generation of offsets上没有限制,DyFC能够汇聚temporal global channel information。基本的DyFC操作表述如下:
\[\hat{e}_{i}^{T}=\mathrm{DyFC}(e_{i})=\tilde{e}_{i}\cdot\mathbf{W}+\mathbf{b},\\ \tilde{e}_{i}=[\mathbf{E}_{[i+\delta_{1},1]},\mathbf{E}_{[i+\delta_{2},2]},\cdots,\mathbf{E}_{[i+\delta_{d_{m}},d_{m}]}],\]
\(W\) 和 \(b\) 是可学习的参数,此外,我们通过identity layer保留原始标记信息。CFL将融合结果输出为eT和eL的加权和,其公式可表示为: \[\hat{e}=\omega^T\odot\hat{e}^T+\omega^I\odot\hat{e}^I,\]
每个encoder layer包含两个sub-layers,用residual connections in both sub-layers然后执行layer normalization。encoder layer中的整个过程可以描述为如下:
\[\begin{gathered} \mathrm{DIF}(E^{l-1})=\mathrm{MHSA}(E^{l-1})+\mathrm{DyMLP}(E^{l-1}) \\ \hat{E}^{l}=\mathrm{LN}(\mathrm{DIF}(E^{l-1}))+E^{l-1} \\ E^{l}=\mathrm{LN}(\mathrm{FFN}(\hat{E}^l))+\hat{E}^l, \end{gathered}\]
Dual-granularity Information Fusion Layer:随着Dynamic MLP的引入,将其和self-attention进行集成。这个集成利用了来自token-level的granularity和channel-level granularity。将这个新的module称之为 Dual-granularity Information Fusion Layer(DualIF)。motion predictor 的backbone \(MP\) 包含 L个顺序连接的encoding layers。每个encoding layer包含两个sub-module:一个多头self-attention module和一个dynamic MLP module。前者基于计算出的成对注意力权重,将其他token的token-level的信息整合到query中;而后者则自适应地对分布在channel level的上下文进行特征融合。
Training and Inference:像其它深度学习任务,例如CenterNet, CenterTrack和YOLOX,结合数据增强在提升模型性能上至关重要。有限的训练样本,结合motion的u都阳性,使得novel augmentation strategies的exploration至关重要。在这个研究中,作者检验了三种不同的增强策略来丰富训练样本。这些策略对应于motion model必须处理的cases,也就是object position jitter和motion mutations, detection noise和新的初始化的shorter trajectories。
- Random drop:在产生target trajectory representation \(X\),作者以概率 \(p_i\) 忽略 observation \(b\),该策略能够有效模拟快速运动及低帧率场景。
- Spatial jitter:为了增强系统对抗detection noise的鲁棒性,在边界框中融入空间抖动是一种广泛采用的实践方法。这个方法涉及在训练期间在bboxes的position和bboxes引入小的variations。通过这样做,model能够对variations更加resilient。此外,在时序意义上,该方法还能通过引入更广泛的运动模式来扩充训练数据集。
- Random length。由于short new birth trajectory,有很少的时序信息,通过随机改变训练序列的长度,模型能够接触到多样化的运动模式,从而使其学会泛化到不同的时间上下文。为此,我们采用可变长度(范围为[2, npast])的观测序列对运动模型进行训练,其中每个对象对应的观测序列长度是独立保留的。通过随机改变训练序列的长度,模型能够接触到多样化的运动模式,从而使其学会泛化到不同的时间上下文。为此,我们采用可变长度(范围为[2, npast])的观测序列对运动模型进行训练,其中每个对象对应的观测序列长度是独立保留的。
- Training loss: 采用smooth loss L1 来监督训练过程,给定一个预测的offset 和对应的gt, loss 如下:
\[\begin{gathered} \mathrm{DIF}(E^{l-1})=\mathrm{MHSA}(E^{l-1})+\mathrm{DyMLP}(E^{l-1}) \\ \hat{E}^{l}=\mathrm{LN}(\mathrm{DIF}(E^{l-1}))+E^{l-1} \\ E^{l}=\mathrm{LN}(\mathrm{FFN}(\hat{E}^l))+\hat{E}^l, \end{gathered}\]
- Inference:首先,解码预测的offset \(\hat{O}_t\) 为当前帧的轨迹的bboxes, 和一些经典的online trackers一样,作者利用了一个简单的association 算法,基于 \(\hat{D}_t\) 和 \(D_t\) 之间的IoU相似度,用匈牙利算法分配给tracklets。没有分配的detections初始化为new trajectories。如果没有detection分配给trajectory,这个trajectory标记为lost,如果time lost 超过了一定的阈值,这个target被视为out of view,然后从轨迹中remove,lost trajectories可能在assignment step中重新track。给定一个object detector的detections,作者的tracker以在线的方式关联identities,仅利用motion cues。
\(Figure.1^{[1]}\) 提出的motion predictor
\(MP\) 当预测object
position的时候,考虑轨迹的 \(n_{past}\)
个历史观测。有了预测的bboxes \(\hat{D}_t\),数据关联可以通过匈牙利算法实现。Blank
boxes表示丢失的observations, dashed boxes表示
预测的bboxes,不同的颜色表示不同的objects。
\(Figure.2^{[1]}\)
Dynamic MLP的网络结构如图所示,dynamic FC操作过程如图b所示
\(Figure.3^{[1]}\) motion predictor的架构