SDGAN也是一片text to image 的CVPR2019的文章。
论文地址:[https://arxiv.org/abs/1904.01480v1]
GitHub代码尚未公布
主要创新点:
1.Siamese Structure with Contrastive Losses(带有对比损失的级联结构):这个损失是建立在判别器端,且与以往不同,是两个树状的结构之间的对比损失。这个结构有利于提取文本描述中的语义共同点(semantic commons)。
2.Semantic-Conditioned Batch Normalization(SCBN)(语义条件下的批度归一化):有利于提取文本描述中的语义多样性,是对上面的结构的补充。
主要网络结构:
1.Siamese Structure with Contrastive Losses
这种结构损失首次提出在论文“Dimension-ality reduction by learning an invariant mapping”中,定义如下:
d = || υ1 - υ2||2 是两个特征向量υ1和υ2之间的距离,这两个向量是分别来自暹罗分支。y是一个标志取0或1,0表示这两个文本描述的是同一张图片,1表示不是描述同一张图片。N是特征向量的维度。ε通常去1.0,来平衡当y=0是生成的两个特征向量之间的距离。
而考虑到当两个生成的图片非常相似时,我们重新定义对比损失如下:
α 是避免两个描述同一张ground truth的文本生成的图片太接近时取的超参数,一般为0.1。
实际中的对比损失的计算公式是:
2.Semantic-Conditioned Batch Normalization(SCBN)
Batch Norm
x ∈ RN x C x H x W 是输入。γ,β ∈ RC是来源于数据的。μ(x),σ(x) ∈ RC 是均值和标准差。
Conditional Batch Norm
γc,βc是带有条件c的调制参数。
Semantic-Conditioned Batch Normalization
1.Sentence-level Cues:
2.Word-level Cues:
W = {wt}t=1T ∈ RD x T是单词特征的集合,wt表示第t个单词的特征向量。可视化语义特征向量(visual-semantic embedding (VSE))模型是为了融合单词特征和可视化的特征提出来的,正如图Fig.4(b)所示。我们用一个感知层(如f(wt))去将文本的特征和可视化的特征匹配起来。vsej是在嵌入特征向量 vj 的基础上来计算算每张图片的第j个区域,而vj 是 {wt}t=1T的动态表示。
σ(vj· f(wt))表明可视化特征层vj第j个子区域的第t个单词向量wt的第t个权重。σ(·)是softmax函数。
#实验结果
论文中还介绍了暹罗结构和SCBN可以移植,列举的例子是attnGAN,也将效果展示了出来,这里就不列出来了,有兴趣的可以阅读原文。
参考文章:
[https://blog.csdn.net/Forlogen/article/details/90727750]
[https://www.researchgate.net/publication/4156225_Learning_a_similarity_metric_discriminatively_with_application_to_face_verification?enrichId=rgreq-41bb86e9729b1d866d0194963b0d4747-XXX&enrichSource=Y292ZXJQYWdlOzQxNTYyMjU7QVM6MTAxMzE1NTUyMjE5MTQyQDE0MDExNjY5MTg0MTE%3D&el=1_x_3&_esc=publicationCoverPdf]
[https://www.jianshu.com/p/92d7f6eaacf5]
[https://www.cnblogs.com/bentuwuying/p/8186364.html]