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

没有绿幕,AI给我们造!超强的稳定视频抠像(RVM)来了

稳定视频抠像(RobustVideoMatting,RVM)[1],专为稳定人物视频抠像设计!‍‍‍图1抠像效果回想我第一次看见论文效果的

623e8cfaa7c28ef7cb3f5324067a6f19.gif

a89c4558a878bfbb7abb84f479902c8f.png

稳定视频抠像 (Robust Video Matting,RVM)[1],专为稳定人物视频抠像设计!

29cabf428df3094822e3a9ad0ca57636.gif

‍‍‍图1 抠像效果

回想我第一次看见论文效果的时候,是在B站偶然浏览到效果展示视频,效果简直惊为天人,原来视频抠图还能这样玩!这不就是把《黑客帝国》开始大热的绿幕/蓝幕拍摄技术普及到人人都可以操作的地步了么!人人都可以圆大导演的梦啦!当时就暗暗定下一个小目标:一定要复现出飞桨框架的代码实现版本!秋收冬藏,尔来有二十有一周矣。

不经历风雨怎能见彩虹,作为一个视频抠像小白,从零开始复现一个CVPR最佳论文(提名)的作者的新作,即使只是用飞桨框架复现,过程也是充满曲折和坎坷。最终复现成功,看到自己的视频背景成功抠除的时候,简直激动的要跳起来。

开源模型地址

感兴趣的小伙伴可以star收藏

//点击阅读原文一键GET//

https://github.com/skywalk163/RobustVideoMatting/tree/PaddlePaddle


项目详解

如何把大象放进冰箱里?对不起,走错片场了。使用普通录像设备,视频如何像电影大片一样绿幕抠图,只需要三步。

STEP1:fork项目,然后运行

AI Studio上的项目地址:

https://aistudio.baidu.com/aistudio/projectdetail/3513358

点一下右上角的fork按钮即可一键fork并执行。运行环境建议选高级版或至尊版,有NvidiaTesla(特斯拉)V100的GPU的支持,动力强劲,让我们的视频处理速度更快!

STEP2:上传素材

点击左侧的上传按钮上传素材。建议使用室外明亮光线下拍摄的视频,抠图效果会更好。AI Studio有上传限制,较大的视频可以采用数据集挂载的方式传入。

广告时间:飞桨AI Studio数据集系统已经打通百度网盘上传通道了,可以直接从百度网盘上传。

STEP3:执行

将上传的视频文件修改名字为dance.mp4 ,然后直接执行下面两段代码。纯白新手不熟悉AI Studio CodeLab系统操作的朋友,直接在菜单选择“运行” - “运行所有单元格” 即可。

  • 安装相关包, ipywidgets安装好之后若继续报错则要重启内核

1!pip install av tqdm pims ipywidgets

  • 下面是见证奇迹的时刻!

import paddle
from model import MattingNetwork
from inference import convert_video
model = MattingNetwork('resnet50')
model.set_state_dict(paddle.load("rvm_resnet50.pdparams"))
convert_video(model,input_source='dance.mp4',output_type='video',output_composition='com.mp4',output_alpha="pha.mp4",output_foreground="fgr.mp4",output_video_mbps=4,downsample_ratio=None,seq_chunk=1)

参数注解  

-model: 模型

-input_source='dance.mp4': 视频文件,或图片序列文件夹

-output_type='video': 可选 "video"(视频)或   "png_sequence"(PNG 序列)

-output_composition='com.mp4': 若导出视频,提供文件路径。若导出 PNG 序列,提供文件夹路径

-output_alpha="pha.mp4":[可选项] 输出透明度预测

-output_foreground="fgr.mp4":[可选项] 输出前景预测

-output_video_mbps=4: 若导出视频,提供视频码率

-downsample_ratio=None: 下采样比,可根据具体视频调节,或 None 选择自动

-seq_chunk=1: 设置多帧并行计算

运行后稍微等待一下,普通清晰度的视频,转换时间跟播放时间差不多,很快视频就会转换完成,转换后的文件名为:com.mp4,直接下载到本地观看即可!

上传各种视频进行抠图处理,看看都有什么惊喜?

