【深度学习】StyleGANv2 2019 论文,Analyzing and Improving the Image Quality of StyleGAN

StyleGAN论文: 《A Style-Based Generator Architecture for Generative Adversarial Networks》
论文:https://arxiv.org/abs/1812.04948
代码: https://github.com/NVlabs/stylegan
StyleGANv2论文: 《Analyzing and Improving the Image Quality of StyleGAN》
论文:https://arxiv.org/abs/1912.04958
代码: https://github.com/NVlabs/stylegan2

此篇是StyleGANv2。

文章目录

  • Abstract
  • 1. Introduction
  • 2. Removing normalization artifacts
    • 2.1. Generator architecture revisited
    • 2.2. Instance normalization revisited

Abstract

基于样式的生成对抗网络架构(StyleGAN)在数据驱动的无条件生成图像建模方面取得了最先进的结果。我们揭示并分析了其特征性的一些伪影,并提出了对模型架构和训练方法的改进来解决这些问题。

特别地,我们重新设计了生成器的归一化,重新审视了渐进增长,并对生成器进行正则化,以鼓励从潜在代码到图像的映射具有良好的条件。除了提高图像质量外,这种路径长度正则化器还带来了额外的好处,使得生成器变得更容易反演。这使得我们能够可靠地将生成的图像归因于特定的网络。此外,我们还可视化了生成器如何利用其输出分辨率,并确定了一个容量问题,促使我们训练更大的模型以获得额外的质量改进。总体而言,我们改进的模型在无条件图像建模领域重新定义了现有的分布质量度量以及感知图像质量方面的技术水平。

1. Introduction

生成方法,尤其是生成对抗网络(GAN)[16]生成的图像的分辨率和质量正在迅速提高[23, 31, 5]。目前,用于高分辨率图像合成的最先进方法是StyleGAN [24],它已被证明可以可靠地适用于各种数据集。我们的工作集中在修复其特有的伪影并进一步提高结果质量。

StyleGAN [24]的独特之处在于其非传统的生成器架构。它并不只是将输入潜在代码z 2 Z传送到网络的开始,而是首先将其通过映射网络f转换为中间潜在代码。然后,通过自适应实例归一化(AdaIN)[21, 9, 13, 8]通过仿射变换产生控制合成网络g层的样式。

此外,通过向合成网络提供附加的随机噪声映射,有助于实现随机变化。已经证明[24, 38]这种设计使得中间潜在空间W比输入潜在空间Z要少纠缠得多。在本文中,我们仅关注W的所有分析,因为从合成网络的角度来看,它是相关的潜在空间。

许多观察者已经注意到StyleGAN生成的图像中的特征性伪影[3]。我们确定了这些伪影的两个原因,并描述了架构和训练方法上的变化来消除它们。首先,我们研究了常见的斑点状伪影的产生原因,并发现生成器为了规避其架构中的设计缺陷而产生了这些伪影。在第2节中,我们重新设计了生成器中使用的归一化,从而消除了这些伪影。其次,我们分析了与渐进增长[23]相关的伪影,该方法在稳定高分辨率GAN训练方面非常成功。我们提出了一个实现相同目标的替代设计——训练始于低分辨率图像,然后逐渐将焦点转移到更高分辨率——而在训练过程中不改变网络拓扑。这种新设计还使我们能够对生成的图像的有效分辨率进行推理,结果发现它比预期的要低,从而激发了容量增加的动机(第4节)。

对使用生成方法生成的图像质量的定量分析仍然是一个具有挑战性的课题。Frechet Inception Distance(FID)[20]度量了InceptionV3分类器[39]高维特征空间中两个分布的密度差异。

Precision and Recall(P&R)[36, 27]通过明确地量化与训练数据相似的生成图像的百分比以及可以生成的训练数据的百分比,提供了额外的可见性。我们使用这些指标来量化改进。

无论FID还是P&R都基于分类器网络,最近已经证明这些网络更关注纹理而不是形状[12],因此这些度量标准不能准确地捕捉图像质量的所有方面。我们观察到感知路径长度(PPL)度量标准[24],最初被引入作为估计潜在空间插值质量的方法,与形状的一致性和稳定性相关。基于这一点,我们对合成网络进行正则化,以倾向于平滑映射(第3节),并在质量方面取得明显的改进。为了应对其计算开销,我们还提议较不频繁地执行所有正则化,观察到这样做不会影响有效性。

最后,我们发现,通过使用新的、路径长度正则化的StyleGAN2生成器,将图像投影到潜在空间W中的效果要明显好于原始的StyleGAN。这使得更容易将生成的图像归因于其源头(第5节)。

