GFPGAN源码分析—第一篇-项目综述

2021SC@SDUSC

一、分析项目介绍

1.GFPGAN简介

腾讯 PCG 应用研究中心 (ARC) 的研究者提出的利用生成人脸先验 GFP 的人脸复原模型 ——GFP-GAN,用于解决如何从低分辨率低质量的真实图像中获得较好的先验知识,复原人脸图像的问题。它利用封装在预训练脸部GAN中的丰富多样的先验信息进行人脸盲修复。这种生成性面部先验(GFP)通过空间特征变换层被纳入到人脸恢复过程中。

论文地址: https://arxiv.org/abs/2101.04061 

pdf:https://arxiv.org/pdf/2101.04061.pdf

2.论文摘要

        真实世界的人脸复原是一个盲问题,即我们不清楚降质过程, 在实际应用中,同时也面临着各种各样降质过程的挑战。对于人脸这个特定的任务, 之前的工作往往会探索人脸特定的先验, 并且取得了较好的效果。与此同时, 生成对抗网络 GAN 的蓬勃发展, 特别是 StyleGAN2 能够生成足够以假乱真的人脸图像给来自腾讯 PCG 应用研究中心 (ARC) 的研究者们提供了一个思路: 是否可以利用包含在人脸生成模型里面的「知识」来帮助人脸复原呢?

研究核心利用了包含在训练好的人脸生成模型里的「知识」, 被称之为生成人脸先验 (Generative Facial Prior, GFP)。它不仅包含了丰富的五官细节, 还有人脸颜色, 此外它能够把人脸当作一个整体来对待, 能够处理头发、耳朵、面部轮廓。基于预训练好的生成模型, 研究者们提出了利用生成人脸先验 GFP 的人脸复原模型 GFP-GAN。相比于近几年其他人脸复原的工作, GFP-GAN 不仅在五官恢复上取得了更好的细节, 整体也更加自然, 同时也能够对颜色有一定的增强作用。

GFP-GAN主要框架

GFPGAN源码分析—第一篇-项目综述_第1张图片

人脸修复效果对比与展示 

GFPGAN源码分析—第一篇-项目综述_第2张图片

二、项目导入

项目:

GFP-GAN: Towards Real-World Blind Face Restoration with Generative Facial Prior

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

项目与系统需求:

  • Python >= 3.7 (Recommend to use Anaconda or Miniconda)
  • PyTorch >= 1.7
  • Option: NVIDIA GPU + CUDA
  • Option: Linux (We have not tested on Windows)
  • 项目列表展示

GFPGAN源码分析—第一篇-项目综述_第3张图片

安装依赖项:

# Install basicsr - https://github.com/xinntao/BasicSR
# We use BasicSR for both training and inference
pip install basicsr

# Install facexlib - https://github.com/xinntao/facexlib
# We use face detection and face restoration helper in the facexlib package
pip install facexlib

pip install -r requirements.txt
python setup.py develop

 cuda安装(option):

下载链接:CUDA Toolkit Archive | NVIDIA Developer

建议根据显卡型号选择适配的版本,实测3070系、80系显卡版本不适配易报错。

查看方法:右键>NVIDIA控制面板>帮助>系统信息>组件

GFPGAN源码分析—第一篇-项目综述_第4张图片

GFPGAN源码分析—第一篇-项目综述_第5张图片

 Pytorch的安装(option)

若pytorch报错可自行卸载后再安装。

下载地址:Start Locally | PyTorch

Quick Inference

input文件夹用于储存需要修复的图像,result文件夹保存修复后的结果

Download pre-trained models: GFPGANCleanv1-NoCE-C2.pth导入  experiments/pretrained_models

Inference!

运行 inference_gfpgan.py

或者:

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

Training

  1. 数据集: FFHQ

  2. 预先训练模型及相关数据下载,需导入  experiments/pretrained_models 中.

    1. Pretrained StyleGAN2 model: StyleGAN2_512_Cmul1_FFHQ_B12G4_scratch_800k.pth
    2. Component locations of FFHQ: FFHQ_eye_mouth_landmarks_512.pth
    3. A simple ArcFace model: arcface_resnet18.pth
  3. 相应的修改配置文件options/train_gfpgan_v1.yml

  4. Training

python -m torch.distributed.launch --nproc_per_node=4 --master_port=22021 gfpgan/train.py -opt options/train_gfpgan_v1.yml --launcher pytorch

 闲谈与规划

本篇博客作为GFPGAN源码分析第一篇文章,对其进行基本的介绍,安装使用说明以及成员分工。

本人负责训练模型,网络结构的分析

你可能感兴趣的:(GFPGAN源码分析,python,深度学习,图像处理,机器学习,计算机视觉)