编辑推荐: |
本文主要介绍了SiamNet 网络结构、网络的训练原理、如何将不同目标尺寸进行规范化等相关内容。
本文来自于csdn,由火龙果软件Anna编辑、推荐。 |
|
参考论文:Fully-Convolutional Siamese
Networks for Object Tracking
算法主页
code
1. 网络结构及摘要
图一 SiamNet 网络结构。 搜索区域x, 输出的是一个得分图,
所谓的得分就是相似度度量,得分图的维度是由搜索图像块决定(样本模板和搜索区域进行密集交叉相关)。代表的是一种特征映射操作,将原始图像映射到特定的特征空间
传统意义上, 任意目标跟踪问题采用在线学习目标的形貌特征完成。 尽管这些在线的方法已经取得了非常好的结果,但是啊仅仅在线的方法本身具限制了模型学习的丰富性。最近,一些学者开始利用深度卷积网络的强大特征表达能力。然而,当跟踪的目标事前并不知道情况下,我们有必要采用SGD在线调整网络的权重,这严重的降低了系统的速度。本文中作者将一个全新的全卷积孪生网络fully-convolutional
Siamese network融合到一个最基本的目标跟踪算法中。Siamese network 采用ILSVRC15数据集进行end-to-end的训练。本文的跟踪器尽管非常的简单,但是跟踪准确率很好,可以做到实时跟踪。
2. 网络的训练原理
图2 SiamNet模型训练原理
2.1 模型训练-数据准备
作者采用判别式的方法对网络进行训练,更具体是采用正样本、负样本分别构成的exemplar-candidate对来进行训练。
如图2所示,上一帧的目标模板与下一帧的搜索区域可以构成很多pair的exemplar-candidate
pair, 但是根据判别式跟踪原理,仅仅下一帧的目标与上一阵的目标区域(即 exemplarof T
frame-exemplarof T+1 frame)属于模型的正样本,其余大量的exemplar-candidate
pair都是负样本。这样就完成了网络结构的端到端的训练。
这里需要额外说明一点就是如何确定搜索区域X. 其实这就是跟踪领域比较常用的方法,根据前一帧目标的中心初始化下一帧搜索区域的中心位置,然后设计搜索区域的尺寸就好了。
2.2 模型训练-损失函数设计
设计模型损失函数一直以来都是模型最重要的一环。本文作者采用了判别式掩膜的形式, 即目标和搜索区域经过交叉互相关可以得到相关程度谱图,图像在训练过程中exemplar-candidate的准确关系是已知的。所以设计起来并不困难。但这里寻要有三个问题需要解决:
模板和搜索区域经过卷积特征提取之后,图像尺寸已经发生改变,如何和已知的判别式掩膜进行运算?
作者采用了绝对形式的判别式掩膜,如果人工标记偶尔出现出现偏差,非黑即白的掩膜方略是否合理?
可否利用frame-frame之间的信息,例如相邻两帧之间目标的位置偏移应该很小? 采用平均损失作为损失函数是否合理?
回答1:
在固定特征提取网络基础之上,主要影响尺寸的是Sampling过程,也就是卷积过程中的Pooling,所以只需要记住Pooling过程中的stride就好。作者将金标准掩膜通过stride参数变化到Score
Map尺寸大小的。如下所示:
k表示的就是图像尺寸的降采样过程。
回答2:
作者采用的是金标准位置一定范围内的区域都是正样本,其其余部分为负样本,这样是扩大正负样本之间的距离,是的分类更加的清晰,当然也可以使用高斯权重进行赋值构造高斯掩膜。
回答3:(在线跟踪过程)
作者在得分图的基础上赋予了余弦窗权重,用来惩罚大的不合理的偏移位置。
此外,作者也研究了尺度的影响,作者将搜索空间拓展到了尺度空间,进行更加深层次的搜索。
跟踪时直接对score map进行线性插值,将17*17的score map扩大为272*272,这样原来score
map中响应值最大的点映射回272*272目标位置。
3. 如何将不同目标尺寸进行规范化
作者采用了一个非常简单粗暴的方式将所有目标规范到了127*127大小,具体为原标注框的尺寸+边缘填充+尺寸变化。
s(w+2*p) * s(h+2*p) = 127*127 s:尺度因子 p:边缘填充
4. 额外信息
作者采用如下论文进行尺度变换:He, K., Zhang, X., Ren, S., Sun, J.:
Delving deep into rectifiers: Surpassing humanlevel
performance on ImageNet classification,ICCV,2015.
在线实时更新模板并没有得到比较好的收益。(如采用KCF的线性插值模式更新模板)
5. 感悟
这个“朴素”的网络结构,深深的影响了这两年来tracking的发展方向。 所谓的Siamese(孪生)网络,是指网络的主体结构分上下两支,这两支像双胞胎一样,共享卷积层的权值。上面一支(z)称为模板分支(template),用来提取模板帧的特征,下面一支(x)称为检测分支(search),是根据上一帧的结果在当前帧上crop出的search
region。经过了相同的网络之后,模版支的feature map在当前帧的检测区域的feature
map上做匹配(*)操作,找到响应最大的点就是对应这一帧目标的位置。
优势:
把tracking任务做成了一个检测/匹配任务,整个tracking过程不需要更新网络,这使得算法的速度可以很快(FPS:80+)。此外,续作CFNet将特征提取和特征判别这两个任务做成了一个端到端的任务,第一次将深度网络和相关滤波结合在一起学习。
弊病:
1. 模板支只在第一帧进行,这使得模版特征对目标的变化不是很适应,当目标发生较大变化时,来自第一帧的特征可能不足以表征目标的特征。至于为什么只在第一帧提取模版特征,我认为可能因为:
1)第一帧的特征最可靠也最鲁棒,在tracking过程中无法确定哪一帧的结果可靠的情况下,只用第一帧特征足以的到不错的精度。
2)只在第一帧提模板特征的算法更精简,速度更快。
2. Siamese的方法只能得到目标的中心位置,但是得不到目标的尺寸,所以只能采取简单的多尺度加回归,这即增加了计算量,同时也不够精确。 |