天天看点

Image Generation from Scene Graphs 论文解读在这篇CVPR 2018的文章中,使用Visual Geome 和COCO-Stuff数据集,由Scene Graph生成与文本一致的图像。关于这两个数据集详细介绍就不说了,但是Visual Geome有现成的scene graph拿来使用,而COCO-Stuff数据集在论文中要对其处理后拿来使用。整个网络结构:Experiments

论文链接: https://arxiv.org/abs/1804.01622.

GitHub代码: https://github.com/google/sg2im.

对于文本生成图片(Text-to-Image)的任务,如果一开始将scene layout(场景布局)作为中间媒介,连接text domain 和 image domain,将会取得很好的结果。但是这个想法实现起来需要很多方面难题要解决,比如数据集、场景布局的处理、场景图(scene graph)的生成以及场景图的处理等等。

在这篇CVPR 2018的文章中,使用Visual Geome 和COCO-Stuff数据集,由Scene Graph生成与文本一致的图像。关于这两个数据集详细介绍就不说了,但是Visual Geome有现成的scene graph拿来使用,而COCO-Stuff数据集在论文中要对其处理后拿来使用。

创新点有:

  1. 提出graph convolution 模块处理输入的scene graph。
  2. 提出两个判别器网络Dimg和Dobj。

与以往方法的流程有所不同,主要与stackgan作的对比

Image Generation from Scene Graphs 论文解读在这篇CVPR 2018的文章中,使用Visual Geome 和COCO-Stuff数据集,由Scene Graph生成与文本一致的图像。关于这两个数据集详细介绍就不说了,但是Visual Geome有现成的scene graph拿来使用,而COCO-Stuff数据集在论文中要对其处理后拿来使用。整个网络结构:Experiments

整个网络结构:

Image Generation from Scene Graphs 论文解读在这篇CVPR 2018的文章中,使用Visual Geome 和COCO-Stuff数据集,由Scene Graph生成与文本一致的图像。关于这两个数据集详细介绍就不说了,但是Visual Geome有现成的scene graph拿来使用,而COCO-Stuff数据集在论文中要对其处理后拿来使用。整个网络结构:Experiments

主要有三方面的挑战:

  1. 必须要有一个处理场景图的方法
  2. 确保生成的图像中个物体正确及位置关系的合理性
  3. 确保生成的图像质量好

    输入scene graph G和噪音 z ,输出图片 I ^ \hat{I} I^

    Image Generation from Scene Graphs 论文解读在这篇CVPR 2018的文章中,使用Visual Geome 和COCO-Stuff数据集,由Scene Graph生成与文本一致的图像。关于这两个数据集详细介绍就不说了,但是Visual Geome有现成的scene graph拿来使用,而COCO-Stuff数据集在论文中要对其处理后拿来使用。整个网络结构:Experiments

Scene Graphs

场景图的node(点)表示object(物体),edge(边)表示个点间的相互关系。用数学公式表达是:

C是物体集合,R是关系集合,一个场景图就是一个元组(O,E),O={o1,……,on},oi ∈ C,E ⊆ O x R x O是边(oi,ri,oj)的集合,r ∈ R。

Graph Convolution Network

为了以end-to-end的方式处理场景图,我们需要一个神经网络模型,就是graph convolution network,它是由多个single graph convolution layer(看下图)组成的。

Image Generation from Scene Graphs 论文解读在这篇CVPR 2018的文章中,使用Visual Geome 和COCO-Stuff数据集,由Scene Graph生成与文本一致的图像。关于这两个数据集详细介绍就不说了,但是Visual Geome有现成的scene graph拿来使用,而COCO-Stuff数据集在论文中要对其处理后拿来使用。整个网络结构:Experiments

vi,vj属于输入向量Din(vi,vj ∈ RDin),vi’,vj’属于输出向量Din(vi’,vj’ ∈ RDout),我们在所有的node和edges上计算输出向量的时候都是用三个函数:gs,gp和go。输出反映各node的相互关系的向量vr’(vr’=gp( vi,vr,vj))。计算object oi 的输出向量 vi’是应该依赖所有的通过edges连接在node oi上的vj以及这些edges vr,为了这个目的,我们把所有起始在oi上的向量用gs计算一个candidate vector集合,同样把终止在oi上的向量用go计算一个candidate vector集合,如下所示:

Image Generation from Scene Graphs 论文解读在这篇CVPR 2018的文章中,使用Visual Geome 和COCO-Stuff数据集,由Scene Graph生成与文本一致的图像。关于这两个数据集详细介绍就不说了,但是Visual Geome有现成的scene graph拿来使用,而COCO-Stuff数据集在论文中要对其处理后拿来使用。整个网络结构:Experiments

然后计算 vi’:

Image Generation from Scene Graphs 论文解读在这篇CVPR 2018的文章中,使用Visual Geome 和COCO-Stuff数据集,由Scene Graph生成与文本一致的图像。关于这两个数据集详细介绍就不说了,但是Visual Geome有现成的scene graph拿来使用,而COCO-Stuff数据集在论文中要对其处理后拿来使用。整个网络结构:Experiments

h 是一个系统函数,它可以将一个输入向量集转化成一个单一的输出向量。gs,gp和go都是用来处理三个输入向量的,之后将其送入多层感知机(MLP)得到输出向量vi’,vj’。

Scene Layout

为了生成图片,我们必须从场景图域(graph domain)到 图像域(image domain)。为了这个目的,我们通过计算物体嵌入向量(object embedding vectors)来计算一个场景布局(scene layout)。

