新的一年,新的开始,好想发论文啊!废话不多说,下面讲下文字到图片的生成。
文字生成图片
最有代表的一张图怕是这个了,牛人,大佬
RNN可用来对文字进行判别和表示,GAN可以做图片生成,那么如何将字符翻译到图像像素呢?这篇论文给出了一个网络。使用RNN,来做图片生成描述,由于它是根据图片的内容和他前一个词生成下一个词,是遵循链式规则的。使用描述生成图片的话,能够正确表达文本的正确图像样例是很多的,比如鸟,生成的图片各种鸟都不能说是错的,文字的改变会影响大片区域pixel的变化,而且没有什么关联性。对于文本生成图像这个任务,我们将这个任务分解成两个子问题,首先,获取重要细节的—-文本特征表示。然后,用这个特征合成一张较好的图片。下载原论文地址
原始GAN
Gan的损失函数
x表示真实图片,z表示输入G网络的噪声,而G(z)表示G网络生成的图片。
D(x)表示D网络判断真实图片是否真实的概率(因为x就是真实的,所以对于D来说,这个值越接近1越好)。而D(G(z))是D网络判断G生成的图片的是否真实的概率。
网络架构
如果要输入文本信息?问题就来了,怎么得到文字信息。作者用了自己之前的方法《Learning Deep Representations of Fine-Grained Visual Descriptions》,不是这篇文的重点,他只是利用了这篇文章的文本特征表示,就是对文本有个向量表示,他的之前的方法表示的好所以就用了。
基于文本的DCGAN结构
文本描述向量——上图中深蓝色的条条,在生成网络和判别网络中都有输入。
看这个网络结构就可以知道,他大概是有一个噪声+向量(表达文字的)作为生成网络的输入。你会不会想,怎么不直接输入文本特征呢?留来大家想想。 而作者论文实际是这么来做生成网络的,首先我们将之前得到的文本向量,用网络全连接层对文本向量压缩,最后得到128维向量,在原来的随机噪声后面直接相连(concate)输入生成网络中生成图片。
对于判别网络呢,作者也加入了这个文本描述。加入的方式是空间复制,之前文章也有介绍过,就是对于N*N的feature map后面加其他模态信息