对于会改python代码的朋友,如果不想改上传视频文件的名字,可修改上面代码中的input_source参数,将这部分input_source='dance.mp4',里面的dance.mp4修改成自己上传的视频文件名即可。

恭喜,又一位大导演诞生了!

现在我们跟国际大导演站在同一条起跑线上,后面比的就是创意了!

大家有什么创意,可以在评论区交流~

测试中我将一个妹子的视频叠加上蓝天白云,实现了在天空中跳舞的效果(侵删),也算圆了我小时候的西游记之梦!视频在AI Studio项目里,需要进入到项目里面才能看到,抠图效果略有不足,如果能用室外光线拍摄,效果会好些。


这个抠像项目,了解下,王多鱼投不?

项目简介

RVM(Robust High-Resolution Video Matting with Temporal Guidance)

又叫稳定视频抠像,不同于现有神经网络将每一帧作为单独图片处理,RVM 使用循环神经网络,在处理视频流时有时间记忆。RVM 可在任意视频上做实时高清抠像。在 Nvidia GTX 1080Ti 上实现 4K 76FPS 和 HD 104FPS。

项目特点

  • 效果非常好。就像前面视频里展示的一样,抠图效果惊人,头发丝都能抠出来,让人以为视频是绿幕前拍出来。

  • 不需要任何辅助输入。也有一些非常棒的抠图论文,但是大部分包括本论文作者的前作,都需要辅助输入,比如一张背景图。那样拍片的时候,除了拍演员,还要在同一地点同一机位单独拍一遍背景,这么麻烦想想还不如上绿幕方便呢。所以不需要任何辅助输入,实在太贴心了!

  • 使用简单方便。没有技术门槛,不需要任何技术背景,人人都可以过把瘾。尤其是在AI Studio项目里,只要动动手上传视频,一键转换,然后下载即可。

AI Studio里提供了Nvidia Tesla V100 顶级显卡算力支持,让视频抠图快到飞起!

抠像效果提升小技巧

  • 如果想追求较好的效果,最好选用光源条件良好的片源。

  • 光照良好,背景比较简单的视频,处理效果会较好。

  • 根据视频内容进行下采样比设定:

针对视频清晰度大小和画面中人物是全身还是半身等,可以按照如下表格设定downsample_ratio参数,根据视频内容进行调节,以提高抠像效果。

下采样比设定参考:

f6c48d06a091cd835c7c4d9dd9de0cdc.png

  • 模型在内部将高分辨率输入缩小做初步的处理,然后再放大做细分处理。

建议设置downsample_ratio使缩小后的分辨率维持在 256 到 512 像素之间. 例如,1920x1080的输入用downsample_ratio=0.25,缩小后的分辨率480x270在 256 到 512 像素之间。

  • 根据视频内容调整downsample_ratio。

若视频是上身人像,低downsample_ratio足矣。若视频是全身像,建议尝试更高的downsample_ratio。但注意,过高的downsample_ratio反而会降低效果。

RVM飞桨代码版本实现

  • Github地址:

https://github.com/skywalk163/RobustVideoMatting/tree/PaddlePaddle

  • Gitee地址:

https://gitee.com/skywalk/paddlerobustvideomatting

感兴趣的朋友可以直接看源代码。因能力和时间有限,目前还没有复现训练代码,有兴趣的朋友可以一起来实现啊!

结束语

让我们荡起双桨,在AI的海洋乘风破浪!

  • 飞桨官网:

    https://www.paddlepaddle.org.cn

  • github官方地址:

    https://github.com/PeterL1n/RobustVideoMatting

  • 论文效果B站展示:

    https://www.bilibili.com/video/BV1Z3411B7g7/

因为水平有限,难免有不足之处,还请大家多多指教。

参考文献

[1]Lin S , Yang L , Sal Ee Mi I , et al. Robust High-Resolution Video Matting withTemporal Guidance[J]. 2021.

65ec55380b3bb6c56a7b993a525e5462.gif

关注【飞桨PaddlePaddle】公众号

获取更多技术内容~


