1 Introduction
- 文章作者受《Blazingly Fast Video Object Segmentation with Pixel-Wise Metric Learning》的启发,该方法在训练过程中使用triplet loss学习pixel-wise的embedding,并在测试阶段通过像素空间中与第一个帧的最近邻居匹配为每个像素分配标签。详情见本人另一篇博客BFVOS。
- PML满足了简单快速的设计目标,但没有以端到端的方式学习分割,并且由于通过最近邻居匹配的硬分配而经常产生噪声。
作者提出了一种方法:
- 针对每一帧使用语义上逐像素的嵌入以及全局(global matching)和局部匹配(local matching)机制,将信息从视频的第一帧和上一帧传输到当前帧。
- 像PML一样,FEELVOS使用学习的嵌入和最近邻匹配,但是将此机制用作卷积网络的内部指导,而不是将其用于最终的分割决策。这使能够使用标准交叉熵损失以端到端的方式学习嵌入。
- 新颖的动态分割头(dynamic segmentation head)能够训练网络,包括嵌入,端到端的交叉熵损失的多对象分割任务。
- 通过仅将最近邻居匹配用作软提示,网络可以从部分不正确的最近邻居分配中进行覆盖,并且仍然可以产生准确的分段。
优点:
- 简单:仅使用单个神经网络且不使用模拟数据。
- 快速:整个系统可以快速部署。 特别地,该模型不依赖于第一帧微调。
- 端到端:多对象分割问题(每个视频包含不同数量的对象)以端到端的方式解决。
- 强大:该系统应提供强大的结果,在DAVIS 2017验证集上,J&F得分超过65%。
2 Proposed Method
2. 1 Overview
- 首先,采用DeepLabv3 +(移除了输出层)作为backbone来提取步幅为4的特征。
- 接着,添加了一个embedding层,以相同的步幅提取嵌入特征向量(embedding ferture vector)。
- 然后,对于每个对象,通过将当前帧的嵌入向量与第一帧中属于该对象的嵌入向量进行全局匹配(global matching)来计算距离图。
- 另外,使用前一帧的预测,以便通过将当前帧的嵌入与前一帧的嵌入向量进行局部匹配(local matching),为每个对象计算另一个距离图。像在MaskTrack或RGMP中一样,也直接将前一帧的预测用作附加提示。
- 最后,结合所有可用的信息,即全局匹配距离图,本地匹配距离图,前一帧的预测以及主干特征。 将它们馈送到动态分割头(dynamic segmentation head),该分割头为每个像素(跨度为4)在第一帧中存在的所有对象上产生后验分布。
2.2 Semantic Embedding
- 对于每个像素p,在学习的嵌入空间中提取语义嵌入向量 。嵌入空间的思想是:属于同一对象实例(在同一帧或不同帧中)的像素在嵌入空间中会很近,而属于不同对象的像素会很远。
- 定义像素p和像素q的对应嵌入向量 和 之间的距离:
就是像素p到q在embedding空间的距离。距离越小,说明p和q是属于一类,反之亦然。对于相同类别的像素,d的值应该很接近0或者为0;对于不同类别的像素,d接近1或者为1。
2.3 Global Matching
与PML和VideoMatch相似,通过考虑学习的嵌入空间中的最近邻居,将语义信息从拥有groundtruth的第一个视频帧传输到要分割的当前帧。
符号定义:
- 表示第t帧的所有像素的集合(跨度为4)
- 记作第t帧中属于类别O的像素集合
- 记作当前帧t中的一个像素
- 记作 这个像素对应的global matching distance map 的值
计算全局匹配:
对于第一帧的每个标注的真实对象o和当前视频帧t的每个像素计算 :
其中 不会是空的,这是从第一帧提取出来的物体o像素,这个 提供了当前帧的每个像素和每个物体的关于是否属于某个物体的软线索。
理解:
当前帧的每个像素会和第一帧的所有物体o的像素计算相似度,然后取最小的一个作为当前像素的相似度,也就是说对应的distance map的该位置的值就是这个,然后就能得到global matching distance map。
下图为global matching distance map 和 local matching distance map 的可视化:
从图中可以看出,鸭子被较好地捕捉,但是distance map具有较大的噪声, 并且在水中包含许多假阳性的小距离。因此不直接使用这些距离来进行分割, 而是将其用作可以从嘈杂的距离恢复的分割头的输入,即下面的dynamic Segmentation head。
2.4 Local Previous Frame Matching
采用与global matching类似的机制,只不过这里考虑的是当前帧输出与前一帧的关系。在global matching中是考虑全部的像素的相关性,而在local matching中则是着重考虑局部的相关性,使用它在相邻帧之间传输信息,以有效地实现跟踪和处理外观变化。
定义相对于前一帧的distance map为 :
的时间指数从1变为t-1。此外, 是由自己的预测给出,而不是第一帧的groundtruth给出,这意味着它可以为空,这种情况下将距离定义为1。
当将当前帧与第一帧匹配时,由于对象可能随时间移动很多,因此需要将当前帧的每个像素与第一帧的每个像素进行比较。 但是,当相对于前一帧进行匹配时,可以利用以下事实:两个帧之间的运动通常很小,以避免出现假阳性匹配并节省计算时间。 因此,在实践中,不使用 ,而是使用局部匹配距离图。
修改:
受FlowNet的启发,对于帧t的像素p,在搜索最近的邻居时仅考虑p的本地邻域中帧t-1的像素q。 对于给定的窗口大小,将领域的像素集定义为 ,无论它们来自哪个帧。该像素集在x和y方向上都距p最多k个像素。 这意味着通常在p所来自的同一帧中包含个元素,并且靠近图像边界的元素更少。
局部的相关性就是通过这个来实现,兼顾了效率与准确性。因而两帧之间的相关性可以表述为:
其中, 是帧的像素集合,属于对象o,位于p附近。可以采用叉乘来计算,实验表明优于。
上图显示了local distance map的可视化。注意,所有距离前一帧mask太远的像素都被分配为距离1。由于前一帧与当前帧之间的运动很小,因此局部匹配会生成非常清晰准确的距离图。
2.5 Dynamic Segmentation Head