GitHub – PeterL1n/RobustVideoMatting: Robust Video Matting in PyTorch, TensorFlow, TensorFlow.js, ONNX, CoreML!

1周前发布 5 00

Robust Video Matting in PyTorch, TensorFlow, TensorFlow.js, ONNX, CoreML! - PeterL1n/RobustVideoMatting

所在地:
中国
语言:
zh
收录时间:
2025-10-06
其他站点:
GitHub – PeterL1n/RobustVideoMatting: Robust Video Matting in PyTorch, TensorFlow, TensorFlow.js, ONNX, CoreML!GitHub – PeterL1n/RobustVideoMatting: Robust Video Matting in PyTorch, TensorFlow, TensorFlow.js, ONNX, CoreML!

网站整体介绍
该网站是字节跳动(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等,覆盖更多端侧场景。

相关导航

SparkAi-渐进式AIGC系统

SparkAi-渐进式AIGC系统

SparkAi系统是一款基于OpenAI-ChatGPT、AI大模型、AI智能体(自定义GPTs智能体对接)、AI绘画Midjourney、MJ v7版本绘画支持、Dalle绘画开发的AI大模型智能问答和AI绘画系统;支持最新DeepSeek思考推理大模型(独家全天稳定高并发高可用!),支持deepseek-r1-671B满血版,最新deepseek-v3大模型,OpenAI-o1、o3推理大模型使用;一站式AI系统,提供面向个人用户 (ToC)、开发者 (ToD) 和企业 (ToB) 的全面解决方案。

暂无评论

您必须登录才能参与评论!
立即登录
none
暂无评论...