使用GFPGAN修复美化老照片
老照片修复利器GFPGAN,该模型为腾讯2021年开源的一个用于图片人脸复原修复的GAN模型;我们都有很多老照片,很多很久以前用两三百万像素拍的照片或原文件丢失了,只剩下压缩文件或QQ空间里面的老照片,现在一些App也支持老照片修复但往往效果不太理想或都需要收费;这时可以使用GFPGAN对相片进行修复复原;
对GFPGAN模型进行微调或许很多人没有相应的条件进行,可使用GFPGAN提供的预训练模型,该预训练模型参数输出的修复效果对比原图还算是基本可用;
安装GFPGAN
由于安装GFPGAN与使用GFPGAN时会下载对应的预训练模型参数等文件比较大等最好设置相应的代理上网;
可在cmd命令行设置代理,此代理为临时的,也可设置git代理:
set https_proxy=http://127.0.0.1:10809
GFPGAN可直接下载GFPGAN压缩包或通过git clone下载,然后进入GFPGAN的安装目录下,如:D:\software\dev\github\GFPGAN,并将下载的GFPGAN项目放到D:\software\dev\github\GFPGAN\venv\Scripts\目录中;
在命令行执行如下指令安装GFPGAN依赖:
pip install basicsr facexlib
pip install -r requirements.txt
从命令行进入D:\software\dev\github\GFPGAN\目录中然后执行:
python setup.py develop 完成GFPGAN的安装;
如需对背景进行优化增强需安装Real-ESRGAN
pip install realesrgan
可以看到运行GFPGAN除了下载自身的GFPGANv1.3预训练模型外还下载了残差神经网络模型、ParseNet模型;
GFPGAN使用
进入GFPGAN目录执行如下命令即可:
python inference_gfpgan.py -i inputs/whole_imgs -o results -v 1.3 -s 2
参数:
-i 图片或目录的路径
-s 最终图片上采样比例
-o 图片输出路径
执行完后GFPGAN将 inputs/whole_imgs目录中的图片修复并输出到results目录中;
图片的对比如下: 效果还是相对可以除了处理面部外还对头发进行的修复;
修复前图:
修复后图:
该模型作者提出了精密设计的GFPGAN模型,模型在一个单向前向传播过程能够实现真实性和保真性的平衡。GFPGAN由一个退化移除模块(U-Net)和一个预训练的GAN模块(StyleGAN2)。通道分离空间特征转换层(Channel-Split Spatial Feature Transform,CS-SFT)以由粗到细的方式将两个模块的隐向量结合。具体论文如下:
http://openaccess.thecvf.com/content/CVPR2021/papers/Wang_Towards_Real-World_Blind_Face_Restoration_With_Generative_Facial_Prior_CVPR_2021_paper.pdf