热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

Stylegan3editing:未对齐的图像也能反演编辑?

titleThirdTime’stheCharm?ImageandVideoEditingwithStyleGAN3authorYuvalAlalufLink论文地址C

在这里插入图片描述
title

Third Time’s the Charm? Image and Video Editing with StyleGAN3

author

Yuval Alaluf

Link

论文地址

Code

在这里插入图片描述




StyleGAN is arguably one of the most intriguing and well-studied generative models, demonstrating impressive performance in image generation, inversion, and manipulation. In this work, we explore the recent StyleGAN3 architecture, compare it to its predecessor, and investigate its unique advantages, as well as drawbacks. In particular, we demonstrate that while StyleGAN3 can be trained on unaligned data, one can still use aligned data for training, without hindering the ability to generate unaligned imagery. Next, our analysis of the disentanglement of the different latent spaces of StyleGAN3 indicates that the commonly used W/W+ spaces are more entangled than their StyleGAN2 counterparts, underscoring the benefits of using the StyleSpace for fine-grained editing. Considering image inversion, we observe that existing encoder-based techniques struggle when trained on unaligned data. We
therefore propose an encoding scheme trained solely on aligned data, yet can still invert unaligned images. Finally, we introduce a novel video inversion and editing workflow that leverages the capabilities of a fine-tuned StyleGAN3 generator to reduce texture sticking and expand the field of view of the edited video.


作者研究分析了Stylegan3的结构,并与之前的结构进行比较,调查了其独特的优点和缺点。通过实验证明了:虽然Stylegan3可以用未对齐的数据训练,但仍然可以使用对齐的数据训练,而且不会妨碍模型生成未对齐图像的能力。

作者通过在Stylegan3 不同潜空间的解耦分析,发现Stylegan3下的 W/W+ 空间比 Stylegan2 对应的空间更纠缠,由此提出了使用 StyleSpace 进行细粒度编辑的好处。(本文提出的一种潜空间)

作者发现通过未对齐的数据训练编码器时,技术会遇到困难。作者实验发现:即使单独训练对齐数据,仍然可以反转未对齐的图像。最后,作者引入了一种新颖的视频反转和编辑工作流程,它利用finetuned的Stylegan3 生成器的功能来减少纹理粘连并扩展已编辑视频的视野。




Stylegan3结构分析

在这里插入图片描述

在mapping network部分,并无变化,通过全连接网络将初始latent code z ~N(0,1) [512] 转换成w,并加入可学习的latent space W。

与Stylegan2相比,Stylegan3的synthesis network由固定数量的卷积层构成,与输出图像分辨率无关。Stylegan2中的constant 4*4被傅里叶特征(Fourier feat)取代,其中四个参数(sin a , cos a , x , y)通过学习仿射层从w0获取。在剩下的层中,每个wi被送入一个独立的学习仿射层,产生的modulation factors用来调整卷积核权重。

在Stylegan2中,这些仿射层输出所跨越的空间被称为StyleSpace(S空间),本文中我们类似地定义了Stylegan3的S空间。

由于生成图像的平移、旋转是由w0中特定参数控制得到,所以很容易通过一些其他的变换来生成结果。作者提出了一种transformation:
y=G(w;(r,tx,ty))y = G(w;(r,t_{x},t_y)) y=G(w;(r,tx,ty))
它甚至可以应到到仅由aligned data训练的生成器中,使其可以生成平移或旋转的图像。

而相对的,在unaligned data训练的生成器,可以将w0设置成平均latent code w,来强制生成大致对齐的图像。作者认为这可能由于以下原因:(1)训练的数据分布中平均姿态大致对齐和居中(2)Stylegan3中的平移和旋转变换主要由第一层控制,而Stylegan3设计的核心是等方差性:早期层的平移或旋转会被保留,然后在结果中才出现。(所以才会大致对齐)


Analysis


Rotation Control

作者进行了一系列实验,发现只改变w1时,会影响最终生成的图像的旋转情况,而当固定w0和w1时,最终生成的图像都具有相同的头部姿势。因此作者认为平移和旋转主要有w0和w1控制,后续层不会进一步影响。


Disentanglement Analysis

