当前位置:   article > 正文

修复模糊图片——CodeFormer本地开源程序(全程无代码顶级详细,小学生都能看懂)_人脸清晰化神器codeformer

人脸清晰化神器codeformer

这篇准备真的超详细,每一步可能出错的情况,我都一一写了备注和解决方案。只要是个人,手上有个无论多低配的电脑,不需要代码知识,就能建立本地程序,而且完全免费。

先看一下官方网站给出的案例:

这个效果还是很牛掰的。我自己是23年1月就初次试验过了,当时对我个人来说是非常震撼。而且他是完全可以建立在本地电脑上的,不需要互联网上传到服务器就能自己修复,很保护用户的隐私性。

其实国内大多数收费的照片修复网站,绝大多数都是基于这个开源程序打包的。学会之后自己也可以搭建一个服务器网页,收费修复别人的老照片。这部分弄个后端程序不算难,用py-flask很容易实现。前端在线网页可以参考我以前的一篇关于搭建自己的html在线网站的文章。链接给在下面:

零基础搭建个人在线网站,html文件上传到互联网生成在线链接-CSDN博客

原作者是南洋理工大学sczhou。附上GitHub开源地址:

https://github.com/sczhou/CodeFormer

简单看看GitHub上作者给出的具体步骤(不用看懂):

下面正式开始:

第一步:下载python(已经下载过的朋友直接跳过)

只需要下载安装,且无需懂代码!

给新手朋友一个下载链接,对于这一步下载相信没有什么难处,网络上也有大量的教学如何下载python并安装,并且任何版本都可以!

下载链接:https://www.python.org/downloads/

第二步:下载git

下载地址:https://git-scm.com/downloads

这一步也很简单,下载网站中选择自己的电脑系统即可。对于这一步不清楚的朋友可在b站上观看git下载安装教学。和python一样,教学的视频非常多且非常容易且基础。不必担心难上手。

并且安装过程中,全部选择默认选项即可,无需手动修改设置。

第三步:选择自己电脑的pytorch版本

这一步有很多需要注意的事项了。

地址:https://pytorch.org/

上述网页直接拉到最低端,看到下图页面:

这里需要根据自己的电脑来进行选择:

第一行不管就选stable;

第二行选择自己电脑的系统;

第三行请选择第一个Conda(pip也可以,不过后续有些麻烦);

第四行选择python;

第五行需要根据自己的电脑显卡(核显也没关系)来进行选择。首先需要知道自己电脑是什么显卡。此时按下键盘上“win键+R”,输入“dxdiag”,无论弹出的是什么窗口都选择“是”,随后出现下图:

我的电脑是核显,第五行则选择CPU,如果你的电脑是独立显卡,在网上搜索自己显卡所对应的CUDA版本。举例:RTX4060对应的最低CUDA是11.8,则可以选择CUDA11.8或者CUDA12.1(追求稳定性建议选择11.8)。

结束上述五行后,复制第六行的代码。这里给出我的配置选择:

则我自己需要复制的内容是:(不要盲目复制下面代码,不同电脑不一样,选择自己电脑配置的代码!)

conda install pytorch torchvision torchaudio cpuonly -c pytorch

记住自己对应的需要复制的代码,之后再用到。到这一步,还没开始下载pytorch。下载之前需要先安装一个anaconda后,才能用conda安装。

ps:不过若是选择pip的package,则可以不需要安装anaconda。但是pip的弊端是在后续的配置中稍显麻烦。如果是pip安装,我会在最后详细讲解,不过不推荐。

第四步:下载并安装anaconda

下载链接:https://www.anaconda.com/download

安装时的配置选项同样默认,具体可参考网络上大量的教学视频。这点非常容易上手。

第五步:下载并安装pytorch机器学习库

安装完之后需要打开他的一个文件,具体打开方式如下:

