论文学习 StarGANv2 ——StarGAN v2: Diverse Image Synthesis for Multiple Domains

多领域不同图像合成

We have made dataset available at https://github.com/clovaai/stargan-v2.

摘要:

一个好的图像到图像转换模型应该学习不同视觉域之间的映射,同时满足以下属性:

1)生成图像的多样性

2)在多个域上的可扩展性。

现有的方法解决了这两个问题,具有有限的多样性 或者对于所有域有多个模型。

我们提出了StarGAN v2,这是一个解决这两个问题的单个框架,并且在基线上显示出显着改善的结果。在CelebAHQ和一个新的动物面部数据集(AFHQ)上的实验验证了我们在视觉质量、多样性和可扩展性方面的优势。为了更好地评估图像到图像的翻译模型,我们发布了AFHQ,具有较大域间和域内差异的高质量动物面孔。代码、预训练模型和数据集可在clovaai/stargan-v2上获得。

1. Introduction

图像到图像的转换旨在学习不同视觉域之间的映射[20]。在这里,域意味着一组图像,这些图像可以被分组为一个视觉上独特的类别,每个图像都有一个独特的外观,我们称之为风格。例如,我们可以根据一个人的性别设置图像域,在这种情况下,风格包括化妆、胡须和发型(图1的上半部分)。理想的图像到图像翻译方法应该能够综合考虑每个域中不同风格的图像。然而,设计和学习这样的模型变得复杂,因为数据集中可能有任意大量的风格和域。

  为了解决风格多样性问题,人们开展了大量图像到图像翻译的研究[1,16,34,28,38,54]。这些方法向生成器注入一个低维的潜在代码,该代码可以从标准高斯分布中随机采样。它们的域特定解码器在生成图像时将潜在代码解释为各种风格的配方(domain-specific decoders)。然而,由于这些方法只考虑了两个域之间的映射,因此它们不能扩展到越来越多的域。例如,如果有K个域,这些方法需要训练K(K-1)个生成器来处理每个域和每个域之间的转换,这限制了它们的实际使用。为了解决可扩展性问题,一些研究提出了一个统一的框架[2,7,17,30]。StarGAN[7]是最早的模型之一,它使用单个生成器学习所有可用域之间的映射。该生成器将域标签作为附加输入,并学习将图像转换为相应的域。然而,StarGAN仍然学习每个域的确定性映射,这并没有捕捉到数据分布的多模态性质。这种限制来自于这样一个事实,即每个域都由预先确定的标签表示。请注意,生成器接收一个固定的标签(例如一个热向量)作为输入,因此它不可避免地在给定源图像的每个域产生相同的输出,为了两全其美,我们提出了StarGAN v2,这是一种可扩展的方法,可以在多个领域生成不同的图像。特别是,我们从StarGAN开始,用我们提出的可以表示特定领域的各种风格的特定领域样式代码domain specific style code替换其领域标签domain label

  为此,我们介绍了映射网络和样式编码器两个模块(a mapping network and a style encoder)。映射网络学习将随机高斯噪声转换为样式编码,而编码器学习从给定的参考图像中提取样式编码。考虑到多个领域,两个模块都有多个输出分支,每个分支都为特定领域提供样式代码。最后,利用这些样式代码,我们的生成器学会了在多个域中成功地合成不同的图像(图1)。

       我们首先研究了 StarGAN v2 的各个组件的影响,并表明我们的模型确实受益于使用样式代码(第 3.1 节)。我们凭经验证明,与领先的方法相比,我们提出的方法可以扩展到多个领域,并在视觉质量和多样性方面提供了明显更好的结果(第 3.2 节)。最后但并非最不重要的一点是,我们提出了一个新的动物人脸数据集(AFHQ),具有高质量和广泛变化(附录 A),以更好地评估图像到图像转换模型在大的域间和域内差异上的性能。我们公开发布此数据集供研究界公开  

2. StarGAN v2

在本节中,我们将描述我们提出的框架及其训练目标函数。

2.1. Proposed framework

