当前位置: 代码迷 >> 综合 >> Mask Track论文翻译
  详细解决方案

Mask Track论文翻译

热度:101   发布时间:2023-10-20 19:52:52.0

摘要

受到近期深度学习在实例分割和目标追踪领域的进展,我们提出将视频目标分割当做引导式的实例分割概念。我们的模型在每一帧的基础上,使用前一帧对后一帧感兴趣目标的预测作为引导。我们论述了高精度的视频目标分割可以使用仅仅用静态图训练的深度网络实现。我们的方法的关键地方成分在于结合了在线和离线学习策略,离线学习目的是产生一个提炼对感兴趣目标的预测掩码,在线学习使得(allows to)捕捉到指定的目标实例的形象。我们的方法可以处理不同类型的输入注释:边界框、分割标签和包含了多个注释帧,使得系统适合各种多样的应用。在三种数据集上,我们获得了相当的结果,独立于输入注释的类型。

介绍

卷积网络已经在很多计算机视觉的基本领域展示了卓越的性能,凭借大规模注释数据的可用性。然而,一些重要的挑战在视频处理中使用卷积网络很困难,因为制造一个足够的密集、像素配对(pixel-wise)的视频数据用于训练通常是很困难的。

一个例子是视频目标分割,给指定目标的一个或者少数帧的分割掩码,该任务是精度地分割出其他后续帧中相同的目标。目前效果顶尖的方法要么是结合框跟踪和分割,要么是在时序中通过CRF-like和GrabCut-like传播第一帧的分割掩码。

这篇论文一个关键的贡献是全部的注释视频是不必要的。我们论述了高精度的视频目标分割可以通过仅仅使用静态图训练深度网络实现。

我们从新的角度提出了一个视频目标分割方法。我们展示了为语义图像分割设计的卷积网络可以被利用来做每一帧的实例分割和一般性目标分割,同时区别属于同一类的不同的实例。对于每一个新的视频帧,网络通过送入前一帧预测的感兴趣掩码,以此来预测新的视频帧的感兴趣掩码。我们因此提及我们的方法作为指导式的实例分隔。我们目前所知,这是第一篇全部训练视频目标分割的方法。

我们的系统是高效的,由于它的前馈结构,并且能在单次视频序列中产生新的高质量的结果,不需要太多帧之间的联系。这和许多视频目标分割方法形成鲜明对比,那些方法通常要求在多帧之间的全局性连接或者全部的视频序列来实现一致的结果。我们的方法可以处理不同的注释类型,在极端的情况下,甚至简单的边界框作为输入都是足够的,能实现相当的结果,致使我们的方法对于各种实际应用非常灵活。

我们的视频目标的分割质量的关键是结合了线下和线上学习策略。在线下阶段,我们使用对掩码进行变形和粗化,以此训练网络从粗糙的估计中产生精确的输出掩码。线上阶段延伸了从之前视频分割中的工作得到的ideas,是的这个方法更加容易随新视频的输入而更好的优化。

得到的结果是一个单一化的,一般化的系统,相较于其他经典方法,在三个相异的数据集标准上比较,尽管在所有视频中使用相同的模型和参数。我们提供了一个详细的消融学习并且探索了不同的注释类型的影响,探讨了几个已提出的模型的延伸,这些允许获得更加好的结果。

相关工作

MaskTrack 方法

我们从一个新的角度看视频目标分割,我们称之为指引式的实例分割。对于每一个新的帧,我们期望对感兴趣的目标像素给个标签,基于这种目的,我们使用已存在的用于分割的模型作为基础,训练这个模型超声每一帧的实例分割。我们选择deeplabv2,但是我们的方法并不限制仅仅使用某一特定网络结构。

接下来的挑战是,如果告诉网络哪一个实例需要分割?我们通过使用了两个互相补充的策略解决这个问题。一个是通过送进前一帧的感兴趣目标的掩码来指导网络朝着感兴趣目标的方向前进,第二部分是使用了在线训练,微调模型使其对单个实例更加针对化。

3.1 线下学习分割实例

为了指导像素分类网络分割感兴趣的目标,在网络的输入中加入一个通道,输入变成RGB+mask,有4个通道。额外多出来的亚娜通道就是提供了一个在当前帧中感兴趣目标的形状和位置的大致预测。我们训练这个网络来获得精确的目标分割,输入当前帧和目标的粗略估计的掩码。我们跟踪网络实际上是掩码细化网络。

有两个关键点使得我们的方法能有效果。第一,非常粗糙的掩码对于我们训练好的网络是足够的,足以提供一个合理的分割结果。甚至把边界框当做掩码都能产生合理的结果。这个输入掩码主要的作用是指导网络朝着正确的目标去分割。

