如何在视频里任意抠图?阿里工程师做到了!

简介: 现在的我们在手机上花费了越来越多的时间,其中,视频又格外地吸引我们的注意力。

image

阿里妹导读:现在的我们在手机上花费了越来越多的时间,其中,视频又格外地吸引我们的注意力。有很多好玩的视频,需要把前景物体从视频中分割出来,这需要花费创作者99%以上的时间。今天,阿里资深算法专家任海兵将告诉:阿里巴巴关于视频物体分割算法的三个方向与最新应用,希望对喜欢视频创作的你有所帮助。

视频物体分割(Video Object Segmentation,简称 VOS ),顾名思义就是从视频所有图像中把感兴趣的物体区域完整地分割出来。为了方便大家的理解。

视频物体分割结果是进行内容二次创作的重要素材。例如目前火爆的“裸眼3D视频”,基于视频中主要物体与观众之间的距离,利用蒙皮遮挡的变化产生3D效果。其核心点是将前景物体从视频中分割出来,这部分会花费创作者99%以上的时间。

因此,对于优酷这样的视频类网站,视频物体分割是非常有价值的算法,能够赋能内容生产者,提升内容生产效率。特别是交互式视频物体分割算法,能利用用户少量交互,逐步提高视频物体分割正确率,提升用户观感体验。这是任何无监督视频物体分割算法所不能达到的。

目前,CV 学术界在视频物体分割方面的研究主要分为三个方向:

  • 半监督视频物体分割 (Semi-supervised video object segmentation)
  • 交互式视频物体分割(Interactive video object segmentation)
  • 无监督视频物体分割(Un-supervised video object segmentation)

这三个研究方向对应于 Davis Challenge 2019 on Video Object Segmentation [1]中的三个赛道。其中,学术界更倾向于研究半监督视频物体分割,因为这是视频物体分割的最基础算法,也是比较纯粹的一个研究点。 接下来,我首选介绍视频物体分割的三个研究方向,然后结合阿里文娱摩酷实验室的探索,分享在视频领域的最新应用。

一、半监督视频物体分割

半监督视频物体分割,又称为单一样本视频物体分割(one-shot video object segmentation, 简称 OSVOS)。在半监督视频物体分割中,给定用户感兴趣物体在视频第一帧图片上的分割区域,算法来获取在后续帧上的物体分割区域。物体可以是一个,也可以是多个。在视频中,存在物体和背景运动变化、光照变化、物体旋转变化、遮挡等,因此半监督视频物体分割算法研究的重点是算法如何自适应获取变化的物体表观信息。一个示例如下图所示:

image


图1. 半监督视频物体分割示例

在图1中,第一行为序列的 RGB 图片,第二行为感兴趣物体区域。其中(a)为视频第一帧图像,骆驼区域是给定物体的 ground-truth。(b)(c)和 (d)是后续的第20、40和60帧,后续的图像只有 RGB 图片,需要算法去估计物体的区域。该示例的难点是:

  • 前景背景颜色非常相似;
  • 随着目标骆驼的运动,背景中出现一个新的骆驼,需要分割出这两个不同的骆驼区域。

目前半监督视频物体分割算法分为两大类:有在线学习、无在线学习。

基于在线学习的算法根据第一帧物体的 ground-truth,利用 one-shot learning 的策略来 fine-tune 分割模型。经典的在线学习算法包括 Lucid datadreaming[2],OSVOS[3],PreMVOS[4]等。在线学习算法针对每个物体单独训练模型,可以达到很高的分割正确率。但是在线学习本身是深度学习模型的 fine-tuning,需要耗费大量的计算时间。在2019年之前,在线学习算法是主流。今年出现了不少无在线学习的算法,它的模型是事先训练好的,不需要针对样本进行 fine-tune,具有更好的时效性,例如 CVPR2019 的 FEELVOS[5],Space-time memory network[6]等。

半监督视频物体分割的最主要的结果评估标准是平均 Jaccard 和 F-measurement.平均Jaccard 值是所有物体在所有帧上分割精度 Jaccard 的均值。F-measurement 为分割区域边缘的准确度。半监督视频物体分割由于其需要第一帧物体区域的 ground-truth,因此无法直接应用于实际应用。但它是交互式和无监督视频物体分割算法的核心组成部分。

二、交互式视频物体分割

交互式视频物体分割是从去年开始兴起的、更贴近实用的视频物体分割方法。在交互式视频物体分割中,输入不是第一帧物体的 ground-truth,而是视频任意一帧中物体的用户交互信息。交互信息可以是物体 boundingbox、物体区域的划线(scribble)、外边缘的极值点等。

基本流程如下图所示:

image


图2.交互式视频物体分割流程

交互式视频物体分割通常包括以下5个步骤:

  • 用户输入交互信息,标记感兴趣物体,例如物体的 bounding box,scribble 信息、边缘点等;
  • 根据用户输入的交互信息,利用交互式图像物体分割算法分割出物体在该帧图像上的物体区域;
  • 根据前一帧物体区域,利用半监督视频物体分割算法向视频其他帧图像逐帧传递,进行物体分割,得到所有帧图像上物体区域。然后,用户检查分割结果,在分割较差帧上,给出新的交互信息;
  • 算法根据新的交互信息,修改该帧图像上的分割结果;
  • 重复步骤3和4,直到视频物体分割结果让用户满意。

