《MaskTrack:Learning Video Object Segmentation from Static Images》阅读笔记

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

论文地址:https://arxiv.org/pdf/1612.02646.pdf

源码:源码

代码地址:  https://github.com/omkar13/MaskTrack

1 简介

这篇论文借鉴了实例分割目标跟踪的思想,从而得到视频分割方法 MaskTrack高精度的视频目标分割可以用静态图像训练的深度网络实现,并且输入的信息可以为边界框、分割图或是合并多个带注释的帧,输入的范围很宽泛,这就使其可以运用到不同的场合下去。这篇文章的重点是将离线学习在线学习策略互补地组合起来实现更加精细的目标分割。(补一下目标跟踪的知识)

2 论文概述

论文提出引导式实体分割的思路:视频序列中,对一个新的帧进行像素级分割时,引入上一帧已经完成像素级标注的图片,由前一帧的输出导向下一帧中的目标 。

此方法的关键在于结合了在线学习和离线学习:

离线学习:从上一帧预测结果上,提炼生成一个对感兴趣目标的预测掩码mask。

在线学习:可以捕获指定的目标实例的外观。

主要贡献:

  • 使用图像数据集来训练,无需将视频用作训练集
  • 添加了mask通道
  • 不需要建立帧与帧之间的关系,考虑了时序信息

3 MaskTrack方法

这篇文章将视频目标分割从另外一个角度转换为引导的实例分割。也就是从现有分割网络的基础上(DeepLab v2)转换并训练它实现逐帧的实例分割。

怎么让网络知道哪个实例需要进行分割呢 ?文章提出两个互补的策略去解决这个问题:

  • 通过离线学习使用预估出来的前一帧掩膜(mask)引导网络偏向于目标实例;
  • 使用在线学习的方式进行微调(finetune),细化实例分割结果;

3.1 Learning to segment instances offline

为了使网络分割特定的目标区域,这里将原始的 RGB 输入添加一个channel:mask channel(前一帧的分割输出,提供目标大概的位置与轮廓信息),从而得到一个4维的输入(RGB+mask)。网络结构如下图所示:

离线学习中使用前一帧产生的粗糙mask,将其送入到训练网络中去获取当前帧的预估,由于相邻两帧之间不会存在较大的位移情况,因而这样的粗糙结果也是一个很好的预估。之后再与在线学习的部分结合产生效果更好的分割结果。文中提到有两个关键性观察结果来支撑文章方法的可行性:

  • 即使较为粗糙的mask输入,或者bounding box也可以产生较好的结果,这是由于输入的mask主要的作用是使得分割网络趋向于正确的目标实例进行分割;

