论文笔记Fully-Convolutional Siamese Networks for Object Tracking
1. 论文标题及来源
Fully-Convolutional Siamese Networks for Object Tracking, ECCV, 2016.
下载地址:https://arxiv.org/abs/1606.09549
2. 拟解决问题
基于online-only学习的方法限制了其学习能力
3. 解决方法
3.1 算法流程
该算法的整体思想相对简单,它的网络结构图如上图所示。
a. 将target和当前帧的搜索区域输入到卷积网络中提取特征
b. 将target的特征作为卷积核,search region的特征作为待卷积的特征图,然后两者进行互相关操作,得到score map
c. score map上置信度最高的点就是target的位置
目前大部分的深度学习教程中都把卷积定义为图像矩阵和卷积核的按位点乘。实际上,这种操作应该称为互相关(cross-correlation),而卷积需要把卷积核顺时针旋转180度,然后再做点乘
3.2 图片的尺寸管理
在目标跟踪中,我们可以发现target的尺寸为127*127,search region的尺寸为255*255。但是实际上,从原图中裁剪的target的大小是不一的,而它们又被统一到了相同尺寸。此处不能使用cv2.resize,因为resize会改变位置信息。为了能统一尺寸,它们使用如下方式
s
(
w
+
2
p
)
×
s
(
h
+
2
p
)
=
A
s(w + 2p) \times s(h + 2p) = A
s(w+2p)×s(h+2p)=A
其中s是缩放因子,w和h是GT框的宽和高,p表示上下文边距(target中包含的上下文信息),A表示统一后的尺寸,例如target的A是
12
7
2
127^2
1272,
p
=
w
+
h
4
p = \frac{w + h}{4}
p=4w+h
3.3 关键公式说明
公式一:互相关操作
f
(
z
,
x
)
=
φ
(
z
)
∗
φ
(
x
)
+
b
f(z, x) = \varphi(z) * \varphi(x) + b
f(z,x)=φ(z)∗φ(x)+b
*表示互相关,在原文中,b表示一个信号,该信号在score map中每个位置上的值为b,此处我们可以认为是偏置项
公式二:单个image-pair(target和proposal)的损失
l
(
y
,
v
)
=
l
o
g
(
1
+
e
x
p
(
−
y
v
)
)
l(y, v) = log(1 + exp(-yv))
l(y,v)=log(1+exp(−yv))
y
∈
{
+
1
,
−
1
}
y \in \{ +1, -1\}
y∈{+1,−1}是该image-pair的标签,v表示该image-pair的得分
公式三:总损失函数
L
(
y
,
v
)
=
1
∣
D
∣
∑
u
∈
D
l
(
y
[
u
]
,
v
[
u
]
)
L(y, v) = \frac{1}{|D|} \sum_{u \in D} l(y[u], v[u])
L(y,v)=∣D∣1∑u∈Dl(y[u],v[u])
该损失函数实际上就是将score map上所有的位置都计算了损失
4. 实验结果
4.1 OTB-2013
4.2 VOT-2014
4.3 VOT-2015
5. 存在问题
不能很好处理相似物干扰问题
6. 总结
该算法通过卷积网络提取target和search region的特征,然后两者进行互相关操作得到score map,然后通过score map计算loss。在OTB2013数据集上AUC得分为0.612,VOT2014数据集的Accuracy在0.612左右,Robustness为0.9,VOT2015数据集的Accuracy为0.5335,speed为86fps。
与其同年的SINT,OTB2013的AUC为0.625,SINT+在OTB2013的AUC为0.655,但是速度只有2fps左右。