SiamMask论文笔记

动机:

1、追踪的预测目标位置定义不同精度也会不同。(用旋转矩形框描述目标位置比坐标轴对齐的矩形框更精确)
2、VOS算法的第一帧需要给定目标的mask,这在人机交互的场景中很难时间,这个mask获取成本过高。
3、视频物体分割(VOS)领域的大多数方法的速度慢,难以满足实时性。

方法:

用三个任务训练一个孪生网络,这三个任务的目标不同,对应了不同的针对目标与候选区域建模策略。任务一用来估计目标的位置,任务二和任务三用来估计目标的尺度大小。

任务一:参照SiamFC,用滑动窗口的方式学习目标与多个候选目标的相似性。【输出:密集相应图(标记目标可能所在的中心位置,而不估计目标的尺度信息)】
任务二:参照SiamRPN利用区域候选网络(RPN)对目标边界框进行回归。
任务三:生成前后景(类无关)的二值分割(mask)。
任务二与任务三同时学习。

网络结构:

SiamMask在论文中有两个结构:
SiamMask论文笔记_第1张图片
SiamMask论文笔记_第2张图片

SiamMask-3B

表示SiamMask的完整结构,图像经过特征提取之后,经过三个分支,分别得出目标候选框的确定性分数(是否前后景)、目标的候选框的位置(x, y, w, h)、目标的mask生成。

SiamMask-2B

表示SiamMask的两分支简化结构,图像经过特征提取之后,经过两个分支,分别得出目标的mask生成、目标的位置估计(用了SiamFC中的损失函数)。

特征提取:

论文中将ResNet50作为Backbone,具体参数如表所示:
SiamMask论文笔记_第3张图片
其中adjust层降低了特征维度(1024->256),xcorr表示用exemplar对Search区域进行Depth-wise互相关操作,输出一个包含丰富信息的特征图。这里有一个重要的概念RoW,表示候选窗口的响应。例如最后互相关操作之后得到的特征图为17 * 17 * 256。则一共有17 * 17个RoW,每一个RoW是1 * 1 * 256的向量。这个向量蕴含了丰富模板与候选窗口的信息。凭借此信息,我们可以对其做1x1卷积得出分类和坐标轴回归的结果、或者解码出mask的信息。

目标定位:

SiamMask-2B——SiamFC定位法

在SiamMask-2B的网络结构中,Score分支就是参照SiamFC的损失函数定义一个交叉熵损失函数来进行二分类,生成的一个17 * 17的置信度分数矩阵。这个矩阵就对应着17 * 17 * 256特征图中这17 * 17个RoW窗口的置信分数,经过分数惩罚等一系列操作(为了使预测出置信度高的位置不要偏离上一帧太远–防止误追)我们选取置信分数最高的对应的那一个1 * 1 * 256的RoW生成mask。

SiamMask-3B——SiamRPN定位法

在SiamMask-2B的网络结构中,Box分支和Score分支就是参照SiamRPN。对于17 * 17 * 256特征图来说,一共有17 * 17个RoW,以每个RoW为中心,对应到原图中,生成k个不同纵横比的anchor(可以看作候选框)。对anchor的边界框进行预测,则有17x17x4k个输出;对anchor的分类(是否包含目标)进行预测,有17x17x2k个输出。

Mask生成方法:

方法一:

将选取的1 * 1 * 256经过两个1 * 1的卷积层调整深度到1 * 1 * (63 * 63)。
流程如下:

  1. Reshape+Sigmoid:生成63*63的二值classifier矩阵,用于判断这个矩阵的某一个值是否属于mask。
  2. 等比例地将63*63大小的mask矩阵仿射变换回原图中被选中用于Search的区域。
  3. 用给定阈值0.5过滤,Search中的矩阵得到目标分割。
  4. 通过最小外接矩形生成(MBR)生成旋转矩形框。

方法二——refinement模块

作者提到,直接这样预测mask的方式得到的精度并不太高,所以提出了如下图所示的Refine模块U来提升分割的精度:在原始的响应图上对每个RoW不采用升维到63x63的方式,而是直接对conv_5的1 * 1 * 256的RoW进行deconv(反卷积)、与backbone生成的Search region的ResNet50的结果相加耦合,上采样得到mask。利用ResNet50的阶段性结果生成mask会更准确,因为这些结果里面保持了较低层的特征。
SiamMask论文笔记_第4张图片
SiamMask论文笔记_第5张图片

总结:

SiamMask是一种简单的方法,它使完全卷积的 Siamese 跟踪器能够生成目标对象的与类别无关的二进制分割掩码。SiamMask 的两个变体使用简单的边界框进行初始化,在线操作,实时运行,并且不需要对测试序列进行任何调整。

你可能感兴趣的:(论文阅读,人工智能,机器学习,1024程序员节)