通过推测语义布局,层级形式文本到图像的合成《Inferring Semantic Layout for Hierarchical Text-to-image Synthesis》一、从文本来推断语义布

perceptual loss 图1. 给定一个文本描述,构成一个语义结构,(box+mask),由前面的两个大条件,合成图片。与Reed的思路很像,但解决方案不同。

一、从文本来推断语义布局

1.bounding box 的生成

    bounding box (图1中的box)决定了生成图片的全局布局,因为,box定义了图片中有哪种目标以及将这些目标放到哪些位置。我们将第 t 个标注的 bounding box 表示为

图二. 其中, b_{t} 里面包含四个变量,分别表示bounding box 的位置和大小 { x , y , w , h }.   l_{t} 是一个在 L 类别上的 one-hot 向量。我们保留了 第( L+1)个类作为结束序列(sequence)的特殊指示。                                                                                            

    举一个one hot 的例子,比如一共有 L=3 个类,猫{ 0, 1} , 兔{ 0, 1  }和 狗{ 0,1},若第 t 个 bounding box 的 label 是狗,那么l_{t} = {0,0, 1}.  若是猫的话,这个one hot向量就变为 l_{t} = {1, 0, 0}。优点是稀疏。缺点是向量长度由类别定。但在文字生成图片的任务中,类别是固定的,所以,one hot 可行。

图三 . box 生成器

    A. box 生成器模型

        box 生成器模型是定义了一个从 输入文本s一组目标bounding box随机映射。使用了一个自回归的解码器为box generator 建模。

图四. 如何建模,将左边这个概率模型分解为右边这个,而右边这个模型,与LSTM解决的问题很切合,比如:LSTM的输入是(之前网络的输出 + 当前输入)。右侧模型输入是(之前box 的分布 + 句子的输入)这位书友写的LSTM很不错。                            

        在生成 box 的过程中,首先为第 t 个目标采样类标签 l_{t} , 然后基于l_{t} 生成坐标信息b_{t} ------ 省略了图三中p() 和 ‘ I ’ 后面条件的内容。 这两个部分分别由一个高斯混合模型和一个类分布模型建模。l_{t}由 类分布得到。 b_{t} 由高斯混合模型得到,论文中解释道,这个高斯模型由一个四变量(x, y, w, h)的高斯混合模型分解为两个两变量(x, y) 和 (w, h) 的高斯混合模型,目的是减少参数个数,就是计算量。一般高斯混合模型中有三个采参数需要估计,π、μ、∑ 。权重系数π是实数,均值μ是四维向量,方差∑是4*4协方差矩阵. 从图三中看,这些参数都是由 LSTM 得到。

图五. 取自于上一个链接,中间模块是LSTM的一个单一神经网络层,  上图中灰色框框分别表示,从上到下,第一个箭头下面的代表c_{t-1}。 第二个箭头下面的是h_{t-1},也就是前一个神将网络的输出。第三个是x_{t}, 每一个神经网络的指导输入。

图六 . box generator 的LSTM模型,θ. 就是得到l_{t}和 高斯混合模型的 π,μ, ∑

    B. 训练box generator

图七. 最小化bounding box 的负对数似然估计,T 表示为多少个目标, l t*是该box 的真实label, l t 是预测的label. 同样b t* 是真实的box. 我们从上式子中看到,为什么没有预测的bt呢?前思后想,我们不需要保证生成的box大小位置与原box是完全一致的。只需要生成的label与真实label接近,并且能够与生成的对应 box 。所以,可能会想在图中演示的情况,文字描述没有明确的人,象的数量,产生的图片,有多个人,或人。

    文中表示λ_{l} = 4,  λ_{b} =1,也说明了,会重视 label, 毕竟 b_{t} 是在 l_{t} 的基础上生成的。

    C. 测试box generator

图八. e_{t}是由LSTM得到的上面的l_{t}

        当采样的类别是L+1时,假设还是上面的one-hot例子,那么当 l_{t}= {0,0,0,1}时,不再去采样B_{t}.


2.shape的生成

    给定一组bounding box, shape生成器目的是预测细节图像结构形成mask。也就是说,对我们之前生成的每一个B_{t},(就是包含标签和大小位置信息的B_{t} ),生成一张二值mask, mask就是在框内的目标形状。如何做呢?首先,因为之前每一个LSTM的每一步都生成一个B_{t},所以我们将分离的B_{t}=H*W转换成B_{t}=H*W*L的feature map, L是类别,仅当在box框的值为1,其他区域值为0。

    目标形状的生成应该满足两个条件,首先,每一个mask应该与box的标签和位置一致,并且能够识别为单一的实体。实例约束。其次,每一个目标的形状应该与周围的上下文对齐,全局约束。为满足这两个条件,使用了两个条件对抗的RNN作为shape 生成器。

