Image Generation from Scene Graphs从场景图中生成图像 [文本转图]

这是李飞飞团队2018年被CVPR接收的一篇文章。PDF下载链接为:https://arxiv.org/abs/1804.01622

(2018.7.6添加)Github代码下载链接https://github.com/google/sg2im

在这里放上我CSDN的下载链接:

https://download.csdn.net/download/luolan9611/10373565

文件包里有我根据这篇论文做的讲解PPT(如果你要向别人做分享的话,可以在我PPT的基础上进行修改)、这篇论文带注释的PDF,还有这篇论文中提到的几篇论文比如StackGAN,比如GoodFellow大神的GAN的论文等。如有错误,请多指教!

摘要

现有的根据自然语言生成图像的方法,难以生成语言描述中包含多个物体和之间关系的图。于是,作者提出了一个图像生成网络模型,该模型用图卷积处理输入场景图,根据bounding box等计算场景布局,然后把布局用级联细化网络转换成图像。这个网络是针对一对鉴别模型进行训练的,Dimg和Dobj分别用来鉴别真实图像和真实对象,来确保输出的图像真实自然。

引言

现有的由文本生成图像的方法主要是结合递归神经网络(RNN)和生成对抗网络(GAN)来实现的。此前出现了很多效果让人惊叹的由文本转图的方法,其中有代表性的为ICCV 2016 2017的StackGAN方法,它在生成花鸟方面的效果确实Amazing,而且能达到256*256的高分辨率。要知道,在这篇文章之前,生成图像的分辨率几乎都局限在64*64。

下面展示一下StackGAN根据文本描述语言生成的图像效果:

StackGAN生成图像分为两个阶段,第一阶段根据给定描述描绘物体大致轮廓和基本的颜色信息,生成低分辨率的图像。
第二阶段把阶段1的结果和文本描述作为输入,生成带有逼真细节的高分辨率图片。

Image Generation from Scene Graphs从场景图中生成图像 [文本转图]

比如上图中第二列的鸟,This bird is white with some black on its head and wings, and has a long orange beak. 这只鸟是白色的,脑袋和翅膀上带点黑色,有一个橘黄色的长喙。生成的效果哇塞,厉害了我的天哪。

Image Generation from Scene Graphs从场景图中生成图像 [文本转图]

然而,尽管这些方法生成的效果令人惊艳。但当它们碰到语言描述中包含有多个物体和复杂物体关系的句子时,往往束手无措。

比如这样的描述:

A sheep by another sheep standing on the grass with sky above and a boat in the ocean by a tree behind the sheep.

这句话是什么意思呢哈哈哈哈:

一只绵羊和在它旁边的另一只绵羊,

站在草上,

天空在上面,

船在海洋上,

海洋在绵羊后边的树旁边。

多么诗意的画面啊,一首小短诗就这样诞生了。

给大家看看StackGAN生成的这张图是什么效果:

Image Generation from Scene Graphs从场景图中生成图像 [文本转图]

额霉zing,这都是些什么东西?我的诗意的画面呢?

让我们来看看李飞飞团队生成的图像吧:

Image Generation from Scene Graphs从场景图中生成图像 [文本转图]

嗯,就是分辨率低了点。但是该有的物体都有啦,而且确实是符合我们所描述的复杂关系的。

他们团队是怎么做到的呢?

首先,将文本转化为场景图


Image Generation from Scene Graphs从场景图中生成图像 [文本转图]

[47]Generatingsemanticallyprecise scene graphsfrom textualdescriptions for improved image retrieval.In EMNLP Vision and Language Workshop, 2015. 1, 2

场景图是一种数据结构,它的节点代表对象,边代表对象之间的关系。作者的团队先将文字描述转换成场景图,然后由场景图作为模型的输入,最后得到生成的图像。

模型

        在讲本文的模型之前,先给大家引入生成对抗网络的概念,“一个 GAN (生成对抗网络)框架,最少(但不限于)拥有两个组成部分,一个是生成模型 G,一个是判别模型 D。在训练过程中,会把生成模型生成的样本和真实样本随机地传送一张(或者一个 batch)给判别模型 D。判别模型 D 的目标是尽可能正确地识别出真实样本(输出为“真”,或者1),和尽可能正确地揪出生成的样本,也就是假样本(输出为“假”,或者0)。而生成模型的目标则和判别模型相反,就是尽可能最小化判别模型揪出它的概率。这样 G 和 D 就组成了一个 min-max game,在训练过程中双方都不断优化自己,直到达到平衡——双方都无法变得更好,也就是假样本与真样本完全不可区分。” 

