Fast Video Object Segmentation by Reference-Guided Mask Propagation 论文学习

1. 论文阅读总结

  • Summary
    论文提出了一种新的半监督视频目标分割方法,使用两阶段训练模式来训练Siamese encoder-decoder网络,在没有在线学习和后处理的情况下,达到了SOTA效果,并且比其他可比较的方法更快。。
  • Research Objective
    利用mask propagation ( previous mask)和object detection(reference guided)的优势,进行半监督视频目标分割。
  • Problem Statement(Motivation)
    半监督视频目标分割问题。给定视频序列的第一帧目标掩膜,生成后续视频序列目标掩膜。
  • Method(s)
    作者提出RGMP网络,利用前一帧的分割掩膜(mask propagation)和第一帧作为参考帧(reference guided),来解决半监督视频目标分割问题。RGMP的网络结构图如下。网络的结构由Siamese encoder,Global Convolution Block,Decoder三个主要的部分。Siamese encoder将当前帧和前一帧的预测掩膜连接成一个四通道的图像,作为目标帧的输入流;将参考帧(第一帧)和掩膜连接成一个四通道的图像,作为参考流输入。将两条流分别输入第一层卷积,随后紧跟着权值共享的ResNet50网络。将两个流的编码器输出连接到一起,经过一个global convolution Block的处理,输出到Decoder中。除此之外,Decoder的输入还有编码器的层中对应的特征图,最终经过一个softmax层,得到预测掩膜。
    RGMP
  • Evaluation
    作者在DAVIS-2016数据集上进行单目标视频分割评价,在DAVIS-2017和SegTrack v2上做多目标视频分割评价,在JumpCut上做video cutout scenaria下的目标分割评价。值得指出的是,在Seg Track v2和JumpCut上进行测试时,模型的参数都是从DAVIS训练集中训练得到的,即模型完全不了解Seg Track v2和JumpCut数据集的域。
  • Conclusion
    论文提出了一种新的半监督视频目标分割方法,使用两阶段训练模式来训练Siamese encoder-decoder网络,在没有在线学习和后处理的情况下,达到了SOTA效果,并且比其他可比较的方法更快。
  • Notes
    论文第一作者是Seoung Wug Oh,来自于Yonsei University(延世大学),是韩国三所最著名的大学之一(首尔大学,高丽大学),英国泰吾士世界大学排名,商业、创新、基础设施世界第一。

2. Translation

Abstract

我们为半监督视频目标分割提供了一个有效(efficient)方法。我们的方法和目前的SOTA方法在精度上取得了有竞争性的结果,同时与其他方法相比,只用了很少的时间。为此,我们提出了一种深度孪生encoder-decoder网络,旨在利用mask propggation和object detection的优势,同时避免两种方法的缺点。我们的网络,通过一个两阶段的训练过程利用合成数据和真实数据进行学习,无需任何在线学习或后处理即可稳定运行。我们在四个benchmark数据集上验证我们的方法,它覆盖了单目标和多目标分割。在所有的benchmark上,我们的方法都取得了可比较的精度,同时具有数量级级别上的更快的运行时间。我们也提供了额外的消融和附加研究来分析和评价我们的框架。

Introduction

