看这一头蓬松的秀发,加上帅气的动作,你以为是在绿幕前拍大片?

No、No、No

这其实是AI拿来视频实时抠图后的效果。

没想到吧,实时视频抠图,现在能精细到每一根发丝

换到alpha通道再看一眼,不用多说,德芙打钱吧(手动狗头)。

这就是来自字节跳动实习生小哥的最新研究:实时高分辨率视频抠图大法。

无需任何辅助输入,把视频丢给这个名为RVM的AI,它分分钟就能帮你把人像高精度抠出,将背景替换成可以任意二次加工的绿幕。

不信有这么丝滑?我们用线上Demo亲自尝试了一波。

相比之下,现在在线会议软件里的抠图,一旦头发遮住脸,人就会消失……

头发丝更是明显糊了。

难怪看得网友直言:

不敢想象你们把这只AI塞进手机里的样子。

目前,这篇论文已经入选WACV 2022。

你也可以上手一试

目前,RVM已经在GitHub上开源,并给出了两种试玩途径:

于是我们也赶紧上手试了试。

先来看看效果:

首先来点难度低的。

对于这种人物在画面中基本不移动的情况,RVM可以说是表现的非常好,和人工抠图几乎无差别。

现在,王冰冰进入动森都毫不违和了。

于是开脑洞,也变得简单了许多……

咳咳,言归正传。人物动作幅度加大会怎样呢?

对于多人舞蹈视频而言,RVM的表现也很nice。

即便动来动去、头发乱甩,也没有影响它的抠图效果。

只有在人物出现遮挡的情况下,才会出现瑕疵。

对比前辈方法MODNet,确实有不小的进步。

不过我们也发现,如果视频的背景较暗,就会影响RVM的发挥。

比如在这种背景光线昏暗的情况下,抠图的效果就非常不尽人意了。

可以看到,博主老哥的头发完全糊了。

而且身体的边界线也不够清晰。

所以,如果你想自己拍视频试玩,就一定要选择光线充足的场景。

利用时间信息

那么这样的“魔法”,具体又是如何实现的?

照例,我们先来扒一扒论文~

实际上,有关视频抠图的算法如今已不鲜见,其中大多数采用的是将视频中的每一帧作为独立图像来实现抠图的方法。

不同与此,在这篇论文中,研究人员构建了一个循环架构,利用上了视频的时间信息,在时间一致性抠图质量上取得了明显改进。

从上图中可以看出,RVM的网络架构包括3个部分:

特征提取编码器,用来提取单帧特征;

循环解码器,用于汇总时间信息;

深度引导滤波(DGF)模块,用于高分辨率上采样。

其中,循环机制的引入使得AI能够在连续的视频流中自我学习,从而了解到哪些信息需要保留,哪些信息可以遗忘掉。

具体而言,循环解码器采用了多尺度ConvGRU来聚合时间信息。其定义如下:

在这个编码器-解码器网络中,AI会完成对高分辨率视频的下采样,然后再使用DGF对结果进行上采样。

除此之外,研究人员还提出了一种新的训练策略:同时使用抠图和语义分割目标数据集来训练网络。

这样做到好处在于:

首先,人像抠图与人像分割任务密切相关,AI必须学会从语义上理解场景,才能在定位人物主体方面具备鲁棒性。

其次,现有的大部分抠图数据集只提供真实的alpha通道和前景信息,所以必须对背景图像进行合成。但前景和背景的光照往往不同,这就影响了合成的效果。语义分割数据集的引入可以有效防止过拟合。

最后,语义分割数据集拥有更为丰富的训练数据。

经过这一番调教之后,RVM和前辈们比起来,有怎样的改进?

从效果对比中就可以明显感受到了:

另外,与MODNet相比,RVM更轻更快

从下面这张表格中可以看出,在1080p视频上RVM的处理速度是最快的,在512×288上比BGMv2略慢,在4K视频上则比带FGF的MODNet慢一点。研究人员分析,这是因为RVM除了alpha通道外还预判了前景。

更直观的数据是,在英伟达GTX 1080Ti上,RVM能以76FPS的速度处理4K视频,以104FPS的速度处理HD视频。

一作字节跳动实习生

这篇论文是一作林山川在字节跳动实习期间完成的。

他本科、硕士均毕业于华盛顿大学,曾先后在Adobe、Facebook等大厂实习。

2021年3月-6月,林山川在字节跳动实习。8月刚刚入职微软。

事实上,林山川此前就曾凭借AI抠图大法拿下CVPR 2021最佳学生论文荣誉奖

他以一作身份发表论文《Real-Time High-Resolution Background Matting》,提出了Background Matting V2方法。

这一方法能够以30FPS的速度处理4K视频,以60FPS的速度处理HD视频。

值得一提的是,Background Matting这一系列方法不止一次中了CVPR。此前,第一代Background Matting就被CVPR 2020收录。

两次论文的通讯作者都是华盛顿大学副教授Ira Kemelmacher-Shlizerman,她的研究方向为计算机视觉、计算机图形、AR/VR等。

此外,本次论文的二作为Linjie Yang,他是字节跳动的研究科学家。本科毕业于清华大学,在香港中文大学获得博士学位。

对了,除了能在Colab上试用之外,你也可以在网页版上实时感受一下这只AI的效果,地址拿好:

https://peterl1n.github.io/RobustVideoMatting/#/demo

GitHub地址:
https://github.com/PeterL1n/RobustVideoMatting
论文地址:
https://arxiv.org/abs/2108.11515
参考链接:
https://www.reddit.com/r/MachineLearning/comments/pdbpmg/r_robust_highresolution_video_matting_with/

