基于 CNN 的交互式视频分割

原文:Interactive Segmentation with Convolutional Neural Networks

摘要:

动物贴画(animated stickers) 最近在 messaging application 和 memes 兴起.

基于现有技术,生成动物贴画是非常有挑战性,且耗时的,使得对于没有相关背景的普通用户而言,难以使用.

去除任意一段 Video (非绿幕背景) 的背景仍是一件比较低级的工作,涉及到对 video 中每一帧的 object 进行手工分割.

因此,在网站 gifs.com 中,实现基于 AI 技术,来帮助用户简单快捷的创建动物贴画.

Figure 1. 从 Video 创建的动画贴图例子

1. 技术挑战

由于 Video 的复杂性,动画贴图:

  • 容易受运动模糊(motion blur) 、bad composition 和缺失(occlusion) 的影响;
  • 尺寸较少(信息非常少) 和背景前景相似度较大时,object 很难分割;
  • Video 片段可能包含多种类型的 objects,需要提取用户想要的 object.

    Figure 2. 用户创建的贴图

2. 解决方案

  • 首先,用户采用交互式分割工具来标注在 Video 第一帧中想要的 object;
  • 然后,标注结果传递到其它帧,并渲染为动画贴图.

对于 object 的分割,如实例分割,采用 CV 技术来根据少量的用户操作,推断整体分割.

Figure 3. 采用交互式工具标注 Video 第一帧的例示.

分割过程(第一帧和整体 Video 的分割) 都采用 CNN. CNN 已经在 image 和 video 识别方面取得较好的应用,其能够理解图片中 object 的视觉属性,如 animal,car 等.

2.1 交互式分割

GrabCut 算法 是实现交互式分割的有效快捷方法. 该方法通过构建像素分布(颜色 colors)的模型来很好的区分背景和前景差异较大的 object. 但,其对于前景背景差异度较小的图片,分割效果不够理想.

Figure 4. (左)用户标注输入;(右) GrabCut 分割结果. 由于熊的身体颜色与背景比较相似,导致分割结构不理想.

高质量的动画贴图,需要在 Video 第一帧能得到高精度的分割结果. 由于 GrabCut 分割结果不能达到要求,这里决定采用深度学习方法.

受到论文 Deep Interactive Object Selection 采用深度神经网络进行交互式 object 分割的启发,这里,以图片、已有分割结果,以及用户修正结果作为输入,来创建网络,以输出 object 的二值 mask.

这里给用户提供画刷工具(brush tool) 来修正 Video 的第一帧. 基于产品数据发现,典型用户往往采用各种各样的方式画出 object,如 单击(clicks)、笔画(strokes) 或者高亮整个 object. 因此,就需要开发的算法能够考虑不同的标注形式,并能在训练阶段包含模拟的用户 strokes 和 clicks ,以得到最优的结果,提供良好的用户体验.

Figure 5. 用户标注 object 方式:clicks, strokes, highlights

2.2 Video 分割

Video 第一帧标注信息确定及成功分割 object 后,这里采用论文 One-Shot Video Object Segmentation-OSVOS 方法来生成 Video 其它帧的分割结果.

OSVOS 是基于 VGG 的卷积网络,其可以利用通用语义信息对 objects 进行分割. 对于每张贴图,OSVOS 模型在 frame/mask 对上进行 fine-tuned;然后,推断 Video 中全部帧的 mask,并结合得到的结果,以输出透明背景的动画贴图.

如果 Video 中从开始到结束,object 移动很快,或者变化很大,则可能得到不同的结果. 对此,这里允许用户对更多的 Video 帧进行修正,以提高贴图质量.

Figure 6. 添加交互式用户修正,能够提高模型的分割结果.



Figure 7. (上) Video 标注一帧得到的贴图;(下) Video 标注多帧得到的贴图. 如果只标注 Video 一帧,分割结果不理想;如果再对 Video 分割最差的帧进行标注,则可以提高贴图质量.

3. 总结

这里介绍了基于深度学习技术,应用于更高效简单生成动画贴图. 首先,用户标注 Video 的第一帧;然后 采用 OSVOS 方法生成 Video 全部帧的分割结果;最后,根据实际情况,允许用户更多交互,提高动画贴图质量. 尽管动画贴图创建过程很简单,但 gifs.com 提供的编辑器能够更加简化贴图创建,并降低普通用户使用难度,创建用户个性化贴图.

每周 gifs.com 都有用户创建的许多贴图,欢迎尝试. 网址:https://beta.gifs.com/sticker-creator/

4. Links

[1] - https://beta.gifs.com/sticker-creator/

[2] - One-Shot Video Object Segmentation

[3] - Deep Interactive Object Selection

[4] - Deep Residual Learning for Image Recognition

[5] - Quo Vadis, Action Recognition? A New Model and the Kinetics Dataset

