3

腾讯老照片修复算法开源,细节到头发丝,3种预训练模型可下载 | GitHub热榜

 2 years ago
source link: https://www.qbitai.com/2022/03/33297.html
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.
neoserver,ios ssh client

腾讯老照片修复算法开源,细节到头发丝,3种预训练模型可下载 | GitHub热榜

head.jpg明敏 2022-03-13 14:04:52 来源:量子位

高圆圆、马化腾老照片轻松修复

明敏 发自 凹非寺

量子位 | 公众号 QbitAI

还记得这个能将老照片修复到纤毫毕现的GFPGAN吗?

腾讯老照片修复算法开源,细节到头发丝,3种预训练模型可下载

现在,它的代码正式开源了!

官方已经在GitHub上传了3个预训练模型,3个版本的效果区别如下:

腾讯老照片修复算法开源,细节到头发丝,3种预训练模型可下载

其中,V1.3是最近更新的一版,修复效果更加自然。同时还能在低质量输入的情况下,输出高质量结果。

自上线以来,GFPGAN已经在GitHub上揽星1.7w+,还曾登顶过热榜第一。

更是在推特上引起过一波试玩热潮:

腾讯老照片修复算法开源,细节到头发丝,3种预训练模型可下载

这一项目由腾讯PCG ARC实验室提出,其相关论文已被CVPR2021收录。

3种预训练模型可挑选

开源代码主要分为预训练和训练两个部分。

预训练中以GFPGAN的V1.3版本为例,给出了预训练模型的下载地址:

wget https://github.com/TencentARC/GFPGAN/releases/download/v1.3.0/GFPGANv1.3.pth -P Experiments/pretrained_models

然后,只需一行代码就能开始预训练模型推理了:

python inference_gfpgan.py -i inputs/whole_imgs -o results -v 1.3 -s 2

具体介绍如下:

Usage: python inference_gfpgan.py -i inputs/whole_imgs -o results -v 1.3 -s 2 [options]...

  -h                   show this help
  -i input             Input image or folder. Default: inputs/whole_imgs
  -o output            Output folder. Default: results
  -v version           GFPGAN model version. Option: 1 | 1.2 | 1.3. Default: 1.3
  -s upscale           The final upsampling scale of the image. Default: 2
  -bg_upsampler        background upsampler. Default: realesrgan
  -bg_tile             Tile size for background sampler, 0 for no tile during testing. Default: 400
  -suffix              Suffix of the restored faces
  -only_center_face    Only restore the center face
  -aligned             Input are aligned faces
  -ext                 Image extension. Options: auto | jpg | png, auto means using the same extension as inputs. Default: auto

在这里,官方还展示了3种预训练模型的区别在哪里。

腾讯老照片修复算法开源,细节到头发丝,3种预训练模型可下载

与初始版本相比,后两版在修复精度上有了明显提升。

V1.2的锐化更明显,同时还带有一些美颜效果,所以在一些情况下会比较假面。

V1.3明显解决了这一问题,使得输出更加自然,还能进行二次修复;不过弊端是人物面部特征有时会发生变化(比如下图中的安妮·海瑟薇示例)。

腾讯老照片修复算法开源,细节到头发丝,3种预训练模型可下载

总之,V1.3并不完全优于V1.2,大家可以按需选取合适的模型。

接下来到了训练部分。

首先,数据集选用FFHQ;

然后,将下载好的预训练模型其他数据放在experiments/pretrained_models文件夹里。

其他数据包括:

预训练好的StyleGAN2模型,FFHQ人脸对齐模型文件和ArcFace模型。

接下来,修改相对应的配置文件options/train_gfpgan_v1.yml。

在这里,也可以尝试不使用人脸对齐的简单版本options/train_gfpgan_v1_simple.yml。

最后,就可以开始训练了。

python -m torch.distributed.launch —nproc_per_node=4 —master_port=22021 gfpgan/train.py -opt options/train_gfpgan_v1.yml —launcher pytorch此外,官方还有两则提醒。

第一,输入更多高质量的人脸图像,可以提高修复的效果。

第二,训练中可能需要进行一些图像预处理,比如美颜。

如果你选择训练V1.2版本,官方还给出了微调指南:

GFPGAN V1.2采用了clean架构,更加方便部署;它是从一个双线性模型转换而来,因此需要对其原有模型微调,然后再进行转换。

Demo试玩

除了开源代码,官方也早已开通了多个线上试玩通道。

在这里,我们用HuggingFace来给大家展示具体效果。

先来看看修复后的蒙娜丽莎女士,不仅面部的噪点都被去掉了,甚至连头发上的纱巾都清晰可见。

腾讯老照片修复算法开源,细节到头发丝,3种预训练模型可下载

修复的爱因斯坦,笑起来时脸上的褶皱更加明显,头发丝、胡茬也都被还原了出来。

腾讯老照片修复算法开源,细节到头发丝,3种预训练模型可下载

最后再来看看修复后的青年马化腾,这照片清晰地仿佛像昨天才拍出来一样。

腾讯老照片修复算法开源,细节到头发丝,3种预训练模型可下载

盲脸修复+大量先验信息

GFPGAN能够快速、高清地修复各种人脸图像,主要是应用了盲脸修复 (blind face restoration)。

传统人脸修复方法主要针对同一场景下、特定退化的人脸图像修复。

比如此前一些人脸修复方法,会把奥巴马的照片还原为白人面孔。这背后除了数据集存在偏差,还可能是算法没有为每张人脸特征性建模。

腾讯老照片修复算法开源,细节到头发丝,3种预训练模型可下载

盲脸修复就很好解决了这一弊端,它是指当点扩展函数未知或不确知的情况下,从低质的待修复人脸图像恢复出清晰、高质的目标人脸图像的过程。

本质上是一种非匹配性的人脸修复方法。

不过此前的一些盲脸修复方法在细节上表现不好,由此作者在GFPGAN中引入丰富的先验信息,从而来保证高质量的输出效果。

腾讯老照片修复算法开源,细节到头发丝,3种预训练模型可下载

具体来看,在GFP-GAN的模型框架中,主要用到了一个退化清除模块和一个预训练的GAN作为先验。

两个模块通过隐编码映射和多个信道分割空间特征变化层(CS-SFT)连接。

训练过程中,首先要对低质量人脸进行降噪等粗处理,然后保留面部信息。

在保真度方面,研究人员引入了一个面部损失( Facial Component Loss),判断哪些细节需要提升保留,然后再用识别保留损失(Identity Preserving Loss)进行修复。

本文论文一作是Xintao Wang,他是腾讯 ARC 实验室(深圳应用研究中心)的研究员。

本科毕业于浙江大学,博士毕业于香港中文大学。

其博士期间师从汤晓鸥教授和Chen Change Loy教授。

研究方向为计算机视觉和深度学习,尤其关注图像、视频修复方面。

腾讯老照片修复算法开源,细节到头发丝,3种预训练模型可下载

GitHub地址:
https://github.com/TencentARC/GFPGAN

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

试玩地址:
https://huggingface.co/spaces/akhaliq/GFPGAN

版权所有,未经授权不得以任何形式转载及使用,违者必究。

About Joyk


Aggregate valuable and interesting links.
Joyk means Joy of geeK