设X和Y分别为图像和可能域的集合。给定一个图像 x ∈ X 和一个任意域 y ∈ Y,我们的目标是训练一个生成器 G,它可以生成对应于图像 x 的每个域 y 的不同图像。我们在每个域的学习风格空间中生成特定领域的风格向量domain-specific style vectors,并训练 G 以反映风格向量。图 2 说明了我们框架的概述,它由下面描述的四个模块组成。

生成器(图 2a)。我们的生成器 G 将输入图像 x 转换为输出图像 G(x, s),反映特定领域的样式代码 s,由映射网络 F 或样式编码器 E 提供。我们使用自适应实例归一化 (AdaIN) [15, 22] 将 s 注入 G。我们观察到 s 旨在表示特定领域 y 的风格,这消除了为 G 提供 y 的必要性,并允许 G 合成所有域的图像。

映射网络(图 2b)。给定一个潜在代码 z 和一个域 y,我们的映射网络 F 生成一个样式代码 = Fy (z),其中 Fy (·) 表示对应于域 y 的 F 的输出。F 由具有多个输出分支的 MLP 组成,为所有可用域提供样式代码。F 可以通过随机采样潜在向量 z ∈ Z 和域 y ∈ Y 来产生不同的样式代码。我们的多任务架构允许 F 有效且有效地学习所有域的样式表示。

样式编码器(图 2c)。给定一个图像 x 及其对应的域 y,我们的编码器 E 提取 x 的样式代码 = Ey (x)。这里,Ey (·) 表示对应于域 y 的 E 的输出。与 F 类似,我们的风格编码器受益于多任务学习设置。E 可以使用不同的参考图像产生不同的样式代码。这允许 G 合成反映参考图像 x 样式的输出图像。

判别器(图 2d)。我们的鉴别器 D 是一个多任务鉴别器 [30, 35],它由多个输出分支组成。每个分支 Dy 学习二元分类,确定图像 x 是其域 y 的真实图像还是 G 生成的假图像 G(x, s)。

2.2. Training objectives

给定一个图像 x ∈ X 及其原始域 y ∈ Y,我们使用以下目标训练我们的框架。

Adversarial objective.对抗性目标。在训练期间,我们随机抽取潜在代码 z ∈ Z 和目标域 ̃y ∈ Y,生成目标风格编码s = F ̃y (z). 生成器 G 将图像 x 和 ̃s 作为输入,并通过对抗性损失学习生成输出图像 G(x, ̃s) 

其中 Dy (·) 表示对应于域 y 的 D 的输出。映射网络F学习提供目标y中可能出现的样式代码s,G学习利用s并生成与域y真实图像无法区分的图像G(x,s)

Style reconstruction.风格重建。为了强制生成器G在生成图像G(x,s)时利用样式代s,我们采用了样式重建损失

这个目标类似于以前的方法 [16, 54],它使用多个编码器来学习从图像到其潜在代码的映射。显着差异是我们训练一个编码器 E 来鼓励多个领域的不同输出。在测试时,我们学习的编码器 E使 G 转换输入图像,反映图像图像的风格。

Style diversification.为了进一步使生成器G产生不同的图像,我们用多样性敏感损失[34,48]显式地正则化G

其中目标样式代码 ̃s1 和 ̃s2 由 F 产生,条件是两个随机潜在代码 z1 和 z2  ̃si = F ̃y (zi) 对于 i ∈ {1, 2})。最大化正则化项迫使 G 探索图像空间并发现有意义的样式特征来生成不同的图像。请注意,在原始形式中,分母中‖z1−z2‖1的微小差异显著增加了损失,这使得训练由于梯度较大而不稳定。因此,我们删除了分母部分,并设计了一个新的方程来稳定训练,但具有相同的直觉。

Preserving source characteristics.保留源特性。为了保证生成的图像G(x,̃s)正确地保留了其输入图像x的域不变特征(例如姿势),我们采用了循环一致性损失[7,24,53]

 其中 ^s = Ey (x) 是输入图像 x 的估计样式代码,y 是 x 的原始域。通过鼓励生成器 G 使用估计的样式代码 ^s 重建输入图像 x,G 学会在忠实地改变其样式的同时保留 x 的原始特征。

完整的目标。我们的完整目标函数可以总结如下:

其中 λsty 、 λds 和 λcyc 是每个词的超参数。我们还以与上述目标相同的方式进一步训练我们的模型,在生成样式代码时使用参考图像而不是潜在向量。我们在附录 B 中提供了训练细节。

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

PFC电路中MOS管的选取3

MOS管的驱动波形 一个 MOS管在开通或者关断的时候,必定会经历一个线性区。这个线性区域在 Vgs波形上表现出一个平台,在这个平台的时候电流和电压的变化率是很大的,有很大的 dv/dt,di/dt ,由于 di/dt变化非常大&#xf…

【java计算机毕设】学生项目竞赛管理系统 MySQL ssm JSP maven小组项目设计代码源码+万字文档

目录 1项目功能 2项目介绍 3项目地址 1项目功能 【java计算机毕设】学生项目竞赛管理系统 MySQL ssm JSP maven小组项目设计代码源码万字文档 2项目介绍 系统功能: 学生项目竞赛管理系统包括管理员、用户、教师三种角色。 管理员功能包括个人中心模块用于修改个…

一位互联网公司项目经理繁忙的一天

早晨:准备与计划 7:00 AM - 起床与准备 项目经理起床后,快速洗漱并享用早餐。之后花几分钟查看手机上的邮件和消息,确保没有紧急事务需要立即处理。 7:30 AM - 通勤时间 前往公司。在通勤途中,通过手机或平板电脑查看当天的会议…

Java多线程面试题

目录 一.线程和进程的区别 二.保证线程安全的手段 三.创建多线程的方式 四.线程池的讲解 五.volatile和synchronzied的区别 六.synchronized 和 Lock的区别 七.产生死锁的条件 八.Java当中常见的锁策略 本专栏全是博主自己收集的面试题,仅可参考…

C基础day8

一、思维导图 二、课后习题 #include<myhead.h> #define Max_Stu 100 //函数声明 //学生信息录入函数 void Enter_stu(int *Num_Stu,char Stu_name[][50],int Stu_score[]); //查看学生信息 void Print_stu(int Num_Stu,char Stu_name[][50],int Stu_score[]); //求出成绩…

运维锅总详解进程、内核线程、用户态线程和协程

I/O 密集型应用、计算密集型应用应该用什么实现&#xff1f;进程、内核线程、用户态线程、协程它们的原理和应用场景又是什么&#xff1f;如何组合它们才能让机器性能达到最优&#xff1f;它们的死锁和竞态又是什么&#xff1f;如何清晰地表示它们之间的关系&#xff1f;希望读…

红日靶场----(三)2.漏洞利用

上期的通过一句话木马实现对目标主机的持久后门 我使用的是蚁剑&#xff0c;蚁剑安装及使用参考&#xff1a; 下载地址&#xff1a; GitHub - AntSwordProject/AntSword-Loader: AntSword 加载器 安装即使用&#xff1a; 1. 快速入门 语雀 通过YXCMS的后台GETSHELL 利用…

Dify工作流中的变量聚合节点

一.定义 变量聚合节点&#xff08;原变量赋值节点&#xff09;负责整合不同分支的输出结果&#xff0c;确保无论哪个分支被执行&#xff0c;其结果都能通过一个统一的变量来引用和访问。这在多分支的情况下非常有用&#xff0c;可将不同分支下相同作用的变量映射为一个输出变量…

剖析自闭症孩子玩手的独特之处

自闭症孩子玩手的行为常常具有一些较为独特的特点。 重复性是一个显著的特征。他们可能会以一种几乎相同的方式、节奏和频率反复地摆弄自己的手&#xff0c;例如不停地握拳、张开&#xff0c;或者持续地旋转手腕。 动作的单调性也是常见的。玩手的方式可能较为单一&#xff0c;…

力扣 24两两交换链表中节点

画图 注意有头结点 注意判断时先判断cur->next ! nullptr,再判断cur->next->next ! nullptr 注意末尾返回dumyhead->next&#xff0c;用新建result指针来接并返回 class Solution { public:ListNode* swapPairs(ListNode* head) {ListNode *dummyhead new List…

小技巧(更新中)

