赞
踩
这篇准备真的超详细,每一步可能出错的情况,我都一一写了备注和解决方案。只要是个人,手上有个无论多低配的电脑,不需要代码知识,就能建立本地程序,而且完全免费。
先看一下官方网站给出的案例:
这个效果还是很牛掰的。我自己是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版本
这一步有很多需要注意的事项了。
上述网页直接拉到最低端,看到下图页面:
这里需要根据自己的电脑来进行选择:
第一行不管就选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”。
不过到这里,如果采用清华镜像站的安装,会有个报错问题:
- ERROR: Could not find a version that satisfies the requirement tb-nightly (from torchreid) (from versions: none)
- 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),指向项目的源代码所在的目录。
第十一步:两个训练模型
在官网上可以看到这些训练模型。
- python scripts/download_pretrained_models.py facelib
- python scripts/download_pretrained_models.py dlib
- 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参数还可以。
最后给出修复整体多人图片和视频修复的代码。使用方法和上述相同:
- python inference_codeformer.py -w 0.5 --input_path 文件夹路径(整体图片)
- 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安装,会出现报错:
- conda install pytorch torchvision torchaudio cpuonly -c pytorch
- 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安装版本也可以用,后续代码相同:
- cd CodeFormer
- python inference_codeformer.py -w 0.1 --has_aligned --input_path
- python inference_codeformer.py -w 0.5 --input_path
- python inference_codeformer.py --bg_upsampler realesrgan --face_upsample -w 0.1 --input_path
结束!
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。