Code Former是南洋理工大学和商汤科技联合研究中心联合开发一款AI人脸修复算法,通过该算法,可以对已经模糊的图片进行人脸修复,找回斑驳的记忆
由于网上对于Code Former的封装,全都是要花钱,或者需要其他什么曲折的方式,才能勉强使用到,所以为了能愉快的修复照片,决定自己整理一下开源项目的搭建使用方法,方便更多需要修复照片的小伙伴
1.整体流程介绍
Code Former项目已经在Github开源了,直接访问github项目地址,即可看到Readme文件中,对项目构建、使用的简介。
Code Former整体流程大概可分为
- 安装Python
- 安装Git
- 安装PyTorch
- clone源码
- 安装源码所需依赖库
- 编译源码
- 安装人脸修复AI模型
- 使用
下面对这几个具体流程进行详细说明
2.安装Python
Python安装有两个选择
- 去官网下载Python
- 下载Anaconda
2.1官网下载Python
直接百度搜索Python官网,进入官网点击下载即可,不过需要注意,不要下载最新版,Code Former要求Python3.8的版本高版本或低版本可能会出现一些依赖问题,建议直接下载Python3.8版本,官网链接。
2.2下载Anaconda(单独安装Python的,可以跳过此步骤)
Anaconda是Python的一个发行版,相比Python,Anaconda多了conda、numpy等的一大堆便于使用的工具包,且可以创建不同版本Python的环境,相对来说更好使用,官网链接。
下面介绍Anaconda安装步骤
2.2.1安装
Anaconda安装,就根据安装程序提示,一直下一步就好了
2.2.2创建python环境
Anaconda安装好后,打开客户端,点击environments
,点击底部的create
按钮,创建一个环境,环境名称自定义,推荐codeformer
,环境的python版本,需要注意一下,要选3.8.x
的版本,否则后面安装依赖的时候会报错。
环境创建完成后,先放旁边,等一会使用。
3.安装Git
Git是一个版本管理工具,用于clone项目源码,直接到git官网下载一个git安装即可,官网链接。
如果没有git,可以直接在github下载源码压缩包,也是可以使用的,具体使用下面会介绍。
4.安装PyTorch
pytorch是一个开源的Python机器学习库,可以用于支持code former进行机器学习,安装方法如下
4.1进入Pytorch官网
访问:https://pytorch.org/ 网站,并点击Get Started
4.2选择合适的版本类型
在START LOCALLY
根据自己电脑配置及安装的软件,选择合适信息即可,这里Computer Platform
要看自己电脑显卡适不适合,如果电脑显卡是NVIDIA的,且支持CUDA,则选择对应版本的CUDA即可,如果不是NVIDIA显卡,则选择CPU,我的电脑没有显卡,所以我选择CPU
如果不确定自己的显卡支不支持CUDA,可以直接选择CPU,一般修复照片用不了太大的硬件需求,CPU完全够了
选择完毕之后,将Run this Command
的命令行复制一下,到刚刚安装好的Anaconda的codeformer
环境中执行一下,等待安装完成即可
5.下载Code Former源码
上面Pytorch安装完成后,就需要进入github下载源码了。下载源码有两种方式
- git clone
- 直接下载zip压缩包(适用于没有安装git的情况)
5.1git clone方式
进入github项目地址,点击Code
按钮,点击Local
,再选择Https
,复制下方的https链接
然后回到自己电脑,找一个文件夹,用于存放项目源码。在这个文件夹中鼠标右键点击一下,选择Git Bash Here
打开git命令行窗口。
在命令行窗口中输入以下命令并执行,等待项目下载完成即可。
git clone https://github.com/sczhou/CodeFormer.git
5.2直接下载zip压缩包
访问git项目地址,点击Code
按钮,再点击Download ZIP
,等待源码下载完成即可,下载完成后,将zip压缩包找一个地方解压出来就行。
6.安装其他相关依赖
以上环境及源码都准备完成后,就需要为项目安装其他相关依赖了,分别为:
- 安装项目所需依赖库
- 编译codeformer
- 下载学习模型
6.1安装项目所需依赖库
在源码文件夹下,打开anaconda的codeformer环境cmd窗口,执行以下命令,安装项目所需依赖库(如果是单独安装了python的话,直接在源码文件夹打开cmd窗口即可)
pip3 install -r requirements.txt
如果命令执行过程中报错,可以打开requirements.txt
文件,使用pip3 install 具体依赖库
的方式,手动安装所需的依赖库
例如,requirements.txt文件第一行是addict
依赖,则执行pip3 install addict
即可手动安装好addict依赖库
6.2编译codeformer
上一步执行成功后,再执行以下命令,编译codeformer
python basicsr/setup.py develop
6.3下载学习模型
编译步骤成功后,还需要下载两个模型,才可以使用codeformer的人像修复功能,执行以下三个命令,分别下载几个模型
注意:这三条命令需要一条一条执行,不要一起执行
python scripts/download_pretrained_models.py facelib
python scripts/download_pretrained_models.py dlib
python scripts/download_pretrained_models.py CodeFormer
7.使用
经过以上繁琐流程之后,code former就算正式搭建完成了,下面就可以愉快使用了。不过codeformer自己没有gui交互页面,所以目前只能通过命令行的形式来进行使用,如果对codeformer图形化交互有兴趣的同学,可以自己研究一下。
7.1单独图片人脸修复
执行一下命令,即可对只有一个人脸的图片进行修复
python inserface_codeformer.py -w 0.2 --has_aligned --input_path [image folder]|[image path]
命令说明:
- -w参数:-w是一个权重参数,取值范围为[0,1],取值越小,则图像修复的质量更高,即人脸修复效果最好,取值越大,则会产生保真度更高的图片,就是人脸修复不那么好,但是图片整体效果会好点(实测,建议将w的参数值写成0,这样人脸修复效果最好,参数值写大了,修复结果反倒并不理想)
- –input_path参数:这个就是要修复的图片路径了,可以选单独图片路径,也可以选一个有图片的文件夹,它会将文件夹中,所有的图片都进行修复
修复效果大概就像下图这样↓(实测,修复效果真的很棒)
7.2一张图片多张人脸修复
如果一个照片里面有多个人像,则可以执行以下命令进行修复
python inference_codeformer.py -w 0.7 --input_path [image folder]|[image path]
这个命令中的参数与7.1中的参数含义一致,可以按照自己需求进行设置
以上就是code former从搭建到使用的步骤了,除了修复图片,codeformer还可以修复视频,更多的使用方法,等待小伙伴们自己探索,有问题欢迎私信交流哇。
8.Anaconda和pip下载依赖慢解决方法
8.1Anaconda依赖下载慢解决方法
Anaconda下载依赖的时候,会去连接国外的镜像源,网络不好的话,会导致下载速度极慢,可以将Anaconda镜像源切换到清华大学的镜像源,执行以下三条命令,即可将镜像源换成清华大学的
conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/free/
conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/main/
conda config --set show_channel_urls yes
8.2pip下载依赖慢解决方法
pip进行依赖下载的时候,也会遇到速度很慢的问题,可以执行以下命令,将pip镜像源换成清华或者阿里的镜像源
镜像源选择一个使用就行,如果pip在下载过程中报错,提示没有相关依赖的话,可以再切换一下镜像源,比如清华镜像源没有某个依赖,那么就切换到阿里云镜像源,一般这两个镜像源都比较全,如果还没有,建议百度摘一下其他的pip镜像源再做替换尝试下载
# 清华镜像源
pip config set global.index-url https://pypi.tuna.tsinghua.edu.cn/simple/
# 阿里云镜像源
pip config set global.index-url https://mirrors.aliyun.com/pypi/simple/