视频目标分割,从一个视频序列中分割出前景目标,它是视频分析和编辑中最重要的任务,商业应用如Adobe After Effects已经具有专用的工具。但是,自动视频目标分割问题还远远没有被解决,视频编辑后处理经常需要大量的人工调整来达到更好的效果。然而,最近的工作已经解决了这个问题,在质量和速度方面,性能仍然受限。这篇论文,我们的目标是开发一个准确的视频目标分割算法,该算法足够快,可以在交互式场景中使用。
视频目标分割方法典型地依赖于两个重要的线索。Propagation-based 方法主要利用目标运动的时间连续性,形式化这个问题为从第一标注帧开始的目标掩膜传播(例如像素追踪)。这些方法依赖于像素间的时空联系,能够调整适应目标的复杂形变和运动,只要外观和位置变化是连续的。但是,这些方法易受时间不连续性像遮挡和快速运动的影响,并且一旦传播变得不可靠,就容易受到drifting的影响。Detection based方法从给定帧标注中学习目标的外观特征,然后在每帧中执行pixel-level的目标检测。因为它很少依赖于时间相关性,它们对于遮挡和漂移问题很鲁棒。但是,因为这种方法的估计主要是基于标注帧中的目标外观,它们在用于外观剧烈变化经常失效,并且很难区分有相似外观的目标实例。
最近的解决这一问题的方法,已经开始使用深度网络了。大多数这些方法严重依赖于在线学习,在测试视频序列上微调一个预训练网络。尽管在线训练通过让网络适应目标的外观而改善了分割精度,它的计算代价非常昂贵,因此,限制了这些方法的实际使用(例如,在有GPU计算的情况下,它在测试视频序列上也需要几分钟的时间训练)。
这篇论文中,我们为半监督视频目标分割提出一个新的混合方法。我们构建一个孪生encoder-decoder网络,同时使用由前一帧传播到当前帧的掩膜和指定在当前帧中待检测目标的参考帧。我们的网络旨在生成清晰的对象蒙版,而无需进行费时的后处理。为了解决缺少大规模分割数据集的问题,我们使用两阶段模式,先在合成数据上预训练网络,然后在视频数据上进行微调。
我们的网络结构和训练模式被精心设计以充分利用传播和检测两条线索。所以,网络在没有在线学习和后处理的情况下也非常鲁棒,在测试时体现出巨大的效果。我们的方法不仅在公开数据集上达到的SOTA效果,也比目前的在线学习方法快了几个数量级(fig 1)。我们也提供ablation和add-on实验来对各个组件的影响进行实验分析和评价。
Alt

Related Work

非监督方法。非监督方法旨在使用全自动的方法在没有任何用户标注的情况下分割前景目标。主要信息来源是视觉显著性和运动的不同(例如光流和长时序轨迹)。但是,前景目标的标准经常是模糊的,非监督方法不太适合交互式视频编辑场景。这篇论文中,我们聚焦于半监督视频分割方法。
propagation-based methods. 很多视频分割方法开始于用户标注(例如,分割掩膜和关键帧的scribbles)来粗略的分割感兴趣的目标。为了传播这些稀疏标签到整个视频序列中,图表示经常被使用。视频中的像素或超像素的时空图经常按时空邻居连接起来。基于能量的优化方法如图割理论被用来为每个结点最优化赋值。
对于一个专业的视频编辑应用,交互式的方法比全自动的方法更受到喜爱。这些方法聚焦于为用户设计有效的方法指定特定的分割限制,并且对这些限制快速响应。
最近的方法已经开始使用深度学习在视频标签的传播中。时序双边网络被提出,用于时空密度过滤。也有深度网络被训练来微调前一帧掩膜,从而创建当前帧的掩膜。它们只使用静态图像训练这一网络。它们使用测试视频的第一标注帧进行在线微调,来记住目标外观,从而提升算法性能。也有人在在线学习上使用数据增强策略,获利更高的精度。有学者开发了循环神经网络来做多实例分割。对于循环神经网络,它们能有效的获取时间相关性,充分利用好长时间视频序列的时间结构。
Detection-based methods. 另一种半监督视频分割方法是利用参考帧中目标的外观信息。这类方法将视频目标分割看作是每帧的pixel-level目标追踪,一帧一帧的处理,而不考虑时间连续性。OSVOS应用one-shot在线学习,在预训练的模型上使用标注帧进行微调,然后将微调网络作为一个检测器。也有将实例分割网络应用到这种方法的。更有学者将框追踪方法中的在线调整机制引入到这一思路里。孪生神经网络也被提出,将像素级的匹配看作目标检测。

Method

给出参考帧的目标掩膜,我们方法的目标是在整个视频中自动分割出目标。方法的主要想法是将参考帧的标注和带有前一帧掩膜估计的当前帧输入到一个深度网络,使网络通过和参考帧的外观匹配检测到目标,并通过引用当前帧中的先前目标掩膜来跟踪先前掩膜。

Network Structure

