Code Former安装及使用

news/2024/7/21 7:12:49 标签: python, 人工智能, 图像处理, github

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安装,就根据安装程序提示,一直下一步就好了

python_28">2.2.2创建python环境

Anaconda安装好后,打开客户端,点击environments,点击底部的create按钮,创建一个环境,环境名称自定义,推荐codeformer,环境的python版本,需要注意一下,要选3.8.x的版本,否则后面安装依赖的时候会报错。
image.png
环境创建完成后,先放旁边,等一会使用。

3.安装Git

Git是一个版本管理工具,用于clone项目源码,直接到git官网下载一个git安装即可,官网链接。
如果没有git,可以直接在github下载源码压缩包,也是可以使用的,具体使用下面会介绍。

4.安装PyTorch

pytorch是一个开源的Python机器学习库,可以用于支持code former进行机器学习,安装方法如下

4.1进入Pytorch官网

访问:https://pytorch.org/ 网站,并点击Get Started
image.png

4.2选择合适的版本类型

START LOCALLY根据自己电脑配置及安装的软件,选择合适信息即可,这里Computer Platform要看自己电脑显卡适不适合,如果电脑显卡是NVIDIA的,且支持CUDA,则选择对应版本的CUDA即可,如果不是NVIDIA显卡,则选择CPU,我的电脑没有显卡,所以我选择CPU
如果不确定自己的显卡支不支持CUDA,可以直接选择CPU,一般修复照片用不了太大的硬件需求,CPU完全够了
image.png
选择完毕之后,将Run this Command的命令行复制一下,到刚刚安装好的Anaconda的codeformer环境中执行一下,等待安装完成即可
image.png

5.下载Code Former源码

上面Pytorch安装完成后,就需要进入github下载源码了。下载源码有两种方式

  • git clone
  • 直接下载zip压缩包(适用于没有安装git的情况)

5.1git clone方式

进入github项目地址,点击Code按钮,点击Local,再选择Https,复制下方的https链接
image.png
然后回到自己电脑,找一个文件夹,用于存放项目源码。在这个文件夹中鼠标右键点击一下,选择Git Bash Here打开git命令行窗口。
image.png
在命令行窗口中输入以下命令并执行,等待项目下载完成即可。

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

5.2直接下载zip压缩包

访问git项目地址,点击Code按钮,再点击Download ZIP,等待源码下载完成即可,下载完成后,将zip压缩包找一个地方解压出来就行。
image.png

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参数:这个就是要修复的图片路径了,可以选单独图片路径,也可以选一个有图片的文件夹,它会将文件夹中,所有的图片都进行修复

修复效果大概就像下图这样↓(实测,修复效果真的很棒)
image.png

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/

http://www.niftyadmin.cn/n/5176442.html

相关文章

Linux认证 | RHCE是中级还是高级?含金量如何?

红帽认证是一个完善的认证体系,分为三个等级:初级、中级和高级。 其中,RHCE认证是中级认证。 这意味着,获得RHCE认证需要先通过初级认证,即Red Hat Certified System Administrator(RHCSA)认证…

pyTorch Hub 系列#2:VGG 和 ResNet

一、说明 在上一篇教程中,我们了解了 Torch Hub 背后的本质及其概念。然后,我们使用 Torch Hub 的复杂性发布了我们的模型,并通过相同的方式访问它。但是,当我们的工作要求我们利用 Torch Hub 上提供的众多全能模型之一时,会发生什么? 在本教程中,我们将学习如何利用称为…

一分多行列转换

问题描述: 将以下表方式存放的数据: 转换成如下方式存放: 1、 建表语句及插入测试数据 --建表语句 create table INFC_C_GUARANTOR_NISJ (CUST_NO VARCHAR2(30),BAIL_ACCT_NO VARCHAR2(2000) ); create table INFC_C_GUARANTOR_NISJ_N…

虚拟人高清视频渲染宝藏工具:RenderHare飞兔渲染软件

在数字时代,品牌为了抢占年轻人群体,纷纷涌入虚拟人IP赛道,通过虚拟人IP运营模式,构建独特的虚拟人IP记忆符号,向粉丝输出品牌潮流、年轻化的价值观,扩散虚拟IP影响力,让品牌真正与消费者玩在一…

【华为OD题库-015】报文重排序-Java

题目 对报文进行重传和重排序是常用的可靠性机制&#xff0c;重传缓冲区内有一定数量的子报文&#xff0c;每个子报文在原始报文中的顺序已知&#xff0c;现在需要恢复出原始报文。 输入描述 输入第一行为N,表示子报文的个数&#xff0c;0<N < 1000。 输入第二行为N个子报…

Notepad++,搜索窗口独立后,恢复

双击一下find result框&#xff0c;恢复到原来的模式。

Vue3导入表格功能

table导出excel&#xff08;xlsx版本高于0.18&#xff09; 1.npm安装依赖 npm install xlsx fs yarn安装依赖 yarn add xlsx yarn add fs 表格添加属性: 标签添加ref属性&#xff0c;用于获取该元素el&#xff1b;也可添加id属性获取 <el-table :data"datas" st…

约束条件的安全测试_报错注入

约束条件的安全测试_报错注入 基于约束的SQL攻击 报错注入