ArTIST:Probabilistic Tracklet Scoring and Inpainting for Multiple Object Tracking

论文地址:链接

介绍

当前大多数的MOT都是DBT范式的,或者是JDE范式的,但是这些模型所作的工作就是检测框沿着视频帧进行的传播。并且由于现在的评价指标,例如MOTA,很大程度上和检测的质量有关,所以很多模型的策略就是寻找到更好的检测器。

但是这种帧之间的传播策略无法很好的解决遮挡问题,因为遮挡时长程的信息交互问题。虽然有的模型引入了运动模型,但是大多数的运动模型都是固定的或者说是一个单峰过程。有些模型则是使用运动估计来做一个过滤的工作。对于复杂的运动进行固定的追踪建模总是不合适的。

这里作者就提出了一个强调了开发一个随机运动模型的重要性,因为这可以更好的帮助模型进行长程信息的处理。为此作者引入了一个随机自动回归运动模型(a stochastic autoregressive motion model)来学习复杂的自然轨迹的多模态分布,允许对一系列边界框位置和相应的tracklets关联可能性进行评估。

总而言之,其贡献有三:

  1. 引入随机自动回归模型参照自然运动为tracklet打分。
  2. 由于学习到了多模态的人类自然运动的分布,它能够产生tracklet的多种合理假设并且填补包缺失检测的tracklet。
  3. 这种随机运动模型能够更好的长程的保留ID。

由于这种模型的特点,因此他在IDF1IDsMT方便提升指标明显。

方法

本方法是一个Online方法,接下来先定义概念以及ArTIST的总体概述,最后详细介绍各个成分。

概念

该方法沿用DBT的范式,考虑一个视频 T T T帧,每一帧提供一个由检测器获得的检测集合。这会返回一个整个视频的检测集合,定义为: D 1 : T = { D 1 , D 2 , … , D T } \mathcal{D}^{1: T}=\left\{D^{1}, D^{2}, \ldots, D^{T}\right\} D1:T={D1,D2,,DT},其中 D t = { d 1 t , d 2 t , … } D^{t}=\left\{d_{1}^{t}, d_{2}^{t}, \ldots\right\} Dt={d1t,d2t,}是在时刻 t t t的所有检测集合, d i t ∈ R 4 d_{i}^{t} \in \mathbb{R}^{4} ditR4(例如左上角坐标( x , y x,y x,y),和宽高 w , h w,h w,h)。利用第一帧的检测 D 1 \mathcal{D}^1 D1来初始化tracklets T \mathbb{T} T。第二帧开始连接检测到tracklets上。过程可能会创建新的tracklets,也有可能被终结,新创建的整合进 T \mathbb{T} T

T = { T 1 s 1 : e 1 , T 2 s 2 : e 2 , … , T m s m : e m } \mathbb{T}=\left\{\mathcal{T}_{1}^{s_{1}: e_{1}}, \mathcal{T}_{2}^{s_{2}: e_{2}}, \ldots, \mathcal{T}_{m}^{s_{m}: e_{m}}\right\} T={T1s1:e1,T2s2:e2,,Tmsm:em} T j s j : e j \mathcal{T}_{j}^{s_{j}: e_{j}} Tjsj:ej表示第 j j j个ID轨迹从 s j s_j sj存活到 e j e_j ej,定义 T j s j : e j = { d Π j s j , d Π j s j + 1 , … , d Π j e j } \mathcal{T}_{j}^{s_{j}: e_{j}}=\left\{d_{\Pi_{j}}^{s_{j}}, d_{\Pi_{j}}^{s_{j}+1}, \ldots, d_{\Pi_{j}}^{e_{j}}\right\} Tjsj:ej={dΠjsj,dΠjsj+1,,dΠjej} d Π j t d_{\Pi_{j}}^{t} dΠjt为被分配到tracklet T j s j : e j \mathcal{T}_{j}^{s_{j}: e_{j}} Tjsj:ej t t t帧的检测获得或者补充的bbox。