图九. 为了看到shape generator 的输入,将box generator也展示。

    A. shape 生成器模型

    对于既包含时间序列,有包含空间信息的问题,使用卷积循环神经网络去做,文中引用是将LSTM的输入和门的操作变为feature map之间的卷积操作。

图十. shape generator

    从上图解释下如何将box变为shape的。首先,每个 Bt 经过两个步长为2,padding为1,3*3的卷积,做一个instance normalization,经过RELU层最终得到编码的T个 16*16*d 的map。instance normalization是对单个layer的所有像素求均值和标准差。 instance normalization 对于生成式的任务会好,自己生成的图片应该与一个batch没有联系。当然,当前的任务第t步,只有一个输入B t,所以只能叫instance吧~ T个map作为每一个双向 CONV-LSTM的输入。在每一个LSTM输出的前段增加随机向量。空间复制,深度连接,几乎在多模态中也是这样做的,之前写的文章应该也提到过。然后经过一层卷积后,按照之前将分离的 B t 转化为一个tensor 的那种形式类似,它是将box框内的值保留,box外的值置为0。然后通过残差块,如上图黄色框内。然后上采样,得到一个mask。那么生成的mask如何判定是否正确呢?使用GAN。

    为了满足第一个条件,每一个mask应该与box的标签和位置一致,并且能够识别为单一的实体。这样设计一个GAN,instance级的GAN,将每一步得到的Bt 和与之对应的 Msak t ,深度相连(channel 方向),GAN来判定是否正确。

    为了满足第二个条件,每一个目标的形状应该与周围的上下文对齐,全局约束。GAN的输入变为所有的mask+ 所有的B t,同样下采样后,GAN判别生成是否合理。

    B.Shape 的训练

    首先我们先看看原始的GAN的损失函数吧。看看跟本文的区别。

图11. 原始GAN的损失函数

       为了满足第一个条件,每一个mask应该与box的标签和位置一致,并且能够识别为单一的实体。    

图12. 训练时instance 级GAN的损失函数

    我们发现,除了原始GAN中 X 变为了(B,M)之外,没什么区别。对了,还有一点,原始输入到GAN中正确的数据分布应该是什么样子的,这里做下猜测,是正样本数据集中包含box的label和大小以及mask的单目标图。啊~~~

图13. 集中所有的instance求均值

    再看看第二个条件的损失函数如何设计的。

图14.B的global是所有的box一层一层链接得到,M的global是所有的mask映射到一张图上。

最终呢,使用了perceptual loss, 测量了真实图片和假图片在特征空间的距离。生成模型中使用perceptual lose是非常常用的,他提高了GAN生成的稳定性。perceptual loss

 图15 . Φl 是从 CNN  中提取的第l层特征


二. Image的生成

    现在我们知道了t给目标的分割mask, 将他们的mask聚合成为一个map, 那么给定map和句子s,这样任务就变成了已知分割区域和句子描述, 来生成真实的图像。就像这篇论文,已知分割区域和文字,得到真实场景的图片

图16. 这是整个网络的缩减图,大致能够知道网络架构,但实际每一部分是单独通过网络得到的。

    A.image生成器模型

    下面讲一下image generator 的网络架构。网络是基于Image-to-image translation with conditional adversarial networks.这篇论文的改进。

图17. 本文所用的条件GAN模型,前片论文的条件GAN不同的是,这列的条件有句子,分割map, 噪声。噪声在生成图片的时候是为了保证生成图片的多样性。

    上图concatenation中灰色部分。M通过一系列的下采样层构建层特征A∈ H*W*d。为了自适应地选择与文本相关的上下文,我们将注意力放在布局特性上。然后使用一个类似于LSTM中门的做法,门。从text得到一个d维向量,让后复制他使它成为W*H*d 的tenser得到S. 然后应用门将S后取sigmoid激活后,与A做乘法。concatenation中蓝色部分如何得到。为了更好的将文字中的背景描述得到,使用分开的全连接层和空间复制来对文本嵌入的方法。然后,橘色部分就是对噪声向量进行空间复制,然后直接将三部分相连得到新的map,接下来将map输入到残差网络,然后decoder解码得到真实图片。解码器用的是得到了下图结果的论文。Photographic Image Synthesis with Cascaded Refinement Networks

