《OSVOS:One-Shot Video Object Segmentation》阅读笔记

本文是个人在论文阅读过程中的理解笔记,借鉴了许多其他博客。

论文地址:http://www.vision.ee.ethz.ch/~cvlsegmentation/osvos/

代码地址:https://github.com/kmaninis/OSVOS-PyTorch

1 简介

此文是半监督视频分割入门论文,采用半监督学习的方法来解决视频目标分割的问题。给定第一帧的mask,将目标从视频背景中分离出来。提出的OSVOS是基于FCN框架的,可以连续依次地将在ImageNet上学到的信息转移到通用语义信息,实现前景分割的目的,之后学习单个标注物体的外观。尽管所有的帧序列都是独立处理的,但结果在时间上是相关的,连续稳定的。在两个标注的视频数据集(DAVIS和Youtube-Object)上进行了测试,结果显示OSVOS是非常快的,总的来说其实现的效果在那个时候还是不错的。本质上还是图像分割,没有考虑时序信息。

本文的贡献:

  • 在只给定一个初始图像目标标注的情况下,使得CNN网络适应这个特定的目标。
  • OSVOS独立处理每一帧。也就是将视频分割转换成图像分割。这里是有相邻帧时间差异并不大的前提假设的。这个方法中并没有很好运用到帧间的关系。但是却可以在目标被遮挡之后还能继续分割目标,
  • OSVOS在速度和准确率上做了权衡。

2 论文概述

对视频中的每一帧图像分成两类:前景(foreground)背景(background)前景就是需要检测出的物体。如下图所示,只需输入视频的第一帧图像中物体的掩膜(红色位置),就可以识别出该视频接下来的每一帧中物体的掩膜(绿色位置)。

注:上图第一张图像是标记样本,其他的图像是分割的结果。这里使用FCN网络来完成上述任务。

2.1 特点

  • 半监督:只给出第一帧分割,FCN来进行前景和背景的分割。
  • 数据集:DAVIS 2016。此数据集包含了50个全高清视频序列,其所以帧均以像素级精度进行了分割。处理DAVIS(480X854像素)一帧需要102ms,准确度71.5%。
  • J是区域重合判断标准,F是轮廓重合判断标准,为两个度量分割准确率的主要标准:
  • 区域相似度(Region Similarity):区域相似度是掩码 M 和真值 G 之间的 Intersection over Union。

  • 轮廓精确度(Contour Accuracy):将掩码看成一系列闭合轮廓的集合,并计算基于轮廓的 F 度量,即准确率和召回率的函数。

直观上,区域相似度度量标注错误像素的数量,而轮廓精确度度量分割边界的准确率。
 

3 网络结构

注:前两个网络的训练都是 offline, 最后一个网络的训练是 online,这个online 时间越长效果越好。

3.1 训练流程

3.1.1 Base Network

采用 VGG-16 作为网络架构在ImageNet上进行训练,从而学习到图像的一般性表示,此时得到了Base Netwprk。训练结束后删去VGG-16的全连接层(FC),全连接层的参数弃去不用,保留其他参数,并将其改为全卷积神经网络(FCN),从而保存了空间信息。此时为了实现前背景分割,也就是0/1分类,采用 sigmoid 激活函数,损失函数为:像素级 sigmoid 平衡交叉熵(pixel-wise sigmoid balanced cross entropy),此函数可以解决二分类问题。

这里使用到的损失函数是2值交叉熵损失函数,但是为了照顾样本不平衡的情况,这里在原始交叉熵的基础按照正负比例进行了加权处理:

注:若是多分类问题,则采用 softmax 激活函数,损失函数为:softmax平衡交叉熵函数

3.1.2 Parent Network

在 DAVIS-2016 数据集上训练上面的全卷积神经网络,与常规的 FCN 用于图像分割一样,将不同层上的特征图经过 upsampling 到同样尺度融合,从而得到图像分割的结果。由于采用的是二分值交叉熵损失函数,故而每个像素都可以被分为前景或背景。下图的Foreground Branch 表示了这一过程。显然这个前景分割主要是判断物体的有无和大致位置,不能给予精确的边界位置信息,因而需要加入 contour 信息。

FCN 用于图像分割的大致流程:

one-shot 网络架构:

对于轮廓(contor)信息的检测,采用与Foreground Branch 同样的网络架构去检测图像中的所有轮廓信息,但是针对不同的损失进行了训练。需要注意的是两者不共用网络层,各自独立的进行离线训练(文中说为了不使性能下降)。此网络在 PASCAL-context 数据集上进行训练,该数据集为图像的整个场景提供了轮廓标注。整个过程如上图2 Contour Branch。

图中将各层得到的特征图通过上采样,恢复到原图大小。将这些特征图在深度上进行串联后,以卷积运算的方式进行融合。

最后,在上图3中,将得到的轮廓结果通过多数选择的策略进行匹配(与前景的重叠超过50%)。

3.1.3 Test Network

最后,在给定图像和第一帧给出真实标注(掩膜mask)的情况下,创建一个新的模型,使用上面训练好的权重进行初始化,对Parent Network的训练结果进行微调(finetune),从而精细化目标分割,此时得到(Test Network),从而使完整的OSVOS可以识别某一个特定的物体。

最后分割结果的输出时间主要取决于两个部分:finetune本身消耗的时间与迭代优化需要的时间。自然迭代优化之后能够获得效果更优的分割结果,但是却需要消耗更多的时间,这个在用的时候可以进行权衡,下图3就是在10秒与1分钟优化之后的结果对比:

注:此阶段也是两个网络架构,分别用上面训练好的权重进行初始化。将两个网络得到的结果进行融合,得到最终结果。

你可能感兴趣的:(修仙之路:论文阅读篇)