Fully-Convolutional Siamese Networks for Object Tracking(SiamFC 算法学习)
1、摘要
传统方法存在的问题:仅在线方法固有地限制了他们可以学习的模型的丰富性。本论文中,我们为基本跟踪算法配备了一个新型全卷积孪生网络,该网络在 ILSVRC15 数据集上端到端训练,用于视频中的对象检测。
2、Introduction
我们考虑跟踪视频中任意对象的问题,其中对象仅由第一帧中的矩形标识。由于可能要求该算法跟踪任意对象,因此不可能已经收集了数据并训练了特定的检测器。
使用仅来自当前视频的数据的明显缺陷是只能学习相对简单的模型
监督数据的稀缺性和实时操作的限制阻止了深度学习在这种每视频学习一个检测器的范式中的天真应用
论文提倡一种替代方法,其中在初始离线阶段训练深度卷积网络以解决更一般的相似性学习问题,然后在跟踪期间简单地在线评估此功能。
本文的主要贡献在于证明该方法在现代跟踪基准测试中以远远超过帧速率要求的速度获得了非常有竞争力的性能。 具体来说,我们训练了一个孪生网络以在更大的搜索图像中定位示例图像。 进一步的贡献是相对于搜索图像完全卷积的新颖孪生体系结构:通过计算其两个输入的互相关性的双线性层实现了密集而有效的滑动窗口评估。
相似性学习方法已被相对忽略,因为跟踪社区无法访问大量的标签数据集。视频中用于对象检测的ILSVRC数据集的出现使训练这种模型成为可能。
3、Deep similarity learning for tracking
使用相似性学习可以解决学习跟踪任意对象的问题。我们建议学习一个函数 f ( z , x ) f(z,x) f(z,x),该函数将示例图像z与相同大小的候选图像x进行比较,如果两个图像描述了相同的对象,则返回高分,否则返回低分。为了找到对象在新图像中的位置,我们可以穷尽所有可能的位置并选择与对象的过去外观具有最大相似度的候选对象。 在实验中,我们将简单地使用对象的初始外观作为示例。 函数 f f f将从具有标记对象轨迹的视频数据集中学习。
使用深层卷积网络作为函数 f f f,深度卷积网络的相似性学习通常使用孪生体系结构解决。孪生网络对两个输入采用相同的变换 ψ \psi ψ,然后根据 f ( x , z ) = g ( ψ ( x ) , ψ ( z ) ) f(x,z)=g(\psi(x),\psi(z)) f(x,z)=g(ψ(x),ψ(z)) 使用另一个函数 g g g表示,当函数 g g g是简单距离或相似性度量时,函数 ψ \psi ψ可被视为嵌入。
Z是模板图片,就是第一帧图片的GT。X是后续的待跟踪帧中的候选框搜索区域。 ψ \psi ψ代表的是一种特征映射操作, 6 × 6 × 128 6\times 6 \times 128 6×6×128代表z经过 ψ \psi ψ后得到的特征,是一个128通道的 6 × 6 6\times 6 6×6的大小特征。 22 × 22 × 128 22\times 22\times 128 22×22×128代表是x经过 ψ \psi ψ后的特征, ∗ * ∗代表卷积操作,得到一个 17 × 17 17\times 17 17×17的得分热力图(score map),代表search region中各各个位置与模板相似度值。
卷积网络将search image作为整体输入,直接计算两个输入图像的feature map的相似度匹配,节省了计算。计算得到相似度最高的位置,并反向计算出目标在原图中的位置。
算法本身是比较搜索区域与目标模板的相似度,最后得到搜索区域的score map。
在搜索区域中逐个的对目标模板进行匹配,将这种逐个平移匹配计算相似度的方法看成是一种卷积,然后在卷积结果中找到相似度值最大的点,作为新的目标的中心。
其中上图的 ψ \psi ψ 是CNN的一部分,两个 ψ \psi ψ 的网络结构是一样的,这是一种典型的孪生神经网络,并且在整个模型中只有conv层和pooling层,因此这也是一种典型的全卷积(fully-convolutional)神经网络。
3.1、Fully-convolutional Siamese architecture
我们提出了一种相对于候选图像x是完全卷积的孪生体系结构。 我们说一个函数如果与翻译转换后就是完全卷积的。 为了给出更精确的定义,引入Lτ表示平移运算符:
(
L
τ
)
[
u
]
=
x
[
u
−
τ
]
(L_\tau)[u] = x[u- \tau]
(Lτ)[u]=x[u−τ]
如果对于任何平移变换
h
(
L
k
τ
x
)
=
L
τ
h
(
x
)
h(L_{k\tau}x)=L_\tau h(x)
h(Lkτx)=Lτh(x)
(当x是有限信号时,只需要保持输出的有效区域即可。)将信号映射到信号的函数h具有整数跨度k的全卷积。
全卷积网络的优点是,我们可以向网络提供一个更大的搜索图像作为输入,而不是相同大小的候选图像,它将在一次评估中计算稠密网格上所有翻译子窗口的相似性。为此,我们使用卷积嵌入函数
ψ
\psi
ψ,并使用互相关层将生成的特征图结合起来:
f
(
z
,
x
)
=
ψ
(
z
)
∗
ψ
(
x
)
+
b
1
f(z,x) = \psi(z)*\psi(x) + b1
f(z,x)=ψ(z)∗ψ(x)+b1
b
1
b1
b1表示在每个位置取值
b
∈
R
b\in R
b∈R的信号。该网络的输出不是单个分数,而是在有限网格
D
⊂
Z
2
D \subset Z^2
D⊂Z2上定义的分数图,请注意,嵌入函数的输出是具有空间支持的特征图,而不是纯向量。
在跟踪过程中,我们使用以目标先前位置为中心的搜索图像。
最大分数相对于分数图中心的位置乘以网络的步幅,得出目标在帧与帧之间的位移。
通过组装一小批缩放图像,在一次前向传播中搜索多个尺度。
使用互相关组合特征图并在较大的搜索图像上评估一次网络在数学上等效于使用内积组合特征图并在每个翻译的子窗口上独立评估网络。但是,互相关层提供了一种非常简单的方法,可以在现有的 conv-net 库的框架内有效地实现此操作。虽然这在测试期间显然很有用,但也可以在训练期间加以利用。
3.2、Training with large search images
我们采用判别方法,在正负对上训练网络,并采用logistic损失函数
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))
其中
v
v
v是单个样本——候选对 的实值分数,
y
∈
{
+
1
,
−
1
}
y \in \lbrace +1,-1\rbrace
y∈{+1,−1}是真实标签。在训练过程中,通过使用包含示例图像和更大搜索图像组成的对,来利用网络的完全卷积性质。这会生成一个分数
v
:
D
−
>
R
v:D->R
v:D−>R的映射,有效地为每对生成许多示例。
我们将分数图的损失定义为个体损失的平均值:
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)=D1u∈D∑l(y[u]),v[u])
对于得分图的每个位置
u
∈
D
u\in D
u∈D,都要求有一个真实的标签
y
[
u
]
∈
{
+
1
,
−
1
}
y[u] \in \lbrace+1,-1\rbrace
y[u]∈{+1,−1},利用随机梯度下降法(SGD)求解卷积神经网络
θ
\theta
θ的参数
通过抽取以目标为中心的样本和搜索图像,从带注释的视频数据集中获得成对,如下图所示。
图像是从视频的两帧中提取出来的,这两帧都包含目标,并且最多间隔T帧。对象的类在训练时被忽略。每个图像内的对象的比例被归一化,而不破坏图像的宽高比。如果得分图的元素位于中心半径R内(考虑到网络的步幅k),则认为它们属于一个正例子。
y
[
u
]
=
{
+
1
i
f
k
∣
∣
u
−
c
∣
∣
≤
R
−
1
o
t
h
e
r
w
i
s
e
.
y[u] = \begin{cases} +1 \ \ if\ k||u-c||\leq R \\ -1 \ \ otherwise. \end{cases}
y[u]={+1 if k∣∣u−c∣∣≤R−1 otherwise.
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-O4weJew8-1669514844888)(SiamFC_Figure_2.png)]
从同一视频中提取的训练对:示例图像和来自同一视频的相应搜索图像。 当子窗口超出图像范围时,缺失部分将填充平均RGB值。
由于我们的网络是完全卷积的,因此它不会学习到中心子窗口的偏差。我们认为考虑以目标为中心的搜索图像是有效的,因为最困难的子窗口以及对跟踪器性能影响最大的子窗口可能是与目标相邻的子窗口。
注意,由于网络是对称的 f ( z , x ) = f ( x , z ) f(z,x)= f(x,z) f(z,x)=f(x,z),因此在示例中它实际上也是全卷积的。 尽管理论上这允许我们对不同对象使用不同大小的示例图像,但我们假定大小一致,因为这简化了小批量实现。但是,将来可以放宽此假设。
3.3、ImageNet Video for tracking
2015年版本的ImageNet大规模视觉识别挑战(ILSVRC)引入了ImageNet视频数据集,作为从视频挑战中进行新对象检测的一部分。要求参与者分类和定位来自30种不同类别的动物和车辆的物体。 培训和验证集共包含近4500个视频,总共有超过一百万个带注释的帧。该数据集不仅应因其庞大的规模而引起跟踪社区的极大关注,而且还因为它所描绘的场景和物体与规范跟踪基准中发现的场景和物体不同。因此,它可以安全地用于训练用于跟踪的深度模型,而不会过度适合这些基准测试中使用的视频领域。
3.4、Practical considerations
**数据集管理:**在训练过程中,我们采用127×127的样本图像,并搜索255×255像素的图像。 缩放图像使得边界框加上上下文的附加边距具有固定区域。更准确地说,如果紧密边界框的大小为$ (w, h)$ 并且上下文边距为$ p
,
则
选
择
比
例
因
子
,则选择比例因子
,则选择比例因子 s $使得缩放矩形的面积等于一个常数:
s
(
w
+
2
p
)
×
s
(
h
+
2
p
)
=
A
s(w+2p)\times s(h+2p) = A
s(w+2p)×s(h+2p)=A
我们使用样本图像
A
=
12
7
2
A = 127^2
A=1272的面积,并将上下文量设置为平均维度的一半
p
=
(
w
+
h
)
/
4
p =(w + h)/ 4
p=(w+h)/4。
离线提取每帧的示例图像和搜索图像,以避免在训练过程中调整图像大小。
**网络架构:**我们为嵌入功能 ψ \psi ψ采用的体系结构类似于Krizhevsky等人的网络的卷积阶段。
下表给出了参数和激活的维数。在前两个卷积层之后采用最大池化。 ReLU非线性遵循除最后一层conv5之外的每个卷积层。在训练过程中,在每个线性层之后立即插入批量归一化。最终代表的步幅为八。该设计的重要方面是在网络内不引入填充。 尽管这是图像分类的常见做法,但它违反了eq的全卷积性质。
**跟踪算法:**由于我们的目的是证明在ImageNet Video上训练时,我们的全卷积孪生网络的有效性及其泛化能力,因此我们使用一种极其简单的算法来执行跟踪。与更复杂的跟踪器不同,我们不会更新模型或保留过去的记忆,不会合并其他线索,例如光流或颜色直方图,并且不会使用边界框回归来完善预测。 然而,尽管其简单性,但在配备我们的离线学习相似度指标时,跟踪算法仍取得了令人惊讶的良好结果。
在线上,我们确实包含了一些基本的时间约束:我们仅在大约其先前大小的四倍的区域内搜索对象,并将余弦窗口添加到得分图中以惩罚较大的位移。通过处理搜索图像的多个缩放版本来实现缩放空间跟踪。 比例尺的任何更改都会受到处罚,并且当前比例尺的更新会受到抑制。
4、Related work 相关工作
最近有几项工作寻求训练递归神经网络(RNN)来解决对象跟踪问题。
Gan等训练RNN来预测目标在每一帧中的绝对位置,Kahou等人类似地训练RNN以使用可区分的注意力机制进行跟踪。这些方法尚未在现代基准上证明有竞争力的结果,但是它无疑是未来研究的有希望的途径。
我们指出,通过将孪生网络解释为展开后的RNN,并根据长度为2的序列进行训练和评估,可以在这种方法与我们的方法之间得出有趣的相似之处。因此,孪生网络可以作为递归模型的强大初始化。
Denil等使用粒子滤波器跟踪对象,该粒子滤波器使用学习的距离度量将当前外观与第一帧的外观进行比较。 但是,它们的距离指标与我们的差距很大。他们无需比较整个对象的图像,而是计算注视点之间的距离(对象边界框内小区域的凹面瞥见)。 为了学习距离度量,他们训练了受限玻尔兹曼机(RBM),然后将隐藏激活之间的欧几里德距离用于两个注视。 尽管RBM是无人监督的,但他们建议对RBM进行训练,以对物体中心图像中的随机注视进行检测。 必须在了解要跟踪的对象的情况下,在联机或脱机阶段执行此操作。 在追踪物体时,他们使用不确定性作为奖励信号,学习了一种随机策略来选择特定于该物体的注视。除了MNIST数字的合成序列外,该方法仅在面部和人物跟踪问题上得到了定性证明。
虽然为每个新视频从头开始训练一个深层的conv网络是不可行的,但是有几项工作已经研究了在测试时根据预先训练的参数进行微调的可行性。 SO-DLT和MDNet都在离线阶段训练卷积网络以完成类似的检测任务,然后在测试时使用SGD来学习检测器,其中包括从视频本身中提取的示例,就像常规跟踪中一样-作为检测器学习范例。 由于在许多示例中评估前向和后向传递的计算量,这些方法无法以帧速率运行。 利用卷积网络进行跟踪的另一种方法是使用预训练卷积网络的内部表示作为特征来应用传统的浅层方法。像DeepSRDCF [6]这样的追踪器,Ma等和FCNT取得了很好的结果,由于conv-net表示的维数较大,它们无法实现帧速率操作。
一些作者也建议通过学习成对图像的功能,将卷积网络用于对象跟踪。GOTURN,其中训练了一个 conv-net 以直接从两幅图像回归到第一幅图像中显示的对象在第二幅图像中的位置。 预测矩形而不是位置具有以下优点:可以在不借助详尽评估的情况下**处理比例和纵横比的变化。**缺点是它不具有第二图像平移的固有不变性。 这意味着必须向网络显示所有位置的示例,这是通过大量数据集扩展实现的。 Chen等训练了一个网络,该网络将示例和较大的搜索区域映射到响应图。
由于最终层是完全连接的,因此他们的方法也没有第二幅图像平移的不变性。 与Held等类似,这是低效的,因为训练集必须代表所有对象的所有平移变换。他们的方法因网络的 Y 形而被命名为 YCNN,与我们的方法不同,他们无法在训练后动态调整搜索区域的大小。
Tao等建议训练 Siamese 网络来识别与初始对象外观匹配的候选图像位置,将他们的方法称为 SINT(Siamese INstance search Tracker),与我们的方法相比,他们没有采用相对于搜索图像完全卷积的架构。 相反,在测试时,他们像Struck一样在半径变化的圆上均匀地对边界框进行采样。而且,它们结合了光流和边界框回归来改善结果。为了提高其系统的计算速度,他们采用了兴趣区域**(RoI)**池来有效检查许多重叠的子窗口。 尽管进行了优化,但每秒2帧的速度仍然无法使整个系统保持实时。
以上所有在视频序列上进行训练的竞争方法(MDNet,SINT,GOTURN)都使用属于同一ALOV / OTB / VOT域 由基准使用。 由于担心过度适合基准中的场景和对象,因此在VOT挑战中禁止这种做法。 因此,我们工作的重要贡献是证明可以训练卷积网络进行有效的对象跟踪,而无需使用与测试集相同分布的视频。
5、Experiments
5.1、Implementation details
Training: 通过最小化等式找到嵌入函数的参数
使用 MatConvNet 使用简单的SGD,参数的初始值服从高斯分布,根据改进的 Xavier 方法缩放。训练进行了 50 多个epochs,每个epoch由 50,000 个样本对组成。
使用大小为 8 的小批量估计每次迭代的梯度,并且学习率在从 10−2 到 10−5 的每个时期按几何方式退火。
Tracking: 如前所述,在线阶段是故意简化的。一次计算初始对象外观的嵌入 ψ ( z ) \psi(z) ψ(z),并将其卷积与后续帧的子窗口进行比较。 我们发现通过简单的策略(例如线性插值)在线更新示例样本(的特征表示)不会获得太多性能,因此我们将其固定。
我们发现,使用双三次插值对得分图进行上采样 ( 从 17 × 17 到 272 × 272 ) (从17×17到272×272) (从17×17到272×272),由于原始图相对较粗糙,因此定位更加准确。为了处理比例变化,我们还搜索五个比例 1.02 5 { − 2 , − 1 , 0 , 1 , 2 } 1.025^{\lbrace−2,−1,0,1,2 \rbrace} 1.025{−2,−1,0,1,2}上的对象,并通过系数为0.35的线性插值更新比例以提供阻尼。
5.2、Evaluation 评估
我们评估了简单跟踪器的两个变体:SiamFC(Siamese FullyConvolutional)和SiamFC-3,它们在3个标度上进行搜索,而不是5个。
6、Conclusion
在这项工作中,我们偏离了跟踪中使用的传统在线学习方法,并展示了一种替代方法,该方法侧重于在离线阶段学习强大的嵌入。 与它们在分类设置中的使用不同,我们证明了对于跟踪应用,孪生全卷积深度网络具有更有效地使用可用数据的能力。
amFC-3,它们在3个标度上进行搜索,而不是5个。
6、Conclusion
在这项工作中,我们偏离了跟踪中使用的传统在线学习方法,并展示了一种替代方法,该方法侧重于在离线阶段学习强大的嵌入。 与它们在分类设置中的使用不同,我们证明了对于跟踪应用,孪生全卷积深度网络具有更有效地使用可用数据的能力。
这既可以在测试时通过执行有效的空间搜索得到体现,也可以在训练时得到反映,在训练时每个子窗口都可以有效地代表有用的样本,而几乎不会产生任何额外费用。 实验表明,深层嵌入为在线跟踪器提供了自然丰富的功能,并使简单的测试时间策略能够很好地发挥作用。我们认为,这种方法是对更复杂的在线跟踪方法的补充,并且希望以后的工作可以更彻底地探索这种关系。