这篇来讲一下SiamMask的实现原理。也就是对Fast Online Object Tracking and Segmentation: A Unifying Approach的文章解读。
首先,SiamMask是视觉目标跟踪(VOT)和视频目标分割(VOS)的统一框架。简单的说,就是离线情况下,训练一个追踪器,这个追踪器仅依靠第一帧指定的位置进行半监督学习就可以实现对连续图像帧的目标追踪,这也是目标追踪的常规方法之一。这种方法平衡了追踪精度与追踪速度。
SiamMask训练目标
SiamMask训练了一个暹罗网络,该网络同时有三个任务,每个任务对应一个不同的策略建立目标对象之间的对应关系和新帧中的候选区域。以下是三个任务:
1)以滑动窗口的方式学习目标对象和多个候选之间的相似性度量。
2)使用Region Proposal Network进行边界框回归。
3)使用classagnostic binary segmentation进行边界框回归。
这三个任务损失之和作为网络训练的评判。
与tracking-by-detection算法不同,SiamMask不是在线学习一个可分辨分类器,而是在视频帧对上训练(离线)一个相似函数。在测试时,这个函数可以简单地在一个新的视频帧上求值,每一帧可以求得一个值。该方法结合了区域提案(region proposals),难分样本挖掘(hard negative mining),集合和记忆网络(ensembling and memory networks),大大提高了跟踪性能。
网络的训练
SiamMask的追踪器是基于全卷积siamese网络的,首先要理解该网络。样例图像z,待选的搜索图像x,以及CNN
,候选窗口的响应为
,使得响应最大的候选窗即为目标候选窗。SiamMask采用一个2层的神经网络
得到第n个候选框的响应
。在这里m为包含输出的追踪目标的追踪框和目标掩膜,真实的目标追踪框的标签为
,真实掩膜为
,追踪框为
像素。
定义掩膜的损失函数:
到这里就可以实现3个任务中的第一个任务的训练,具体网络的设置在文章的附录中介绍的很详细。