欢迎光临散文网 会员登陆 & 注册

零基础手把手教你如何在windows使用Real-CUGAN超分模型并分享一些使用细节(非GUI版)

2022-11-21 18:53 作者:一本正经的超萌大熊猫  | 我要投稿

使用PyTorch版的原因

up先前使用的是topaz来超分动漫,最近看到了B站的超分模型CUGAN,于是就下载了GUI版试试,结果还是和topaz一样,吃不满显存和核心,推理速度上不去。推测原因可能是GUI版提供可以调节的参数较少,无法对特定的硬件配置进行优化。所以想着使用pytorch版,参数可以自己根据电脑配置进行调节,以期提高推理速度。


官方项目及PyTorch版本下载地址

项目地址:https://github.com/bilibili/ailab/tree/main/Real-CUGAN

下载链接:https://github.com/bilibili/ailab/releases/tag/Real-CUGAN

百度网盘:https://pan.baidu.com/s/10NbgnusDucllKiE0sgBWvQ 提取码:ds2a


个人平台及操作系统

CPU:Ryzen 5900X

GPU:RTX 4090(驱动:Nvidia Studio 526.98)

内存:64GB

系统:windows10专业工作站版22H2


系统环境要求以及下载与解压

官方系统环境要求

①打开cmd,输入nvidia-smi,查看当前的驱动版本以及该驱动支持的最高cuda版本

如果驱动的支持的cuda版本不符合官方要求,请先升级驱动


②下载与解压

蓝框为大包,黄框为小包

根据自己配置下载,up下载的是图中第一个,最好解压到磁盘根目录,如果非要解压到子目录,请保证路径没有中文


③这是最新的pro模型,推荐下载。


解压后将红框的文件复制到CUGAN模型文件的根目录中,将蓝框的文件复制到目录中的runtime文件夹中。


ps:之后会将整理好的会放在评论区,有需要的自取。



环境搭建

①环境要求

官方环境要求


②下载并安装anaconda

anaconda下载地址:https://www.anaconda.com/products/distribution#Downloads

安装目录放在磁盘根目录即可(可以不放在C盘)。


③创建环境

打开anaconda prompt,输入conda create -n env_name(环境名称) python=3.6(对应的python版本号)

up这里创建的是一个名为CUGAN,python版本的3.6的环境。

注意:该项目是基于python3.6开发的,所以一定要使用python3.6,up原先使用的python3.9的环境经实测无法运行。


④激活环境

输入conda activate env_name(创建的环境),此时前面的base会变成你创建的环境名


⑤安装torchcudacudnn

版本选择:up在清华源找到的支持python3.6的最高版本的torch就是1.10,对应的cuda为11.3,cudnn为8.2。

安装建议:安装可以将清华源添加进conda,然后使用conda install命令进行安装,但是不推荐,因为文件过大,下载过程慢,并且如果意外中断,又要重新下。这里推荐直接去清华源下载。

清华源地址:https://mirrors.tuna.tsinghua.edu.cn/anaconda/

up已经下好了,之后也会打包并将链接放在评论区。

使用的具体版本

将这三个文件放到 C:\Users\Administrator\下安装,或者用cd命令转到文件所在文件夹下安装。

安装torch
安装cuda
安装cudnn

由于提前下好了安装包,运行后很快就装好了

蓝框输出表示安装成功
cuda和cudnn安装成功的输出


⑥安装opencv-pythonmoviepy

建议使用pip安装,先运行python -m pip install --upgrade pip将pip更新到较新的版本。

这里显示up更新到了21.3.1

输入pip install opencv-python安装opencv-python。

自动安装上了numpy1.19.5和opencv-python4.6.0.66

如图,安装opencv-python帮up自动安装上了numpy,所以不需要另外安装numpy。就用它自动装的numpy版本,避免不必要的兼容性问题。

输入pip install moviepy安装moviepy。

成功安装上moviepy

至此,运行该模型的所有需要的包都已装上,可以输入conda list进行查看包是否安装好,以及版本对不对,如下图。


环境配置

①打开高级系统设置


②点击环境变量


③找到系统变量中的Path并编辑,将刚刚创建的环境添加进去,路径参考如图。

添加蓝框中的三个,up的路径仅供参考,实际以自己的安装anaconda的路径和环境名称为准。

这样设置后就会让系统默认使用你创建的环境,打开cmd输入python进行查看。

如图默认环境变为了python3.6.13|Anaconda,Inc|,说明设置成功。

至此,已经完成了所有超分前的准备工作,现在只需要设置好配置文件就可以运行模型了。


配置设置

打开模型文件中的config.py文件,用记事本就行。

①超分倍率以及模型选择

超分倍率scale是指视频宽高各乘以2,比如将1080p视频超分成2160p,也就是4k。如果你想将720p超分成4k,就将其改为3,以此类推。up一般是把1080p超分成4k,所以用的是scale=2。

底下的model_path是具体指定用哪个模型,比如我这里是scale=2,用的就是model_path2,后面是模型路径,根据作者建议选择适合自己的模型就行,up一般用的是pro的无降噪版。


halftilecache_modealpha设置

这里就根据#号后面的建议和自己的配置进行选择就行,up这里是选择了比较吃显存的设置。


