GPEN——使用GANs恢复对人脸图像进行修复

1. 简介

盲目的面部修复(Blind Face Restoration, BFR)是一个活跃的研究领域,它涉及到在没有任何先验信息的情况下改善低质量(Low Quality, LQ)图像的质量。这确实是一个具有挑战性的问题,因为模型需要能够处理多种未知的退化,例如模糊、噪声、压缩伪影等,这些退化可能在训练数据中并未全部出现。

在面部修复的上下文中,以下是一些常见的挑战和考虑因素:

(1). 未知退化:BFR的难点在于模型必须能够处理在训练期间未遇到的退化类型。这要求模型具有很好的泛化能力。

(2). 真实性与细节:在恢复面部图像时,保持图像的真实性和身份特征是非常重要的。一些模型可能倾向于产生过度平滑的结果,这会丢失重要的面部特征和细节。

(3). 对抗性训练:为了提高模型的泛化能力,研究人员可能会使用对抗性训练技术,通过让模型学习区分真实图像和修复图像之间的微妙差异来提高其性能。

(4). 多任务学习:模型可能需要同时学习执行多个任务,例如去噪、去模糊、颜色校正等,以更全面地理解和修复图像。

(5). 数据增强:为了使模型能够处理各种退化,可以使用数据增强技术来模拟不同的退化效果,并增加训练数据的多样性。

(6). 注意力机制:集成注意力机制可以帮助模型集中于图像中的关键特征,从而在保持面部特征的同时提高修复质量。

(7). 评估指标:评估BFR模型的性能可能很复杂,因为除了传统的图像质量指标外,还需要考虑面部特征的准确性和自然性。

(8). 用户交互:在某些情况下,可能需要用户交互来指导修复过程,例如,通过让用户确认某些特征是否被正确修复。

在这里插入图片描述

在这里插入图片描述

在本文中,我们提出了一种新的方法来恢复自然状态下的人脸图像(即经历了复杂的现实生活中的扭曲的图像)。具体来说,我们将深度神经网络(DNN)解码器与生成对抗网络(GAN)整合在一起,并对HQ人脸图像的生成进行了预训练。这个模型建立了一个新的BFR技术水平,能够恢复严重损坏的图像。

论文地址:https://arxiv.org/pdf/2105.06070.pdf
源码地址:https://github.com/yangxy/GPEN

2. GAN Prior Embedded Network (GPEN)


在盲目面部修复(BFR)领域,将低质量(LQ)图像恢复到高质量(HQ)图像面临诸多挑战。目前的方法尝试通过训练深度神经网络(DNNs)来实现从LQ图像集X到HQ图像集Y的映射。然而,这个过程存在一个关键问题:对于任何一个给定的LQ图像x,可能存在多种不同的HQ图像y。DNNs通常使用像素级损失函数进行训练,这导致生成的HQ图像y倾向于呈现目标面部的平均特征,造成面部细节的丢失和过度平滑。

为了解决这个问题,一种全新的超分辨率方法PULSE被提出。PULSE通过训练一个生成对抗网络(GAN)先验网络,并将其嵌入到DNN解码器中来生成HQ图像。在这个流程中,LQ图像首先通过CNN处理,映射到潜在空间Z中的潜在代码z。随后,这个潜在代码z被用于GAN来生成HQ图像。与传统方法不同,GAN在这里实现了一对一的映射,将特定的潜在代码z映射到一个确定的HQ图像。

值得注意的是,尽管PULSE方法提高了生成图像的质量和细节,但它并不支持从单个LQ图像生成多个可能的HQ图像。这种方法限制了生成图像的多样性,但有助于生成更加逼真和细节丰富的面部图像。接下来,PULSE的架构细节将进一步介绍,以展示其如何克服现有技术的局限性。

2.1 算法架构

