本期推荐的论文笔记来自 PaperWeekly 社区用户 @TwistedW。本文来自微软亚洲研究院,根据描述生成视频是此篇文章实现的目的。通过 LSTM 对描述标题提取特征,再结合噪声经过 3D 反卷积生成视频,利用 GAN 的思想优化生成质量,判别的时候根据视频和描述的匹配关系来判断真假,通过视频、视频帧、帧之间的判别实现了描述到视频的生成。
关于作者:武广,合肥工业大学硕士生,研究方向为图像生成。
■ 论文 | To Create What You Tell: Generating Videos from Captions
■ 链接 | https://www.paperweekly.site/papers/2315
■ 作者 | Yingwei Pan / Zhaofan Qiu / Ting Yao / Houqiang Li / Tao Mei
视频生成在计算机视觉上已经是很困难的工作了,按照描述去生成视频是更具有挑战性的工作。To Create What You Tell: Generating Videos from Captions 简称为 TGANs-C,在实验上实现了由描述的标题生成相对应的视频,这个工作很有意义,整体思想上采取 GAN 为主题框架实现,我们一起来读一下。
论文引入
视频生成的困难在于视频是视觉上连贯和语义相关的帧的序列,也就是在时序序列上做生成,一涉及到时序就存在大量的不确定性,这也是语音和视频生成上的难点所在。
视频通常伴随有文本描述,例如标签或字幕,因此学习视频生成模型对文本进行调节从而减少了采样不确定性,这个是具有很大的潜在实际应用。GAN 在实现时序上的生成我们之前有写到 Temporal GAN 论文解读 [1]、VGAN 论文解读 [2],整体的思想都是采用 3D 卷积处理视频序列从而实现视频的生成。
TGANs-C 和 TGAN 的区别在与 TGANs-C 实现了由描述性文字到视频的生成,这篇论文在基础上借鉴了文本到图片生成的 GAN-CLS 即采用配对的思想,这个我们后续再谈,如果你对 GAN-CLS [3] 印象很深的话这篇文章读起来会很轻松。
通常,在采用标题调节的视频生成中存在两个关键问题:跨视频帧的时间一致性以及标题描述与生成的视频之间的语义匹配。前者产生了对生成模型学习的见解,相邻视频帧通常在视觉上和语义上是连贯的,因此应该随着时间的推移而平滑地连接,这可以被视为产生视频的内在和通用属性。后者追求的模型能够创建与给定标题描述相关的真实视频。
因此,一方面考虑条件处理以创建类似于训练数据的视频,另一方面考虑通过整体利用字幕语义和视频内容之间的关系来规范生成能力,这正是 TGANs-C 所考虑的。
总结一下 TGANs-C 的优势:
这是第一个在标题描述下生成视频的工作之一
实现了视频/帧内容与给定标题对齐
通过一系列广泛的定量和定性实验,验证了 TGANs-C 模型的有效性
TGANs-C模型结构
我们还是先来看一下模型的网络结构:
整体上模型分为左右两块,左边是生成器,右边就是判别器,所以说 TGANs-C 是以 GAN 为主体框架的模型,我们分开来分析。
生成网络
生成网络下由两块组成,下面是标题描述的文本编码,上面就是在噪声和文本编码特征作为输入的生成器。对于文本编码,文章采用的是双向 LSTM 做的编码。文字描述的时序和语义结构是紧密相关的,所以需要保留时序信息,所以 RNN 的思想是处理的关键。对于文本编码过程中采用逐个单词双向处理,双向 LSTM 可以保证文本上更加紧密的时序和语义结构,最终编码到特征维度为文中取的是 256 维。