第二,这个特定的方法不要求我们使用视频作为训练数据。因为我们仅仅使用mask作为额外的输入,而不是一个图像的一部分,所以我们能简单的使用合成的训练样本,从单个帧的实例分割注释中获得。这使得训练可以基于大量的多样的图像,并且避免了必须使用已存在的视频分割数据集来做训练。

图1展示了我们网络的结构,为了模仿在前一帧的输出掩码中的噪声,在线下训练过程中,我们通过仿射变换和非刚体变换来变形掩码,接着用膨胀形态学的办法来移除目标轮廓的细节,以此产生了输入的mask。我们在上万张图像的数据集中使用这种数据产生的办法,数据集包含了多样的目标实例,例子见图2。

在测试阶段,给定一个在t-1时刻的掩码估计,我们应用膨胀操作在掩码上,接着使用这个粗略的估计作为第t帧的mask通道输入。

仿射变换和非刚体变形目的是模型化在相邻帧中目标被期望的动作。这个粗化过程允许我们生产相似于测试样本的训练样本,模仿输出输出掩码中的斑点形状。这两个部分使得估计变得更鲁棒,有助于避免从前几针的误差积累。

在训练之后,网络学会了指导性的实例分割,和deepmask、hypercolumns相似,但是不同于使用边界框作为引导,我们能使用任意的输入掩码。训练细节在第四部分详细描述。

当仅仅使用线下训练,分割过程分为两部分,前一帧的掩码是粗化的,作为网络的输入来估计当前帧的掩码。因为目标有平滑移动的趋势,目标的前一帧的掩码足以提供好的猜测。这个方法是快速的,也能获得好的结果。我们也使用了光流信息来传播掩码,但是发现光流误差抵消了增益。

仅使用线下训练的网络,提出的方法实现了和之前论述的工作相当的结果。然而整合线上和线下训练能获得更加好的效果。

3.2 学习线上实例分割

为了更加增强视频目标分割的质量,我们借助并延伸了现有的办法,idea最开始在跟踪领域被提出(来自于MDNet)。当前最好的跟踪效果都使用了线上跟踪。所以我们考虑加上线上跟踪作为第二部分来期望获得更好的效果。

在测试阶段,使用第一帧的分割结果作为额外的输入,对这个单帧注释进行增强(变形),接着微调模型来对指定的目标使得模型更加特殊化。

我们使用了和线下训练相似的增强方法。在仿射变化和非刚体变形中,从一帧中我们也加入了水平翻转和旋转来产生多样的训练数据。从一帧注释中,我们产生了近千张训练样本,用于将线下训练好的模型继续微调。

在线上训练阶段,网络权重部分地捕捉特定目标的形状。模型目的在于寻找在一般化的实例分割和特定的实例分割。线上训练的详细过程在第四部分提供。

尽我们所知,我们的方法是第一个使用像素分类来做视频目标分割。我们把我们的方法称为maskTrack。

3.3 变体

另外我们考虑了一些变体结构。第一,我们想展示我们的方法是灵活的,能解决不同类型的输入注释。第二,运动信息能被很容易的整合进我们的系统,进一步提高分割的质量。

边界框注释

我们讨论一种变体,称为maskTrack-box,使用边界框作为输入掩码,为了能使用这个变体,我们在第一帧上使用另一个卷积网络来获得输入掩码,第二个网络是使用边界框作为输入掩码训练的,其他帧的做法和标准的maskTrack一样。

光流

我们也考虑使用光流作为另一个信息来指导分割。指定一个视频序列,我们使用epicFlow和convolutional boundaries来计算光流。为了和maskTrack并行,我们进而使用光流场的大小作为输入图像,计算第二个输出掩码。模型的使用和之前一样,无需再训练。尽管网络已经基于RGB图像训练过了,这个策略依然不错,因为对象流大小可以被视为一个灰度图像,依然捕捉了对象的形状信息,在图3中有例子。使用RGB模型可以避免在带有分割注释的视频数据集上训练。

然后我们通过将两个并行网络的输出掩码做平均来做融合(使用RGB图和光流图分别做输入)。我们称之为 maskTrack+flow。光流对使用RGB图的maskTrack提供了一个互相补充(互助)信息,提高了全面的性能。

4 网络实现和训练

接下来,我们现在描述我们的方法的实现细节,分为线下和线上以及数据增强三个部分。

网络

论文中所有的实验都使用的是DeeoLabv2-VGG 网络。模型采用在imagenet预训练的vgg16网络。对于第一个卷积层的卷积核中额外的掩码通道,我们使用高斯初始化(也就是每一个卷积核都加一个通道,用高斯初始化)。我们也尝试了用0值初始化,发现效果一样。

