这一周读了2021cvpr的《Learning to Filter: Siamese Relation Network for Robust Tracking》。这篇文章的创新点:
- Relation Detector。关系检测器。关系检测器在本文中以元学习的方式执行,以获得从背景中过滤干扰物的能力。
- Refinement Module。x细化模块(RM),RM的目的是将RD模块有效的整合到孪生网络框架中(本文的孪生网络框架是SiamBAN),以产生准确的跟踪结果。
- 对比训练策略。
摘要最后提及,本文提出的跟踪器可以在面对背景杂乱、快速运动和遮挡的情况下获得准确的跟踪结果。
本文提出的Relation Detector结构图如下图所示:
1、Relation Detector
在本文中提出了一种新型的关系检测器(RD),该检测器配备了自适应非线性比较器,具有很强的判别能力,通过测量与被跟踪目标的相似关系来过滤干扰物。由于训练这样的检测器需要相同序列的目标样本,而这些样本通常是不足的,传统的训练策略不能很好地发挥作用,而少采样学习的方式可以克服这一挑战。因此,本文通过少样本学习来训练网络,使关系检测器能够转移在大量不同的少量任务学习中获得的元知识。Relation Detector的结构图如下图所示:
关系检测器有三种不同的非线性可学习比较器组成,即全局检测器、局部检测器和块检测器。
2、Contrastive Training Strategy
与传统的学习框架不同,少样本学习任务具有每个类别中缺乏标记样本的特点。它的目的是构造一个分类器,通过一些已知的标记样本作为支持集,为查询集中的每个样本x分配一个标签y。当支持集包含N个不同的类别,每个类别有K个标记样本时,我们将其定义为N -way K-shot。在我们的训练中,我们定义了目标和非目标两个类别,我们的实验是双向的一次性学习。
对比训练样本的生成。仅仅匹配相同实例的对象是不够的,因为区分不同对象的能力也很重要。因此,本文利用训练样本之间的潜在关系,构造训练三元组(sc, qc, sn),其中sc和sn为正支持图像和负支持图像,qc为查询图像。Sc和qc是从同一视频中提取的,sn是从不同视频中提取的。
在每一次学习过程中,不仅对目标类别中的物体进行匹配,还对非目标类别中的干扰物进行区分,并学习测量由输入三元组生成的不同样本组合之间的关系。将正支持的基础真值定义为sp,并使用pp表示sc和qc生成的正建议。类似地,负支持的基真值记为nn,我们用pn表示由sc和qc生成的负建议。然后我们将它们组合成不同的对,如(sp, pp), (sp, pn), (nn, pp/pn),并保持1:2:1的比例。我们采用MSE损失作为损失函数,计算这些形成的对上的匹配损失。
难例挖掘。在训练初期,使用简单样本可以使模型稳定收敛。为了进一步增强模型的判别能力,在训练中后期引入了难例挖掘。详细地说,以两种不同的方式(在线和离线)执行难例挖掘。对于在线方法,首先计算候选区域与ground-truth之间的union (IoU)交集,然后去除IoU值大于0.2的部分提案。然后从剩余的候选区域中选择置信度得分最高的候选区域作为难例样本。对于离线方式,在VID , GOT和LaSOT等大规模数据集的预处理过程中生成一个近似最近邻查询的索引表。然后给定被跟踪对象的图像,使用索引表在嵌入空间中检索被跟踪对象的最近邻,可以找到N个不同的硬负样本。
3、Refinement Module
分类和回归是基于cnn的跟踪器的两大支柱,它们通常是独立优化的,导致它们之间存在不匹配的问题。具体来说,分类置信度最高的位置对应的方框不是最准确的,甚至不是跟踪的目标。本文设计了一个细化模块,它有效地将建议的RD集成到Siamese框架中。首先,利用RD的输出并将其转换为大小为25 × 25 × 1的匹配分数。接下来,我们将匹配分数与分类分支的互相关特征图进行逐元相乘,通过抑制假阳性位置来过滤背景中的干扰物。然后通过卷积层将精炼的相关特征传递给卷积层,生成精炼的分类置信度分数。
下图提供了获得的置信度图的一些示例。在细化模块中,我们将回归分支和分类分支的信息结合起来,共同操作来预测目标位置,从而缓解了不匹配的问题。
4、损失函数
Lmatching表示的是RD检测器求得得分数与真值标签之间得MSE损失。
5、训练和推理
5.1、训练
我们在大规模数据集上训练我们的暹罗关系网络,包括ImageNet VID、YouTubeBoundingBoxes、COCO、ImageNet DET、GOT10k[18]和LaSOT。训练输入是一个图像三元组,包括从相同序列中提取的模板补丁和搜索补丁,其大小分别为127×127和255×255像素,以及从另一个大小为255×255的序列中提取的负搜索补丁。我们首先从三联体的同一序列中选择两个patch,在其上最多采集16个阳性样本和48个阴性样本,训练分类分支和回归分支[25,24,4]。然后,使用三元组中的负搜索patch来生成我们的关系检测器的训练输入。此外,我们在epoch 5和epoch 15开始使用在线难例挖掘进行离线。我们的整个网络可以端到端进行训练,不需要任何进一步的微调。
5.2、推理
在推理过程中,以第一帧中目标的patch作为模板,并将其送入骨干提取模板特征fz。在跟踪过程中对其进行缓存,避免后续跟踪中重复计算。通过精确的ROI池化得到模板的ROI特征[6]。对于后续帧,我们根据前一帧的跟踪结果裁剪搜索补丁并提取其特征,称为fx。然后在搜索区域进行预测,得到回归图P reg−all w×h×4并生成建议。接下来,建议的特征被裁剪并与ROI z的缓存目标ROI特征连接起来。将得到的特征馈送到RD中,以度量提案与目标之间的关系。我们将此关系转换为匹配分数s匹配w×h×1,并使用分类分支中corr cls的相关图进行逐元素乘法。通过这种方式,我们将回归结果融合到分类分支中,而不是单独计算它们。然后,我们通过改进的相关图f * corr cls生成分类图P cls−all w×h×2。最后,我们可以通过P reg−all w×h×4和P cls−all w×h×2得到预测框。