CoTracker: It is Better to Track Together(论文阅读)

论文名:CoTracker: It is Better to Track Together
论文作者:Nikita Karaev et.al.
发表时间:2023-12
​论文地址:https://arxiv.org/abs/2307.07635
源码:https://github.com/facebookresearch/co-tracker

摘要

CoTracker的提出:论文提出了CoTracker,这是一种基于transformer的模型,能够在视频序列中联合跟踪密集点。与现有方法不同,CoTracker考虑了点之间的相关性,从而显著提高了跟踪的准确性和鲁棒性。

技术革新:CoTracker引入了几个技术创新,包括虚拟轨迹的概念,这使得CoTracker能够在单个GPU上联合跟踪多达70k点。此外,CoTracker在短窗口上进行因果操作(适用于在线任务),但通过在更长的视频序列上展开窗口进行训练,从而实现并显著提高了长期跟踪性能。

跟踪性能:论文展示了CoTracker在定性和定量上的跟踪结果。在定性结果中,即使在点被遮挡或离开视野的情况下,CoTracker也能长时间跟踪点。在定量结果中,CoTracker在标准基准测试中超越了所有最近的跟踪器,通常有相当大的优势。

代码和模型权重的可用性:论文提供了代码和模型权重的链接,以便其他研究人员和开发人员可以访问和使用CoTracker。

1.引言

点对应建立的重要性:在计算机视觉中,建立视频中点的对应关系是一个基础问题,对于许多下游任务都是必要的。这涉及到在包含动态对象和移动摄像机的视频序列中,确定同一物理点在所有其他帧中的位置。

现有方法的局限性:现有的最先进方法通常独立地跟踪点,忽略了它们之间的相关性。这些方法通常专注于跟踪稀疏的点集,并且将它们视为统计独立的。

2.相关工作

光流估计(Optical flow):介绍了光流估计的发展历程,从早期基于颜色恒常性方程的方法到现代使用深度学习的方法。特别提到了FlowNet和DCFlow等深度学习模型,以及它们在后续工作中的使用。

多帧光流(Multi-frame optical flow):讨论了将光流估计扩展到多帧的方法,包括传统方法如卡尔曼滤波,以及现代方法如RAFT的多帧应用和VideoFlow。

联合跟踪(Joint Tracking):提到了早期手工设计的联合跟踪器,以及现代深度学习架构在多对象跟踪方面的应用,尽管这些工作主要集中在对象跟踪而非点跟踪。

跟踪任意点(Tracking any point):讨论了TAP-Vid和PIPs等方法,它们能够处理遮挡并重新启动跟踪,但存在一些限制,例如无法跟踪长时间被遮挡的点。

合成数据集的使用:讨论了合成数据集在训练跟踪器和光流估计器中的作用,因为它们提供了准确的注释,并且已经证明了能够泛化到真实世界数据。

3.CoTracker

算法解析

目前主流的运动跟踪方法主要有两类:一个是光流法,即直接估计视频帧中所有点的瞬时速度,但是很难估计长期运动(尤其是遇到遮挡和相机帧率低的时候)。另一个是跟踪法,即选择有限点直接在连续时间上进行跟踪,但是没有利用同一物体上不同点的相互作用关系。而CoTracker就同时利用了两种方法的思想:使用Transformer来建模同一物体上点的相关性,并且使用滑动窗口来跟踪超长视频序列!CoTracker的输入是视频和可变数量的轨迹起始位置,输出是整条轨迹。注意,网络的输入可以是视频序列中的任意位置和任意时间!整篇论文其实没有特别多的数学推导,但是文章是思想很巧妙。CoTracker的具体原理如下。首先假设点是静止的来初始化点坐标P,然后使用CNN来提取图像特征Q,为了节省显存,图像特征为原图的1/32大小,同时还会加上一个标记v表示目标是否被遮挡。之后,输入token(P,v,Q)就被馈送到Transformer中进行相关性建模,得到输出token(P’,Q’)表示更新后的位置和图像特征。

  • 输入帧(input frames It)

    • 输入是一系列视频帧,从It到It+n​。
    • 视频帧中有多个目标需要跟踪。
  • 起始位置(starting locations P)

    • 这些是需要跟踪的目标的初始位置。
    • P的维度是(N,2),其中N是目标的数量,2代表每个目标的位置坐标(x, y)。
  • 卷积神经网络(CNN)

    • 每一帧通过CNN提取特征,生成特征图(image features ϕ(It))。
    • 这些特征图表示为彩色的热图,每个像素包含特征信息。
  • 特征广播

    • 起始位置P在特征图中进行双线性插值,得到起始位置在特征图上的表示。
    • 这些位置被广播成与特征图相同的维度,用于后续的处理。
  • 跟踪特征(track features Q)

    • 初始化跟踪特征Q,维度是(N,d),其中d是特征维度。
    • Q通过特征图中的起始位置P提取。
  • 滑动窗口处理(sliding window processing)

    • 使用滑动窗口对特征图进行处理,每个窗口包含连续的多个帧。
    • 在每个滑动窗口中,跟踪特征Q随着时间进行更新,以捕捉目标的运动。
  • 估计的轨迹(estimated tracks P^)

    • 最终输出是估计的轨迹P^,维度是(T′,N,2),其中T′是时间步数,N是目标数量,2代表每个目标的位置坐标。
    • 这些轨迹表示目标在视频中的运动路径。

