GFPGAN 研究

 @halomaster 19 Sep 2022, 16:42 GMT【AI】 

比较了很多用于图片/照片增强的模型,目前效果最好的就是GFPGAN。 虽然有一些基于扩散模型的新模型号称效果更好,但是在推理速度上还是输给了GFPGAN。 ![GFPGAN.jpg](https://s2.loli.net/2022/09/20/7zkZOTL9GYqxRl6.jpg) GFP-GAN框架的概述:它包括一个degradation removal模块和一个预先训练好的face GAN作为 facial prior(人脸先验模型)。它们由latent code映射和几个Channel-Split Spatial Feature Transform(CSSFT)层。所提出的CS-SFT调制实现了良好的保真度和保真度平衡。在训练过程中,使用 - 1)Pyramid restoration引导来消除现实世界中复杂的退化 - 2)Facial component损失和识别器来增强面部细节 - 3) identity preserving损失以保持面部身份 GFP-GAN由去退化模块,作为先验的预训练GAN(StyleGAN2)组成,然后用基于通道分割的空间特征转换(CS-SFT)方式连接起来。 - 去退化模块将潜在特征映射至预训练的StyleGAN2的潜在特征空间; - 多分辨率特征从粗到细地调制StyleGAN2的功能; - 损失函数除了传统的对抗损失之外,还添加了面部组件损失、以及身份保真损失、以及去退化模块上的重建损失。

[1] @halomaster • 19 Sep 2022, 16:59 GMT 
动机与难点 - 无参考重建需要提供一些准确的几何先验(面部标记、解析图、组件热力图等),一方面在低分辨率或者低质量输入时,几何先验不准确;另一方面,获取高质量的有参考图像十分困难; - 利用高质量的先验很难得到,从而导致先验字典容量过小,限制了其面部细节的多样性和丰富性。

[2] @halomaster • 19 Sep 2022, 23:02 GMT 
GFPGAN在第一步的U-Net部分采用了类似StyleGAN2的Mapping network --- latent code部分结构。 Mapping network 要做的事就是对隐藏空间(latent space)进行解耦 https://towardsdatascience.com/understanding-latent-space-in-machine-learning-de5a7c687d8d latent code 简单理解就是,为了更好的对数据进行分类或生成,需要对数据的特征进行表示,但是数据有很多特征,这些特征之间相互关联,耦合性较高,导致模型很难弄清楚它们之间的关联,使得学习效率低下,因此需要寻找到这些表面特征之下隐藏的深层次的关系,将这些关系进行解耦,得到的隐藏特征,即latent code。由 latent code组成的空间就是 latent space。

[3] @halomaster • 06 Oct 2022, 13:59 GMT 
[1.4版本的checkpoint](https://github.com/TencentARC/GFPGAN/releases/download/v1.3.0/GFPGANv1.4.pth) [RestoreFormer](https://github.com/TencentARC/GFPGAN/releases/download/v1.3.0/RestoreFormer.pth)

[4] @halomaster • 06 Oct 2022, 14:12 GMT 
使用1.4版本的GFPGAN: `python inference_gfpgan.py -i ../txt2imghd/stable-diffusion/outputs/txt2imghd-samples/samples/00008.png -o results -v 1.4 -s 2`

[5] @halomaster • 21 Oct 2022, 08:22 GMT 
[RealSR放大 @ colab](https://colab.research.google.com/github/HemantKArya/HqStableDiffusionColab/blob/main/RealESR_Upscale.ipynb)

1 of 1 pages  5 replies