CVPR2023 | 半监督VOS训练新范式 | Two-shot Video Object Segmentation

文章地址:地址
代码:地址
标题:Two-shot Video Object Segmentation

摘要

以往的视频对象分割(VOS)工作都是在密集标注的视频上进行训练。然而,获取像素级别的注释是昂贵且耗时的。在这项工作中,我们证明了在稀疏标注的视频上训练一个令人满意的VOS模型的可行性——在性能保持不变的情况下,每个训练视频只需要两个标记帧。我们将这种新颖的训练范式称为two-shot视频对象分割,简称two-shot VOS。其基本思想是在训练过程中为无标签帧生成伪标签,并在有标签和伪标签数据的组合上优化模型。我们的方法极其简单,可以应用于大多数现有的框架。我们首先以半监督的方式在稀疏标注的视频上预训练一个VOS模型,其中第一帧总是有标签的。然后,我们采用预训练的VOS模型为所有未标记帧生成伪标签,并将其存储在伪标签库中。最后,我们在有标签和伪标签的数据上重新训练了一个VOS模型,并且对第一帧没有任何限制。首次提出了在two-shot VOS数据集上训练VOS模型的通用方法。通过使用YouTube-VOS和DAVIS基准测试集的7.3 %和2.9%的有标签数据,我们的方法取得了与在完全有标签数据集上训练的方法相当的结果。

引言

背景:当前的VOS方法在已经被密集注释的数据集上(DAVIS和YouTubeVOS)进行训练。但是获得密集的注释,尤其是像素级别的,这是极其费时费力的。因此,有必要开发数据高效的VOS模型,以减少对标记数据的依赖。

在本文中,作者研究在松散标记的数据集(只有前面几帧有密集注释)上训练一个满意的VOS模型的可能性。作者以STCN作为基线方法,并将没有经过设计的2-shot STCN和原始的STCN的性能进行了比较,发现只有前两帧有密集注释的2-shot STCN取得了不错的成绩,如图:
在这里插入图片描述
本文的思路:基于半监督学习的思路来进一步提高2-shot VOS的性能。和之前的方法的比较:
在这里插入图片描述
分阶段训练

  • phase-1:第一帧作为有标记的帧,后面的2帧可以是有标记的,也可以是有高质量伪标签的无标记的帧;使用STCN作为基模型。

    阶段1的训练由于以ground-truth为开始帧的限制,半监督学习的能力仍未得到充分挖掘。

  • phase-2:先采用第一阶段训练的VOS模型来推断未标记帧进行伪标记,生成的伪标签存放在伪标签库中,方便访问;然后在没有任何限制的情况下重新训练VOS模型

贡献:

  • 本文首次证明了two-shot视频目标分割的可行性:即使不使用无标签数据,每个视频中两个有标签的帧几乎足以训练一个不错的VOS模型。
  • 本文提出了一个简单而有效的训练范式来利用未标记帧中存在的丰富信息。在我们的实验中,这种新的范式可以无缝地应用于各种VOS模型,例如STCN,RDE-VOS和XMem。
  • 尽管只使用了少量的带标签数据(例如, YouTube-VOS占7.3 % , DAVIS占2.9%),但与在全集上训练的方法相比,本文的方法仍然取得了有竞争力的结果。例如,在DAVIS 2017/YouTube-VOS 2019上,使用本文方法训练的2-shot STCN达到了85.1%/82.7%,比原始2-shot STCN提高了+4.1 %/+2.1%,比所有数据都参与训练的STCN降低了-0.1%/-0.0%

方法

整体的训练流程如下:
在这里插入图片描述
流程说明:

  • 阶段1:以半监督的方式训练一个VOS模型(如STCN),它取三帧图像作为输入,参考帧始终是一个有标记的参考帧。本文将参考帧(第一帧)约束为标记帧以方便学习。
  • 中间的推断过程:通过第一阶段训练的VOS模型进行中间推断,为未标记帧生成伪标签。生成的伪标签存放在伪标签库中,方便访问。
  • 阶段2:在没有任何参考帧限制(不一定要是第一帧)的情况下,在有标签帧和伪标签帧上重新训练一个VOS模型。一旦识别出更可靠的伪标签,动态更新伪标签库。

Phase-1 training

