摘要:
本文解决了半监督视频目标分割的问题。给定第一帧的mask,将目标从视频背景中分离出来。本文提出OSVOS,基于FCN框架的,可以连续依次地将在IMAGENET上学到的信息转移到通用语义信息,实现前景分割的目的,之后学习单个标注物体的外形。尽管所有的帧序列都是独立处理的,但结果却是时序相关的,连续稳定的。我们在两个标注的视频数据集上进行了测试,结果显示OSVOS是非常快的,同时较当前流行的最好算法强一大截。
介绍:
CNN网络划时代的改变了计算机视觉领域。极大的提升了图像分类,目标检测的准确度。图像分割领域最近也被CNN占领,深度框架的网络在图像弱相关任务上进行预训练,如在IMAGENET数据集上进行预训练。深度网络的主要趋势就是深度方法需要训练数据。然而,究竟对于特殊应用我们需要多少数据却不得而知,本文将介绍一种视频目标分割的算法,仅仅需要好一张标注的图像即可,也就是只要第一帧标注。这篇文章提出OSVOS,解决视频图像中像素分类的问题。输入第一帧有标注,后面都没有标注,而是通过算法产生的对目标的mask。
本文的贡献一:采用CNN网络,半监督。在图像识别数据集上进行预训练,通过在人工标注的大的视频数据集上进行训练,最终在测试阶段在第一帧手动分割目标上(fine-tune)微调。图二显示了这个方法的大概情况。我们提出的方法观察借鉴了不曾层级的信息,来实现视频分割,这是非常符合情理的:从大量类别的一般语义信息中提取,到通常形状的分割,再到我们感兴趣目标的特定物体的分割,非常符合人类观察认知物体的方式。
本文贡献二:OSVOS 独立处理每一帧,时间的连续性作为分割的副产物,而非特意获取的。换句话说,给定第一帧的标注帧,我们将视频目标分割看做每一帧的分割问题,将每一张独立的照片输入模型中。这与时间一致性起重要作用的主流方法形成了鲜明对比,本算法假设对象在一帧和下一帧之间变化较少,这种方法可以平滑的适应视频的单帧模型,这种模型寻找形状外观逐渐变化的目标。一旦这些假设和条件不满足时,算法效果就比较差了,例如:遮挡问题,突变运动等情况。 在这种背景下,运动检测已经成为先进的视频分割算法的关键部分,然而,这并不是一项简单的任务,例如:必须以光流或者密集轨迹的方式计算时域匹配,这部分是个非常难的问题。本文认为过去时间连续性是必须的,因为那个时候需要克服形状不精确,外形模型精度差的问题。另一方面,本文利用深度网络提出一个高效高精度的模型。本模型即使独立的处理每一帧也能够体现时间的连续性。这里有些本质上的优势:OSVOS 可以穿过遮挡分割目标物体,不局限于某些运动变化,也不需要连续的依次处理每一帧,同时误差也不会通过传播到下一帧。在实践中,这允许OSVOS来处理监控场景的交错视频,在这些场景中,摄像头可也能会暂时关掉一会儿,然后还能在重启回来。
本文贡献三: OSVOS可以在精度和速度方面进行权衡,这个意义上,它可以通过两种方法来调整,首先给定一个注释帧,用户可以选择fine-tuning 的级别程度,从而在更快和更准确之间*选择,实验表明,OSVOS每一帧运行181ms,准确率 71.5%。然而当要求准确率为79.7%的时候,每一帧的运行时间则为7.83秒。其次,当使用一张标注帧时,效果不够满意,用户还可以标注更多的帧,这将大大提升分割的准确率,实验表明:两个标注帧时准确率为84.6%,四个标注帧时准确率为86.9%,而实际上一个标注帧的准确率只有79.8%。
技术上,我们采用FCN全卷积网络,这很适用于密集预测(dense predictions我不能理解这个词意思)。FCN比较流行,效果好,准确度高,计算高效。但实验表明:FCN致命的缺点是深层网络分割粗糙,导致定位不准。为了克服这缺点,大量研究人员采用skip connections of larger feature maps的方法(就是大特征图之间采用跳跃连接),或者学习一种filters(滤波器)来提高上采样效果 。据我们所知,我们是第一个采用FCN网络来做视频分割任务的。
我们在两个视频分割数据集上进行测试本算法,一个是DAVIS,一个是Youtube-Objects。结果显示OSVOS的效果显著提升,比当时最好的68%还要高,达到:79.8%。本算法处理一帧DAVOS的480p的图,一帧102毫秒。通过增加监督程度(增加到4个标注帧)可以达到86.9%。
相关工作:
视频目标分割及跟踪:目前的半监督视频分割大多数强调时间连续性,通过第一帧的分割标注传播到后续帧,来实现后续帧的分割。首先,为了减低计算复杂度,许多工作充分利用超像素,图像块,目标候选块框等方法。有人用bilateral space 方法。在此之后通常采用像素聚合的方法进行最优化,这种方法可以考虑整个视频帧序列,部分帧,或某一帧。许多方法将光流的计算放进了算法流程中,这种光流就计算方法非常费时间,降低速度。同时,也有使用深度学习来处理视频目标分割的。MaskTrack通过检测上一帧,同时使用光流和用CRFs进行后续处理,逐帧改善检测到的mask。 在视频分割传播网络这篇论文中,作者结合bilateral filtering对CNN训练。不同于上述介绍的方法,OSVOS方法流程更简单,方法是:独立的分割每一帧,得到更加准确的结果,同时速度要更快。
在视频跟踪领域(跟踪只需要给出boundingbox即可)Nam &Han 等人采用CNN网络来学习要跟踪的目标的表示方法,但仅仅只是寻找“给定帧的下一帧”的最相似的窗口而已。相反我们的CNN算法通过第一帧的标注来学习一个单目标表示方法,用这个模型来分割剩下的所有帧。
采用全卷积神经网络来实现分割:FCNs:分割的研究紧紧跟随着CNNs网络的发展。这种进步体现在图像识别方面,并促进了语义分割, 实例分割,生物医学分割,通用类别分割等。目前许多表现好的算法大都是使用类似的深度框架,这种框架:通常使用ImageNet数据集预训练,使得可以端到端训练。使用CNNs网络来精准预测(dense predictions)是非常前卫,先驱的。语义分割的全卷积网络一文提出的。作者提到通过改“最后一层全连接层”,
为“1X1的卷积层”,这种改动使得可以训练任何size 的图片,从而得到响应大小的图像的输出。这种方法同与高冗余的重叠计算方法相比,效率的到了很大的提高。更重要的是,通过删除参数密集的全连接层,可训练的参数明显减少,使得少量标注数据的训练方法更加方便训练。
大部分CNN网络框架,因为空间池化的操作或者带步长卷积操作,导致中间激活层的size逐渐变小,从下采样了的结果中进行dense predictions会导致粗糙的定位输出。有人提出使用反卷积的方式学习上采样。有研究显示浅层的的信息更有助于定位。然而,这些框架带来了更多的训练参数,同时这些方法的应用受限于大的数据。
根据FCNs网络思想,xie &Tu分别对深度网络中间层进行监督训练达到轮流检测的效果。进一步的研究了多尺度轮廓和分层分割的对偶性。,从而将神经网络引入到一般图像分割领域,在这项工作中,我们探讨了如何训练一个FCN网络,通过非常有限的标注——仅第一帧标注,来准确定位dense predictions。
One-Shot Deep Learning
假设从视频中分割出目标,只有一帧的前景背景分割信息。直观说,可以分析其本质,创建模型,并在其余的帧中寻找。对人类来讲很简单。外观,形状,遮挡等问题对人都不构成大影响。首先,这是一个物体,然后这是一个特别的物体,我们的方法正是受到次启发,逐步细化。
我们训练了一个全卷机神经网络来完成分割前景和背景的二元分类任务。我们使用两个连续的训练步骤:
首先我们对大量对象进行离线训练,以构建一个能够区分前景背景的一般模型:It is an object 。之后在测试阶段,我们通过fine-tune微调网络通过小的迭代实现分割指定实例,It is this particular object . 本算法的概览在图2中。
End to end trainable foreground FCN
理想的,我们希望我们的CNN框架能够满足下列条件:
1 :准确定位分割输出。
2:从有限的标注数据中训练相对少的参数。
3:相对快的测试时间。
我们灵感是CNN框架中的原本用于医学图像分割的。这是基于VGG框架的,经过改进可以准确的定位dense prediction。删掉了用于图像分类的全连接网络,并执行高效的图像到图像的预测系统。VGG结构由卷积加ReLU层组成,分为5个stages,随着网络的加深,每个stage之间通过池化操作对特征图进行下采样操作。我们连接池化层前的卷积层来形成跳跃路径。只要有必要,就会进行上采样操作,并将来自不同跳跃路径的特征图连接起来,形成一个具有不同详细层信息的立方体,我们将特征图线性融合到一个图像维度大小相同的单个输出上,并为它指定一个损失函数。本文提出的框架正如图四(1)显示的那个foreground。
像素级别二分裂的交叉熵损失如下定义(表示同Xie &Tu 中相同)
为了处理两类数据量的不平衡,xie和Tu 提出了一个改进版本的损失函数,最初用于轮廓检测。
训练细节:
离线训练:基于CNN的框架用于在ImageNet上进行图像的标签预训练,在其他任务上效果很好。不在进行进一步训练,网络是没有能力进行图像分割的。就是图像二(1)中显示的。我们把它称为基础网络。
之后进一步使用训练集DAVIS中的二值mask进行训练,训练学习一个通用的表示,学习如何从他们的背景中分割出前景来。本文使用SGD,其moment 0.9,50000次迭代。本文采用镜像对称,放大缩小等方法进行数据增强。学习率设为10e-8,并且逐渐降低的。离线训练之后,网络学习到分割前景和背景,如图像2显示的那样。我们将它称之为parent network.
在线训练测试:parent network 搞定好,我们开始搞主要任务,test task ,分割视频中的特定目标物体,给定视频第一帧的人工标注信息。我们通过进一步训练(fine tuning)parent network来识别分割特定的 图像/Ground-truth 对儿,然后使用新权重在整个视频中测试。我们的方法因此受到两个时间的影响:微调时间;分割所有帧时间。关于微调时间,需要在精度和时间消耗上做个平衡,迭代越多,越消耗时间,精度也越高。后者分割所有帧时间,与训练无关,OSVOS方法可以达到480p情况下每帧102ms.
考虑到微调时间消耗,我们提出两个不同的模式:一个需要在线微调,通过分割帧并等待整个视频的分割结果。另一个也可以离线训练,预先对对象分割。特别是前一种模式,需要控制用于训练的时间,分配给微调的时间越多,用户等待时间越久,结果同时越好。为了探索这个平衡,我们实验训练一个视频10秒到10分钟,并查看训练时间与分割结果关系。
在实验中,图8 显示了精度与时间的关系曲线,消融实验分析显示:离线训练,在线微调对于好的算法表现来说都是重要的,如果我们直接从ImageNet模型执行在线训练,性能显著下降;而不尽兴特定对象的在线训练,性能也会显著下降。
轮廓捕捉
我们的基本网络是在图像分类任务上训练的,应当体现空间不变性:无论目标物体出现在何处,分类的结果应当是相同的。这与我们在视频对象分割中期望的对象轮廓的精确定位形成了对比。尽管使用了跳跃连接的方式来最小化空间精度的损失函数,我们观察到OSVOS的分割仍然有很多提升空间。基于此我们提出两种不同的策略来提升结果。首先我们提出使用Fast Bilateral Solver 捕获图像边缘。这个方法是在轮廓部分执行一个高斯平滑,这个高斯平滑是五个颜色空间维度,这将导致输入信号的前景分割,保持图像的边缘。这在实践中是非常有用的,因为这很快,达到60ms一帧,并且它是可微分的,因此可以将它包含到端对端的深度学习网络训练中。这个方法的缺点是它保存了原始图像的梯度,但像素之间颜色通道上却带来了较高的欧式距离。
为了克服这个困难,我们的第二种方法通过学习轮廓来捕获结果,而不是简单的图像梯度。为了达到这个目的,我们提出了一个互补的CNN网络,训练检测目标的轮廓作为第二条分支。是这样训练的:图四1显示了主要的前景分割的分支;图四2显示了轮廓检测分支,轮廓检测不仅仅检测前景物体,背景轮廓也会检测。这允许我们来离线训练。我们在这框架的两个分支上使用相同的网络结构。但是训练的时候使用不同的loss。我们注意到。。。待续