热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

OSVOS(OneShotVideoObjectSegmentation)实验总结

论文地址,tensorflow版源码地址.计算机视觉领域中和目标有关的经典任务有三种:分类、检测和分割。其中分类是为了告诉你「是什么」,后面两个任务的

论文地址,tensorflow版源码地址.

计算机视觉领域中和目标有关的经典任务有三种:分类、检测和分割。其中分类是为了告诉你「是什么」,后面两个任务的目标是为了告诉你「在哪里」,而分割任务将在像素级别上回答这个问题。
视频实现目标检测任务有: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要求较高,需自行设置。
参考自:https://www.paperweekly.site/papers/notes/238
https://blog.csdn.net/zdyueguanyun/article/details/78204802
http://it.sohu.com/20171006/n516277259.shtml


推荐阅读
  • 本文介绍了Python语言程序设计中文件和数据格式化的操作,包括使用np.savetext保存文本文件,对文本文件和二进制文件进行统一的操作步骤,以及使用Numpy模块进行数据可视化编程的指南。同时还提供了一些关于Python的测试题。 ... [详细]
  • 微软头条实习生分享深度学习自学指南
    本文介绍了一位微软头条实习生自学深度学习的经验分享,包括学习资源推荐、重要基础知识的学习要点等。作者强调了学好Python和数学基础的重要性,并提供了一些建议。 ... [详细]
  • 阿里Treebased Deep Match(TDM) 学习笔记及技术发展回顾
    本文介绍了阿里Treebased Deep Match(TDM)的学习笔记,同时回顾了工业界技术发展的几代演进。从基于统计的启发式规则方法到基于内积模型的向量检索方法,再到引入复杂深度学习模型的下一代匹配技术。文章详细解释了基于统计的启发式规则方法和基于内积模型的向量检索方法的原理和应用,并介绍了TDM的背景和优势。最后,文章提到了向量距离和基于向量聚类的索引结构对于加速匹配效率的作用。本文对于理解TDM的学习过程和了解匹配技术的发展具有重要意义。 ... [详细]
  • 本文详细解析了JavaScript中相称性推断的知识点,包括严厉相称和宽松相称的区别,以及范例转换的规则。针对不同类型的范例值,如差别范例值、统一类的原始范例值和统一类的复合范例值,都给出了具体的比较方法。对于宽松相称的情况,也解释了原始范例值和对象之间的比较规则。通过本文的学习,读者可以更好地理解JavaScript中相称性推断的概念和应用。 ... [详细]
  • 生成式对抗网络模型综述摘要生成式对抗网络模型(GAN)是基于深度学习的一种强大的生成模型,可以应用于计算机视觉、自然语言处理、半监督学习等重要领域。生成式对抗网络 ... [详细]
  • 在Android开发中,使用Picasso库可以实现对网络图片的等比例缩放。本文介绍了使用Picasso库进行图片缩放的方法,并提供了具体的代码实现。通过获取图片的宽高,计算目标宽度和高度,并创建新图实现等比例缩放。 ... [详细]
  • 云原生边缘计算之KubeEdge简介及功能特点
    本文介绍了云原生边缘计算中的KubeEdge系统,该系统是一个开源系统,用于将容器化应用程序编排功能扩展到Edge的主机。它基于Kubernetes构建,并为网络应用程序提供基础架构支持。同时,KubeEdge具有离线模式、基于Kubernetes的节点、群集、应用程序和设备管理、资源优化等特点。此外,KubeEdge还支持跨平台工作,在私有、公共和混合云中都可以运行。同时,KubeEdge还提供数据管理和数据分析管道引擎的支持。最后,本文还介绍了KubeEdge系统生成证书的方法。 ... [详细]
  • 本文介绍了Java工具类库Hutool,该工具包封装了对文件、流、加密解密、转码、正则、线程、XML等JDK方法的封装,并提供了各种Util工具类。同时,还介绍了Hutool的组件,包括动态代理、布隆过滤、缓存、定时任务等功能。该工具包可以简化Java代码,提高开发效率。 ... [详细]
  • 不同优化算法的比较分析及实验验证
    本文介绍了神经网络优化中常用的优化方法,包括学习率调整和梯度估计修正,并通过实验验证了不同优化算法的效果。实验结果表明,Adam算法在综合考虑学习率调整和梯度估计修正方面表现较好。该研究对于优化神经网络的训练过程具有指导意义。 ... [详细]
  • 浏览器中的异常检测算法及其在深度学习中的应用
    本文介绍了在浏览器中进行异常检测的算法,包括统计学方法和机器学习方法,并探讨了异常检测在深度学习中的应用。异常检测在金融领域的信用卡欺诈、企业安全领域的非法入侵、IT运维中的设备维护时间点预测等方面具有广泛的应用。通过使用TensorFlow.js进行异常检测,可以实现对单变量和多变量异常的检测。统计学方法通过估计数据的分布概率来计算数据点的异常概率,而机器学习方法则通过训练数据来建立异常检测模型。 ... [详细]
  • 本文介绍了在Python张量流中使用make_merged_spec()方法合并设备规格对象的方法和语法,以及参数和返回值的说明,并提供了一个示例代码。 ... [详细]
  • 背景应用安全领域,各类攻击长久以来都危害着互联网上的应用,在web应用安全风险中,各类注入、跨站等攻击仍然占据着较前的位置。WAF(Web应用防火墙)正是为防御和阻断这类攻击而存在 ... [详细]
  • 本文记录了作者对x265开源代码的实现与框架进行学习与探索的过程,包括x265的下载地址与参考资料,以及在Win7 32 bit PC、VS2010平台上的安装与配置步骤。 ... [详细]
  • VSCode快速查看函数定义和代码追踪方法详解
    本文详细介绍了在VSCode中快速查看函数定义和代码追踪的方法,包括跳转到定义位置的三种方式和返回跳转前的位置的快捷键。同时,还介绍了代码追踪插件的使用以及对符号跳转的不足之处。文章指出,直接跳转到定义和实现的位置对于程序员来说非常重要,但需要语言本身的支持。以TypeScript为例,按下F12即可跳转到函数的定义处。 ... [详细]
  • 建立分类感知器二元模型对样本数据进行分类
    本文介绍了建立分类感知器二元模型对样本数据进行分类的方法。通过建立线性模型,使用最小二乘、Logistic回归等方法进行建模,考虑到可能性的大小等因素。通过极大似然估计求得分类器的参数,使用牛顿-拉菲森迭代方法求解方程组。同时介绍了梯度上升算法和牛顿迭代的收敛速度比较。最后给出了公式法和logistic regression的实现示例。 ... [详细]
author-avatar
现实-不过如此
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有