本文基于两个模型训练:

1.图像生成模型f

Image Generation from Scene Graphs从场景图中生成图像 [文本转图]

    模型的输入是描述对象和之间关系的场景图,场景图被Graph Convolution network [1]处理,图卷积网络沿着场景图的边计算所有对象的嵌入向量。这些向量被传入到Object Layout Network[2]中用于预测对象的bounding boxesSegmentation masks,将向量的边界框和掩膜结合就能得到对象的布局,将所有对象布局结合就能形成scene layout。然后用一个级联细化网络Cascaded Refinement Network(CRN)[3]将布局转换为生成图像。这个模型是针对一对鉴别器网络进行对抗训练的,训练的时候模型观察真实的对象边界框和分段掩膜,测试的时候这些用的是预测的值。

[1]图卷积网络是由多个图卷积层构成的,单个图卷积层如下所示:

Image Generation from Scene Graphs从场景图中生成图像 [文本转图]

[2]对象布局网络由两部分组成,一部分是Mask regression network,一部分是Box regression network,如下图所示:

Image Generation from Scene Graphs从场景图中生成图像 [文本转图]

[3]级联细化网络Cascaded Refinement Network

CRN由一系列的卷积细化模块构成,每个模块之间是2倍空间分辨率的关系,这就允许以一种由粗到精的方式去生成图片。每个模块接收根据模块输入的分辨率下采样(缩小)后的场景布局和前一个模块的输出。这些输入串联并传递到卷积层,然后在传递到下一个模块之前对输出进行上采样(放大)。

2.一对判别模型Dimg和Dobj

图像判别器Dimg确保生成的图像的整体外观是真实的,它将规则间隔,重叠的图像块集合分类为真实或伪造。

对象判别器Dobj确保图像中的每个对象看起来都是真实的;其输入是一个对象的像素,使用双线性插值法裁剪并重新缩放到固定大小。除了将每个对象分类为真实还是假的,Dobj还确保每个对象都可以使用预测对象类别的辅助分类器来识别; Dobj和f都尝试最大化Dobj正确分类对象的概率。

训练过程简介

Image Generation from Scene Graphs从场景图中生成图像 [文本转图]

训练的时候有6个loss值:

Image Generation from Scene Graphs从场景图中生成图像 [文本转图]

Image Generation from Scene Graphs从场景图中生成图像 [文本转图]

实验结果

1.可以生成多对象的场景,甚至是同一对象类型生成多种实例。

Image Generation from Scene Graphs从场景图中生成图像 [文本转图]   

比如(d)中的两辆公交车不同,(f)中不同的花椰菜,(g)中三个人都是不一样的。(左边四列是基于visual genome数据集的,右边四列是基于coco的。 

2.生成的例子表明该方法生成图像时遵循了对象之间的关系。

Image Generation from Scene Graphs从场景图中生成图像 [文本转图]

3.具有生成复杂图像的能力

Image Generation from Scene Graphs从场景图中生成图像 [文本转图]

评估结果

作者及团队在Amazon Mechanical Turk平台上做评估,分别用StackGAN和自己的方法根据Caption生成图片,让用户选择更匹配caption的图片,发现结果比StackGAN要好1倍。

Image Generation from Scene Graphs从场景图中生成图像 [文本转图]

又让用户辨认图中的单个物体,对象的召回率和背景的召回率也都比StackGAN强很多。

Image Generation from Scene Graphs从场景图中生成图像 [文本转图]


好啦,今天的论文分享就到这里,欢迎交流。在这里我放上CSDN的下载链接(如果你要向别人做分享的话,可以在我PPT的基础上进行修改)https://download.csdn.net/download/luolan9611/10373565,文件包里有我根据这篇论文做的PPT、这篇论文带注释的PDF,还有这篇论文中提到的几篇论文比如StackGAN,比如GoodFellow大神的GAN的论文等。如有错误,请多指教!

PPT小图示例:

Image Generation from Scene Graphs从场景图中生成图像 [文本转图]