GPEN模型的架构结构与UNET(c)相似,前半部分由DNN组成,后半部分由GAN组成。模型的前半部分由DNN组成,后半部分由GAN组成;与UNET一样,前半部分每个块的特征图作为后半部分相应GAN块的输入。 在结合两者之前,GANs被单独预训练以生成HQ人脸图像。之后,这两个块被组合起来,并为BFR进行微调:一个GAN(a)由几个GAN块(b)组成,可以从任何流行的GAN(BigGAN、StyleGAN、PGGAN)中选择。在这里,我们使用StyleGAN-v2 GAN块,它在生成HQ图像方面更胜一筹:与StyleGAN一样,从DNN获得的潜在向量 "z "首先被转换为一个纠缠较少的空间 “W”,这个转换的向量 "w "被广播给每个GAN块。转换后的向量 "w "被广播给每个GAN块。在单独训练GAN的过程中,噪声也被广播到每个GAN块,并与特征图相结合。然后,这个噪声被组合模型中的DNN各自的特征图所取代。关于GANs的更多信息,请参见本文。

2.2 学习

GANs首先在一个与StyleGANs类似的设置中独立训练。然后将其纳入DNN并用于对抗性损失。LA,内容损失LC内容损失,特征匹配损失LF使用三个损失函数进行训练。敌方的损失由以下公式得出:
在这里插入图片描述
其中,D是判别器模型,G是发生器模型GPEN,X’是LQ图像,X是地面真相 总部图像,LC是的L1准则。识别图像和生成图像之间的L-2准则之和,LF是生成图像和原始图像的识别器特征图之间的L-2准则之和。
在这里插入图片描述
其中T是判别器中的中间层数量。这意味着,综合损失如下:
在这里插入图片描述
在所有的实验中,我们设定α=1,β=0.02。特征匹配损失使我们能够平衡对抗性损失并恢复更真实/详细的图像。

3. 实验

我们使用FFHQ数据集来训练我们的模型,该数据集包含超过70000张分辨率为1024x1024的HQ图像。使用相同的数据集,我们训练了一个GAN先验网络并对组合网络进行了微调。为了进行微调,LQ图像由FFHQ数据集组合而成;HQ图像被随机模糊、下采样和用高斯噪声压缩。在数学上,退化由以下模型表示:
在这里插入图片描述
I, k, nσ, Id分别是输入的人脸图像、模糊核、标准差为σ的高斯噪声和退化的图像。同样,⊗,↓s,JPEGq表示JPEG压缩的2维卷积,标准的s倍下采样器和质量系数q。编码器、解码器和鉴别器模型是用亚当的三种不同学习率来建模的lr编码 = 0.002; lr编码lr颓废lr弃权= 100:10:1是由

3.1 GPEN的变体比较

为了研究GPEN组件的重要性,我们在BFR上评估了GPEN的不同变体:GPEN-w/o-ft,一个不对嵌入式GAN进行微调的版本;GPEN-w/o-noise,一个在GAN块训练期间不向其添加噪声的版本;GPEN-noise-add,一个向GAN块添加噪声输入而不是串联的变体;以及GPEN-w/o-noise,一个向GAN块添加噪声输入而非串联的变体。GPEN-noise-add是一个变体,它将噪声输入添加到GAN块中,而不是串联起来。

上表显示了所有这些变体在FFHQ数据集中的PSNR、FID和LPIPS得分;很明显,GPEN模型的表现优于其变体。

3.2 与其他GANs的比较

大多数人脸修复GANs是为FSR任务设计的,即从LR图像生成HR图像。因此,我们将GPEN与其他最先进的GANs在FSR、合成BFR和野外BFR方面进行比较。

上表显示了FSR的结果,比较了为BFR设计的模型和专门为FSR设计的模型;LR图像是使用CelebA-HQ数据集生成的。可以看出,没有增加任何东西的双线性模型在PSNR指标上得分最高,说明PSNR不是FSR的合适指标;值得注意的是,GPEN在FID和LPIPS指标上优于其他模型。

上表显示了从CelebA-HQ数据集合成的LQ图像的BFR结果:与FSR一样,GPEN在FID和LPIPS指数上比其他模型高出很多。

为了确定GPEN的实际意义,我们从互联网上收集了1000张LQ人脸图像,并请志愿者评估GPEN和其他SOTA模型的结果以及重建图像的质量。结果表明,由GPEN重建的图像的感知质量要比其他SOTA方法好得多。让我们来看看一些样本图片。


