【飞桨】【论文复现】StarGAN v2学习笔记

【飞桨】【论文复现】StarGAN v2学习笔记

StarGAN v2

github:https://github.com/clovaai/stargan-v2
Paper: https://arxiv.org/abs/1912.01865

前置论文

复现营课程链接:https://aistudio.baidu.com/aistudio/education/group/info/1340
1.cgan(Conditional Generative Adversarial Nets)
2.cyclegan(Unpaired Image-to-Image Translation using Cycle-Consistent Adversarial Networks)
3.stargan(Unified generative adversarial networks for multidomain image-to-image translation)

摘要

文章提出了StarGanv2,一个单一的框架,它可以同时满足两个需求:
1.生成图像的多样性
2.多种domain的可伸缩性。(domain:域,一个图像集合,其中的图片可以被分类为同一种具有视觉区分度的类型)

同时,文章认为,domain中的图像图像可以归类为一个视觉上独特的类别,每个图像都有一个独特的外观,在文中称为style(风格)。

style和domain不知道中文怎么翻译,就直接说风格和域了

网络结构

StarGanv2被认为可以在多个域中生成不同的图像。
在这里插入图片描述

(a) 生成器将输入图像转换为反映特定于域(domain)的style code的输出图像。
(b) 映射网络将一个潜在的代码转换成多个域(domain)的style code,在训练过程中随机选择其中一个域(domain)。
(c) 样式编码器提取图像的style code,允许生成器执行参考引导的图像合成。
(d) 鉴别器从多个域(domain)区分真假图像。

(a)生成器G(Style)将输入图像x转换为domain-specific style code(反映特定于域的样式代码)s的输出图像G(x,s),该代码由映射网络F或样式编码器E提供。文章使用AdaIN(Adaptive Instance Normalization)将s输入G中。

(b)给定一个潜在代码z(latent code)和一个域y(domain),映射网络F生成一个样式代码s=Fy(z),其中Fy(·)表示对应于域y的F的输出。F由一个MLP组成,具有多个输出分支,为所有可用域提供style code。F可以通过对潜在向量z和域y随机抽样产生不同的style code。多任务体系结构允许F高效有效地学习所有领域的style表示。

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

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

效果图

第一行和第一列图像是真实图像,而其余图像由模型StarGanv2生成的图像。模型参考图像中提取高级语义,如发型、妆容、胡须和年龄,同时保留参考图像的姿势和特点。下图反应了StarGanV2可以合成反映不同参考样式的图像,包括发型、妆容和胡须,而不会损害源特性。
在这里插入图片描述
文章中也分别对CelebA HQ和AFHQ数据集进行比较。文章中使用随机抽样的latent code将参考图像(最左边的列)转换为目标图像。(a) 前三行将男性转化为女性的结果,反之亦然。(b)顶部每两行按以下顺序显示合成图像:猫到狗,狗到野生动物,野生动物到猫。
在这里插入图片描述

损失函数

对抗性目标
在这里插入图片描述
其中,Dy(·)表示与域y相对应的D的输出,x为输入图片,s是style code

风格重构
在这里插入图片描述
这是为了让生成器G在生成图片G(x,s)的时候使用style code

风格多样化
在这里插入图片描述
s1和s2由两个随机的潜在编码(latent codes)z1和z2产生。最大化两个风格生成图像的差距,这种方式可以让生成器探索意义的风格特征以生成不同的图像。

保留源图特性
在这里插入图片描述
生成器G使用源图经过风格编码器(style encoder)所得进行重建,让G保留源图特征,有些像cyclegan。

总损失函数
在这里插入图片描述
其中λsty,λds,和λcyc是超参数。

网络结构

Generator

生成器由四个下采样块、四个中间块和四个上采样块组成,每一个层都有ResBlk。
在这里插入图片描述

IN(instance normalization)和AdaIN(adaptive instance normalization)分别用于下采样块和上采样块。

Mapping network

映射网络(mapping network)由一个具有K个输出分支的MLP组成,其中K表示域的数目。所有域之间共享四个全连接层,每个域中也有四个特定全连接层。我们将潜在代码(latent code)、隐藏层和风格代码(style code)的维度分别设置为16、512和64。
在这里插入图片描述

潜在代码(latent code)服从标准高斯分布。

Style encoder&&Discriminator

风格编码器(style encoder)由一个CNN和K个输出分支组成,其中K是域的数目。六个ResBlk在所有域之间共享,然后每个域有一个特定的全连接层。
在这里插入图片描述

鉴别器是一个多任务鉴别器,它包含多个线性输出分支。鉴别器包含6个leakyRelu的ResBlk。文中使用K个全连接层对每个域进行真/假分类,其中K表示域的数量。没有使用归一化层是因为无法改善质量了。

参考

https://blog.csdn.net/WhaleAndAnt/article/details/105093047
https://blog.csdn.net/qq_26020233/article/details/106001703

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值