腾讯老照片修复算法开源,细节到头发丝,3种预训练模型可下载 | GitHub热榜
明敏 发自 凹非寺
量子位 | 公众号 QbitAI
还记得这个能将老照片修复到纤毫毕现的GFPGAN吗?

现在,它的代码正式开源了!
官方已经在GitHub上传了3个预训练模型,3个版本的效果区别如下:

其中,V1.3是最近更新的一版,修复效果更加自然。同时还能在低质量输入的情况下,输出高质量结果。
自上线以来,GFPGAN已经在GitHub上揽星1.7w+,还曾登顶过热榜第一。
更是在推特上引起过一波试玩热潮:

这一项目由腾讯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种预训练模型的区别在哪里。

与初始版本相比,后两版在修复精度上有了明显提升。
V1.2的锐化更明显,同时还带有一些美颜效果,所以在一些情况下会比较假面。
V1.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来给大家展示具体效果。
先来看看修复后的蒙娜丽莎女士,不仅面部的噪点都被去掉了,甚至连头发上的纱巾都清晰可见。

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

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

盲脸修复+大量先验信息
GFPGAN能够快速、高清地修复各种人脸图像,主要是应用了盲脸修复?(blind face restoration)。
传统人脸修复方法主要针对同一场景下、特定退化的人脸图像修复。
比如此前一些人脸修复方法,会把奥巴马的照片还原为白人面孔。这背后除了数据集存在偏差,还可能是算法没有为每张人脸特征性建模。

盲脸修复就很好解决了这一弊端,它是指当点扩展函数未知或不确知的情况下,从低质的待修复人脸图像恢复出清晰、高质的目标人脸图像的过程。
本质上是一种非匹配性的人脸修复方法。
不过此前的一些盲脸修复方法在细节上表现不好,由此作者在GFPGAN中引入丰富的先验信息,从而来保证高质量的输出效果。

具体来看,在GFP-GAN的模型框架中,主要用到了一个退化清除模块和一个预训练的GAN作为先验。
两个模块通过隐编码映射和多个信道分割空间特征变化层(CS-SFT)连接。
训练过程中,首先要对低质量人脸进行降噪等粗处理,然后保留面部信息。
在保真度方面,研究人员引入了一个面部损失( Facial Component Loss),判断哪些细节需要提升保留,然后再用识别保留损失(Identity Preserving Loss)进行修复。
团队介绍
本文论文一作是Xintao Wang,他是腾讯 ARC 实验室(深圳应用研究中心)的研究员。
本科毕业于浙江大学,博士毕业于香港中文大学。
其博士期间师从汤晓鸥教授和Chen Change Loy教授。
研究方向为计算机视觉和深度学习,尤其关注图像、视频修复方面。

GitHub地址:
https://github.com/TencentARC/GFPGAN
论文地址:
https://arxiv.org/abs/2101.04061
试玩地址:
https://huggingface.co/spaces/akhaliq/GFPGAN
— 完 —
本文系网易新闻?网易号特色内容激励计划签约账号【量子位】原创内容,未经账号授权,禁止随意转载。
直播报名 | 如何建立AI生态的“Android”
从感知到认知,AI还需要多久才能触及生产核心?从软件到数件,AI生态该如何建立自己“Android”?
3月16日19:30,「量子位·视点」CEO/CTO系列分享活动将邀请天云数据CEO雷涛直播分享个人见解。扫码预约直播围观吧~


量子位?QbitAI · 头条号签约作者
?'?' ? 追踪AI技术和产品新动态
一键三连「分享」「点赞」和「在看」
科技前沿进展日日相见 ~
关注公众号:拾黑(shiheibook)了解更多
[广告]赞助链接:
四季很好,只要有你,文娱排行榜:https://www.yaopaiming.com/
让资讯触达的更精准有趣:https://www.0xu.cn/







量子位
关注网络尖刀微信公众号