4K60帧视频实时抠图,连头发丝都根根分明相关推荐

  1. 完美抠图王冰冰!字节实习生开发的AI,实现4K60帧视频实时抠图,连头发丝都根根分明...

    鱼羊 明敏 发自 凹非寺 量子位 报道 | 公众号 QbitAI 看这一头蓬松的秀发,加上帅气的动作,你以为是在绿幕前拍大片? No.No.No 这其实是AI拿来视频实时抠图后的效果. 没想到吧,实时 ...

  2. AI智能抠图工具--头发丝都可见

    AI智能抠图--头发丝都可见 工具使用方法,非常方便 第一步,用AI抠图 第二步:图片高清话 如果不能智能扣图,则采用这个办法 手工抠图 后续研究 工具使用方法,非常方便 推荐几个工具的配套使用,可以 ...

  3. [github优秀AI项目]实现4K60帧视频人体实时抠图

    项目地址: https://github.com/PeterL1n/RobustVideoMatting 文章: Robust Video Matting in PyTorch, TensorFlow ...

  4. (八)批量视频处理、批量视频编辑、背景移除/去背景/换背景/抠图/抠像代码/实时抠图、实时抠像、人像去背景、背景消除、摄像头背景移除

    (八)批量视频处理.批量视频编辑.背景移除/去背景/换背景/抠图/抠像代码/实时抠图.实时抠像.人像去背景.背景消除.摄像头背景移除 当前短视频飞速发展,视频博主经常需要对大量视频进行编辑.处理,商用 ...

  5. (六)图像背景移除/去背景/换背景/抠图/抠像代码示例:AI实时抠图、AI实时抠像、PaddlePaddle模型、虚拟现实视频会议、沉浸式会议场景、人像去背景、视频背景消除、摄像头背景移除

    (六)图像背景移除/去背景/换背景/抠图/抠像代码示例:AI实时抠图.AI实时抠像.PaddlePaddle模型.虚拟现实视频会议.沉浸式会议场景.人像去背景.视频背景消除.摄像头背景移除 本文与前几 ...

  6. android 与后台实时视频,Android实时监控项目第四篇:后台线程发送预览帧视频数据...

    还记得上篇提到的setPreviewCallback(Camera.PreviewCallback cb)函数吗?我们在开始预览帧视频之前,调用的它,这里要注意其内部的Camera.PreviewCa ...

  7. 4K60帧!RayLink远程控制软件如何帮助设计师远程办公?

    司机在家能远程工作吗?大写的"能"!!!如果你听说过司机远程办公,那你一定对下面这张图不陌生~ (远程办公的叉车司机) 这张图展示的是负责在库房工作的叉车司机在非办公区域远程办公的 ...

  8. 视频人像抠图论文阅读

    视频人像抠图论文阅读 1.Prime Sample Attention in Object Detection 2.Mask RCNN 3.Background Matting: The World ...

  9. Xilinx低比特率高品质 ABR 视频实时转码(HPE 参考架构)

    Xilinx低比特率高品质 ABR 视频实时转码(HPE 参考架构) 介 绍 对实时视频流的需求给视频服务提供商带来了严峻挑战,必须在管理基础设施和互联网带宽运营成本,还要为客户提供高质量体验.鉴于视 ...

最新文章

  1. Silverlight中文件的生成操作与其对应的获取方法
  2. .Net中如何操作IIS(源代码)
  3. Python使用matplotlib可视化Treemap图、treemap将分层数据显示为一组嵌套矩形,每一组都用一个矩形表示,该矩形的面积与其值成正比(Treemap)
  4. processing图片粒子化_个人见到的processing(优质且全的教程,一定看原文)
  5. oracle之单行函数1
  6. c语言指针地址交换程序,C语言-基础教程-指针的地址分配
  7. vue watch 监听不到变化_关于vue中watch检测到不到对象属性的变化的解决方法
  8. 从网页上考的代码考到eclipse里面,会出现每行开头的空格下面有红色异常提示,为什么?...
  9. UVa1587 - Box
  10. react 富文本编辑器 react-draft-wysiwyg 的使用总结
  11. 如何在文件夹中打开DOS命令窗口
  12. 【汇编程序】实现1-100求和(使用LOOP循环)
  13. redis 集群扩容方案
  14. c语言程序设计入门教程视频教学
  15. 《国度》之大学者联盟全解
  16. 常见的网络连接设备有哪些?
  17. 《程序员》2012年1期精彩内容:回顾与展望
  18. 高一女孩成 AI 赛事奖项收割机,05 后新星如何踏上 CV 之路?
  19. LOAM、LEGO-LOAM与LIO-SAM的知识总结
  20. EO、DTO、ViewModel的区别

热门文章

  1. Linux C编程--进程间通信(IPC)2--信号处理函数
  2. 一段C语言和汇编的对应分析,揭示函数调用的本质
  3. Linux--Socket Buffer--Netowrk Devices--Network Drivers
  4. 数据结构 - 有两个链表,第一个升序,第二个降序,合并为一个升序链表(C++)
  5. 反向非归零编码_(宏)基因组编码基因预测
  6. java刚工作搭建环境_Java开发环境的搭建
  7. java yii_一条路线不起作用(yii)
  8. 计算机科学 44(6a 增刊,窃昕攻击下子空间码的安全性-计算机科学.PDF
  9. 计算机速录学什么,学速录的要求有哪些
  10. python声明_在Python中什么是全局声明?