SiamRPN++: Evolution of Siamese Visual Tracking with Very Deep Networks(CVPR2019)
为什么2018年提出的SiamRPN网络还在用老式的AlexNet作为Siamese Network的特征提取网络呢?其实SiamRPN也尝试过用ResNet替代AlexNet,但发现效果甚微。SiamRPN++通过研究发现,发生这种情况的原因很可能跟严格的平移不变性被破坏有关。
作者发现被追踪的目标(target)可能会出现在search image上所有可能出现的地方,那这就需要我们的template图像中的目标存在空间不变性,作者发现只有满足padding=0的网络(比如AlexNet)才能符合这个情况。所以那些现代化网络,比如残差网络ResNet或者轻量级的MobileNet就被限制了。
SiamRPN++这篇论文最重要的是突破了Siamese网络在特征提取网络选择上的限制,作者仅仅通过一个简单有效的采样策略就打破了这个限制。
spatial aware sampling strategy(空间感知采样策略):在SiamFC的训练过程中,以search image中的目标所在位置为中心进行一些裁剪和填充,作为训练过程中的search部分。那么在训练过程中,这个目标一直都在search image的中心。在测试的时候,图像边界区域上的概率被降级为零,不论目标在图像中的哪个位置,甚至外观特征有多明显,都会在图像中心产生一个较大的偏移,这和训练过程中采用的方式有关。
作者开始尝试把target均匀分布在某个范围内,而不是一直在中心(范围是离中心点一定距离,该距离为shift,target在这个范围内均匀分布)。
Siamese网络需要严格的平移不变性,padding会破坏这种性质。为了保证适当的分辨率,现代深度神经网络基本都具有padding,从而破坏网络严格的平移不变性,带来的弊端就是会学习到位置偏见。
作者在训练过程中,不再把正样本放在中心,而是以均匀分布的采样方式让目标在中心点附近进行偏移,随着偏移范围的增大,深度网络可以由刚开始的完全没有效果逐渐变好。
通过均匀分布的采样方式让目标在中心点附近进行偏移,可以缓解网络因为破坏了严格平移不变性带来的影响,即消除了位置偏见,让现代化网络可以应用于跟踪中。
从上图可以看出,在±32像素范围内随机平移后,分布变得更加均匀。实验发现存在shift的时候,会提示模型性能,shift=64的时候表现最佳。
论文主要的实验是在ResNet-50上做的。现代网络一般都把步长设置为32,但跟踪的两个视频帧目标位移很小,为了定位的准确性,一般步长都会设置的比较小(Siamese系列一般都为8),所以作者把ResNet最后两个block的stride去掉了,同时增加了dilated convolution,一是为了增加感受野,二是为了能利用上预训练参数。论文中提到的MobileNet等现代网络也是进行了这样的改动。改过之后,主干网络后面三个block的分辨率就一致了。
对于改进的ResNet-50,作者将conv4和conv5中的stride=2改为stride=1,同时为了保持之前的感受野,采用了空洞卷积。
多层融合:使用了现代深度神经网络以后,一个自然的想法就是使用多层融合。一般而言,浅层的网络包含的信息更多有关于物体的颜色、纹理等,深层的网络包含的信息更多是关于物体的语义特征。使用特征融合可以弥补浅层信息和深层信息的不足,更有助于单目标追踪。作者选择了网络最后三个block的输出进行融合(由于之前对网络的改动,所以输出分辨率一致,融合时实现起来简单)。对于融合方式上作者并没有做过多的探究,而是直接做了线性加权。
介绍几种互相关方法:
- Cross Correlation:用于SiamFC,模版特征在搜索特征上以滑窗的方式获取不同位置的响应。
- Up-Channel Cross Correlation:用于SiamRPN,与SiamFC不同的是在做correlation前多了两个卷积层,一个提升维度(通道数),另一个保持不变。之后通过卷积的方式,得到最终的输出。通过控制升维的卷积来实现最终输出特征图的通道数。
- Depthwise Cross Correlation:和Up-Channel一样,在做correlation操作之前,模版和搜索分支会分别经过一个卷积层,但不需要提升维度,这里只是为了提供一个非Siamese的特征(SiamRPN与SiamFC不同,比如回归分支是非对称的,因为输出不是一个响应值;需要模版分支和搜索分支关注不同的内容)。在这之后,通过类似depthwise卷积的方法,逐通道计算correlation结果,这样的好处是可以得到一个通道数非1的输出,可以在后面添加一个普通的1×1卷积就可以得到分类和回归的结果。
这里的改进主要源自于up-channel,升维卷积参数量极大,256×(256×2k)×3×3,分类分支参数量就接近6M,回归分支12M;其次升维造成了两个分支参数量的极度不平衡,模版分支是搜索支参数量的2k/4k倍,也造成整体难以优化,训练困难。
改为Depthwise版本以后,参数量能够急剧下降;同时整体训练也更为稳定,整体性能也得到了加强。
实质上Depthwise Cross Correlation采用的就是分组卷积的思想,分组卷积可以带来运算量的大幅度降低,被广泛用于MobileNet系列网络中。
与SiamRPN网络不同,SiamRPN++提升网络通道数为2k或者4k的操作是在卷积操作(Cross Correlation)之后,而SiamRPN网络是在卷积操作之前,这样就减少了大量的计算量了。
- 网络方面,从AlexNet换成了ResNet-50以后,发现只有conv4的时候就取得了非常好的效果。虽然conv3和conv5效果没有那么好,但由于鲁棒性的提升,使得后续的提升变成了可能。同时对BackBone进行finetune也能带来接近两个点的提升。
- 多层融合,可以从表中看出,同时使用三个block的效果明显比只使用单个block的要高,VOT上比最好的conv4还要高4个点。
- 最后是新的correlation方式,从表中也可以看出,无论是AlexNet还是ResNet,装备了新的correlation方式以后,都有接近两个点提升。
作者使用不同的backbone进行验证,证明了所提算法能够随着backbone的提升而提升。
总结一下,深网络一直是Siamese系列的一大痛点,作者简单的通过调整训练过程中正样本的采样方式让深网络可以在跟踪中发挥作用,同时通过多层聚合更大程度的发挥深网络的作用。除此之外,新的轻量级的correlation方式在减少参数量的同时,也增加了跟踪的性能。