对于每个tracklet T j s j : e j \mathcal{T}_{j}^{s_{j}: e_{j}} Tjsj:ej,定义一个可学习的内在表示 I j s j I_{j}^{s_{j}} Ijsj,来捕获所有其他寿命与该tracklet在与时间范围 [ s j , e j ] [s_j,e_j] [sj,ej]上重叠的tracklets的潜在表示。同时定义 z j t z_j^t zjt捕获 T j s j : t \mathcal{T}_{j}^{s_{j}:t} Tjsj:t的隐藏表示。下面会详细介绍。

ArTIST概述

在这里插入图片描述
对于每个视频帧,ArTIST都要依赖两个步骤:1.在现有的tracklet中对检测进行评分;(如图1-middle所示)2. 将检测分配给tracklet(如图1-right所示),从而更新tracklet。

具体看,对于一张时刻t的输入帧,如图1中第 t = 20 t=20 t=20帧;一个前 t − 1 t-1 t1帧的tracklets集合,例如 T 1 1 : 10 \mathcal{T}_{1}^{1:10} T11:10 T 2 4 : 19 \mathcal{T}_{2}^{4:19} T24:19 T 3 1 : 19 \mathcal{T}_{3}^{1:19} T31:19;一个在 t t t帧的检测集,如 d 1 20 d_1^{20} d120, d 2 20 d_2^{20} d220 d 3 20 d_3^{20} d320,展示位实心灰度框。我们对上次在时间 t − 1 t-1 t1分配检测的tracklet进行评分,如未遮挡tracklet,表示为 g a p = 0 gap=0 gap=0(如图1-middle所示),将这些tracklet称为活动的,将其他tracklet称为暂时活动的。

对于每个活动的tracklet如 T 2 4 : 19 \mathcal{T}_{2}^{4:19} T24:19,给定关于这个tracklet和与之交互的其他tracklet的信息,即 T 2 \mathcal T_2 T2 I 2 I_2 I2,ArTIST会计算下一个合理边界框( b b o x T 2 20 bbox^{20}_{\mathcal{T_2}} bboxT220)的概率分布,在这个概率分布下,评估所有的 t t t帧的检测结果 d i t ∈ D t d_{i}^{t} \in D^{t} ditDt

对于任意暂时存活的轨迹(如 T 1 1 : 10 \mathcal{T}_{1}^{1:10} T11:10),最后分配到检测的时间早于 t − 1 t-1 t1帧,会存在一个非0的gap。这里会对该轨迹进行一个填充,来填上gap,延伸至 t − 1 t-1 t1帧,以便认为是一个完全可见的tracklet。由于ArTIST评估的是一个多模态的自然运动的分布,所以会产生 S \mathcal S S个可能tracklet来填充这个gap,定义为 { T ^ 1 , 1 11 : 19 , … , T ^ 1 , S 11 : 19 } \left\{\widehat{\mathcal{T}}_{1,1}^{11: 19}, \ldots, \widehat{\mathcal{T}}_{1, S}^{11: 19}\right\} {T 1,111:19,,T 1,S11:19}(图1-middle)。然后会在 S \mathcal S S个候选中选择一个最好的填充tracklet来补全tracklet T 1 1 : 19 \mathcal{T}_{1}^{1:19} T11:19(上图为第二个假设)。然后将他认为是0 gap的tracklet并且计算对于下一个可能边界框分配的概率分布。

最后,如图1-right所示,从每个检测在所有tracklets下的概率分布的可能性来构建一个代价矩阵,并使用Munkres算法来优化分配矩阵。然后使用所有的分配成功的检测来更新所有的tracklets,下一个时间点重复以上过程。

ArTIST结构

ArTIST旨在学习多模态的运动分布,然后对tracklet进行更好的选择。ArTIST从在每个时间步估计的多模态分布进行多项式抽样,来生成一个tracklet的多个假设的成分。

一个tracklet T j s j : t \mathcal{T}_{j}^{s_j:t} Tjsj:t(t为当前时间帧)在自动回归模型中的概率定义为:
p ( T j s j : t ∣ I j s j : t ) = p ( d Π j s j ∣ I j s j ) ∏ k = s j + 1 t p ( d Π j k ∣ d Π j < k , I j < k ) (1) p\left(\mathcal{T}_{j}^{s_{j}: t} \mid I_{j}^{s_{j}: t}\right)=p\left(d_{\Pi_{j}}^{s_{j}} \mid I_{j}^{s_{j}}\right) \prod_{k=s_{j}+1}^{t} p\left(d_{\Pi_{j}}^{k} \mid d_{\Pi_{j}}^{<k}, I_{j}^{<k}\right) \tag{1} p(Tjsj:tIjsj:t)=p(dΠjsjIjsj)k=sj+1tp(dΠjkdΠj<k,Ij<k)(1)

