论文解读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
    如果一个隐空间是充分解耦的,应该能够找到与每个变化因子对应的方向向量。我们提出了另一种度量方法来量化这种效果,测量通过线性超平面将隐空间点分割成两个不同的集合的程度,使每个集合对应于图像的特定的二元属性。

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

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

相关文章

Movable antenna 早期研究

原英文论文名字Historical Review of Fluid Antenna and Movable Antenna 最近,无线通信研究界对“流体天线”和“可移动天线”两种新兴天线技术的发展引起了极大的关注,这两种技术因其前所未有的灵活性和可重构性而极大地提高了无线应用中的系统性能。…

怎么把视频中走来走去的人去掉?

现在短视频火爆,很多朋友都会将生活中一些特定的场面拍摄记录下来。通过剪辑发布到一些短视频平台上,但是有时拍摄的视频不是那么完美,会拍到不相关的人或物,影响画面的主体,这种情况下我们可以去除视频中无关的走来走…

c++ primer plus 第15章友,异常和其他:友元类

c primer plus 第15章友,异常和其他:友元类 提示:这里可以添加系列文章的所有文章的目录,目录需要自己手动添加 例如:友元类 提示:写完文章后,目录可以自动生成,如何生成可参考右边的…

5个文章生成器免费版,自动写作文章更轻松

在这个信息如洪流般涌动的时代,写作所具有的重要性不言而喻。不管是学生需要完成的作业,还是职场人士得提交的报告,亦或是自媒体创作者必须输出的内容,都迫切要求我们具备一定的写作技能。然而,写作对很多人来说&#…

C++实现一个简单的Qt信号槽机制(1)

昨天写这个文章《深入探讨C的高级反射机制(2):写个能用的反射库》的时候就在想,是不是也能在这套反射逻辑的基础上,实现一个类似Qt的信号槽机制? Qt信号槽机制简介 所谓的Qt的信号槽(Signals …

隐私集合求交(PSI)原理深入浅出

隐私集合求交技术是多方安全计算领域的一个子问题,通常也被称为安全求交、隐私保护集合交集或者隐私交集技术等,其目的是允许持有各自数据集的双方或者多方,执行两方或者多方集合的交集计算,当PSI执行完成,一方或者两方…

@amap/amap-jsapi-loader实现高德地图嵌入React项目中,并且做到点击地图任意一处,获得它的经纬度

1.第一步要加入项目package.json中或者直接yarn install它都可以 想必大家应该都会 "amap/amap-jsapi-loader": "0.0.7"2.加入项目中 关于接口获取key的接口 大家改成自己对应的项目请求方法 import React, { PureComponent } from react; import { Input…

【前端--Vue】组件之间的多种通信方式,一文彻底搞懂组件通信!

本篇将重点讲解vue中的多种组件通信方式,包括【父传子】【子传父】【兄弟组件通信】【依赖注入】等等,并提供具体案例来让小伙伴们加深理解、彻底掌握!喜欢的小伙伴们点赞收藏,持续关注哦~💕 💟 上一篇文章…

商务视频推广打造有吸引力的7个秘诀-华媒舍

商务视频推广是现代企业发展的重要工具,它能够帮助企业吸引更多的目标客户,提升品牌知名度,增加销售量。但是,如何打造一部有吸引力的商务视频推广呢?本文将为您介绍7个秘诀,帮助您在商务视频推广中取得成功…

性能测试-JMeter学习

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

单服务器推送还在用WebSocket?快试试更快的SSE

在传统的Web开发中,WebSocket常被用来实现实时双向通信。然而,对于只需要单向、从服务器到客户端的信息推送场景,Server-Sent Events (SSE) 提供了一种更轻量、更简单的解决方案。 SSE 和 WebSocket 特点的差异 SSE SSE 适用于服务器向客户…

恭喜!H医生一个月内荣获美国芝加哥大学访问学者邀请函

➡️【院校背景】 芝加哥大学(英文:The University of Chicago,简称UChicago、“芝大”)由石油大王约翰洛克菲勒于1890年创办,坐落于美国伊利诺伊州芝加哥市,一所私立研究型大学,属于全球大学校…

uboot run命令基本使用

run 命令可以用于运行环境变量的中定义的命令,run bootcmd 可以运行bootcmd中启动命令 作用:可以运行我们自定义的环境变量 include/command.h common/cli.c /*** board_run_command() - Fallback function to execute a command** When no command line features are enabled …

注意!高考志愿填报的两个优先原则,千万不要错过!

高考已经告一段落,接下来几天各省会陆续公布分数,然后就到了填报志愿的环节。高考志愿填报是一项影响深远的综合性决策,决定着每个考生的未来发展 。下面我谈谈我对高考填报的理解。我总结为:两个优先、三个因素。 一、两个优先 …

Prometheus 监控Kubelet的运行状态

kubelet通过/metrics暴露自身的指标数据。kubelet有两个端口都提供了这个url,一个是安全端口(10250),一个是非安全端口(10255,kubeadm安装的集群该端口是关闭的)。安全端口使用https协议&#x…

初阶数据结构之二叉树

那么本篇文是初阶数据结构这个系列的最后一篇文章,那么闲话少叙,我们直接进入正题 在讲二叉树的一些之前知识点之前,我先给大家送个小礼物哈 手搓二叉树 typedef int BTDataType ; typedef struct BinaryTreeNode { BTDataType _data …

【病毒分析】假冒游戏陷阱:揭秘MBRlock勒索病毒及其修复方法

1.背景 在公众号文章中看到一篇名为《敲竹杠木马分析:虚假的植物大战僵尸杂交版》的文章,样本来源于某吧,对此我们对样本进行了提取分析。 文章链接:https://mp.weixin.qq.com/s/Up9u4DZtHnVNMiGBIHZzHw 2.恶意文件基础信息 文…

企业数据API平台:获取企业多维度信息

数据API平台是指提供一系列预先定义的接口、协议与工具,允许不同应用程序或系统之间进行数据交换和通信的平台。这些接口被称为数据API(Data Application Programming Interface),是数据管理系统或应用程序提供的一组开放式接口。…

盘点几款国产AI高效神器!打工人赶紧码住

在这个AI技术飞速发展的时代,国产AI工具正成为提升工作效率的得力助手。作为AI工具测评博主,米兔有幸体验了多款国产AI工具,今天要向大家介绍几款超级好用的AI工具。这些工具不仅功能强大,而且操作简便,是职场人士不可…

45.使用hook点链表实现指定跳转

免责声明:内容仅供学习参考,请合法利用知识,禁止进行违法犯罪活动! 上一个内容:44.实现管理HOOK点的链表对象 以 44.实现管理HOOK点的链表对象 它的代码为基础进行修改 HOOKPOINT.cpp文科修改,修改了Fin…