我们的实现和训练模型可在 https://github.com/NVlabs/stylegan2 获取。

2. Removing normalization artifacts

我们首先观察到,由StyleGAN生成的大多数图像都展示出类似水滴的特征性伪影。如图1所示,即使在最终图像中水滴可能不明显,它仍存在于生成器的中间特征映射中。这种异常从64×64的分辨率开始出现,在所有特征映射中都存在,并且在更高分辨率下逐渐变得更加明显。这种一致性伪影的存在令人困惑,因为鉴别器应该能够检测到它。

我们将问题指向了AdaIN操作,该操作单独对每个特征映射进行均值和方差归一化,从而可能破坏特征之间幅度相关性中的任何信息。我们假设水滴伪影是生成器有意地通过实例归一化绕过信号强度信息的结果:通过创建一个强烈的局部尖峰来主导统计数据,生成器可以有效地在其他地方按其意愿缩放信号。我们的假设得到了支持,当从生成器中移除归一化步骤(如下所述)时,水滴伪影完全消失。

在这里插入图片描述

2.1. Generator architecture revisited

首先,我们将修改StyleGAN生成器的若干细节,以更好地支持我们重新设计的归一化。

这些变化本身在质量指标方面要么没有影响,要么具有微小的积极作用。

图2a显示了原始的StyleGAN综合网络g [24],图2b则通过显示权重和偏差,并将AdaIN操作分解为其两个组成部分:归一化和调制,将图表扩展到了完整细节。这使我们可以重新绘制概念上的灰色框,以便每个框表示网络中一个样式处于活动状态的部分(即“样式块”)。有趣的是,原始的StyleGAN在样式块内应用了偏差和噪声,从而使它们的相对影响与当前样式的幅度成反比。我们观察到,通过将这些操作移出样式块,它们在规范化数据上运行,可以获得更可预测的结果。此外,我们注意到,在此更改之后,仅对标准偏差进行归一化和调制已足够(即不需要均值)。将偏差、噪声和归一化应用于恒定输入也可以安全地移除,而不会观察到明显的缺陷。此变体如图2c所示,将成为我们重新设计的归一化的起点。

2.2. Instance normalization revisited

StyleGAN的主要优势之一是通过样式混合来控制生成的图像,即在推断时为不同层提供不同的潜在变量w。

实际上,样式调制可能会使某些特征映射放大一个数量级甚至更多。为了使样式混合正常工作,我们必须在每个样本的基础上明确抵消这种放大效应,否则后续层将无法对数据进行有意义的操作。

如果我们愿意牺牲特定于尺度的控制(见视频),我们可以简单地去除归一化,从而消除伪影,同时还略微改善了FID [27]。

现在,我们将提出一种更好的替代方案,既消除了伪影,又保留了完全可控性。主要思想是基于传入特征映射的期望统计信息进行归一化,但不强制执行。

图2:我们重新设计了StyleGAN综合网络的架构。 (a) 原始的StyleGAN,其中A表示从W学习得到的样式的可学习仿射变换,B是一个噪声广播操作。 (b) 具有完整细节的相同图表。在这里,我们已将AdaIN分解为显式的归一化,然后是调制,两者都在每个特征映射的均值和标准偏差上进行操作。我们还标注了学习得到的权重(w),偏差(b)和恒定输入©,并重新绘制了灰色框,使得每个框中只有一个样式处于活动状态。激活函数(渗漏ReLU)总是在添加偏差后立即应用。© 我们对原始架构进行了几处变更,这些变更在正文中有所解释。我们在开始时删除了一些冗余操作,将b和B的添加移到样式的活动区域之外,并仅调整每个特征映射的标准偏差。(d) 修改后的架构使我们能够用“解调”操作替换实例归一化,我们将这个操作应用于与每个卷积层相关联的权重。
在这里插入图片描述

回想一下,在图2c中,一个样式块由调制、卷积和归一化组成。让我们首先考虑调制接着卷积的效果。调制根据传入的样式对卷积的每个输入特征映射进行缩放,这实际上可以通过缩放卷积的权重来实现:

在这里插入图片描述

其中,w和w’分别是原始和调制后的权重,si是与第i个输入特征映射相对应的缩放因子,j和k分别枚举卷积的输出特征映射和空间足迹。

现在,实例归一化的目的基本上是从卷积输出特征映射的统计数据中消除s的影响。我们观察到,可以更直接地实现这一目标。假设输入激活是具有单位标准偏差的独立同分布随机变量。经过调制和卷积后,输出激活的标准偏差为:

在这里插入图片描述