bounding box: 目标检测中的窗口

  • 由于只是使用mask作为额外的输入,因此可以从单帧实例分割注释中合成训练样本。这样就可以用大量不同的图像进行训练,这样就不需要用视频数据集来训练了。(啥意思?

在offline训练阶段,为了去模拟实际情况中前一帧输出带噪声的mask,这里使用了两种数据模拟的方式,使得网络更加鲁棒并且避免分割流程中的误差累积:(此处解答了为什么图像数据集可以替代视频数据集来进行训练)

  • 使用affine transformation使带注释的mask变形以及通过thin-plate splines进行non-rigid deformation变形来生产输入mask,这是为了模拟相邻两帧之间的运动变化;
  • 使用粗糙化(扩张形态学操作)以删除对象轮廓的细节,生成与测试阶段类似mask数据的训练样本,用来模拟网络从前一帧给出mask的整体形状。

affine transformation(仿射变换):直线还是直线,变换之前是什么比例之后还是什么比例,之前平行的直线,之后也平行。

non-rigid deformation:刚性变换就是如平移,旋转的等形状不改变的变换,非刚性变换就是形状会改变的变换。

thin-plate splines:给定两张图上给定n个关键点,将第一张图的上的目标通过形变以匹配第二张图的关键点。

3.2 Learning to segment instances online

为了进一步优化分割的效果,文中借鉴了目标跟踪中的技术,将其作为与离线学习互补的第二策略。在测试阶段,将视频中带标注的第一帧作为训练数据,并使用增广策略扩充数据,之后finetune(离线学习模型基础上),从而使得网络偏向于预测设定目标。

对于数据增广,在训练的过程中也采用了数据增广的方法,除了上文提到的affine transformation与thin-plate splines变换之外,还用图像旋转、镜像等操作,从而在单张的标注上产生上百张的数据进行finetune,从而使得网络偏向于捕获所指定的目标。

4 Variants(网络模型变体)

文章考虑了各种变换模型,既可以处理不同类型的标注数据集,也可以在系统中集成运动信息,提高目标分割质量。

4.1 MaskTrack Box

该变体在第一帧采用边界框注释(bounding box annotation)的图像作为输入监督,而不是分段掩膜(segmentation mask),在第一帧上使用另一个CNN模型,该模型用边界框矩形(bounding box)作为输入mask来进行训练,在后序帧使用标准的MaskTrack模型。

4.2 Optical flow(光流信息)

在MaskTrack模型的顶部,文章考虑采用光流作为附加信息来指导视频分割。给定一个视频序列,光流通过EpicFlow流场匹配 和卷积边界计算光学流。光流场(复制为三通道图像)取代RGB作为输入图像,和MaskTrack并行输入到模型,计算出第二个输出掩码(mask)。模型的使用与之前一样,不需要重新训练虽然模型在RGB图像上已经进行了训练,但是光流场大致看起来像一个灰色的图像,仍然可以捕获有用的物体形状信息,使用RGB模型可以避免CNN在具有分段标注的视频数据集训练。最后融合RGB输入的结果和光流输入的结果得到最终信息。

论文通过求平均值的方式融合两个网络模型的得分(使用RGB图像和光流场分别作为输入),变体模型命名为MaskTrack+Flow,光流为MaskTrack+RGB提供互补信息,改善了模型的性能。下图展示了光流图,可以为分割提供诸如轮廓等有用信息。

文中通过实验指出,光流能够提升效果,加一个CRF(条件随机场)可以使DAVIS数据集上的miou提升到80.3,目前已知的最好结果。但由于光流脆弱,对于不同的数据集以及不同的光流处理的方法会导致1到4个点的不同提升,但是不是所有的数据集都能够得到提升,主要是因为光流算法的失效模式,。(什么是光流算法的失效模式?)(补一下条件随机场的知识)

5.1 Network

 模型采用在ImageNet预训练好的分类网络VGG-16的变体DeepLab v2(FCN)。因为输入的4通道数据,故而对于第一个卷积层的卷积核中额外的掩码通道(mask channel),使用高斯初始化(也就是每一个卷积核都加一个通道,用高斯初始化)。作者也尝试了用0值初始化,发现效果一样。(补一下DeepLab v2的知识

 高斯初始化:根据高斯分布来初始化权值,需要给定高斯函数的均值与标准差。均值通常选0,方差需要按经验人工选择。

5.2 Offline training

5.2.1 training DataSet

此文采用现有的显著性分割数据集中的图像和注释来替代在视频上使用昂贵的像素标签注释来训练网络,使用来自ECSSD,MSRA10K,SOD和PASCAL-S的图像和分割mask,这产生了一个有11282张训练图像的集成数据集。

注:ECSSD,MSRA10K,SOD,PASCAL-S为显著性检测数据集,逐像素标注图,能够精确到显著物体的轮廓边缘。这些都是图像分割数据集。

5.2.2 输入mask的获取

通过affine transformation与thin-plate splines变换使二进制分割掩码变形,从而生成额外通道的输入掩码。对于仿射变换(affine transformation),考虑了±5%的随机缩放和±10%的平移。通过使用5个control point的thin-plate splines进行non-rigid deformation,并在原始分割蒙版宽度和高度的±10%范围内在x和y方向上随机移动这些点。然后,使用5个像素半径的膨胀操作对掩码进行粗化。这个掩码变形过程被用于训练数据集中的所有的目标实例。对于每张图像,将生成两个不同的掩码,见下图。

5.2.3 train detail

训练时,使用SGD(随机梯度下降),10张图像的小批次处理(mini-batch),采用初始学习率为0.001的多项式学习策略。动量和权重衰减分别设置为0.9和0.0005.网络经过20k次迭代训练。

训练结束后,此时DeepLab v2 模型学会了进行引导实例分割。

5.3 Online training

微调离线训练好的模型,对新的视频序列的第一帧进行人工标注,并对其进行数据增强来扩充训练数据,这产生了1000张以内的训练样本,然后用这些数据样本对上面训练好的模型进行微调,对训练样本进行200次迭代。网络使用与离线训练相同的学习参数来训练网络,以覆盖所有卷积和全连接层。最后将前一帧得出的分割结果用作下一帧的mask,从而实现视频分割。(一帧就产生这么多?)

 


 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

  • 0
    点赞
  • 13
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值