AI 黑科技,老照片修复,模糊变高清

698 阅读3分钟

大家好
最近闲逛,发现腾讯开源的老照片修复算法新出了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 (只返回人脸)
huggingface.co/spaces/akha…

Replicate.ai
replicate.com/xinntao/gfp…

Baseten.co
app.baseten.co/application…

我测试了一下,感觉只有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目录下看到修复前后的对比图片了: