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

2022-08-31 16:58:32 浏览数 (1)

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

‍‍‍图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安装好之后若继续报错则要重启内核

代码语言:javascript复制
!pip install av tqdm pims ipywidgets

  • 下面是见证奇迹的时刻!
代码语言:javascript复制
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参数,根据视频内容进行调节,以提高抠像效果。

下采样比设定参考:

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

建议设置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.

0 人点赞