SiamFC
1、模型架构
-
SiamFC有两个分支对应两个输入为z(模板图像)和x(搜索区域),将他们同时输入进行特征提取,分别生成6×6×128和22×22×128的feature map。
-
用于特征提取的 φ \varphi φ代表backbone,用的是AlexNet,并且在SiamFC中,有个很大的特点:即没有在AlexNet中引入padding,这点很重要,因为这保证了网络的全卷积性,也即平移不变性,保证了计算的准确性。我们知道AlexNet是属于相对比较简单的网络,其它复杂的网络包括VGGNet,ResNet等却包含了padding,这也导致许多其它学者尝试使用更复杂的Backbone来试图提升跟踪性能都失败了,直到后来对相应的网络进行改进,保证平移不变性,才使得跟踪性能得到了进一步的提升,这方面的工作包括SiamDW,SiamRPN++等。
-
之后会将生成的feature map输入互相关层生成score map。进行如下所示的计算:
x f ( z , x ) = φ ( z ) ∗ φ ( x ) + b 1 xf(z,x)=\varphi(z)*\varphi(x)+b1 xf(z,x)=φ(z)∗φ(x)+b1其中,*是卷积操作,即,将模板图像的特征和搜索区域的特征进行卷积,从而获得17×17大小的score map,其中的每一个点都代表搜索区域中该位置是否存在目标的概率。 b 1 b1 b1是bias,在score map的每个位置都加上它。
-
网络生成的是17×17 的heatmap,而输入x是255×255的搜索图像,怎样将两者的位置进行映射呢。这里,作者将17×17的heatmap进行双三次插值生成272×272的图像,来确定物体的位置。但是为什么不生成255×255的图像呢,作者在论文中说,这样做是由于原始图像相对比较粗糙,为了使定位更加准确。
2、模型输入
siameseFC每次需要两张图片作为输入,一张是所谓的模板图像z ,另一张是搜索图像x。模板图像需要缩放到127×127大小,搜素图像需要缩放到255×255大小。
上方三张图为模板图像z ,下面三张图为搜索图像x 。这里的模板图像z 好像和想象中有点不一样,本以为截取bounding box内的图像内容作为模板图像z的,但是这里看来,好像还包含了bounding box周围的一些环境信息和padding。
论文中是这么解释的:
意思就是在bounding box加上了周围的一些边界信息 ,即,上下左右各加上p个像素信息 。其中:
P = ( w + h ) / 4 P=(w+h)/4 P=(w+h)/4
之后,还需要对加上边界后的结果乘以一个缩放系数s,使得模板区域的面积为127×127,即如下公式所示:
s ( w + 2 p ) × s ( h + 2 p ) = 12 7 2 s(w+2p)\times s(h+2p)=127^2 s(w+2p)×s(h+2p)=1272
除此之外,原文中还提到:
When a sub-window extends beyond the extent of the image, the missing portions are filled with the mean RGB value.
如果需要添加边界的部分 超出了原图的大小(一般出现在bounding box靠近图像边界的情况),则使用像素的均值代替。
3、模型训练
采用logistic loss来训练模型:
在训练时使用的图像对是由一个模板图像和一个尺寸更大的搜索图像组成。这将会得到一个score map。定义损失为所有在score map的点上损失的均值。从上面训练样本对以及标签可以看到,搜索图像中仅有少部分正样本,而大部分为负样本,这就存在一个样本不均衡的问题。所以最终SiamFC中采用的损失函数为score map上每个点损失的加权平均,从而解决不均衡问题。
4、跟踪策略
-
目标模板固定 :样本图像特征φ(z)只在初始帧计算一次,即整个跟踪过程中不更新模板图像。
参照每日一文:目标跟踪(SiamFC),SiamFC的特征来自AlexNet的conv5,属于高层语义特征,也就是说,这一层特征已经知道它要跟踪的是什么了,不会像HOG那样苛求纹理相似度。举个例子,如果跟踪目标是人,不论躺着或站着,conv5都能"认出来"这是人,而纹理特征如HOG或conv1可能完全无法匹配。
- 在线更新:优点->随时适应目标的变化,和背景信息的变化,对特征的要求较低,低层特征计算速度快分辨率高;缺点->模型更新会累计误差,遮挡或失败时会学到背景,丢失后再也找不回来。
- 在线不更新:优点->不更新速度更快,跟踪目标永远不会被污染,long-term特性非常优秀;缺点->对特征的要求非常高,必须是表达能力足够强足够鲁棒的特征,通常高层特征计算速度慢、分辨率低。
-
多尺度跟踪 :即在裁剪出模版和搜索区域前,对其进行尺度缩放,一般有5个尺度,为 1.02 5 − 2 , − 1 , 0 , 1 , 2 1.025^{-2,-1,0,1,2} 1.025−2,−1,0,1,2。参照每日一文:目标跟踪(SiamFC),是对搜索区域进行尺度缩放,其中,255×255的大小对应于尺度为 1.02 5 0 = 1 1.025^0=1 1.0250=1。