作者同样进行了一些实验,发现了在Stylegan3中S空间更加解纠缠。

在这里插入图片描述


Image Editing


作者实验了在不同潜空间编辑的效果(w / w+ / s)


在w空间,作者使用Interfacegan来寻找linear directions,对于aligned数据,编辑过程和Stylegan2很类似,而对于unaligned数据,作者提出了两种方法:

(1)使用在aligned数据上预训练的属性分类器来寻找unaligned数据属性的directions,但这样会存在一些问题,比如分类器在unaligned数据上得分可能不准确,导致生成的directions没效果,同时如果使用unaligned生成器,可能会需要很多独立的directions集合。

(2)使用aligned生成器来生成数据,然后使用一些用户定义的transformations来完成平移和旋转。

实验发现:(1)通过在aligned数据训练的分类器,在unaligned数据中分类分数不够准确,导致伪对齐的图像始终处于域外(2)编辑线性空间方向很难解纠缠

在w+空间,之前的一些工作证明了在w+空间非线性编辑会产生更加真实、令人信服的解纠缠的图像,作者使用了StyleClip进行实验,发现在Stylegan3中表现不好,仍然无法很好的解纠缠。

在这里插入图片描述

在这里插入图片描述

基于以上原因,作者开始探索S空间,并发现S空间相较于W、W+空间解纠缠。

在这里插入图片描述


Stylegan3 Inversion


Designing the Encoder Network

为了能够encoding aligned and unaligned数据,反演策略必须支持这两种输入类型。

如何encoding unaligned images?

作者选择利用在aligned data上训练的生成器来设计一个仅在aligned data上训练的encoder。如上文所示,这种方案可用于编辑和生成aligned and unaligned图像。而且,利用这种方案,编码器不需要正确捕获unaligned image的高度和姿势,简化了训练目标,使其可以专注于捕获输入身份和其他图像特征。

给定一个通过aligned images训练的encoder,如何扩展它使其能够encoding和editing unaligned images?假设给定一张xunalignedx_{unaligned}xunaligned,计算它和 xalignedx_{aligned}xaligned的平移旋转差异,生成(r,tx,ty)(r,t_{x},t_{y})(r,tx,ty),最终反演方案:
waligned=E(xaligned)yunaligned=G(Waligned;r(r,tx,ty))w_{aligned} = E(x_{aligned})\\ y_{unaligned} = G(W_{aligned};r(r,t_{x},t_{y})) waligned=E(xaligned)yunaligned=G(Waligned;r(r,tx,ty))


Inverting Images into StyleGAN3

作者使用了如上的反演方案来测试对比,encoder选用了RestylepspRestyle_{psp}RestylepspRestylee4eRestyle_{e4e}Restylee4e

在这里插入图片描述

定性评价 Stylegan3 encoder和Stylegan2 encoder视觉上对应,而且Stylegan3可以忠实的再现输入位置。

定量评价 除了推理时间,加入了ID、L2距离等来做评价。Stylegan3 encoder的性能稍差。

通过潜在空间操作的可编辑性

Restyle_e4e encoder实现了真实而有意义的编辑,同时保留了输入身份,相较于Restyle_psp,重建质量更高。两者在Stylegan3之间的差距比Stylegan2要大。(观察第二行最后,psp会产生很大的伪影)

在这里插入图片描述


Inverting and Editing Videos

这一块不作描述,感兴趣的话可以阅读论文。

在这里插入图片描述


