OC-SORT

Observation-Centric SORT: Rethinking SORT for Robust Multi-Object Tracking[1]

作者是来自CMU、上海AI Lab和英伟达的Junkun Cao, Jiangmiao Pang, Xinshuo Weng, Rawal Khirodkar, Kris Kitani. 论文引用[1]:Cao, Jinkun et al. “Observation-Centric SORT: Rethinking SORT for Robust Multi-Object Tracking.” 2023 IEEE/CVF Conference on Computer Vision and Pattern Recognition (CVPR) (2022): 9686-9696.

Time

  • 2023.Feb

Key Words

  • object observations
  • Observation-Centric SORT, Simple,Online, and Real-Time
  • occlusion and non-linear object motion

动机

  1. 基于卡尔曼滤波的多目标追踪的方法是假设目标线性运动,这个假设对于很短的occlusion是可接受的,时间变长了的话,运动的线性估计会很不准确。Moreover,当这里没有可用的measurement来更新卡尔曼滤波的参数时,惯例是相信priori state estimations for posteriori update。这会导致occlusion期间的误差累积,这个误差会在实践中造成严重的运动方向的多变。

  2. 旨在开发一个motion model-based multi-object tracking(MOT),对于occlusion和non-linear motion有很好的鲁棒性。

  3. 当occlusion和non-linear motion同时发生的时候,motion model-based tracking方法的误差会发生。

