论文解读StyleGAN系列——StyleGANv3

论文:Alias-Free Generative Adversarial Networks(2021.06)
作者:Tero Karras, Miika Aittala, Samuli Laine, Erik Härkönen, Janne Hellsten, Jaakko Lehtinen, Timo Aila
链接:https://arxiv.org/abs/2106.12423
代码:https://nvlabs.github.io/stylegan3


其他StyleGAN系列论文解读:
PGGAN、StyleGANv1、StyleGANv2、StyleGANv3


文章目录

  • 1、算法概述
  • 2、背景知识
  • 3、StyleGANv3细节
    • 3.1 Fourier features and baseline simplifications (configs B-D)
    • 3.2 Step-by-step redesign motivated by continuous interpretation
  • 4、实验


1、算法概述

作者发现stylegan2及以前的生成网络生成的图片,都有像素粘连现象,即某些区域像素严重依赖上一层或者周边像素。这种现象在生成图片中表现为,例如,细节似乎粘在图像坐标上,而不是被描绘物体的表面。这种问题其实是gan网络一个普遍存在的问题,即粗糙特征(GAN的浅层网络的输出特征)主要控制了精细特征(GAN的深层网络的输出特征)的存在与否,并没有精细控制它们的出现的精确位置。


2、背景知识

在现实世界中,不同尺度的细节往往会发生层次上的转换。例如,移动头部会导致鼻子移动,鼻子上的皮肤毛孔也会随之移动。典型GAN发生器的结构与此类似:通过上采样层对粗糙的低分辨率特征进行分层细化,通过卷积进行局部混合,并通过非线性引入新的细节。但是作者观察到,尽管存在这种表面上的相似性,但当前的GAN架构并没有以自然的分层方式合成图像,相反,很多细节似乎都是固定在像素坐标上的。这种“纹理粘滞”现象在潜在的插值中清晰可见。如下图所示:
在这里插入图片描述
作者从连续信号采样定理出发讨论如何从离散信号恢复出连续信号的角度(连续信号的等变性)过渡到探讨网络层的连续表示和离散表示,进一步认为产生这种像素粘连现象的原因在于目前的生成器网络结构中所采用的卷积+激活+上采样等结构引起的,而这样的结构无法做到有效的等变性。


3、StyleGANv3细节

下图是stylegan3基于stylegan2的基础上一步步改进的实验结果:
在这里插入图片描述

3.1 Fourier features and baseline simplifications (configs B-D)

为了方便输入z0的精确连续平移和旋转,作者用傅里叶特征替换StyleGAN2中学习到的输入常数。
其次,作者删除了每个像素的噪声输入,因为它们与自然变换层次结构的目标非常不一致,即每个特征的精确亚像素位置完全继承自底层的粗特征。第三,作者减小映射网络(mapping network)深度,并禁用混合正则化和路径长度正则化,而且还去掉了输出跳过连接。

3.2 Step-by-step redesign motivated by continuous interpretation

  • Boundaries and upsampling (config E)
    作者的理论假设特征映射的空间范围是无限的,通过在目标画布周围保持固定大小的边距来近似,在每层之后裁剪到这个扩展的画布上。这种显式扩展是必要的,因为已知边界填充会将绝对图像坐标泄漏到内部表示中。在实践中,作者发现只需向外扩展10个像素的边框就足够了,进一步增加对结果没有明显影响。对于上采样操作,作者用理想低通滤波器来代替双线性上采样。
    改进后的boundaries和upsampling得到了更好的平移不变性,但是FID变差了。
  • Filtered nonlinearities (config F)
    这是一个工程上的优化,对于网络中的非线性滤波,比如leaky ReLU或者其他激活函数,这些是存在于m倍上采样和m倍下采样之间的操作,可以合并在一起,但是使用深度学习框架自带的语句,执行效率不高,所以作者实现了一个自定义CUDA内核合并了这些操作(图4b),这直接带来了10倍的训练速度和可观的内存节省。
    在这里插入图片描述
  • Non-critical sampling (config G)
    为了抑制像素粘连现象,作者简单地将截止频率降低,从而确保所有混叠频率都在阻带,作者认为高频细节确实重要,但只仅仅在高分辨率下才是,对于低分辨率下(浅层),可以丢掉高频细节,因为作者认为浅层中高频细节并不重要。
  • Transformed Fourier features (config H)
    为了应对每层的全局变换能力有限的问题,作者引入一个可学习的仿射层,该层输出输入傅里叶特征的全局平移和旋转参数(图4b)。该层初始化以执行恒等变换,但随着时间的推移,在有益的情况下学习使用该机制。在配置H中,这稍微改善了FID。
  • Flexible layer specifications (config T)
    虽然提高了平移不变性,但是一些可见的伪影仍然存在。这是因为滤波器的衰减对于最低分辨率的层来说仍然是不够的,而这些层往往在其带宽限制附近有丰富的频率信息,这就需要有非常强的衰减来完全消除混叠。跳频在最低分辨率层中较高,以最大化提高阻带的衰减;在最高分辨率层中较低,以允许匹配训练数据的高频细节。
  • Rotation equivariance (config R)
    为了使网络获得旋转不变性的能力,作者采用了两个改进方式:
    1、 将所有层上的3×3卷积替换为1×1,并通过将特征映射的数量增加一倍来补偿减少的容量。在这个配置中,只有上采样和下采样操作在像素之间传播信息。
    2、 将基于sinc的下采样滤波器替换为使用相同Kaiser方案构建的基于径向对称jinc的下采样滤波器。
    这些改进在不损害FID的情况下改善了EQ-R,而且每层的可训练参数减少了56%。