推荐阅读
  • 开源Keras Faster RCNN模型介绍及代码结构解析
    本文介绍了开源Keras Faster RCNN模型的环境需求和代码结构,包括FasterRCNN源码解析、RPN与classifier定义、data_generators.py文件的功能以及损失计算。同时提供了该模型的开源地址和安装所需的库。 ... [详细]
  • [大整数乘法] java代码实现
    本文介绍了使用java代码实现大整数乘法的过程,同时也涉及到大整数加法和大整数减法的计算方法。通过分治算法来提高计算效率,并对算法的时间复杂度进行了研究。详细代码实现请参考文章链接。 ... [详细]
  • EzPP 0.2发布,新增YAML布局渲染功能
    EzPP发布了0.2.1版本,新增了YAML布局渲染功能,可以将YAML文件渲染为图片,并且可以复用YAML作为模版,通过传递不同参数生成不同的图片。这个功能可以用于绘制Logo、封面或其他图片,让用户不需要安装或卸载Photoshop。文章还提供了一个入门例子,介绍了使用ezpp的基本渲染方法,以及如何使用canvas、text类元素、自定义字体等。 ... [详细]
  • 如何使用Python从工程图图像中提取底部的方法?
    本文介绍了使用Python从工程图图像中提取底部的方法。首先将输入图片转换为灰度图像,并进行高斯模糊和阈值处理。然后通过填充潜在的轮廓以及使用轮廓逼近和矩形核进行过滤,去除非矩形轮廓。最后通过查找轮廓并使用轮廓近似、宽高比和轮廓区域进行过滤,隔离所需的底部轮廓,并使用Numpy切片提取底部模板部分。 ... [详细]
  • Window10+anaconda+python3.5.4+ tensorflow1.5+ keras(GPU版本)安装教程 ... [详细]
  • Python15行代码实现免费发送手机短信,推送消息「建议收藏」
    Python15行代码实现免费发 ... [详细]
  • 查找给定字符串的所有不同回文子字符串原文:https://www ... [详细]
  • TensorFlow入门上
    前置准备在阅读本文之前,请确定你已经了解了神经网络的基本结构以及前向传播、后向传播的基本原理,如果尚未了解,可以查看下文。神经网络初探​chrer.com也可以直接在我博客阅读Te ... [详细]
  • Jupyter 使用Anaconda 虚拟环境内核
    Anaconda虚拟环境中使用JupyterNotebook安装好Anaconda之后,进入AnacondaPrompt,创建虚拟环境, ... [详细]
  • 抠图前vsPython自动抠图后在日常的工作和生活中,我们经常会遇到需要抠图的场景,即便是只有一张图片需要抠,也会抠得我们不耐烦ÿ ... [详细]
  • 世界人工智能大赛OCR赛题方案!
     Datawhale干货 作者:阿水,北京航空航天大学,Datawhale成员本文以世界人工智能创新大赛(AIWIN)手写体OCR识别竞赛为实践背景,给出了OCR实践的常见思路和流 ... [详细]
  • 词表|句子_自然语言处理(NLP)基于序列到序列的中英机器翻译
    篇首语:本文由编程笔记#小编为大家整理,主要介绍了自然语言处理(NLP)基于序列到序列的中-英机器翻译相关的知识,希望对你有一定的参考价值。【自然语言处理&#x ... [详细]
  • 产业智能化升级的浪潮并没有因为疫情等原因停滞不前,作为带来人工智能应用井喷式发展的深度学习技术在近几年也可谓是“时代宠儿”,想要尝试应用深度学习技术解决 ... [详细]
  • 本文介绍了Python异常的捕获、传递与抛出操作,并提供了相关的操作示例。通过异常的捕获和传递,可以有效处理程序中的错误情况。同时,还介绍了如何主动抛出异常。通过本文的学习,读者可以掌握Python中异常处理的基本方法和技巧。 ... [详细]
  • Python语法上的区别及注意事项
    本文介绍了Python2x和Python3x在语法上的区别,包括print语句的变化、除法运算结果的不同、raw_input函数的替代、class写法的变化等。同时还介绍了Python脚本的解释程序的指定方法,以及在不同版本的Python中如何执行脚本。对于想要学习Python的人来说,本文提供了一些注意事项和技巧。 ... [详细]
author-avatar
520谢鹏
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有