兄弟们好
最近闲逛,发现腾讯开源的老照片修复算法FPGAN新出了V1.3预训练模型,手痒试了一下,满惊艳的。
我拿“自己”的旧照片试了一下,先看效果
对比:右侧为修复后
只看人脸部分
GFPGAN
https://arxiv.org/pdf/2101.04061.pdf
FPGAN算法由腾讯PCG ARC实验室提出,其相关论文已被CVPR2021收录。
研究核心利用了包含在训练好的人脸生成模型里的「知识」, 被称之为生成人脸先验 (Generative Facial Prior, GFP)。它不仅包含了丰富的五官细节, 还有人脸颜色, 此外它能够把人脸当作一个整体来对待, 能够处理头发、耳朵、面部轮廓。基于预训练好的生成模型, 研究者们提出了利用生成人脸先验 GFP 的人脸复原模型 GFP-GAN。相比于近几年其他人脸复原的工作, GFP-GAN 不仅在五官恢复上取得了更好的细节, 整体也更加自然, 同时也能够对颜色有一定的增强作用。
GFP-GAN 框架概览图
Online 试玩版
官方提供了 Online 试玩版
Huggingface (只返回人脸)
https://huggingface.co/spaces/akhaliq/GFPGAN
Replicate.ai
https://replicate.com/xinntao/gfpgan
Baseten.co
https://app.baseten.co/applications/Q04Lz0d/operator_views/8qZG6Bg
我测试了一下,只有Replicate比较稳定。
只需将你想修复的照片拖进左边的图片框内,点击Submit即可。
比如我把自己的照片再传上去
效果不太理想,锐化有点过,貌似是因为用的V1.2的预训练模型吧。
本地运行
本地运行可以使用最新的预训练模型,修复效果更加自然,能在低质量输入的情况下,输出高质量结果。
环境要求:
Python >= 3.7 (推荐使用Anaconda or Miniconda)
PyTorch >= 1.7
Option: NVIDIA GPU + CUDA
Option: Linux
我的系统是Ubuntu 20.04.2 LTS ,Win平台没有尝试,感兴趣的同学可以试试。
克隆项目
git clone https://github.com/TencentARC/GFPGAN.git cd GFPGAN
安装依赖
# 安装BasicSR:基于 PyTorch 的开源图像视频复原工具箱, 比如 超分辨率, 去噪, 去模糊, 去 JPEG 压缩噪声等. pip install basicsr # 安装facexlib: 提供实用的人脸相关功能的集合 pip install facexlib # 安装GFPGAN依赖包 pip install -r requirements.txt python setup.py develop # Real-ESRGAN:图像分辨率修复工具,可以提升照片分辨率 pip install realesrgan
注:
直接pip install basicsr,我遇到大面积的warning,后面运行时报错了
ImportError: cannot import name 'load_file_from_url' from 'basicsr.utils.download_util'
大家如果有相同问题,可以尝试
!pip install basicsr
下载V1.3预训练模型
# wget https://github.com/TencentARC/GFPGAN/releases/download/v1.3.0/GFPGANv1.3.pth -P experiments/pretrained_models
模型就下载到experiments/pretrained_models目录下了
运行
终端切到GFPGAN目录下,运行:
python inference_gfpgan.py -i inputs/whole_imgs -o results -s 2
inputs目录下存放准备修复的图片,工程包里包含了部分测试图片,你也可以将自己要修复的图片放在inputs下一级的某个文件夹中。
results目录则保存处理后生成的结果图片,包含了对比图像、人脸图像、整张图像等多个子文件夹。
第一次运行时会比较慢,还会额外自动下载facexlib的模型文件;稍后片刻就能在results\cmp目录下看到修复前后的对比图片了: