• 欢迎访问佰阅部落
  • 如果您觉得本站非常有看点,那么赶紧使用Ctrl+D 收藏吧

RVM:AI实时视频抠图,完美绿幕诞生

人工智能 佰阅 2年前 (2021-09-24) 4057次浏览

最近由字节跳动开源的一套人工智能视频抠图方案火了,RVM(Robust Video Matting)专为稳定人物视频抠像设计。不同于现有神经网络将每一帧作为单独图片处理,RVM 使用循环神经网络,在处理视频流时有时间记忆。RVM 可在任意视频上做实时高清抠像。在 Nvidia GTX 1080Ti 上实现 4K 76FPS 和 HD 104FPS。目前虽没有面向大众的简易工具,但是基于torch、onnx和ncnn的模型均已放出,可见其受欢迎程度。

0. 效果截图


1. Colab在线尝鲜

Colab入口

步骤主要有三步,第一步上传待处理的视频或图片;

第二步:安装Python等环境依赖

第三步:使用Pytorch加载模型并设置导出路径

视频处理完毕后,会在当前目录下生成三个文件。
– com.mp4:在绿幕背景上合成的抠图结果。
– pha.mp4:原始的 alpha 遮罩。
– fgr.mp4:原始前景预测。

2. 本地尝鲜

首先下载项目到本地,然后解压并进入目录,执行安装依赖环境命令:

pip install -r requirements_inference.txt

然后加载模型

import torch
from model import MattingNetwork

model = MattingNetwork('mobilenetv3').eval().cuda()  # 或 "resnet50"
model.load_state_dict(torch.load('rvm_mobilenetv3.pth'))

上述步骤也可以直接从Pytorch直接加载模型

# 加载模型
model = torch.hub.load("PeterL1n/RobustVideoMatting", "mobilenetv3") # 或 "resnet50"

# 转换 API
convert_video = torch.hub.load("PeterL1n/RobustVideoMatting", "converter")

最后一步,视频入口及出口设置:

from inference import convert_video

convert_video(
    model,                           # 模型,可以加载到任何设备(cpu 或 cuda)
    input_source='input.mp4',        # 视频文件,或图片序列文件夹
    output_type='video',             # 可选 "video"(视频)或 "png_sequence"(PNG 序列)
    output_composition='output.mp4', # 若导出视频,提供文件路径。若导出 PNG 序列,提供文件夹路径
    output_video_mbps=4,             # 若导出视频,提供视频码率
    downsample_ratio=None,           # 下采样比,可根据具体视频调节,或 None 选择自动
    seq_chunk=12,                    # 设置多帧并行计算
)

3. 手机端体验

可以参考该GitHub地址:https://github.com/FeiGeChuanShu/ncnn_Android_RobustVideoMatting

4. 速度

速度用 inference_speed_test.py 测量以供参考。

| GPU | dType | HD (1920×1080) | 4K (3840×2160) |
| ————– | —– | ————– |—————-|
| RTX 3090 | FP16 | 172 FPS | 154 FPS |
| RTX 2060 Super | FP16 | 134 FPS | 108 FPS |
| GTX 1080 Ti | FP32 | 104 FPS | 74 FPS |

5. 应用开发

目前的应用范围主要偏向专业人员,未来或许会出现更多跨终端的GUI视图,方便普通人开箱即用。不过该项目采用GPL协议,意味着商用困难,想要普通人用得起,对开发者而言没有利好,只能用爱发电。虽然ResNet诞生于2015,但是近几年的论文中并未有效果显著的新模型出现,说明图像模型这块基本趋于自满状态,从pt文件,转到onnx,再转到ncnn已经非常成熟,唯一卡住的地方就是基于C语言的ncnn编程。所以想要大众用得起的GUI视图,还需要打通ncnn到go版本的转换,遗憾的是目前尚未有人尝试这么做。假如有go版ncnn,那么就可以很方便的使用wails打包跨终端的应用。


佰阅部落 , 版权所有丨如未注明 , 均为原创丨本网站采用BY-NC-SA协议进行授权
转载请注明原文链接:RVM:AI实时视频抠图,完美绿幕诞生
喜欢 (3)