Photographic Text-to-image Synthesis with a Hierarchically-nest Adversarial Networks使用层级对抗网络使得文字生...

这篇论文解决了StackGan端到端的问题,stackGan是分层训练的,而本文的网络结构是一个金字塔结构的,且解决了StackGan中文字图片不匹配的问题,他使用了文字与图片匹配对,他与StackGan没有太大差距,都是为了生成清晰的图片使用了层级的结构,但是本篇论文为自己的金字塔层级结构设计了合理的生成和判别器以及对应的loss。目测与stackGan++有相似之处。

暂时不知道是几层,-- scale {64,128,256}--但随着分辨率的增加,但应该会花很长时间训练。
接下来,就看看如何做的。

这张图总结了几个常见的用于提升图像的分辨率的GAN结构

感觉受益了,A的代表作品是StackGan,将第一个Gan生成的图片作为stage2的辅助输入。B代表是NIPS中的Dual Discriminator Generative Adversarial Nets,使用多判别器来判别图像生成效果,C是progressive growing of GANs for improved quality。发现A与C是相似的,1和n stage 的差距。然后D,结构确实不错,从图中观察的话,是明显的。下面具体讲一下结构。


本篇论文网络结构设计灵感来源于CNN,利用之前中层的表示来辅助最终的识别分割等任务,生成器是结构类似于一个深度连接的CNN结构,中层的特征作为一个生成器的输出,然后对于这个中层输出的特征设计了与之对应的独立的判别器结构。每一个判别器学习了不同尺度上下文的判别特征。

低层特征学习的是图像结构的语义一致性,颜色背景和边缘等。而高层大多是一些细粒度的信息。大概意思就是,首先告诉你大概是什么,然后告诉你长什么样。

文中提了一句,与StackGan 相比,我们的方法在底层输出和高层输出会有色彩结构风格的一致性,优点~

如何解决了stackGan的图文不匹配的,当然用了文字图片匹配LOSS(全局LOSS),之前reed的那篇论文讲过,我相信,这个在之后一定会用好久,除非有替代方案~但是作者认为,单全局判别器会容易过度强调某一细节从而导致不真实,为了解决这个问题,作者加入了局部对抗loss。对每个判别器,包含两个分支,一分支就是计算全局文字图片pair loss,另一分支局部计算Patch区域概率图,类似于之前论文 image to image中的局部patch。而且同样适用了stackGan中的文本扩增方案,使用高斯分布联合文字的embedding。

整体结构

具体生成器和判别器的结构

生成器由K-repeat的res-block(改良的res-block=2*conv+BN+Relu),延展层(conv+upsampling+BN+Relu)和一个线性压缩层(Tanh+conv)组成。生成器的输入1024*4*4的文本嵌入,根据stackGan的方法使用CA和一个训练好的嵌入矩阵对文字embedings进行处理,输入生成器中,首先经过M个K-repeat res-block然后经过M-1个延展层(作用是增加图片的resolution)。线性压缩层用于得到判别器的输入。预定义尺度的个数就是判别器的个数。

判别器由连续的几个步长为2的卷积层+BN+LeakyRelu。在鉴别器的上一层有两个分支,一个分支是直接计算全卷积得到概率图,每一个patch来鉴别真假,另一个分支首先链接一个512*4*4的特征和128*4*4的文本嵌入,然后用一个1*1的卷积融合,接下来用4*4的卷积来判别生成图像是否与文本符合。


实验

好真实
语义一致性
多判别器

你可能感兴趣的:(Photographic Text-to-image Synthesis with a Hierarchically-nest Adversarial Networks使用层级对抗网络使得文字生...)