总结

  1. 基于卡尔曼滤波的多目标追踪的方法是假设目标线性运动,这个假设对于很短的occlusion是可接受的,时间变长了的话,运动的线性估计会很不准确。Moreover,当这里没有可用的measurement来更新卡尔曼滤波的参数时,惯例是相信priori state estimations for posteriori update。这会导致occlusion期间的误差累积,这个误差会在实践中造成严重的运动方向的多变。本文中,作者展示了一个卡尔曼滤波当很好地处理了occlusion期间的噪声累加时,也能得到很好的效果。除了仅仅依赖于线性状态估计(estimation-centric approach),用object observations(measurements by object detector)来计算一个虚拟的轨迹 over occlusion period,来修复occlusion 期间的滤波器的误差累加,提高了occlusion和non-linear motion期间的robustness。取名为Observation-Centric SORT

  2. 目前的现存的motion model-based 算法,假设一个时间段内追踪的物体速度不变,称之为线性运动假设,这个假设在许多实际场景中不成立。但是时间间隔足够小的时候,仍然有效,物体的motion能够近似为线性。为了减小造成的副作用,重新思考当前的模型,然后认识到了一些局限。为了追踪的性能,提出解决的方法:especially in occlusion

  3. 基于滤波器的方法(filtering-based)作为motion model-based tracking,假设一个转换函数,来预测未来时刻的目标的状态,称之为 state estimation;除了estimations,利用一个observation model,例如一个目标检测器,来推导一个目标物体的state measurements,也称之为observations。observation通常作为一个附属的信息来帮助更新滤波器的后验参数。轨迹能够被state estimation来扩展。Among this line of work,用的最广的是SORT,用一个Kalman filter来估计目标的state,一个linear motion function最为trasition function between time steps, 然而,当object motion是非线性、更新滤波器的后验参数的时候没有观察到observation,SORT的鲁棒性不够。

  4. SORT的三个limitations

    • 尽管高帧率能够近似物体的运动为线性的,它也放大了模型对于noise of state estimations的sensitivity。特别是,在高帧率视频的连续帧之间,物体位移的噪声可能与实际物体位移的大小相同,导致KF估计的物体速度有很大的方差。速度估计的噪声会通过transition process累计进入到位置估计(position estimate)。
    • KF状态估计的噪声会随着时间累加,当在KF更新的阶段没有observation的时候。作者展示了相对于没有追踪到目标物体的时间,误差累加会非常快,在速度方向上的噪声的影响经常使得track lost即使在re-association之后。
    • 考虑到现在检测器的发展,object state by detections 相比于滤波器里的固定的trainsition function得到的state estimation,有很低的方差。然而,SORT是通过 state estimation 而不是 observations来prolong object trajectories
  5. 为了减小上述限制的负面影响,两点创新:

    • 设计了一个module来用object state observations 来减小track丢失的时候的累计的误差;准确地说,在传统的 predict 和 update阶段之外,在一段untrack的时间之后,通过关联到一个observation,track被重新激活, trigger re-updatere-updatevirtual observation on the historical time steps to prevent error accumulation。 virtual observations 来自 a trajectory generated using the last-seen observatio before untracked and the latest observation re-activating this track as anchors. 称之为 Observation-centric Re-Update

    • 线性运动的假设提供了目标物体运动的方向,但这个cue很难用在SORT association上,因为direction estimation的大量的noise。提出了一个observation-centric 方式,将tracks的方向一致性引入到cost matrix 里 for association。称之为 Observation-Centric Momentum

  6. Motion Models: 大部分的MOT算法用了motion models,这些motion models用贝叶斯估计通过最大化后验估计,来预测下一个状态。最为最经典的motion models,Kalman filter(KF)是一个recursive 贝叶斯滤波器,跟随经i的那的 predict-update循环,measurements 是来自隐马尔可夫模型的observations。给定一个先行运动假设限制KF,紧接着的一个工作是Extended KF和Unscented KF,提出这两个是为了解决一阶和二阶泰勒估计的非线性motion;然而,它们还是依赖于KF假设的近似高斯先验,要求motion pattern assumption。另一个方面,粒子滤波通过sample-based 后验估计来解决非线性motion,但是计算量是指数级的。因此,Kalman filter的变体和粒子滤波很少在视觉多目标追踪中采用,用的最多的motion model还是基于Kalman filter的。

  7. Multi-object Tracking:多目标跟踪是从概率的角度进行的,现代的video object tracking通常建立在目标检测器上,SORT采用Kalman filter for motit ion-based multi-object tracking, given observations from deep detectors,DeepSORT进一步将深度视觉特征引入object association under framework of SORT,当场景拥挤,基于ReID的目标关联流行起来。最近,transformer被引入到MOT中,来学习深度特征 from both visual information and object trajectories。然而,它们的性能和SOTA的tracking-by-detection的方法还有很大的差距,不管是精度还是时间效率。

  8. Kalman filter 是一个在时间域离散的动态系统的线性估计器。KF只要求前一时刻的state estimations和当前的measurement来估计下一时刻的target state。这个滤波器维护两个变量: **后验状态估计 x, 后验估计协方差矩阵 P. 在目标追踪任务,用一个状态变换模型F、观测模型H、过程噪声Q和观测噪声R来描述KF过程。在每个时刻t,给定观测 z_t, KF在 predict和update两个阶段交替进行:

    \[\begin{aligned}&predict\begin{cases}\hat{\mathbf{x}}_{t|t-1}=\mathbf{F}_{t}\hat{\mathbf{x}}_{t-1|t-1}\\\mathbf{P}_{t|t-1}=\mathbf{F}_{t}\mathbf{P}_{t-1|t-1}\mathbf{F}_{t}^{\top}+\mathbf{Q}_{t}\end{cases},\\&update\begin{cases}\mathbf{K}_{t}=\mathbf{P}_{t|t-1}\mathbf{H}_{t}^{\top}(\mathbf{H}_{t}\mathbf{P}_{t|t-1}\mathbf{H}_{t}^{\top}+\mathbf{R}_{t})^{-1}\\\hat{\mathbf{x}}_{t|t}=\hat{\mathbf{x}}_{t|t-1}+\mathbf{K}_{t}(\mathbf{z}_{t}-\mathbf{H}_{t}\hat{\mathbf{x}}_{t|t-1})\\\mathbf{P}_{t|t}=(\mathbf{I}-\mathbf{K}_{t}\mathbf{H}_{t})\mathbf{P}_{t|t-1}\end{cases}.\end{aligned}\]

    • predict阶段是来推断下一时刻的state estimations。给定下一时刻的target states的measurement,update阶段旨在更新KF中的后验参数。因为measurement来自观测模型H,因此在很多场景中成为observation。
    • SORT是建立在KF上的MOT, SORT里的KF的状态x定义为 $ x=[u,v,s,r,,,] $, \((u,v)\)是 image里的目标的center的coordinates, \((s,r)\)分别是bbox的 scale(area)和 aspect ratio。aspect ratio假定为常数。其它的 \(\dot{u},\dot{v},\dot{s}\)分别是相应的推导量。obervation是一个bbox \(z = [u,v,w,h,c]^T, (u,v)是object center, w,h分别为weight和height,c为detection confidence.\). SORT假设线性运动为过渡模型F,状态估计为: \[u_{t+1}=u_t+\dot{u}_t\Delta t,\quad v_{t+1}=v_t+\dot{v}_t\Delta t.\]
    • 为了利用SORT中的KF for visual MOT,predict阶段估计下一帧的object position。来自detection model的observation来更新stage。update stage是来更新Kalman filter的参数,不直接edit tracking outcomes。
    • 当两个step的时间差在transition中是常数,例如视频帧率是常数;当帧率很高,SORT表现很好即使object motion是非线性的,因为在短的时间内可以近似为线性的。然而实际中observation通常会缺失,例如目标被occluded,这种情况下,无法通过update阶段来更新KF parameters。SORT通常用先验的直接作为后验,称之为dummy update
    • \[ \hat{x}_{t|t} = \hat{x}_{t|t-1}, P_{t|t} = P_{t|t-1}\]

    称这个算法为estimation-centric。当遇到non-linear和occlusion的时候,这个方法就不太行。

  9. 很小的 \(\Delta{t}\)会放大噪声。

  10. Observation-Centric SORT, we introduce the proposed observation-Centric SORT(OC-SORT), 为了解决上述SORT的限制。用目标进入associtation stage的momentum来开发一个在occulsion和非线性motion时,less noise和more robustness的pipeline。核心是将tracker设计为 observation-centric而不是estimation-centric。如果一个track从untracked恢复,用一个 observation-centric Re-Update来抵消 untracked期间的累计错误。OC-SORT也在association cost中加了Observation-Centric Momentum(OCM)。

  11. Observation-Centric Re-Update(ORU):

    • 当一个track经过一段时间的untrack之后,又与observation关联起来(re-activation),检查lost期间和重新更新KF的参数。参考untracked开始和结束时的observation,生成 virtual trajectory。例如:untrack之前的last-seen observation为 \(z_t1\),triggering re-association的observation为$z_t2,virtual trajectory为: \[\tilde{\mathbf{z}}_t=Traj_{\text{virtual}}(\mathbf{z}_{t_1},\mathbf{z}_{t_2},t),t_1<t<t_2.\] 然后接着 run the loop of predict and re-update.
  12. Observation-Centric Momentum(OCM):

    • 时间很短的间隔中,将motion近似为线性的,线性motion假设要求持续的motion direction。但是noise阻止了利用direction的一致性。更准确的说,为了决定motion direction,需要目标state on two steps with a time difference \(\delta t\)。如果 \(\delta t\) 太小了,因为estimation对state noise敏感,所以velocity noise很重要。如果 \(\delta t\) 太大了,direction estimation的noise同样也是 significant,因为temporal error magnification和failure of linear motion assumption。提出用observations 而不是 estimations来降低motion direction calculation的noise,引入consistency来帮助association。

    • 给定 \(N\)个存在的tracks和 \(M\)个 detections on the new-coming time step. Association Cost matrix是: \[C(\hat{\mathbf{X}},\mathbf{Z})=C_{\mathrm{IoU}}(\hat{\mathbf{X}},\mathbf{Z})+\lambda C_v(\mathcal{Z},\mathbf{Z}),\]

    \(\hat{X} \in R^{N \times 7}\) 是 object state estimations的集合,\(Z \in R^{M \times 5}\)是 observations在new time step的集合。

pipleline \(Fig.2^{[1]}\) Pipeline of proposed OC-SORT,Red boxes are detections, orange boxes are active tracks, blue boxes are untracked tracks, dashed boxes are the estimates from KF. During association, OCM is used to add the velocity consistency cost. The target #1 is lost on the frame t+1 because of occlusion. But on the next frame, it is recoverd by referring to its observation of the frame t by OCR. It being re-tracked triggers ORU from t to t+2 for the parameters of its KF。