Unveiling the Power of Deep Tracking 论文地址
Motivation
- 目前目标跟踪领域的训练数据太少,而且在跟踪的时候我们只知道第一帧的ground-truth,所以其实后面帧都是没见过的物体,所以模型需要处理没见过的物体;
- 对于deep learning在目标跟跟踪领域只是利用了中低层的数据,由于深度网络是用分辨率来换高层鲁棒的特征。但是高层的特征会失去很多空间信息,浅层的特征易于定位,所以需要找到一个两种特征结合的策略。
Contribution
- 系统的分析了深和浅的特征在目标跟踪中的影响;
- 他们发现了深度模型应该负责网络的鲁棒性,而浅的模型负责准确定位;
- 提出了一个新颖的特征融合策略。
Analyzing Deep Features for Tracking
这个部分文章花了很多篇幅去分析深度特征和浅的特征对跟踪精度的影响,用了两个方法:1)数据增强;2)鲁棒性/精确性平衡
1)数据增强
由于在训练模型时训练数据太少,所以很多方法都会对数据做一些增强,这篇文章中也用了一些增强策略:Flip Rotation Shift Blur Dropout在实验中,他们发现对于深度特征这种数据增加是有用的,然而数据增强会影响浅的特征(手工特征)。如图2(a)
2)鲁棒性/精确性平衡
- 鲁棒性:找到目标,对目标变化不敏感
- 精确性:准确率,准确定位目标
文章指出可以通过用离目标很近的样本作为正样本,这样可以提升模型的准确率,但是这样会使得正样本变少,导致模型鲁棒性不好;若是扩大采样区域,可以使得模型拥有较好的泛化能力,但是模型的分辨能力就会变差。
文章沿用了ECO中使用的高斯分布来提取正样本,将深层特征和浅层特征分开实验发现不同的特征应该用不同的方差,如图2(b)。
基于上诉分析实验,低层和高层的特征应该分开训练,所以就需要一个特征融合策略
Adaptive Fusion of Model Predictions
为了更好得融合特征,他们提出了一个预测质量评价指标:
ξ
t
∗
{
y
}
=
min
t
y
(
t
∗
)
−
y
(
t
)
Δ
(
t
−
t
∗
)
\xi_{t^*}\{y\} = \min_{t}\frac{y(t^*)-y(t)}{\Delta(t-t^*)}
ξt∗{y}=tminΔ(t−t∗)y(t∗)−y(t)
这个式子越大,就说明找到的目标与其他distractor之间的距离越大,算法的准确性体现为峰值的尖锐程度,鲁棒性体现为目标峰值和干扰区域峰值的高度差距,峰值高度相差越大,证明结果越鲁棒。 (文章有具体的推导证明,感兴趣可以看原文)
有了这个指标之后,最后的评价函数为深层特征置信度与低层特征置信度的结合:
y
β
(
t
)
=
β
d
y
d
(
t
)
+
β
s
y
s
(
t
)
y_\beta(t) = \beta_dy_d(t)+\beta_sy_s(t)
yβ(t)=βdyd(t)+βsys(t)
其中
β
\beta
β是两个置信度的权重参数,最后的损失函数如下:
m
i
n
i
m
i
z
e
:
L
t
∗
(
ξ
,
β
)
=
−
ξ
+
μ
(
β
d
2
+
β
s
2
)
S
u
b
j
e
c
t
t
o
:
β
d
+
β
s
=
1
,
β
d
≥
0
,
β
s
≥
0
y
β
(
t
∗
)
−
ξ
Δ
(
t
∗
−
t
)
≥
y
β
(
t
)
,
∀
t
∈
Ω
minimize: L_{t^*}(\xi,\beta) = -\xi+\mu(\beta_d^2+\beta_s^2)\\ Subject \ to:\ \beta_d+\beta_s = 1,\beta_d \ge0,\beta_s\ge0\\ y_{\beta}(t^*)-\xi \Delta(t^*-t)\ge y_{\beta}(t), \forall t \in \Omega
minimize:Lt∗(ξ,β)=−ξ+μ(βd2+βs2)Subject to: βd+βs=1,βd≥0,βs≥0yβ(t∗)−ξΔ(t∗−t)≥yβ(t),∀t∈Ω
这个找的方式就是先分别在高和低的层找出
Ω
\Omega
Ω 个局部最优,然后在通过计算损失函数来找到最大的(有点像那篇用强化学习来确定用哪层特征的)
上图展示了不同的融合方式对跟踪效果的影响,这里的baseline ECO就是用多层特征训练,可以看到若单纯使用多层特征而没有合适的融合方式,效果并不会多好。
若是单纯结合多层特征,效果不好,要有合适的融合策略才能得到事半功倍的效果。
Experiment
文章做了很多对比实验,具体看原文
总结
文章主要的贡献就是提出深层和浅层的特征需要分开训练,而且如何融合特征也是很重要的一点,可以说又为现在偏向于multi-level的深度学习方法指出了一条路。不过我有疑问的地方就是,检测问题也是用的很深的网络,为什么在跟踪上就不管用了,检测不是也需要定位嘛?