d Π j s j d_{\Pi_{j}}^{s_{j}} dΠjsj为在 t t t帧分配给轨迹 T j \mathcal{T}_{j} Tj的检测, I j s j I_{j}^{s_{j}} Ijsj定义为从 t t t帧与 T j \mathcal{T}_{j} Tj共生的其他tracklets计算得来的相互作用的表示。

每个检测被表示为连续的边界框坐标,因此可以尝试使用过去帧的位置信息来回归初下一帧的位置。但是这么做的回归操作不会返回自然轨迹上的分布,且返回的轨迹位置信息是一个决定性的单一的固定值,无法很好的反应运动的随机性。

因此,作者受到PixelRNN启发,提出离散化边界框的位置空间,从而将 p ( T j s j : e j ) p(\mathcal{T}_{j}^{s_{j}: e_j}) p(Tjsj:ej)建模为一个离散分布,等式1中的每个条件分布建模为带softmax层的多项式(分类)分布。不同于PixelRNN式的通过数据独立量化来离散空间从而生成模型,该方法会通过相邻帧之间的运动速度( δ x , δ y , δ w , δ h δx, δy, δw, δh δx,δy,δw,δh)的聚类来定义一个数据独立的离散值的集合,并且会和图片宽高进行归一化处理,这使得输出空间具有平移和缩放的不变性。实际操作中会使用无参的k均值聚类来获得 K K K个聚类,每个聚类中心认为是一个离散的运动类。

ArTIST的结构如下图,上部分说明了ArTIST训练时的总览。总体来说就是训练期间会将所有的存活的tracklets T \mathbb{T} T作为输入,和一个相互作用学习的表示(红色区域)一起联合学习每个tracklet的分布。为了预测下一帧的边界框位置的概率分布,使用负对数似然损失函数训练模型,同时使用一个移动代理自动编码网络(MA-Net),它被训练来重建所有相互作用的tracklet,整个训练过程就是最小化损失: L total  = λ L N L L + L r e c (2) \mathcal{L}_{\text {total }}=\lambda \mathcal{L}_{\mathrm{NLL}}+\mathcal{L}_{r e c}\tag{2} Ltotal =λLNLL+Lrec(2)

L r e c \mathcal{L}_{r e c} Lrec是均方差损失, λ \lambda λ是退火函数,一开始设置为0,更好的学习交互表示,逐渐提高到1,让两个模型等价训练。

下图下部分显示,ArTIST依赖于一个循环残差结构来表示运动速度。每个时间戳 t t t,将一个运动速度表示 Δ T j t = ( δ x T j t , δ y T j t , δ w T j t , δ h T j t ) \Delta_{\mathcal{T}_{j}}^{t}=\left(\delta x_{\mathcal{T}_{j}}^{t}, \delta y_{\mathcal{T}_{j}}^{t}, \delta w_{\mathcal{T}_{j}}^{t}, \delta h_{\mathcal{T}_{j}}^{t}\right) ΔTjt=(δxTjt,δyTjt,δwTjt,δhTjt)和一个交互表示 I j t I_j^t Ijt作为输入。给定这些输入和上一帧计算的隐藏状态 z j t − 1 z_j^{t-1} zjt1,来预测一个在 t + 1 t+1 t+1帧上的运动速度的概率分布,如 p ( Δ T j t + 1 ∣ z j t − 1 , Δ T j t , I j t ) p\left(\Delta_{\mathcal{T}_{j}}^{t+1} \mid z_{j}^{t-1}, \Delta_{\mathcal{T}_{j}}^{t}, I_{j}^{t}\right) p(ΔTjt+1zjt1,ΔTjt,Ijt) z j t − 1 z_j^{t-1} zjt1携带所有过去帧的信息,近似于公式1的定义。

在这里插入图片描述

移动代理交互Moving Agent Interactions

