Siamese Instance Search for Tracking论文笔记
1. 论文标题及来源
Siamese Instance Search for Tracking, CVPR, 2016.
下载地址:https://arxiv.org/abs/1605.05863
2. 拟解决问题
该算法是孪生网络的开山之作,提出了一种新的目标跟踪思路,它的主旨是学习一个匹配机制,即从包含各种干扰因素的视频中学习目标的不变性,但是不显式建模这些不变性
3. 解决方法
3.1 算法思想
该算法的主旨思想如上所示,从原始帧中找出target,然后在新的帧中生成很多的候选区域,然后比较满足条件的候选区域与原始target的相似性,即学习匹配函数,最后得到target在新的帧的位置
3.2 算法流程
该算法的网络结构如上所示,原文中作者探究了AlexNet和VGG。上图使用的是VGG,该算法有两个分支,分别是Query分支和Search分支,Query分支类似于target分支,Search分支类似于search region分支。
a. 从视频中随机选择一帧
T
1
T_1
T1,RoI就是GT框标注的target,将它们(实际上只需输入
T
1
T_1
T1和GT框的坐标)输入到Query分支中
b. 将conv4,conv5输出的特征图通过RoI Pooling固定RoI的shape
c. 将conv5经过RoI Pooling后输出的特征图输入到fc中
d. 将三个含有固定shape的RoI的特征图分别输入到L2 Normalization层
e. Search分支同理,但是Search分支的输入是从该视频中随机选择另外一帧
T
2
T_2
T2,然后通过半径采样策略在
T
2
T_2
T2中生成很多的RoIs(含不同scale),计算这些RoIs与GT框的IoU。当IoU大于
ρ
+
(
0.7
)
\rho_+(0.7)
ρ+(0.7)记为正样本(1);当IoU小于
ρ
−
(
0.5
)
\rho_-(0.5)
ρ−(0.5)记为负样本(0)
f. 通过loss层计算两个分支汇集在一起的loss,进行训练
g. 使用训练完成后的匹配函数来执行跟踪任务
L2正则化的作用:在训练的时候,因为使用ReLU作为激活函数,然后该激活函数的输出没有上限,所以会导致网络输出和损失函数更多的受到特征的尺度(个人理解是特征图上每个空间像素点的值)影响,而非表现质量
3.3 主要公式说明
公式一:损失函数
L
(
x
j
,
x
k
,
y
j
k
)
=
1
2
y
j
k
D
2
+
1
2
(
1
−
y
j
k
)
m
a
x
(
0
,
ϵ
−
D
2
)
L(x_j, x_k, y_{jk}) = \frac{1}{2} y_{jk} D^2 + \frac{1}{2} (1 - y_{jk}) max(0, \epsilon - D^2)
L(xj,xk,yjk)=21yjkD2+21(1−yjk)max(0,ϵ−D2)
D
=
∣
∣
f
(
x
j
)
−
f
(
x
k
)
∣
∣
2
D = ||f(x_j) - f(x_k)||_2
D=∣∣f(xj)−f(xk)∣∣2
公式说明:
x
j
x_j
xj表示search分支中第j个RoI,
x
k
x_k
xk表示query分支中的RoI(即target),
y
j
k
y_{jk}
yjk是第j个RoI的标签,取{0, 1},D表示第j个RoI和原始RoI的欧氏距离,
ϵ
\epsilon
ϵ表示负样本对之间应满足的最小距离
从理论分析可知:当样本对是正样本时,只有D起作用;当样本对是负样本时,只有后面一部分起作用。所以在网络优化的时候,会使正样本对之间的欧氏距离趋于0,负样本对之间的距离不小于
ϵ
\epsilon
ϵ
公式二:确定跟踪目标
x
t
^
=
a
r
g
m
a
x
(
m
(
x
t
=
0
,
x
j
,
t
)
)
\widehat{x_t} = argmax(m(x_{t = 0}, x_{j, t}))
xt
=argmax(m(xt=0,xj,t))
公式说明:
x
t
^
\widehat{x_t}
xt
表示最终预测框的下标,m表示匹配函数,argmax表示选出最大值所在的下标,
x
t
=
0
x_{t=0}
xt=0表示第一帧中的target,
x
j
,
t
x_{j, t}
xj,t表示第t帧中第j个候选框
4. 实验结果
4.1 消融实验
pretrained表示基于ImageNet训练的模型
fc6表示只使用网络的FC层作为特征输出
firstframe-Siamese-finetuned表示使用基于ImageNet预训练的模型,然后使用视频的第一帧来微调模型
Siamese-finetuned表示使用额外的数据集(ALOV)来微调模型
nomaxpooling表示没有最大池化
conv45fc6表示使用conv4,conv5和fc6的特征,即使用多层特征
通过上表可以发现:
a. 随着训练样本的增加,它的性能(AUC和Prec)急剧提高,因为网络的目的是学习匹配机制,当拥有的数据量越多,则学习的匹配机制越强大,这符合深度学习的特点
b. 不使用max pooling可以显著提高性能,因为最大池化会使映射回去的GT框的位置发生变化,这点可以参见RoI Pooling提出的初衷,例如某曾的输出是23x23xC,使用2x2池化后,会变成11x11xC(向下取整),这会使target的位置发生改变,这也是RoI Pooling提出的初衷。
c. 随着网络的加深,算法的性能会提高
为了进一步证明最大池化的非必要性,作者还对探究了不同阈值下的success rate,见下表
4.2 OTB-2013
SINT+中使用了自适应候选区域采样策略,即采样范围会随图片分辨率变化而变化(30 / 512 * width),另外使用光流来过滤运动不一致的候选区域。从图中可以发现,经过变体了之后的SINT+,它的AUC和Prec分别提高了0.03和0.034
TRE:temporal robustness evaluation
SRE:spatial robustness evaluation
通过上表可以发现SINT在时间鲁棒性和空间鲁棒性上都是最好的
通过上图我们可以发现,通过学习一个匹配机制,它能有效处理SV(Scale Variation),MB(Motion Blur),FM(Fast Motion),IPR(In-Plane Rotation),OV(Out-of-View), LR(Low Resolution),但是对于IV(Illumination Variation),OPR(Out-of-Plane Rotation),OCC(Occlusion),DEF(Deformation),BC(Background Clutters)处理能力较弱,尤其是OCC和DEF。
4.3 失败样例
相似物干扰和遮挡时会出现类漂移现象
4.4 成功样例
5. 存在问题
a. 可能存在正负样本不均衡的问题,从而导致不一定能最小化正样本对之间的距离
b. 遮挡问题、形变问题、相似物干扰问题
6. 总结
该论文作为孪生网络的开山之作(略早于SiamFC),提出了一种新的目标跟踪方式,但是该方式的缺点比较明显,就是对遮挡问题和形变问题处理能力较差。它使用同一个骨干网络提取target和search region的特征,通过RoI Pooling固定RoI的shape,通过损失函数最小化正样本对之间的欧氏距离,最大化负样本对之间的欧式距离。该算法在OTB2013数据集上拥有0.625的AUC和0.848的Prec。它的改进版本SINT+在OTB2013数据集上拥有0.655的AUC和0.882的Prec。