论文阅读:Text2Scene

2020-03-05  本文已影响0人  LiBiscuit

三月了~小李又上线了!最近的更新应该都是论文阅读(为了完成组会任务 我可真不容易 害)下面这篇论文主要关于文本到场景的转换。

论文名称:《Text2Scene: Generating Compositional Scenes from Textual Descriptions》
论文地址https://arxiv.org/abs/1809.01110
阅读参考https://blog.csdn.net/Suyebiubiu/article/details/102250194

Background

What to do(Task):Text to Scene
a.Generates various forms of compositional scene representations
from natural language descriptions
b.Focus on generating a scene representation consisting of a list of objects, along with their attributes (e.g. location,size, aspect ratio, pose, appearance).
简单来说,我们要做的是:从给的文本描述来生成各种形式的场景,这个场景表示中包括了多个对象的空间布局及每个对象的属性,包括姿势、表情等。也就是,自然语言描述的可视化表现。

Generate three types of scenes:

a.抽象场景,如上图第一行是将文本转换成卡通抽象的场景
b.图像场景相对应的对象布局(COCO 数据集),第二行生成布局
c.针对对应的图像合成场景(coco数据集中),第三行生成了多只大象的合成的图。

Challange:
1.输入的描述语言中可能间接的暗示了对象的某些属性(局部属性)
例如上图第一行“Mike is surprised”应该改变mike的脸部表情
2.输入文本可能会包含复杂的空间属性的信息(空间属性)
例如“Jenny is running towards Mike and the duck” 表示jenny跑的方向依赖于mike和duck的位置
3.输入的文本可能会间接的暗示图像中有一个对象或者一组对象(数量)
例如“some people” 暗示着图像中应该有多个人以及第三行的多只大象。

Some method:
a. Most of the recent approaches have leveraged conditional Generative Adversarial Networks (GANs). 目前在这个任务领域里面使用较多的方法是CGAN,但与此同时在使用此方法生成高质量的合成图片时,对尝试合成具有多个交互对象的复杂场景的图像时,仍然面临着重大的挑战。
b. A graphical mode lwas introduced to generate an abstract scene from textual descriptions,引入了图形化模型来从文本描述生成一个抽象场景.
c.Johnson et al proposed agraph-convolutional model to generate images from structured scene graphs.Johnson等人提出了从结构场景图生成图像的图形卷积模型,被呈现的对象及其关系作为场景图的输入。
d.Hong et al targeted image synthesis using conditional GANs.. Kim et al performed pictorial generation from chat logs.Gupta et al proposed a semiparametric method to generate cartoon-like pictures.Hong等人使用传统的GANs进行图像合成;Kim等人从聊天日志中生成图形;Gupta等人提出了一种半参数化的生成类卡通图像的方法,呈现的对象也作为输入提供给模型,预测的布局前景和背景是由分开训练的模块执行.

Work

Do?
• We propose Text2Scene, a framework to generate compositional scene representations from natural language descriptions.
• We show that Text2Scene can be used to generate, under minor modifications, different forms of scene representations, including cartoon-like scenes, semantic layouts corresponding to real images, and synthetic image composites.
• We conduct extensive experiments on the tasks of abstract image generation for the Abstract Scenes dataset , semantic layout and synthetic image generations for the COCO dataset .
a.提出了Text2Screen模型,一个从自然语言描述中合成场景的框架
b.展示了Text2Screen模型在不同场景中的表现,包括卡通场景,与真实图像对应的语义布局和合成图像组合三个方面
c.对抽象场景数据集的抽象图像生成,COCO数据集的语义布局和合成图像生成做了大量的实验

Model

整个模型的结构如上图所示,我们的模型,首先使用sequence to sequence方法将对象放在了一个空白的画布上,Text2Scene里面:
a.首先模型的开始是文本编码器A,用来可以映射句子的潜在表示,为输入提供一系列的表征
b.接着是图像编码器B,为目前状态的生成场景编码,生成当前的画布
c.之后是卷积循环模块C,用于追踪空间位置,目前已经生成的历史,可以将当前的状态传给下一个步骤。
d.再接是D是注意力模块,集中于输入文本的不同部分,连续不断地集中于输入文本的不同部分
e.紧接着E是一个对象解码器,可以根据当前场景状态于已参与的输入文本预测下一个对象,可以决定放什么对象。
f.而后F是一个属性解码器,基于注意力的预测变量,依次关注输入文本的不同部分,先确定要放置的对象,然后确定要分配给该对象的属性。
g.最后是可选的前向嵌入G来学习合成图像生成任务中批量检索外表特征。