因此,我们可以看到,其他方法的特点是我们一直在谈论的 “过度平滑图像”,并没有增加任何视觉细节。
在未来,作者希望扩展GPEN,以允许单个LQ图像的多个HQ输出。例如,他们设想使用一个额外的HQ脸部图像作为参考,这样GPEN可以为不同的参考图像产生不同的HQ输出。

4. 总结

正如论文所提到,当前的最先进(State of the Art, SOTA)模型在处理现实世界中的退化图像时仍存在局限,但论文提出的方法成功地克服了这些挑战。论文的方法不仅在实际应用中显示出了直接的效用,而且还具备了扩展到其他领域的潜力。

论文的工作不仅限于面部修复,还可以扩展到面部着色、面部绘画以及非面部图像的修复等任务。此外,GPEN(Guided Perception and Exploration Network)的设计允许它为单个低质量图像生成多个高质量的输出,这为创造性的应用和进一步的探索提供了可能。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/diannao/22658.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

3分钟学会短信群发-在线云短信平台发送教程

在线云短信平台发送教程 这是一个简单的短信平台的电脑在线发送教程,快速上手三分钟搞定,欢迎讨论分享: 1.登录短信平台 找一个资质齐全的在线云短信平台,以赛邮为例,注册认证后创建短信模版。 2.创建短信模版 输入编辑…

Python变量LEGB规则深度解析

Python变量LEGB规则深度解析 在Python编程中,变量名解析顺序(LEGB规则)是一个至关重要的概念,它决定了当我们在代码中引用一个变量名时,Python解释器如何查找和确定该变量的值。LEGB规则是Local、Enclosing、Global、…

在加拿大寻求2亿美元融资!Xanadu的CEO有话要说

内容来源:量子前哨(ID:Qforepost) 文丨慕一/娴睿 排版丨沛贤 深度好文:1500字丨5分钟阅读 摘要:加拿大光量子计算头部企业Xanadu希望在加拿大筹集1-2亿美元,用于建立量子数据中心。虽然融资不…

期刊的分类与级别

在学术界,期刊的分类与级别构成了一个评价学术成果和学者贡献的重要标准,同时也是学术出版与学术交流的基础。然而,对于初涉学者来说,理解期刊的分类与级别可能并不直观。本文旨在提供一个系统性的解释,并阐述为何期刊…

「前端小知识」如何用 Day.js ,获取某个时间单位的开始或结束时间?

今天我们来聊聊如何使用Day.js这个JavaScript库来操作和处理日期。无论是前端开发还是后端开发,日期和时间的处理都是非常常见的需求。而Day.js可以让我们轻松应对这些任务。 获取某个时间单位的开始时间 我们可以使用Day.js的startOf方法来获取某个时间单位的开始时…

【优选算法】字符串

一、相关编程题 1.1 最长公共前缀 题目链接 14. 最长公共前缀 - 力扣&#xff08;LeetCode&#xff09; 题目描述 算法原理 编写代码 // 解法一&#xff1a;两两比较 class Solution { public:string longestCommonPrefix(vector<string>& strs) {int k strs[0…

层出不穷的大模型产品:如何在人工智能的赛道上抉择?

在这个人工智能迅猛发展的时代&#xff0c;我们每天都可以见到新的大模型产品悄然走入市场&#xff0c;给我们的工作和生活带来前所未有的便利。最近&#xff0c;腾讯推出的元宝APP加入了这个日益拥挤的舞台。作为一名对AIGC产品保持关注的“老用户”&#xff0c;我已经接触并体…

AI烟火识别算法在消防安全与火灾预警系统中的应用与价值

在信息化和智能化的今天&#xff0c;烟火识别算法作为一种重要的技术工具&#xff0c;在火灾预防和处理中发挥着关键作用。其工作原理主要基于深度学习和图像处理技术&#xff0c;能够实时分析监控画面&#xff0c;准确检测出图像中的烟火&#xff0c;并发出预警。 一、烟火识…

多功能光时域反射仪的工作原理

