TransTrack阅读笔记
(一) Title
论文地址:https://arxiv.org/abs/2012.15460
代码地址:https://github.com/PeizeSun/TransTrack
前言: 本文建立了一种novel joint-detection-and-tracking模型,在一个框架中完成目标检测和跟踪。这是首篇将Transformer引入到MOT任务中
(二) Summary
研究背景
目前MOT中主要有两种方式:tracking-by-detection以及joint-detection-and-tracking方式。
- 目前SOTA的多目标Trackers采用tracking-by-detection的方式。首先通过目标检测器,接着利用Re-ID特征以及边界框信息(IoU)进行关联。在SORT中通过卡尔曼滤波器以及匈牙利算法进行关联。DeepSORT中将SORT中的association cost替换成了从deep convolutional network中提取的Appearance特征。POI通过高性能的检测以及deep learning-based appearance取得了SOTA。Lifted-Multicut中结合deep representation以及body pose feature。STRN中提出了跟踪轨迹和目标之间的一个相似性学习框架,能够编码时空关系。虽然Tracking-by-detection方式取得了SOTA的性能,但是模型复杂度和计算cost都非常大。
- Joint-detection-and-tracking方式希望通过a single stage完成检测和跟踪任务。D&T中提出了一个多任务框架用于frame-based object detection以及across-frame track regression.Integrated-Detection中通过将当前帧的检测同之间帧的跟踪结合起来来改善检测性能。Tracktor中将之前帧的tracking boxes作为region proposals进行边界框回归来输出当前帧的跟踪结果。JDE和FairMOT中通过一个共享的骨干网络学习目标检测任务以及appearance embedding task。CenterTrack中通过tracking-conditioned detection定位目标,并且预测他们同上一帧的偏移。ChainedTracker中chains paired bounding boxes estimated from overlapping nodes in which each node covers two adjacent frames没看懂,直接把原文搬过来的,回头有时间看下这篇论文。
本文工作
本文提出TransTrack,采用Transformer架构,是一个基于注意力的query-key机制,它利用来自前一帧object特征并且同时引入了一个learnd object queries(为什么是learned不是learnable?).完成了在single shot中同时解决目标检测和跟踪问题。也就是端到端的tracking方式。具体来讲就是:
基于DETR的object query的思想。这里将所有的query分成两部分:一部分叫做Object Queries,用来提供a sense of new-coming的目标。另一部分叫做Track Queries用来maintain 目标轨迹。两个query分别进行预测,并且TransTrack使用简单的IoU 匹配来生成最终的结果,并且不需要使用NMS
实验结果
在MOT17和MOT20上分别达到了74.5%和64.5%的MOTA,能够同SOTA一较高下
(三) Research Object
本文在目前tracking-by-detection方式占主导地位的情况下,将SOT中query-key机制引入到多目标跟踪中,构建了基于注意力机制的query-key多目标跟踪框架,博主觉得对于多目标跟踪任务来说是相当有创新的事情。
(四) Problem Statement
目前在MOT任务中通常采用tracking-by-detection的方式,如下图所示:
通过检测器分别在 t − 1 t-1 t−1和 t t t帧将所有的目标检测出来,然后基于数据关联方式将 t t t帧的检测结果关联到 t − 1 t-1 t−1帧基于检测边界框构建的跟踪轨迹上去。也就是目标检测任务,同re-identification分别进行两者不能同时收益(注:这里应该说的是检测+deepsort的方式,re-identification是单独训练的网络)。在JDE和FairMOT中是将目标检测和Re-identification通过整个网络构建起来,通过多任务学习来同时收益。在前后帧的数据关联是基于kalman滤波以及匈牙利匹配实现。
Siamese networks在解决SOT问题中取得了重大突破,本文在SOT基础上,引入Query-Key机制来构建一个joint-detection-and-tracking框架,并指出这种框架是promising的。在SOT任务中是怎么利用query-key的方式来构建跟踪呢?
其中目标对象作为query,图像区域作为key,如上图所示,对于同一个对象在不同帧中的特征是高度相似的,这使得query-key的机制能够处理SOT问题。直接将普通query-key机制从SOT迁移到MOT任务会发生什么呢?
会出现很多检测不到的情况,也就是说我们上一帧的对象能够查询到,但是当前帧新出现的对象怎么查询到呢?也就是怎么能够更好地捕获新出现的对象呢?并且怎么将上一帧的检测结果传递到下一帧呢?也就是怎么设计Query-Key的机制来解决当前的问题呢?
(五) Method
TransTrack的整体思路
从上图中的疑问是:
- backbone 的 F t − 1 F_{t-1} F