StackGAN
1. 实验目标:能够从文字描述中生成256*256照片级真实的图片。
2. 创新点
- 将文图转换的困难问题通过sketch-refinement过程,分解成更容易控制的子问题。Stage-I GAN 首先基于文本描述描绘出目标主要的形状和颜色。Stage-II GAN将Stage-I的结果和文本描述作为输入,并生成高分辨率的图像级真实的细节。它能够修复Stage-I结果中的不足,并通过refinement过程添进可信的细节。
- 为了增强合成图片的多样性和稳定条件GAN的训练,还引入了创新的Conditioning Augmentation technique去鼓励latent conditioning manifold的平滑性(smoothness)。
3. 网络架构图
4. 训练方法
Stage-I迭代600次,再开始迭代Stage-II600次。
StackGAN++
1. 创新点
一,提出一种多分布学习架构。
在StackGAN++模型中,有3个生成器,3个判别器。分别学习三种不同尺度的图像分布。
二,联合条件和无条件分布估计。
- 如果是无条件分布估计,需在图像生成的过程中加入隐变量 z z z,即concatenate到生成器的隐层特征中。
- 如果是条件分布估计,就将该串接的隐变量 z z z替换成语义变量 c c c,并同时将 c c c也串接到判别器的隐层特征中。
三,颜色一致性正则化。动机是因为生成的图像在不同尺度中应该保持共有的基本结构和颜色。三,颜色一致性正则化。动机是因为生成的图像在不同尺度中应该保持共有的基本结构和颜色。
该损失项对于无条件的图像生成很重要,而在有条件的任务中可以忽略,原因是在有条件生成的任务中,不同尺度的图像间已经有了很强的限制,也就是图像-文本实例对之间的对应。
2. 网络架构图
AttGAN
1. 创新点
一,提出一个AttGAN模型用于从text2img。
二,广泛评估了提出的模型,实验结果表明新的模型明显超过先前的state-of-the-art。
三,通过可视化AttGAN的attention layers,第一次表明层级条件GAN能够自动地注意到相关的词去进行图像生成。
2. 网络架构图
3. Deep Attentional Multimodal Similarity Model
The text encoder
使用一个双向LSTM,对text description进行编码,即每个词对应两个hidden states,然后将这两个hidden states串接起来(共D维),这样就获得了text description中关于每个词的语义表示 e ∈ R D × T e \in \mathbb{R}^{D \times T} e∈RD×T。与此同时,最后一个bi-directional LSTM的隐层表示也被串接起来,作为全局的句子向量 e ˉ \bar{e} eˉ。
The image encoder
网络最后的输出是一张 256 × 256 × 3 256 \times 256 \times 3 256×256×3的图片,论文中使用Inception-v3模型对其进行编码。方法是:
- 首先将图片rescale到 299 × 299 299 \times 299 299×299的大小,前馈到Inception-v3模型中。
- 为了获得局部特征编码,我们提取其中 768 × 17 × 17 768 \times 17 \times 17 768×17×17的特征图( m i x e d _ 6 e mixed\_6e mixed_6e),然后使用一个矩阵将其映射到语义空间(与文本相同维度,共D维),由此获得视觉特征向量 v ∈ R D × 289 v \in \mathbb{R}^{D \times 289} v∈RD×289。
- 为了获得全局特征编码,我们提取网络的最后一层,也一样用一个矩阵将其映射到语义空间,由此获得全局特征向量 v ˉ \bar{v} vˉ。
- 为了提高训练效率,Inception-v3模型的参数是固定的。
The attention-driven image-text matching score
- 首先计算出所有可能的词向量 e e e与特征图子区域特征向量之 v v v间的相似性矩阵,然后计算出关于每个词的注意力特征图 s ∈ R T × 17 × 17 s \in \mathbb{R}^{T \times 17 \times 17} s∈RT×17×17,即有多少个词,就有多少张注意力图。
- 然后使用注意力图对特征图进行加权,获得关于每个词的一个加权特征向量
c
∈
R
(
T
−
1
)
×
D
c \in \mathbb{R}^{(T-1) \times D}
c∈R(T−1)×D(T-1是因为不包括全局sentence的表示)。
- 关于每个词和每张图片特征向量的相关性,我们使用cosine相似性定义,表示为:
关于整张图片和整句描述的attention-driven image-text matching score被定义为:
The DAMSM loss
以上已经计算出了单个图片与单句描述的matching score,现在定义其在一个batch(M个样本)上的概率,即sentence
D
i
D_i
Di 与image
Q
i
Q_i
Qi匹配的后验概率:
重点:注意分母部分的
R
(
Q
i
,
D
j
)
R(Q_i,D_j)
R(Qi,Dj),该式子代表同张image,不同sentence对之间的matching score。即我们让以上式子
P
(
D
i
∣
Q
i
)
P(D_i|Q_i)
P(Di∣Qi)最大化的话,就能使得对应image和sentence对之间的matching score增大,而不对应image和sentence对之间的matching score减少。换言之,我们最大化了
Q
Q
Q与
D
D
D之间的互信息
I
(
Q
,
D
)
I(Q, D)
I(Q,D)。如此一来,我们就达到了最终目的:即生成的image最大程度地保留了给定sentence所描述的信息。
最后,损失函数可定义为负对数后验概率:
对应地,我们也定义一个将图片特征向量作为query的损失函数:
L
2
w
\mathcal{L}_{2}^{w}
L2w 与
L
1
w
\mathcal{L}_{1}^{w}
L1w 的差别在于,
L
1
w
\mathcal{L}_{1}^{w}
L1w 在计算的时候,是将word作为query去计算attention,计算的是给定生成的image下,出现对应sentence的后验概率。而
L
2
w
\mathcal{L}_{2}^{w}
L2w刚好相反,它是将图片特征向量
v
j
v_j
vj作为query去做attention,计算的是给定sentence的情况下,出现对应图片的后验概率。
同理,我们再考虑图片的全局特征向量
v
ˉ
\bar{v}
vˉ,以及sentence的全局句子向量
e
ˉ
\bar{e}
eˉ,并将
R
(
Q
,
D
)
R(Q,D)
R(Q,D)替换成
(
v
ˉ
T
e
ˉ
)
/
(
∣
∣
v
ˉ
∣
∣
∣
∣
e
ˉ
∣
∣
)
(\bar{v}^{T}\bar{e})/(||\bar{v}|| ||\bar{e}||)
(vˉTeˉ)/(∣∣vˉ∣∣∣∣eˉ∣∣),就可计算出句子级别的损失
L
1
s
\mathcal{L}_{1}^{s}
L1s,
L
2
s
\mathcal{L}_{2}^{s}
L2s。
至此,总的DAMSM损失可被定义为:
4. 训练细节
注意:text-encoder预先使用真实的sentence-image的样本对训练过,保证text的语义词向量包含有判别性的图像信息。否则,类似颜色词red,blue,yellow这些会经常在向量空间中聚集在一起,失去对应于视觉上的判别性。
参考论文
- StackGAN - Text to Photo-realistic Image Synthesis
- StackGAN+± Realistic Image Synthesis
- AttnGAN - Fine-Grained Text to Image Generation