点击键盘上win键跳出菜单,在左边点击“全部应用”,在全部应用中找到“Anaconda3(64bit)”文件夹,点击。如下图:

在文件夹中,有一个黑色方框图标的文件,名字叫:“Anaconda Powershell Prompt”。点击打开他。黏贴刚才在pytorch网站上复制的代码,例如我的代码:(每个人电脑不一样,代码不一样!再说一次)

conda install pytorch torchvision torchaudio cpuonly -c pytorch

下面几张图片请务必认真看一边,和自己的安装过程对应一下。安装的时间会非常长,且其中有需要自己输入yes or no的部分。

如果你从一开始就出现了如下情况:

'conda' 不是内部或外部命令,也不是可运行的程序或批处理文件。

这是因为你在cmd终端terminal里运行了pytorch的安装代码。正确方法应该是在anaconda文件夹中的“Anaconda Powershell Prompt”中运行代码。

第六步:克隆CodeFormer

关闭Anaconda Powershell Prompt,打开终端(win键+R输入cmd),输入下面的代码(不论什么电脑都输入跟下面一样):

git clone https://github.com/sczhou/CodeFormer

将CodeFormer从GitHub上克隆到本地。

第七步:转移到CodeFormer文件夹下进行操作

进入文件夹(很重要!以下所有步骤都在codeformer文件夹中执行)

输入:

cd CodeFormer

一定要出现:

C:\Users\Xheng1934\CodeFormer>

而不是:

C:\Users\Xheng1934>

以下所有步骤都是在CodeFormer文件夹下执行的。

第八步:安装根目录文件夹下txt中的所有库

输入代码:

pip install -r requirements.txt -q

出现的应该是:(先别急着安装,这个安装速度很慢,后面会说用清华镜像站安装)

C:\Users\Xheng1934\CodeFormer>pip install -r requirements.txt -q

如下图,可在已下载的CodeFormer文件夹中看到一个名字叫做:requirements.txt的文档。接下来需要做的是pip安装所有此文档中出现的python库。打开requirements.txt文档可发现所有要求的库。

其中的“-q”是安静模式的意思,可加可不加。安静模式下就看不到具体安装详情。

上面是所有pip需要安装的库。

但是pip库的安装速度非常慢,因此采用清华镜像站的安装:

pip install -r requirements.txt -i https://pypi.tuna.tsinghua.edu.cn/simple

镜像站有很多,中科大,清华,阿里云,腾讯云都可以。不一样的就是后面的“-i”。

不过到这里,如果采用清华镜像站的安装,会有个报错问题:

  1. ERROR: Could not find a version that satisfies the requirement tb-nightly (from torchreid) (from versions: none)
  2. ERROR: No matching distribution found for tb-nightly

意思是清华镜像站中没有tb-nightly库。因此这一个库单独从其他镜像站中下载。我选择的是阿里云。具体下载代码如下:

python -m pip install tb-nightly -i https://mirrors.aliyun.com/pypi/simple

如过不放心,可以用阿里云镜像再次安装一遍txt文档中的所有库。(或者可以从一开始就不用清华镜像站,全用阿里云即可)

pip install -r requirements.txt -i https://mirrors.aliyun.com/pypi/simple

第九步:安装gradio库

网络速度问题,任然选择镜像站(清华):

pip install gradio -i https://pypi.tuna.tsinghua.edu.cn/simple

第十步:创建一个符号链接

python basicsr/setup.py develop

输入上一行代码命令。

用于在当前系统上安装一个 Python 包或者项目,但不会将其复制到 Python 安装目录中,而是创建一个符号链接(symbolic link),指向项目的源代码所在的目录。

第十一步:两个训练模型

在官网上可以看到这些训练模型。

  1. python scripts/download_pretrained_models.py facelib
  2. python scripts/download_pretrained_models.py dlib
  3. python scripts/download_pretrained_models.py CodeFormer

前两行是专门针对人脸修复的模型。我23年一月安装的时候是只有第一行没有第二行的,现在可能是更新了。

