论文阅读笔记--Siamese RPN++

论文阅读笔记--Siamese RPN++_第1张图片

链接

基于correlation操作计算相似度的神经网络,会带来两个隐藏的约束:

1. 该神经网络需要满足严格的平移等价性(和平移不变性不同)。即:目标在检测帧中移动时,跟踪的响应位置也会相应地进行等量移动。

2. 该神经网络需要具备对称性。即:将模板图像和检测图像互换,计算出的两者之间的相似度应该是不变的。因为相似度计算本身就是一个对称操作。

当对SiamRPN的结构进行加深时,往往会遇到以下两个问题:

1. 使用ResNet作为backbone,会不可避免地引进padding。而padding会破坏神经网络的平移等价性。(在边缘处的响应会因为padding的影响而发生偏移,从而导致不满足平移等价性)

2. SiamRPN的监督在于回归的偏移量和分类的分数,而不再是相似度。而对这两个变量的计算都不是对称操作。因此会使神经网络丧失对称性。

SiamRPN++分别针对这两个问题进行了优化:

  1. 由于ResNet中的padding会使神经网络失去平移等价性,因此网络在学习的过程中,会学习到位置偏好(如果严格符合平移等价性,则跟踪时预测的位置会随着目标的移动而移动,而不会对某些位置有固定的偏好)。
    因此如果一个神经网络使用了padding,且在用于训练的图像里,正样本(目标)都位于图像的中心,那么当该神经网络在检测图像上预测目标时,会由于训练样本中目标的分布特性,学习到对图像中心位置的预测偏好。不管目标移动到图像中的哪一处,网络都只会预测中心区域的位置。这也是利用ResNet加深网络后,跟踪性能不升反降的原因。
    SiamRPN++利用了padding会让网络学习到位置偏好这个特点,用正样本均匀分布在图像中各个位置的数据作为训练集,让网络对各个位置都学习到一定的偏好(相当于没有偏好),从而使网络的跟踪性能不会随着网络的加深而下降(若预测位置一直固定在一个地方,即相当于失去了跟踪能力)。

  1. 由于在SiamRPN的回归分支和分类分支上,都对模板图像的feature map进行了channel升维,导致模板图像的feature map的channel维度分别是检测图像的feature map的channel维度的2k倍和4k倍,因此,来自模板图像和检测图像的特征维度不对称(参数量不等),即两组特征并不是从相同的特征提取器中提取出来的,所以若将模板图像和检测图像互换再进行相关操作,必然会输出不同的结果,即失去操作的对称性。这种非对称性会给网络的训练优化带来困难,不利于训练的稳定性和网络的整体性能。

因此,SiamRPN++采用了depthwise cross-correlation的方式解决非对称问题。

(相当于先对输出的feature map进行维度微调,使其相同后,进行depthwise cross-correlation 。之后再分别使用不同的11卷积进行维度调整,以获得不同任务对应的不同维度的输出(分类任务对应channel维度为2k的输出,回归任务对应channel维度为4k的输出)。)

如图,模板图像和检测图像的feature map,在回归分支和分类分支中,都首先分别经过一个卷积神经层(由conv层和bn层构成),得到一样的空间分辨率和channel维度。该卷积神经层不同于SiamRPN中的卷积神经层,其不对feature map进行channel升维,只是对两组feature map都进行了finetune,使其维度对称。在经过卷积神经层之后,模板图像和检测图像的feature map进行depthwise的相关操作,即是逐个channel的两者的分量之间进行相关操作,输出和channel数相等数量的score map。最后,对于不同任务分支输出的相同分辨率和channel维度的score map,再分别使用不同的11卷积进行维度调整,以获得不同任务对应的不同维度的输出(分类任务对应channel维度为2k的输出,回归任务对应channel维度为4k的输出)。

对于depthwise cross-correlation输出的和channel数相等个数的score map,各个score map分别代表在不同语义上的响应分布。

而在进行了1*1卷积后,对于回归分支,输出的feature map上,每个feature点都对应其在原图中的感受野内的k个anchor,各个channel值即为这k个anchor各自的(x,y,w,h);对于分类分支,输出的feature map上,每个feature点都对应其在原图中的感受野内的k个anchor,各个channel值即为这k个anchor里面各自的前后景分类分数。

论文阅读笔记--Siamese RPN++_第2张图片

论文阅读笔记--Siamese RPN++_第3张图片

除此之外,由于使用了ResNet作为backbone, SiamRPN++的网络深度得以加深,因而可以获得更多不同层次的特征。为了整合不同尺度、语义、分辨率的特征,SiamRPN++在整体的架构上还采用了多级级联的方式,融合了来自不同卷积层输出的feature map:模板图像和检测图像的来自卷积层浅层的feature map首先进入下级的SiameseRPN模块,输出两组分辨率、channel维度相等的score map;这两组score map又跟模板图像和检测图像的来自卷积层中层的feature map分别进行加权融合,作为中级的SiameseRPN模块的输入;中级的SiameseRPN模块输出的两组分辨率、channel维度相等的score map,再跟模板图像和检测图像的来自卷积层深层的feature map分别进行加权融合,作为高级的SiameseRPN模块的输入,最后,高级的SiameseRPN模块的输出的两组分辨率、channel维度相等的score map,将分别通过分类分支和回归分支输出分类结果和回归结果。

以上的feature map融合流程又称为layer-wise aggregation。其中使用了空洞卷积扩大feature点的感受野,也减小了stride以获取更精细的定位能力。

论文阅读笔记--Siamese RPN++_第4张图片

像的feature map和检测图像的feature map关注到不同的内容,进而完成回归或分类这种本质上为非对称操作的任务。若是完成计算相关度响应之类的关于对称操作的任务,则不需引进两者特征的非siamese性,直接两者共享卷积层的权重即可。

设计原则:对称任务,涉及的是对称操作,要求两个输入的参数维度对称(维度相等),且特征信息对称(来自同一个特征提取器/共享特征提取器的权重);非对称任务,涉及的是非对称操作,要求两个输入的参数维度不对称(维度不相等),且特征信息也不对称/具有非siamese性(来自不同的特征提取器)。

你可能感兴趣的:(人工智能,深度学习,人工智能,计算机视觉,目标跟踪,神经网络)