某天刷小red书发现可以将老照片修复成和刚拍的照片一样,看博主的视频,直呼也太神奇了。然后就根据博主推荐的小程序、app等注册试了试,oh,竟然要充money,哼,我就不信,我找不到免费的…
于是乎,就有了如下方法(腾讯开源项目),修复照片人脸还是很ok的,关键是不要钱,哈哈哈哈。
# GFPGAN 真实场景人脸复原的实用算法。t clone https://github.com/TencentARC/GFPGAN.git
cd GFPGAN
# Install basicsr - https://github.com/xinntao/BasicSR
# BasicSR (Basic Super Restoration) 是一个基于 PyTorch 的开源 图像视频复原工具箱, 用于训练和推理, 比如 超分辨率, 去噪, 去模糊, 去 JPEG 压缩噪声等.
pip install basicsr
# Install facexlib - https://github.com/xinntao/facexlib
# facexlib 是一个基于 pytorch 的库,提供实用的人脸相关功能的集合,例如检测、对齐、识别、跟踪、人脸修复的 utils 等。它只提供推理(没有训练)。
pip install facexlib
pip install -r requirements.txt
python setup.py develop
# Real-ESRGAN 盲图像超分辨率模型。
# 需要增强背景(非面部)区域的话,还需安装Real-ESRGAN模型
pip install realesrgan
示例:
python310 inference_gfpgan.py -i inputs/whole_imgs -o results_1.4 -v 1.4 -s 4
注:
-i 输入,需要处理的图片路径
-o 输出,保存处理后的图片路径
-v 指定GFPGAN模型版本, 当前支持'v1.2', 'v1.3', 'v1.4'三个版本,1.4相比1.3更加真实,当然各取所需
-s 图像的最终超采样比例. 默认: 2, 最大值是 4,可理解为放大
源代码默认是不支持在CPU上运行未优化的 RealESRGAN ,因为运行会比较缓慢。但如果真的要使用它,就需要修改相应的代码。否则,会有如下提示:
UserWarning: The unoptimized RealESRGAN is slow on CPU. We do not use it. If you really want to use it, please modify the corresponding codes.
# 修改inference_gfpgan.py后:
# ------------------------ set up background upsampler ------------------------
if args.bg_upsampler == 'realesrgan':
if not torch.cuda.is_available(): # CPU
# import warnings
# warnings.warn('The unoptimized RealESRGAN is slow on CPU. We do not use it. '
# 'If you really want to use it, please modify the corresponding codes.')
# bg_upsampler = None
from basicsr.archs.rrdbnet_arch import RRDBNet
from realesrgan import RealESRGANer
model = RRDBNet(num_in_ch=3, num_out_ch=3, num_feat=64, num_block=23, num_grow_ch=32, scale=2)
bg_upsampler = RealESRGANer(
scale=2,
model_path='https://github.com/xinntao/Real-ESRGAN/releases/download/v0.2.1/RealESRGAN_x2plus.pth',
model=model,
tile=args.bg_tile,
tile_pad=10,
pre_pad=0,
half=False) # need to set False in CPU mode else: bg_upsampler = None
示例:
python310 inference_gfpgan.py -i inputs/whole_imgs -o results_1.4 -v 1.4 -s 4
注:
-i 输入,需要处理的图片路径
-o 输出,保存处理后的图片路径
-v 指定GFPGAN模型版本, 当前支持'v1.2', 'v1.3', 'v1.4'三个版本,1.4相比1.3更加真实,当然各取所需
-s 图像的最终超采样比例. 默认: 2, 最大值是 4,可理解为放大
执行结束后,输出文件路径会出现4个目录:
cmp是人脸对比图:
cropped_faces 是人脸原图:
restored_faces是人脸修复后的图:
restored_imgs是修复后的完整图片:
完整图,修复前后的大图:
原图均来源于百度,如有侵权,请联系作者删除,谢谢~