第三行是争对图像整体修复的模型。

这三行命令直接输入即可,同样也是在CodeFormer文件夹下输入。

以上就完全搭建好了CodeFormer本地程序了。

接下来就是测试。首先找到文件夹路径:

C:\Users\Xheng1934\CodeFormer       (users后面是你的账户名称)

进入文件夹后找到inputs的子文件夹。

子文件夹中有很多文件夹,有:whole_imgs,copped_faces,gray_faces,masked_faces这些文件夹。随便点开一个发现是模糊或者有损的照片。此时可以从其中随便复制一两张图片。然后在inputs文件夹中创建一个新文件夹名叫test:

接下来打开cmd,先输入:

cd codeformer

进入CodeFormer文件夹,随后输入:

python inference_codeformer.py -w 0.1 --has_aligned --input_path

然后输入一个空格,把刚才test的文件夹路径复制下来黏贴在后面。

python inference_codeformer.py -w 0.1 --has_aligned --input_path C:\Users\Xheng1934\CodeFormer\inputs\test

随后回车。

可以看到:

All results are saved in results/test_0.1

返回CodeFormer文件夹,找到results子文件夹,打开后即可发现一个名字为test_0.1的子文件夹。所有已经修复的照片都在里面。下图是修复前后的清晰度对比。可见效果非常震惊。

说说不足的地方:

第一:图片尺寸

我不清楚我哪一步有出现小错误。23年一月安装的时候,任何尺寸的图片都可以修复,但是现在只能修复正方形图片,否则图片的长宽会被压缩成正方形。

第二:模型的保真度

看个我修复虎哥图片的例子会发现保真度还有上升空间。

给我虎哥整成大小眼了。不过可以调整参数控制精准度和保真度之间的平衡。w参数越小,修复质量越高,参数越大保真度越高。

python inference_codeformer.py -w 0.5 --has_aligned --input_path C:\Users\Xheng1934\CodeFormer\inputs\test

我同时对比了原图,w=0.5,w=0.1三种图片。

0.5参数还可以。

最后给出修复整体多人图片和视频修复的代码。使用方法和上述相同:

  1. python inference_codeformer.py -w 0.5 --input_path 文件夹路径(整体图片)
  2. python inference_codeformer.py --bg_upsampler realesrgan --face_upsample -w 0.1 --input_path 文件夹路径(视频)

切记所有代码都是在终端中CodeFormer文件夹下执行的。

到这一步已经结束了。下面是pip代替conda安装的问题。

PS:pip安装pytorch的问题(已成功test的不用看)

最后说一下之前说的不用conda安装,用pip安装的问题:

如果是在cmd中运行conda安装,会出现报错:

  1. conda install pytorch torchvision torchaudio cpuonly -c pytorch
  2. Error:conda不是内部或外部命令

使用pip安装:

pip3 install torch torchvision torchaudio(速度慢)

附加一个pip更新的代码:(同样是清华镜像)

python.exe -m pip install -i https://pypi.tuna.tsinghua.edu.cn/simple --upgrade pip

清华镜像的模板:

pip install xxxxxx -i https://pypi.tuna.tsinghua.edu.cn/simple

镜像安装pytorch:

pip install torch torchvision torchaudio -i https://pypi.tuna.tsinghua.edu.cn/simple

可选安装位置为e盘,在初始cmd中输入:

e:

进入e盘(我23年一月的时候就是安装在e盘没问题的)

pip安装版本也可以用,后续代码相同:

  1. cd CodeFormer
  2. python inference_codeformer.py -w 0.1 --has_aligned --input_path
  3. python inference_codeformer.py -w 0.5 --input_path
  4. python inference_codeformer.py --bg_upsampler realesrgan --face_upsample -w 0.1 --input_path

结束!

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/我家小花儿/article/detail/131762
推荐阅读
  

闽ICP备14008679号