# RobustVideoMattingGUI
**Repository Path**: zhujunan/RobustVideoMatting
## Basic Information
- **Project Name**: RobustVideoMattingGUI
- **Description**: RobustVideoMatting的GUI版本,利用pyqt6搭建了简单的RobustVideoMatting的GUI界面,在此分享,分享依据GPL V3,希望能对各位有所帮助
- **Primary Language**: Python
- **License**: GPL-3.0
- **Default Branch**: gui
- **Homepage**: None
- **GVP Project**: No
## Statistics
- **Stars**: 0
- **Forks**: 26
- **Created**: 2023-03-18
- **Last Updated**: 2023-03-18
## Categories & Tags
**Categories**: Uncategorized
**Tags**: None
## README
# RVM的GUI版本
以(https://github.com/PeterL1n/RobustVideoMatting)源码为基础,使用pyqt6以及qdarkstyle样式制作的RVM的GUI版本。
使用方法:python gui.py

## Robust Video Matting GUI 更新
* [2023年03月15日] 修正已发现的BUG,增加停止抠像按钮和中途停止抠像功能,修改inference.py并在GUI中增加任意背景颜色设置功能。
* [2023年02月24日] 增加下采样比设置功能及说明,增加了窗口图标显示,使用的是ByteDance IconPark的资源,补充了一部分控件的tooltips。
* [2023年02月23日] 增加抠像模型选择功能,可以在官方给出的mobilenetv3或resnet50两个模型之间进行选择,同时增加了NVIDIA CUDA设备是否存在的判断,补充了一部分注释,并重新整理一下代码,改进了调用方式,通过import之后运行run函数,应该可以调用了。
* [2023年02月06日] 在关于窗口中增加了使用开源模块的说明,修复了图片序列输出类型下,抠像完毕弹出输出目录不正确的bug。
* [2023年02月05日] 增加了图片序列输出功能,输出的图片序列将分别放在输出目录的com、fgr和pha子目录中,并修改了读取默认参数文件时,如果参数不存在会跳出的bug。
* [2023年01月30日] RVM GUI代码以 GPL-3.0 许可发布。
## 后续更新计划
近期由于工作变动,后续不一定有时间快速更新了,会尽量更新。
* 如果时间允许,会增加一个简单的将源视频缩小为原始大小1/N,并放置在任意位置的功能(有个B站小伙伴提出的想法,有时间我会尽量试着实现一下)。
* 如果时间和条件允许,会尝试进行训练,如果可行,后续会建立汉服人像的抠像训练集,并最终实现汉服人像的稳定抠像,但是这个目标过于远大,而且感觉如果没有稳定的支持和支撑,大概率会凉凉,不过不耽误现在想一想嘛。
* 就先写这么多吧,flag不能立的太多,否则太容易翻车了。
# 稳定视频抠像 (RVM)

论文 [Robust High-Resolution Video Matting with Temporal Guidance](https://peterl1n.github.io/RobustVideoMatting/) 的官方 GitHub 库。RVM 专为稳定人物视频抠像设计。不同于现有神经网络将每一帧作为单独图片处理,RVM 使用循环神经网络,在处理视频流时有时间记忆。RVM 可在任意视频上做实时高清抠像。在 Nvidia GTX 1080Ti 上实现 **4K 76FPS** 和 **HD 104FPS**。此研究项目来自[字节跳动](https://www.bytedance.com/)。
## 更新
* [2021年11月3日] 修复了 [train.py](https://github.com/PeterL1n/RobustVideoMatting/commit/48effc91576a9e0e7a8519f3da687c0d3522045f) 的 bug。
* [2021年9月16日] 代码重新以 GPL-3.0 许可发布。
* [2021年8月25日] 公开代码和模型。
* [2021年7月27日] 论文被 WACV 2022 收录。
## 展示视频
观看展示视频 ([YouTube](https://youtu.be/Jvzltozpbpk), [Bilibili](https://www.bilibili.com/video/BV1Z3411B7g7/)),了解模型能力。
| 框架 | 下载 | 备注 |
| PyTorch |
rvm_mobilenetv3.pth rvm_resnet50.pth |
官方 PyTorch 模型权值。文档 |
| TorchHub | 无需手动下载。 | 更方便地在你的 PyTorch 项目里使用此模型。文档 |
| TorchScript |
rvm_mobilenetv3_fp32.torchscript rvm_mobilenetv3_fp16.torchscript rvm_resnet50_fp32.torchscript rvm_resnet50_fp16.torchscript |
若需在移动端推断,可以考虑自行导出 int8 量化的模型。文档 |
| ONNX |
rvm_mobilenetv3_fp32.onnx rvm_mobilenetv3_fp16.onnx rvm_resnet50_fp32.onnx rvm_resnet50_fp16.onnx |
在 ONNX Runtime 的 CPU 和 CUDA backend 上测试过。提供的模型用 opset 12。文档,导出 |
| TensorFlow |
rvm_mobilenetv3_tf.zip rvm_resnet50_tf.zip |
TensorFlow 2 SavedModel 格式。文档 |
| TensorFlow.js |
rvm_mobilenetv3_tfjs_int8.zip |
在网页上跑模型。展示,示范代码 |
| CoreML |
rvm_mobilenetv3_1280x720_s0.375_fp16.mlmodel rvm_mobilenetv3_1280x720_s0.375_int8.mlmodel rvm_mobilenetv3_1920x1080_s0.25_fp16.mlmodel rvm_mobilenetv3_1920x1080_s0.25_int8.mlmodel |
CoreML 只能导出固定分辨率,其他分辨率可自行导出。支持 iOS 13+。s 代表下采样比。文档,导出
|