3.4.1 模型结构
SiamRPN++网络结构如下图所示,虚线的两边都是网络结构图,虚线左侧是特征提取网络结构,右侧是RPN结构图。其实SiamRPN++的网络结构与SiamRPN网络结构十分相似,而SiamRPN++就是在SiamRPN的基础上加入许多的创新点。
SiamRPN++网络以resNet50为backbone,进行特征提取。原始的ResNet主要应用于图像分类和识别任务,对于空间信息不敏感,而在跟踪任务中,空间信息对于目标的准确定位至关重要,所以要在跟踪任务中使用,需要对ResNet进行改进。原始ResNet具有32像素的尺度变化,不适合于稠密孪生网络的预测。如下图所示,通过修改conv4和conv5块以获得单位空间尺度变化,将最后两个块的尺度变化从16和32减少到8倍的尺度变化,并通过空洞卷积增加其感受域。在每个块输出端附加一个额外的1×1卷积层,以将输出通道减少到256。因为每一层padding操作被保留,模板图片处理得到的特征尺寸增加15X15,所以通过裁剪选取中间部分7X7大小的特征来作为模板图片特征。使用互相关层和全卷积层的组合来组合一个head模块来计算分类(用S表示)和bbox回归器(用B表示)。
3.4.2 模型创新
- 针对平移不变性的改进
严格的平移不变性只存在于无填充网络中,如AlexNet。以前基于孪生的网络设计为浅层网络,以满足这一限制。然而,如果所使用的网络被ResNet或MobileNet等现代网络所取代,填充将不可避免地使网络变得更深,从而破坏了严格的平移不变性限制,不能保证物体最后的heatmap集中于中心。
当把正样本都放在图像中心时,网络只会对图像中心产生响应;如果把正样本均匀分布到某个范围内,而不是一直在中心时(所谓的范围即是指距离中心点一定距离,该距离为shift;正样本在这个范围内是均匀分布的),随着shift的不断增大,这种现象能够逐渐得到缓解。
- 分层聚合
在以前仅使用像AlexNet这样的浅层网络,多层特性不能提供非常不同的作用。然而,考虑到感受野的变化,ResNet中的不同层更有意义。浅层的特征主要集中在低层次的信息上,如颜色、形状等,对于定位是必不可少的,而缺乏语义信息;深层的特征具有丰富的语义信息,在某些挑战场景(如运动模糊、形变等)中是有益的。使用这种丰富的层次信息有助于跟踪,从最后三个残差块中提取的多层特征,以进行分层聚合。将这些输出中分类featuremap称为S_3S3,S_4S4和S_5S5,回归featuremap称为B_3B3,B_4B4和B_5B5 。conv3、conv4、conv5的输出分别输入三个SiamRPN模块。由于对resnet网络的改动,三个RPN模块的输出尺寸具有相同的空间分辨率,因此直接对RPN输出采用加权和。
- 深层互相关改进
互相关计算模块是一个用来整合两个分支信息的核心操作。使用Depthwise Cross Correlation来实现更有效的信息关联,它具有更少的参数
Cross-Correlation用于SiamFC中,模版特征在搜索区域上按照滑窗的方式获取不同位置的响应值,最终获得一个一维的响应映射图。
Up-Channel Cross Correlation用于SiamRPN中,和Cross Correlation操作不同的是在做correlation操作之前多了两个卷积层,通道个数分别为256和256x2k,其中k表示每一个grid上面的anchor个数。其中一个用来提升通道数,而另一个则保持不变。之后通过卷积的方式,得到最终的输出。通过控制升维的卷积来实现最终输出特征图的通道数。
Depthwise Cross Correlation和UpChannel一样,深度互相关层预测模板和搜索图像之间的多通道相关性特征,模板图像经过卷积层后并不像SiamRPN那样将通道数增加2k倍,而是保持不变,同时搜索图像也与模板图像保持一致,两者逐通道相互卷积,之后接一个1×1的卷积层,再改变通道数,这样在保持精度的同时减少了参数量。
SiamRPN++很大程度上缓解了padding带来的平移不变性的破坏,从而在孪生网络中引入了深层的网络,从而带来了巨幅的准确率提升。
3.4.3 损失函数
损失函数与SiamRPN相同,不在赘述。
3.4.4 模型训练
SiamRPN++是端到端的训练模型,用SGD方法对网络进行训练。