各部分详解
Text2Scene的模型采用了一个seq to seq框架,并介绍了空间推理和顺序推理的关键设计。(补充一下什么是seq to seq?简单来说,字面上是序列到序列的模型,是一种通用的编码器-解码器的框架)
在每一个时间步骤中,模型通过以下三个步骤来修改背景画布:
a.模型关注输入文本,以决定下一个要添加的对象是什么,或者决定生成是否应该结束;
b.如果决定添加一个新对象,则模型在该对象的语言上下文中进行缩放,以决定其属性(如姿态、大小)和与周围环境的关系(如位置、与其他对象的交互);
c.模型将提取出的文本属性返回到画布和场景中,并将其转换为相应的视觉表示。

Text Encoder(文本编码器)

文本编码器的结构:双向GRU
作用:对于给定的句子,我们利用上面的公式计算每个单词w,即把输入的句子映射到嵌入向量的表示。
(这里BiGRU是一个双向的GRU单元,x_i为与第i个单词w_i对应的词嵌入向量,h_i^E为编码当前单词及其上下文的隐藏向量。我们用h_i^Ex_i对,作为编码的文本特征,写作[h_i^E,x_i])

Object and Attribute Decoders(对象和属性解码器)
在每一步t,我们的模型通过对象表V(有k个特征)来预测下一个对象。使用上面生成的文本特征[h_i^E,x_i]和当前画布B_t作为输入,使用卷积神经网络(CNN) 对B_t进行编码,得到一个C×H×W feature map,表示当前场景状态。我们使用卷积GRU (ConvGRU)对历史场景状态{h_t^D}进行建模:


对象和属性解码器的结构:卷积GRU(ConvGRU)
作用:根据当前场景卷积操作后的特征、和上一次生成场景的隐含状态,生成当前场景的隐含状态
(初始隐藏状态是通过文本编码器的最后隐藏状态来创建的。h_t^D提供了场景中每个空间位置的时间动态信息表示。由于这种表示可能无法捕获小对象,因此上一步O_{t-1}中预测的对象的one-hot vector也作为输入提供给下游解码器。初始对象被设置为一个特殊的场景开始标记)

Attention-based Object Decoder(基于注意力的对象解码器)
根据当前生成的图像和输入的信息预测下一个要生成的对象
我们的对象解码器是一个基于注意力机制的模型,输出一个对象词汇表V中所有可能的对象的似然得分。它以循环场景状态h_t^D、文本特征[h_i^E,x_i]和之前预测的对象O_{t-1}作为输入

