本文介绍一下我们最近的两篇系列工作:
TAPTR: Tracking Any Point with Transformers as Detection(收录ECCV 2024)
TAPTRv2: Attention-based Position Update Improves Tracking Any Point
主页:
https://taptr.github.io
代码:
github.com/IDEA-Research/TAPTR
TAPTR:
https://arxiv.org/abs/2403.13042
TAPTRv2:
https://arxiv.org/abs/2407.16291
TAPTR(收录ECCV 2024)
图1. TAPTR的网络架构图。
如图1所示,我们首先提出了TAPTR这个简单高效的网络架构。与前人的工作不同,我们不再将每个被追踪点的各种特征 (包括语义特征、光流、光流的映射、可见性、cost-volume等) 混为一谈,然后一股脑地送入到网络中进行处理,使得对点追踪的建模黑盒化。在TAPTR中,我们首次提出将每个要被追踪的点都清晰地看作是point-level的visual prompt,而TAP任务则可以被看作是从视频的每一帧中将这个visual-prompt所指代的点给检测出来。这使得我们对追踪点的建模十分清晰,同时基于前人对检测任务的详细研究也使得整个架构简单且高效。TAPTR可以被大致地分为三个阶段,接下来我会按次序进行讲解。
第一个阶段为准备阶段。首先是对video中每一个frame的特征图进行提取。这里我们使用的是一个ResNet以及一个Transformer Encoder。在这之后,我们需要为每一个被追踪点获取一个能够准确描述该点的特征。为了方便描述,不失一般性的,我们在这里假设我们只需要追踪一个点。在TAPTR中,我们会在被追踪点开始被追踪的位置l_e进行双线性插值从而采样出描述该点的特征f_e。为了将被追踪点从每一帧中检测出来,我们需要在每一帧 都构建属于该被追踪点且负责将该点检测出来的point-query。我们将这些point-query初始化为 (l_e, f_e).
由于tracking-any-point任务与optical flow estimation任务的相似性,我们将在optical flow以及前人工作中被验证十分有效的cost-volume (有些工作也称其为correlation map) 也放入到我们的framework中。为了构建每一个点的cost-volume,我们将每一个被追踪点的初始特征f_e与每一帧的特征图进行点乘。(由此可见,随着被追踪点的数量以及输入图像的增大,这里的cost将会急速增高,这也是我们v2版本致力于解决的问题之一)
第二个阶段是通过我们的point-decoder将被追踪点在各个帧中检测出来。在point-decoder中,主要包含四个部分。由于cost-volume提供了最基础的被追踪点与图像的相似度关系,为被追踪点的检测提供了最基本的感知,我们首先会通过cost-volume aggregation模块将point query和cost-volume进行交互。接着,我们也会将point query与视频图像的深度特征图之间通过cross-attention进行交互从而补充更加详细的几何结构信息。接着,在同一帧内的所有point query之间会互相交互,从而扩大各个point query的感受野,提供更加丰富的上下文信息。此外,我们会将属于同一个被追踪点的在各个frame下的point query在temporal-attention中互相进行交互,从而补充时序信息。每一个point query最终都会经过content updater以及position updater来更新它的语义特征、位置以及可见性。
第三阶段:由于一个视频通常都很长,为了节省计算资源,同时也是为了适配不同长度的视频,在TAPTR中我们使用滑动窗口的策略。在每一次forward的时候,我们仅仅需要将所有点在某一个window内的视频帧中检测出来即可。检测结果将会通过window post-processing模块更新到完整的trajectory中。当滑动窗口滑动过整个视频之后,我们的追踪任务也就完成了。
表1. TAPTR与其他方法的性能对比。
我们在TAP-Vid benchmark上对TAPTR的性能进行了测试,结果如表1所示。可以看到,TAPTR在各个数据集中都达到了最优的性能,以及最快的速度。
表2. TAPTR的消融实验。
由于TAPTR是TAP任务的baseline工作,如表2所示,我们提供了丰富的ablation实验,验证了TAPTR中各个模块的有效性来作为后续工作的参考,从而方便后续的研究工作。
TAPTRv2
正如我们上文对TAPTR的讲述中所提到的那样。受optical flow的影响,现有的方法,包括TAPTR,都十分依赖cost-volume。这样的依赖不仅仅会导致额外的计算量(尤其是在被追踪点数以及视频的分辨率较大时),还会污染我们的point-query的语义特征。
但是,cost-volume却对TAPTR的性能有着很大的影响。因此,在TAPTRv2中,我们主要探究了:1. cost-volume为什么work?2. 能否有更加轻量化地方式来得到cost-volume或者它的等价替代者?3. cost-volume或者它的代替者要怎么被使用才能不污染我们的point-query?
表3. cost-volume对domain gap的缓解作用的实验证明。
如表3所示,我们发现cost-volume真正起作用的原因可能是在于它对domain gap的缓解作用。
图2. 在APU帮助下的TAPTRv2的decoder层。
我们认为,cost-volume与注意力机制中的注意力有着本质的相似性。因此我们可以用attention value来作为cost-volume的替代者。同时,为了防止其污染point-query,我们不再简单地将其融入到point-query的语义特征中,而是将其直接转化成一个对point-query的位置的一次更新。为此,如图2所示,我们提出了Attention-based Position Update (APU) 。
图3. TAPTRv2的架构图。
图4. TAPTRv2、TAPTR以及前人的工作的方法的对比。
如图3以及图4所示。在APU的帮助下,我们不仅仅能够在不污染point-query的情况下保留原本的domain gap的缓解能力,同时,我们也无需再额外计算cost-volume,也无需在decoder中加入额外的cost-volume aggregation操作了。整个模型十分的简洁高效。
表4. TAPTRv2与其他方法在性能上的对比。
此外,如表4所示,在保持了对domain gap的缓解能力并解决了point-query被污染的问题之后,TAPTRv2相比于TAPTR在各项指标上有了进一步的提升。