即,输出是由相应权重的L2范数缩放的。随后的归一化旨在将输出恢复为单位标准偏差。根据方程式2,如果我们通过1/σj来缩放(“解调”)每个输出特征映射j,则可以实现这一目标。或者,我们可以再次将其融入卷积权重中:

在这里插入图片描述

其中,ε是一个小常数,用于避免数值问题。

现在,我们已经将整个样式块烘焙到了一个单一的卷积层中,其权重根据s使用方程1和方程3进行调整(图2d)。与实例归一化相比,我们的解调技术较弱,因为它是基于信号的统计假设而不是特征映射的实际内容。类似的统计分析在现代网络初始化器中广泛使用[14, 19],但我们不知道它以前曾被用作依赖数据的归一化的替代方法。我们的解调也与权重归一化[37]相关,后者在对权重张量重新参数化的过程中执行了相同的计算。以前的研究已经确定在GAN训练的背景下,权重归一化是有益的[43]。

我们的新设计消除了特征性伪影(图3),同时保留了完全可控性,如附带的视频所示。FID基本上没有受到影响(表1,A、B行),但精确度和召回率之间有明显的变化。我们认为这通常是可取的,因为可以通过截断将召回率转换为精确度,然而相反的情况并不成立[27]。在实际应用中,我们的设计可以通过使用分组卷积高效实现,详细信息请参见附录B。为了避免在方程3中考虑激活函数,我们对激活函数进行缩放,以保留预期的信号方差。

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

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

相关文章

绝了!学编程的还有不知道的吗?这个Java开发工具免费了!

智能开发正在迅速走红! 随着ChatGPT的广泛应用,智能开发越来越受到关注。然而,实际上,在数年前开始尝试智能开发的探索。 自从2014年ForresterResearch提出"低代码"的概念以来,低代码平台的发展非常迅速。…

混合云环境中 Kubernetes 可观测性的 6 个有效策略...

2023 年,原生云应用程序和平台将快速增长。组织不断努力最大限度地发挥其应用程序的潜力,确保无缝的用户体验并推动业务增长。 混合云环境的兴起以及 Kubernetes 等容器化技术的采用彻底改变了现代应用程序的开发、部署和扩展方式。 在这个数字领域&am…

MCUXpresso for VS Code -- 基于VSCode开发RT1176

MCUXpresso for VS Code 是nxp推出插件,旗下MCX LPC, Kinetis和i.MX rt等MCU,都能在VS Code平台进行嵌入式开发。功能框图如下: 前期准备: 软件环境: windows(实际可以跨系统,linux和mac没有测试) VS Code ninja CMa…

【01】基础知识:typescript安装及使用,开发工具vscode配置

一、typescript 了解 typeScript 是由微软开发的一款开源的编程语言。 typeScript 是 javascript 的超级,遵循最新的 es6、es5规范。 typeScript 扩展了 javaScript 的语法。 typeScript 更像后端 java、C# 这样的面向对象语言,可以让 js 开发大型企…

Oracle-创建PDB

Oracle-创建PDB 创建PDB的方式 从PDB$SEED新建PDB克隆已存在的PDB 本地PDB克隆到同一个CDB中将远程PDB克隆到CDB中将非CDB插入或克隆到CDB中通过插拔的方式创建PDB sql 命令语法 条件 CDB必须open并且read write模式连接CDB$ROOT 用户并且具有CREATEPLUGGABLEDATABASE系统权…

如何快速解决集成环信IM遇到的问题?

1、环信FAQ频道发布了 环信FAQ帮助中心提供了各客户端、RESTful API、环信控制台以及商务相关的集成环信常见问题及解决方法,帮您快速解决集成问题 2、当我有问题时,从哪里进FAQ? 干脆收藏这个网址:https://faq.easemob.com/ 环…

Android的学习系列之Android Studio Setup安装

Android的学习系列之Android Studio Setup安装 [TOC](Android的学习系列之Android Studio Setup安装) 前言Android平台搭建总结 前言 还是项目需要,暂时搭建安卓的运行平台。 Android平台搭建 安装包 双击安装包,进入安装。 下一步 根据自己需求&a…

Flink源码之JobMaster启动流程

Flink中Graph转换流程如下: Flink Job提交时各种类型Graph转换流程中,JobGraph是Client端形成StreamGraph后经过Operator Chain优化后形成的,然后提交给JobManager的Restserver,最终转发给JobManager的Dispatcher处理。 Completa…

24数据结构-图的基本概念与存储结构

