StyleGAN3论文解读 - 知乎好久没写论文解读了,今天写个最近大火的模型”StyleGAN3“,论文很长,我挑重点整理总结一下 :) 本文的出发点:作者们在本文探索并尝试解决生成模型(GAN)的一个普遍问题: 生成的过程并不是一个自然的层次化生…
文章图片
https://zhuanlan.zhihu.com/p/425791703
StyleGAN3(Alias-Free Generative Adversarial Networks)阅读笔记 - 知乎来源: nips2021 作者:Nvidia 链接: https://arxiv.org/abs/2106.124231 动机1) 目前的GAN结构不能以一种自然的分层方式合成图像:粗特征主要控制细特征的存在,但不能控制它们的精确位置;
2) 目前的网络可以通过…
文章图片
https://zhuanlan.zhihu.com/p/455784710【论文解析】StyleGAN3 - Alias-Free Generative Adversarial Networks_门被核桃夹了还能补脑嘛的博客-CSDN博客_stylegan3论文StyleGAN3: Alias-Free Generative Adversarial Networks???? PDF Link ???? GitHub CodeSection 1 介绍由GAN生成的图像的分辨率和质量的改善使得图像越来越真实,被广泛的应用于图像编辑,风格领域转换以及视频生成。虽然已经发现了几种控制生成过程的方法,但合成过程的基本原理仍然半知半解。在现实世界中,不同尺度的细节往往是层次化的。例如,移动头部会导致鼻子移动,而鼻子上的皮肤毛孔也会随之移动。传统生成器的结构也是类似这https://blog.csdn.net/weixin_38443388/article/details/121050462这篇新版的StyleGAN3从信号处理的理论角度重新审视了生成模型框架,并提供了一种全新的生成模型设计方案来赋予网络Equivariance(等变性)。我感觉有利有弊,利在于这种全新的生成器框架能够给人启发,从信号的角度思考神经网络的设计,并且该模型惊艳的效果也很可能催生许多有意思的应用;弊端在于整个模型的设计太过复杂和手工,有种回到深度学习时代之前的错觉,难以follow。我认为StyleGAN3提出了一种解决生成网络没有很好Equivariance问题的方法,但这绝不是唯一的解决方案,相信之后会有更"优雅"的方法出现。
stylegan3主要对gan中对分层控制手段提出了新解,分层的结构,粗糙层通过上采样和噪声控制了精细的图层,但是它只能控制精细图层的存在与否,他没法控制细微图层的位置,可能会导致人脸已经转动了,而鼻子仍然停留在原来的位置。作者认为导致这种现象产生的原因是因为现在的一些深度神经网络,可以通过使用中间层隐含的一些位置信息,一定程度上打破原本的分层结构,这些位置信息可能来自于图像的边界信息、逐像素点的噪声引入、位置编码和混叠,而混叠来自于双线性、最近邻等上采样方法和非线性激活。因此,作者认为其他因素都可以通过一定的手段解决,但是混叠很难消除,因此作者将问题转换为如何消除混叠,并试图从频域角度解决这一问题,来实现细微特征平移和旋转的等变性。说白了就是这些位置信息不能在特征提取和上采样等生成器的滤波器中消失,要保证它原来的信息的完整性。
stylegan走了一个历程,就是在gan将图像生成从粗糙做到精细,从不可控做到可控,提出了衡量的度量,给出了一个具体的路径,当然gan在精细化上不如扩散模型,但是stylegan在模型架构和设计上探索出了一条路。不过在自由度比较高的数据上,gan还是差了很多。之前看到mmlab的一个分享higan,讲gan在语义高层上的生成,bottom layers控制layout,lower layers控制categorical objects,upper layers控制scene attributes,top layers控制color scheme,这个还是很有启发性质的,在创意领域,其实每一个维度的改变都可以对应一个具体的任务,或者说一个业务方向,gan最大的问题是生成的东西不精细,没法用,本来投图就不便宜,弄了四不像图上去,不能太扯了。
1.introduction
在现实世界中,不同尺度的细节往往是层次化的,例如,移动头部会导致鼻子移动,而鼻子上的皮肤毛孔也会随之移动。传统生成器的结构也是类似这种层次化结构的,粗糙,低分辨率的浅层特征通过上采样,逐层逐层的细化,通过卷积来实现各个特征图之间的局部混合,并利用非线性产生一些额外的细节信息。应该是添加的噪声影响头发,皱纹和肤色之类的。尽管gan已经形成了这种层次化结构,但当前的gan在图像生成时并没有以自然的层次方式合成图像:粗糙特征主要控制了精细特征的存在,而不是他们精细的位置,相反,许多细节似乎是固定的像素坐标,(这里的意思应该是当在做上采样的时候像素几乎是一对多匹配的,这就是这里提到的粗特征控制了精细特征的精确位置)。如图1所示,这种糟糕的“纹理粘附”在latent值变换的时候很明显,这种现象实际上与我们对于物体或者连续物体在空间中移动的原有印象有很大的出入。我们的目标是实现一个能够更贴合层次化变化更自然的一种对应的层次化结构,其中每个特征的精确亚像素位置都是专有继承自底层的粗特征(解决像素的依赖性粘连问题,使得每一个像素的都是独立存的意思)。
文章图片
上图就是texture sticking(纹理粘连)的例子。左侧:从center latent中的一个临近区域采样的图像的均值(顶行), 预期的结果是一致模糊的,因为所有细节都应该一起移动。 然而,使用 StyleGAN2,许多细节(例如,毛皮)坚持相同的像素坐标,第二行中,stylegan的图像明显更加的锐化。
事实表明,目前的网络结构可以有很多的技巧手段来绕过这种理想的层次结构进行图像生成。例如使用图像边界参考(例如padding的使用实际上提示了图像的边界位置信息)、像素的噪声输入(防止头发丝粘一起)、位置编码和混叠(加入一些额外的位置信息)。aliasing混叠,是gan的一个重要问题,有两个可能的来源,1.非理想上采样(最近邻,双线性,空洞卷积)产生的像素网络faint after-images.2.pointwise的非线性激活,如relu或swish。我们发现网络会去放大哪怕是最轻微的混叠,并在多个尺度上进行组合,这就成为了固定在图像坐标中的那些混叠状网格的基础。
我们首先注意到,混叠在经典的香农-奈奎斯特信号处理框架中能够得到最自然的处理,并将焦点切换到仅由离散样本网格表示的连续域上的带限函数,成功消除位置参考的所有来源意味着,无论像素坐标如何变换(应该就是对应latent编码的变换),细节都可以同样好地生成,这又相当于对所有层中的对亚像素实现平移(或是旋转)连续同变性。为此,我们尝试对StyleGAN2生成器的信号处理部分进行了一遍全面更新。
我们的贡献包括:
1.我们很惊讶的发现当前的上采样滤波器,在抗混叠方面不够aggressive,并且需要衰减超过100分贝的极高质量滤波器。
2.此外,通过考虑它们(指前面的第二点,逐点的非线性激活)在连续域中的影响并对结果进行适当的低通滤波,我们给出了逐点非线性引起的混叠的原则性解决方案。
最后,基于1×1卷积的模型经过修理后,生成了一个鲁棒的,旋转等变性的生成器。
一旦有效地抑制了混叠使得模型能够实现更自然的分层细化,其操作模式就会发生巨大变化:新添加的内部表征就会包含坐标系统使得细节能够正确的被匹配到表面上。
2.equivariance via continuous singal interpretation
作者们主要从信号处理中的核心问题:信号的采样,来解释Equivariance过程。涉及到采样定理、Whittaker—Shannon差值定理等,然后Equivariance过程涉及到平移和旋转两大类。这部分作者的一个核心观点是:不要将网络中逐点的离散特征看作信号,它们只是连续信号的采样。然后作者们从连续信号的角度逐步解释生成模型中的卷积、非线性激活、上采样等操作该如何改进才能使得网络是Equivariance的。总而言之,这部分作者们从理论上证明了是可以通过一些改进方法使得现有的生成器网络结构能够实现Equivariance。
3.practical application to generator network
文章图片
【电商算法与创意生成|stylegan3(alias-free generative adversarial networks)】 上面是改进之后的网络结构图,至于细节,可以看我上面分享的csdn的内容,内容非常多且细。
推荐阅读
- 深度学习|Two-Stream Consensus Network论文阅读
- 人工智能|人工智能领域技术,主要包含了哪些核心技术()
- 免授权采集的网关 5G网关机床数据采集网关CNC采集网关数采网关带云平台的网关无纸化车间网关机加工网关
- vscode|github copilot |AI写代码vscode安装教程以及一些使用感想
- python|GitHub原生AI代码生成工具Copilot,官方支持Visual Studio 2022
- 人工智能|可耻!爆火的编程神器GitHub Copilot抄袭实锤(背后问题引人深思 ....)
- 深度学习知识总结|交叉熵函数
- python-opencv|7.python-opencv图像张贴
- python-opencv|python-opencv边缘检测