Object Track(五):经典论文SiamFC(2)方法论

先以我自己的语言整体描述下

Object Track(五):经典论文SiamFC(2)方法论_第1张图片

图中z是模板(即待跟踪的目标,输入的新图像),x是当前帧的图像,φ是用于提取图像特征的卷积网络,因为作用于x(srch_img)的φ与作用于z(template, 模板)的φ完全一样所以称为孪生网络(siamese, 也可称暹罗),经过卷积网络提取特征后分别得到x和z的feature map,然后将二者卷积(*也表示卷积),表示上有一些不同,即将6x6x128的feature map当做卷积核,在22x22x128feature map上进行卷积得到17x17x1的heatmap,heatmap上值最大的点就对应于x图像中目标的中心。

下面说一些细节,首先φ网络是5层不带padding的AlexNet。显然5层不符合深度学习“深”的理念,但是由于网络不能加padding所以限制了网络深度。为什么不能padding呢,事实上target在x上的位置是从heatmap上得到的,这是基于卷积的平移等变性,即target在x上平移了n,相应的就会在heatmap上平移n/stride,且值不会变。但如果加入了padding,对于图像边缘的像素,虽然也会平移,但值会变,因为padding对图像的边缘进行了改变。siamRPN++和siamDW解决了这个问题,后面会详细讲。然后是训练时z的获取方式:z是以第一帧的box的中心为中心裁剪出一块图像,再将这块图像缩放到127x127x3。

摘要

传统上,任意目标跟踪的问题是通过在线学习一个目标外观模型,使用视频本身作为唯一的训练数据来解决的。尽管这些方法取得了成功,但仅在线的方法本质上限制了他们可以学习的model的丰富性。最近,一些人开始尝试利用深度卷积网络的表达能力。但是,在跟踪对象未知的情况下,需要在线进行随机梯度下降来调整网络的权值这种模式,严重影响了系统的运行速度。在本文中,我们提出了一个基于新颖的全卷积的暹罗网络的基本跟踪算法,该算法端到端训练在ILSVRC15数据集中并用于视频中的目标检测。该跟踪器以超出实时的帧率运行,尽管它极其简单,但在多个基准中实现了最先进的性能。

简介

(点明在线学习的难点,从而引出接下来的相似性学习)
考虑在视频中跟踪任意物体的问题,其中物体仅由第一帧中的矩形(目标检测框)识别。由于算法可能被要求跟踪任何任意对象,不可能在之前已经收集好了数据并训练一个特定的检测器。

(研究现状,指出当前方法的不足)
最近的几项研究旨在利用预先训练的深度卷积网来克服这一限制,该卷积网是在一个不同但相关的任务中学习的。这些方法要么应用“浅层”方法(如相关过滤器),使用网络的内部表示作为特征[5,6],要么执行SGD(随机梯度下降)微调网络的多层[7,8,9]。虽然浅方法的使用没有充分利用端到端学习的好处,但在跟踪过程中应用SGD来实现最先进的结果的方法不能实时运行。

(贡献简述,现在看起来可能有些简单,但从无到有的过程是应该被膜拜的)
本文提倡另一种方法,即在初始脱机阶段训练一个深度卷积网络来解决一个更普遍的相似学习问题,然后在跟踪过程中简单地在线评估这个函数。本文的关键贡献是证明该方法在现代跟踪基准中以远远超过帧率要求的速度实现非常有竞争力的性能。具体来说,我们训练一个暹罗网络在一个更大的搜索图像中定位一个示例图像。一个进一步的贡献是一个新颖的暹罗架构,对于搜索图像是完全卷积的:密集和高效的滑动窗口评估是通过一个双线性层实现的,该层计算其两个输入的互相关。

(在那个时间段的另一个贡献是在大型数据集上训练)
我们假设相似性学习方法相对被忽视,是因为跟踪社区没有可供访问的大量标签数据集。事实上直到最近,可用的数据集只有几百个带注释的视频。然而,我们认为ILSVRC数据集在视频[10]中目标检测的出现使训练这样一个模型成为可能。此外,使用来自同一领域的视频来训练和测试深度跟踪模型的公平性是一个争议点,因为它最近已被VOT委员会禁止。我们表明,我们的模型从ImageNet视频域推广到ALOV/OTB/VOT[1,11,12]域,使跟踪基准的视频可以保留用于测试目的。

用于跟踪的深度相似性学习

(方法论)
跟踪任意对象的学习可以使用相似学习来解决。我们建议学习一个函数f(z, x),它将一个示例图像与一个具有相同大小的候选图像进行比较,如果这两个图像描述了相同的对象,则返回高分,否则返回低分。为了在新图像中找到目标的位置,我们可以彻底测试所有可能的位置,并选择与目标过去外观相似度最大的候选位置。在实验中,我们将简单地使用物体的最初外观作为范例。该函数将从视频数据集学习与标记的物体轨迹。
Siamese网路在每个输入上应用一个恒等变换ϕ后通过使用另一个函数g将他们的表现形式结合起来。当函数是一个简单的距离或相似度度量时,函数ϕ可以被认为是一个嵌入。深度暹罗卷积网先前已经被应用于诸如人脸验证[18,20,14]、关键点描述符学习[19,21]和one-shot字符识别[22]等任务。

(全卷积的必要性)
全卷积网络的优点是,可以提供一个更大的搜索图像作为网络的输入,而不是一个相同大小的候选图像,它将计算稠密网格上所有转换子窗口的相似度在一个单一的评估。为了实现这一目标,我们使用卷积嵌入函数ϕ并使用一个互相关层将得到的特征图组合起来

(跟踪搜索过程)
在跟踪过程中,使用以目标先前位置为中心的搜索图像。相对于得分地图中心的最大得分的位置,乘以网络的步幅,给出了目标从一帧到另一帧的位移。通过组装小批量的缩放图像,在单个前向传递中搜索多个尺度。

(有趣的互相关操作)
在数学上,使用互相关结合特征映射并在更大的搜索图像上评估一次网络,就相当于使用内积结合特征映射并在每个转换子窗口上独立评估网络。然而,互相关层提供了一个非常简单的方法来在现有的convnet库框架内高效地实现这个操作。虽然这在测试中显然很有用,但也可以在训练中加以利用。

这段互相关的论述其实是为使用暹罗网络做理论支撑

训练与损失函数

损失函数基本形式

采用判别方法,训练网络的正对和负对,并采用逻辑损失:

这里v为score map中每个点的真值,同时y∈{+1, -1}为相应点的标签。

训练过程需注意

 训练时使用的图像对是由一个模板图像和一个尺寸更大的搜索图像组成。这将会得到一个score map,这里定义score map的损失为所有点损失的均值。从上面训练样本对以及标签可以看到,搜索图像中仅有少部分正样本,而大部分为负样本,这就存在一个样本不均衡的问题。所以最终SiamFC中采用的损失函数为score map上每个点损失的加权平均,从而解决不均衡问题。

参考

链接:https://zhuanlan.zhihu.com/p/262267256
链接:https://blog.csdn.net/moxibingdao/article/details/109913145
和原文

你可能感兴趣的:(磕磕绊绊)