目录 第六章 图6.1 图的基本概念知识回顾 6.2 图的储存结构(邻接矩阵法)1. 数组表示法(1) 有向图,无向图的邻接矩阵 2. 定义邻接矩阵的结构3. 定义图的结构4. 构造图G5. 特点 第六章 图 6.1 图的基本概念 图是一种非线性结构 图的特点&am…

手把手教你快速实现内网穿透

快速内网穿透教程 文章目录 快速内网穿透教程前言*cpolar内网穿透使用教程*1. 安装cpolar内网穿透工具1.1 Windows系统1.2 Linux系统1.2.1 安装1.2.2 向系统添加服务1.2.3 启动服务1.2.4 查看服务状态 2. 创建隧道映射内网端口3. 获取公网地址 前言 要想实现在公网访问到本地的…

海康威视iVMS综合安防系统任意文件上传(0Day)

漏洞描述 攻击者通过请求/svm/api/external/report接口任意上传文件,导致获取服务器webshell权限,同时可远程进行恶意代码执行。 免责声明 技术文章仅供参考,任何个人和组织使用网络应当遵守宪法法律,遵守公共秩序,尊重社会公德,不得利用网络从事危害国家安全、荣誉和…

为什么商业基础软件需要开源

Bytebase 本身是一家商业软件公司,而作为最核心资产的代码从 Day 0 却是开源的。同时我们还是 star-history.com 的运营者,大家在各种开源渠道会看到它生成的图: 一直以来,常会被别人问起的一个问题,就是为什么 Byteba…

【学习日记】【FreeRTOS】任务句柄、任务控制块TCB、任务栈、任务、就绪表详解

写在前面 本文是对FreeRTOS中任务句柄、任务控制块TCB、任务栈、任务、就绪表详解。 一、裸机和RTOS中函数存储位置详解 左图为裸机开发时 RAM 的使用情况,右图是使用了 FreeRTOS 后 RAM 的使用情况(图片来自野火)。 无论是裸机开发还是Fr…

【docker】设置 docker 国内镜像报错,解决方案

一、报错: [rootlocalhost ~]# systemctl restart docker Job for docker.service failed because the control process exited with error code. See "systemctl status docker.service" and "journalctl -xe" for details.二、原因&#xf…

实现分布式事务:Java与MySQL的XA事务协调

目录 一、什么是XA事务 二、Java中的XA事务支持 三、MySQL的XA事务协调 四、注意事项和最佳实践 五、基于 java 语言的开发工具 六、小结 分布式事务是在跨多个数据库或服务之间保持一致性的重要机制。Java与MySQL的XA(eXtended Architecture)事务…

NPM包的安装、更新、卸载

目录 1、下载安装全局包 2、解决全局安装包时的EACCES权限错误 2.1 重新安装NPM 2.2 手动更改npm的默认目录 3、更新从注册表下载的包 3.1 更新本地包 3.2 更新全局安装的软件包 3.3 确定哪些全局包需要更新 3.4 更新单个全局包 3.5 更新所有全局安装的软件包 4、在项…

【ASP.NET MVC】使用动软(五)(13)

一、问题 前文完成的用户登录后的首页如下: 后续账单管理、人员管理等功能页面都有相同的头部,左边和下边,唯一不同的右边内容部分,所以要解决重复设计的问题。 二、解决方法——使用布局页 在Views上右键添加新建项&#xff…

多维时序 | MATLAB实现ZOA-CNN-BiGRU-Attention多变量时间序列预测

多维时序 | MATLAB实现ZOA-CNN-BiGRU-Attention多变量时间序列预测 目录 多维时序 | MATLAB实现ZOA-CNN-BiGRU-Attention多变量时间序列预测预测效果基本介绍模型描述程序设计参考资料 预测效果 基本介绍 1.Matlab基于ZOA-CNN-BiGRU-Attention斑马优化卷积双向门控循环单元网络…

【云原生】Kubernetes控制器中DaemonSet与Job的使用

目录 DaemonSet 1 什么是 DaemonSet 2 使用 DaemonSet Job 1 什么是 Job 2 使用 Job 3 自动清理完成的 Job 控制器无法解决问题 DaemonSet 1 什么是 DaemonSet DaemonSet | Kubernetes DaemonSet 确保全部(或者某些)节点上运行一个 Pod 的副本…

eeglab(自用)

目录 1.加载、显示数据 2.绘制脑电头皮图 3.绘制通道光谱图 4.预处理工具 5.ICA去除伪迹 5. 提取数据epoch 1.加载、显示数据 观察事件值(Event values):该数据集中包含2400个事件,每个事件指定了EEG.event结构的字段Type(类型)、position(位置)和…