JunnHan / MOTPapers

0 stars 1 forks source link

Track to Detect and Segment: An Online Multi-Object Tracker #7

Closed JunnHan closed 3 years ago

JunnHan commented 3 years ago

Abstract

  针对目前大多数的多目标跟踪方法的检测与跟踪关联性较弱,在处理上相对独立的问题,本文提出了一个联合检测于跟踪的模型,利用跟踪的线索来端到端的辅助检测。通过cost volume来推测跟踪的offset,并用来聚合之前的特征来辅助提升检测与分割的性能。在MOTChallenge(2D)、nuScenes(3D)、MOTS以及Youtube-VIS(instance segmentation tracking)上进行了实验,实验充分,且也是工作量的体现。

JunnHan commented 3 years ago

Introduction

  作者认为当前的联合检测与跟踪的方法虽然实现了单个模型的一次前向计算进行检测与跟踪,但是检测与跟踪两个任务本身的信息交互太少,尤其是检测,很大程度上是独立于跟踪的,并不能从跟踪的信息中获益,(如在目标部分遮挡以及运动模糊的情况下,跟踪信息可以帮助提升检测性能)。另一方面,将外观特征学习融合进来的方法,通常仅注意类内目标的区别,并不考虑类间的关系,然而检测任务是希望增大类间的区别并减小类内的差距,这就造成了两者的不兼容,使得一般的re-ID会造成检测精度的下降。作者对比了两步法、联合检测与跟踪方法以及本文所提方法的基本结构,如下图:

  本文在CenterNet/CenterTrack基础上,提出了基于cost volume的关联模块(CVA)以及运动引导的feature warper模块(MFW)。其中CVA从backbone特征提取point-wise的re-ID特征来构建cost volume(存储着两帧图像间特征对的匹配相似度),然后根据cost volume来推测tracking offsets(所有点的时空偏移)。外观特征与tracking offsets用于两轮数据关联的代价计算。MFW模块利用tracking offsets作为运动线索将之前帧的特征传到当前帧,再与当前帧聚合用于检测与分割。   在CVA模块中,cost volume用于指导外观特征的学习,不同类别目标以及背景信息都隐含进来了,因此缓解了上述的第二个问题,考虑了类间目标的区别,使得检测性能不会受到太大影响。此外,由于tracking offsets是根据外观特征相似度来预测的(前文提到的cost volume),因此能够应对大的运动变化以及较低的视频帧率。   本文中的一个很有意思的点是在当前帧被遮挡的目标或是由于运动而模糊的目标在前几帧可能是清晰的,因此将前面帧的特征传递到当前帧有助于恢复那些可能丢失的漏检目标。

JunnHan commented 3 years ago

TraDeS Tracker

Our Idea:   主要的出发点就是用端到端的方式将跟踪的信息整合到检测任务当中,用来改善检测的性能,同时检测的高性能又能反哺跟踪。整体结构见下图:

Cost Volume based Association(CVA)   Cost Volume:给定来自两不同时刻的base feature,利用3个卷积层来提取128维重识别特征e (H/4 W/4 128),为了更高效地计算cost volume,再进行一次下采样,得到(H/8 W/8 128)的特征e‘,得到4维的cost volume(H/8 W/8 H/8 * W/8),如下式:

其中,这个相似度指的是t时刻的点(i, j)与t-τ时刻的点(k, l)之间的相似度,因此t时刻的一个点要与t-τ时刻的共H/8 W/8个点进行计算,因此组成了上述4维的cost volume。   Tracking Offset:根据cost volume C来计算tracking offset矩阵(H/8 W/8 2),来存储t时刻所有点与其在t-τ时刻的对应点之间的时空偏置。Step(i) 首先用H/8 1和W/8 1的kernel将C_ij进行max pooling操作,并用softmax进行normalized,得到C_ij^W (1 W/8)和C_ij^H (H/8 * 1),这两项代表了目标在t-τ时刻出现在对应水平/垂直位置上的概率。 Step(ii) 先预定义水平/垂直方向上的offset template用来表示实际的各点与对应各行/列之间的偏移,如下式:

其中s代表feature stride,在这里是8. M_ijl代表的是当目标x在t-τ时刻出现在(*, l) 即在某一行/列的对应水平/垂直偏差。因此,最终的偏差结果可由实际的偏差值与可能性之间的点积计算得到:

由于O是(H/8 W/8)的,因此将O进行上采样得到O^C (H/4 W/4 * 2)作为MFW模块的运动线索并用于数据关联。   Training:由于第一小部分Cost Volume中的3个用来学习外观特征的卷积层是CVA模块中唯一可学习的部分,因此训练的重点放在了外观特征的学习上。依然是一个分类的问题,采用Focal Loss,如下式:

  由于C_ijl^W和C_ijk^H是利用softmax进行计算的,因此这个相似度是考虑了(i, j)点和之前帧的所有点的关系的,也就意味着,在外观特征的学习上,不仅使得目标逼近其在之前帧的对应目标,同时还能远离其他目标和背景区域。   The CVA Characteristics:与传统的re-ID损失不同,本文的CVA模块不仅强调了类内目标的区别,同时也关注到类间目标的不同;tracking offsets是根据外观特征预测的,能够处理大幅度的运动以及低帧率的视频;区别于CenterTrack等要么只有外观特征,要么只有offset,本文两者兼具。

Motion-guided Feature Warper(MFW)   MFW模块的目的就是利用预测的tracking offset作为motion cues来传递之前帧的特征到当前帧。   Temporal Propagation:DCN将spatio-temporal offset map和previous feature作为输入,得到propagated feature,其中两方向偏置输入如下式:

其中K=3,是DCN的kernel width/height。为得到O^D,将tracking offset O^C通过一个3*3卷积,并将残差特征f^t-f^(t-τ)作为输入来提供更多的运动信息(optionally)。由于检测器采用的是基于point的centernet,因此并不是直接传递t-τ的特征,而是传递center-attentive的特征,如下式:

其中q代表channel,计算哈达玛积(对应位置相乘),P是class-wise center heatmap,那么 propagated feature由下式计算得到:

  Feature Enhancement:在得到上述的之前帧的传递特征以后,加上当前帧特征的enhanced feature由下式得到:

其中w^t (H/4 W/4 1)是和为1的adaptive weight,通过两层卷积+softmax预测得到。利用增强后的特征进行检测和分割,能一定程度上弥补漏检并减小FN。

Tracklet Generation   Head Networks:在2/3D检测方面,采用了和CenterNet一样的head,分割采用的是CondInst的结构。 TraDeS LossData Association:DA-Round (i) 先和上一帧中没有匹配的detections(新创建的跟踪轨迹),利用坐标+偏置最接近的原则进行关联,同时在半径范围内,半径的计算由检测框的宽高的几何平均得到;DA-Round (ii) 如果检测没有关联上,则利用外观特征相似度将检测与未匹配的以及历史tracklet进行关联。(没有track re-birth应该是说跟踪轨迹若没有关联上就kill,不保留)   TraDeS Loss

JunnHan commented 3 years ago

Experiments

  本文给我比较大的启发就是 不管工作的内容多与少,充分的实验总是没有错的。又增加工作量,又能体现算法的广泛适用性。结果依然是比较漂亮的,仅在MOT数据集上训练就达到了接近70的精度,还是很不错的,当然,可能这也是CenterNet的检测优势,CenterTrack自身也有67的精度