1.Pycharm使用小技巧pycharm的使用小技巧1---快速找到模块内的函数和类&#xff0c;快速定位查看的模块所在位置_pycharm怎么查找某个函数-CSDN博客 2. Python库之requirments Python库安装之requirements.txt, environment.yml_python requirements-CSDN博客 3.执行.sh脚本的…

vue中v-if与v-show的区别

在 Vue.js 中&#xff0c;v-if 和 v-show 都是用来控制元素显示与隐藏的指令&#xff0c;但它们之间有几个关键的区别&#xff1a; 直接上图 一. 条件渲染方式不同 v-if&#xff1a; 真正的条件渲染&#xff1a;v-if 指令会根据表达式的真假来销毁或重新创建 DOM 元素及其…

LeetCode 88.合并两个有序数组 C写法

LeetCode 88.合并两个有序数组 C写法 思路&#xff1a; ​ 由题nums1的长度为mn&#xff0c;则我们不需要开辟新的数组去存储元素。题目要求要有序合并&#xff0c;于是可以判断哪边数更大&#xff0c;将更大的数尾插在nums1中。 ​ 定义三个变量来控制下标&#xff0c;end1控…

AI绘画工具Stable Diffusion神级插件InstantID,AI换脸完美版!

随着AI绘画技术的不断迭代&#xff0c;AI换脸也日臻完美。 从路线上看&#xff0c;主要有两条路线&#xff0c;一是一张图换脸&#xff0c;优点是操作简便&#xff0c;缺点是换个姿势的时候&#xff0c;往往不太像&#xff0c;roop等插件是基于这个思路&#xff1b;二是炼制专…

UWB:FiRa Consortium UCI Generic Technical Specification v1.1.0(1)- UCI架构和通用数据包头

FiRa fine ranging 精确测距 为了UWB产业能够蓬勃发展&#xff0c;各个公司的产品必须互联互通&#xff0c;不然就是一盘散沙&#xff0c;成不了气候。于是成立了FiRa UWB联盟&#xff0c;相当于WiFi里面的WiFi alliance&#xff08;WiFi联盟&#xff09;&#xff0c;蓝牙里面…

uniapp x — 跨平台应用开发的强大助力

摘要&#xff1a; 随着前端技术的不断演进&#xff0c;跨平台应用开发框架成为了提升开发效率、降低开发成本的重要工具。uni-app以其跨平台兼容性和丰富的功能受到了开发者的广泛青睐。然而&#xff0c;随着应用需求的日益增长&#xff0c;对框架的功能和性能要求也在不断提高…

洛谷P1498 南蛮图腾[递归好题]

南蛮图腾 题目背景 自从到了南蛮之地&#xff0c;孔明不仅把孟获收拾的服服帖帖&#xff0c;而且还发现了不少少数民族的智慧&#xff0c;他发现少数民族的图腾往往有着一种分形的效果&#xff0c;在得到了酋长的传授后&#xff0c;孔明掌握了不少绘图技术&#xff0c;但唯独…

【Android】kotlin jdk版本冲突与Kotlin依赖管理插件

1、androidx.activity&#xff1a;activity&#xff1a;1.8.0 依赖版本错误问题 *依赖项“androidx.activity&#xff1a;activity&#xff1a;1.8.0”要求依赖它的库和应用针对版本 34 或更高版本 Android API 进行编译。&#xff1a;app 目前是针对 android-33 编译的。此外…

10个JavaScript One-Liners让初学者看起来很专业

原文链接&#xff1a;https://pinjarirehan.medium.com/10-javascript-one-liners-for-beginner-developers-to-look-pro-b9548353330a 原文作者&#xff1a;Rehan Pinjari 翻译&#xff1a;小圆 你是不是在辛苦码字时&#xff0c;看到别人轻松甩出一行 JavaScript 就搞定难题…

苹果笔记本电脑能玩哪些游戏 苹果电脑可以玩的单机游戏推荐

苹果笔记本有着优美的外观和强大的性能。用户不仅可以使用苹果笔记本办公、剪辑&#xff0c;越来越多的用户开始关注苹果笔记本在游戏领域的表现&#xff0c;尤其是在大型游戏方面。本文将为你详细介绍苹果笔记本都能玩什么游戏&#xff0c;以及为你推荐苹果电脑可以玩的单机游…