StyleGAN系列学习笔记

2023-11-16

StyleGAN可以无监督地分离高级属性(例如,姿态,身份)和生成图像中的随机变化(例如,雀斑,头发),控制图像不同层次的视觉特征。

StyleGAN v1

Figure 1. 传统生成器 vs. Style-based生成器

给定输入latent code z (符合均匀分布或者高斯分布的随机变量),通过由8个全连接层组成的Mapping Network将输入的潜在变量映射到与输入层()大小相同的中间潜在空间,后续得到18个样式控制向量传给生成网络,该控制向量的不同元素能够控制不同的视觉特征(在每个卷积层通过自适应实例归一化AdaIN实现特征转换)。最后,通过引入显式噪声输入,为生成器提供了生成随机细节的直接方法。

1. Mapping Network

添加Mapping Network的目标是将输入向量编码映射为解耦的中间向量,解决特征纠缠问题。

1)为什么要解决特征纠缠?

特征举例:头发长度和男子气概。按照z的分布来说,这两个特征之间存在交缠紧密的联系,如头发短了男子气概会降低或者增加。但对现实情况来说,短发男子、长发男子都可以有很强的男子气概。所以需要将latent code z进行解耦,才能更好的后续操作,来改变其不同特征。

2)为何Mapping Network能够学习到特征解缠呢?

简单来说,如果仅使用输入向量来控制视觉特征,能力非常有限,因此它必须遵循训练数据的概率密度。例如,如果黑头发的人的图像在数据集中更常见,那么更多的输入值将会被映射到该特征上。如果模型无法选择将部分输入(向量中的元素)映射到特征上,就会造成特征纠缠。通过Mapping Network可以生成一个不必遵循训练数据分布的向量,可以减少特征之间的相关性。

2. Synthesis Network

a. 控制向量(A)

生成器由于从,变换到,并最终变换到,所以它由9个生成阶段组成,而每个阶段都会受两个控制向量对其施加影响,其中一个控制向量在Upsample之后对其影响一次,另外一个控制向量在Convolution之后对其影响一次,影响的方式都采用AdaIN(自适应实例归一化)。

AdaIN的具体实现过程

通过一个可学习的仿射变换(实际上是一个全连接层)扩变为放缩因子与偏差因子,这两个因子会与标准化之后的卷积输出做一个加权求和,就完成了一次影响原始输出的过程。而这种影响方式能够实现样式控制,主要是因为它让(即变换后的)影响图片的全局信息(注意标准化抹去了对图片局部信息的可见性),而保留生成人脸的关键信息由上采样层和卷积层来决定,因此只能够影响到图片的样式信息。

特征图的均值和方差中带有图像的风格信息。所以在这一层中,特征图减去自己的均值除以方差,去掉自己的风格。再乘上新风格的方差加上均值,以实现转换的目的。StyleGAN的风格不是由图像得到的,而是生成的。

既然StyleGAN生成图像的特征是由和AdaIN控制的,那么生成器的初始输入可以被忽略,并用常量值替代。这样做的理由是,首先可以降低由于初始输入取值不当而生成出一些不正常的照片的概率(这在GANs中非常常见),另一个好处是它有助于减少特征纠缠,对于网络在只使用不依赖于纠缠输入向量的情况下更容易学习。

b. 随机噪声(B)

引入显式噪声输入是为了控制噪声仅影响图片样式上细微的变化,StyleGAN采用类似于AdaIN机制的方式添加噪声,即在AdaIN模块之前向每个通道添加一个缩放过的噪声,并稍微改变其操作的分辨率级别特征的视觉表达方式,随机改变雀斑、发髻线的准确位置、皱纹等使图像更逼真的特征。

3. 其他细节

a. Style Mixing

StyleGAN生成器在合成网络的每个级别中使用了中间向量,这有可能导致网络学习到这些级别是相关的。为了降低相关性,模型随机选择两个输入向量,并经过mapping network生成了中间向量。然后,用第一个输入向量来训练一些网络级别,然后(在一个随机点中)切换到另一个输入向量来训练其余的级别。随机的切换确保了网络不会学习并依赖于一个合成网络级别之间的相关性。

b. Truncation Trick

从数据分布来说,低概率密度的数据在网络中的表达能力很弱,直观理解就是,低概率密度的数据出现次数少,能影响网络梯度的机会也少,网络学习到其图像特征的能力就会减弱。

