视频分割 Fast Video Object Segmentation by Reference-Guided Mask Propagation

摘要

作者提出一种用于半监督视频目标分割的有效方法。与其他方法相比,此方法实现在运行少量的时间中,达到与现有方法的准确度。在最后,作者提出一种深度Siamese 编码器-解码器网络,设计充分利用掩膜传播和目标检测的优势,同时避免了两种方法的不足。我们的网络是通过一个两阶段的训练过程来学习的,这个过程利用了合成和真实的数据,在没有任何在线学习和后期处理的情况下稳健运行。我们在包含单个和多个对象分割的四个基准集上验证了我们的方法。在所有的基准集上,我们的方法在运行更快运行数量级的情况下具有相当的准确性。我们也提供广泛的消融 (消融研究,指通过移除某个模型或者算法的某些特征,来观察这些特征对模型效果的影响 [1]) 和附加研究来分析和评估我们的框架。

[1] 什么是 ablation study?https://www.zhihu.com/question/60170398

介绍

视频目标分割——从一个视频序列中分离前景目标——是视频分析和编辑的重要任务之一,并且Adobe After Effects等为其提供专用的工具作为商业应用。但是自动视频目标分割问题远没有解决,后期视频编辑经常需要大量的人工交互才能取得令人满意的结果。然而最近的工作已经解决处理了这个问题,由于或质量或速度的原因,性能仍然有限。在本文中,我们的目标是发展一个精确的视频目标分割算法,算法足够快,可以用于满足交互设置。
视频目标分割方法通常依赖于两个重要的线索。基于传播的方法主要利用物体运动的时间相干性,将这个问题表示为从一个给定的带注释的帧开始的对象掩码传播(即像素级跟踪)。这些方法依赖于像素间的时空关系,这样只要外观和位置的平滑变化,就可以适应目标物体复杂的变形和运动,然而,这些方法容易受到诸如遮挡和快速移动等时间不连续的影响,一旦传播变得不可靠,就会出现漂移。
基于检测的方法从所给的带注释的帧中学习目标物体的外观,在每一帧执行目标的像素级检测。由于它们很少依赖于时间一致性,因此对遮挡和漂移具有较强的鲁棒性。然而,由于它们的时序大多基于带注释帧中的对象外观,因此常常不能适应外观的变化,并且难以分离具有相似外观的对象实例。
最近解决这个问题的方法利用了深层网络。这些方法大多很大程度上依赖于在线学习,其中经过预先训练的深度网络会在测试视频上进行了微调。虽然在线训练通过让网络适应目标对象的外观来提高分割精度,但它在计算代价很昂贵,从而限制了它的实际应用(例如,它需要对每个测试视频进行几分钟的gpu驱动的训练)。
在本文中,我们提出一种新的混合方法用于半监督视频目标分割。我们构建一个Siamese 编码器-解码器网络,它同时利用前一个要传播到当前帧的掩码和指定要在当前帧中检测到的目标对象的参考帧。我们的网络是设计来产生一个锐利的对象掩码,而不需要耗时的后期处理。为解决大规模分割训练视频数据集不足的问题,我们采取一种两阶段方案,在合成生成的图像数据的预训练网络,然后在视频数据进行微调。
我们的网络架构和训练计划经过精心设计,利用了传播和检测线索。因此,该网络在没有任何在线学习和后期处理的情况下运行很稳健,从而在测试时产生了巨大的效率。在公共基准数据集上,我们的方法不仅实现了最先进的性能,而且运行比先前依靠在线学习的方法(如图1所示)速度更快数量级。我们还提供广泛的实验分析,并且通过消融和附件研究评价每个组件的影响。

相关工作

无监督的方法。无监督方法旨在以全自动方式分割前景目标而无需用户注释。信息的主要来源包括视觉显着性和运动差异(例如光流和长期轨迹)。但是,前景目标的标准通常是不明确的,无监督分割不适合交互式视频编辑方案。本文重点关注半监督方法。
基于传播的方法。许多视频分割方法始于粗略地指定感兴趣对象的用户注释(例如分割掩码或在关键帧的涂鸦)。为了在整个视频序列中传播这些稀疏标签,通常使用图形表示。像素(或超像素)与邻近时空连接的时空图是从视频中构建的。执行像图分割这样的基于能量的优化来为每个节点分配最佳标签。
对于专业视频编辑应用程序,交互式方法通常比自动方法更受欢迎。这些方法专注于为用户设计一种有效的方式来指定分段约束并快速响应这些约束。
最近的方法已经将视频中的标签传播用于深度学习。在[20]中提出了一个时间双边网络用于时空密集滤波。在[30]中,训练了一个深度网络来细化前一帧掩码以创建当前帧掩码。他们只使用静态图像为这项任务训练了一个网络。他们用测试视频的第一帧使用在线微调来记忆目标物体的外观,从而提升了性能。 Khoreva等人通过提出大量的数据增强策略来扩展在线学习,以实现更高的准确性。在[18]中,胡等人为多实例分割开发了一种递归神经网络框架。通过一个递归网络,他们可以有效捕捉时间上的连贯性,并利用视频的长期时间结构。
基于检测的方法。半监督设置中的另一种方法是利用给定参考框架中目标对象的外观。该类别中的方法将视频对象分割作为每帧中的像素级对象检测,在不考虑时间一致性的情况下逐帧处理视频。在[5]中,Caelles等人应用一次在线学习,使用预先训练的模型在标签框架上调整深度网络,并使用该精细调谐网络作为检测器。 Maninis等人[27]通过结合来自辅助实例分割网络的附加信息扩展了这一想法[26]。 Voigtlaender和Leibe[40]通过采用源于箱级追踪的在线适应机制,进一步发展了[5]的想法。 Yoon等人[45]提出了一个连体网络用于像素级匹配以检测目标物体。

