
网站整体介绍
该网站是字节跳动(ByteDance Inc.)开发的Robust Video Matting(RVM)项目的GitHub仓库,聚焦于鲁棒的高分辨率视频抠图任务。项目基于论文《Robust HighResolution Video Matting with Temporal Guidance》,采用循环神经网络(RNN)处理视频的时间序列信息,无需额外输入(如 trimap 或背景图)即可实现实时抠图,适用于人像、物体等视频主体的精准分离。
核心功能与特色板块
1. 模型特点
实时性能:在Nvidia GTX 1080 Ti GPU上,支持4K分辨率76FPS、HD(1920×1080)分辨率104FPS的实时处理;RTX 3090 GPU上,HD分辨率可达172FPS、4K分辨率154FPS(FP16精度)。
temporal 记忆:通过循环网络保留视频帧间的上下文信息,解决了传统单帧抠图的抖动问题,提升序列一致性。
多框架支持:提供PyTorch、TorchHub、TorchScript、ONNX、TensorFlow、TensorFlow.js、CoreML等多种 inference 框架的预训练模型,覆盖端侧(手机、浏览器)、服务端等场景。
2. 快速体验 Demo
Webcam Demo:无需本地部署,直接在浏览器中实时运行模型(链接:https://peterl1n.github.io/RobustVideoMatting//demo),可可视化循环状态的变化。
Colab Demo:借助Google Colab的免费GPU,上传自己的视频测试模型效果(链接:https://colab.research.google.com/drive/10zpNKRnVNsp0Lq9tH1J_XPZ7CBC_uHm?usp=sharing)。
3. 模型下载与框架支持
项目提供MobileNetv3(推荐,轻量高效)和ResNet50(更大模型,性能略优)两种 backbone 的预训练模型,覆盖以下框架:
PyTorch:提供`rvm_mobilenetv3.pth`、`rvm_resnet50.pth`官方权重,需配合`model.py`加载。
TorchHub:无需额外下载,直接通过`torch.hub.load`调用模型(如`torch.hub.load(“PeterL1n/RobustVideoMatting”, “mobilenetv3”)`)。
TorchScript/ONNX:提供FP32/FP16精度的模型,支持移动端int8量化(需自行导出)。
TensorFlow/TensorFlow.js:TensorFlow 2 SavedModel 及浏览器端int8模型(对应Webcam Demo)。
CoreML:适配iOS 13+的模型,支持1280×720、1920×1080分辨率(需固定分辨率,其他尺寸可自行导出)。
所有模型均提供Google Drive(https://drive.google.com/drive/folders/1pBsGSCTatv95SnEuxmnvvlRx208VKj?usp=sharing)和百度网盘(链接:https://pan.baidu.com/s/1puPSxQqgBFOVpW4W7AolkA,提取码:gym7)的汇总下载。
4. PyTorch 使用示例
安装依赖:通过`pip install r requirements_inference.txt`安装所需库。
加载模型:导入`MattingNetwork`类,选择`mobilenetv3`或`resnet50`作为 backbone,加载预训练权重(如`model.load_state_dict(torch.load(‘rvm_mobilenetv3.pth’))`)。
视频转换 API:使用`inference.convert_video`函数批量处理视频,支持输出合成视频(composition)、alpha 通道、前景等结果,可调整`downsample_ratio`(下采样率,自动或手动设置)、`seq_chunk`(并行处理的帧数)等参数。
自定义 Inference:通过`VideoReader`读取视频,`VideoWriter`写入结果,循环处理帧时利用模型的循环状态(`rec`)保持时间一致性,示例中还提供了“绿幕合成”的代码(`fgr pha + bgr (1 pha)`)。
5. 训练与评估
若需训练自定义模型或评估性能,可参考仓库中的training documentation(https://github.com/PeterL1n/RobustVideoMatting/blob/master/documentation/training.md)。
6. 性能测试结果
不同GPU的 throughput 参考(基于`inference_speed_test.py`):
RTX 3090(FP16):HD分辨率172FPS、4K分辨率154FPS;
RTX 2060 Super(FP16):HD分辨率134FPS、4K分辨率108FPS;
GTX 1080 Ti(FP32):HD分辨率104FPS、4K分辨率74FPS。
其他内容
项目成员:由Shanchuan Lin、Linjie Yang、Imran Saleemi、Soumyadip Sengupta等开发。
第三方项目:包含NCNN C++ Android Demo、Unity Engine Demo(NatML)、Gradio Web Demo等,覆盖更多端侧场景。
相关导航


Shutter Encoder – Encoder|Converter video FREE PC|Mac

Beeble – VIDEO TO VFX

GitHub – facebookresearch/segment-anything: The repository provides code for running inference with the SegmentAnything Model (SAM), links for downloading the trained model checkpoints, and example notebooks that show how to use the model.

SparkAi-渐进式AIGC系统

AutoStudio

GitHub – lm-sys/FastChat: An open platform for training, serving, and evaluating large language models. Release repo for Vicuna and Chatbot Arena.
