读论文:(Style GAN)A Style-Based Generator Architecture for Generative Adversarial Networks

2023-12-19

2018年NVIDIA首次使用ProGAN应对这一挑战时,研究人员都无法生成高质量的大图像(如:1024×1024)。ProGAN的关键创新点是渐进式训练 — 它首先使用非常低分辨率的图像(如:4×4)开始训练生成器和识别器,并且每次都增加一个更高分辨率的网络层。

2019年NVIDIA发表于CVPR的《A Style-Based Generator Architecture for Generative Adversarial Networks》,一步一步地生成人工图像的,从非常低的分辨率开始,一直到高分辨率(1024×1024)。通过分别地修改网络中每个级别的输入,它可以控制在该级别中所表示的视觉特征,从粗糙的特征(姿势、面部形状)到精细的细节(头发颜色),而不会影响其它的级别。

StyleGAN中的“ Style” 是指数据集中人脸的主要属性,比如人物的姿态等信息,而不是风格转换中的图像风格,这里Style是指人脸的风格,包括了脸型上面的表情、人脸朝向、发型等等,还包括纹理细节上的人脸肤色、人脸光照等方方面面。层和分辨率越低,它所影响的特征就越粗糙。文章将这些特征分为三种类型:

1、粗糙的—分辨率最高82,影响姿势、一般发型、面部形状等;

2、中等的—分辨率为162至322,影响更精细的面部特征、发型、眼睛的睁开或是闭合等;

3、高质的—分辨率为642到10242,影响颜色方案(眼睛、头发和皮肤)和微观特征;

下图是传统生成器和 style gan 中生成器。

StyleGAN 的网络结构包含两个部分,第一个是 Mapping network ,即下图 (b)中的左部分,由隐藏变量 z 生成 中间隐藏变量 w的过程,这个 w 就是用来控制生成图像的style,即风格,为什么要多此一举将 z 变成 w 呢,后面会详细讲到。 第二个是 Synthesis network ,它的作用是生成图像,创新之处在于给每一层子网络都喂了 A 和 B,A 是由 w 转换得到的仿射变换,用于控制生成图像的风格,B 是转换后的随机噪声,用于丰富生成图像的细节,即每个卷积层都能根据输入的A来调整 "style" 。整个网络结构还是保持了 PG-GAN (progressive growing GAN) 的结构。最后论文还提供了一个高清人脸数据集 FFHQ。

Mapping network 映射网络由8个全连接的层组成,它的输出ⱳ与输入层(512×1)的大小相同。映射网络的目标是将输入向量编码为中间向量,中间向量的不同元素控制不同的视觉特征。这是一个非常重要的过程,因为使用输入向量来控制视觉特征的能力是非常有限的,因为它必须遵循训练数据的概率密度。例如,如果黑头发的人的图像在数据集中更常见,那么更多的输入值将会被映射到该特征上。因此,该模型无法将部分输入(向量中的元素)映射到特征上,这一现象被称为 特征纠缠 。然而,通过使用另一个神经网络,该模型可以生成一个不必遵循训练数据分布的向量,并且可以减少特征之间的相关性。

AdaIN (自适应实例标准化)模块将映射网络创建的编码信息ⱳ传输到生成的图像中。该模块被添加到合成网络的每个分辨率级别中,并定义该级别中特征的可视化表达式:

①首先每个特征图xi(feature map)独立进行归一化 (xi−μ(xi))/σ(xi) 。特征图中的每个值减去该特征图的均值然后除以方差

②一个可学习的仿射变换A(全连接层)将w转化为style中AdaIN的平移和缩放因子y =(ys,i,yb,i),

③然后对每个特征图分别使用style中学习到的的平移和缩放因子进行尺度和平移变换

这里输入的 feature 先去风格化(减去自身均值再除以自身标准差),再风格化到style image的风格(乘style image的标准差再加均值,注意这里是学到的,不是严格意义的标准差和均值,方便理解)

Style Mixing (风格混合) 下图中 第一行是 source B, 第一列是source A,source A 和 source B的每张图片由各自相应的latent code 生成,剩余的图片是对 source A 和 souce B 风格的组合。 Style mixing 的本意是去找到控制不同style的latent code的区域位置,具体做法是将两个不同的latent code z1和 z2输入到 mapping network 中,分别得到 w1和 w2 ,分别代表两种不同的 style,然后在

