Online Multi-Target Tracking Using Recurrent Neural Networks
Abstract
提出了一种基于递归神经网络(RNN)的多目标在线跟踪方法。在真实场景中跟踪多个目标涉及到许多挑战,包括
a)先验未知且时变的目标数目;
b)所有现有目标的连续状态估计;
c)数据关联的离散组合问题。
大多数以前的方法都涉及复杂的模型,需要冗长的参数调整。在这里,我们首次提出了一种用于在线多目标跟踪的端到端学习方法。现有的深度学习方法不是针对上述挑战而设计的,不能简单地应用于任务。我们的解决方案原则性地解决了上述所有问题。对合成数据和真实数据的实验表明,在标准CPU上以300hz获得了令人满意的结果,并为今后这方面的研究铺平了道路。
Introduction
多目标跟踪任务本身包括在视频序列中定位所有感兴趣的目标,并随时间保持其身份。一个明显问题是,如何对任意视频中存在的各种数据进行建模,这些数据可能包括不同的视点或相机运动、不同的照明条件或遮挡程度、不同数量的目标等。
Tracking-by-detection最为成功:视频序列中所有“未使用”数据都将被丢弃,并且通常通过运行对象检测器将其减少到每帧只有几个单独的测量值。然后将测量关联到目标以解决数据关联的问题。此外,由于杂波和目标数目未知,必须解决 放弃测量作为假警报以及启动新目标和终止现有目标的 问题。
近来关于深度学习的多目标跟踪研究较少,原因:
1)没有大量数据
2)数据和期望的解决方案都可能是非常多变的。一个是面对离散和连续变量,未知的输入和输出基数,以及可变长度的视频序列。
通过本文的研究,我们朝着端到端模型学习的方向迈出了重要的一步,可以在现实场景中在线跟踪多个目标。我们的主要贡献如下:
1.提出了一种递归神经网络,它能够在一个统一的网络结构中完成所有的多目标跟踪任务,包括预测、数据关联、状态更新以及目标的起始和终止(图1)。这种方法的主要优点之一是完全无模型,即不需要任何关于目标动力学、杂波分布等的先验知识。因此,它可以捕获线性(卡尔曼滤波器),非线性(粒子过滤器)和高阶依赖项。
我们使用RNN进行时间预测和更新以及跟踪管理。数据关联的组合问题是通过每帧的LSTMs来解决的。
2.我们进一步证明,一个具有挑战性的包含目标生灭的数据关联组合问题的模型完全可以从数据中学习。这种时变基数分量证明了利用RNNs不仅可以预测具有固定大小输入和输出向量的序列,而且事实上还可以推断具有未知基数的无序集。
3.我们提出了一种从生成模型中取样生成任意数量训练数据的方法。
4.模拟和实际数据的定性和定量结果显示了令人鼓舞的结果,证实了该方法的潜力。我们坚信,这将激励其他研究人员扩展提出的想法,并进一步提高性能。
Our Approach
我们现在将描述将经典贝叶斯状态估计、数据关联以及跟踪起始和终止任务作为递归神经网络的方法,允许对模型进行完全的端到端学习。
Preliminaries and Notation
: 该时刻包含所有目标状态的矢量。在该文章中设置状态为(x,y,w,h)因此D=4。也可以扩展到速度、加速度、外观特征等模型。N表示在一个特定帧中同时表示(或跟踪)的交互目标数。
N is what we call the network’s order and captures the spatial dependencies
between targets.
N是这个网络的阶数,表征目标间的空间依赖关系
表示一帧内所有的测量,M是一帧中的最大检测数
assignment probability matrix 分配概率矩阵,代表了,对于每一个目标(行)所分配的测量的分布。
额外的一个列是考虑到一个测量可能Miss掉的
最终,
是表示目标存在概率的指示向量,对于处理未知和时变数量的目标是必要的
Multi-Target Tracking with RNNs
分为两个部分
1)状态预测与更新和轨迹管理
2)数据关联
Target Motion
状态的预测与更新由一个temporal RNN来学习时变的动态模型以及确定目标出生和死亡的指标
t时刻RNN对下一时刻有4个输出,
x
t
+
1
∗
x_t+1^*
xt+1∗是对所有目标的预测状态矢量,
x
t
+
1
x_t+1
xt+1是所有的更新后状态,
是每个目标是否是一个真实轨迹的概率指示
是与的绝对差,这些是基于当前状态
x
t
x_t
xt和存在概率以及下一帧测量
z
t
+
1
z_t+1
zt+1和数据关联
A
t
+
1
A_t+1
At+1
这个构建块有三个目标:
1.预测:在没有测量的情况下,学习一个预测目标运动的复杂动力学模型。
2.更新:鉴于target-measurement的分配,学习对状态分布的修正
3.出生/死亡:根据状态、测量和数据关联来学习识别跟踪的起始和终止。
对下一帧的预测
x
t
+
1
∗
x_t+1^*
xt+1∗仅仅依靠于当前状态
x
t
x_t
xt和网络的隐藏状态
h
t
h_t
ht,一旦下一帧的数据关联矩阵A是available,状态通过分配概率被更新,最终,所有的测量和预测状态都被串联成形式为,被分配概率
A
t
+
1
A_t+1
At+1所加权。对所有状态维度都执行该操作。同时,下一帧轨迹存在概率也被计算
Loss
loss很重要,一般使用MOTA,但是MOTA计算是一个复杂的算法,其零梯度分量是不可微的,不易被合并到解析损失函数中。因此,我们提出以下损失,以满足我们的需要:
Loss分为四部分,我们假设目标的数量是固定的,我们的目标是学习一个预测和更新都接近真实轨迹的轨迹的网络。(前两项)因此求了MSE(mean squared error)
Initiation and Termination
提出通过一个附加变量来捕获时变数量的目标模拟目标存在的概率即
测试时丢弃掉所有低于阈值的目标
Loss
后两项loss是用来学习在任意给定时间预测每个目标的存在,使用交叉熵(binary cross entropy, BCE)loss来接近每个目标存在的概率
当单独使用BCE时,RNN learns to make rather hard decisions,导致当测量miss的时候轨迹终结,为了补偿这个,加入了一个平缓的先验来最小化两个连续值的绝对差
Data Association with LSTMs
其主要思想是利用LSTM的时间分步功能一次一个目标的来预测每个目标的分配
第i步的输入为隐藏状态
h
i
h_i
hi,细胞状态
c
i
c_i
ci,就是所有的特征向量
预测和测量的欧拉距离作为pairwise-distance矩阵
Note that it is straight-forward to extend the feature vector to incorporate
appearance or any other similarity information.
可以拓展其他特征向量以加入外观或其他相似度特征
我们感兴趣的输出是一个目标和对应的所有可用测量的概率向量Ai,通过对预测值进行归一化的softmax层获得。这里,Ai表示A的第i行。
Loss
为了度量误分配成本,我们使用了常见的负对数似然损失