《Tracking The Untrackable: Learning to track multiple cues with long-term dependencies》 2017 ICCV
论文链接:https://arxiv.org/abs/1701.01909
这篇论文最关键的点就在于:
1)用RNN对线索历史时序信息进行有效建模
2)用RNN进行多线索的融合,进行更复杂的推理(而不像DeepSORT直接取加权和)。
此外,通过RNN进行运动估计,也会比卡尔曼滤波的鲁棒性更强。只是整套网络架构太复杂,精度虽高,但运行速度远不能达到realtime,在应用领域上会受到限制。
摘要:
- online method
- 借助RNN,为多种线索(外观/运动/交互)分别建立end-to-end长期时序上的依赖关系,共同用于辅助匹配
- 鲁棒性强,有效解决MOT的关键问题:精确追踪被遮挡的目标,区分外观相似、位置相近的目标
文章目录
1 Overview
传统方法 | 相邻帧间信息用作推断 |
this paper | 长时依赖,多线索 |
![](https://img-blog.csdnimg.cn/20191204200941304.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3FxXzQxNjE0NTM4,size_16,color_FFFFFF,t_70)
2 Framework
2.1 Overall Architecture
![](https://img-blog.csdnimg.cn/20191204203921207.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3FxXzQxNjE0NTM4,size_16,color_FFFFFF,t_70)
其实和传统一样,在匹配阶段使用的是匈牙利算法来进行二部图的最佳匹配。这篇文章的主要工作在于提出了一种新的方法来计算相似度(即上图左边虚线框中部分)。最下面三个特征提取模块将提取出的特征分别输入3个RNN(A)(M)(I),计算出对应特征向量 ( ϕ A , ϕ M , ϕ I ) \left(\phi_{A}, \phi_{M}, \phi_{I}\right) (ϕA,ϕM,ϕI),这些向量再输入一个RNN(O) 得到结合了多信息通道的最终特征向量 ϕ ( t , d ) \phi(t, d) ϕ(t,d),这个向量将用于计算target t t t和detection d d d之间的相似度。
2.2 Appearance
![](https://img-blog.csdnimg.cn/20191205111053258.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3FxXzQxNjE0NTM4,size_16,color_FFFFFF,t_70)
先用CNN提取外观特征,再传入LSTM建立时序依赖。最后的
ϕ
A
\phi_A
ϕA特征包含的信息是:基于target
i
i
i的长时外观特征,以及detection
j
j
j的外观特征,判断两者是否属于同一目标。
这里只先介绍模型的架构,具体训练方法后面3.5节统一讲。
2.3 Motion
![](https://img-blog.csdnimg.cn/2019120511184387.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3FxXzQxNjE0NTM4,size_16,color_FFFFFF,t_70)
基本架构和外观模型一致,这里只详细讲一下运动特征提取器(Motion feature extractor)所提取的2维速度特征
v
i
t
v_{i}^{t}
vit。
我们将目标
i
i
i在
t
t
t时刻的速度定义为:
v
i
t
=
(
v
x
i
t
,
v
y
i
t
)
=
(
x
i
t
−
x
i
t
−
1
,
y
i
t
−
y
i
t
−
1
)
v_{i}^{t}=\left(v x_{i}^{t}, v y_{i}^{t}\right)=\left(x_{i}^{t}-x_{i}^{t-1}, y_{i}^{t}-y_{i}^{t-1}\right)
vit=(vxit,vyit)=(xit−xit−1,yit−yit−1)
其中,
(
x
i
t
,
y
i
t
)
\left(x_{i}^{t}, y_{i}^{t}\right)
(xit,yit)是目标
i
i
i在t时刻bbox中心的2D坐标(相对于图片平面,即宽高)。
2.4 Interaction
把每个目标的周围区域建模为一个固定大小的occupancy grid(可被占用的网格图,0/1)。交互特征提取器对以目标target为网格中心,生成一张网格图,并转化为向量表达。如果周围某物体的bbox中心落在网格(m,n)处,则网格(m,n)位置处标为1,不被占用的网格位置为0.
数学公式表达为:
O
i
t
(
m
,
n
)
=
∨
j
∈
N
i
1
m
n
[
x
j
t
−
x
i
t
,
y
j
t
−
y
i
t
]
O_{i}^{t}(m, n)=\vee_{j \in \mathcal{N}_{i}} \mathbf{1}_{m n}\left[x_{j}^{t}-x_{i}^{t}, y_{j}^{t}-y_{i}^{t}\right]
Oit(m,n)=∨j∈Ni1mn[xjt−xit,yjt−yit]
![](https://img-blog.csdnimg.cn/20191205112629674.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3FxXzQxNjE0NTM4,size_16,color_FFFFFF,t_70)
![](https://img-blog.csdnimg.cn/20191205112920872.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3FxXzQxNjE0NTM4,size_16,color_FFFFFF,t_70)
2.5 Target Model and Training
回顾一下之前的整体架构:
![](https://img-blog.csdnimg.cn/20191205113151654.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3FxXzQxNjE0NTM4,size_16,color_FFFFFF,t_70)
整个训练过程可以分为两步:
-
分别独立预训练 A/M/I 三个子模块RNN模型,以及外观特征特征提取器CNN。
外观特征提取器CNN先使用VGG-16的预训练权重 ,移除最后一个全连接层,添加一个500维的全连接层。然后用这个结构构造一个Siamese网络,在re-identification数据集上进行训练。最后再将这个训练完的CNN网络单独拿来用作特征提取,可以得到500维具有强区分度的外观特征。
三个子模块RNN都用Softmax分类器起进行0/1分类的预训练,即在RNN输出的k维特征上再加一个Softmax层,输出正类/负类的概率。这里我们定义,正类指输入的target i i i 和 detection j j j 属于同一物体,负类反之。 -
联合训练 target RNN(O) 和前面提到的三个子模块RNN,即同时更新它们的网络参数,但CNN不再更新。这是一个end-to-end的训练过程,target RNN要求输出detection和target的相似度,使用Softmax分类器和交叉熵损失进行训练。
根据我的理解,这里将所有信息合并起来,最终输出的是一个相似度矩阵,也就是所有targets到所有detections的相似度 。
3 Experiment Results
3.1 Multi-Target Tracking
作者把上述提出的方法应用在了MDP框架中,只是将其中相似度计算步骤替换成本论文方法,进行了一系列实验。
对于每个target,MDP框架有两个步骤:第一,它根据光流独立地用SOT(单目标追踪器)追踪每个目标;第二,当目标被遮挡时,构造二部图,用匈牙利算法求解最优匹配,这里用到了相似度。
MDP框架的论文是《Online multi-object tracking by decision making》,我暂时还没看,以后补上。
上图是在MOT Challenge Benchmark上的实验结果,可以看到MOTA甚至超过offline算法。
![](https://img-blog.csdnimg.cn/20191205115556741.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3FxXzQxNjE0NTM4,size_16,color_FFFFFF,t_70)
上图是在Stanford Drone Dataset上的实验结果,这个数据集的特点是目标是非常小的无人机,所以外观特征不具有明显区分度。作者进行这个实验是为了测试他们学到的特征表达能否自适应不同的环境,比如在这个环境中应该更倾向利用运动特征,减少对外观特征的依赖。在没有针对Drone数据集进行调参的情况下,该方法已经超过了其它方法,这充分说明了这个特征表达的鲁棒性。
3.2 Ablation study
- RNN有效对线索历史时序信息进行建模
上图说明,如果将RNN模型简单替换为全连接层,模型效果将大打折扣。而且可以发现,在多特征融合步骤,使用RNN也比使用FC效果好很多,这说了多特征融合不能简单使用加权求和(这里反观DeepSORT等算法=.=)
此外,作者还测试了一下历史信息的重要程度,发现LSTM输入的帧数与MOTA表现正相关,说明了历史信息的重要信。作者还提出,由于历史信息是指导长时间遮挡后重识别的重要信息,如果数据集中大部分遮挡都少于n帧,那么LSTM的帧数至少应达到n帧来保持依赖关系的追踪。这一点从上图(a)可以看出,MOT数据集上遮挡大部分都少于6帧,图(b)中在MOT数据集上就是在LSTM输入6帧时达到最优。 - 不同特征的重要程度
可以看出,外观特征是最重要的,本论文新提出的交互特征也可以略微正向提高效果。