Synthesis network 中随机选一个中间的交叉点,交叉点之前的部分使用 w1 ,交叉点之后的部分使用 w2,生成的图像应该同时具有 source A 和 source B 的特征,称为 style mixing。

根据交叉点选取位置的不同,style组合的结果也不同。下图中分为三个部分,第一部分是 Coarse styles from source B,分辨率(4x4 - 8x8)的网络部分使用B的style,其余使用A的style, 可以看到图像的身份特征随souce B,但是肤色等细节随source A;第二部分是 Middle styles from source B,分辨率(16x16 - 32x32)的网络部分使用B的style,这个时候生成图像不再具有B的身份特性,发型、姿态等都发生改变,但是肤色依然随A;第三部分 Fine from B,分辨率(64x64 - 1024x1024)的网络部分使用B的style,此时身份特征随A,肤色随B。由此可以大致推断,低分辨率的style 控制姿态、脸型、配件 比如眼镜、发型等style,高分辨率的style控制肤色、头发颜色、背景色等style。

特征分离 ,为了使关于特征分离的讨论更加的量化,文章提出了两种新的特征分离的测量方法:

1、感知路径长度 — 当在两个随机输入之间插入时,测量两个连续图像(它们的VGG16嵌入)之间的差异。剧烈的变化意味着多个特性已经同时改变了,它们有可能会被纠缠;

2、线性可分离性  —  是将输入按照二进制类进行分类的能力,如男性和女性。分类越好,特征就越容易区分。

通过对输入的向量z和中间向量ⱳ的指标进行比较,作者们发现在ⱳ中的特征很明显地更容易分离。这些指标还表明了在映射网络中选择8个层与选择1到2个层相比的好处。

Truncation Trick (截断技巧)。从数据分布来说,低概率密度的数据在网络中的表达能力很弱,直观理解就是,低概率密度的数据出现次数少,能影响网络梯度的机会也少,但并不代表低概率密度的数据不重要。可以提高数据分布的整体密度,把分布稀疏的数据点都聚拢到一起,类似于PCA,做法很简单,首先找到数据中的一个平均点,然后计算其他所有点到这个平均点的距离,对每个距离按照统一标准进行压缩,这样就能将数据点都聚拢了,但是又不会改变点与点之间的距离关系。


小结下,style gan具有以下特点:

  • 基于样式的生成器,能生成更高质量的高分辨率图像。
  • 实现了无监督地分离高级属性(人脸姿势、身份)和随机变化(例如雀斑,头发),实现对生成图像中特定尺度的属性的控制。通过style控制高级属性,通过不同层的style实现对不同尺度的特征的控制;通过噪声控制随机变化
  • 降低了隐空间的耦合性。通过映射网络生成中间隐空间(intermediate latent space),中间隐空间降低了输入隐空间的纠缠
  • 提出两种新的量化隐空间耦合性的指标-感知路径长度和线性可分性
  • 对高级属性与随机效应的分离以及中间隐空间的线性的研究,提高了对GAN合成的理解和可控性
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

