https://arxiv.org/pdf/1911.12836.pdf
https://www.vision.rwth-aachen.de/page/siamrcnn
① 提出了一种难例挖掘策略,用于分辨干扰物;
② 提出了动态轨迹规划算法(TDPF),它通过重新检测前一帧中的所有对象候选框,并随着时间的推移将这些框分组为小轨迹(短对象轨迹),从而同时跟踪所有潜在对象,包括干扰对象。然后根据所有目标对象和干扰对象轨迹的完整历史,利用动态规划在当前时间步内选择最佳目标。
①计算量大,无法实时跟踪。②评测结果没有那么好。
ROI Pooling的作用是根据预选框的位置坐标在特征图中将相应区域池化为固定尺寸的特征图,以便进行后续的分类和包围框回归操作。由于预选框的位置通常是由模型回归得到的,一般来讲是浮点数,而池化后的特征图要求尺寸固定。故ROI Pooling这一操作存在两次量化的过程。①将候选框边界量化为整数点坐标值。②将量化后的边界区域平均分割成 k x k 个单元(bin),对每一个单元的边界进行量化。事实上,经过上述两次量化,此时的候选框已经和最开始回归出来的位置有一定的偏差,这个偏差会影响检测或者分割的准确度。在论文(Mask-RCNN)里,作者把它总结为“不匹配问题(misalignment)。
为了解决ROI Pooling的上述缺点,作者提出了ROI Align这一改进的方法。ROI Align的思路很简单:取消量化操作,使用双线性内插的方法获得坐标为浮点数的像素点上的图像数值,从而将整个特征聚集过程转化为一个连续的操作,。值得注意的是,在具体的算法操作上,ROI Align并不是简单地补充出候选区域边界上的坐标点,然后将这些坐标点进行池化,而是重新设计了一套比较优雅的流程:
① 遍历每一个候选区域,保持浮点数边界不做量化。
② 将候选区域分割成k x k个单元,每个单元的边界也不做量化。
③ 在每个单元中计算固定四个坐标位置,用双线性内插的方法计算出这四个位置的值,然后进行最大池化操作。
(出自http://blog.leanote.com/post/[email protected]/b5f4f526490b)
更好的区分高难度干扰物,并在长时间遮挡后重新检测跟踪的对象。
本文基于Faster R-CNN提出了一个新的孪生网络重新检测架构Siam R-CNN,该算法基于两阶段检测的体系结构,使用在COCO数据集上预先训练过的Faster R-CNN网络来检测80个对象类。该网络由主干特征提取器和两个检测阶段组成;首先是类别不可知的RPN,然后是特定于类别的检测头。我们确定了主干和RPN的权重,用我们的重检测头替换类别特定的检测头。
算法框架:
Siam R-CNN是一个基于两个检测阶段结构的孪生再检测器,使用在COCO上预训练过的Faster R-CNN网络,该网络由一个两个检测阶段组成的主干特征提取器组成。第一个是类不可知的RPN,第二个是用于特定类别的检测头。我们确定了主干和RPN的权重,并用我们的再检测头替换掉了用于特定类别的检测头。
我们通过执行RoI Align提取RoI的深度特征,为RPN提出的每个区域的重检测头创建输入特征。将初始化边界框的感兴趣区域的深度特征与第一帧的深度特征拼接在一起,并将合并后的特征输入1x1卷积,通识减少一半的通道数。被输入再检测头后会输出此感兴趣区域是否是参考目标。再检测头采用三级级联,没有共享权重。重检测头的结构与Faster R-CNN的检测头的结构相同,只是使用了两个类,并且再检测头的输入特征是通过连接创建的。主干网络和RPN被冻结,只有重检测头(连接后)被训练跟踪,使用视频数据集的帧对。这里,以一帧中的目标作为参考,训练网络重新检测另一帧中的相同目标。
难例挖掘策略:通过对难例的学习提高检测能力。
① 嵌入PReMVOS网络。有时候同一类的某些对象也可能很容易区分,而不同类的某些对象也可能是难以区分的负面对象。因此,提出使用一个嵌入网络,受人重新识别的启发,提取每个地面真实边界框的嵌入向量,代表该物体的外观。PReMVOS网络用批处理困难的三重损失训练,然后在YouTube-VOS上训练,以消除单个对象实例之间的歧见。例如,两个截然不同的人在嵌入空间中应相距较远,而同一人在不同帧中的两种剪裁应相距较近。
② 索引结构。接下来,为近似最近邻查询创建一个高效的索引结构,并使用它在嵌入空间中找到跟踪对象的最近邻。图3显示了检索到的硬负样本例子的示例。可以看出,大多数负面的例子都是非常相关和困难的。
③ 训练过程。在其他视频上动态评估主干以检索当前视频帧的硬反例将是非常昂贵的。相反,我们预先计算训练数据的每个groundtruthbox的校正特征。对于每个训练步骤,像往常一样,选择一个随机视频和视频中的对象,然后选择一个随机参考和一个随机目标帧。然后,我们使用索引结构从其他视频中检索10,000个最近的邻居边界框作为参考框,并采样其中100个作为额外的负训练示例。
(TDPA)使用时空线索隐式跟踪感兴趣的对象和潜在的相似外观干扰物。通过这种方式,干扰物可以被持续地抑制,而仅仅使用视觉相似性是不可能实现的。为此,TDPA维护了一组tracklet,即几乎可以肯定属于同一目标的短序列检测。然后使用基于动态规划的评分算法在第一帧和当前帧之间为模板对象选择最有可能的轨迹序列。每个检测都是一个轨迹的一部分,它是由一个boundingbox、一个再检测分数和它的RoI aligned特征定义的。跟踪由一组检测定义,从开始到结束的每个时间步长都有一个检测。
① 建立轨迹
提取第一帧地面真实边界框(ff_gt_feats)的RoI aligned特征,并初始化由该框组成的轨迹。对于每一帧,我们更新一组tracklet如下:
我们提取当前帧的骨干特征,并评估区域提议网络(RPN)得到感兴趣的区域(RoIs,第2-3行)。为了补偿潜在的RPN假阴性,RoIs集合被前一帧的边界框输出扩展。我们在这些RoIs上运行重检测头(包括包围盒回归),产生一组第一帧模板的重检测(第4行)。然后,我们在当前检测detst上重新运行再检测头的分类部分(第6行)。但这一次,从前一帧的检测detst-1作为参考,而不是第一帧的ground truth box,以计算每对检测之间的相似度评分(scores)两个边界框之间的空间距离(x1, y1, w1, h1)和(x2, y2, w2, h2),由L∞范数给出,即max(|x1−x2|,|y1−y2|,|w1−w2|,|h1−h2|)。为了节省计算和避免错误匹配,我们只计算空间距离小于γ的成对检测的成对相似度评分,否则将相似度评分设为−∞。
当新检测的相似性得分很高(>α),并且没有偏差时,我们通过当前帧检测(行7-19)扩展了前一帧的轨迹,即没有其他检测与该轨迹具有几乎一样高的相似度(小于β边缘),也没有其他检测与该检测具有几乎一样高的相似度(小于β边缘)。当有任何歧义时,我们开始一个新的轨迹,它最初由一个检测组成。这些歧义将在轨迹评分步骤中得到解决。
② 得分
A = (a1,…, aN)是N个不重叠tracklet的序列,即end(ai) < start(ai+1) ∀I ∈{1,…, N−1},其中start和end分别表示tracklet的开始时间和结束时间。轨迹的总得分包括测量个体轨迹质量的一个明确的分数,以及惩罚轨迹间空间跳跃的位置分数,即:
其中ff_score表示检测ai的重新检测置信度,使用第一帧地面真实边界框从重新检测头的地面真实边界框作为参考。总有一个轨迹包含第一帧地面真实边界框,我们将其表示为第一帧轨迹aff。在轨迹中的所有检测都有很高的机会正确地继续该跟踪的初始检测,因为在较大的情况下,轨迹被终止。因此,对第一帧轨迹的最新检测也是最近的观察结果,几乎肯定是正确的对象。因此,我们使用这个检测作为重新检测的额外参考,产生一个由ff_tracklet_score表示的分数,该分数与ff_score线性结合。
两个轨迹ai和aj之间的位置得分由由最后一次检测ai的边界盒(x, y, w, h)与第一次检测aj的边界盒之间的差的负L1范数给出。
③ 在线动态规划
通过维护一个数组θ,对于每个tracklet a存储从第一帧tracklet开始,以a结束的最优tracklet序列的总得分θ[a],有效地找到总得分最大的tracklet序列(Eq. 1)。
一旦小轨没有延伸,它就被终止了。因此,对于每个新帧,只有已经扩展或新创建的轨迹的分数需要重新计算。对于一个新的时间步长,我们首先设置θ[aff] = 0为第一帧轨迹aff,因为所有轨迹都必须以该轨迹开始。然后,对于每一个更新或新创建的tracklet a,计算θ[a]为
为了保持非常长的序列的效率,我们允许两个1500帧的轨迹之间的最大时间间隙,对大多数应用来说这已经足够长了。
更新当前帧θ后,选取动态规划得分最高的轨迹ˆa,即ˆa = arg maxaθ[a]。如果选定的轨迹在当前帧中不包含检测,则我们的算法表明该对象不存在。对于需要在每一帧中进行预测的基准测试,我们使用所选tracklet中最近的方框,并将其赋值为0。
为了为VOS任务生成分割掩码,我们使用了来自PReMVOS的现成的边界盒到分割(Box2Seg)网络。Box2Seg是一个完全卷积的DeepLabV3+网络,具有一个Xception - 65[主干。它在Mapillary和COCO上进行了训练,以输出包围盒状作物的掩模。Box2Seg速度很快,跟踪后运行每帧对象只需要0.025秒。我们将重叠掩码组合在一起,这样像素更少的掩码就在顶部。
Siam R-CNN建立在的Faster R-CNN实现的基础上,具有ResNet-101-FPN骨干网、组归一化和级联。在COCO数据集上预训练,然后同时在ImageNet VID (4000 videos), Y ouTube-VOS2018 (3471 videos), GOT-10k (9335 videos)和LaSOT (1120 videos)数据集上进行了实验。总的来说,我们使用了来自COCO的18k视频和119k静态图像,这是一个相当大的数据量,但实际上比SiamRPN++所使用的要少,SiamRPN++使用了384k视频和1867k静态图像。
训练数据集:
COCO、ImageNet VID (4000 videos), Y ouTube-VOS2018 (3471 videos), GOT-10k (9335 videos)和LaSOT (1120 videos)
评测:
在标准目标跟踪、长期跟踪和VOS基准上进行了评测。
短期跟踪:
注:在一些精确图中本算法排名并不好,所以作者没有按顺序陈列算法名字。