截断技巧用于解决该问题。首先找到数据中的一个平均点,然后计算其他所有点到这个平均点的距离,对每个距离按照统一标准进行压缩,将数据点聚拢(相当于截断了中间向量,迫使它保持接近“平均”的中间向量),但是又不会改变点与点之间的距离关系。当生成新的图像时,不用直接使用mapping network的输出,而是将转换为,其中的值定义了图像与“平均”图像的差异量(以及输出的多样性)。在仿射转换块之前,通过对每个级别使用不同的,模型可以控制每个级别上的特征值与平均特征值的差异量。


StyleGAN v2

Figure 2. 不同StyleGAN生成网络结构(每个灰框表示网络中有一种样式活动的部分)

AdaIN 对每个 feature map 的均值和方差进行归一化,有可能会破坏掉 feature 之间的信息。StyleGAN v2 去除 Adain 的归一化操作,解决生成图像中出现水珠问题(基于假设,StyleGAN v1出现的液滴伪影假象是生成器有意地将信号强度信息隐藏在实例归一化之后的结果:通过创建一个强大的、局部的峰值来主导统计数据,生成器可以有效地缩放信号)。

具体改进

  1. 去除输入开始的冗余操作,直接输入常量。

  1. 将AdaIN操作分解为归一化normalization和调制modulation两个组成部分,去掉平均值。

  1. 将偏置和噪声移到样式块之外以获得更可预测的结果,在样式块内对规范化的数据进行操作。

  1. 用“解调”操作替换实例规范化,解调技术是基于对信号的预期统计,而不是基于特征图的实际内容,因此解调技术没有显式强制,同时保留style mixing且解决其特征放大问题。【解调理解:在调制的基础上对卷积层的权值进行归一化 (revised instance normalization)。调制即基于传入样式缩放卷积的每个输入特征映射,可以通过缩放卷积权重来实现。】


StyleGAN v3

Figure 3. Alias-Free StyleGAN3网络结构

在GAN的合成过程中,某些特征依赖于绝对像素坐标,这会导致细节似乎粘在图像坐标上,而不是所要生成对象的表面,StyleGAN v3从根本上解决图像坐标与特征粘连问题(作者认为目前的生成器网络架构是卷积+非线性+上采样等结构,而这样的架构无法做到很好的等变性,“纹理粘附”在latent值变换的时候会更加明显),实现了真正的图像平移、旋转等不变性,大幅度提高了图像合成质量。

平移问题

对于某个固定的坐标切片,StyleGAN v2倾向于生成固定的纹理,而StyleGAN v3可以随移动变化纹理。

旋转问题

StyleGAN v2无法满足旋转一致性问题,主要因为:

  1. 使用图像边界参考(例如padding的使用实际上提示了图像的边界位置信息)。

  1. 像素的噪声输入(例如头发丝粘一起)。

  1. 位置编码和混叠(加入一些额外的位置信息)。

解决方法

  1. 针对边界问题,可以在稍大一点的图像边缘上进行操作。

  1. 针对像素的噪声输入,可以直接取消掉该操作。

  1. 而关于生成图像中的混叠,作者认为有两个可能的来源:

  1. 非理想上采样(如最近邻、双线性或空洞卷积)产生的像素网格的微弱的印记。

  1. 应用pointwise的非线性激活,如ReLU或者Swish。

实验表明,在StyleGAN v2时,当前的上采样滤波器在抑制混叠方面根本不够积极,而且需要具有超过100dB衰减的高质量滤波器针对这个问题,StyleGAN v3根据它们在连续域的影响,提出了一种解决点态非线性引起的混叠的原理,并对结果进行了适当的低通滤波。

生成器的具体改进

1. 傅里叶特征以及基线模型简化

  1. 利用Fourier特征(傅里叶特征)代替了StyleGAN v2生成器的常数输入,为了便于对输入进行精确的连续平移和旋转,这也具有自然定义空间无限映射的优点。

  1. 删除了逐像素噪声输入,特征的位置信息要完全继承底层粗特征。

  1. 降低了网络深度(18到14),禁用mixing regularization和path length regularization,并且在每次卷积前都使用简单的归一化。

  1. 消除了输出的skip connecton,好处主要与训练期间的梯度幅度动态有关,并在每次卷积之前使用简单的归一化更直接地解决潜在问题。

2. 边界及上采样问题优化

  1. 理论上特征映射有一个无限的空间范围,引入了一个固定大小的边缘来近似,在每一层操作之后裁剪到这个扩展的画布上。

  1. 用理想低通滤波器来代替双线性采样。

改进的边界处理和上采样得到了更好的转换等值方差(平移性),而FID降低了16%,可能是因为开始时限制了特征映射可以包含的内容。

