我想看InstaGAN,但想看这个得先理解CycleGAN,所以看完CycleGAN我再来
- 好,我胡汉三看完回来了
看完发现还要补LSGAN,但因为不影响阅读,补的过程我打算之后再进行
Abstract
Image-to-image转换任务在涉及到多目标和形状的巨大改变时经常失败
本文
- 融合实例信息,改进多实例转换任务,保持实例的排序不变性。
- 提出context preserving loss,保留除目标实例外的特征
- 提出a sequential mini-batch inference/training technique,在GPU内存限制的情况下更好的多目标转换
Introduction
介绍背景和贡献。
贡献主要分为三部分:
- 提出一个能保证任意数量的实例排序不变性的神经网络结构
- 提出上下文保护损失函数,既保护背景又能转换目标实例
- 提出小批量训练技巧,解决GPU内存限制问题的同时,提升少量目标转换的效果
InstaGAN
背景介绍
两个domain间的相互转换,有条件限制(即实例限制),无监督,要求实例和背景和谐。
Architecture
image.pngInstaGAN的结构是基于CycleGAN的(G YX(G XY(x)) ≈ x && G XY(G YX(y)) ≈ y)。不同的是,本文不需要连接成环,使用其中一半即可。
本文的目标是训练出两个生成器Gxy(由x,a生成y',b')和Gyx(由y,b生成x',a')。为了对抗,还需要两个判别器Dx(判别X,a和X',a'是否在Domain(X * a)中)和Dy。
对Domain(X * a)中的
生成方法
-
提取图像特征(提取方法:f_GX)
-
分别提取每个实例的特征(提取方法:f_GA),有n个实例
-
将提取到的实例特征求和,保证其实例的排序不变性
-
连接图像特征和实例特征和,送入生成器g_GX,生成图像。输入:
-
连接图像特征、实例特征和、每个实例的特征,分别送入生成器g_GA,生成转换后的masks。输入:
生成这部分有些问题:
- 结果图像的生成靠的是g_GX吗?那g_GA存在的意义是什么?
判别方法
判别器同样需要对X和a同时编码。同生成方法,判别器的输入为:
作者表示,连接图像特征和实例特征有利于建立X和a间的联系。
对于上文提到了f_GX, f_GA, f_DX, f_DA, g_GX, g_GA,采用任意深度网络均可。(这一句话里的细节太多了,前文也没有提到g_GX和g_GA,我也不明白g_GA的意义在哪儿,可能是因为没看完吧)
损失函数
损失函数由以下几部分组成。
-
domain loss:输出符合目标domain
- GAN loss
-
content loss:输出保留原有内容
- cycle-consistency loss
- identity mapping loss
(看到这些loss我就知道我又要补课了)
-
context preserving loss(本文新提出的loss)
使用输入和输出的分割信息
接下来进行具体介绍。
GAN loss
GAN loss有多种变体。本文使用了LSGAN,在实验中表现出了稳定的好品质
cycle-consistency loss & identity mapping loss
Lcyc利用cycle规则,还挺好理解的
Lidt不理解,需要补课
context preserving loss
整个损失函数
Sequential mini-batch translation
一个在GPU受限情况下使用instaGAN的方法。因为不是我现阶段学习的要点,留在这儿等以后补充。
网友评论