4、实验

作者在6个数据集上给出了stylegan2和stylegan3-T,stylegan3-R的结果,结果表明作者所提的stylegan3相比于stylegan2在FID评估标准下还是具有很大的竞争力的,而stylegan3-T和stylegan3-R在FID上表现差不多,都表现出很好的平移不变性。
在这里插入图片描述
消融实验:略

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

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

相关文章

计算两个经纬度之间的球面距离(基于Mysql和PHP实现)

计算两个经纬度之间的球面距离 1、MySQL实现方式 - 基于空间函数(ST_Distance_Sphere)实现 前置条件:确保您使用的是 MySQL 8.0 或更高版本,因为较早的版本对地理空间的支持有限。 1.1 创建表和索引 说明:设置 location 为 point 类型 #…

驭码CodeRider将亮相世界人工智能大会,AI 产品、重磅分享,真的很City!

GitLab 是一个全球知名的一体化 DevOps 平台,很多人都通过私有化部署 GitLab 来进行源代码托管。极狐GitLab :https://gitlab.cn/install?channelcontent&utm_sourcecsdn 是 GitLab 在中国的发行版,专门为中国程序员服务。可以一键式部署…

Redis 中 Set 和 Zset 类型

目录 1.Set类型 1.1 Set集合 1.2 普通命令 1.3 集合操作 1.4 内部编码 1.5 使用场景 2.Zset类型 2.1 Zset有序集合 2.2 普通命令 2.3 集合间操作 2.4 内部编码 2.5 使用场景 1.Set类型 1.1 Set集合 集合类型也是保存多个字符串类型的元素,但是和列表类型不同的是&…

LVS+Keepalived 实现高可用负载均衡

前言 在业务量达到一定量的时候,往往单机的服务是会出现瓶颈的。此时最常见的方式就是通过负载均衡来进行横向扩展。其中我们最常用的软件就是 Nginx。通过其反向代理的能力能够轻松实现负载均衡,当有服务出现异常,也能够自动剔除。但是负载…

基于Redisson实现分布式锁

基于redisson实现分布式锁 之前背过分布式锁几种实现方案的八股文,但是并没有真正自己实操过。现在对AOP有了更深一点的理解,就自己来实现一遍。 1、分布式锁的基础知识 分布式锁是相对于普通的锁的。普通的锁在具体的方法层面去锁,单体应…

搜维尔科技:详谈ART的工具追踪技术

您的生产流程中是否已经受益于刀具跟踪系统?您是否意识到它们的价值?因为它们可以优化您的装配顺序,从而节省您的时间和金钱。 目前我们提供两种工具跟踪解决方案: 1.ART与 VERPOSE的解决方案——易于使用的图像识别 安装在工…

探索智能合约在医疗健康领域的革新应用

随着区块链技术的发展,智能合约作为其重要应用之一,在医疗健康领域展示了巨大的潜力和革新性。智能合约是一种基于区块链的自动化执行协议,它可以在无需中介的情况下执行和验证合同。在医疗健康领域,智能合约不仅简化了数据管理和…

房屋租赁管理小程序的设计

管理员账户功能包括:系统首页,个人中心,用户管理,中介管理,房屋信息管理,房屋类型管理,租房订单管理,租房信息管理 微信端账号功能包括:系统首页,房屋信息&a…

