论文解读StyleGAN系列——StyleGANv1

论文:A Style-Based Generator Architecture for Generative Adversarial Networks(2018.12)
作者:Tero Karras, Samuli Laine, Timo Aila
链接:https://arxiv.org/abs/1812.04948
代码:https://github.com/NVlabs/stylegan

文章目录

  • 1、算法概述
  • 2、StyleGAN细节
    • 2.1 Properties of the style-based generator
    • 2.2 Disentanglement studies


1、算法概述

作者仿照style transfer提出了一种GANs结构,这种结构能自动无监督地学习到图片的高级属性,比如人脸上训练时的姿势和身份,生成图像的随机变化(例如,雀斑、头发),它可以直观地,按比例控制合成。直观上,作者想尝试将Nerual Network中的latent vector跟图片的真实属性联系起来,方便人类通过直觉就能控制图片生成的风格。最后,作者还生成了一批多样化高质量的人脸数据集。


2、StyleGAN细节

传统的隐式编码(latent code)都是从生成器的输入层输入的,如下图a所示,而作者提出的方法是通过完全省略输入层并从一个学习常数开始来改变这种设计,如下图b所示。它由两部分组成,一个是Mapping network,负责将隐式编码z变成w,这个 w 就是用来控制生成图像的style,即风格;另一个是Synthesis network,它的作用是生成图像,创新之处在于给每一层子网络都喂了A和B,A是由w转换得到的仿射变换,用于控制生成图像的风格,B是转换后的随机噪声,用于丰富生成图像的细节,即每个卷积层都能根据输入的A来调整"style"。整个网络结构还是保持了 PG-GAN(progressive growing GAN)的结构。
在这里插入图片描述

  • 1、给定在input latent space空间的latent code,使用非线性mapping network映射到intermediate latent space空间。
  • 2、将映射过程中学习到的transformation拆分style={ys, yb},其中ys为scale,yb为bias,然后应用在每个卷积层后面的AdaIN操作上,完成对generator风格的控制。AdaIN操作公式如下:
    在这里插入图片描述
    每个特征图xi均被分别归一化。从上图可以看出,作者所提的风格转移方法,是从向量w而不是示例图像中计算空间不变的风格y。作者选择在y中重用“风格”这个词,因为类似的网络架构已经用于前馈风格传递、无监督图像到图像的翻译和域混合。与更一般的特征变换相比,由于它的效率和紧凑的表示,AdaIN特别适合作者的目的。
  • 3、最后,通过引入显式噪声输入,作者为生成器提供了直接生成随机细节的方法。这些是由不相关高斯噪声组成的单通道图像,为合成网络的每一层提供一个专用的噪声图像。使用学习到的特征缩放因子将噪声图像广播到所有特征映射,然后添加到相应卷积的输出中,如图上图b所示。

生成图片的质量
生成图片的质量评估指标用FID值(Frechet inception distance)来表示
在这里插入图片描述
通过逐步增加本文所提的方法,在两个数据集上的FID值都在不断减小。

关于损失函数,对于CELEB A-HQ使用WGAN-GP,而对于FFHQ的配置A也使用WGAN-GP,对于配置B-F使用r1正则化的非饱和损失。

从上表可以看出,与传统的生成器(B)相比,FIDs非常显著,几乎达到20%,下图显示了使用作者所提的生成器从FFHQ数据集生成的一组未经整理的新图像。经FIDs证实,平均质量很高,甚至眼镜和帽子等配件也能成功合成。
在这里插入图片描述

2.1 Properties of the style-based generator