可以看到,经过 3D 反卷积后,由噪声和文本编码最后生成了彩色的 16 帧大小为 48×48 的视频输出。整个生成器我们可以将标题描述特征作为条件,整个生成器是类似于条件生成器,由标题描述特征作为条件生成对应的视频。
判别网络
TGANs-C 有着强大的判别网络,文章为了实现判别效果设计了 3 个判别器,图中对应的是右半边上、中、下。
上面一路的判别器命名为,它的目的是为了区别生成的视频和真实的视频的真假,为了保证与标题描述对应,在最后嵌入了标题特征做匹配。这个思想在 GAN-CLS 最早被应用,为了实现和描述文本的匹配,在判别器的设计上增强了判别器的能力。
判别器不仅判断视频的真假还判断视频是否和标题描述对应,配对就这样产生了,由 3 组配对关系:真实视频和正确标题描述、生成视频和真实标题描述
还有就是真实视频和错误标题描述
。判别器
只有在真实视频和正确标题对应上才判断为真,否则为假,即
真,
、
为假。与之对应的损失函数为:
中间一路的判别器命名为 D1,它的目的是为了区分对应的视频帧的真假,同样的加入了与标题描述的匹配,用描述视频的第 i 帧对应的图像,对于整个视频一共有
帧,这个判别器对应的损失为:
下面一路的判别器命名为 D2,它的目的是为了在时序上调整前后帧的关系,一般视频中前后帧之间不会有太大的变动,由此思想文章设计了时序关联损失。它的作用是保证视频的前后帧之间不会有太大的差异,用 D 表示:
由于决定生成的视频帧的帧之间的关系的是生成器,对于真实视频没必要再做差异优化,所以这部分主要作用的是生成器,这一块的损失可以写为:
为什么这里的上标为 1 呢,因为对应的还有 2,这一部分是考虑到生成视频帧之间的关联差异,从动态差异上实现对抗又会怎么样呢?这就是另一种实现时序关联的方法。 这一部分用 Φ2 判断真假,此损失表示为:
文中对时序关联上采取的方法 (1) 时间相干约束损失命名为 TGANs-C-C,对于方法 (2) 时间相干性对抗性损失命名为 TGANs-C-A。从后续的实验上验证出 TGANs-C-A 的方法效果更好,所以文章的名字 TGANs-C 其实指的是 TGANs-C-A。
整合一下,对于方法 (1) TGANs-C-C 对应的判别器和生成器最终损失为:
对于方法 (2) TGANs-C-A 对应的判别器和生成器最终损失为:
最后贴上实现整个 TGANs-C 的伪代码:
TGANs-C实验
实验的数据集选择了单数字边界 MNIST GIF(SBMG),两位数的弹跳 MNIST GIF(TBMG)和微软研究视频描述语料库(MSVD)。
SBMG 是通过在 64×64 帧内弹出单个手写数字而产生的。它由 12,000 个 GIF 组成,每个 GIF 长 16 帧,包含一个 28×28 左右移动的数字左右或上下。数字的起始位置是随机均匀选择的。每个 GIF 都附有描述数字及其移动方向的单句。
TBMG 是 SBMG 的扩展合成数据集,包含两个手写数字弹跳,生成过程与 SBMG 相同,每个 GIF 中的两个数字分别左右或上下移动。MSVD 包含从 YouTube 收集的 1,970 个视频片段。每个视频大约有 40 个可用的英文描述。在实验中,手动过滤掉有关烹饪的视频,并生成 518 个烹饪视频的子集。数据集的部分描述如下图:
TGANs−C1 为仅考虑视频对抗,TGANs−C2 为考虑了
未考虑
,TGANs-C-C 和 TGANs-C-A 都已经知道了构成,这几个对比结果为:
定性分析不同模型产生的结果如下图,主要对比了 VGAN、Sync-DRAW(基于 VAE 实现的)、GAN-CLS 和 TGANs-C。
定量上以不同人的选择,给分越低效果越好,TGANs-C 也展示了很好的效果:
总结
TGANs-C 实现了标题描述到视频的生成,正如文章的题目说的那样 To Create What You Tell!虽然这个题目有点大,但是确实在理论上是可以行得通的。匹配的思想对于严格的固定生成来说是很重要的一个技术环节,可以借鉴在很多地方,正是这种严格的配对关系往往限制了一些发展,因为这种算是全监督式学习了。无监督下条件生成是最为困难的,这个也是未来大家一起努力的地方。