线下训练

我们方法的优势是不需要代价高昂的视频在视频帧中的像素分类标签作为训练标签,因此我们可以使用已存在的优良的图像分割数据集中的图像和注释。(也就是说还是需要图像的像素标签,而且在测试中不是使用传播关键帧特征的办法)我们考虑了ECSSN,MSRA10K,SOD和PASCAL-S。这产生了一个有11282中训练图像的集成数据集。

对额外的通道的输入掩码的产生是通过把二进制分割掩码变形之后还使用了仿射变换和非刚体变换,就像3.1部分讨论的那样。对于仿射变换,我们考虑了正负5%的随机尺寸变换和正负10%的平移。非刚体变形用到thin-plate splines,使用了5个control point和在x,y方向上随机的移动正负10%的原始掩码宽和高这么大的间隔。然后掩码使用5个像素半径的膨胀操作来粗化。这个掩码变形过程被应用在训练集中的所有的目标实例。对于一张图像,两个不同的掩码的产生见图2。

对于训练,我们跟随[8]中的方法,并且使用SGD,mini-batch是10,采用初始学习率为0.001的多项式学习策略。动量和权重衰减分别设置为0.9和0.0005。网络训练20k的迭代次数。

线上训练

为了在线训练满足适用性,我们微调之前线下训练好的模型,使用第一帧训练200次,产生的样本来自于第一帧的注释。我们使使用水平翻转和旋转以及为额外的输入通道变形注释掩码来实现数据增强。这产生了1000张以内的训练样本。(仅仅是第一帧吗?)

网络使用相同的学习参数离线训练,微调所有的卷积层和全连接层。

在测试阶段,我们的基本的maskTrack系统运行了大概12秒/帧,比objFlow快一个量级。

5 结果

在这一部分中我们描述我们的评估协议(protocol),研究我们系统的不同成分的定量性的重要性吗,并且对比现在三个最新型的数据集来报告我们的结果(一共190个视频),同时对比注释的不同数量在最终质量上的效果。另外定量和定性的结果在补充材料中提供。

5.1 实验设置

数据集

我们在三个不同的视频分割数据集(DAVIS,YouTubeOBjects,SegTrack-V2)评估我们的方法。这些数据集包括混杂的挑战,例如形状变换,遮挡,运动模糊,和形状变形。

DAVIS包含了50个高质量的视频,总共有3455帧。每一帧都提供像素级分割标签,都是从背景分理出的一个单目标或者两个连接的目标。

YoutubeObjects包含10个对象类别的视频。我们考虑126个超过20000帧的视频子集,其中像素级的ground truth分割掩码由[19]提供。

SegTrack-v2[24]包含14个视频序列,包含24个对象和947帧。每一帧都有一个像素级的掩码。由于为具有多个对象的序列提供了实例级注释,因此将每个特定的实例分割视为单独的问题。

评估

我们使用标准的mIoU度量评估。估计出来的分割和GT的二进制掩码的IOU,也称为jaccard index,在整个视频中求均值。对于DAVIS,我们使用已被开源的benchmark代码【30】,排除了第一和最后一帧的评估。For YoutubeObjects
and SegTrack-v2 only the first frame is excluded.
 

5.2 消融学习(ablation style)

我们首先研究我们方法中的不同组成。我们在DAVIS上实验,同时使用平均IOU来测试性能。表1展示了每一个成分的重要性,组成成分就是第三部分所描述的那些,还报告了增加额外的成分带来的提升。

Add-ons 

我们首先研究在基础MaskTrack系统上添加两种成分的效果,这是专门为DAVIS调整的。我们能看到光流提供了外形的补充性的信息,增强了大概4%的效果。在顶层增加调优的后处理 CRF之后,能提高几个mIOU点,达到80%,是DAVIS上最好的结果。

即使光流能提供不同增益,但是我们发现在跨数据集的时候它很脆弱。处理光流的不同策略提供了1-4%的提升,但是没有在所有数据集上提供一致性的增益;主要由于计算光流的模型的失败。为了呈现在所有数据集中使用一种带固定的参数的模型,在5.3中的结果我们没有使用已经计算好的光流。

training

我们接下来研究线下和线上学习。通过禁止线上微调,仅仅通过线下训练,我们发现掉了5%的IOU百分点(percent points),说明线上微调确实扩展了跟踪能力。如果我们跳过线下训练直接使用线上训练微调,结果掉的很多,尽管能获得57.6的mIOU,这已经足够惊人了,因为仅在imagenet上预训练加单帧训练的效果已经足够高了。

(剩下的不重要了,略    ^_^)

pytorch代码也会后续补充。

如果您觉得有用,请点个赞,都是人工翻译的。

  相关解决方案