SiamFC++笔记
SiamFC++是一种基于分类和目标状态估计分支(G1)的设计框架,在视觉跟踪中实现了更高的准确性和鲁棒性。其核心设计包括无歧义的分类得分(G2)、无先验知识(G3)以及通过质量评估(G4)优化预测边界框的方法。该框架通过离线学习相似度度量函数,在搜索图像中定位目标模板,并利用互相关计算生成分类头和回归头以分离任务并优化预测精度。消融实验表明 backbone 和 head 结构对性能提升显著,在多个数据集上的横向对比进一步验证了其优越性。与现有方法相比,SiamFC++在 VOT2018 数据集上表现出更强的鲁棒性,并通过IoU评估展示了更合理的边界框预测策略。
SiamFC++ is designed to achieve reliable and precise visual tracking based on Target Estimation Guidelines.
文章基于以下思路:首先引入了分类模块与目标状态估计分支模块(G1),随后开发了具有明确区分度的分类分数(G2)。接着,在无需依赖先验知识的前提下实现了状态追踪过程,并通过质量分数(G4)对模型性能进行了量化评估。对比分析表明,在多个关键指标上SiamRPN ++展现了显著的优势。

guide: 这是一个引路者,旨在为用户提供详细的资源信息和指导方案.
- G1 : 分类与状态估计任务分离:将目标从背景与干扰物中识别出来作为独立任务;通过 bbox 回归来估计目标状态信息有助于适应尺度变化。
- G2 : 得分无歧义:确保分类分数直接反映目标存在的置信度;在图像采样区域中的像素子窗口上进行评估而非预先设定固定的锚框定位。
- G3 : 无先验:模型不应依赖预先设定的目标比例或比率作为先验知识。
- G4 : 预测质量评估:避免仅依据分类置信度来选择边界框位置会导致预测性能下降。
SiamFC++是一种以深度卷积神经网络为基础的跟踪算法,在工业界展现出卓越的性能,并且通过硬件加速实现高效的运行。
- 基于Siamese框架的特征提取与匹配
离线学习中的相似度评估指标,并在跟踪过程中用于搜索图像中的目标模板定位。在嵌入空间中计算互相关:
f_i(z,x) = \psi_i(\phi(z)) \star \psi_i(\phi(x)), \quad i \in \{\mathrm{cls}, \mathrm{reg}\}
\phi被定义为孪生特征提取结构,在此框架下,
各子网络\psi_i
分别用于各类任务中的分类与回归分析。
通过双层卷积层对
各子网络间的特征图
实施精细调整以优化整体性能,
从而实现多任务学习下的协同优化效果。