3. 非线性滤波改进

工程化的操作,改进了非线性滤波,并将整个upsample-LReLU-downsample过程写到一个自定义的CUDA内核中

4. 非临界采样改进

为了抑制混叠,简单地将边界频率 (cutoff frequency) 降低到,这确保所有混叠频率(高于s/2)都在阻带内,丢掉浅层不重要的高频细节。

5. 傅里叶特征改进

为了应对每层的全局变换能力有限的问题,加入了一个仿射层,输出输入傅里叶特征的全局平移和旋转参数,稍微改善了FID。

6. 平移不变性

灵活的层规范提高了平移不变性,但是一些可见的伪影仍然存在。这是因为滤波器的衰减对于最低分辨率的层来说仍然是不够的,而这些层往往在其带宽限制附近有丰富的频率信息,这就需要有非常强的衰减来完全消除混叠。因此希望边界频率在最低分辨率层中较高,以最大化提高阻带的衰减;在最高分辨率层中较低,以匹配训练数据的高层细节。

7. 旋转不变性

为了得到旋转不变性网络,做出来两个改进:

  1. 将所有层的卷积核大小从替换为,一个基于的卷积操作能够产生强旋转的等变生成器,一旦适当地抑制了混叠,便可以迫使模型实现更自然的层次细化。

  1. 通过将feature map的数量增加一倍,用来弥补减少的特征容量。


参考链接

https://blog.csdn.net/a312863063/article/details/88795147

https://blog.csdn.net/xjm850552586/article/details/122027019

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

StyleGAN系列学习笔记 的相关文章

  • SpringBoot集成Swagger4

    Swagger是一种工具 可以帮助开发人员设计 构建 文档化和测试 RESTful Web 服务 Swagger提供了一种交互式文档格式 可以使用它来了解 API 的用法 参数 返回值等等 Spring Boot提供了集成Swagger的简
  • wmic命令学习

    我目前知道wmic可以查询进程 还可以查询服务 查询进程使用wmic process 如果想知道进程的名字 进程号 执行文件路径可以通过get来获取 还可以根据where筛选进程进行查询 wmic process get name proc
  • 【100%通过率 】【华为OD机试真题 c++ 】最大数字【 2023 Q1 A卷

    华为OD机试 题目列表 2023Q1 点这里 2023华为OD机试 刷题指南 点这里 题目描述 给定一个由纯数字组成以字符串表示的数值 现要求字符串中的每个数字最多只能出现2次 超过的需要进行删除 删除某个重复的数字后 其它数字相对位置保持
  • GLSL常见函数[转]

    radians x 角度转弧度 degrees x 弧度转角度 sin x 正弦函数 传入值为弧度 三角函数与js相同 有cos余弦函数 tan正切函数 asin反正弦 acos反余弦 atan反正切等 pow x y xy exp x e
  • ubuntu配置环境重要网址

    ping不通百度且报错 ping www baidu com Temporary failure in name resolution 的解决方案 https blog csdn net yulei qq article details 1
  • Python-import导入上级目录文件

    假设有如下目录结构 dir0 file1 py file2 py dir3 file3 py dir4 file4 py dir0文件夹下有file1 py file2 py两个文件和dir3 dir4两个子文件夹 dir3中有file3
  • AttGAN从paper到code理解

    AttGAN Facial Attribute Editing by Only Changing What You Want 2017 CVPR 文章简介 本文研究面部属性编辑任务 其目的是通过操作单个或多个感兴趣的属性 如头发颜色 表情
  • 【前端】批量导入和导出Excel数据

    1 准备 excel导入功能需要使用npm包xlsx 所以需要安装xlsx插件 读取和写入都依赖她 npm i xlsx 0 17 0 vue element admin模板提供了一个导入excel数据的文件 我们只需用即可 代码地址 ht
  • 2023.02

    2023 02 01 将mpu写到dxReagion中的数据打印到文件中 调试解决mpu2ipu和ipu2mpu同时跑线程未关掉导致的异常 2023 02 02 学习2102 spec文档和mpu设计文档 将mpuipu测试用例加到回归测试
  • 【INS-30014】无法检查指定的位置是否位于CFS上的解决办法

    安装oracle数据库过程中 出现 INS 30014 无法检查指定的位置是否位于CFS上的解决办法如下 安装过程中 选择 仅安装数据库软件 在安装成功后 使用DBCA工具创建以及配置数据库即可
  • Peewee的坑

    db create tables Student 当如上使用时可能会报表Student不存在的错误 官方实例如db create tables Student Pet 改成db create tables Student safe True
  • 【路径规划】基于A*算法和Dijkstra算法的路径规划(Python代码实现)

    个人主页 研学社的博客 欢迎来到本博客 博主优势 博客内容尽量做到思维缜密 逻辑清晰 为了方便读者 座右铭 行百里者 半于九十 本文目录如下 目录 1 概述 2 运行结果 3 参考文献 4 Python代码实现 1 概述 Dijkstr
  • 【NLP】第 6 章 :微调预训练模型

    到目前为止 我们已经了解了如何使用包含预训练模型的huggingface API 来创建简单的应用程序 如果您可以从头开始并仅使用您自己的数据来训练您自己的模型 那不是很棒吗 如果您没有大量空闲时间或计算资源可供使用 那么使用迁移学习 是最
  • 【ffmpeg基础】ffmpeg音频编码

    一 aac编码 输入raw音频编码为AAC ffmpeg i input wav acodec aac y input aac 通过 acodec来指定音频编码器 视频编码器为 vcodec 也可以使用 c a来指定音频编码器 ffmpeg
  • 通过微信小程序实现登录功能

    后端服务器可以在CSDN上开通 价格优惠 CSDN开发云 https img home csdnimg cn images 20220518054835 png https dev csdn net activity utm source
  • 0227:zotero文献管理/小绿鲸英文/CSDN做笔记

    搜索 下载 白嫖 翻译 文章 如何精准找到和方向相关的文献 谷歌学术 国内无法正常进入 两个镜像网站 https xueshu dailyheadlines cc https scholar lanfanshu cn 搜索技巧 关键词套双引
  • Adobe软件还行吗?

    前段时间 美国政府 准备通过诉讼阻止Adobe去年公布的 以200亿美元收购Figma的交易 理由是此举属于反竞争行为 新闻一出 Adobe股价旋即下跌 但跌幅并不像2022年刚公布这笔交易时那么迅猛 看起来 相较于收购成功 投资者们反而希
  • Redis热点数据处理

    1 概念 热点数据就是访问量特别大的数据 2 热点数据引起的问题 流量集中 达到物理网卡上限 请求过多 缓存分片服务被打垮 redis作为一个单线程的结构 所有的请求到来后都会去排队 当请求量远大于自身处理能力时 后面的请求会陷入等待 超时
  • 深度学习目标跟踪算法

    ECCV 2022 OSTrack Joint Feature Learning and Relation Modeling for Tracking https blog csdn net qq 41442511 article deta
  • 多少个X 蓝桥杯模拟

    问题描述 给定一个字母矩阵 一个 X 图形由中心点和由中心点向四个45度斜线方向引出的直线段组成 四条 线段的长度相同 而且四条线段上的字母和中心点的字母相同 一个 X图形可以使用三个整数 r c L 来描述 其中 r c 表示中心点位于第