交互式视频物体分割不是一个单一算法,而且多种算法有机融合的解决方案,包括交互式图像物体分割、半监督视频物体分割、交互式视频物体区域传递算法等。其主要评估方法为 Davis Challenge on Video Object Segmentation 中提出的 Jaccard&F-measurement@60s (简称 J&F@60s )和 Area Under Curve(简称 AUC)。Davis竞赛提出限定8次用户交互,建立准确度随时间的变化曲线图,曲线下方区域的面积就是 AUC,t=60s 时刻曲线插值就是 J&F@60s。下图为一个 J&F 随时间变化曲线图。

image


图3. 交互式分割结果 J&F曲线示例

从评估指标可以看出,交互式视频物体分割强调分割算法的时效性,不能让用户长时间等待。所以,在交互式视频物体分割中一般不采用基于在线学习方法的半监督视频物体分割算法。目前还没有交互式视频物体分割的开源代码。但是交互式视频物体分割算法对工业界有非常重要的意义,其原因是:

1)半监督视频物体分割需要物体第一帧的 ground-truth,实用中获取比较麻烦。而交互式视频物体分割只需要用户的简单交互,非常容易达到;
2)交互式视频物体分割可以通过多次交互,达到非常高的分割正确率。高精度的分割结果能够提供更好的用户体验,才是用户需要的结果。

三、无监督视频物体分割

无监督视频物体分割是全自动的视频物体,除了 RGB 视频,没有其他任何输入。其目的是分割出视频中显著性的物体区域。在上述三个方向中,无监督视频物体分割是最新的研究方向。

Davis 和 Youtube VOS 竞赛今年第一次出现无监督赛道。从算法层面上说,无监督视频物体分割需要增加显著性物体检测模块,其他核心算法没有变化。

半监督和交互式视频物体分割中,物体是事先指定的,不存在任何歧义。而在无监督视频物体分割中,物体显著性是主观概念,不同人之间存在一定的歧义。因此,在 Davis VOS 中,要求参赛者总共提供 N 个物体的视频分割结果(在 Davis Unsupervised VOS 2019 中,N=20),与数据集 ground-truth 标记的 L 个显著物体序列计算对应关系。对应上的物体和遗漏的物体参与计算 J&F 的均值。N 个物体中多余的物体不做惩罚。

四、阿里文娱摩酷实验室的研究现状

目前很多半监督视频物体分割算法在学术上有很好的创新,但是实用中效果不佳。我们统计了今年 CVPR 的论文,在 Davis 2017 val数据集上,没有一篇正会论文J&F>0.76。FEELVOS[5]、siamMask[7]等算法理论上有很好,实用中却存在多种问题。交互式视频物体分割更是没有开源代码。

所以,阿里文娱摩酷实验室从2019年3月底开始从事半监督和交互式视频物体分割算法的研究。

2019年5月,我们完成一版基础的半监督视频物体分割算法和交互式视频物体分割解决方案,并以此参加了 DAVIS Challenge on Video Object Segmentation 2019,在交互式视频物体分割赛道获得第四名。

我们提出的 VOS with robust tracking 策略[8],可以较大幅度的提高基础算法的鲁棒性。在 Davis 2017验证集上,我们交互式视频物体分割算法 J&F@60s 准确率从3月底的0.353 提高到5月初的0.761。现在,我们的半监督视频物体分割算法也达到了J&F=0.763。可以说,在这个集合上我们的结果已经接近业界一流水准。

五、阿里文娱摩酷实验室的后续计划

目前,我们在继续探索复杂场景下的算法应用,这些复杂场景包括小物体、前景背景高度相似、物体运动速度很快或表观变化很快、物体遮挡严重等。后续,我们计划在online learning、space-time network、region proposal and verification 等策略上发力,以提高视频物体分割算法在复杂场景下的分割精度。

另外,图像物体分割算法、多目标物体跟踪算法也是视频物体分割算法的重要基础,我们也将在这些方面持续提升精度。

Reference

