Towards Generalizable Multi-Object Tracking—迈向可推广的多目标跟踪
原标题:Towards Generalizable Multi-Object Tracking
论文链接:https://arxiv.org/pdf/2406.00429
代码链接:https://github.com/qinzheng2000/GeneralTrack.git
作者单位:西安交通大学 Wormpex AI Research 伊利诺伊大学芝加哥分校
文章的整体概括:本文提出了一种点到实例关系(point-wise to instance-wise relation)框架,用于多目标跟踪,即GeneralTrack,该框架能够在不同场景中进行泛化,同时无需平衡运动和外观。得益于其卓越的通用性,本文提出的GeneralTrack在多个基准测试中达到了最新的性能,并展示了域泛化的潜力。
摘要总结
-
有效的跟踪器应该在不同场景中表现出高度的通用性,现有的跟踪器难以兼顾所有方面,或需要通过假设和实验来定制特定场景的关联信息(运动和/或外观),导致解决方案过于狭隘,通用性有限。
-
本文探讨了
影响跟踪器在不同场景中泛化能力的因素
,并将其具体化为一组跟踪场景属性
,以指导设计更具通用性
的跟踪器。 -
提出了一种逐点到实例关系跟踪框架,用于多目标跟踪,即GeneralTrack,该框架能够在不同场景中进行泛化,同时无需平衡运动和外观。重点指出的是具有较高的普遍性通用性
解读:从摘要中分析出论文提出的主要的创新点目测应该包括两个方面:分析阻碍现有跟踪器通用性的因素,然后提出了点到示例的通用的跟踪框架。
引言与相关工作
MOT作为一项基本的任务收到了越来越多的关注。但是将其泛化到不同的应用场景也存在着许多的困难。存在两种常用的范式
- TBD范式:
- tracking-by-regression范式:基于深度学习的回归跟踪方法(这个方法自己不太了解感觉类似是基于Transform的那种通过向量查询的跟踪方式。)论文中说TbR 方法还进行逐帧对象检测,但用每个轨迹到其新位置的连续回归来替换数据关联是现在主导的范式。
现实中的应用场景具有很强的复杂性,包括了图中的几个方面
当前的 MOT 方法在很大程度上依赖于广泛的先验知识或复杂的工程工作才能在特定场景中表现出色,但它们很难有效地推广到不同的情况。 这种限制极大地限制了它们在实际应用中的实用性。
我们说这种很难得有效推广它主要是集中在哪些方面呢?
-
当遇到不规则运动和目标形状或位置的大幅变化时,以运动为主导的方法(卡尔曼滤波相关的运动特征)很脆弱。
-
以外观为主导的方法(reid网络和检测器)在面临遮挡时容易失败,例如,由于密集的人群或庇护所、光线变化和小目标造成的遮挡。
总结为两点:遮挡和形变导致现有的跟踪方法在生成的权重矩阵或者代价矩阵那里,需要针对不同的场景来调整两个因素的权重值信息。
首先对跟踪场景进行深入分析,以深入了解为什么特定跟踪器的性能在不同场景中存在显着差异 ? ——运动复杂度、变化幅度、目标密度、小目标、帧率
我之前在博客中写的追踪器在运动主导和外观主导的方法都有各自不擅长的属性。
而论文中提出的GeneralTrack,可以泛化到不同的场景,无需手动平衡运动和外观信息。看起来是很厉害的一代新型的跟踪器。——特别是,我们的 GeneralTrack 在 BDD100K 上排名第一。
这里补充说明一下数据集的信息: BDD100K是伯克利发布的开放式驾驶视频数据集,其中包含10万个视频和10个任务(因为把交通灯的颜色也区分了出来,实际上是13类分类任务),目的是方便评估自动驾驶图像识别算法。
-
捕获点的关系并将其转换为示例的关系。细粒度的特征加上细到粗的转换可以应对密集目标和小目标
-
信任多尺度点区域关系(在点跟踪方法上的改进)
-
我们设计了一个层次关系聚合范例来关联轨迹和检测 (在关联部分的创新)
主要贡献总结:
-
本文分析了阻碍现有跟踪器通用性的因素,并将其具体化为跟踪场景属性,以指导跟踪器的设计。
-
一种用于多目标跟踪的“点到实例关系”框架。该框架首先通过多尺度4D相关体构建点对点的关系,然后通过一种新颖的“点-部分-实例”层次结构将其聚合为实例级关联。本文的新框架能够解决多目标跟踪中的若干基本挑战。具体来说,点对点的相关建模可以处理由密集和小目标引起的实例级表示损坏;多尺度点区域关系的构建可以应对严重的运动复杂性、不同的位置变化和帧速率;层次聚合则能够应对形状变化。
-
取得了良好的实验数据。
相关工作概述
-
TBD
-
Dense Flow and Correspondences密集光流相关。
- FlowNet
- RAFT
- MatchFlow
-
4D Correlation Volume 通常用于捕获像素对的视觉相似性,并作为支持密集流和对应估计的核心组件
-
从构建低级视觉的像素到实例的关系的角度来解决跟踪任务。
核心方法论
Analysis ofMOT Scenarios(MOT的场景分析)
- Motion Complexity:场景内目标运动的不规则性和不可预测性。 运动越不规则和不可预测,其复杂性就越大。
- Variation Amplitude:反映了目标的可变性,包括形状和位置的变化。
- Target Density:反映了场景中人群的密度,隐含地反映了人群内部的遮挡程度。
- Small Target
- Frame Rate: 输入视频流一秒捕获的帧数这里自己理解的是影响跟踪的速度,决定跟踪器的性能。(每个对象的一帧移动的速度。)
五个数据集上对这些属性进行了彻底的测量,并形成了如图2所示的跟踪场景属性图。这里自己感觉这个图还挺具有创新性的。
对应论文中的图2. 跟踪场景属性图。在蓝色区域占比较大的场景中,外观表现较差;在白色区域中,运动表现较差。
对这个图的总结说明体现在了下面的几个方面:
-
以运动和外观为主的方法可能分别在白色和蓝色区域表现不佳。 特别是运动规律、高帧率、小运动幅度的行人跟踪场景,例如MOT17、MOT20
-
用于跟踪具有高度复杂运动模式的场景,例如 DanceTrack和SportsMOT,外观比运动更有效。
-
BDD100K由于帧率低、运动幅度大,无法提供可靠的运动信息。
这里其实是十分有意义的,cvpr的这一篇论文通过分析各个数据集的属性可以更好的指导后面的跟踪器的实验。在不同的数据集上我们更应该去倾向哪个比例。
GeneralTrack的整体概述
整个方法遵循的是TBD的范式。
在详细的介绍完了第一个创新点之后,论文就给出了关于它自己所提出的通用的点跟踪器的详细的一个介绍。
- 对于在线视频流,我们首先用YOLOX处理当前帧t 来去获得检测的结果。
For online video streaming, we first process the
current frame t with YOLOX
我们将检测的结果表示为:在帧 t 中包含 N 个检测框,其中 dti 表示检测边界框的位置和大小。
D t = { d i t } i = 1 N \mathcal{D}^{t}=\left\{\mathbf{d}_{i}^{t}\right\}_{i=1}^{N} Dt={dit}i=1N
- 在定义完成检测框之后我们将轨迹的集合表示为:
T = { T j } j = 1 M \mathbb{T}=\left\{\mathcal{T}_{j}\right\}_{j=1}^{M} T={Tj}j=1M
其中Tj 是一个身份为 j 的 tracklet我们将其定义为:其中 lt j 是第 t 帧中的位置,t0 是初始化时刻。
T j = { l j t 0 , l j t 0 + 1 , … , l j t } \mathcal{T}_{j}=\left\{\mathbf{l}_{j}^{t_{0}}, \mathbf{l}_{j}^{t_{0}+1}, \ldots, \mathbf{l}_{j}^{t}\right\} Tj={ljt0,ljt0+1,…,ljt}
这里简单的解释并补充一下:哪些虚的T是我们整个视频检测完成之后的轨迹集合。里面每一帧轨迹的分布从第j=1个第M个。对于里面的其中一个轨迹j我们给出从t0直达结束帧的表示。
- 给出了整体过程的一个概述
-
给定当前帧 t,我们获得其检测 Dt 和直到帧 t−1 为止的 M 个轨迹 T 的集合。
-
然后,我们通过构建帧 t − 1 和帧 t 之间的逐点关系,并将它们转换为实例关联,
将现有轨迹 T 与当前检测 Dt 相关联
。新的关联方法
论文中将整个过程分为了三个阶段。
- 阶段一我们使用特征关系提取器通过 4D 相关体为帧 t − 1 中的每个点构建与帧 t 的全局密集关系。
为每一个点,自己的理解就是t-1帧的全像素点,与之后的t帧中的每一个点参与点积运算。构建全像素的4d相关体。
- 阶段二:我们将全局关系转化为多尺度点区域关系,并形成第t-1帧的关系图,其中每个点代表其运动趋势。
也就是使用多尺度的点区域关系来进行表示。
- 根据层次关系聚合以关联轨迹和检测。(这里的层次的聚合主要指的可能是通过点来恢复出框的关系完成检测框和跟踪框之间的关联)
下面的三个阶段就细化为三个部分进行详细的讲解。
Feature Relation Extractor
-
给定一对连续的 RGB 图像,It−1 和 It
-
卷积神经网络将它们编码成两个较低分辨率的密集特征图,表示为 Ft−1,Ft ∈ RH×W×D 其中H、W分别是图像高度和宽度的1/8,D是特征尺寸。
-
这里和我自己印象中的RAFT的下采样8倍基本是一致的情况。
4. 在下采样获得了Ft−1,Ft 之后通过构建它们之间的完整相关量来计算全局稠密关系。相关量 Cglobal 通过所有特征向量对之间的点积形成,如下所示:
Cglobal中的元素cijkl表示帧t-1中的第(i,j)个特征点与帧t中的第(k,l)个特征点之间的关系。(当目标太小或被遮挡时,实例级特征会被损坏,而在这种情况下,相邻帧之间的逐点关系是鲁棒的。)
C global ( F t − 1 , F t ) ∈ R H × W × H × W , c i j k l = ∑ d = 1 D f i j d t − 1 ⋅ f k l d t \begin{array}{l} \mathbf{C}^{\text {global }}\left(\mathbf{F}^{t-1}, \mathbf{F}^{t}\right) \in \mathbb{R}^{H \times W \times H \times W}, \\ c_{i j k l}=\sum_{d=1}^{D} f_{i j d}^{t-1} \cdot f_{k l d}^{t} \end{array} Cglobal (Ft−1,Ft)∈RH×W×H×W,cijkl=∑d=1Dfijdt−1⋅fkldt
这里和RATF构建4d成本体积的部分计算初步感觉基本上也是一致的情况。
Multi-scale Point-region Relation(多尺度的点域关系)
这部分是为了使跟踪器适应各种帧速率以及位置变化的幅度。(核心的地方。)
论文中的图4. 相关金字塔上的多尺度点区域关系。随着下采样,搜索区域逐渐变大(红色、绿色和蓝色框)。图中给出了两个示例点a和b,其中绿色点和蓝色点分别代表帧 t−1 和帧 t 中的目标点。(a) 汽车的车灯。汽车移动速度很快,位移很大,其在帧t中的关系点直到最大尺度的层次才被捕捉到。(b) 人的头部。由于人的移动相对较小,其关系可以在金字塔的第一层(最高分辨率)获得。这样的关系搜索范式可以灵活适应大位移和小位移,同时计算资源消耗较低。
-
Cglobal 包含密集的全局关系,其中存在大量无效关系,这会导致巨大的计算成本和缓慢的收敛速度。
-
为了跟踪器的灵活性和计算简单性,我们将全局关系转换为多尺度点区域关系。
-
受多尺度4D体积的启发,我们对相关体积进行下采样,并通过池化最后两个维度获得相关金字塔如下所示:(这里和RATF保持高分辨率的做法下采样最后两个维度也基本上是一致的。)
C s = pooling ( C s − 1 ) , C s ∈ R H × W × H / 2 s × W / 2 s \mathbf{C}_{s}=\operatorname{pooling}\left(\mathbf{C}_{s-1}\right), \mathbf{C}_{s} \in \mathbb{R}^{H \times W \times H / 2^{s} \times W / 2^{s}} Cs=pooling(Cs−1),Cs∈RH×W×H/2s×W/2s
其中 s 是金字塔的层数,C0 初始化为 Cglobal这组体积提供了不同尺度下从帧 t − 1 中的点到帧 t 中每个区域的关系。
- 为了减少无效关系,我们根据:
{ C s } s = 0 S \left\{\mathbf{C}_{s}\right\}_{s=0}^{S} {Cs}s=0S
设置一个基于中心的关系搜索区域,如下所示:(这里和RATF里面的邻域半径搜索的思想也基本上是保持一致的。)
P ( x ) s = { x / 2 s + r : ∥ r ∥ ≤ R } \mathcal{P}(\mathbf{x})_{s}=\left\{\mathbf{x} / 2^{s}+\mathbf{r}:\|\mathbf{r}\| \leq R\right\} P(x)s={x/2s+r:∥r∥≤R}
x ε Z2 是 Ft−1 中的坐标,r ε Z2 是相对于相关金字塔中第 s 层中的点 x/2s 的位移。
它这里说的每一层的一个搜索的区域,应该就是对应于不同尺度下的三个框的搜索大小。
所以:我们利用P(x)s在相关金字塔{Cs}S s=0上搜索关系,形成多尺度点区域关系图。
O ∈ R H × W × ( S + 1 ) ( 2 R + 1 ) 2 \mathbf{O} \in \mathbb{R}^{H \times W \times(S+1)(2 R+1)^{2}} O∈RH×W×(S+1)(2R+1)2
- 其中函数search表示在每一层上用P(x)s进行搜索操作。
O s = search ( C s , P ( x ) s ) , \mathbf{O}_{s}=\operatorname{search}\left(\mathbf{C}_{s}, \mathcal{P}(\mathbf{x})_{s}\right), Os=search(Cs,P(x)s),
{ O s ∈ R H × W × ( 2 R + 1 ) 2 } s = 0 S \left\{\mathbf{O}_{s} \in \mathbb{R}^{H \times W \times(2 R+1)^{2}}\right\}_{s=0}^{S} {Os∈RH×W×(2R+1)2}s=0S
是{Cs}S s=0中每一层的点-区域关系,它们在最后一个维度连接起来。O包含第t-1帧到第t帧中各点在各个方向、各个范围内的运动趋势。
不同层代表不同的位移尺度,同一层中的不同点代表不同的方向和幅度,可以适应各种帧速率 以及位置变化的幅度灵活
。
Hierarchical Relation Aggregation(层次关系聚合)
我们假设:在当前帧 t 中,检测集 Dt 包含 N 个检测框,轨迹集 T 包含 M 个轨迹。
关系图 O 将帧 t − 1 的逐点关系编码到帧 t 中的多尺度区域。
我们将逐点关系转换为实例关系,以构建轨迹检测关系矩阵 Prela ∈ RN×M 进行数据关联。(真正的含有明显的创新点的一个地方。)-通过检测矩阵来进行关联。
P rela ∈ R N × M \mathbf{P}^{\text {rela }} \in \mathbb{R}^{N \times M} Prela ∈RN×M
论文中提到了:为了解决实例的形状变化,我们将实例视为柔性体。 不像传统的运动或外观方法那样将实例视为刚体
补充多目标跟踪中的柔性体和刚体。
- 刚体是指在运动过程中,其形状和大小保持不变的物体。在目标跟踪中,刚体目标的运动通常包括平移、旋转和缩放等,但这些运动不会导致目标形状的变化。例如,交通车辆、大多数机械部件等都可以被视为刚体目标
- 柔性体或非刚体是指在运动过程中,其形状和大小可能会发生变化的物体。这种变化可能是由于目标自身的形变,或者是因为目标的姿态变化。例如,人体在运动过程中由于关节活动和身体姿态的变化,其形状会有所改变,因此可以被视为非刚体目标。
- 在实际应用中,根据目标的性质选择合适的跟踪算法。例如,对于车辆跟踪,可能更倾向于使用刚体跟踪算法;而对于人体跟踪,则可能需要使用能够处理非刚体形变的算法。
- 我们通过点-部分-实例层次结构逐步聚合关系。
对于Dt中的第i个检测dti和T 中第 j 个轨迹的位置 lt−1j。
2. 我们将实例 dt i 和 lt−1 j 分为 v×v 部分。 我们将 RoIAlign 应用于 O 上的 lt−1 j 并获得第 j 个轨迹的部分关系。(其中 v × v 是 RoIAlign 大小D 是特征维度)
O j ∈ R v × v × D , \mathbf{O}_{j} \in \mathbb{R}^{v \times v \times D}, Oj∈Rv×v×D,
- 然后我们对 dt i 和 lt−1 之间每个部分的相对位置进行编码将其表示为(其中,其元素表示相应质心的位移)
E i j ∈ R v × v × 2 \mathbf{E}_{i j} \in \mathbb{R}^{v \times v \times 2} Eij∈Rv×v×2
- 连接 Oj 和 Eij 并对其应用卷积运算。 最后,我们通过多层感知(MLP)获得预测分数,如下所示:
p i j rela = MLP ( conv ( concat ( O j , E i j ) ) ) p_{i j}^{\text {rela }}=\operatorname{MLP}\left(\operatorname{conv}\left(\operatorname{concat}\left(\mathbf{O}_{j}, \mathbf{E}_{i j}\right)\right)\right) pijrela =MLP(conv(concat(Oj,Eij)))
这里我们就得到了最终的关联检测矩阵的结果了
最终,我们对Prela使用匈牙利算法并完成关联。 对于丢失的轨迹,我们使用卡尔曼滤波器来检索它们。
简单了解训练方法
训练我们选取视频中的两个连续帧作为训练样本
。 前向传播过程中使用两幅原始图像作为输入It−1和It,ground truth box分别作为T和Dt
两帧中的目标成对组合以预测轨迹检测关系 Prela,我们根据它们是否具有相同的身份来标记正或负。