方法

我们方法的目标是给定一个带有目标掩码的参考帧,从整个视频序列中自动分割目标对象。我们的方法的关键思想是将带有注释的参考帧以及当前帧与先前的掩模估计一起引入给深度网络,以便网络通过匹配参考帧的外观来检测目标对象,并且还通过追踪前一帧掩膜在当前帧的位置。

网络结构

图2描述了我们的网络结构。我们将该模型构建为连体 (Siamese) 编码器 - 解码器结构,该结构可以高效地处理四个输入并产生锐利的掩模输出。该网络由两个共享参数的编码器,一个全局卷积块和一个解码器组成。该网络设计为完全卷积,可处理任意输入大小并生成锐利的输出掩码。

连体编码器。编码器将一对RGB图像作为输入,每个图像都带有一个掩模图。编码器包括一个参考流和一个目标流,滤波器权重在流之间共享。参考流的输入包括通常为视频的第一帧的参考图像和groundtruth掩码。对于目标流,提供了与前一帧对应的目标(当前)图像和引导掩模。我们沿着通道轴连接图像帧和掩模,然后将其送入编码器。参数共享编码器将两个流数据映射到相同的特征空间。

视频分割 Fast Video Object Segmentation by Reference-Guided Mask Propagation_第1张图片
network architecture.png

我们的编码器网络基于ResNet50[16],并且被修改为能够通过在第一卷积层中植入额外的单通道滤波器来获得4通道张量。网络权重从ImageNet预先训练的模型中初始化,除了新添加的随机初始化滤波器。

全局卷积块。两个编码器流的输出被串联并馈送到全局卷积块。此块旨在执行参考流和目标流之间的全局特征匹配以定位目标对象。为了克服卷积运算的局部性,我们采用全局卷积[29],通过组合1×k + k×1和k×1+ 1×k卷积层(在我们的实现中k = 7)来有效地扩大接受域。全局卷积块的输出进一步由一个残差块[17]处理。请注意,我们从原始形状中删除了批量归一化[19]。该块中的所有卷积层产生具有256个通道的特征图(例如,滤波器的数量为256)。

解码器。解码器采用全局卷积块的输出,并通过跳过连接在目标编码器流中提供掩码输出。为了有效地融合不同尺度的特征,我们使用细化模块[32]作为我们解码器的构建模块。我们通过用残余块代替卷积层对原始结构进行了一些修改,如图2所示。我们的解码器由三个细化模块,一个最终卷积层和一个生成物体掩模的softmax层组成。掩码输出的大小是输入图像大小的1/4。细化模块中的每个卷积图层都会生成256个通道的特征映射,最后一个会生成双通道蒙版映射。

两阶段训练

DAVIS-2017[33,31]是用于视频对象分割的最大的公共基准数据集,并提供由60个视频组成的训练集。即使我们使用预编码的编码器权重,这还不足以从头开始训练我们的深度网络。为了解决这个问题,我们提出了一个两阶段的培训计划。我们的网络首先使用静态图像数据集对模拟样本进行训练,然后对视频分割数据进行微调。

对模拟样品进行预培训。在第一阶段,我们使用带有实例对象掩模(Pascal VOC [10,14],ECSSD [34]和MSRA10K [8])的图像数据集来模拟训练样本。对于我们的双流编码器,我们需要包含相同对象的参考帧和目标帧数据。为了自动生成训练样本,我们使用了以下两种策略。

•策略1:通过应用两组不同的随机变换来产生一对图像(旋转,缩放,色彩扰动),从具有对象掩膜的图像生成一对图像。我们使用Pascal VOC数据集[10,14]作为源图像数据库。

