2023CVPR《Observation-Centric SORT:Rethinking SORT for Robust Multi-Object Tracking》

论文:[2203.14360] Observation-Centric SORT: Rethinking SORT for Robust Multi-Object Tracking (arxiv.org)icon-default.png?t=N7T8https://arxiv.org/abs/2203.14360

代码:noahcao/OC_SORT: [CVPR2023] The official repo for OC-SORT: Observation-Centric SORT on video Multi-Object Tracking. OC-SORT is simple, online and robust to occlusion/non-linear motion. (github.com)icon-default.png?t=N7T8https://github.com/noahcao/OC_SORT

一、摘要

        基于卡尔曼滤波的MOT方法有效地前提假设是目标是线性运动的,这种假设对于短时间的遮挡是可以接受的,但是对长时间运动的线性估计可能非常不准确。此外,当没有可用于更新卡尔曼滤波器参数的测量(检测框与轨迹的匹配结果)时,常用做法是利用先验状态估计进行后验更新。这导致了因为目标被遮挡而出现错误积累。在实际应用中,该误差会造成较大的运动方向变化。针对该问题本文发现,如果适当地注意修复遮挡期间积累的噪声,基本卡尔曼滤波器仍然可以获得最先进的跟踪性能。据此,本文提出了一种以观察为中心的SORT(OC-SORT)MOT方法,该算法不仅依赖于线性状态估计(即以估计为中心的方法),还会使用对象检测结果(即对象检测器的测量)计算遮挡期间的虚拟轨迹,以修复因目标被遮挡导致的滤波器参数的误差积累,这也允许更多的时间步骤来纠正在遮挡期间累积的错误。该方法仍然简单、在线、实时、但鲁棒性更强,尤其是在目标被遮挡和非线性运动中。将现成的检测结果作为输入,OC-SORT在单个CPU上可以以700+ FPS的速度运行,并且该算法在多个数据集上实现了SOTA,包括MOT17、MOT20、KITTI、头部跟踪和物体运动高度非线性的DanceTrack

二、Motivation

1、卡尔曼滤波器

        将卡尔曼滤波用于MOT的前提假设是目标是线性运动的,但是并不是所有场景下该假设都是成立的。另外,当时没有匹配结果用于滤波器的参数更新时,继续使用先验的状态估计后续目标的轨迹会导致较大的误差累积。

2、遮挡和非线性运动的场景MOT问题

        想要针对遮挡和非线性运动的场景,开发一种鲁棒性更强的基于运动模型的MOT方法。

三、创新点

(1)提出了OC-SORT,该算法不仅依赖于线性状态估计,还能够使用对象检测结果来计算遮挡期间的虚拟轨迹,以修复因目标被遮挡导致的滤波器参数的误差积累,这也允许更多的时间步骤来纠正在遮挡期间累积的错误。

(2)分析了SORT的局限性,并提出了解决办法。

四、实现细节 

1、SORT的局限性

(1)将目标运动近似为线性运动的关键:高帧率,但这也使得SORT对来自KF(卡尔曼滤波)状态估计对噪声很敏感

(2)误差累计:在KF(可慢氯气)的更新阶段,当没有观测值时可用于跟新KF的参数时,KF状态估计的噪声会随时间累积。

(3)通过检测得到的目标状态的方差通常小于通过滤波器中固定的过渡函数沿时间步传播的状态估计。

解决办法:

(1)使用目标的状态检测结果来减少轨迹丢失期间的累积误差——ORU模块

        具体来说是:除传统的预测和更新阶段之外,增加了再更新(re-update)阶段来修正累积误差。re-update是指一个轨迹经过一段时间的未更新,但是在后续的某个时间步中通过与检测相关联而重新激活跟踪(即该目标在一段时间内没有出现过,但是在之后的某个时间步又出现了,而导致其轨迹被激活进入跟踪状态)re-update使用对历史时间步长的虚拟观测来防止错误积累,虚拟观测来自一个轨迹,该轨迹是由未跟踪前最后一次观测和重新激活该轨迹的最新观测作为锚点生成的。

(2)提出一种以观察为中心的方法,将轨道的方向一致性纳入关联的成本矩阵中——OCM

2、运动建模 

        现阶段的MOT算法常使用运动建模来预测目标在下一帧的状态,但是仍然存在需要高斯先验和运动模式假设(卡尔曼滤波)和计算量巨大的困境(粒子滤波)。

3、 OC-SORT概述

(1)基本框架

 图2 OC-SORT基本框架。红色框代表检测框,橙色框表示活动轨道,蓝色框是未跟踪的轨迹,虚线框是KF的估计。在关联过程中,使用OCM模块提高速度一致性。从图中可以发现,1号目标由于遮挡在第t+1帧中丢失;但是算法可以在下一帧中通过OCR模块对第t帧的观察恢复该目标,并在t+2帧中通过触发ORU模块利用t帧到t+2帧的KF参数被重新跟踪到。

(2)ORU模块—解决误差累积

图3 以观察为中心的重新更新(ORU)如何在跟踪中断时减少错误积累的示例。在第二步和第三步之间目标被遮挡,跟踪器在第三步可以再次追踪到该目标。黄框表示探测器的状态观测,白色star表示是没有ORU的估计中心,黄色star表示由ORU确定的估计中心。第四步的灰色star是没有使用ORU模块的估计中心,可以发现预测的结果与观测结果不匹配。

         基本思想:通过虚拟轨迹来预处目标被遮挡的时间段里的轨迹,以确保KF参数的准确性。具体来说:当某个轨迹在一段时间未被跟踪后再次与检测结果相关联(“重新激活”)是,ORU模块就会检查其丢失的周期并重新更新KF的参数。重新更新是基于对虚拟轨迹的“观察”更新KF参数的过程,虚拟轨迹是基于非跟踪周期开始和结束步骤的观测结果生成的。由于虚拟轨迹上的检测与最后一次检测和最近一次关联真实检测所锚定的运动模式相匹配,所以后续的KF更新将不再受到虚拟更新所积累的误差的影响。另外,它作为预测-更新循环之外的独立阶段,只有在一个轨道在一段时间内没有可以与之关联上的检测结果,但在后续的时间步中被重新激活时才会触发。虚拟轨道的生成方式如下:(其中z_{t1}表示未跟踪前最后看到的观测值、z_{t2}表示触发重新关联的观测值、\tilde{\mathbf{z}}_t百表示虚拟轨迹)

\tilde{\mathbf{z}}_t=Traj_\text{virtual}(\mathbf{z}_{t_1},\mathbf{z}_{t_2},t), t_1<t<t_2

\left.re-update\left\{\begin{array}{l}\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(\tilde{\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{array}\right.\right.

(3)OCM模块—减小噪声和运动的非线性性的影响

图4 OCM运动方向差的计算。绿线表示一条现有的轨道,点是对它的观察。红点是新的观测结果。蓝线和黄线接分别构成{\theta^{\mathrm{track}}}和方向{\theta^{\mathrm{intention}}},夹角为方向差\Delta\theta。 

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值