ctfshow-web入门-命令执行(web66-web70)

目录 1、web66 2、web67 3、web68 4、web69 5、web70 1、web66 show_source 被禁用 highlight_file 发现 flag 不在 flag.php 里面 先使用 scandir() 进行目录扫描: cprint_r(scandir("./")); 当前目录下只有 index.php 和 flag.php 扫一下根目…

图书商城系统java项目ssm项目jsp项目java课程设计java毕业设计

文章目录 图书商城系统一、项目演示二、项目介绍三、部分功能截图四、部分代码展示五、底部获取项目源码(9.9¥带走) 图书商城系统 一、项目演示 图书商城系统 二、项目介绍 语言: Java 数据库:MySQL 技术栈:SpringS…

「ETL趋势」FDL定时任务区分开发/生产模式、API输入输出支持自定义响应解析

FineDataLink作为一款市场上的顶尖ETL工具,集实时数据同步、ELT/ETL数据处理、数据服务和系统管理于一体的数据集成工具,进行了新的维护迭代。本文把FDL4.1.7最新功能作了介绍,方便大家对比:(产品更新详情:…

spark shuffle——shuffle管理

ShuffleManager shuffle系统的入口。ShuffleManager在driver和executor中的sparkEnv中创建。在driver中注册shuffle,在executor中读取和写入数据。 registerShuffle:注册shuffle,返回shuffleHandle unregisterShuffle:移除shuff…

LED显示屏跟COB显示屏有哪些不同?

COB显示屏跟LED显示屏的主要区别在于产品的显示效果、封装技术、耐用性、防护力、维护以及制造成本方面的不同,这里所说的LED显示屏主要指的是使用SMD封装的LED显示屏,今天跟随COB显示屏厂家中品瑞科技一起来详细看看具体分析: 一、封装技术 …

视图库对接系列(GA-T 1400)九、视图库对接系列(本级)机动车数据推送

背景 在上几章中,我们已经可以将视图库的平台写到我们的数据库中了。 换句话说就已经接入我们的平台了,这几期的话,我们就对接设备, 将设备的数据接入到我们平台来。 机动车数据推送 接入机动车数据推送相对比较简单,我们只需要实现对应的接口就ok了。 具体如图: 有增…

77. UE5 RPG 创建角色的技能栏

在前面的文章里,我们实现了角色属性技能和场景。接下来,我们要优化角色显示UI,在屏幕底部显示角色血量,蓝量,技能和经验值。 创建新的用户控件 选择创建新的控件蓝图 父类为我们自定义的RPGUserWidget,这…

这样拼板帮你省近万元,堪称PCB工程师成本终结者!

别再被骗了,打PCB板价格高不是单价高!而是你的拼板导致利用率太低了! 今天给大家讲个小故事,教大家如何省钱...... 一个爽朗的晴天,我听闻同事说有客户对他吐槽打板子价格太高,说着说着就开始吹起了牛逼...…

【论文阅读】VASA-1: Lifelike Audio-Driven Talking FacesGenerated in Real Time

整体框架。不直接生成视频帧,而是在潜在空间中生成整体面部动态和头部运动,条件是音频和其他信号。给定这些运动潜在编码,通过面部解码器生成视频帧,还接受从输入图像中提取的外观和身份特征作为输入。 构建了一个面部潜在空间并…

【C#】ProgressBar进度条异步编程思想

1.控件介绍 进度条通常用于显示代码的执行进程进度,在一些复杂功能交互体验时告知用户进程还在继续。 在属性栏中,有三个值常用: Value表示当前值,Minimum表示进度条范围下限,Maximum表示进度条范围上限。 2.简单实…

【网络安全】第8讲 网络安全协议(笔记)

一、网络安全协议概述 1、协议 是指两个或多个以上参与者为完成某项特定的任务而采取的一系列步骤。 2、网络协议 是指计算机网络中通信各方关于如何进行数据交换所达成的一致性规则、标准或约定的集合,即由参与通信的各方按确定的步骤做出一系列通信动作&#xff…

Linux系统安装青龙面板结合内网穿透实现使用公网地址远程访问

文章目录 前言一、前期准备本教程环境为:Centos7,可以跑Docker的系统都可以使用。本教程使用Docker部署青龙,如何安装Docker详见: 二、安装青龙面板三、映射本地部署的青龙面板至公网四、使用固定公网地址访问本地部署的青龙面板 …