问题:在本文的设置中,每个训练视频只包含两个标记帧,不足以以完全监督的方式作为STCN的输入。

解决办法:采取半监督学习,使用已标记帧一起生成伪标记帧以实现三元组构造

在第一阶段的训练中,本文总是使用标记帧作为参考帧来缓解误差传播。剩下的两帧,要么是有标记的,要么是无标记的。在本文中,剩下的两帧有50%的概率都是无标记的,有50%的概率有一帧是标记的

给定一个随机采样的三元组,其中后两帧由N1个有标记帧和N2个无标记帧组成,其中取值可能为:N1=0,N2=2或者N1=1,N2=1

损失函数:由有监督的损失函数和无监督的损失函数组成,有监督的损失函数具体如下:

在这里插入图片描述
其中H代表交叉熵损失,P表示第n个标记帧的预测结果,Y是真实的结果。

无监督的损失函数如下:

在这里插入图片描述
在这里插入图片描述
其中1[]是指示函数,它过滤掉最大置信度低于预定义阈值τ1的预测,Y表示对应的one-hot伪标签。

随着训练的进行,越来越多的高质量伪标记样本产生,将未标记数据中包含的隐含知识注入模型。

Phase-2 training

目的:为了充分利用未标记的数据。它解除了对参考帧的限制,允许参考帧是有标记的或有伪标签的帧。第二阶段训练的基本思想是使用第一阶段训练的合适的VOS模型为所有未标记帧生成伪标签

Intermediate inference

问题:VOS模型的推断需要参考(或第一)框架的标注。但是在本文中只有两个标记的帧。

解决办法:采用双向预测,如下图所示:

在这里插入图片描述
说明:对于两个已标记帧中的每一个,阶段1训练的VOS模型将其作为参考帧。首先,将其中一个作为参考帧,从参考帧到视频结束帧为止,依次执行推断,每次会得到一个未标记帧的预测;然后进行逆向推断,从参考帧推断到视频开始的帧,这次会得到一个另外一个预测。然后对于另外一个参考帧执行相同的步骤。经过以上步骤,每个未标记帧会有两个预测,本文选择与这个未标记帧距离最近的有标记帧所推断的预测。同时还会维护一个伪标记库来存储与未标记帧相关的伪标记

Update pseudo-label bank

目的:促进阶段2的训练

实现:在每次迭代中,给定未标记帧的预测P,用P(i,j)表示像素(i, j)处的预测。当max(P(i,j))>=τ2,相应的伪标记执行以下更新:

在这里插入图片描述
默认:τ2 = 0.99

实验

说明:2-shot VOS的训练范式可以无缝地应用于第2阶段训练中的各种VOS模型。本文分别对STCN、RDE-VOS和XMem进行了探索

数据集上的结果

通过使用YouTube-VOS基准测试中7.3 %的标注数据(每个训练视频2个标记帧),本文的方法取得了与使用所有标记数据进行训练相当的结果,并且在很大程度上优于原始的2-shot(没有任何设计)对等结果。

在这里插入图片描述
通过使用DAVIS基准测试集的2.9%标注数据(每个训练视频2个标记帧),我们的方法取得了与与使用所有标记数据进行训练相当的结果,并且在很大程度上优于原始的2-shot方法。

在这里插入图片描述

消融实验

不同训练阶段的高效性:

在这里插入图片描述
对两个阈值的讨论:
在这里插入图片描述
中间推断过程使用的推断策略以及伪标签库的更新策略的有效性:
在这里插入图片描述

结论

本文首次证明了每段视频仅有2个标记帧几乎足以训练一个合适的VOS模型的可行性。在此基础上,我们提出了一个简单的训练范式来解决双样本VOS。方法背后的基本思想是以半监督学习的方式利用未标记数据中存在的丰富信息。本文的方法可以应用于大多数全监督的VOS模型,如STCN、RDE-VOS和XMem。通过使用YouTube-VOS和DAVIS基准测试集的7.3%和2.9%的有标签数据,本文的方法取得了与在完全有标签数据集上训练的方法相当的结果。凭借其简单和强大的性能,希望本文的方法可以作为未来研究的坚实基础。

猜你喜欢

转载自blog.csdn.net/qq_41234663/article/details/130015023
今日推荐