论文阅读:Image Generation from Scene
三月末的日子 雨淅淅沥沥地下着 没想到三月底了 我还在家里 还没有开学
害!希望雨过天晴 接下来四月都是好运呀,今天仍是论文阅读记录。
论文名称:《Image Generation from Scene Graphs》
论文地址:https://arxiv.org/abs/1804.01622
项目代码:https://github.com/google/sg2im
论文翻译参考:http://www.aibbt.com/a/29409.html
代码解析:https://blog.csdn.net/zlrai5895/article/details/81255243
本篇文章只记录个人阅读论文的笔记,具体翻译、代码等不展开,详细可见上述的连接
Backgroud
Task(what to do)
Image Generation from Scene Graphs
faithfully reproduce complex sentences with many objects and relationships.
(简单来说,就是从场景图生成图片,将传统的文本生成图片的过程转化为一个:文本→场景图→图片的过程,从而可以将具有较多物体和关系的文本句子转化为图片来表示)。
例如如下所示:
Challgange
First, we must develop a method for processing the graph-structured input;
Second, we must ensure that the generated images respect the objects and relationships specified by the graph;
Third,we must ensure that the synthesized images are realistic
(首先,必须开发一种处理图形结构输入的方法;
其次,必须确保生成的图像涉及图形指定的对象和关系;
第三,必须确保合成图像真实。)Relate work(some methods)
Generative Image Models:
a.GANs:learn a generator for synthesizing images and a discriminator classifying images as real or fake;
b.Variational Autoencoders :use variational inference to jointly learn
an encoder and decoder mapping between images and latent codes; c.Autoregressive approaches model likelihoods by conditioning each pixel on all previous pixels.
(图像生成模型包含了Gan、可变分的自动编码器以及自回归方法)
Conditional Image Synthesis:
a.GANs can be conditioned on category labels by providing labels as an additional input to both generator and discriminator or by forcing the discriminator to predict the label ;
( 可以通过将标签作为对生成器和鉴别器的附加输入或通过强制判别器预测标签,来将GAN置于标签类别中。 文中这里采用后一种方法)
b.Chen and Koltun generate high-resolution images of street scenes from ground-truth semantic segmentation using a cascaded refinement network (CRN) trained with a perceptual feature reconstruction loss ;
(经过感知能力重建损失训练的级联细化网络(CRN),从真实语义分割中生成了高分辨率的街道场景图像;文中这里使用了其CRN体系结构从场景布局生成图像)
Scene Graphs:
represent scenes as directed graphs,where nodes are objects and edges give relationships between objects
(场景图将场景表示为有向图,节点是对象,边是对象之间的关系)
Deep Learning on Graphs
More closely related to our work are Graph Neural Networks (GNNs) which generalize recursive neural networks to operate on arbitrary graphs.
(图神经网络(GNN),它使递归神经网络可以在任意图上进行操作)
Work
Do?
a.we propose a method for generating images from scene graphs, enabling explicitly reasoning about objects and their relationships.
b. Our model uses graph convolution to process input graphs, computes a scene layout by predicting bounding boxes and segmentation masks for objects, and converts the layout to animage with a cascaded refinement network. The network is trained adversarially against a pair of discriminators to ensure realistic outputs.
c. We validate our approach on Visual Genome and COCO-Stuff, where qualitative results, ablations, and user studies demonstrate our method’s ability to generate complex images with multiple objects
1.提出从场景图生成图像的方法,可实现对对象及其关系的显式推理。
2.模型使用图卷积来处理输入图,通过预测对象的边界框和分割蒙版来计算场景布局,并将布局转换为级联精炼网络的图片。 该网络经过一对鉴别器的对抗训练,以确保输出真实。
3.在视觉基因组和COCO-Stuff上验证了方法,其中的定性结果,消融和用户研究证明了我们方法能够生成具有多个对象的复杂图像的能力。Model
整个模型如上图所示, 用于从场景图生成图像;在Image generation network F中,输入为指定对象和关系的场景图即 scene graph G 和 噪声 z ,输出为一张图即
1.生成模型:
生成网络F包含Graph Convolution Network、Layout prediction、Cascaded Refinement Network 三部分。2.Scene graph:
Given a set of object categories C and a set of relationship categories R, a scene graph is a tuple (O, E) where O = {o_1, . . . , o_n} is a set of objects with each oi ∈ C, andmE ⊆ O × R × O is a set of directed edges of the form(oi, r, oj ) where oi, oj ∈ O and r ∈ R
物体类别集合为C,关系类别集合为R,一个 scene graph 可表示为元组 (O, E),其中O是graph中的物体集合 ,E 是graph中的关系集合边,作者将每种物体和关系以embedding vector 的形式输入进网络。3.Graph Convolution Network
该图由三个对象o1,o2和o3以及两个边(o1,r1,o2)和(o3,r2,o2)组成。 沿着每条边,三个输入向量被传递给函数gs,gp和go; gp直接计算边的输出矢量,而gs和go计算候选矢量,它们被馈送到对称池函数h以计算对象的输出矢量。
为了对 Scene graph 进行 端对端的学习,作者借用了 Graph Convolution Network 的方法。图卷积是卷积神经网络在 graph domain 的自然推广。图卷积网络是由多个图卷积层构成的,单个图卷积层如下所示
为了计算边缘的输出向量,设置对于一个对象,应该取决于通过图形边缘与连接的对象的所有向量以及那些边缘的向量。 为此,对于从开始的每个边,我们使用来计算候选向量,并收集集合中的所有此类候选; 我们类似地使用来计算所有终止于的边的候选向量的集合。
我们将计算得到的两种表达送入下式得到节点最终的统一表达
(注:,和是使用串联的单个网络实现的,它的三个输入向量,将它们馈入多层感知器(MLP),并使用完全连接的输出头计算三个输出向量。 合并函数h将其输入向量取平均值,对不同长度的集合都能得到一样长度的表达,并将结果馈送到MLP)4.Scene Layout
该网络预测对象的布局,总结所有对象布局给出场景布局。
经过前面图卷积的计算之后,每个物体都能得到更高级的特征表达,根据这个特征表达,我们需要预测相关物体在最终生成图中的位置信息和分割信息
生成图像,必须从图域移动到图像域。为此,作者使用对象嵌入向量来计算场景布局,该场景布局给出了生成图像的粗略 2D 结构,模型如下:
分割信息的预测用的是一个 mask regression network,直接预测一个soft binary 的mask,位置信息的预测用的是一个 box regression network,预测四条边的相关位置的比例
每个对象的嵌入向量被传递给对象布局网络,之后将其传递给掩模回归网络(mask regression network)以预测形状为M×M的软二进制掩模以及框回归网络(box regression network)以预测边界框。 遮罩回归网络((mask regression network)由终止于S形非线性中的多个转置卷积组成,因此遮罩的元素位于(0,1)范围内; box regression network是一个MLP5.Cascaded Refinement Network
CRN由一系列的卷积细化模块构成,每个模块之间是2倍空间分辨率的关系,这就允许以一种由粗到精的方式去生成图片。每个模块接收根据模块输入的分辨率下采样(缩小)后的场景布局和前一个模块的输出。这些输入串联并传递到卷积层,然后在传递到下一个模块之前对输出进行上采样(放大)。6.判别器
为了让图像更真实,作者加入了分别对image 和 object 加上了对抗损失,保证图像和物体都看上去更真实。
图像判别器确保生成的图像的整体外观是真实的,它将规则间隔,重叠的图像块集合分类为真实或伪造。
对象判别器确保图像中的每个对象看起来都是真实的;其输入是一个对象的像素,使用双线性插值法裁剪并重新缩放到固定大小。除了将每个对象分类为真实还是假的,还确保每个对象都可以使用预测对象类别的辅助分类器来识别; 和f都尝试最大化正确分类对象的概率。
Training.(6个Loss)
1.Box loss预测物体的位置信息; 2.Mask loss pixelwise cross-entropy 预测物体的分割信息;
3.Pixel loss生成的图像与真实的图像在像素上一致; 4.Image adversarial loss 让生成的图像更真实;
5.Object adversarial loss让生成的图像中的物体更真实;
6.Auxiliarly classifier loss让生成的物体可被识别。
Experiement
Dataset
Visual Genome ,提供人类注释的场景图。
COCO-Stuff,从真实图的对象位置构造合成场景图。Result
使用分别来自 Visual Genome(左四列)和 COCO(右四列)测试集的图形生成 64×64 图像为例。对于每个示例,都会显示输入场景图和手动将场景图转换为文本; 模型处理场景图并预测由所有对象的边界框和分割掩模组成的布局; 然后这个布局用于生成图像。作者还使用地面实况而非预测的场景布局显示了模型的一些结果。一些场景图具有重复的关系,如双箭头所示。为了清楚起见,忽略了某些东西类别的遮罩,如天空,街道和水。 在每一行中,我们从左侧的简单场景图形开始,逐步添加更多的对象和关系向右移动。图像涉及关系,像「风筝下面的汽车]和「草地上的小船」。
部分实验对比
上表为消融研究,包括
首先作者对比了与StackGAN方法在 Inception Score 上的衡量结果,IS是一个量化的计算指标,值越高,代表图像越真实自然。
1.去掉图卷积、
2.使用图卷积层,但忽略输入场景图中的所有关系
3.去掉判别器(obj、img)
4.去掉地面实况的场景布局
在每个数据集上,作者将测试集样本随机分成 5 组,并报告分组的平均值和标准差。在 COCO 上,通过构建不同的合成场景图,为每个测试集图像生成五个样本。对于 StackGAN,作者为每个 COCO 测试集字幕生成一个图像,并将其 256×256 输出下采样为 64×64,以便与论文中的方法进行公平比较
这里可以重点看一下如果模型去掉图卷积或relationship模块,Inception值会特别低。当然这个模型的最终表现还是比StackGAN 的效果低一点。但是在生成图像与语意契合度的对比实验上,本文方法要比StackGAN要好的多。 上表是预测边界框的统计。R@t 是具有 t 的 IoU 阈值的对象调用。σx 和σ分别通过计算每个对象类别中框 x 位置和面积的标准偏差,然后对各个类别进行求平均来测量框的变化。 上图,作者运用真人问答的方式来统计两种方法的表现,左边是StackGAN,右边是本文方法。同时,作者也对比了两个方法在语意丰富性上面的表现,本文生成的图像在语意层面整体要丰富的多。
此实验测量每种方法的图像中可识别的对象的数量。 在每个试验中,我们都显示一种方法的图像以及COCO对象的列表,并要求用户识别图像中出现了哪些对象总结
1.该模型可以生成多对象的场景,甚至是同一对象类型生成多种实例
2.生成的例子表明该方法生成图像时遵循了对象之间的关系
3.从简单图形开始,逐步构建更复杂的图形来演示模型具有生成复杂图像的能力
Ending~
so tired!
坚持输出不容易!害