③视频或者图片超分路径

超分视频就填video,超分图片填image。要注意的是,超分图片的话,得把图片放在文件夹input_dir中,会自动输出到output_dir文件夹。超分视频的话就要修改视频的路径以及输出的路径和格式。

比如我目前的设置是超分视频,超分的是T盘根目录的名为01的mov视频,最终会在T盘根目录输出名为01_4k的mov视频。想输入输出其它格式视频,直接改后缀就行,比如mp4、mkv等等。(ps:不用多此一举把视频拆成图片序列进行超分,实测推理速度不及直接超分视频,估计原因是需要不断读取图片和写入图片造成的时间延长,CPU够强的话,直接编码视频就行)


④编码参数设置

crf设置得越低,视频码率和质量越高,up习惯设置为12,一般23左右就可以了,个人自己看情况设置就行。

preset是质量和速度之间的取舍问题,越慢视频质量越高,但是越吃CPU。up测试过veryslow,这时候CPU已经出现了瓶颈,显卡占用偏低,推理速度变慢。目前使用的是slower。其实未达到CPU瓶颈之前,你设置多少都不会怎么影响速度,因为这时候瓶颈是显卡,CPU再快也没用,所以up的思路是,设置在CPU瓶颈的前一档,这样能充分发挥显卡和CPU的性能,同时又能保证最终的视频质量。


⑤由于up主是一个小白,其他参数就按照作者的默认设置了。将前面的设置完之后,就可以双击go.bat文件进行视频超分了。

前面的frame是视频的总帧数,后面的是已经超分编码完成的帧数


PyTorch版和GUI版的速度比较

①运行前硬件状态

可以看到待机状态下显存使用了1.9G左右


②各版本的设置

PyTorch版的设置:

GUI版的设置:

俩者都是用的是pro的无降噪模型,可以看到GUI版本可以调整的参数很少。


③俩者运行时的硬件占用情况

PyTorch版
GUI版

可以看到俩者的CPU、内存以及GPU占用相差不大,但是GUI版却一点显存也不吃。up主推测是GUI版本是为了兼容性,把显存的需求全部拉到最低了。


④俩者推理速度比较

PyTorch版
GUI版

up使用的是同一个视频。可以看到PyTorch版推理完成全部的6124帧使用了1165秒,通过up主引以为豪的小学数学功底,计算出来的推理速度是每秒5.25帧,而GUI版的推理速度则是1.9帧/秒~2.2帧/秒,前者是后者的2.5倍以上。

据up主的非专业分析,应该是GUI版没有积极地调用显存而导致显卡并行计算能力没有充分发挥。

(ps:先前up用GUI版本的时候,有些视频的某些场景会导出全黑的帧,导出几次都是同样的地方出现,导出成图片序列也试过了,问题依旧存在。原先以为是模型的问题,直到换成了PyTorch版,问题就消失了,所以GUI版本应该还存在bug,遇到同样bug的小伙伴可以尝试更换成PyTorch版本)


补充

①CUGAN和topaz的比较

首先从推理速度上来说,按照up主以前使用的topaz video2.6.4版本的经验,1080p超4k大概是2.5帧/秒往上,虽然模型不同,速度不具可比性,但是up注意到topaz显卡的占用未能上去,一直都是30%~50%,显存占用也比较小。这也是topaz一直以来的问题,中端显卡和高端显卡之间的推理速度没有什么差距,期待后面的版本能优化好吧,目前up已经卸载了topaz,所以就没有上实测了。

其次是视频质量,这点更不好比,topaz偏向非动画的超分,CUGAN是专用于动画的,up直观感受是CUGAN更加清晰,锐化更高一点,这个对于非动画的视频原画质的毁坏是显而易见的。

因此推荐超分动画使用CUGAN,可以在获得更高的推理速度情况下,视频质量也很好;而真人实拍视频则用topaz。由于up只超分动画,在有了更好的CUGAN之后,topaz自然就卸载了,以后假如要超分非动画,说不定还会下回来。


②在使用CUGAN时要注意不要爆显存

如果你运行之后,显存和核心近乎吃满,这个时候要注意CPU的占用,如果CPU占用很低,或者上升很少,说明显存已经爆了,推理速度会变得很慢。这个时候要调整参数,降低显存占用。

有些客户端开启就会占用显存。up有时候后台放着CUGAN在跑,然后想开几个客户端或者游戏啥的,正好让显存爆掉的情况也会存在,这个时候可以调整参数,降低一点显存。


③关于编码参数中preset档位的选择

为了验证在达到CPU瓶颈之前,所有档位速度都差不多,up用同一个视频测试了slow档位的速度,对比slower档位,结果如下:

slow
slower

如图,slow所用时间最终比slower少了14s,大概快了1.2%,基本可以算作误差范围内。

这可以印证up之前的猜想:未达到CPU瓶颈之前,所有档位速度都是差不多的。当然质量越低的档位,CPU占用相对也会更低,因为此时瓶颈在显卡。

零基础手把手教你如何在windows使用Real-CUGAN超分模型并分享一些使用细节(非GUI版)的评论 (共 条)

分享到微博请遵守国家法律