Image Generation from Scene Graphs 论文解读在这篇CVPR 2018的文章中,使用Visual Geome 和COCO-Stuff数据集,由Scene Graph生成与文本一致的图像。关于这两个数据集详细介绍就不说了,但是Visual Geome有现成的scene graph拿来使用,而COCO-Stuff数据集在论文中要对其处理后拿来使用。整个网络结构:Experiments

输入形状D的嵌入向量vi到mask regression network 去预测形状为M x M的a soft binary msk m i ^ \hat{m_{i}} mi​^​和 a box regression network 去预测一个边界框 b i ^ = ( x 0 , y 0 , x 1 , y 1 ) \hat{b_{i}}=(x_{0},y_{0},x_{1},y_{1}) bi​^​=(x0​,y0​,x1​,y1​)。生成mask的网络控制其值在(0,1),生成box的是MLP。我们也将嵌入向量vi与 m i ^ \hat{m_{i}} mi​^​智能相乘得到一个形状为D x M x M 的mask embedding,然后与用双线性插值(bilinear interpolation)想结合生成一个object layout。而对于每一个物体的嵌入向量都执行这样的操作,所以会得到等于object数量的object layout。然后计算所有object layout的和就得到scene layout了。

注意在训练的时候使用ground-truth 的边界框,而在测试的时候用预测的边界框。

Cascaded Refinement Network

对于已经生成的scene layout,我们必须合成一个尽量真实的图片,这是我们的任务。为了这个任务,我们使用Cascaded Refinement Network(CRN)。CRN有一系列的卷积提炼模块(convolutional refinement modules)组成的,浙江有利于以从粗到细的方式生成图片。每一个模块都会以scene layout和先前模块的输出作为输入,他们在通道方向上通过一个3 x 3的卷积层连接作为输入。而在第一个模块需要以噪音z ~ pz和scene layout作为输入。

Discriminators

为了生成真实的图像,训练网络的时候用到一对判别器Dimg和Dobj。

所有的GAN网络的判别器都有的损失函数:

Image Generation from Scene Graphs 论文解读在这篇CVPR 2018的文章中,使用Visual Geome 和COCO-Stuff数据集,由Scene Graph生成与文本一致的图像。关于这两个数据集详细介绍就不说了,但是Visual Geome有现成的scene graph拿来使用,而COCO-Stuff数据集在论文中要对其处理后拿来使用。整个网络结构:Experiments

不知如何翻译,放一下原文描述吧。

Dimg:

The patch-based image discriminator Dimg ensures that the overall appearance of generated images is realistic; it classifies a regularly spaced, overlapping set of image patches as real or fake, and is implemented as a fully convolutional network.

Dobj:

The object discriminator Dobj ensures that each object in the image appears realistic; its input are the pixels of an object, cropped and rescaled to a fixed size using bilinear interpolation.In addition to classifying each object as real or fake, Dobj also ensures that each object is recognizable using an auxiliary classifier which predicts the object’s category.

Generators

生成器的训练是最小化下列六个损失函数的加权和:

Image Generation from Scene Graphs 论文解读在这篇CVPR 2018的文章中,使用Visual Geome 和COCO-Stuff数据集,由Scene Graph生成与文本一致的图像。关于这两个数据集详细介绍就不说了,但是Visual Geome有现成的scene graph拿来使用,而COCO-Stuff数据集在论文中要对其处理后拿来使用。整个网络结构:Experiments
Image Generation from Scene Graphs 论文解读在这篇CVPR 2018的文章中,使用Visual Geome 和COCO-Stuff数据集,由Scene Graph生成与文本一致的图像。关于这两个数据集详细介绍就不说了,但是Visual Geome有现成的scene graph拿来使用,而COCO-Stuff数据集在论文中要对其处理后拿来使用。整个网络结构:Experiments

Experiments

定量结果:

Image Generation from Scene Graphs 论文解读在这篇CVPR 2018的文章中,使用Visual Geome 和COCO-Stuff数据集,由Scene Graph生成与文本一致的图像。关于这两个数据集详细介绍就不说了,但是Visual Geome有现成的scene graph拿来使用,而COCO-Stuff数据集在论文中要对其处理后拿来使用。整个网络结构:Experiments

还有预测的边界框的统计(不太明白)

Image Generation from Scene Graphs 论文解读在这篇CVPR 2018的文章中,使用Visual Geome 和COCO-Stuff数据集,由Scene Graph生成与文本一致的图像。关于这两个数据集详细介绍就不说了,但是Visual Geome有现成的scene graph拿来使用,而COCO-Stuff数据集在论文中要对其处理后拿来使用。整个网络结构:Experiments

定性实验:

Image Generation from Scene Graphs 论文解读在这篇CVPR 2018的文章中,使用Visual Geome 和COCO-Stuff数据集,由Scene Graph生成与文本一致的图像。关于这两个数据集详细介绍就不说了,但是Visual Geome有现成的scene graph拿来使用,而COCO-Stuff数据集在论文中要对其处理后拿来使用。整个网络结构:Experiments
Image Generation from Scene Graphs 论文解读在这篇CVPR 2018的文章中,使用Visual Geome 和COCO-Stuff数据集,由Scene Graph生成与文本一致的图像。关于这两个数据集详细介绍就不说了,但是Visual Geome有现成的scene graph拿来使用,而COCO-Stuff数据集在论文中要对其处理后拿来使用。整个网络结构:Experiments

论文中还有一些其他的实验,详细的请看原论文。

继续阅读