图18. cascased decoder 的效果,震惊脸!!小伙伴说,以后是不是会有一门技术来鉴别生成还是真实图片

    每一个上采样层都加入了semantic Mask。因为cascaded 网络可以增加布局结构的条件从而产生更好的目标边界。判别器就如图17所示,同样在下采样的过程中加入了mask。在采样大小变为h' * w' 时,仍然将文字描述空间复制,然后继续采样,最终得到判别器的判别分数。

    B. image 生成器的训练

对抗生成网络-文字到图片的合成Generative Adversarial Text to Image Synthesis ,之前的一篇论文所提到的loss方法,判别器中的输入对除了有对生成图质量的考量——<假图,描述>和<真图,描述>外,添加第三种对文字与图片的匹配度考量——即<真图,不匹配描述> ,这篇论文同样从这个角度出发。

图19. 截取了之前主篇论文的算法步骤部分

图20. 这是这片论文图片生成器的loss

    我们类比下,看一下这里的loss代表了什么意思, 看下图20,第一部分表示mask+与之对应的正确句子+真实的图片。第二部分表示mask+随机生成的错误的句子+真实的图片。第三部分表示mask+与之对应的正确句子+假的图片。与之前想法相同。然后论文中同样应用了perceptual loss.


三. 实验

    1. 实验数据集和评估标准

    MS-COCO来评估实验结果,164000张,80个类,每一张图片都有instance-wise 注释,而且每张图片有5条文本描述。复杂场景,多目标,多样化的场景,所以生成任务是困难的。评价标准有Inception score,caption generation,human evaluation。inception score是衡量生成图片多样性且有意义的能力。caption generation 是为生成图片预测caption,与相同mask真实图片的caption相比,潜在的直觉是,如果能够生成原始的文本,说明生成的图像与输入文本相关,并且它的内容是可识别的。Show and tell: A neural image caption generator.这篇论文来生成caption。评价生成caption的标准有BLEU,METERO,CIDEr。再就有人工判定了Amazon Mechanical Turk。

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏杨熹的专栏

按时间轴简述九大卷积神经网络

timeline ---- 1998, Yann LeCun 的 LeNet5 图像特征分布在整个图像上 在具有很少参数的多个位置上提取类似特征时,具有可学习...

72710
来自专栏机器学习原理

机器学习(4)——逻辑回归Logistic回归softmax回归

前言:这里是分类问题,之所以放到线性回归的下面介绍,是因为逻辑回归的步骤几乎是和前面一样的,写出目标函数,找到损失函数,求最小值,求解参数,建立模型,模型评估。...

4718
来自专栏大数据挖掘DT机器学习

如何训练一个性能不错的深度神经网络

本文主要介绍8种实现细节的技巧或tricks:数据增广、图像预处理、网络初始化、训练过程中的技巧、激活函数的选择、不同正则化方法、来自于数据的洞察、集成多个深度...

33312
来自专栏专知

【干货】KNN简明教程

【导读】本文是Devin Soni撰写的博文,主要介绍k-近邻算法(KNN)的工作原理和常见应用。KNN可以说是机器学习算法中最普遍、最简单的分类方法了,其拥有...

3115
来自专栏机器学习从入门到成神

机器学习之深入理解SVM

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/sinat_35512245/articl...

1352
来自专栏计算机视觉战队

CNN的全面解析(带你简单轻松入门)

亲爱的关注者您好!真的是好久不见,上次与您相见还是8月18日的晚上,不知道35天的时间不见,你们都有了哪些成果?有了哪些成就?有了哪些offer?但是,本平台的...

3347
来自专栏SeanCheney的专栏

《Scikit-Learn与TensorFlow机器学习实用指南》 第4章 训练模型

在之前的描述中,我们通常把机器学习模型和训练算法当作黑箱来处理。如果你动手练习过前几章的一些示例,就能惊奇地发现优化回归系统、改进数字图像的分类器、甚至可以零基...

1152
来自专栏机器之心

机器视角:长文揭秘图像处理和卷积神经网络架构

选自 Analyticsvidhya 机器之心编译 作者:DISHASHREE GUPTA 近日,Dishashree Gupta 在 Analyticsvid...

3586
来自专栏决胜机器学习

神经网络和深度学习(五) ——深层神经网络基础

神经网络和深度学习(五)——深层神经网络基础 (原创内容,转载请注明来源,谢谢) 一、概述 本文是对深层神经网络的基础,主要讨论深层神经网络的算法、公式推导以...

4097
来自专栏企鹅号快讯

机器学习三人行-千变万化的组合算法

本文我们在决策树的基础上,更进一步的讨论由常用机器学习算法进行组合的集成算法,对集成算法最直接的理解就是三个臭皮匠赛过诸葛亮,通常我们已经建立了一些预测效果较好...

2566

扫码关注云+社区

领取腾讯云代金券