首页 > 技术文章 > BubbleNets:Learning to select the Guidance Frame in Video Object Segmentation by Deep Sorting Frames

erice-he 2019-09-21 14:45 原文

LSTM

长短期记忆(Long short-term memory, LSTM)是一种特殊的RNN,主要是为了解决长序列训练过程中的梯度消失和梯度爆炸问题。简单来说,就是相比普通的RNN,LSTM能够在更长的序列中有更好的表现。

Adam优化器

2014年12月,Kingma和Lei Ba两位学者提出了Adam优化器,结合AdaGrad和RMSProp两种优化算法的优点。对梯度的一阶矩估计(First Moment Estimation,即梯度的均值)和二阶矩估计(Second

Moment Estimation,即梯度的未中心化的方差)进行综合考虑,计算出更新步长。

主要包含以下几个显著的优点:

  1. 实现简单,计算高效,对内存需求少

  2. 参数的更新不受梯度的伸缩变换影响

  3. 超参数具有很好的解释性,且通常无需调整或仅需很少的微调

  4. 更新的步长能够被限制在大致的范围内(初始学习率)

  5. 能自然地实现步长退火过程(自动调整学习率)

  6. 很适合应用于大规模的数据及参数的场景

  7. 适用于不稳定目标函数

  8. 适用于梯度稀疏或梯度存在很大噪声的问题

综合Adam在很多情况下算作默认工作性能比较优秀的优化器。

OSVOS(One-Shot Video Object Segmentation)

计算机视觉领域中和目标有关的经典任务有三种:分类、检测和分割。其中分类是为了告诉你「是什么」,后面两个任务的目标是为了告诉你「在哪里」,而分割任务将在像素级别上回答这个问题。
视频实现目标检测任务有:Visual tracking,action classification,action (temporal)recognition,video semantic segmentation等。

视频目标分割需要解决的是半监督问题,只给出视频第一帧的正确分割掩码,然后在之后的每一连续 帧中分割标注的目标,而视觉跟踪解决的是值给出视频第一帧的定位边界框,在后续每一连续帧中同样用边界框的形式标注物体。

视频目标分割任务和语义分割有两个基本区别:

1.视频目标分割任务分割的是一般的、非语义的目标;

2.视频目标分割添加了一个时序模块:它的任务是在视频的每一连续帧中寻找感兴趣目标的对应像素。
基于视频任务的特性,我们可以将问题分成两个子类:

无监督(亦称作视频显著性检测):寻找并分割视频中的主要目标。这意味着算法需要自行决定哪个物体才是「主要的」。

半监督:在输入中(只)给出视频第一帧的正确分割掩膜,然后在之后的每一连续帧中分割标注的目标。

论文有以下贡献:
1.将图像识别任务中的预训练CNN模型迁移到只有一张图片标注(one-shot)的视频分割任务中。然后,将它在人工分割的视频数据集上训练。最后在测试阶段,只在一帧人工标注的图片微调,采用FCN实现特定目标实体分割。

2.论文使用OSVOS独立处理视频的每个帧,同时以副产品的形式取得了不错的时间连续性。考虑到物体在两帧之间变化不大,我们独立处理每一帧图片,与主流方法着重考虑时间连续性不同。这些主流方法在渐变的连续帧之间取得了不错的分割性能,但是对于遮挡和不完整的运动情况效果不太好。运动检测确实是当前视频分割算法中的关键组成,但是相关计算却是一个很大的问题。我们认为时间连续性并不是现在一定要考虑的问题,我们更应该关注如何提高分割的准确性。另一方面,我们的模型也展示了深度学习的方法在独立处理每一帧时也能保证优异的时间连续性。自然的,OSVOS有以下优点:在遮挡时也可以进行分割,不局限与某些运动,不需要处理时序信息也就没有时序错误累积。

3.OSVOS算法在精度和速度上取得平衡,用户可以选择更高准确率或者更高分割速度,实验显示OSVOS每帧181ms的速度可以取得71.5%的准确率,每帧7.83s的速度取得79.7%的准确率。另外,用户可以标注更多的视频帧来提高准确率,实验显示每个视频标注2张可以取得84.6%的准确率,标注4张可以取得86.9%的准确率。

论文使用的数据集是DAVIS 2016。J是区域重合判断标准,F是轮廓重合判断标准,T是时间稳定性。-BS是没有获取边界,-PN是没有在父网络上预训练,-OS是没有学习第一帧。其有两个度量分割准确率的主要标准:

1.区域相似度(Region Similarity):区域相似度是掩码 M 和真值 G 之间的 Intersection over Union。
在这里插入图片描述
2.轮廓精确度(Contour Accuracy):将掩码看成一系列闭合轮廓的集合,并计算基于轮廓的 F 度量,即精确率和召回率的函数。
在这里插入图片描述
直观上,区域相似度度量标注错误像素的数量,而轮廓精确度度量分割边界的准确率。

OSVOS 训练流程

  1. 选择一个网络(比如 VGG-16)在 ImageNet 上进行分类预训练。
  2. 将其转换为全连接卷积网络(FCN),从而保存空间信息,训练结束时删去 FC 层。嵌入一个新的损失函数:像素级 sigmoid 平衡交叉熵(pixel-wise sigmoid balanced cross entropy,曾用于HED)。现在,每一个像素都可以被分类成前景或背景。
  3. 在 DAVIS-2016 训练集上训练新的全连接卷积网络。
  4. 单次训练:在推断的时候,给定一个新的视频输入进行分割并在第一帧给出真实标注(记住,这是一个半监督问题),创建一个新模型,使用 [3] 中训练的权重进行初始化,并在第一帧进行调整。