作者提出的生成器架构可以通过对样式进行特定比例的修改来控制图像合成。它把映射网络和仿射变换看作是一种从学习分布中为每种风格绘制样本的方法,而生成网络是一种基于风格集合生成新图像的方法。每种风格的效果在网络中都是局部化的,即修改风格的特定子集可以预期只影响图像的某些方面。

  • Style mixing
    为了鼓励网络能更好地学习到风格,作者应用了混合正则化(mixing regularization)。在训练过程中,使用两个随机潜在编码生成给定百分比的图像。具体的,作者采用两个隐式向量z1,z2输入进mapping network,同时用w1和w2分别控制风格化进程,使w1在交叉点之前应用,w2在交叉点之后应用。这种正则化技术防止网络假设相邻的样式是相关的。
    下表是采用混合正则化前后对比情况
    在这里插入图片描述
    下图表明不同层级样式对图像特征的控制情况
    在这里插入图片描述
    3个不同的尺度下混合两个隐码得到的合成图像。结果表明样式的子集控制了图像的高级属性,不同尺度的样式控制了图像不同的高级属性的生成。
    对于粗分辨率(42-82):用sourceB的样式覆盖souceA的样式,从sourceB中获得姿势、发型、脸型和眼镜等高级特征,而保留了sourceA中眼睛、头发、光线的颜色和更精细的面部特征。
    对于中等分辨率(162-322):从sourceB那里继承了较小尺度的面部特征、发型、睁眼/闭眼,而从sourceA那里保留了姿势、大致的脸型和眼镜。
    对于精细分辨率(642-10242):从sourceB带来的主要是配色方案和微观结构。

  • Stochastic variation
    人体肖像中有许多方面可以被认为是随机的,比如头发、胡茬、雀斑或皮肤毛孔的确切位置。只要它们遵循正确的分布,它们中的任何一个都可以被随机化,而不会影响我们对图像的感知。
    传统生成器如何实现随机多样化生成图片的,因为网络的唯一输入是通过输入层,网络需要发明一种方法来生成空间变化的伪随机数,这占用了网络的能力也隐藏了随机信号的周期性。而作者通过在每次卷积后添加逐像素噪声来回避这些问题。下图是用同一张底片使用作者的生成器产生不同的噪声实现。我们可以看到,噪声只影响随机方面,使整体组成和高级方面,如身份完好无损。图5进一步说明了将随机变化应用于不同层子集的效果。
    在这里插入图片描述
    在这里插入图片描述

  • Separation of global effects from stochasticity
    风格的变化具有全局影响(改变姿势,身份等),但噪声只影响无关紧要的随机变化(不同的梳理头发,胡须等)。在作者所提的生成器中,风格样式之所以会影响整张图像,因为整张特征图被设置了相同的缩放和偏置值,因此,全局效果,如姿态、亮度或背景风格等都可以统一控制。同时,因为噪声是被独立地添加到每一个像素中的,所以噪声的添加适合控制局部的随机变化。若试图使用噪声控制全局风格例如用来控制摆姿势,这将导致空间不一致判决,将会受到判别器的惩罚。因此,网络在没有明确指导情况下适当地使用全局和局部控制来学习。

2.2 Disentanglement studies

生成器将输入的隐码z嵌入一个中间的隐空间。因为输入的隐空间Z必须服从训练数据的概率密度,这在一定程度上导致了不可避免的纠缠,而嵌入的中间的隐空间W不受这个限制,因此可以被解耦。如下图所示
在这里插入图片描述

  • Perceptual path length
    平面空间插值可能会在图像中产生非线性变化。这是潜伏空间纠缠不清,变异因素分离不清的表现。为了量化这种效应,我们可以测量当我们在潜在空间中执行插值时图像所经历的剧烈变化。从直觉上讲,相对于高度弯曲的潜在空间,较小弯曲的潜在空间会产生更平滑的过渡。
    为了量化这种效应,作者使用基于感知的成对图像距离,该距离计算两个VGG16嵌入之间的加权差,其中权重是拟合的,因此度量标准与人类的概念相似性判断一致。
  • Linear separability
    如果一个隐空间是充分解耦的,应该能够找到与每个变化因子对应的方向向量。我们提出了另一种度量方法来量化这种效果,测量通过线性超平面将隐空间点分割成两个不同的集合的程度,使每个集合对应于图像的特定的二元属性。

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

