基于三端卷积网络的在线视频目标分割

针对半监督视频目标分割任务,作者采取了和MaskTrace类似的思路,以optical flow为主。

本文亮点在于:

1. 使用共享backbone,三输出的自编码器。

2. 对一些视频中确定性像素建模,分割前后景。

3. 对被遮挡又重新出现的物体使用前后景GMMs损失建模识别,增加正确率。

摘要

半监督的在线视频目标分割任务就是给定第一帧的Mask,然后分割后续的帧。我们可以使用optical flow向量传递前面帧的分割效果到后续帧,但是这样会产生错误。因此作者提出了一个三端网络(CTN)——输出分割概率,确定性前景概率和确定性后景概率,然后使用马尔科夫随机场优化得到最终结果。

Proposed Algorithm

算法流程如下:

1. 首先输入当前帧 t 和前一帧 t-1 的分割mask,前一帧的分割mask在optcal flow的指导下预测出 t 帧的大致样子。

2. 同时对 t 帧和传播后的mask进行crop截取path。经过前景后景抽取的mask和crop后的 t 帧输入到网络得到三张概率map。

3. 对概率图进行MRF优化得到第 t 帧的分割效果。

Propagation of Segmentation Labels

对于像素点p=[x, y]T,从I(t-1)I(t)的label传播为:

其中S(t-1)为前一帧的分割label图。[u, v]为I(t)I(t-1)的后向optical flow向量。

Network Architecture

编码结构采用VGG-16,224x224x3为输入,由13个卷积层,3个全链接层和5个池化层组成。

分割概率需要精准风格边界,所以需要shortcut结构获取低层特征信息。确定性前景或后景只判断最可能确定的像素点,所以不需要细节信息。前景后景的输入resize到14x14和VGG输出对齐,因为只是估计确定性像素点,所以相当于低通滤波的resize可以这么设计。卷积层加BN+ReLU。

Training Phase

介绍完网络结构,接下来要说怎么训练,因为原始数据集一般都只带有label mask。

给定输入图片(a),根据边距进行裁剪,与图片的形状大小成正比。然后对mask降质(degrade),对masked区域填充[0.5)的随机强度,然后遮盖部分或圆形噪声点(e)。对降质后的图片进行高斯smoothing和阈值化得到两个Ground truth。

推理阶段,截取图片和传播后的H输入网络,H需要多截取50像素点然后resize。

Markov Random Field Optimization

优化目标函数:

其中前景后景的作用点在于一元能量函数:

Reappearing Object Detection

如何定义不连续的像素点来检测重新出现的目标,作者定义了像素点的不连续性

。假设前一帧的像素点为 p_head ,当前帧为 p, 大于某阈值即为不连续。

对第一帧和第(t-1)帧使用前景和后景的GMMs。那么一个属于重新出现部分的不连续点的前景高斯损失就会低于后景高斯损失。高斯损失定义在公式(3)。

Experimental Results

作者又提出了一个Fast版本。

实验结果图:

[CVPR2017]Online Video Object Segmentation via Convolutional Trident Network的更多相关文章

  1. 泡泡一分钟:SceneCut: Joint Geometric and Object Segmentation for Indoor Scenes

    张宁    SceneCut: Joint Geometric and Object Segmentation for Indoor Scenes    "链接:https://pan.ba ...

  2. 论文笔记:AdaScale: Towards real-time video object detection using adaptive scalingAdaScale

    AdaScale: Towards real-time video object detection using adaptive scaling 2019-02-18 16:14:17 Paper: ...

  3. PaperNotes Instance-Level Salient Object Segmentation

    title: PaperNotes Instance-Level Salient Object Segmentation comments: true date: 2017-12-20 13:53:1 ...

  4. 论文笔记:Capsules for Object Segmentation

    Capsules for Object Segmentation 2018-04-16  21:49:14 Introduction: ----

  5. video object detection

    先说一下,我觉得近两年最好的工作吧.其他的,我就不介绍了,因为我懂得少. 微软的jifeng dai的工作. Deep Feature Flow   github: https://github.co ...

  6. Relation-Shape Convolutional Neural Network for Point Cloud Analysis(CVPR 2019)

    代码:https://github.com/Yochengliu/Relation-Shape-CNN 文章:https://arxiv.org/abs/1904.07601 作者直播:https:/ ...

  7. 1 - ImageNet Classification with Deep Convolutional Neural Network (阅读翻译)

    ImageNet Classification with Deep Convolutional Neural Network 利用深度卷积神经网络进行ImageNet分类 Abstract We tr ...

  8. 论文笔记:(CVPR2019)Relation-Shape Convolutional Neural Network for Point Cloud Analysis

    目录 摘要 一.引言 二.相关工作 基于视图和体素的方法 点云上的深度学习 相关性学习 三.形状意识表示学习 3.1关系-形状卷积 建模 经典CNN的局限性 变换:从关系中学习 通道提升映射 3.2性 ...

  9. 论文翻译:2020_FLGCNN: A novel fully convolutional neural network for end-to-end monaural speech enhancement with utterance-based objective functions

    论文地址:FLGCNN:一种新颖的全卷积神经网络,用于基于话语的目标函数的端到端单耳语音增强 论文代码:https://github.com/LXP-Never/FLGCCRN(非官方复现) 引用格式 ...

随机推荐

  1. Hive 复杂数据类型的使用

    Hive复杂数据类型 1.Array数据类型的使用 1.1.创建数据库表,以array作为数据类型 hive (hive_demo1)> create table stu_test(name a ...

  2. Django学习之天气调查实例(2):显示数据表数据

    数据表数据添加后,如添加3条用户信息,分别为“aaa”.“bbb”.“ccc”,现在通过代码的方式显示数据表中的数据. 1.在website项目文件夹中创建 userload.py文件,并且写如下代码 ...

  3. SpringCloud项目,接口调用返回http 500 - Internal Server Error的错误

    今天上班的时候,自己正在参与的Spring Cloud项目出现了问题,原本上周五还正常的项目突然所有接口调用都是返回http 500的错误. 项目的状态是在Eureka上可以看到对应微服务是在线状态, ...

  4. 使用Entity Framework出错

          在使用的过程中,写了一个例子,结果就报错说      The context cannot be used while the model is being created.      在 ...

  5. Scala学习笔记(四):从文件里读取文本行

    第一个版本: import scala.io.Source if(args.length>0){ for(line<-Source.fromFile(args(0)).getLines) ...

  6. Linux-Shell脚本编程-学习-5-Shell编程-使用结构化命令-if-then-else-elif

    if-then语句 if-then语句格式如下 if comman then command fi bash shell中的if语句可鞥会和我们接触的其他if语句的工作方式不同,bash shell的 ...

  7. 使用CodeBlocks编译64位程序(用的编译器仅仅是windows sdk的)

    需求: -CodeBlocks使用nightly版本: -Windows SDK(我使用的是6.0A,即微软针对vista的,因为这个比较小,你也可以选择其他版本但是要有64位编译器.他也适用于xps ...

  8. [OpenCV]DMatch类和KeyPoints类:特征点匹配

    DMatch struct CV_EXPORTS_W_SIMPLE DMatch { CV_WRAP DMatch() : queryIdx(-), trainIdx(-), imgIdx(-), d ...

  9. mysql insert into select 语法

    Insert into Table2(field1,field2,...) select value1,value2,... from Table1  这样就对了

  10. python进制转换(二进制、十进制和十六进制)及注意事项

    使用内置函数实现进制转换实现比较简单,主要用到以下函数: bin().oct().int().hex() 下面分别详解一下各个函数的使用(附实例) 第一部分:其他进制转十进制 1.二进制转十进制 使用 ...