这个流程的结果,是适用于每一个新视频的唯一且一次性使用的模型,由于第一帧的标注,对于该新视频而言,模型其实是过拟合的。由于大多数视频中的目标和背景并不会发生巨大改变,因此这个模型的结果还是不错的。自然,如果该模型用于处理随机视频序列时,则它的表现得就没那么好了。

注:OSVOS 方法是独立地分割视频的每一帧的,因此视频中的时序信息是没有用的。

训练:1.osvos_demo.py将“base network”进一步在DAVIS上训练,学习如何将物体从背景中分割出来。然后用随机梯度下降设置momentum 0.9做了50000次迭代。通过反射和放大来处理数据。半监督设置为3,学习率设置为10^-8,逐渐减小。在离线训练后,网络学习如何分割前景和背景。这个网络称为“parent network”。2.parent_demo.py给定第一帧的分割,在视频中分割出该特定物体。通过进一步训练特定物体的image/ground truth对来训练parent network。然后使用新的权重对图像序列测试。时间上主要两个,一个是fine-tuning时间,一个是分割所有帧的时间。之前在质量和时间上有做trade-off,学习图像对的次数越多,得到的结果越好。第二步对gpu要求较高,需自行设置。

损失函数的作用:衡量模型预测性能的好坏(用来表现预测与实际数据的差距程度)。
损失函数可以很好得反映模型与实际数据差距的工具,理解损失函数能够更好得对后续优化工具(梯度下降等)进行分析与理解。很多时候遇到复杂的问题,其实最难的一关是如何写出损失函数。

ResNet深度残差网络

ResNet在2015年被提出,在ImageNet比赛classification任务上获得第一名,因为它“简单与实用”并存,之后很多方法都建立在ResNet50或者ResNet101的基础上完成的,检测,分割,识别等领域都纷纷使用ResNet,Alpha zero也使用了ResNet,所以可见ResNet确实很好用。解决了极深度条件下深度卷积神经网络性能退化的问题,分类性能表现出色。
下面我们从实用的角度去看看ResNet。

ResNet意义
随着网络的加深,出现了训练集准确率下降的现象,我们可以确定这不是由于Overfit过拟合造成的(过拟合的情况训练集应该准确率很高);所以作者针对这个问题提出了一种全新的网络,叫深度残差网络,它允许网络尽可能的加深。

理论上,对于“随着网络加深,准确率下降”的问题,Resnet提供了两种选择方式,也就是identity mapping和residual mapping,如果网络已经到达最优,继续加深网络,residual mapping将被push为0,只剩下identity mapping,这样理论上网络一直处于最优状态了,网络的性能也就不会随着深度增加而降低了。

笔记

在视频分割中,尤其是半监督学习之中,我们往往要为一个初始帧提供注释,一般而言,这个初始帧都是选择的第一帧,但是密歇根大学的研究人员发现,使用最佳的帧并不是第一帧,使用更好的帧可以显著提升性能,所以他们提出了BubbleNets这一个方法,该代码现在在github上已经开源。

https://github.com/griffbr/BubbleNets 实验视频位于https://youtu.be/0kNmm8SBnnU

在之前的很多研究中,广泛使用davis数据集,youtube的vos视频,而且野有了许许多多的标准,这些论文大多关注的是多目标的分割,由此来满足用户的需要,而且这些研究大多使用的是神经网络(cnn或者fcn)的办法
.
本文使用的视频分割方法是基于osvos的,(osvos是入门视频分割的一篇经典论文),因为osvos不需要顺序考虑帧的效果,所以选择了它

论文特别关注了al方法和error reduction这两个热点,al方法在error reduction中有了很多应用,但是对于cost的衡量方法不一,有基于决策树的模型,也有研究crowd source类视频的模型,本篇论文想要对所有的半监督学习方法进行cost衡量,而且要找出最好的那一帧。密歇根大学提出的方法与冒泡排序有着相似性,相邻迭代地比较连续两帧。

但是这与冒泡排序有很大的不同,冒泡排序仍然有这种“顺序”的考量,而在本方法之中,我们采用了利用一些参考帧的方法,这些参考帧是随机选择的,如此比较两者的相对关系,能够成功使用“随机性”,从而选出我们要的初始帧,最后判断是否提高效能的方法是使用了两个指标,一个是分割重合度,还有边缘精确度,两者相加衡量最后的效能。

然后作者进行了对比实验,分别对原先的bubblnets,不适用single-frame方法,不使用reference参考帧,使用其他的衡量函数,此时发现,只有我们现在的方法时间效能不差,但是精确度最高,但是通过对比也发现,如果初始帧选在中间那一帧,鲁棒性会更好,这是因为这一桢在计算距离时离其他点的期望距离应该时最小的。
Selecting the middle frame for annotation is the best per
forming simple selection strategy on all datasets and is easy
to implement in practice.
但是bnf 也就是第五种方法的鲁棒性最好,但是时间复杂度最高
bn0对于简单的分割在效率上时最好的,而且效果也是最好的,但是一旦涉及到很少帧数的标记,bn0就会出现一些问题,实验也发现,应该是帧数太少的缘故导致了这出现了一些问题,所以需要更多的标记帧。

最后,这篇文章总结了对于初始帧的选择,我们应该做更多考虑,不应该执着于选第一帧,用bn的方法确实能够大大提升性能

推荐阅读