1 Star 0 Fork 18

绒花雪冷 / RobustVideoMattingGUI

forked from 天涯 / RobustVideoMattingGUI 
加入 Gitee
与超过 1200万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
克隆/下载
README.md 15.00 KB
一键复制 编辑 原始数据 按行查看 历史
天涯 提交于 2023-10-10 13:24 . modified: README.md

RVM的GUI版本

Robust Video Matting 源码为基础,使用pyqt6以及qdarkstyle样式制作的RVM的GUI版本,并集成了其它工具,为二创作者和影视剪辑爱好者,提供一个集成工具库。
目前已经集成了Segmengt AnythingROOPBuzzSegment and Track AnythingAOT 源代码,非常感谢RVM、SAM、ROOP、Segment and Track Anything、AOT、PySceneDetect的作者团队,以及所有开源依赖库、字体的制作团队。
python环境:使用RVM_GUI建议3.10版本。
使用方法:python gui.py

RVM GUI SCTOOL v1.0.8自动/手动抠像效果

感谢B站@流云蕊,这里使用她的视频作为抠像素材。

           源视频                 自动抠像视频               手动抠像视频



RVM GUI SCTOOL v108界面

GUI_MAIN
GUI_RUNRVM
GUI_EDIT
GUI_EDIT_SAM
GUI_EDIT_AOT
GUI_CAPTURE
GUI_TRAIN
GUI_ROOP
GUI_BUZZ

Robust Video Matting GUI 下载地址

RVM GUI V1.0.8整合包链接:链接:https://pan.baidu.com/s/1HIBpq8v6QDFaxSedoOiyog?pwd=3wjz

Robust Video Matting GUI 各版本视频

RVM GUI V1.0.7整合包链接:https://pan.baidu.com/s/1YEMj4OoRfPzqMlv8oQb7iw?pwd=8pgc
RVM GUI V1.0.7 SAM模型补充包链接:https://pan.baidu.com/s/1-vcviEDjR5wrDopArYuVXA?pwd=04o6
RVM GUI V1.0.7 whisper模型补充包链接:https://pan.baidu.com/s/1p0cyd-ZvCCRK1eSlz0nEdA?pwd=z8tu
RVM GUI V1.0.7整合包链接:https://pan.baidu.com/s/1YEMj4OoRfPzqMlv8oQb7iw?pwd=8pgc
RVM GUI V1.0.7 SAM模型补充包链接:https://pan.baidu.com/s/1-vcviEDjR5wrDopArYuVXA?pwd=04o6
RVM GUI V1.0.7 whisper模型补充包链接:https://pan.baidu.com/s/1p0cyd-ZvCCRK1eSlz0nEdA?pwd=z8tu
RVM GUI V1.0.7及新增功能说明:https://www.bilibili.com/video/BV1B94y1x7o8
RVM GUI V1.0.6及新增功能说明:https://www.bilibili.com/video/BV1tX4y177vK
RVM GUI V1.0.5及新增功能说明:https://www.bilibili.com/video/BV14X4y117AS
RVM GUI V1.0.4及新增功能说明:https://www.bilibili.com/video/BV18M4y1y7Wo
RVM GUI V1.0.3及新增功能说明:https://www.bilibili.com/video/BV1L84y1g7Pn
RVM GUI V1.0.2及采样比参数说明:https://www.bilibili.com/video/BV1pN411c7b1
RVM GUI V1.0.1介绍:https://www.bilibili.com/video/BV1EY411B7V5
RVM GUI V1.0.0及操作说明:https://www.bilibili.com/video/BV1W24y127MU

Robust Video Matting GUI 旧版本下载地址

RVM GUI V1.0.6 整合包文件打包地址(百度云):https://pan.baidu.com/s/1OP52r2NMFtSbs3ugvkpTzg?pwd=n3ww
RVM GUI V1.0.6 整合包文件打包地址(阿里云):https://www.aliyundrive.com/s/iDNz2jDrxuk
RVM GUI V1.0.5 EXE文件打包地址:https://pan.baidu.com/s/1erm3eTz00_OH6sv5Nr7scA?pwd=o93f
RVM GUI V1.0.5 整合包文件打包地址:https://pan.baidu.com/s/1cDju2lBlMrSF6jhOKVkkDQ?pwd=opbj
RVM GUI V1.0.4 EXE文件打包地址:https://pan.baidu.com/s/1lB2J1BcduDP2AZJpe3cuFA?pwd=9adc
RVM GUI V1.0.3 EXE文件打包地址:https://pan.baidu.com/s/11rtTs2NtFRlwzeokXjw1sA?pwd=kw53
RVM GUI V1.0.2 EXE文件打包地址:https://pan.baidu.com/s/16bNi5iSdipSq3b331_np9w?pwd=bwhy
RVM GUI V1.0.1 EXE文件打包地址:https://pan.baidu.com/s/1VbYTpZDt61U7KBoF7nWMeQ?pwd=5hhl
RVM GUI V1.0.0 EXE文件打包地址:https://pan.baidu.com/s/1vxBR0qOib6zX_b5XSJXbFg?pwd=s5jd