•策略2:从一对前景对象和背景图像中,我们将两组不同的随机变换应用到前景对象,然后通过将变换后的前景图像与背景图像混合来生成一对图像。我们使用显着性检测数据集[34,8]来分割背景图像的前景对象和Pascal VOC数据集[10,14]。此外,我们通过在背景图像中使用对象遮罩来模拟遮挡(例如,目标图像(图3)中的蝴蝶被人遮挡)。

视频分割 Fast Video Object Segmentation by Reference-Guided Mask Propagation_第2张图片
Training samples.png

对于这两种策略,我们进一步使用随机仿射变换对目标帧的掩膜进行变形,以模拟与前一帧相似的引导蒙版[30]。然后,我们随机地从每个生成的图像中裁剪一个包含至少50%目标对象的训练样本。图3显示了两种策略产生的一些例子。

策略1模拟静态场景的环境变化(摄像机角度,变焦,照明)。策略2模拟更复杂的变化,并涵盖更多种类的对象,因为显着性检测数据集比Pascal VOC数据集具有更多不同类别的对象。来自策略2的图像有时看起来不自然,并且混合了伪影,而来自策略1的图像是自然的,没有伪影。我们凭经验发现这两种策略都有帮助,因此我们使用两种策略以相等的概率生成训练样本。我们分析了这个预培训阶段的效果。

微调视频数据。在对模拟样本进行预训练之后,我们用视频分段数据对网络进行微调。通过对真实视频序列进行训练,我们的网络学习适应长期外观变化(参考帧与目标帧之间)和短期运动(目标帧与前一帧的掩码之间)。我们在DAVIS-2017训练数据集[33,31]上训练了我们的网络,该训练数据集包含60个带有像素级实例标签地图的短高清视频(总共4029帧)。为了从视频中准备训练样本,我们采用随机时间索引的参考帧和目标帧。如果视频中有多个实例,我们只选择一个实例。

上面解释的天真微调可能与真实的测试场景不兼容,因为它不能反映随时间推移的错误累积。为了解决这个问题,我们使用自己的估计对我们的模型进行微调,这种估计往往伴随着错误。 具体而言,我们反复地通过类似于[18]的时间连接我们的模型,并馈送先前帧的softmax(未二进制)输出作为当前帧的导引掩码,以便保持估计的不确定性。 这使我们能够使用反向传播时间(BPTT)来训练经常连接的网络[43]。 对于这种训练,我们使用来自视频的随机时间索引的N个连续目标帧。 我们将在图4中描述我们经常连接的连接时间网络。我们将讨论微调对视频数据的影响,而不是在第4.2节中应用递归。

视频分割 Fast Video Object Segmentation by Reference-Guided Mask Propagation_第3张图片
Training with recurrence.png

推论

我们假设第一帧的地面掩模是在视频对象分割的常规半监督设置之后给出的。我们将第一帧设置为参考,并依次估计剩余帧的遮罩。请注意,我们将前一帧的输出概率图作为目标帧的引导蒙版而不进行二值化。在测试视频序列时,我们只计算一次参考(第一帧)流编码器的特征,这使得我们的推理效率更高,如图4所示。为了捕获不同尺寸的对象,我们在三个不同尺度输入(例如0.5,0.75和1)并对结果进行平均。

多个对象。在多个对象的情况下,我们仍然使用相同的模型,但在推理时处理场景。一种天真的做法是独立运行每个对象并为其分配最大输出概率的标签。另一种方法是利用实例的不相交约束的赢者通吃方法,即通过在每次估计处将非最大实例概率设置为零,每个像素不能属于多个实例。与朴素方法相比,“赢者通吃”方法提高了基准测试的准确性,但仍然远不是最佳,因为它会丢弃有益的信息。

为此,我们提出softmax聚合,它将多个实例概率轻柔地结合在一起,同时将它们限制为正数并且总和为1:


softmax aggregation.png

其中σ和logit分别表示softmax和logit函数,pi,m是像素位置i处的实例m的网络输出概率,m = 0表示背景,M是实例的数量。 为了计算背景的概率,我们计算合并的前景的网络输出,然后从1中减去它。我们使用等式1聚合实例的网络输出。 (1)在每个时间步并将其传递到下一帧。

实现细节

我们分别使用256×256和256×512大小的补丁进行预训练和微调。 在微调中,我们将循环次数设置为5,并随机跳过帧以模拟快速运动。 我们还使用随机仿射变换增强了所有训练样本。 我们使用Adam [22]优化器对我们所有的实验进行固定学习率1e-5。 预培训大约需要3天,使用单个NVIDIA GeForce 1080 Ti GPU进行微调大约需要2天。

参考链接《Fast Video Object Segmentation by Reference-Guided Mask Propagation》论文阅读

视频分割 Fast Video Object Segmentation by Reference-Guided Mask Propagation_第4张图片
Quantitative evaluation.png

你可能感兴趣的:(视频分割 Fast Video Object Segmentation by Reference-Guided Mask Propagation)