语义分割 - 基于 CNN 的交互式视频分割相关推荐

  1. 分割速度最快的视频分割器

    AVI/MPEG/RM/WMV Splitter v4.28嬴政汉化版   软件大小:3.85 MB 分割速度最快的媒体分割器,既可分割视频文件,也可分割音频文件. 支持分割 *.mpg; *.mpe ...

  2. matlab中图像的阈值分割,基于MATLAB的图像阈值分割技术汇总

    数字图像处理课程论文 基于MATLAB的图像阈值分割技术 摘要:本文主要针对图像阈值分割做一个基于MATLAB的分析.通过双峰法,迭 代法以及OUTS法三种算法来实现图像阈值分割,并且就这三种算法做了 ...

  3. matlab人工选择阈值进行分割,基于MATLAB的图像阈值分割算法的研究

    [摘要]:图像分割是一种重要的数字图像处理技术.本文首先介绍了图像分割技术,其次总结了目前图像分割技术中所用到的阈值.边缘检测.区域提取等方法以及分水岭算法.针对各种阈值分割算法,本文在最后做了详细的 ...

  4. 【未完待续】综述:用于视频分割(Video Segmentation)的深度学习

    A Survey on Deep Learning Technique for Video Segmentation 0. 摘要 本文回顾视频分割的两条基本研究路线:视频目标分割(object seg ...

  5. 图像分割与视频分割方法

    图像分割 图像分割介绍 1.普通分割 2.语义分割 3.实例分割(instance segmentation) 传统的图像分割方法 1.基于阈值的图像分割 单阈值分割 局部阈值分割 阈值的选取 直方图 ...

  6. 《A Survey on Deep Learning Technique for Video Segmentation》视频分割综述阅读笔记(翻译)

    <A Survey on Deep Learning Technique for Video Segmentation>视频分割综述阅读笔记(背景部分翻译) 作者:Wenguan Wang ...

  7. 视频分割算法在移动端如何应用

    语义分割任务要求图像中的每个像素都被赋予具有语义的标记.视频语义分割任务要求每个视频帧中的每个像素都被赋予一个带语义的标签. 视频分割是一种广泛使用的技术,可用于将场景的前景与背景分离.通过修改或替换 ...

  8. 视频图像分割研究与实现(二):常见图像和视频分割方法概述

    常见图像和视频分割方法概述 图像与视频分割是指按照一定的原则将图像或视频序列分为若干个特定的.具有独特性质的部分或子集,并提取出感兴趣的目标,便于更高层次的分析和理解,因此图像与视频分割是目标特征提取 ...

  9. vue怎么合并两个视频_【软件分享】视频分割合并软件哪款好用呢?怎么剪切合并视频?...

    现在有很多小伙伴都喜欢喜欢自己拍视频上传到各大视频平台,有时候会遇到关于视频剪辑方面的难题,比如说,视频怎么剪切?怎么将两段小视频合并成一个呢?这些都是一些比较常常遇到的问题,今天小编就给大家介绍一款 ...

最新文章

  1. 【Android】Android 设置Activity窗体 不显示标题和全屏显示
  2. 理解css伪类和伪元素
  3. BOS12——多对多添加方法,多对多页面需要字段问题(不多的话直接提供get方法),修改Realm中授权方法(查询数据库),缓存Java对象的方法,加载左侧菜单(ztree提供pId)...
  4. STM32——系统滴答定时器
  5. linux php和java环境变量配置_Linux下配置Java环境变量
  6. 简易付微信收款提示支付失败
  7. AndroidStudio_安卓原生开发_AsyncTask异步处理使用_AsyncTaskLoader---Android原生开发工作笔记139
  8. VS 2005 VS2008 VS2010 设置断点,在调试时产生断点错位如何解决
  9. 2.重新安装CM服务
  10. Ubuntu18.04报错:system/tools/aidl/aidl_language_y.yy: error: define variable ‘api.pure‘ is not used
  11. ILSpy的下载与使用
  12. 配置Windows 10远程桌面
  13. 《C专家编程》读书笔记(1)
  14. QListview获取Item内容变化信号及内容
  15. proteus——采用 LM317 的稳压电源
  16. pycharm专业版下载安装与使用
  17. 【基础知识】~ 分频器
  18. 实时时钟DS1302实验
  19. FTM(FlexTimerModule)TIMER总结
  20. esp32 + python 呼吸灯实现

热门文章

  1. 08弹性哈希供应加剧了自私挖矿攻击
  2. java多进程端口复用_多个程序监听同一端口 - socket端口复用技术
  3. 关于淘宝网性能测试的思考 [ 光影人像 东海陈光剑 的博客 ]
  4. 人工智能及数学运算的基础方法
  5. python 公顷和平方公里单位互换
  6. socket ftp android,使用 Socket 通信实现 FTP 客户端程序(二)
  7. 【解决方案】关于医院整体能源安全监控系统解决方案浅析
  8. 关于无线网络的简单整理
  9. 物联1902-631907090123-谢林
  10. 【推荐】智慧电网5G智能电力综合管理云平台联网系统标准解决方案合集(共260份,921M)