论文阅读:StoryGan

四月啦!小李拖到了现在才来更新,最近真的太Lazy了,真想快乐咸鱼每一天!害 今天还是论文阅读。

论文名称:《StoryGAN: A Sequential Conditional GAN for Story Visualization》
论文地址:https://arxiv.org/pdf/1812.02784.pdf
论文阅读参考:https://blog.csdn.net/weixin_44363205/article/details/105071811
https://blog.csdn.net/Forlogen/article/details/93378325
项目源码:https://github.com/yitong91/StoryGAN

本篇文章只记录个人阅读论文的笔记,具体翻译、代码等不展开,详细可见上述的连接

Background

Task(what to do):
Story Visualization.
Given a multi-sentence paragraph, the story is visualized by generating a sequence of images, one for each sentence
简单来说,就是故事的可视化,我们将输入的文本转化为故事,类似于我们日常所看到的的连环画,在这个任务中,我们是将一各段落输入,然后一句对应一个图,从而产生一个完整的连续的故事。如下图所示,输入为“Pororo and Crong are fishing together.Crong is looking at the bucket. Pororo has a fish on hisfishing rod.”时,包含三个句子,那就需要生成三张图像。我们希望将整个生成的图像序列和故事描述是一致相符


Challenge
a.First, the sequence of images must consistently and coherently depict the whole story. This task is highly related to text-to-image. generation, where an image is generated based on a short description
b.The second challenge is how to display the logic of the storyline.
简单来说分为两个:
1.如何保持生成的图像序列在表达上保持一致性,就单句而言,完成的就是一般意义上的text-to-image的工作
2.如何表示故事的逻辑主线,具体来说,图像中目标的外观和背景布局必须根据故事情节推进以恰当的方式呈现。

Relate work
a.conditional text-to-image transformation
b. textual image editing
c.video generation
d. Cartoon generation
(这边简单说一下,与生成故事的可视化较为关联的是视频生成,但仍然有所差别,在视频生成中需要考虑每一帧的真实性和帧之间过渡的平滑性,而此处我们并不需要考虑后一个问题,即平滑性。除此, 条件视频生成只有一个输入,而我们的任务有顺序的、不断的输入。)

Work

Do?
1.We therefore propose a new story-to-image-sequence generation model, StoryGAN, based on the sequential conditional GAN framework.
2.To evaluate the model, we modified existing datasets to create the CLEVR-SV and Pororo-SV datasets. Empirically, StoryGAN outperforms state-of-the-art models in image quality, contextual consistency metrics, and human evaluation.
1.提出的StoryGAN可以实现根据一段连续的描述文本生成序列的对应图像,对于每一张图像来说,它的要求和之前的Text-to-Image的模型一样,但是所有生成图像的集合也要满足整个描述文本的语义一致性,这是之前模型所无法做到的。
2.提供了两个新的数据集CLEVR-SV和Pororo-SV,实验证明了StoryGAN取得了state-of-the-art的效果。

Model
整个模型如下图所示:

整个StoryGAN可以看做是一个序列化的条件生成对抗网络框架,模型包含Story Encoder、Context Enocder、Image Generator,以及两个Discriminator(image level和story level),其中Context Encoder中又包含GRU单元和Text2Gist单元两部分。
接下来对各个部分进行详解:
在此之前先做一些符号上的规定:

Story Encoder
Story Encoder E(.) 所做的就是将故事描述S随机映射到一个低维的向量空间,得到的向量h_{0},不仅包含了S全部的信息,同时还作为Context Encoder隐状态的初始值。
具体来说,Story Encoder从正态分布中采样嵌入向量h_{0}。即h_{0}∼E(S)=N(μ(S),Σ(S)),其中μ(S)h_{0} 为所满足分布的均值,Σ(S)为分布的协方差矩阵,这里作者为了后续计算的效率,将其限制为一个对角阵,即Σ(S)=diag(σ^2(S))最终h_{0}的表达式可写作h_{0}=μ(S)+σ^2(S)^{\frac{1}{2}}⊙ϵS, where ϵS∼N(0,I)为满足标准正态分布的噪声向量,即StackGAN中Conditioning Augmentation的应用。
总体来看,通过Story Encoder可得到一个关于S 的低维向量。另外:
1.解决原先故事空间不连续的问题---使用了随机采样,不仅在故事的可视化工作中使用了一种更加紧凑的语义表示,而且还为图像的生成过程增加了随机性。
2.增强条件流行在潜在语义空间上的平滑性,避免生成模式坍缩到单个生成点上---引入了正则化项,即计算生成分布和标准正态分布之间的KL散度