四、(3)补充beautifulsoup、re正则表达式、标签解析

四、(3)补充beautifulsoup、re正则表达式、标签解析 beautifulsoupre正则表达式正则提取标签解析 beautifulsoup 补充关于解析的知识 还需要看爬虫课件 如何定位文本或者标签,是整个爬虫中非常重要的能力 无论find_all(&#xff…

AI一键音频转文字工具 速度超快,支持实时转换,无需联网,本地整合包下载

这是 CapsWriter-Offline ,一个 PC 端的语音输入、字幕转录工具。可用实现简单一键将音频文件转换成文字的懒人工具。 两个功能: 1、实时转换,按下键盘上的 大写锁定键,录音开始,当松开 大写锁定键 时,就会…

企商在线出席2024全球数字经济大会城市副中心论坛

2024年7月3日,2024全球数字经济大会城市副中心论坛“数字基础设施绿色创新发展分论坛”在北京市通州区成功举办。企商在线产品及解决方案总监孙杰受邀出席本次会议,并参与圆桌对话环节,分享“绿色”发展思路与经验。 2024全球数字经济大会城市…

一篇文章说清楚Filter(过滤器)、Interceptor(拦截器)和AOP(切面儿)

文章目录 前言一、Filter(过滤器)1.说明2.实现filterChain.doFilter() 3.order优先级4.解决跨域5.拦截返回错误信息JSON 二、Interceptor(拦截器)1.说明2.实现preHandlepostHandleafterCompletion 3.执行顺序图4.排除特定路径拦截…

@react-google-maps/api实现谷歌地图中添加多边围栏,并可编辑,编辑后可获得围栏各个点的经纬度

先上一张效果图 看看是不是大家想要的效果~ ❤️ 由于该功能微微复杂一点,为了让大家精准了解 我精简了一下地图代码 大家根据自己的需求将center值和paths,用setState做活就可以了 1.第一步要加入项目package.json中或者直接yarn install它…

在Linux上查找文件的2个好用的命令

1. locate xx (查找带xx字符的所有文件或目录) 在终端输入命令 locate lua,可以看到,所有带lua字符的文件或目录都会被搜索出来。 2. find / -name xx (查找名为xx的文件或目录) 在终端输入命令 find …

揭开北斗系统和物联网的神秘面纱:探索未来技术的无限可能性

北斗系统和物联网是现代科技领域的两个重要概念。随着科学技术的快速发展和应用的深化,这两个术语逐渐进入人们的视野。本文将深入探讨北斗系统和物联网的原理、应用和未来发展前景,带您充分了解科技革命的幕后故事。北斗系统:引领全球导航新…

从零开始学习SLAM(三)

旋转向量 #include <Eigen/Geometry> #include <Eigen/Core>AngleAxisd 类有几种构造函数&#xff0c;其中最常用的是&#xff1a; Eigen::AngleAxisd(const Scalar& angle, const Axis& axis);angle 是旋转的角度&#xff0c;通常以弧度表示。axis 是旋…

数据库表导出到excel

数据库表导出到excel:前置知识1 ALL_TAB_COLS 数据库表导出到excel:前置知识2 Quartz基本使用 数据库表导出到excel:前置知识3 项目封装的Quartz实现动态定时任务 数据库表导出到excel:前置知识4 业务和效果 发起清单下载control层InventoryDownloadLogController /* * */ pa…

#### golang中【堆】的使用及底层 ####

声明&#xff0c;本文部分内容摘自&#xff1a; Go: 深入理解堆实现及应用-腾讯云开发者社区-腾讯云 数组实现堆 | WXue 堆&#xff08;Heap&#xff09;是实现优先队列的数据结构&#xff0c;Go提供了接口和方法来操作堆。 应用 package mainimport ("container/heap&q…

LVS-DR群集

LVS-DR集群 LVS-DR(Linux Virtual Server DIrector Server)工作模式&#xff0c;是生产环境中最常用的一种工作模式。 LVS-DR工作原理 LVS-DR模式&#xff0c;Director Server作为群集的访问入口&#xff0c;不作为网关使用&#xff0c;节点DirectorServer与Real Server需要…

光速入门 Tailwind CSS

文章目录 入门安装IDE 设置使用预编译器生产环境优化 基础概念分层指令tailwindlayerapplyconfig 函数theme()screen() 基础案例怎么设置属性任意值&#xff1f;hover 父元素时&#xff0c;怎么选中子元素添加样式&#xff1f;添加 animation 动画 配置主题 Tailwind CSS 中文网…

性能测试-JMeter学习

1、给不同的访问口分配访问占比&#xff1b;例&#xff1a;登录30%&#xff0c;首页&#xff1a;20%&#xff0c;新增&#xff1a;50% 不同业务放到不同线程组里&#xff0c;实现不同业务的分配 使用吞吐量控制器&#xff0c;设置不同的占比 使用if控制器&#xff0c;设置不同…

HX4004A-MFC 低噪声、稳压电荷泵DC/DC转换器芯片IC

一般描述 该HX4004A是一个低噪声开关电容电压倍。它产生一个调节输出电压从2.7V到4.5V的输入。低的外部零件数量(VIN和VOUT处一个飞行电容和两个小型旁路电容)使HX4004A非常适合小型电池供电应用。 该HX4004A具有热关断能力&#xff0c;可以生存从VOUT到GND的连续…

【pytorch13】激活函数及梯度

什么是激活函数 计算机科学家借鉴生物的神经元机制发明了计算机上的模型&#xff0c;这个模型与生物的神经元非常类似 激活的意思就是z变量要大于0&#xff0c;这一个节点才会激活&#xff0c;否则就会处于睡眠状态不会输出电平值 该激活函数在z0处不可导&#xff0c;因此不能…

地级市空气质量指数AQI、环境污染PM2.5、SO2

2015-2021年地级市月度空气质量数据&#xff08;AQI、SO2、NO2、PM2.5、PM10、O3、CO&#xff09; 目录 探究环境污染对经济增长的影响 一、引言 二、数据来源与描述性统计 三、实证模型 &#xff08;一&#xff09;模型设定 &#xff08;二&#xff09;变量说明 四、程…

混元大模型加持,微信输入法开启AI问答新体验

在人工智能技术飞速发展的今天&#xff0c;微信作为全球最大的社交平台之一&#xff0c;一直在不断地探索和创新&#xff0c;以提供更智能、更便捷的用户体验。 最近&#xff0c;微信官方宣布了一个令人兴奋的消息&#xff1a;微信输入法正式上线了“一键AI问答”功能&#xf…

【Python机器学习】算法链与管道——通用的管道接口

Pipeline类补单可以用于预处理和分类&#xff0c;实际上还可以将任意数量的估计器连接在一起。例如&#xff0c;我们可以构建一个包含特征提取、特征选择、缩放和分类的管道&#xff0c;总共有4个步骤。同样的&#xff0c;最后一步可以用聚类或回归代替。 对于管道中估计器的唯…

【机器学习】Datawhale-AI夏令营分子性质AI预测挑战赛

参赛链接&#xff1a;零基础入门 Ai 数据挖掘竞赛-速通 Baseline - 飞桨AI Studio星河社区 一、赛事背景 在当今科技日新月异的时代&#xff0c;人工智能&#xff08;AI&#xff09;技术正以前所未有的深度和广度渗透到科研领域&#xff0c;特别是在化学及药物研发中展现出了巨…

警翼警用记录仪视频格式化后恢复方法

警翼是国内较大的一家警用记录仪厂商&#xff0c;此品牌我们恢复过很多&#xff0c;此次遇到的是一个典型的误格式化的情况&#xff0c;我们来看看误格式化后如何恢复。 故障存储: 32G卡/fat32 故障现象: 客户提供的信息是在交接设备后没有及时备份而做出了初始化设备的操…