论文阅读笔记 RPT: Learning Point Set Representation for Siamese Visual Tracking

论文阅读笔记 RPT: Learning Point Set Representation for Siamese Visual Tracking

综合了可形变卷积、RepPoints 检测、多层级卷积特征等思想

论文地址

代码地址


现有跟踪方法中存在的问题

现有的跟踪方法往往采用矩形框或四边形来表示目标的状态(位置和大小),这种方式忽略了目标自身会变化的特点(形变、姿态变化),因此作者采用表示点(Representative Points)方法来描述目标的外观特征,学习表示点的特征,根据表示点的分布确定目标的状态,实现更精确的目标状态估计。

通过表示点集对目标进行跟踪

对目标外观建模和跟踪的过程中,容易受到背景物体的干扰(distractor),为了提取目标更为精细的特征,在更细致的角度上区分目标与背景,抵抗环境的干扰,作者采用了聚合层级卷积的方式,获得目标更为精细的结构信息,使得跟踪器具有更强的鲁棒性。

RPT 中的多层特征聚合结构

RPT 方法概述(Representative Points based Tracker)

采用孪生网络(Siamese Network)提取特征和进行特征匹配的机制,对目标模板 和搜索区域 经孪生网络提取多层级特征(Multi-level features),按照对应的层级进行逐深度互相关操作(depth-wise cross correlation),得到不同层级的下的相关图(correlation map),经由这些不同层级的相关图对目标进行后续的状态估计。

作者参考了 RepPoints 检测算法中的**结构,在相关图后连接了一个分类分支(classification head)和一个两阶段回归分支(two-stage regression head)。相关图上的每个位置 都当作一个候选的目标位置(目标可能出现的位置,根据感受野计算在原始图像上的位置),对于位置 ,目标的状态(外观特征)通过一组采样点进行建模,每个采样点的初始位置设置为其对应的原始空间位置。这里目标的位置是一个点,而目标是由位置周围的许多点共同描述的,描述目标涉及到的采样点个数称为特征点集容量。

对于每个候选位置,回归分支都产生了一组偏移量用于调整样本点的分布,分类分支产生了一个 2 通道的输出表示候选位置属于前景或背景的概率。需要特别说明的是,初始样本点(初始目标位置所占的样本点)的位置采用逐点调整的方式调整其位置(每个点都有自己的偏移量),调整采用的偏移量通过可变形卷积(Deformable Convolution)得到。可变形卷积中的偏移量学习与分类学习采用多任务学习的方式同时进行。

由于当前跟踪采用的标记方式是矩形框,与点集表示方式存在不一致的问题,因此作者对点集采用了一个 min-max 操作,获得矩形框的 数据。

模型产生的点集通过上式可推算得到的伪矩形框作为模型的预测输出,其与真实矩形框的 IoU 用于计算回归分支的损失函数值。作者采用了 focal-loss 训练模型对困难样本进行分类,这里回归损失和分类损失是通过同一个损失函数构建的(多任务学习)。

为了使得分类器能够更好地区分目标与背景,提高模型的判别性,作者提出了一种离线训练和在线训练互补的方式提升模型的抗干扰性。对于以矩形框描述目标的方式而言,通常采用二维高斯分布作为目标的标签值,这种方式忽略了目标自身的结构信息,这里作者提出采用以表示点作为目标出现的置信度。表示目标的空间范围和语义关键点(RepPoints)是通过离线训练得到的。训练样本每个像素点的类别标签(属于正样本的得分)通过计算像素点到点集的平均位置偏差得到。在得到在线分类得分和离线训练得分后,分类分支网络的输出为

其中 表示响应图的第 层, 是控制二者影响的权重参数。

作者提出使用不同尺度下的卷积,构造出多层级卷积,并将这些卷积各自用于回归和分类的推断,最后将各层的推断结果进行融合,对于在线分类分支,各层的每个像素置信度通过按照各层的权重进行融合

由于 backbone 中最后 3 个残差块的空间分辨率相同,因此可以通过逐像素的方式实现推断结果的权重求和。各层具体权重值 通过网络学习得到。

对于目标状态估计子网络(回归分支),每个小分支(层级)只对一小部分表示点进行了预测,难以处理目标复杂结构。因此作者提出将各层产生的表示点集合进行合并,构造出密集表示点集合对目标状态进行估计。

RPT 中的表示点(RepPoints)分支结构

实验部分

RPT 采用经过 ImageNet 数据集上预训练过的 ResNet-50 网络作为骨干网络(backbone)提取目标的多层级特征,将 ResNet-50 网络最后 3 个残差块的输出作为多层级特征用于后续的聚合。移除了 conv4 和 conv5 卷积块中的下采样操作,为了保存更为精细的目标空间信息。同时采用了不同空洞率的空洞卷积提升感受野的大小。

离线训练采用的图像对来自 YouTube-BoundingBox, COCO 和 ImageNet VID 数据集(数据集规模相对 SiamFC++ 并不大)。对于第一阶段回归,相关图上在搜索区域中的相对位置距离目标中心最近的位置视为正样本,第二阶段回归和分类都基于第一个特征点集(是一阶段的特征点还是模板产生的特征点?)。如果推导出的伪矩形框与真实矩形框的 IoU 大于 0.5 则视为正样本,小于 0.4 则视为负样本,忽略其他 IoU 值的样本。对于这两个阶段而言,只有正样本用于目标状态的回归(只使用正样本进行训练)。

训练采用 SGD 优化器,8 GPU,mini-batch 大小为 128,训练轮数(epoch)为 20,前 5 轮训练采用从 0.001 到 0.005 线性变化的热身学习率,其余 15 轮训练的学习率从 0.005 到 0.0005 指数级下降。在前 10 轮训练中,只对目标状态估计分支进行训练(回归分支),后 10 轮对整个网络进行微调(包括 backbone),backbone 网络的学习率设置为其他部分的 1/10。在线分类子网络通过最后几帧的目标区域进行训练。在线优化器采用了共轭梯度下降法用于高效在线学习。RPT 跟踪器在 1080ti 和 pytorch 环境下实现。

最后附上 RPT 的实验结果。

RPT 在 VOT 上的实验结果
RPT 在 GOT-10k 上的实验结果

注:
经过 D3S 分割特征增强后的 RPT 在 VOT2020 比赛中取得了 EAO=0.539 的成绩,取得了 VOT2020-ST 比赛的冠军。

你可能感兴趣的:(论文阅读笔记 RPT: Learning Point Set Representation for Siamese Visual Tracking)