利用飞桨PaddlePaddle实现论文复现之StarGANv2
相关连接:https://aistudio.baidu.com/aistudio/education/group/info/1340
首先明确复现论文对象,《 Diverse Image Synthesis for Multiple Domains》。
一、任务价值
通过学习本论文,掌握StarGANv2以后,可以实现多领域间的多样化图像转换(image-to-image translation),具体来说,包括:
1.生成图像多样化;
2.能够在多个域上具备扩展性。
二、关键概念
1.Domain
一组具有视觉上的风格独特的图像。
我的理解,比如现代风格和仿古风格,犹如旗袍和职业装,肯定就是明显不同的。
2.Style
每个图像都具有的唯一的外观
这个应该和“世上没有两片完全相同的树叶是一个道理。”
关于Domain和Style的关系,我的理解应该是大集合和小集合的关系,或者Domain是对Style更高层级的抽象,而Style是添加了每个图像具体信息的个体。
3.多领域
不论是Domain还是Style,都说明了GAN的目标,要解决多领域的问题。在StanGANv2以前,也曾经有过很多别的图像处理方法,这些方法都取得了一定效果,但由于结构设计上的不完善,导致其模型计算复杂度和生成效果有限。
在StarGAN以前,业界流行的方法存在的主要问题是,此前的方法,都只是关注两个域之间的映射关系。要在每个域之间都建立起联系,需要构造、训练n*(n-1)个生成器(n为域的数目,一般较大)。
三、模型介绍
1.StarGan
是最早具备较好扩展性、统一的代表性框架,但它没有摆脱学习每个域的确定性映射,每个仍然需要由预先定义标签来表示。这种结构设计上的保守,使得该模型的生成器需要接受固定的标签作为输入,在给定源图像下,每个域的输出都是相同的,功能上依然受到较多限制。
注意两个网络结构中间的变化
2.StarGan v2
创新点:
A) 提出domain-specific style code
这是替代域标签的手段。
表征能力强悍,能够表示特定领域各种风格样式
B)引入了两个模块
mapping network 映射网络——网络包括k个输出分支,表示有k个域,给定隐变量z和对应的域y,生成样式码????=????????????
style encoder 样式编码器——网络包括k个输出分支,表示有k个域,给定图像x及其对应的域y,编码器E提取x的样式码????=????????????。D代表了样式码S的维度。
两个模块的作用:映射网络学习将随机高斯噪声转换为样式码(style code),而编码器则学习从给定的参考图像中提取样式码。两个模块都具有多个输出分支,每个分支都提供特定域的样式码,训练时将选取其中对应domain的一个。
C)生成器Generator
将输入图像x转换为G(x,s),s为样式码style code,可以由映射网络F或者样式编码器E提供。使用adaptive instance normalization (AdaIN) 引入s。
此外,Generator删除了上采样residual blocks中的所有shortcut,并使用基于adaptive wing based heatmap添加了跳跃连接。
D)鉴别器Discriminator
网络包括k个输出分支,表示有k个域,每个分支都学习一个二元分类,确定图像x是域y的真实图像还是G生成的伪图像,因此输出维度D被设定为1,作为real/fake的分类。
StarGan v2训练目标对象较多:风格多样性Style diversification、保留源图特性Preserving source characteristics
包括512×512分辨率的15,000张高质量图像。数据集包括猫,狗和野生动物的三个域,每个域提供5000张图像。
量化效果结论
Frechétinception distance (FID)衡量真实图像和生成图像之间的差异性通过加载经过预训练的Inception v3模型,使用最后一个池化层的**函数输出值作为特征向量,计算出真实图像和生成图像在特征层面的距离。FID 越低,图像质量越好;反之,得分越高,质量越差。
Learned perceptual image patch similarity (LPIPS) 衡量生成图像的多样性计算生成图像从预训练的AlexNet中提取的特征之间的距离LPIPS越大,生成图像多样性越高
五、模型总结
StarGANv2 多领域间的多样化图像转换网络
包含四个模块:生成器、映射网络、样式编码器、判别器
代码结构清晰,学会阅读代码中的注释