Fig2 展示了我们的网络架构。我们构建模型作为一个孪生encoder-decoder结构,它能够有效地处理四个输入,产生清晰的输出掩膜。网络包含拥有共享参数的两个编码器,一个全局卷积块,和一个解码器。网络被设计为一个全卷积网络,它能够处理任意尺寸的输入产生清晰的输出掩膜。
Alt

Siamese encoder 编码器的输入是一对RGB图像,每个还有一个掩膜图像。编码器包括参考流和目标流,滤波器的权重在这两个流中是共享的。参考流的输入包括参考图像(通常是第一帧)和真值掩膜。对于目标流,当前帧图像和对应的前一帧掩膜被提供。我们将图像帧和掩膜在通道维度上进行连接,把它们喂到编码器里。权值共享的编码器把这两个流的输入数据映射到相同的特征空间。
我们的编码器网络基于ResNet50进行修正的,以便它能够输入四维的张量,这是通过在第一卷积层植入额外的单通道滤波器实现的。网络的权重由从ImageNet预测练的模型中获得,新增加的滤波器执行随机初始化。
Global convolution block 编码器的两个流被连接,输入到一个全局卷积块中。这个全局卷积块是用来进行参考和目标流中的全局特征匹配,进而进行目标定位。为了克服卷积操作的局部性(我理解的是它的感受野具有局部性),我们采用全局卷积,它通过组合 1 × k + k × 1 1\times {k} +k\times{1} 1×k+k×1 k × 1 + 1 × k k\times{1}+1\times{k} k×1+1×k卷积层(在我们的实现里 k = 7 k=7 k=7Global Convolutional Network通过增大kernel size获利更大的感受野,使用 K × 1 K \times 1 K×1 1 × K 1\times K 1×K的卷积核,计算量小,参数少。全局卷积的输出进一步被一个残差模块处理。需要注意的是,我们从原始形状里移除了batch normalization。在这个块中,所有的卷积层产生一个256通道的特征图。
Decoder 解码器的输入是全局卷积块和目标编码流的所有特征(通过跳跃连接输入)。为了有效地合并不同尺度的特征,我们使用refinement module作为我们解码器的构建块。我们对原始结构做了一些调整,用residual blocks取代卷积层。我们的解码器包含了三个refinement modules,一个最终的卷积层和一个soffmax层来产生目标掩膜。输出掩膜是 1 4 \frac{1}{4} 41的输入图像尺寸。refinement modules的每个卷积层产生一个256个通道的特征图,最后一个(卷积层和softmax层)产生2个通道的掩膜图。

Two-Stage Training

DAVIS-2017是视频目标分割的最大的公开benchmark数据集,提供60个视频序列的训练集。即使我们对编码器使用预训练的权重,这仍然不足以从头开始训练我们的深度网络。这了解决这个问题,我们提出了两阶段训练模式。我们的网络首先在使用静态图像数据的模拟样本上进行训练,然后在视频分割数据集上进行微调。
Pre-training on simulated samples. 在第一阶段,我们使用带实例目标掩膜的图像数据集(Pascal VOC, ECSSD 和 MSRA10K)来仿真训练样本。对于我们的二流编码器,我们需要包含同一目标的参考和目标帧数据。为了能自动生成训练样本,我们使用以下两个策略:

  • 策略1:从一个带有目标掩膜的图像,我们通过应用两个不同的随机变换(rotation, scaling and color perturbation)产生一个图像对。我们使用PasCal VOC数据集作为源图像。
  • 策略2:对于一组前景目标和背景图像,我们对前景目标应用两个不同的随机变换,产生一组由前景目标和背景图像混合而成的一组图像。我们使用显著性检测数据集来分割前景目标和Pascal VOC数据集来作为背景。另外,我们通过目标掩膜在背景图像上的模拟遮挡。
    对于这两个策略,我们进一步形式化目标帧的掩膜,使用一个随机仿射变换,来模拟前一帧参考掩膜。策略2模仿更复杂的变化,覆盖了更大的目标类别变化,因为显著性检测数据集比Pascal VOC数据集的类别更多。策略2生成的图片有时看进来是不自然的、违反事实的,而策略1生成的图像都比较自然。我们经验性的发现两种策略都比较有效,因此我们等概率地使用两种策略来产生训练样本。
    Fine-tuning on video data. 在仿真数据上进行预训练以后,我们在视频分割数据集上进行微调。通过在实际视频序列上的训练,我们网络学习适应长时序外观变化(在参考帧和目标帧)和短时移动(目标帧和前一帧掩膜)。我们在DAVIS-2017数据集上训练网络,它包括60个带有像素级标注的短HD视频。为了从一个视频序列中准备训练样本,我们随机地按时间轴抽取参考和目标帧。如果视频里有多个实例,我们只选择一个实例。
    Alt
    上面描述的原始fine-tuning方法可能和实际场景不符合,因为它不能反映随时间的错误累积。为了解决这个问题,我们在经常估计错误的数据上微调模型。具体来说,我们通过时间来周期性的连接我们的模型,并将前一帧的softmax(未二值化)输出作为当前帧的指导掩码,以保留估计的不确定性。这使我们能够使用BPTT来训练循环神经网络。为了这一训练,我们使用从视频的时间轴是随机抽取的N个连续的目标帧。Fig4展示了我们的循环连接神经网络。

Inference

我们假设给出第一帧的真值掩膜,遵从视频目标分割半监督场景的通用设置。我们设置第一帧为参考帧,按顺序估计剩下帧的掩膜。注意,我们把前一帧的输出概率图(未二值化)作为目标帧的指导掩膜。当测试视频序列时,我们只计算一次参考流编码器(第一帧)的特征,这使推断的速度更快。为了捕获不同尺寸的目标,我们在三个不同的尺度上处理帧,平均输出结果。
Multiple Objects 对于多目标情形,我们使用相同的模型,只是在推断时处理这一场景。一个比较简单的办法是独立处理每个目标,按最大概率赋予标签。另一个方法是winner-take-all方法,它利用实例的不相交约束(例如一个像素不能同时属于多个实例),通过在每次估计时将非最大实例概率设置为零。相对于简单的方法,winner-take-all方法能够改进精度,但是它仍然离最优值很远,因为它忽略了很多有用信息。
为此,我们提出了softmax aggregation,它将多个实例概率柔和地组合在一直,同时将它们限制为正数且总和为1:
Alt
其中, σ \sigma σ和 logit代表softmax和logit函数, p i , m ^ \hat{p_{i,m}} pi,m^是网络对实例 m m m在位置 i i i的输出概率, m = 0 m=0 m=0代表真值, M M M是实例的个数。为了计算背景的概率,我们计算网络合并前景的输出,从1减去。我们在每步中使用等式(1)整合实例的网络输出,然后把它们传到下一帧。
分子上 p i , m ^ \hat{p_{i,m}} pi,m^就是在位于位置 i i i的像素,属于目标 m m m的概率, 1 − p i , m ^ 1-\hat{p_{i,m}} 1pi,m^是位于位置 i i i的像素,不属于目标 m m m的概率,然后计算这两个值的比率。分母上,是将像素 i i i对所有目标的这一比率进行求和,达到将值的范围scale到[0,1]的效果

Implementation Detials

我们使用 256 × 256 256\times256 256×256的patches用于预训练,使用 256 × 512 256\times512 256×512的patches用于微调。在微调阶段,我们设置循环数为5,随机跳过一些帧来模仿快速运动。我们在所有的训练数据上使用随机仿射变换来增强样本。在所有的实验中,我们使用Adam优化器,固定学习率为 1 e − 5 1e-5 1e5。使用单个NVIDIA GeForce 1080 Ti GPU,预训练需要大概3天,微调大概需要2天。

Experiments

我们在标准benchmark数据集上评测我们的算法,并且和目前的SOTA方法比较,然后,我们开展综合的ablation和add-on实验,来验证我们方法每个组件的效果。

Main results

我们使用DAVIS,SegTrack和JumpCut数据集在进行评估。

  • DAVIS 2016 验证集用于单目标分割
  • DAVIS 2017验证集和SegTrack v2用于多目标分割
  • JumpCut用于视频剪切场景的JumpCut

对于DAVIS数据集,我们使用提供的benchmark代码测试了区域相似度 J \mathcal{J} J和轮廓精度 F \mathcal{F} F。对于SegTrack v2和JumpCut数据集,因为视频有不同的分辨率,在处理视频以前,先将视频按短边将尺度置于480p,根据原论文中作者推荐的评价工具来评测算法表现。结果视频包含在附加材料中。代码和模型都可以在网上获得
Alt
DAVIS-2016.我们在Table 1中将我们的方法和目前的SOTA方法进行比较。在这个表格中,我们突出每个方法的共同特征。大多数方法依赖于在线学习,利用测试视频的第一帧进行微调。后处理也经常用来改进输出结果(密集CRF,bounding snapping等)。一些方法也利用一些额外的光流信息。
在这些没有在线学习的方法中,我们的方法明显比其他方法要好。比起那些使用在线学习的方法,我们的技术也能在没有进一步的微调和后处理的情况下取得可比较的精度。
在这个表格中,OSVOS和OFL的运行时间是从其他论文里获得的。其他的方法,运行时间都是从原始论文里获利的。即使考虑到实现和运行环境的不同,我们的方法仍然比先前的方法显示出不可匹敌的效率,多亏了我们的有效推断和没有在线学习和后处理。
在这里插入图片描述
DAVIS-2017.在table 2中,我们报告了在DAVIS-2017数据集上的多目标分割结果。我们的方法达到了SOTA结果。
Generalization on SegTrack v2.我们在SegTrack v2上评测我们的模型。我们使用的DAVIS-2017评测时相同的模型和参数。我们的方法显示了与使用在线学习方法的有竞争性的表现。需要注意的是,由于我们避免在线学习,我们的网络是在DAVIS-2017训练集上训练的,它对SegTrack v2的数据分布完全是不了解了。因此,这个实验显示了我们方法的泛化性能。
Video cutout on JumpCut.为了在video cutout场景评估我们的方法,我们进一步在JumpCut数据集上测试我们的网络。再一次的,我们使用在DAVIS数据集上训练的模型,而不经过任何修改,它对JumpCut的数据分布是完全不了解的。Table 4显示,我们的方法明显比其他方法要好。
在这里插入图片描述
在这里插入图片描述
Fig7显示了高质量的可视化结果,我们的方法在不同的目标和运动上表现都很好,并且能够处理多目标。

Ablation Study

我们进行了广泛的消融研究,以证明我们方法的不同组成部分的效果。
Network inputs. 我们的模型需要两个图像/掩膜集,一个是参考帧,另一个是目标帧。我们研究模型的每个输入的重要性。如果我们阻拦住参考帧输入流,网络应该传递前一帧掩膜到当前帧,而没有任何参考信息。为了评价这一设置,我们将参考帧置零,而不改变网络架构。我们将这一模型记为- R e f Ref Ref。另一方面,如果我们不输入前一帧掩膜,网络应该检测参考帧中的目标,而不使用任何时间信息。我们将这一模型记作- P r e v Prev Prev。需要注意的是,对于这个实验,我们基于两阶段训练模式训练两个独立的模型。
Table 5显示了实验的结果。在两个ablation设置中,我们观察到性能的急剧下降。模型- R e f Ref Ref和其他论文中有相似的设置,但是没有在线学习。这一设置的低分显示了,对于当前帧,简单使用refine前一帧掩膜不足以取得很好的结果,因为它易于漂移,并且无法处理遮挡。另一篇论文通过在线学习和光流解决了这一问题。
 对于模型- P r e v Prev Prev,这一问题设置和另一篇论文比较像,但是我们的结果给它要好。我们猜想,这一改进主要源于我们的预训练。尽管如此,这一模型仍然受限于它的结构,因为它完全依赖于目标和参考帧的外观,难于处理剧烈的外观变化和具有相似外观的相同实例的情形。有论文通过在线调整,每一步更新模型来解决这一问题。
 在Fig 5中,我们通过和完整的模型,比较裁剪的变化来展示它们的限制。- R e f Ref Ref漂移到背景纹理,- P r e v Prev Prev不能随着时间适应外观变化,而完整的模型显示了一个稳定的结果。
Training stages.我们通过两个步骤训练模型,在仿真数据上预训练,然后在视频数据上微调。在Table 5中,我们凭经验验证每个训练阶段的效果。模型- P T PT PT跳过了预训练阶段,- F T FT FT跳过了微调阶段。另外,为了突出在训练时recurence的效果,模型- R e c Rec Rec被在两个阶段中训练,但是在微调的过程中没有微调。正如Table 5中显示的,两个训练阶段对取得精确的结果都非常重要,带有recurence的训练能进一步的提升性能,达到SOTA。

Add-on Study

尽管我们的模型已经能达到SOTA,我们仍然来研究额外的组件能如何提升性能。Table 6总结了在DAVIS-2016验证集上的add-on研究结果。
Alt
Online learning.和其他的方法使用在线学习一样,我们在测试视频参考帧上微调我们的模型,来调整模型适应目标的外观变化。为了在单独帧上训练我们的模型,我们使用策略1,通过应用不同的变换,从单独的图像中自动生成参考帧和目标帧输入。对于在线微调,我们设置学习率为1e-7,迭代次数设为1000,使用ADAM优化器。
 尽管在线微调改进了我们的模型,它比其它的方法相对较少,其它的方法至少有10个点的提升。由于所有最新方法的性能在数据集的相似点处都处于饱和状态,因此该结果很自然。我们认为这意味着我们的模型已经从参考流输入中充分利用了目标对象的外观信息。因此,不像先前的方法,我们能够避免在线学习的计算。
Refinement with CRF.我们使用dense CRF作为后处理来精练我们的输出。densef CRF的超参数通过使用一个网格搜索来发现。
 CRF按不同的方式影响两种度量,它提升了 J \mathcal{J} J,但是降低了 F \mathcal{F} F。我们观察到CRF帮助精练掩膜边界,从而更加靠近目标,增加整体的覆盖区域,但是有时在 F \mathcal{F} F非常敏感的情况下平滑了细节,如Fig 6所示。我们认为,我们的网络结构,尤其是解码器中的refinement module,能够精练结果,而不需要额外的后处理,不像之前的基于DeepLab架构的能够输出粗尺度的方法。
Alt
Visual memory(RNN).受一些论文的启发,我们使用视觉记忆扩充我们的模型。尽管我们目前的训练方案使用recurrence,但是使用一个额外的内存模块,可以在不同的时间步长直接连接内部功能。为此,我们通过将RNN单元植入到全局卷积快的输出。特别是,我们使用3×3卷积GRU单元将上一时间步长的特征与当前时间步长相结合。请注意,由于RNN训练需要顺序数据,因此我们在预训练阶段(使用合成样本)之后插入GRU单元。在固定其他网络过滤器的权重之后,我们随机初始化了GRU权重并对其进行了训练。我们采用了一种学习方案,即每3000次迭代将递归的次数增加1,直到达到5。在进行GRU训练之后,我们将所有权重微调在一起。
 Table 6显示,额外增加一个GRU单元,不能取得提升。我们猜测,这是由于过拟合,因为我们观察到,训练损失比之前的模型低太多。实际上,视频训练集对于训练RNN来说,非常受限,因为总共只有60个视频序列。
Alt

Conclusion

 在这篇论文中,我们为半监督视频目标分割提供了一个新方法。我们证明了使用两阶段方案训练的孪生编码器-解码器网络无需在线学习和后处理即可达到当前的最新性能,这使其速度比同类方法快得多。
 对于这个问题,未来还有几个方向。第一,我们可以结合ROI提取技术,例如ROI合并和ROI-align。在我们的实验中,我们发现,掩膜估计对目标的尺寸非常敏感。目前,我们使用多尺度推理来缓解这一问题,前一帧中目标对象的ROI捕获了对象尺度。因此,ROI提取技术可以通过归一化比例使问题更容易。尽管由于过度拟合,我们无法从RNN获得很多改进,但我们仍然相信,如果我们拥有更多的视频训练数据,则长期记忆有可能处理具有挑战性的场景(例如瞬时遮挡)。目前,我们仅将第一帧用作遵循标准基准设置的参考帧。 但是,我们的模型足够灵活且快速,足以允许用户更改参考框架(通过选择视觉确认的中间结果之一或提供其他框架注释)。

猜你喜欢

转载自blog.csdn.net/PAN_Andy/article/details/102698027