读论文:(Style GAN)A Style-Based Generator Architecture for Generative Adversarial Networks 的相关文章

  • 【EI复现】基于深度强化学习的微能源网能量管理与优化策略研究(Python代码实现)

    欢迎来到本博客 博主优势 博客内容尽量做到思维缜密 逻辑清晰 为了方便读者 座右铭 行百里者 半于九十 本文目录如下 目录 1 概述 2 运行结果 2 1 有 无策略奖励 2 2 训练结果1
  • 【EI复现】基于深度强化学习的微能源网能量管理与优化策略研究(Python代码实现)

    欢迎来到本博客 博主优势 博客内容尽量做到思维缜密 逻辑清晰 为了方便读者 座右铭 行百里者 半于九十 本文目录如下 目录 1 概述 2 运行结果 2 1 有 无策略奖励 2 2 训练结果1
  • 蒙特卡洛在发电系统中的应用(Matlab代码实现)

    欢迎来到本博客 博主优势 博客内容尽量做到思维缜密 逻辑清晰 为了方便读者 座右铭 行百里者 半于九十 本文目录如下 目录 1 概述 2 运行结果 3 参考文献 4 Matlab代码实现
  • 蒙特卡洛在发电系统中的应用(Matlab代码实现)

    欢迎来到本博客 博主优势 博客内容尽量做到思维缜密 逻辑清晰 为了方便读者 座右铭 行百里者 半于九十 本文目录如下 目录 1 概述 2 运行结果 3 参考文献 4 Matlab代码实现
  • 用CHAT写一份标题为职业教育教师教学能力提升培训总结

    CHAT回复 标题 职业教育教师教学能力提升培训总结 一 活动概述 本次由学校组织的职业教育教师教学能力提升培训于8月15日至8月20日顺利进行 来自全校的60位职业教育教师参与了此次培训 主讲人为享有盛名的教育专家马丁先生 二 培训内容与
  • 利用CHAT写实验结论

    问CHAT 通过观察放置在玻璃表面上的单个水滴 人们可以观察到水滴充当成像系统 探究这样一个透镜的放大倍数和分辨率 CHAT回复 实验报告标题 利用玻璃表面的单一水滴观察成像系统的放大倍数和分辨率 一 实验目的 通过对比和测量 研究和探索玻
  • 利用CHAT上传文件的操作

    问CHAT autox js ui 上传框 CHAT回复 上传文件的操作如果是在应用界面中的话 由于Android对于文件权限的限制 你可能不能直接模拟点击选择文件 一般来说有两种常见的解决方案 一种是使用intent来模拟发送一个文件路径
  • 打造完美人像,PixCake像素蛋糕助您一键修图

    您是否曾经为自己的人像照片需要进行繁琐的修图而感到困扰 是否曾经想要打造出完美的自拍照 却不知道该如何下手 现在 我们为您推荐一款强大的人像处理技术修图软件 PixCake像素蛋糕 PixCake像素蛋糕是一款基于AI人像处理技术的修图软件
  • 无人机视角、多模态、模型剪枝、国产AI芯片部署

    无人机视角 多模态 模型剪枝 国产AI芯片部署是当前无人机技术领域的重要研究方向 其原理和应用价值在以下几个方面进行详细讲述 一 无人机视角 无人机视角是指在无人机上搭载摄像头等设备 通过航拍图像获取环境信息 并进行图像处理和分析 这种技术
  • 作物叶片病害识别系统

    介绍 由于植物疾病的检测在农业领域中起着重要作用 因为植物疾病是相当自然的现象 如果在这个领域不采取适当的护理措施 就会对植物产生严重影响 进而影响相关产品的质量 数量或产量 植物疾病会引起疾病的周期性爆发 导致大规模死亡 这些问题需要在初
  • 如何快速申请GPT账号?

    详情点击链接 如何快速申请GPT账号 一OpenAI 1 最新大模型GPT 4 Turbo 2 最新发布的高级数据分析 AI画图 图像识别 文档API 3 GPT Store 4 从0到1创建自己的GPT应用 5 模型Gemini以及大模型
  • 手把手教你用 Stable Diffusion 写好提示词

    Stable Diffusion 技术把 AI 图像生成提高到了一个全新高度 文生图 Text to image 生成质量很大程度上取决于你的提示词 Prompt 好不好 前面文章写了一篇文章 一份保姆级的 Stable Diffusion
  • 不要再苦苦寻觅了!AI 大模型面试指南(含答案)的最全总结来了!

    AI 大模型技术经过2023年的狂飙 2024年必将迎来应用的落地 对 IT 同学来讲 这里蕴含着大量的技术机会 越来越多的企业开始招聘 AI 大模型岗位 本文梳理了 AI 大模型开发技术的面试之道 从 AI 大模型基础面 AI 大模型进阶
  • AI在保护环境、应对气候变化中的作用

    对于AI生命周期数据领域的全球领导者而言 暂时搁置我们惯常的AI见解和AI生命周期数据内容产出 来认识诸如世界地球日这样的自然环境类活动日 似乎是个奇怪的事情 我们想要知道 数据是否真的会影响我们的地球环境 简而言之 是 确实如此 但作为一
  • AI帮助终结全球饥饿问题

    全球饥饿问题是牵动人心的头等大事 5月28日是 世界饥饿日 这一问题更值得关注 让人人都能吃饱的想法不仅令人向往 而且很快就会变成现实 与大多数新事物引进一样 对于在控制世界粮食供应这样复杂的任务中AI究竟应该发挥多大的作用 人们还踟蹰不前
  • 15天学会Python深度学习,我是如何办到的?

    陆陆续续有同学向我们咨询 Python编程如何上手 深度学习怎么学习 如果有人能手把手 一对一帮帮我就好了 我们非常理解初学者的茫然和困惑 大量视频 书籍 广告干扰了大家的判断 学习Python和人工智能 成为内行人不难 为此 我们推出了
  • 基于节点电价的电网对电动汽车接纳能力评估模型研究(Matlab代码实现)

    欢迎来到本博客 博主优势 博客内容尽量做到思维缜密 逻辑清晰 为了方便读者 座右铭 行百里者 半于九十 本文目录如下 目录 1 概述 2 运行结果 3 参考文献 4 Matlab代码 数据
  • 深度学习(5)--Keras实战

    一 Keras基础概念 Keras是深度学习中的一个神经网络框架 是一个高级神经网络API 用Python编写 可以在TensorFlow CNTK或Theano之上运行 Keras优点 1 允许简单快速的原型设计 用户友好性 模块化和可扩
  • 自动驾驶离不开的仿真!Carla-Autoware联合仿真全栈教程

    随着自动驾驶技术的不断发展 研发技术人员开始面对一系列复杂挑战 特别是在确保系统安全性 处理复杂交通场景以及优化算法性能等方面 这些挑战中 尤其突出的是所谓的 长尾问题 即那些在实际道路测试中难以遇到的罕见或异常驾驶情况 这些问题暴露了实车
  • 对中国手机作恶的谷歌,印度CEO先后向三星和苹果低头求饶

    日前苹果与谷歌宣布合作 发布了 Find My Device Network 的草案 旨在规范蓝牙追踪器的使用 在以往苹果和谷歌的生态形成鲜明的壁垒 各走各路 如今双方竟然达成合作 发生了什么事 首先是谷歌安卓系统的市场份额显著下滑 数年来