推荐阅读
  • 自动轮播,反转播放的ViewPagerAdapter的使用方法和效果展示
    本文介绍了如何使用自动轮播、反转播放的ViewPagerAdapter,并展示了其效果。该ViewPagerAdapter支持无限循环、触摸暂停、切换缩放等功能。同时提供了使用GIF.gif的示例和github地址。通过LoopFragmentPagerAdapter类的getActualCount、getActualItem和getActualPagerTitle方法可以实现自定义的循环效果和标题展示。 ... [详细]
  • 前景:当UI一个查询条件为多项选择,或录入多个条件的时候,比如查询所有名称里面包含以下动态条件,需要模糊查询里面每一项时比如是这样一个数组条件:newstring[]{兴业银行, ... [详细]
  • 本文讨论了clone的fork与pthread_create创建线程的不同之处。进程是一个指令执行流及其执行环境,其执行环境是一个系统资源的集合。在调用系统调用fork创建一个进程时,子进程只是完全复制父进程的资源,这样得到的子进程独立于父进程,具有良好的并发性。但是二者之间的通讯需要通过专门的通讯机制,另外通过fork创建子进程系统开销很大。因此,在某些情况下,使用clone或pthread_create创建线程可能更加高效。 ... [详细]
  • 本博文基于《Amalgamationofproteinsequence,structureandtextualinformationforimprovingprote ... [详细]
  • Iamtryingtomakeaclassthatwillreadatextfileofnamesintoanarray,thenreturnthatarra ... [详细]
  • 在Android开发中,使用Picasso库可以实现对网络图片的等比例缩放。本文介绍了使用Picasso库进行图片缩放的方法,并提供了具体的代码实现。通过获取图片的宽高,计算目标宽度和高度,并创建新图实现等比例缩放。 ... [详细]
  • 向QTextEdit拖放文件的方法及实现步骤
    本文介绍了在使用QTextEdit时如何实现拖放文件的功能,包括相关的方法和实现步骤。通过重写dragEnterEvent和dropEvent函数,并结合QMimeData和QUrl等类,可以轻松实现向QTextEdit拖放文件的功能。详细的代码实现和说明可以参考本文提供的示例代码。 ... [详细]
  • android listview OnItemClickListener失效原因
    最近在做listview时发现OnItemClickListener失效的问题,经过查找发现是因为button的原因。不仅listitem中存在button会影响OnItemClickListener事件的失效,还会导致单击后listview每个item的背景改变,使得item中的所有有关焦点的事件都失效。本文给出了一个范例来说明这种情况,并提供了解决方法。 ... [详细]
  • Spring特性实现接口多类的动态调用详解
    本文详细介绍了如何使用Spring特性实现接口多类的动态调用。通过对Spring IoC容器的基础类BeanFactory和ApplicationContext的介绍,以及getBeansOfType方法的应用,解决了在实际工作中遇到的接口及多个实现类的问题。同时,文章还提到了SPI使用的不便之处,并介绍了借助ApplicationContext实现需求的方法。阅读本文,你将了解到Spring特性的实现原理和实际应用方式。 ... [详细]
  • eclipse学习(第三章:ssh中的Hibernate)——11.Hibernate的缓存(2级缓存,get和load)
    本文介绍了eclipse学习中的第三章内容,主要讲解了ssh中的Hibernate的缓存,包括2级缓存和get方法、load方法的区别。文章还涉及了项目实践和相关知识点的讲解。 ... [详细]
  • 本文讨论了一个关于cuowu类的问题,作者在使用cuowu类时遇到了错误提示和使用AdjustmentListener的问题。文章提供了16个解决方案,并给出了两个可能导致错误的原因。 ... [详细]
  • XML介绍与使用的概述及标签规则
    本文介绍了XML的基本概念和用途,包括XML的可扩展性和标签的自定义特性。同时还详细解释了XML标签的规则,包括标签的尖括号和合法标识符的组成,标签必须成对出现的原则以及特殊标签的使用方法。通过本文的阅读,读者可以对XML的基本知识有一个全面的了解。 ... [详细]
  • FeatureRequestIsyourfeaturerequestrelatedtoaproblem?Please ... [详细]
  • 本文介绍了Android 7的学习笔记总结,包括最新的移动架构视频、大厂安卓面试真题和项目实战源码讲义。同时还分享了开源的完整内容,并提醒读者在使用FileProvider适配时要注意不同模块的AndroidManfiest.xml中配置的xml文件名必须不同,否则会出现问题。 ... [详细]
  • Java学习笔记之面向对象编程(OOP)
    本文介绍了Java学习笔记中的面向对象编程(OOP)内容,包括OOP的三大特性(封装、继承、多态)和五大原则(单一职责原则、开放封闭原则、里式替换原则、依赖倒置原则)。通过学习OOP,可以提高代码复用性、拓展性和安全性。 ... [详细]
author-avatar
用心对待2502862725
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有