Context Encoder
在故事的可视化任务重,角色、动作、背景是经常发生变化的,我们需要解决以下问题:
1.如何从上下文信息中捕获到背景的变化?
2.如何组合新的输入语句和随机噪声来生成图像表示角色间的变化?有时这种变化还很巨大。
作者提出了一种基于深度RNN的上下文编码器(Context Encoder),它由两个隐藏层组成,低一层是标准的GRU单元,另一层是GRU的变体,作者称之为Text2Gist,如下所示:

每一层公式如下:
在时间步 t,GRU 层接受句子s_t和等距高斯噪声ε_t 作为输入,并输出向量i_t。Text2Gist 单元将 GRU 的输出 i_t故事语境向量h_t 结合(h_t 来自故事编码器),生成 o_to_t编码了在时间步 t 需要生成图像的所有必要信息。h_t 由 Text2Gist 更新,以反映潜在的语境信息变化。其中g_{t}的初始状态g_{0}是采样自等距高斯分布。Text2Gist详细的更新公式如下所示:
更新门决定上一个时间步的信息要保留多少,而重置门决定从h_{t-1} 中遗忘多少信息。σ_z 、σ_r 和 σ_h 是非线性 sigmoid 函数。和标准的 GRU 不同,输出o_t 实际上是 Filter(i_t) 和 h_t的卷积结果。
具体来说,Filter(·) 将向量i_t转换为多通道过滤器,其大小是 c_{out} × 1 × 1 × len(h_t )c_{out} 表示输出通道数量。这一过程使用神经网络。由于 h_t是向量,这个滤波器作为 1D 标准卷积层使用。
卷积操作可以被视为帮助s_t从生成过程中挑选重要的信息。实验结果表明,Text2Gist 比传统的循环神经网络在故事可视化上更加高效。

Discriminators
模型中判别器部分存在两个判
1.基于深度神经网络的Image D,保持生成图像的局部一致性,
即比较两个三元组{{s_t,h_0,x_t}}和\{s_{t},h_{0},\hat{x_{t}}\}
2.基于多层感知机的Story D,保持生成图像的全局一致性
Image D只是用来判别生成图像是否足够真实,因此和其他模型中的并无区别。Story D的原理如下所示:将图像和故事文本特征的内积作为输入馈送到全连接层,并使用 sigmoid 非线性函数预测是生成的还是真实的故事对,即判别生成的图像是否在语义上具有连贯性。。

全局一致性分数的计算公式如下所示:
其中,E_{img}(X)为图像的特征向量,E_{txt}(S)为对应的语句的特征向量,其中w w和b 是需要学习的参数。通过语句和图像的配对数据,Story D可以同时考虑局部信息和全局信息。

目标函数与损失

算法过程


总的概括一下:
起初,我们给定一个多句子段落(故事),StoryGAN 使用循环神经网络(RNN),将之前生成的图像信息加入到根据当前句生成图像的过程中。语境信息从Context Encoder中获得,包括堆叠的 GRU 单元和新提出的 Text2Gist 单元。Context Encoder将当前句子和故事向量转换为高维特征向量(Gist),用于之后的图像生成任务。
当故事推进时,Gist 动态更新,以反映故事流中的目标变化和场景变化。在 Text2Gist 组件中,句子被转换为一个隐藏向量,并与经过滤波器的输入做卷积,从而调整以适应整个故事。
为了保证生成图像序列的连贯性,研究人员采用了一个双层 GAN 网络。他们使用了一个图像级别判别器来衡量句子和生成图像之间的相关性,以及一个故事判别器来衡量生成图像序列和整个故事的整体匹配度。