总的来说,CoTracker架构通过卷积神经网络提取视频帧的特征,并使用滑动窗口机制跟踪目标的运动。起始位置和跟踪特征被用于估计目标在视频中的轨迹。这种方法可以高效地跟踪多个目标,并生成精确的运动路径。

CoTracker的亮点在于设计了滑动窗口和循环迭代来进行长视频的跟踪。对于长度超过Transformer所支持的最大长度T的视频序列,会使用滑动窗口进行建模。滑动窗口的长度为J=⌈2T′/T-1⌉,并且对于每个滑动窗口,会进行M次迭代。也就是说总共有JM次迭代运算。对于每一次迭代,都会对点的位置P和图像特征Q进行更新。需要注意的是,这里的标记v并不是通过Transformer来更新的,而是在M次迭代结束以后根据计算结果更新的。还有一个unrolled learning是啥意思呢?这里主要说的是针对半重叠窗口的学习方式。由于这种学习方式不会导致计算成本的大幅增加,因此理论上CoTracker可以处理任意长度的视频序列。此外unrolled learning可以跟踪后出现在视频中的点。

算法实现过程

初始化跟踪轨迹(Initialized Tracks)

  • 输入视频序列的初始帧(或多帧)用于初始化跟踪轨迹。这些轨迹包括目标的位置和特征。

迭代更新(Iterative Updates)

  • 在每个迭代步骤中,更新轨迹的位置和特征。总共有M次迭代更新。

特征提取(Feature Extraction)

  • 从视频帧中提取相关特征。通过一个卷积神经网络(CNN)来提取特征映射φ(I_t),用于后续的匹配和关联。

相关性特征计算(Correlation Features Calculation)

  • 计算多个尺度上的相关性特征C^(m)。这些特征用于捕捉对象之间的关系和匹配度。

位置预测与特征更新(Position Prediction and Feature Update)

  • 根据初始预测位置P̂^(0)和特征Q^(0)进行后续帧的预测和更新。更新后的轨迹位置和特征用于下一次迭代。

跨轨迹/时间注意力机制(Cross-track/Time Attention Mechanism)

  • 使用Transformer网络的跨轨迹/时间注意力机制来整合不同轨迹和时间帧的信息,提高预测的准确性和一致性。
  • Transformer模块进行6次迭代更新,整合来自不同时间和轨迹的特征。

输出结果(Output Results)

  • 最终输出估计的轨迹和更新后的特征。这些结果包括每个目标在不同帧中的位置和特征。

符号含义

  • I_t:当前帧的图像数据。
  • φ(I_t):通过卷积神经网络提取的帧特征。
  • P̂^(m):第m次迭代更新后的预测点位置。
  • Q^(m):第m次迭代更新后的轨迹特征。
  • C^(m):第m次迭代中计算的相关性特征,在S个尺度上计算。
  • ΔP̂:每次迭代更新后的预测位置增量。
  • ΔQ:每次迭代更新后的特征增量。
  • :预测的目标可见性,在最后一次迭代后计算。

详细步骤

  1. 输入处理

    • 输入视频序列的初始帧被处理以初始化跟踪轨迹,初始轨迹包括目标的位置和特征。
  2. 特征提取

    • 对每帧图像I_t,通过卷积神经网络提取特征映射φ(I_t)。
  3. 相关性特征计算

    • 使用多尺度相关性计算特征C^(m),这些特征帮助捕捉目标之间的关系。
  4. 迭代更新

    • 初始的轨迹位置P̂^(0)和特征Q^(0)被输入,每次迭代更新后计算新的轨迹位置P̂^(m)和特征Q^(m)。
    • 在每次迭代中,利用相关性特征C^(m)和轨迹特征Q^(m)进行位置预测和特征更新。
  5. 跨轨迹/时间注意力机制

    • 使用Transformer网络进行跨轨迹和时间的注意力机制,整合不同时间帧和轨迹的信息,提高预测的准确性。
    • Transformer网络进行6次迭代,每次迭代都在跨时间和轨迹的信息上进行整合和更新。
  6. 输出结果

    • 最终输出估计的轨迹和更新后的特征,包括目标在每个帧中的位置和特征信息。

 

4.实验

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值