第一个式子:据对当前画布做加权,池化后,得到对当前场景的注意力向量
第二个式子:据画布的注意力结果和上一步预测的结果,来对输入的文本做加权得到文本的注意力结果。
第三个式子:据画布的注意力结果、文本注意力结果得到这次预测的结果
其中因为画布的表示只表示出了画布中整体的信息,但是对于一些局部的、小的对象,画布表示h不能很好的表示出来 ,所以增加了一项上一次预测的结果,来帮助这一次的预测。
(这里Ψ^0是在h_t^D上有空间attention的卷积网络。Ψ^0的目标是收集对象预测所需的上下文,例如已经添加了哪些对象。已经参加的对象的空间特征通过平均池化得到一个向量U_t^0Φ^0是基于文本的注意力模块,它使用[U_t^0,O_{t-1}]去attend语言上下文[h_i^E,x_i]和收集上下文向量C_t^0。理想情况下,C_t^0对所有描述的对象信息进行编码,这些对象到目前为止还没有添加到场景中。Θ^0是一个双层感知器,它使用一个softmax函数,通过连接后面三个来预测下一个对象p(O_t)的可能性。)
Attention-based Attribute Decoder(基于注意力的属性解码器)
基于注意力机制的属性解码器对响应对象O_t的属性集进行相似的预测。我们使用另一个注意力模块Φ^a捕捉O_t语言上下文信息,提取一个新的上下文向量C_t^a更侧重于与当前对象O_t的内容。对于h_t^D 每个空间位置,该模型预测一个位置似然和一组属性似然。这里,可能的位置被离散成相同的空间分辨率: 第一个式子表示:根据上一次预测的对象,放大对应文本的上下文
第二个式子表示:根据放大后的上下文,关注到画布上对应的区域
第三个式子表示:根据放大的上下文以及相关的画布,得到上一次预测的对象的相关属性,包括位置和其他属性(例如脸部朝向、大小等)
(Φ^a是一个基于文本的注意力模块,将O_t与上下文[h_i^E,x_i]对齐。Ψ^a是一个以图像为基础的注意力模块,旨在找到一个负担得起的位置来添加O_t。在与htD连接之前,C_t^a在空间上被复制。最终的似然映射由卷积网络进行预测,接着是softmax分类器。对于连续属性{如外观向量Qt用于程序检索(下一节)。使用L2-范数对输出标准化。)
Foreground Patch Embedding(前向嵌入模块):
我们预测了特定的属性:外观向量Q_t,仅用于训练生成合成图像组合的模型。与其他属性一样,Q_t对输出特征图中的每个位置进行预测,在测试时用于从其他图像中预先计算的对象段集合中检索类似的补丁。我们使用CNN训练一个patch的嵌入网络,将目标图像中的前向patch压缩成一个一维向量Ft。目标是使用triplet embedding loss来最小化Q_tF_t之间的L2-距离。
Loss function(损失函数)
前三个项是对应于对象,位置和离散属性的对数似然损失为负
softmax分类器。
Ltriplet是可选用于合成图像生成任务的三重态嵌损失。
L _attn是受到双重随机性启发的正则化术语提出注意模块。
这些正则化术语鼓励模型将注意力分散到输入句子中的所有单词上,从而不会丢失任何描述的对象。

Experiments

(I) constructing abstract scenes of clip-arts in the Abstract Scenes dataset; (II) predicting semantic object layouts of real images in the COCO dataset; (III) generating synthetic image composites in the COCO dataset
实验模块分为三大部分,即在“抽象场景”数据集中构造剪贴画的抽象场景(这边指卡通场景); 预测COCO数据集中真实图像的语义对象布局;在COCO数据集中生成合成图像合成。

1.抽象场景的生成
数据集:户外玩的剪贴画形象和物品,包括1000个场景,58个剪贴画
每个剪贴画有3种尺寸、7中姿势、5个表情、两个脸部朝向
句子:每个场景包括三个描述的句子,词汇量是2538个英文单词。
评估方法:
a.自动评估:
1.单个物品的precision/recall
2.边界框有重合的两个物品的precision/recall
3.姿势和表情的分类精度
4.单个物品和多个物品的边界框的宽高比和坐标的欧式距离
b.人工评估:
1.描述下列文本的特征图像是否捕捉到了,包括三个答案:
true false uncertain
2.文本中出现的一个对象、文本中出现的有语义关系的两个对象
3.对象的位置、对象的脸部表情
结果:

从表格可以看到,分四部分实验,和先前(Zitnick et al)对比、没有注意力模块、有基于对象的注意力模块、有基于模块和属性的注意力模块、在有基于模块和属性的注意力模块上还加入了L2-范数对输出标准化。可以看出,最后一个效果最好(即我们采用的模型)具体效果如下图:(text2scene是可以捕获到语义之间的细微差别的,例如两个对象之间的空间关系。)

2.** 预测COCO数据集中真实图像的语义对象布局**
数据集:语义布局包含对象的边界框来自于COCO数据集中定义的80个对象类别。实验中,我们使用val2017拆分作为测试集,并使用来自train2017拆分的5000样本进行验证。
我们将边界框归一化,并按照从下到上的顺序对对象进行排序,因为y坐标通常表示对象与相机之间的距离。我们进一步根据x坐标(从左到右)和分类索引对具有相同y坐标的对象进行排序。(在这里,考虑的属性是位置,包括大小、长宽比。 同时,我们将规格化尺寸范围平均离散为17个音阶)
评价指标: BLEU , METEOR, ROUGE L, CIDEr, SPICE
其中,bleu,meteor,rouge一般用于翻译,cider用于图像字幕的生成,
bleu:指选文到译文的重合度,即n-grams精度的加权平均,偏向较短的翻译的流畅性(N 可取1,2,3,4)
meteor:基于单精度的加权调和平均和单字召回率,解决了bleu的一些缺陷
rouge:和bleu相似,bleu是计算准确率,rouge计算的是召回率
cider:bleu和空间向量的集合。
spice:使用基于图的语义表示来编码 caption 中的 objects, attributes 和 relationships
具体参考:Image Caption 常用评价指标
结果:

布局生成任务中的外部评估,表明了从合成图像性能生成的字母和真实的布局几乎接近。由图6 也可以看出:改模型学会了重要的视觉概念,就像物体的存在与否和数目以及空间关系

3.在COCO数据集中生成合成图像合成
我们通过在COCO数据集中给定输入字幕的情况下生成合成图像合成来演示我们的方法。
数据集:我们使用val2014拆分作为测试集,并使用train2014拆分中的5000个样本进行验证。
通过从COCO-Stuff批注中获取对应语义标签图中的连接组件,从训练图像中提取stuff。 对于object,我们使用COCO中定义的所有80个类别。 对于stuff,我们使用中定义的15个超类别作为类别标签,总共得出95个类别。
评价指标:Inception Score (IS)、以及上一个实验的指标
结果

image.png 对于复杂组合图像的生成,模型不是通过从单一训练图像中简单的检索来生成合成图像,结果图表明模型不仅仅学习一个全局图像检索。

结论:

Seq2Seq的方法(用在剪贴画上)
1.使用语义元素来逐个生成,避免了像素级别的生成纹理信息等操作
2.把生成布局作为单独的任务,可以借鉴到生成真实场景图像中
3.需要利用其他图像出现的共同的pattern来生成当前的图像

优点:
使得生成的任务更加没有歧义,对话可以提供更具体、更细节的描述
缺点:
目前的工作只能用于及其的描述和绘画,暂不适用于人类的描述或者绘画


累了累了~

上一篇下一篇

猜你喜欢

热点阅读