随机推荐

  • 链表 -- 算法 -- leetcode

    翻转链表前n个节点 虚拟头结点的使用情况 链表的首节点可能发生改变 虚拟头结点 ret gt next head 力扣 力扣 力扣 力扣 力扣 力扣 力扣 力扣 力扣
  • 期望/方差/协方差/相关系数

    期望 在概率论和统计学中 数学期望 mean 或均值 亦简称期望 是试验中每次可能结果的概率乘以其结果的总和 是最基本的数学特征之一 它反映随机变量平均取值的大小 离散型随机变量的一切可能的取值Xi与对应的概率p xi 乘积之和称为该离散型
  • 会员ID查询测试用例设计

    检查点 默认值检查 异常输入 查询结果检查 正常输入 查询结果检查 测试用例设计 1 前提 存在会员ID abc abcd 1abc 会员id输入为字母abc 其它默认 点击 搜索 显示完全匹配该条件的数据 即只显示会员ID abc的记录
  • linux 线程

    1 线程概述 与进程的区别及线程的优势 什么是线程 在一个程序里的一个执行路线就叫做线程 thread 更准确的定义是 线程是 一个进程内部的控制序列 一切进程至少都有一个执行线程 线程是进程内部的一条执行序列或执行路径 即一个可调度的实体
  • 读书小记--<态度>

    前言 前段时间再读了吴军老师的 态度 分享的是和女儿的日常书信 觉得收获很多 同事推荐他的 浪潮之巅 数学之美 系列书籍 下面是个人的觉得认同或值得深入学习的一些点 特此记录一下 态度决定命运 文中写道撒切尔夫人的一句话 注意你的想法 因为
  • 前端调用高德地图的接口

  • 如何查看linux内核

    这本阿里P8撰写的算法笔记 再次推荐给大家 身边不少朋友学完这本书最后加入大厂 Github 疯传 史上最强悍 阿里大佬 LeetCode刷题手册 开放下载了 如何查看linux内核版本 第一种 登录linux 在终端输入 cat proc
  • 【机器学习】几种常见的概率分布

    之前你已经了解概率的基础知识 如果还不知道概率能干啥 在生活中有哪些应用的例子 可以看我这个 人工智能时代 用概率思维发现人生机会 www zhihu com 今天我们来聊聊几种特殊的概率分布 这个知识目前来看 还没有人令我满意的答案 因为
  • 常用的shell脚本

    1 脚本之间传递参数 1 sh 的脚本 接受参数 如下 如果有一个参数则赋值个sourceFile这个变量 否则用默认值 Shell代码 bin bash LANG en US UTF 8 get parameters sourceFile
  • 关于SSM 项目 tomcat无休止启动的问题记录

    起初很懵逼 然后一想就知道了 可能是刚写的sql除了问题 原sql SELECT FROM A WHERE DATEDIFF add time NOW lt 0 改后sql SELECT FROM tb order WHERE DATEDI
  • SpringCloud Gateway + Nacos 多模块下整合swagger2

    前言 我们经常在springboot单体项目中 集成swagger来整合接口文档 但是在微服务springcloud项目下 业务模块众多 如果再像之前一样单独访问每个模块的 swagger ui html 则非常麻烦 怎么解决呢 既然我们已
  • 本周新出计算机视觉开源代码汇总(语义分割、目标检测、超分辨率、网络结构设计、训练策略等)

    CV君汇总了过去一周计算机视觉领域新出的开源代码 涉及到图像增广 医学图像分割 图像恢复 目标检测 语义分割 超分辨率 显著目标检测 轻量级网络结构设计 网络规范化 标注工具等 其中有多篇来自CVPR 2019与ICML 2019的论文代码
  • COBOL

    一 COBOL简介 COBOL Common Business Oriented Language 面向过程的高级程序设计语言 二 COBOL语法格式 COBOL程序的每行代码通常分为80列 有非标准的80列可以超过80列 写多少列都可以
  • 【1】python爬虫入门,利用bs4以及requests获取静态网页

    注 本文仅适用于爬虫初级入门者 并不涉及太多技术本质 感谢您阅读此文 最近放假在家 闲时无聊 开始入门了python爬虫 可以完成一些基本的数据爬取 对于一些反爬取例如JS渲染 接口加密等页面仍然处于学习之中 本文就是简单总结最近已熟练掌握
  • PHP实现 美化 打赏点 金额 换算

    方法 function PointConversion je jenum strlen je echo substr je 0 1 万 if jenum 5 jv1 substr je 0 1 jv2 je 1 str jv2 0 jv1
  • mysql workbench使用存储过程

    MySQL 使用存储过程 先来了解一下什么是mysql的存储过程 Mysql存储过程是一个可编程的函数 它在数据库中创建并保存 它可以有SQL语句和一些特殊的控制结构组成 当希望在不同的应用程序或平台上执行相同的函数 或者封装特定功能时 存
  • 4.1.5-检查网页内容是否存在信息泄露

    检查网页内容是否存在信息泄露 ID WSTG INFO 05 总结 程序员在他们的源代码中包含详细的注释和元数据是很常见的 甚至建议这样做 但是 HTML 代码中包含的注释和元数据可能会泄露潜在攻击者不应获得的内部信息 应进行注释和元数据审
  • 颠覆行业

    2023年8月21日 一场盛大的签约仪式在拓世科技集团AI数字人全国营运中心隆重举行 拓世科技集团与湖南谋事科技有限责任公司 下称湖南谋事传奇 正式达成战略合作 共同开启数字人短视频项目合作与招商运营的新篇章 此次签约仪式 吸引了众多业界瞩
  • 【华为OD统一考试B卷

    在线OJ 已购买本专栏用户 请私信博主开通账号 在线刷题 运行出现 Runtime Error 0Aborted 请忽略 华为OD统一考试A卷 B卷 新题库说明 2023年5月份 华为官方已经将的 2022 0223Q 1 2 3 4 统一
  • StyleGAN系列学习笔记

    StyleGAN可以无监督地分离高级属性 例如 姿态 身份 和生成图像中的随机变化 例如 雀斑 头发 控制图像不同层次的视觉特征 StyleGAN v1 Figure 1 传统生成器 vs Style based生成器 给定输入latent