[1] The 2019 DAVIS Challenge on VOS: Unsupervised Multi-ObjectSegmentation. S. Caelles, J. Pont-Tuset, F. Perazzi, A. Montes, K.-K. Maninis,and L. Van Gool .arXiv:1905.00737, 2019
[2] A. Khoreva, R. Benenson, E. Ilg, T. Brox, and B. Schiele. Lucid datadreaming for object tracking. In arXiv preprint arXiv: 1703.09554, 2017. 2
[3] S. Caelles, K.-K. Maninis, J. Pont-Tuset, L. Leal-Taix´e,D. Cremers,and L. Van Gool. One-shot video object segmentation. CVPR, 2017
[4] J. Luiten, P. Voigtlaender, and B. Leibe. PReMVOS:Proposal-generation, refinement and merging for video object segmentation.arXiv preprint arXiv:1807.09190, 2018.
[5] Paul Voigtlaender, Yuning Chai, Florian Schroff, Hartwig Adam, BastianLeibe, Liang-Chieh Chen. FEELVOS: Fast End-to-End Embedding Learning for VideoObject Segmentation. CVPR 2019
[6]. Seoung Wug Oh, Joon-Young Lee, Ning Xu, Seon Joo Kim.Fast User-GuidedVideo Object Segmentation by Interaction-and-Propagation Networks. CVPR2019
[7]. Wang, Qiang,Zhang, Li,Luca Bertinetto, Weiming Hu, Philip H.S. Torr.Fast Online ObjectTracking and Segmentation: A Unifying Approach. CVPR2019
[8] H. Ren, Y. Yang, X. Liu. Robust Multiple Object Mask Propagation withEfficient Object Tracking. The 2019 DAVIS Challenge on Video ObjectSegmentation - CVPR Workshops, 2019

原文发布时间为:2019-08-08
本文作者:任海兵
本文来自云栖社区合作伙伴“阿里技术”,了解相关信息可以关注“阿里技术”。

相关文章
|
数据可视化 物联网
Threejs物联网,工厂3D可视化
Threejs物联网,工厂3D可视化
1600 15
Threejs物联网,工厂3D可视化
|
Web App开发 缓存 JavaScript
Python:Python语言下载库或包的常见whl文件集合
Python:Python语言下载库或包的常见whl文件集合
Python:Python语言下载库或包的常见whl文件集合
|
8月前
|
人工智能 关系型数据库 分布式数据库
多图,PolarDB 2026 开发者大会有感
解读阿里云PolarDB开发者大会上数据库的AI原生演进:从数据形态融合、模型算子化到湖库一体架构,PolarDB通过四大支柱构建面向智能体时代的统一数据基座,推动数据库向“AI in SQL”与自主治理的深度变革。
|
Web App开发 编解码 iOS开发
如何使用ffmpeg制作透明背景的视频
数字人的视频我是使用的腾讯智影生成带绿幕的视频,要实现透明背景,有个很关键的信息需要知道,不是所有的视频格式(视频编码)都支持透明背景,首先我们最常用的mp4就是不支持(不管是h264还是h265)都不支持,目前支持透明背景的只有少部分视频编码,比如google的vp9(webm)格式,上图中我用就是webm+vp9编码的视频。实测这种视频兼容性也不行,比如在苹果的safari浏览器下,就无法透明背景。
1771 0
|
12月前
|
Java 开发者
Java 函数式编程全解析:静态方法引用、实例方法引用、特定类型方法引用与构造器引用实战教程
本文介绍Java 8函数式编程中的四种方法引用:静态、实例、特定类型及构造器引用,通过简洁示例演示其用法,帮助开发者提升代码可读性与简洁性。
|
Web App开发 开发框架 前端开发
SpringCloud微服务实战——搭建企业级开发框架(三十九):使用Redis分布式锁(Redisson)+自定义注解+AOP实现微服务重复请求控制
通常我们可以在前端通过防抖和节流来解决短时间内请求重复提交的问题,如果因网络问题、Nginx重试机制、微服务Feign重试机制或者用户故意绕过前端防抖和节流设置,直接频繁发起请求,都会导致系统防重请求失败,甚至导致后台产生多条重复记录,此时我们需要考虑在后台增加防重设置。
1015 53
SpringCloud微服务实战——搭建企业级开发框架(三十九):使用Redis分布式锁(Redisson)+自定义注解+AOP实现微服务重复请求控制
|
前端开发 算法 Java
java实现图片与base64转换
如果你是一个软件开发,不论前端后端工程师,图片的处理你是肯定要会的,关于图片的Base64编码,你可能有点陌生,但是这是一个软件工程师应该要掌握的知识点,现在很多网友把图片与base64转换都做成了小工具如:http://www.yzcopen.com/img/imgbase64今天我们就一起来看一下吧。
11049 109
|
存储 运维 NoSQL
Redis之Codis
Redis之Codis
2143 1
|
存储 JavaScript 关系型数据库
写给大忙人看的 - 搭建文件服务器 MinIO(1)
MinIO 是一个基于Apache License v2.0开源协议的对象存储服务。它兼容亚马逊S3云存储服务接口,非常适合于存储大容量非结构化的数据,例如图片、视频、日志文件、备份数据和容器/虚拟机镜像等,而一个对象文件可以是任意大小,从几kb到最大5T不等。
644 0
写给大忙人看的 - 搭建文件服务器 MinIO(1)
|
弹性计算 监控 数据挖掘
阿里云2核和4核服务器性能差别大吗?如何选择
阿里云服务器2核和4核区别如何选择?云服务器的vCPU核心数主要影响多线程和多进程任务的执行效率,CPU型号、内存及磁盘等硬件相同的情况下,CPU核数越高计算性能越好
1868 0
阿里云2核和4核服务器性能差别大吗?如何选择