一个有效的交互模型是可以提高网络追踪质量的,因为他人的行为也会影响目标的运动。这里作者使用运动代理网络(MA-Net)来进行操作。

MA-Net是一个用于学习重构可能和其他感兴趣tracklet发生交互的所有运动因子的tracklet的循环自动编码神经网络和一个重构所有给定压缩潜在表示的tracklet的解码器组成。

为了学习 T j \mathcal T_j Tj的分布,ArTIST需要一个不依赖数量和顺序的交互因子的表示。这里通过对所有交互因子的潜在表达的一个最大值聚合(max-aggregation)获得。取MA-Net编码器中最后一个循环块的隐藏状态作为 N I j N_{I_j} NIj个相互作用的代理,获得矩阵 R N I j × L \mathbb{R}^{\mathrm{N}_{I_{j}} \times L} RNIj×L,其中 L L L为隐藏状态维度。然后通过对第一个维度进行最大值池化获得 I j ∈ R L I_{j} \in \mathbb{R}^{L} IjRL

在测试和追踪过程中会去除MA-Net的解码器,只是用编码器计算出来的表示。(需要 I j I_j Ij

追踪得分

获得了训练好的ArTIST模型后,可以计算在时间 t t t的检测是tracklet T j T_j Tj的延续的可能性。对于给定的 T j T_j Tj的速度序列和 I j I_j Ij,模型评估出在时间 t t t处的边界框位置的可能性分布。结合估计分布,将检测的可能性作为tracklet-detection对的得分。

具体就是计算∆,如由和之前检测(或者过去的填充边界框)有关的目前任何检测造成的 x , y , w , h x,y,w,h x,y,w,h的变化的潜在速度。然后将最接近此∆的聚类中心估计的概率作为可能性。

实践中,假设边界框参数( δ x T j t , δ y T j t , δ w T j t , \delta x_{\mathcal{T}_{j}}^{t}, \delta y_{\mathcal{T}_{j}}^{t}, \delta w_{\mathcal{T}_{j}}^{t}, δxTjt,δyTjt,δwTjt, δ h T j t \delta h_{\mathcal{T}_{j}}^{t} δhTjt)的独立性。因此在每个帧会有四个聚类集合和四种可能性分布(上图下部分)。

通过对所有组成概率的乘积来计算这个边界框可能性:
p ( Δ T j t + 1 ∣ z j t − 1 , Δ T j t , I j t ) = ∏ ξ ∈ { x , y , w , h } p ( δ ξ T j t + 1 ∣ z j t − 1 , Δ T j t , I j t ) (3) p\left(\Delta_{\mathcal{T}_{j}}^{t+1} \mid z_{j}^{t-1}, \Delta_{\mathcal{T}_{j}}^{t}, I_{j}^{t}\right)=\prod_{\xi \in\{x, y, w, h\}} p\left(\delta \xi_{\mathcal{T}_{j}}^{t+1} \mid z_{j}^{t-1}, \Delta_{\mathcal{T}_{j}}^{t}, I_{j}^{t}\right)\tag{3} p(ΔTjt+1zjt1,ΔTjt,Ijt)=ξ{x,y,w,h}p(δξTjt+1zjt1,ΔTjt,Ijt)(3)
实验中,在对数空间进行操作,最后只要求和就好了。

轨迹填充 Tracklet Inpainting

考虑一个在过去几帧未匹配的检测,在当前帧寻找是否有合适的检测可以进行分配。为了计算新检测分配给他的可能性,我们需要过去帧的完整边界框序列,但由于之前未匹配成功,所以不存在这个完整的边界框。

为此,这里使用模型来为这个tracklet填充检测,如图1-middle中所示,通过对学习到的tracklet分布进行多模态采样。采样可以自动地进行,以创建一组不同的完整的观测序列和填充框,这反过来又允许我们对新的检测进行打分。

为了体现随机性,从概率分布中为整个序列采样 S S S个候选来进行填充,从而获得多个假设tracklets。

为了选择最有效的候选,使用一个tracklet rejection scheme(TRS)来进行去除候选:
如果一个候选被选中,计算这最后生成的检测框和所有当前场景的检测框之间的IoU,模型去选择最高IoU且超过阈值的候选。某些情况下,某个候选最后生成的边界框可能会和一个假检测重叠或者和另一个目标的检测进行重叠,为此这里会为所有候选持续预测1-2帧的边界框,且计算IoU。ArTIST选择IoU总和最大的候选。

但这种方法也不能保证所有的误检,例如一个属于其他tracklet的检测和这个候选的检测接近且运动方向一致。

分配

这里使用线性分配的Munkres算法,该算法依赖存储所有检测分配给tracklets的代价的代价矩阵 C \mathcal C C,该代价由ArTIST通过负对数可能性计算得到的。

定义 C i j t = − log ⁡ p ( ⟨ d i t , T j t ⟩ ) C_{i j}^{t}=-\log p\left(\left\langle d_{i}^{t}, \mathcal{T}_{j}^{t}\right\rangle\right) Cijt=logp(dit,Tjt),表示在 t t t时刻(帧)分配检测 i i i给tracklet j j j的负对数可能性。

Munkres算法通过解决 A ∗ = arg ⁡ min ⁡ A t ∑ i , j C i j t A i j t A^* = \arg \min _{A^{t}} \sum_{i, j} C_{i j}^{t} A_{i j}^{t} A=argminAti,jCijtAijt,返回关联的tracklet-detection对的索引, A t ∈ [ 0 , 1 ] N × M A^{t} \in[0,1]^{N \times M} At[0,1]N×M是分配概率矩阵, N N N个检测, M M M个tracklets。这个矩阵满足 ∀ i , ∑ j A i j t = 1 \forall i,\sum_{j} A_{i j}^{t}=1 ijAijt=1 ∀ j , ∑ i A i j t = 1 \forall j,\sum_{i} A_{i j}^{t}=1 jiAijt=1

为了降低对于填充的tracklets的置信度,这里运行Munkres算法两次,第一次只对那些在过去帧使用真的检测获得评分的tracklets,即非填充的tracklets进行计算,然后第二次对填充的tracklets和剩余未匹配上的检测进行计算。
在这里插入图片描述

实验

T和C代表不同的边界框回归方式:
在这里插入图片描述

在这里插入图片描述
在这里插入图片描述
消融实验:
在这里插入图片描述
在这里插入图片描述

  • 5
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 9
    评论
"Robot Programming by Demonstration: A Probabilistic Approach"(RPD)源码是以概率为基础的机器人示教编程方法的源代码。该方法通过展示给机器人示范操作,机器人可以学习并模仿这些操作,实现自主编程。 在该源码中,概率被用于建立机器人对示范动作的理解和学习能力。它通过概率模型来捕捉示范者的意图和行为模式,并帮助机器人从示范数据中进行推断和学习。 源码中可能包含以下部分: 1. 数据采集:通过传感器或摄像头等设备收集示范者的动作数据。 2. 数据处理:对示范数据进行预处理、分析和特征提取,以便机器人能够更好地理解示范者的动作。 3. 概率建模:使用概率方法建立示范者的行为模型,这可以是基于统计模型、贝叶斯推理或其他概率模型。 4. 推理和学习:利用示范者的行为模型,机器人可以从示范数据中进行推断和学习,并生成类似的操作序列。 5. 运动控制:生成的操作序列可以通过机器人的运动控制系统来实施,使机器人按照示范者的方式执行任务。 对于使用者来说,可以使用该源码来实现以下功能: 1. 通过示教来训练机器人执行特定任务,而无需手动编程每个步骤。 2. 提供高度灵活性和个性化,因为用户可以直接展示所需操作,而不需要事先编写复杂的指令。 3. 可用于各种机器人应用领域,如服务机器人、工业自动化、医疗机器人等。 4. 可能具有一定的学习和改进能力,因为机器人可以通过概率推理和再学习来提高执行任务的效率和准确性。 总而言之,“Robot Programming by Demonstration: A Probabilistic Approach”源码提供了一种通过示范来编程机器人的方法,其中概率模型被用于建立示范者的行为模型,以便机器人可以从示范数据中进行学习并自主执行任务。该源码具有广泛的应用潜力,并且可以在不同领域中提供更加灵活和个性化的机器人编程解决方案。
评论 9
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值