python 学习笔记18 GFPGAN人脸(图片)修复

老实说这个和学习没啥关系,就是一个python解决方案的实践。

觉得有趣就试了一下,先上链接:

官方:https://github.com/TencentARC/GFPGAN/blob/master/README.md

这是个高分项目,用于人脸(在逐渐拓展到其他图像类别,如背景)图像修复。如下图:

腾讯 AI 的研究人员提出了他们的新GFP-GAN 模型,以在一次前向传递中实现真实性和保真度的良好平衡。该模型由退化去除模块和预先训练的人脸生成器组成。它们通过直接潜在代码映射连接到使用 CS SFT 层的粗到细通道。CS-SFT 层对分割的特征执行空间调制,并让左侧的特征直接通过以更好地保存信息,从而允许所提出的方法结合生成先验,同时有效地重新训练高保真度。此外,研究人员在局部鉴别器中引入了面部成分损失,以进一步增强感知面部细节和身份保留增益,从而提高整体质量。

python 学习笔记18 GFPGAN人脸(图片)修复_第1张图片

 需求:

  • Python >= 3.7 (Recommend to use Anaconda or Miniconda)
  • PyTorch >= 1.7
  • Option: NVIDIA GPU + CUDA
  • Option: Linux

部署:

1.下代码,有git可以用git 下,没有的就直接下载代码解压缩。解压缩后会有一个GFPGAN-master的文件夹。

下载链接:GitHub - TencentARC/GFPGAN: GFPGAN aims at developing Practical Algorithms for Real-world Face Restoration.

2.下载训练库,我这因为不具备CUDA的条件,所以下载的是第一个,下载好后放到\GFPGAN-master\experiments\pretrained_models这个文件夹中,如果要下载其他训练库也是放在这里。

  • GFPGANCleanv1-NoCE-C2.pth: (左边链接是训练库1,不需CUDA)No colorization; no CUDA extensions are required. It is still in training. Trained with more data with pre-processing.
  • GFPGANv1.pth: (左边连接是训练库2,应该是需要CUDA的)The paper model, with colorization.

3.安装依赖库类(我这是win10环境):

没有CUDA,在cmd或者powershell里面:

pip install basicsr

pip install facexlib

#然后进入到GFPGAN-master目录里面,这里有个requirements.txt
pip install -r requirements.txt
python setup.py develop

#如果你还要试试修复无头像的背景图片,还要安装下面这个
pip install realesrgan

如果你有CUDA,教程里说这样装第一步,其他一样:

    # Install basicsr - https://github.com/xinntao/BasicSR
    # We use BasicSR for both training and inference
    # Set BASICSR_EXT=True to compile the cuda extensions in the BasicSR - It may take several minutes to compile, please be patient
    # Add -vvv for detailed log prints
    #这里好像是 set BASICSR_EXT=True pip install basicsr -vvv ,或者分开两行
    BASICSR_EXT=True pip install basicsr -vvv

使用:

将需要修复的图片放到 :\GFPGAN-master\inputs\whole_imgs,修复完成后图片会在result文件夹里

打开cmd或powershell,输入命令:

python inference_gfpgan.py -i inputs/whole_imgs -o results -v 1.3 -s 2

等一会就好了

异常解决:

 如果你用的是这个命令:

python inference_gfpgan.py --model_path experiments/pretrained_models/GFPGANCleanv1-NoCE-C2.pth --test_path inputs/whole_imgs --save_root results --arch original --channel 1

并且报这个错:NameError: name 'fused_act_ext' is not defined

那装个ninja再试试第一种命令就行了:

pip3 install ninja

python inference_gfpgan.py --upscale 2 --test_path inputs/whole_imgs --save_root results

还不行就参考 python目录下:\lib\site-packages\basicsr\ops\fused_act\fused_act.py

里面的内容:

        # avoid annoying print output
        # print(f'Cannot import deform_conv_ext. Error: {error}. You may need to: \n '
        #       '1. compile with BASICSR_EXT=True. or\n '
        #       '2. set BASICSR_JIT=True during running')

实际效果展示

python 学习笔记18 GFPGAN人脸(图片)修复_第2张图片

你可能感兴趣的:(python,python,开发语言,后端,算法)