6426A-2101多功能光时域反射仪是新一代掌上型智能化光纤通信测量仪器&#xff0c;具有强大的功能和广泛的应用领域。它能够显示光纤及光缆的损耗分布曲线图&#xff0c;测量光纤及光缆的多种关键参数&#xff0c;包括长度、损耗、接续质量等&#xff0c;为光纤通信系统的工程施…

ubuntu20.04设置文件开机自启动

硬件&#xff1a;树霉派4B 系统&#xff1a;ubuntu20.04 在ubuntu20.04上经常需要运行 ./BluetoothServerParse_L.c ,比较繁琐&#xff0c;想要设置开机自启动&#xff0c;让树霉派4B在接上电源之后就自动运行该程序。使用systemd服务&#xff0c;设置步骤如下&#xff1a; &…

Intersection Observer API---交叉观察器 API

Intersection Observer API 交叉观察器 API&#xff08;Intersection Observer API&#xff09;提供了一种异步检测目标元素与祖先元素或顶级文档的视口相交情况变化的方法,例如&#xff0c;可以观察判断一个div&#xff08;有大小的&#xff09;盒子在是否出现在窗口&#xff…

【全开源】小区入户安检系统(FastAdmin + Uni-APP)

守护家的每一道防线 一款基于FastAdmin Uni-APP开发的小区入户安检系统(前端可发布为小程序、H5、App)。可针对不同行业自定义安检项目&#xff0c;线下安检&#xff0c;线上留存&#xff08;安检拍照/录像&#xff09;&#xff0c;提高安检人员安检效率。 一、引言&#xff…

数据结构:一般哈希

数据结构&#xff1a;一般哈希 题目描述参考代码拉链法开放寻址法 题目描述 输入样例 5 I 1 I 2 I 3 Q 2 Q 5输出样例 Yes No参考代码 拉链法 #include <iostream> #include <cstring> using namespace std;const int N 100003;int h[N], e[N], ne[N], idx;vo…

docker架构

docker架构 Docker daemon 是Docker最核心的后台进程&#xff0c;它负责响应来自Dockerclient的请求&#xff0c;然后将这此请求翻译成系统调用完成容器管理操作。该进程会在后台后启动一个APIServer&#xff0c;负责接收由 Dockerclient发送的请求&#xff1b;接收到的请求将通…

FFmpeg编解码的那些事(2)

软解码 1.构建输入AVFormatContext AVFormatContext* avFormatContext avformat_alloc_context();int res avformat_open_input(&avFormatContext,filename.toUtf8().data(), NULL, NULL);//打开文件if (res < 0) {qCritical()<<__FUNCTION__<<__LINE__&…

【文末附gpt升级秘笈】Suno全新功能在音乐创作领域的应用与影响

Suno全新功能在音乐创作领域的应用与影响 摘要&#xff1a; 随着科技的飞速发展&#xff0c;人工智能与音乐创作的结合日益紧密。本文旨在探讨Suno全新功能——即兴哼唱创作与声音模仿——在音乐创作领域的应用与影响。通过深入分析这一技术的原理、特点及其在音乐创作中的实际…

nvm for wins下载地方

https://github.com/coreybutler/nvm-windows

十大排序算法之->快速排序

一、快速排序简介 快速排序&#xff08;Quick Sort&#xff09;是一种高效的排序算法&#xff0c;它的基本思想是采用分治法来实现排序。 快速排序的工作原理基于分治的思想。首先选取一个基准元素&#xff0c;通常选择第一个或最后一个元素。然后重新排列数组中的元素&#…

什么是低代码?有什么特点?

低代码是一种高效的软件开发方法&#xff0c;它允许开发者通过图形化界面和预构建的代码块&#xff0c;以最小化传统手写代码的方式快速构建应用程序。这种方法旨在加速应用程序的开发周期&#xff0c;同时降低技术门槛和成本。以下是根据驰骋低代码设计者的观念与主张&#xf…

单个反光柱作为landmark,因输入角度异常导致ceres后端崩溃

landmark默认是有方向的,所以作者在ceres优化中考虑到了角度信息,但是单个反光柱作为路标是没有准确的角度信息的,所以只能优化位置信息,修改代码如下: template <typename T>bool operator()(const T* const prev_node_pose, const T* const next_node_pose,const …