随机推荐

  • Gateway网关-路由的过滤器配置

    目录 一 路由过滤器 GatewayFilter 1 1 过滤器工厂GatewayFilterFactory 1 2 案例给所有进入userservice的请求添加一个请求头 Truth itcastis freaking awesome
  • 用一个简单的例子教你如何 自定义ASP.NET Core 中间件(一)

    提起中间件大家一定不陌生 我们也用过 NET core很多很好用的中间件 但是如何自己写一个中间件呢 可能大部分同学不清楚怎么写 我之前也不会 看了微软官方文档 ASP NET Core 中间件 感觉讲的也不是很清楚 下面就用一个简单的例子
  • 论文阅读:DSformer:A Double Sampling Transformer for Multivariate Time Series Long-term Prediction

    DSformer A Double Sampling Transformer for Multivariate Time Series Long term Prediction 一篇发表在CIKM 2023上的基于transformer的时
  • pthread_detach(pthread_self())是一个用于将当前线程设置为分离状态的函数调用

    pthread detach pthread self 是一个用于将当前线程设置为分离状态的函数调用 具体解释如下 pthread self pthread self 是一个pthread库中的函数 用于获取当前线程的线程ID pthrea
  • Jmeter吞吐量控制器使用小结

    吞吐量控制器 Throughput Controller 场景 在同一个线程组里 有10个并发 7个做A业务 3个做B业务 要模拟这种场景 可以通过吞吐量 模拟器 来实现 添加吞吐量控制器 用法1 Percent Executions 在一
  • 【实战详解】如何快速搭建接口自动化测试框架?Python + Requests

    摘要 本文主要介绍如何使用Python语言和Requests库进行接口自动化测试 并提供详细的代码示例和操作步骤 希望能对读者有所启发和帮助 前言 随着移动互联网的快速发展 越来越多的应用程序采用Web API 也称为RESTful API
  • 详解 Jeecg-boot 框架如何配置 elasticsearch

    目录 一 下载安装 Elasticsearch 1 地址 https www elastic co cn downloads elasticsearch 2 下载完成后 解压缩 进入config目录更改配置文件 3 修改配置完成后 前往bi
  • 20231218_144100 java jdbc的dml操作 实现增删改的功能

    导入jar包 在项目目录下新建lib目录 在lib目录下存放驱动jar包 让项目识别lib目录 让项目知道这个lib目录是库目录 在lib目录上右击 点选 add as library 然后确定 验证lib目录是否设置成功 设置lib目录前
  • onnx 图像分类

    参考文章 netron 模型可视化工具netron CSDN博客 Pytorch图像分类模型部署 ONNX Runtime本地终端推理 哔哩哔哩 bilibili 使用netron可视化模型结构 1 使用在线版 浏览器访问 Netron 点
  • 多用户无线信道资源分配算法优化

    随着无线通信技术的快速发展 越来越多的用户依赖于无线网络进行通信和数据传输 然而 由于无线信道资源的有限性 多用户之间的信道资源分配变得尤为重要 为了提高无线通信的效率和公平性 研究者们一直致力于优化多用户无线信道资源分配算法 本文将介绍多
  • 世微 AP2400 降压恒流驱动ic 全亮 半亮 爆闪三功能循环模式

    产品描述 AP2400 是一款 PWM 工作模式 高效率 外围简单 外驱功率管 适用于 5 100V输入的高精度降压 LED 恒流驱动芯片 外驱 MOS 最大输出电流可达 6A AP2400 可实现三段功能切换 通过MODE1 2 3 切换
  • Python环境搭建

    一 Python运行环境 PATH添加环境变量 方便添加后续工具 后续自定义安装即可 交互式解释器 二 开发环境 PyCharm
  • SSM框架实现学生信息管理系统

    这个管理系统是我学完SSM后的一个练手小项目 感兴趣的小伙伴可以在B站搜下SSM实战 这是雷神讲的一套课程 他用得是JSP进行前端页面渲染 前端方面的湘学习占了 但是JSP技术太老了 我把JSP改成Thymeleaf 有关Thymeleaf
  • 使用C语言设计并实现一个成绩管理系统

    使用C语言设计并实现一个成绩管理系统 该系统用于教师管理一门课程的成绩 系统功能 成绩录入 打印成绩单 修改成绩 统计分数段 统计平均分 统计不及格学生 相关要求 1 系统要有主菜单界面 让教师了解系统的功能 以及如何选择系统功能 2 系统
  • .h5文件简介

    一 简介 HDF5 Hierarchical Data Format version 5 是一种用于存储和组织大量数据的文件格式 它支持高效地存储和处理大规模科学数据的能力 HDF5 是一种灵活的数据模型 可以存储多种数据类型 包括数值数据
  • 如何使用 C++ 开发 Redis 模块

    在本文中 我将总结 Tair 在使用 C 开发 Redis 模块时遇到的一些问题 并将其提炼为最佳实践 目的是为 Redis 模块的用户和开发人员提供帮助 其中一些最佳实践也可以应用于 C 编程语言和其他编程语言 介绍 从 Redis 5
  • 刚入行的嵌入式新人是否值得坚持嵌入式方向?

    今日话题 刚入行的嵌入式新人是否值得坚持嵌入式方向 如果你正在学习C语言或者嵌入式方向 坚持下去是一个明智的选择 嵌入式行业涉及硬件 技术更新相对较慢 但这为你积累宝贵的经验提供了机会 与纯软件相比 具有独特的优势 我提供了一套全面的嵌入式
  • Java版商城:Spring Cloud+SpringBoot b2b2c实现多商家入驻、直播带货及免 费小程序商城搭建

    1 涉及平台 平台管理 商家端 pc端 手机端 买家平台 h5 公众号 小程序 app端 ios android 微服务平台 业务服务 2 核心架构 spring cloud spring boot mybatis redis 3 前端框架
  • 【Spring】SpringMVC项目升级成SpringBoot实践

    将Spring MVC项目升级为Spring Boot项目需要一系列详细的步骤 以下是一个更详细的步骤指南 项目初始化 创建一个新的Spring Boot项目 您可以使用Spring Initializr或Spring Boot的Maven
  • 读论文:(Style GAN)A Style-Based Generator Architecture for Generative Adversarial Networks

    2018年NVIDIA首次使用ProGAN应对这一挑战时 研究人员都无法生成高质量的大图像 如 1024 1024 ProGAN的关键创新点是渐进式训练 它首先使用非常低分辨率的图像 如 4 4 开始训练生成器和识别器 并且每次都增加一个更