Robust Video Matting GUI 更新

  • [2023年10月09日] 修复BUG,增加SAM区域AOT运动追踪功能,AOT区域扣除功能。
  • [2023年09月20日] 最近实在出差过程中挤出时间,进行的更新,这次主要是增加了AOT抠像区域追踪功能,同时增加了SAM功能中的SAM区域抠除功能,并修复了一些BUG。
  • [2023年08月22日] 最近工作累的够呛,干了两天通宵,好几天了都没缓过劲来,所以这两天主要是在休养,外加修正了手动编辑界面的界面,输出图片序列功能里增加了源视频图片,以便于后期编辑。另外PS一下,作为一个单身狗,讨厌七夕节,o( ̄ヘ ̄o#)。
  • [2023年08月15日] 补充了buzz工具并再次整理了软件框架,将RVM_GUI进一步补充ROOP和BUZZ后,作为二次创作的工具库使用。
  • [2023年08月12日] 应小伙伴的要求,补充了roop的功能。
  • [2023年08月11日] 开始更新至v1.0.7版本,为手动编辑模式增加了SAM功能,可以通过多点标记更快的补全人像区域,进一步减少手动编辑的工作量。
  • [2023年08月08日] 应小伙伴的要求,补充了一个简单的实时摄像头抠像功能。
  • [2023年08月01日] 前一段时间各种出差,缓了好一段时间才缓过劲来,最近几天自己利用手动编辑功能修正了几段视频,根据自己的体验改善了手动编辑界面的一些别扭操作,同时也修正了一些RVMGUI和手动编辑界面的BUG,希望后面几天可以顺利的把视频给剪辑好,能发到B站上,自己给自己加油ヾ(◍°∇°◍)ノ゙。
  • [2023年07月20日] 修正了rvm算法界面中读取ini文件中中文路径会导致界面崩溃的bug。
  • [2023年07月19日] 补充requirements_rvmgui.txt使用pipreqs生成的依赖文件,但未经过测试,希望有人使用的话可以反馈一下,我可以及时处理。 同时,建议使用python版本为3.10版本。
  • [2023年06月21日] 修正1.0.6版本功能BUG
  • [2023年06月20日] 距离上次大更新有一个多月了,这次应该就是1.0.6版本了,修改了软件整体架构,增加了启动界面,并切分了RVM抠像以及RVM训练两个模块,制作了RVM训练GUI,可以通过该GUI实现4个阶段的训练。同时在RVM抠像GUI中增加了简单的抠像后alpha通道编辑功能,可以对逐帧对抠像进行再编辑和调整,实现更好的抠像效果,不过该功能纯手动操作,目前主要目的是为后期有针对性的对RVM抠像模型训练提供素材,每次编辑完一帧要点击保存,可以把连续多帧保存成为ptz文件,后面可以通过编辑ptz功能读取后再进行编辑,由于ptz就是把保存的tensor的pt文件压缩一下,所以文件极大,1920x1080的大概一帧100多MB,建议一次保存不超过100帧。 PS:训练对硬件要求极高,我的4080LAPTOP,12G显存,16GB内存+200GB虚拟内存,跑stage1差不多十几个小时跑完了epoch1,然后我缩减了训练集,差不多4个小时一个epoch,跑到了epoch6,就实在跑不下去了;stage2我的12GB显存不够,验证不了;stage3初步跑了一下应该可以;stage4我没有找到imagemate的数据集,验证不了,如果谁的硬件够,可以验证一下,遇到问题可以一起交流一下。
  • [2023年05月13日] 更新了gui界面提示,进一步优化了抠像流程,稍微提高了抠像速度(只输出合成抠像,不开启抠像过程显示),修正了ONNX框架下缩放出错导致的bug,改进了抠像过程的print内容和信息。
  • [2023年05月01日] 终于结束出差回家了,这段时间根据小伙伴的要求,我废寝忘食、呕心沥血,终于增加了抠像视频fgr、pha和com输出时缩小并移动位置的功能,应该可以适应纯色背景、图片背景和视频背景(后两个还没有详细试验,时间比较紧张,可能存在bug,后续会根据反馈修正)。
  • [2023年04月30日] 完善GUI,再次统一整理了框架,补充模型框架参数,在pytorch的基础上,增加了ONNX_FP32和ONNX_FP16参数的选择和设置,简单测试下,CPU计算模式下,ONNX_FP32比pytorch明显更快,ONNX_FP16无运行,CUDA模式下,三种模型框架的速度都差不多。
  • [2023年04月29日] 整理了inference.py的调用接口,将模型调用、读取都统一放到了inference.py里。出差近十天,期间尝试使用ONNX模型框架进行加速,发现onnxruntime使用CUDA模式加速不明显,使用TENSORRT模式由于downsample_ratio类型和动态轴输入的原因,一直无法成功使onnxruntime得tensorrt模式加速,后续准备直接用python调用tensorrt模型动态shape看看能不能提高速度。
  • [2023年04月19日] 增加了对ONNX框架模型的支持,增加了ONNX-FP32和ONNX-FP16两个模型框架,但GUI界面还未修改,后面准备增加GUI相关设置项。
  • [2023年04月16日] 增加了开始抠像判断,如果没有勾选com输出图像并且选择抠像过程显示,则会进行提示。
  • [2023年03月30日] 增加了抠像过程中,显示源视频图像和com输出图像的功能,对界面启动进行了改进,使窗口可以居中显示了。
  • [2023年03月25日] 修正了中断抠像后,再次抠像一帧就中断的BUG。
  • [2023年03月18日] 向源文件中补充了部分注释,在GUI中增加输出抠像内容的选择,可以在com合成抠像、fgr前景抠像、alpha透明度抠像三者中任意组合。
  • [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 许可发布。

后续更新计划

最近没少出差,我抽空根据小伙伴们的想法进行了一些更新,也在构思一些新的功能想法,至于训练模型的想法,目前还是没办法排上日程,主要是电脑硬件不行,只能等再攒攒预算,看看啥时候能弄个好点的显卡,在试试了,不过放弃是不会放弃的,继续当做梦想吧。

  • 鉴于RVM抠像对于汉服等细节还不够好,想在后续增加手动调节和校正的功能,这个也放到计划里面吧。
  • 至今为止已经有好几个小伙伴提议增加视频流和摄像头输入的抠像,我不知道能否成功,先放到计划里面吧。
  • 最近出了SAM,了解了之后,准备把SAM和RVM结合一下,想使用SAM分割人像之后和RVM的抠像结合一下,取个并集,看看是否可以得到更好的抠像结果。
  • 后续想把tensorrt的模型给弄出来,看看到底能不能实现提高速度的目的,前段时间,出差的时候抽时间尝试了一下,使用onnxruntime通过TENSORRT模式加速,遇到了各种问题,各种困难,关键是在bing和baidu上都没有解决方案,直到最后,好不容易通过去掉downsample_ratio输入和动态轴输入,初步实现了onnxruntime的tensorrt推理,但是在运行时又卡住了,感觉一步一坎,太痛苦了,不过后续想用pth->onnx->tensorrt模型,通过python的tensorrt模块直接利用动态shape调用rvm的tensorrt模型,看看能不能实现rvm的tensorrt加速。(再努力试试吧,感觉难度好大)
  • 如果时间允许,会增加一个简单的将源视频缩小为原始大小1/N,并放置在任意位置的功能(这个功能已经兑现了,就准备去掉了)。
  • ~~如果时间和条件允许,会尝试进行训练,如果可行,后续会建立汉服人像的抠像训练集,并最终实现汉服人像的稳定抠像,但是这个目标过于远大,而且感觉如果没有稳定的支持和支撑,大概率会凉凉,不过不耽误现在想一想嘛。
  • 在AOT功能中,在对抠像区域的运动跟踪之外增加SAM区域的跟踪功能,实现对SAM标记识别之后的特定物体区域进行跟踪,并增加AOT的差集合成功能,用来从抠像区域中移除掉AOT区域(主要用于对AOT跟踪的SAM物品区域的移除),进一步提高效率。
  • 准备应小伙伴要求,在手动编辑功能中增加视频片段输出功能,在主gui或者rvmgui界面中增加图片序列合成视频mp4功能。
  • 准备应小伙伴要求,在主gui界面增加傻瓜式一键抠像功能(就是使用默认参数直接对mp4抠像,比较方便,但后续估计不会针对此功能进行改进,主要是没有改进的手段)。
  • 准备基于SAM和AOT增加一个不经过RVM直接对视频/图片序列/图片进行半手动抠像的功能(还在思考)。
  • 之前有小伙伴反应无法移动画面,考虑按下鼠标滚轮移动可能不太好用,在手动编辑GUI中增加了鼠标左键移动画面的功能,作为按下鼠标滚轮移动画面的补充,不过在SAM标记点编辑模式中,只有在标记点区域外才能移动移动画面,按下鼠标滚轮移动的操作方式也并未去掉,依旧可以使用。
  • 后续想把AOT增加一个cpu可以运行的版本,这样可以增加一下适用性,就是不知道能不能实现,感觉改起来挺麻烦的,可能改完运行起来还非常慢。

项目成员


第三方资源

Python
1
https://gitee.com/getready/RobustVideoMatting.git
git@gitee.com:getready/RobustVideoMatting.git
getready
RobustVideoMatting
RobustVideoMattingGUI
RVMGUI.SCTOOL

搜索帮助