Experiment

由于没有现有的数据集进行训练,研究人员根据现有的 CLEVR和 Pororo >数据集进行了修改,制作了 CLEVR-SV 和 Pororo-SV 两个数据集。

  1. CLEVR-SV 数据集
    原版的 CLEVR 数据集用于视觉问答任务。研究人员使用如下方法将其改造为 CLEVR-SV:
    -将一个故事中最多的目标数量限制在 4 个。
    -目标为金属或橡胶制的物体,有八种颜色和两种尺寸。
    -目标每次增加一个,直到形成一个由四幅图像序列构成的故事。
    -研究人员生成了 10000 个图像序列用于训练,以及 3000 个图像序列用于测试。
  2. Pororo-SV 数据集
    Pororo 数据集原本用来进行视频问答,每个一秒的视频片段都有超过一个手写描述,40 个视频片段构成一个完整的故事。每个故事有一些问题和答案对。整个数据集有 16K 个时长一秒的视频片段,以及 13 个不同角色,而手写描述平均有 13.6 个词,包括发生了什么,以及视频中是哪个角色。这些视频片段总共组成了 408 个故事。

实验部分的基准模型为ImageGAN、SVC和SVFN,后两个是StoryGAN的某种简化形式(类似于消融研究)
SVC: StoryGAN中的Text2Gist单元被编码的故事和描述特征向量的简单级联所取代(如下所示)

SVFN: SVC中的级联被滤波器网络所取代。

Result
CLEVR-SV

其中SSIM 一种衡量两幅图像结构相似度的新指标,其值越大越好,最大为1
从实验结果来看, imagegan未能保持“故事”的一致性,当对象数量增加时,它将属性混合在一起。SVC通过在底部包含故事鉴别器和GRU单元格来解决这个一致性问题。 然而,SVC产生 序列中不可信的图像。 我们假设使用简单的矢量级联不能有效地平衡当前描述和整个故事的重要性. SVFN可以在一定程度上缓解这一问题,但不能完全缓解.总的来说,storygan效果是最好。

Pororo-SV

角色分类准确率。上界为分类器在真实图像中的分类准确率
人类在评价生成图像时在不同指标上的打分。指标包括:图像质量、故事连贯性、相关性。±表示标准差

Ending~
小李累了~午饭时间到啦!

©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 216,163评论 6 498
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 92,301评论 3 392
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 162,089评论 0 352
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 58,093评论 1 292
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 67,110评论 6 388
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 51,079评论 1 295
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 40,005评论 3 417
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 38,840评论 0 273
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 45,278评论 1 310
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 37,497评论 2 332
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 39,667评论 1 348
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 35,394评论 5 343
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 40,980评论 3 325
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 31,628评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,796评论 1 268
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 47,649评论 2 368
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 44,548评论 2 352

推荐阅读更多精彩内容

  • 三月了~小李又上线了!最近的更新应该都是论文阅读(为了完成组会任务 我可真不容易 害)下面这篇论文主要关于文本到场...
    LiBiscuit阅读 1,296评论 1 7
  • 9. 循环神经网络 场景描述 循环神经网络(Recurrent Neural Network)是一种主流的深度学习...
    _龙雀阅读 2,910评论 0 3
  • 最近人工智能随着AlphaGo战胜李世乭这一事件的高关注度,重新掀起了一波新的关注高潮,有的说人工智能将会如何超越...
    MiracleJQ阅读 2,829评论 2 1
  • 1 什么是 Seq2Seq ? Seq2Seq 是一个 Encoder-Decoder 结构的神经网络,它的输入是...
    DejavuMoments阅读 18,605评论 0 11
  • 没想到 寒假在家两个月了!寒假过得有了暑假的感觉…很多东西都因为疫情开始搁置,小李又来更新了。今日依旧是论文阅读系...
    LiBiscuit阅读 2,640评论 0 5