The application of design guidelines within the header network system has been effectively implemented, ensuring consistent and high-quality configurations across all components.
G1项目:对涉及分类与状态估计的任务进行划分
在完成互相关运算后,在完成互相关运算后随后分别设计了两个不同的处理模块:一个是分类模块(classification head),另一个是回归模块(regression head)。其中分类模块采用\psi_{cls}作为输入,在针对特征图上的每一个点进行分类操作时,则等价于在原始图像中对应区域进行分patch处理(即每个patch大小为17×17×1)。而回归模块则采用\psi_{reg}作为输入,并输出额外的偏移量(大小为17×17×4),用于调整边界框的位置以提高预测精度。
在分类任务中,在特征图\psi_{cls}上的位置(x,y)对应的输入图像位置(floor(s/2)+xs, floor(s/2)+ys)位于bbox范围内,则将该位置视为正样本实例。其中s表示backbone的步长(s=8)。对于特征图\psi_{reg}上每个正样本(x,y)的回归过程,在此过程中最后一层网络会预测对应位置(x,y)到gt边界四条边的距离:计算该位置到ground truth边界左、上、右、下四条边的偏移量,并输出一个四维向量t^*=(l^*, t^*, r^*, b^*)。其中l^*=(floor(s/2)+xs)-x_0
t^\ast 被定义为 \left(\left\lfloor \frac{s}{2} \right\rfloor + y \cdot s \right) - y_0
\hat{r} = x_1 - \left( \lfloor \frac{s}{2} \rfloor + (x \times s) \right)
b^\ast=y_1-\left(\left\lfloor\frac{s}{2}\right\rfloor+ys\right)
其中\left(x_0,y_0\right)和\left(x_1,y_1\right)表示左上角和右下角的角点。
G2 : 得分无歧义
直接执行相应的图像块分类,并对该位置进行目标边界框回归操作;即将该位置视为训练样本进行直接预测。而基于锚点的目标(将输入图像上的位置视为多个锚框中心)在相同位置会产生多个分类得分;通过锚框回归目标边界框的方式会导致每个位置出现歧义性问题。
G3 : 无先验
未预先设定锚框位置及判别阈值;因此自然也没有人工先验信息可用。
G4 : 预测质量评估
直接采用分类得分来确定最终的目标边界框;这种做法可能会影响定位精确度;因为分类置信度与定位精确度之间缺乏明显关联性。假设目标中心区域的特征像素较其他区域像素具有更好的质量估计能力;在分类头后并行增加一个1×1卷积层用于质量评估;该评估输出用于计算Prior Spatial Score(PSS),其定义如下:
\mathrm{PS}\mathrm{S}^\mathrm{*}=\sqrt{\frac{\min{\left(l^\ast,r^\ast\right)}}{\max{\left(l^\ast,r^\ast\right)}}\times\frac{\min{\left(t^\ast,b^\ast\right)}}{\max{\left(t^\ast,b^\ast\right)}}}
该方法能够预测Iou得分:该方法能够预测IoU^*得分,并且其中IoU^*的计算公式如下所示:
IoU^* = \frac{交集(B, B^*)}{并集(B, B^*)}
其中目标框和检测框分别表示为B和B^*。
其中B和B^\ast各自代表预测边框及其对应的GT bbox。训练目标旨在最小化以下三个方面的损失之和:第一类是基于分类任务的focal lossL_{\mathrm{cls}}(p_{x,y},c_{x,y}^*)};第二类是针对正样本的质量评估损失L_{\mathrm{quality}}(q_{x,y},q_{x,y}^*)};第三类是针对正样本框位评估的IoU损失L_{\mathrm{reg}}({t}_{x,y},{t}_{x,y}^*})}。这些损失均仅对目标位置进行计算,在f1·=1时取值为1,在f1·=0时取值为0。具体而言:(1)分类任务中使用了focal lossL_{\mathrm{cls}}}来衡量类别预测的效果;(2)质量评估任务中采用了交叉熵损失L_{\mathrm{quality}}}来衡量预测边界框与真实边界框之间的相似性;(3)框位评估任务中则采用IoU损失L_{\mathrm{reg}}}来衡量预测边界框与真实边界框之间的定位精度。
研究:
消融测试(主干模块、头部模块、头部结构分析、质量评估指标)

在多组数据集之间进行横向比较分析和研究

研究人员在VOT2018数据集上进行了评估,并比较了SiamRPN ++与SiamFC ++算法的表现。随后将实验结果按照是否达到预期目标进行分类。当计算出的目标区域与真实目标区域完全不重合时判定为失败;否则则被视为成功。

第一行中比较SiamRPN++与SiamFC++的分数分布情况:不论成功与否情况下,SiamRPN++的分类分数均呈现相似的分布规律;相比之下,SiamFC++的表现更为科学:在目标跟踪成功的场景下,其分数应当集中在高得分区域;而在目标跟踪失败的情况下,则应集中于低得分区域.第二行通过绘制不同状态下的输出边界框与gt之间的IoU值分布直方图,展示了基于锚点的方法在目标状态估计上存在的偏差问题:SiamRPN++算法在预测边界框时,其预测结果更倾向于与锚框产生较高的重叠程度,而非与实际的目标框(gt)产生较大的重叠度.
