Sep 06, 2018 原创文章
孪生网络与目标跟踪(2)-- Siamese-FC算法概述
在《Fully-convolutional siamese networks for object tracking》这篇论文中,作者将孪生网络引入到目标跟踪领域 ,即:提出了Siamese-FC算法。在Siamese-FC出现之前,浅层方法(如:KCF 等)的缺点是不能够充分利用端到端学习(End-to-end Learning)的优点,而使用其他网络(非孪生网络)的缺点则是不能实现跟踪对实时性的要求。
Siamese-FC要求首先离线训练一个深度卷积网络,然后以训练好的深度卷积网络作为函数,在跟踪时实时的计算出跟踪的结果。
算法主页:http://www.robots.ox.ac.uk/~luca/siamese-fc.html
深度相似性学习
相似性学习是解决跟踪问题的有效方法之一。Siamese-FC算法中提出,通过深度学习得到一个函数$f(z,x)$,将样本图像z和候选图像x在同样尺寸下进行比较,最终得到相似性评分。x与z相似度越高则评分越高,反之越低。为了在候选图像中寻找目标的位置,Siamese-FC要穷举所有可能的位置,并计算相似性评分。$f(z,x)$则通过带有位置标签的视频数据集训练得到。
完全卷积孪生框架
基于深度卷积网络进行相似性学习采用的主要方法是孪生框架。在孪生网络中首先对输入x和z分别使用各自独立的变换ϕ,然后对变换结果使用函数$g$,即整个函数f可以表示为:$f(z,x)=g(ϕ(z), ϕ(x))$ 。
在Siamese-FC算法中提出的卷积框架,对每一个候选图像x进行完全卷积。
完全卷积的定义:
如果一个函数commutes with translation,则称该函数为为完全卷积。
这里引入$L_τ$标记为变换算子:$(L_τ x)[u] = x[u-τ]$,函数h如果:$h(L_kτ x) = L_τ h(x)$,则称函数h的映射步长为k的完全卷积。
完全卷积的优点:
使用完全卷积的优点在于,不需要候选图像和样本图像保持相同的大小,这样就可以将一副足够大的图像作为输入送入网络,以此可以在候选图像中划分子窗,并将子窗做变换,将变换结果一次性完成相似度的计算。
完全卷积的实现:
设ϕ为一个卷积嵌入函数(convolutional embedding function),然后将计算得到的特征映射使用一个互相关层联系到一起。即:
其中:$b1$表示$b∈\mathbb{R}$在该信号的每一个位置。
网络的输出结果并不是一个单一的评分,而是一个在有限网格内的评分映射(score map)。注意:嵌入函数的输出结果是一个具有空间支持的特征映射而不是普通的向量。
特征映射的相互关联则使用互相关,以及评估更大的搜索图像网络 在数学上等价于使用内积对特征映射进行关联,以及独立评估每个子窗的网络变换。
然而,互相关层提供了一个非常简单方法,得以在一个含有各种存在的卷积网络库的框架中,去高效地完成这些操作。虽然这在测试过程中显然是有用的,但这也可以在训练期间被使用。
卷积嵌入函数ϕ的架构
Siamese-FC中ϕ的结构和Krizhevsky等人在《Imagenet classification with deep convolutional neural networks》中提出的网络结构相似。共包含有两个池化层五个卷积层。
网络层次:
$C_x$:表示卷积层
$P_x$:表示池化层
网络的基本架构为:$C_1 –> P_1 –> C_2 –> P_2 –> C_3 –> C_4 –> C_5$
同时在除了$C_5$层外的每一个卷积层后面有一个ReLU激活函数。在每一个线性层后插入一个batch normalization。
网络尺寸:
层级 | 核大小 | 输出/输入 通道数 |
步长 | 激活大小 (样本图像) |
激活大小 (搜索图像) |
激活大小 (通道) |
---|---|---|---|---|---|---|
127×127 | 255×255 | ×3 | ||||
$C_1$ | 11×11 | 96/3 | 2 | 59×59 | 123×123 | ×96 |
$P_1$ | 3×3 | 2 | 29×29 | 61×61 | ×96 | |
$C_2$ | 5×5 | 256/48 | 1 | 25×25 | 57×57 | ×256 |
$P_2$ | 3×3 | 2 | 12×12 | 28×28 | ×256 | |
$C_3$ | 3×3 | 384/256 | 1 | 10×10 | 26×26 | ×192 |
$C_4$ | 3×3 | 384/192 | 1 | 8×8 | 24×24 | ×192 |
$C_5$ | 3×3 | 384/192 | 1 | 6×6 | 22×22 | ×128 |
网络训练
Siamese-FC的训练在训练集的选择上与孪生网络相同,即使用正样本图像对和负样本图像对对网络进行训练。而损失函数则选择logistic 损失函数:$\cal{l}(y,v) = log(1+exp(-yv))$,其中$v$是单个样本-候选样本图像对真实的评分值,而$y∈{+1,-1}$则是ground-truth标签。
在最终生成的评分映射的损失值为:$L(y,v) = \frac {1}{|\cal{D}|}\sum_{u∈\cal{D}}\cal{l}(y[u],v[u])$,其中$y[u]∈{+1,-1},u∈\cal{D}$。
根据计算得到的损失值,通过SGD计算并更新网络的参数θ。
参考资料:
- Siamese network 孪生神经网络–一个简单神奇的结构 : https://zhuanlan.zhihu.com/p/35040994
- Chopra S, Hadsell R, LeCun Y. Learning a similarity metric discriminatively, with application to face verification[C]//Computer Vision and Pattern Recognition, 2005. CVPR 2005. IEEE Computer Society Conference on. IEEE, 2005, 1: 539-546.
- Bromley J, Guyon I, LeCun Y, et al. Signature verification using a” siamese” time delay neural network[C]//Advances in neural information processing systems. 1994: 737-744.
- Bertinetto L, Valmadre J, Henriques J F, et al. Fully-convolutional siamese networks for object tracking[C]//European conference on computer vision. Springer, Cham, 2016: 850-865.
- siamese(孪生) 网络 :https://blog.csdn.net/qq_15192373/article/details/78404761
- LeCun Y, Bottou L, Bengio Y, et al. Gradient-based learning applied to document recognition[J]. Proceedings of the IEEE, 1998, 86(11): 2278-2324.
- Bertinetto L, Valmadre J, Henriques J F, et al. Fully-convolutional siamese networks for object tracking[C]//European conference on computer vision. Springer, Cham, 2016: 850-865.
- Krizhevsky A, Sutskever I, Hinton G E. Imagenet classification with deep convolutional neural networks[C]//Advances in neural information processing systems. 2012: 1097-1105.