现实世界的视频往往具有复杂的动态性;生成开放域视频描述的方法应该对时间结构敏感,并且允许可变长度的输入(帧序列)和输出(字序列)。为了解决这个问题,我们提出了一种新的端到端序列对序列模型来生成视频字幕。为此,我们开发了递归神经网络,特别是LSTM,它在图像字幕生成方面显示了最先进的性能。我们的LSTM模型基于视频句子对进行训练,并学习将视频帧序列与单词序列相关联,以便在视频片段中生成事件描述。我们的模型自然能够学习框架序列的时间结构以及生成句子的序列模型,即。E语言模型。我们评估了我们模型的几个变体,这些变体在一组标准的YouTube视频和两个电影描述数据集(M-VAD和MPII-MD)上利用了不同的视觉特征。
用自然语言文本描述视觉内容最近受到越来越多的关注,尤其是用一句话描述图像[8,5,16,18,20,23,29,40]。尽管视频描述在人机交互、视频索引和为盲人描述电影等方面有着重要的应用,但到目前为止,人们对它的关注较少。当图像描述处理可变长度的单词输出序列时,视频描述还必须处理可变长度的帧输入序列。视频描述的相关方法已通过整体视频表示[29,28,11]、帧集合[39]或固定数量输入帧的子采样[43]解决了可变长度输入问题。相比之下,本文提出了一种端到端训练的序列到序列模型,该模型能够学习输入序列中的任意时间结构。我们的模型是顺序到顺序的,从某种意义上说,它是按顺序读取帧并按顺序输出单词。在开放域视频中生成描述的问题很困难,这不仅是因为对象、场景、动作及其属性的多样性,还因为很难确定突出的内容并在上下文中适当地描述事件。为了了解什么是值得描述的,我们的模型从视频剪辑和用自然语言描述所描述事件的成对句子中学习。我们使用长短时记忆(LSTM)网络[12],这是一种递归神经网络(RNN),在语音识别[10]和机器翻译[34]等类似的序列到序列任务中取得了巨大成功。由于视频和语言固有的顺序性,LSTM非常适合生成视频中事件的描述。
这项工作的主要贡献是提出了一个新的模型,S2VT,它学习直接将一个帧序列映射到一个单词序列。图1描述了我们的模型。堆叠LSTM首先对帧逐个编码,将应用于每个输入帧的强度值的卷积神经网络(CNN)的输出作为输入。一旦所有帧都被读取,模型就会逐字生成一个句子。帧的编码、解码和单词表示是从并行语料库中联合学习的。为了对视频中通常显示的活动的时间方面进行建模,我们还计算了连续帧对之间的光流[2]。流量图像也通过CNN传递,并作为输入提供给LSTM。流CNN模型已被证明有利于活动识别[31,8]。
图1。我们的S2VT方法使用序列到序列模型执行视频描述。它包含一个堆叠的LSTM,该LSTM首先读取帧序列,然后生成一个单词序列。模型的输入视觉序列由RGB和/或光流CNN输出组成。
据我们所知,这是第一种使用一般序列到序列模型的视频描述方法。这使得我们的模型能够(a)处理可变数量的输入帧,(b)学习并使用视频的时间结构,(c)学习语言模型以生成自然的语法句子。我们的模型是联合学习和端到端学习的,结合了强度和视觉流输入,不需要明确的注意模型。我们证明了S2VT在三个不同的数据集上实现了最先进的性能,一个标准的Y ouTube语料库(MSVD)[3]和M-V AD[37]和MPII电影描述[28]数据集。我们的实现(基于Caffe[15]深度学习框架)可在github上获得。https://github. com/vsubhashini/caffe/tree/recurrent/examples/s2vt。
关于视频字幕的早期工作考虑使用元数据[1]标记视频,并将字幕和视频聚类[14,25,42]用于检索任务。以前的几种生成句子描述的方法[11,19,36]使用了两个阶段的管道,首先识别语义内容(主语、动词、宾语),然后基于模板生成句子。这通常涉及训练单个分类器来识别候选对象、动作和场景。然后,他们使用概率图形模型将视觉自信与语言模型相结合,以估计视频中最可能的内容(主语、动词、宾语、场景),然后使用这些内容生成句子。虽然这通过分离内容生成和表面实现简化了问题,但它需要选择一组相关的对象和动作来识别。此外,基于模板的句子生成方法不足以模拟人类描述中使用的丰富语言。使用哪些属性以及如何有效地组合它们以生成良好的描述。相反,我们的方法通过学习直接将视频映射到完整的人类提供的句子,同时学习以视觉特征为条件的语言模型,避免了内容识别和句子生成的分离。
我们的模型借鉴了[8,40]中的图像字幕生成模型。他们的第一步是通过从CNN中提取特征来生成图像的固定长度矢量表示。下一步学习将该向量解码为组成图像描述的单词序列。虽然原则上可以使用任何RNN来解码序列,但由此产生的长期依赖性可能会导致性能低下。为了缓解这个问题,LSTM模型被用作序列解码器,因为它们更适合于学习远程依赖关系。此外,由于我们使用可变长度视频作为输入,我们使用LSTM作为序列到序列转换器,遵循[34]的语言翻译模型。
在[39]中,LSTM用于通过汇集单个帧的表示来生成视频描述。他们的技术为视频中的帧提取CNN特征,然后平均汇集结果,得到代表整个视频的单一特征向量。然后,他们使用LSTM作为序列解码器,根据该向量生成描述。这种方法的一个主要缺点是,这种表示完全忽略了视频帧的顺序,并且无法利用任何时间信息。[8]中的方法还使用LSTM生成视频描述;然而,他们采用了一种两步方法,即使用CRF获得活动、对象、工具和位置的语义元组,然后使用LSTM将该元组翻译成句子。此外,[8]中的模型适用于烹饪视频的有限领域,而我们的模型旨在生成“野外”视频的描述。
与我们的工作同时,[43]中的方法也从两个方面解决了[39]的局限性。首先,他们采用了一个包含时空运动特征的三维convnet模型。为了获得这些特征,他们假设视频具有固定的音量(宽度、高度、时间)。它们在非重叠长方体上提取密集轨迹特征(HoG、HoF、MBH)[41],并将这些特征连接起来形成输入。3D convnet在视频数据集上进行预训练,用于动作识别。其次,它们包括一种注意机制,该机制学习根据先前的单词输入对框架特征进行非均匀加权,而不是像[39]中那样对所有框架的特征进行均匀加权。3D convnet单独提供有限的性能改进,但结合注意力模型,它显著提高了性能。我们提出了一种更简单的使用时间信息的方法,即使用LSTM将视频帧序列编码为足以生成句子描述的分布式向量表示。因此,我们的直接序列到序列模型不需要明确的注意机制。
最近的另一个项目[33]使用LSTM从先前帧的编码预测未来帧序列。他们的模型更类似于[34]中的语言翻译模型,该模型使用一个LSTM将输入文本编码为固定表示,另一个LSTM将其解码为不同的语言。相反,我们使用一个单一的LSTM,它根据提供的输入学习编码和解码。这允许LSTM在编码和解码之间共享权重。
其他相关工作包括[24,8],它使用LSTM进行活动分类,预测每个图像/流帧表示的活动类别。相反,我们的模型在编码光流图像的完整序列后生成字幕。具体来说,我们的最终模型是基于原始图像和光流图像训练的序列到序列模型的集合。
我们提出了一种用于视频描述的序列到序列模型,其中输入是视频帧序列(x1,…,xn),输出是字序列(y1,…,ym)。当然,输入和输出都是可变的,可能不同的长度。在我们的例子中,通常有比单词多得多的框架。在我们的模型中,我们估计给定输入序列(x1,…,xn)i的输出序列(y1,…,ym)的条件概率。Ep(y1,…,ym | x1,…,xn)(1)这个问题类似于自然语言之间的机器翻译,其中输入语言中的一系列单词被翻译成输出语言中的一系列单词。最近,[6,34]展示了如何使用LSTM递归神经网络(RNN)有效地解决这个序列到序列的问题。我们将这种模式扩展到由视频帧序列组成的输入,大大简化了先前基于RNN的视频描述方法。下面,我们将详细描述我们的模型和体系结构,以及视频和句子的输入和输出表示。
3.1.用于序列建模的LSTMs
处理可变长度输入和输出的主要思想是首先对帧的输入序列进行编码,一次一个,使用潜在向量表示来表示视频,然后从该表示解码为句子,一次一个单词。
让我们首先回顾一下长-短期记忆RNN(LSTM),最初在[12]中提出。根据[44]中提出的LSTM单元,对于时间步长t处的InputXt,LSTM计算隐藏/控制状态hT和存储单元状态cT,这是单元在时间t之前观察到的所有内容的编码:
其中σ是S形非线性,φ是双曲正切非线性,表示元素与门值的乘积,用Wijand Biasesbj表示的权重矩阵是经过训练的参数。
因此,在编码阶段,给定输入序列X(x1,…,xn),LSTM计算隐藏状态序列(h1,…,hn)。在解码过程中,如果输入序列xasp(Y | X)是p(y1,…,ym | x1,…,xn)=m,它定义了输出序列Y(y1,…,ym)上的分布
(3)其中p(yt | hn t)的分布由asoftmax给出,分布在词汇表中的所有单词上(见等式5)。请注意,HN是从HN t获得的−1,yt−1基于方程式2中的递归。
3.2.序列到序列视频到文本
我们的方法S2VT如图2所示。虽然[6,34]首先使用一个LSTM将输入序列编码为固定长度向量,然后使用另一个LSTM将向量映射为输出序列,但我们在编码和解码阶段都依赖于单个LSTM。这允许在编码和解码阶段之间共享参数。
图2。我们提出了一个由两个LSTM组成的堆栈,用于学习帧序列的表示,以便将其解码为描述视频中事件的句子。顶部的LSTM层(红色)为视觉特征输入建模。第二个LSTM层(绿色)为给定文本输入和视频序列的隐藏表示的语言建模。我们使用
我们的模型使用两个LSTM的堆栈,每个LSTM有1000个隐藏单元。图2显示了随时间展开的LSTM堆栈。当两个LSTM堆叠在一起时,如在我们的示例中,第一个LSTM层(红色)的隐藏表示(ht)作为第二个LSTM(绿色)的输入(xt)提供。在我们的体系结构中,顶层LSTM用于对可视帧序列进行建模,下一层用于对输出字序列进行建模。
训练和推理 在前几个时间步骤中,顶部LSTM层(图2中红色)接收一系列帧并对其进行编码,而第二个LSTM层接收隐藏表示(ht)并将其与空填充输入字(零)连接,然后进行编码。当LSTM编码时,此阶段没有丢失。在视频剪辑中的所有帧都用尽后,第二个LSTM层将收到entence()标记的开头,这将提示它开始将当前隐藏的表示解码为一系列单词。当在解码阶段进行训练时,该模型在给定可视帧序列的隐藏表示和它所看到的先前单词的情况下,最大化预测输出句子的对数似然。对于参数为θ且输出序列为(y1,…,ym)的模型,其公式为:
使用随机梯度下降在整个训练数据集上优化对数似然。 仅当 LSTM 正在学习解码时才计算损失。 由于这种损失会及时传播,LSTM 学习生成输入序列的适当隐藏状态表示 (hn)。 第二个 LSTM 层的输出 (zt) 用于获取发出的单词 (y)。 我们应用一个 softmax 函数来得到 words y'
在词汇表V中:
我们注意到,在解码阶段,第一个LSTM层的可视帧表示只是一个零向量,用作填充输入。我们需要一个明确的句子结束标记(
RGB帧。与之前基于LSTM的图像字幕工作[8,40]和视频到文本方法[39,43]类似,我们应用卷积神经网络(CNN)输入图像,并将顶层的输出作为输入提供给LSTM单元。在这项工作中,我们报告了在Caffe参考网(AlexNet的变体)和16层VGG模型上使用fc7层输出(应用ReLU非线性后)的结果[32]。我们使用在1上预训练的CNN。ImageNet数据集[30]的2M图像ILSVRC-2012对象分类子集,并通过Caffe ModelZoo公开提供。1将每个输入视频帧缩放为256x256,并将其裁剪为随机227x227区域。然后由CNN处理。我们移除了原始的最后一个完全连通的分类层,并学习了一个新的线性嵌入特征到500维空间。低维特征构成第一个LSTM层的输入(xt)。嵌入的权重在训练期间与LSTM层一起学习。
光流。除了来自原始图像(RGB)帧的CNN输出外,我们还将光流测量作为输入序列加入到我们的体系结构中。其他文献[24,8]表明,将光流信息纳入LSTM可以改进活动分类。由于我们的许多描述都是以活动为中心的,因此我们也将探讨视频描述的这个选项。我们遵循[8,9]中的方法,首先提取经典的变分光流特征[2]。然后,我们以类似于[9]的方式创建流图像(如图1所示),方法是将XandyFlow值集中在128左右,然后乘以标量,使流值介于0和255之间。我们还计算了流量大小,并将其作为第三个通道添加到流量图像中。然后,我们使用在UCF101视频数据集上训练的权重初始化CNN[9],将光流图像分类为101个活动类。CNN的fc6层激活嵌入在一个较低的500维空间中,然后作为LSTM的输入。对于流输入,LSTM体系结构的其余部分保持不变。
在我们的组合模型中,我们使用浅层融合技术来集成流和RGB特征。在解码阶段的每个时间步,该模型提出一组候选词。然后,我们使用flow和RGB网络的分数加权和重新计算这些假设,其中我们只需要重新计算每个新单词p(yt=y')的分数,如下所示:
在验证集上调整超参数α。
表1。语料库统计。所有数据集中的标记数量是可比较的,但是MSVD对每个视频有多个描述,而电影语料库(MPII-MD、MV-AD)有大量的剪辑,每个剪辑有一个描述。因此,所有3个数据集中的视频句子对的数量是可比的。
文本输入。单词的目标输出序列使用一个热向量编码(N中的1编码,其中N是词汇表的大小)表示。与帧特征处理类似,我们通过对输入数据应用线性变换并通过反向传播学习其参数,将单词嵌入到较低的500维空间。嵌入的字向量与第一个LSTM层的输出(ht)相连,形成第二个LSTM层的输入(图2中标记为绿色)。当考虑LSTM的输出时,我们在完整词汇表上应用softmax,如等式5所示。
本节描述了对我们方法的评估。我们首先描述使用的数据集,然后是评估协议,然后是我们模型的细节。
我们报告了三个视频描述语料库的结果,即Microsoft视频描述语料库(MSVD)[3]、MPII电影描述语料库(MPII-MD)[28]和蒙特利尔视频注释数据集(M-V AD)[37]。它们共同构成了最大的平行语料库,具有开放域视频和自然语言描述。虽然MSVD是基于带有简短人类注释句子的网络剪辑,但MPII-MD和M-V广告包含好莱坞电影片段,其描述来源于脚本数据和音频描述。每个语料库的统计数据如表1所示。
4.1.1个Microsoft视频描述语料库(MSVD)
Microsoft视频描述语料库[3]是在Mechanical Turk上收集的Y outube剪辑的集合,要求工人挑选描述单个活动的短剪辑。然后,这些视频被用来从注释者那里引出单句描述。原始语料库有多种语言的描述,在这项工作中,我们只使用英语描述。我们通过将所有文本转换成小写、标记句子和删除标点符号,对文本进行最小程度的预处理。我们使用[39]提供的数据拆分。此外,在每个视频中,我们按照[39]所做的每十帧采样一次。
412 MPII电影描述数据集(MPII-MD)
MPII-MD[28]包含从94部好莱坞电影中提取的约68000个视频剪辑。每个剪辑都附带一个句子描述,该描述来源于电影脚本和音频描述(AD)数据。广告或描述性视频服务(DVS)是添加到电影中的附加音频曲目,用于为视力受损者描述电影中明确的视觉元素。尽管电影片段是手动与描述对齐的,但由于视觉和文本内容的高度多样性,以及大多数片段只有一个引用语句,因此数据非常具有挑战性。我们使用作者提供的训练/验证/测试分割,每五帧提取一次(视频比MSVD短,平均94帧)。
4.1.3蒙特利尔视频注释数据集(M-V AD)
M-V AD电影描述语料库[37]是另一个最近收集的92部电影中约49000个短片的集合。它类似于MPII-MD,但只包含自动对齐的AD数据。我们使用与MPIIMD相同的设置。
使用METEOR[7]指标对模型进行定量评估,该指标最初用于评估机器翻译结果。流星分数是基于给定假设句和一组候选参考句之间的对齐来计算的。METEOR使用WordNet同义词比较精确的标记匹配、词干标记、释义匹配以及语义相似的匹配。METEOR的这一语义特征使其区别于BLEU[26]、ROUGE-L[21]或苹果酒[38]等其他类型。苹果酒的作者[38]评估了这四种图像描述方法。他们表明METEOR总是比BLEU和ROUGE更好,并且在参考文献数量较少时优于苹果酒(当参考文献数量较多时,苹果酒与METEOR相当)。由于MPII-MD和M-V AD只有一个参考,我们决定在所有评估中使用METEOR。我们使用METEOR版本1。52使用Microsoft COCO评估服务器发布的代码3[4]。
我们所有的模型都以直接送入CNN的原始RGB帧或预处理的光流图像(如第3.3节所述)作为输入。在我们所有的模型中,我们在训练期间将LSTM展开到固定的80个时间步。我们发现这是内存消耗和向LSTM提供多帧(视频)能力之间的一个很好的折衷。此设置允许我们在一个小批量中安装多个视频(AlexNet最多8个,flow模型最多3个)。我们注意到94%的Y ouTube训练视频满足这一限制(帧采样率为1/10)。对于少于80个时间步(单词和帧)的视频,我们用零填充剩余的输入。对于较长的视频,我们会截断帧数,以确保帧数和字数之和在此限制范围内。在测试时,我们不限制视频的长度,我们的模型视图显示所有采样帧。我们使用预先培训过的AlexNet和VGG CNN。对于VGG,我们修复fc7下的所有层,以减少内存消耗并允许更快的训练。
我们将序列到序列LSTM架构与从AlexNet和16层VGG网络中提取的RGB图像特征进行比较。为了将VGG网络的特征与以前的模型进行比较,我们使用16层VGG的fc7层输出作为基线,包括[39]中提出的平均池模型的性能(第3行,表2)。S2VT下的表2中引用了我们的所有序列到序列模型。我们的第一个变体RGB(AlexNet)是在RGB帧上使用AlexNet的端到端模型。流量(AlexNet)是指通过对光流图像进行训练而获得的模型。RGB(VGG)是指在RGB图像帧上具有16层VGG模型的模型。我们还对随机重新排序的输入帧(第10行)进行了实验,以验证S2VT学习时间序列信息。我们的最终模型是RGB(VGG)和Flow(AlexNet)的集合,其中每个时间步的预测是单个模型预测的加权平均值。
我们将我们的序列对序列模型与[36]中的因子图模型(FGM)、[39]中的平均池模型和[43]中的软注意模型进行比较。[36]中提出的FGM采用两步方法,首先获取主语、动词、宾语和场景(S、V、O、P)元素的置信度,并使用因子图将其与语言模型中的置信度相结合,以推断视频中最可能的(S、V、O、P)元组。然后根据模板生成一个句子。
[39]中提出的Mean Poolmodel将AlexNet fc7激活集中在所有帧上,以创建视频的固定长度矢量表示。然后,它使用LSTM将向量解码为一个单词序列。此外,模型ia在Flickr30k[13]和MSCOCO[22]图像字幕数据集上进行了预训练,并在MSVD上进行了微调,以显著提高性能。我们将我们的模型与他们的基本平均池模型以及通过微调Flickr30k和COCO数据集获得的最佳模型进行比较。我们还与[43]中报告的平均池模型的GoogleNet[35]变体进行了比较。[43]中的时间注意力模型是一组固定视频帧上的加权注意力与来自谷歌网的输入特征以及一个基于活动分类模型中的HoG、HoF和MBH特征训练的3D convnet的组合。
本节讨论了表2、4和5所示的评估结果。
表2显示MSVD数据集上的结果。第1行到第7行显示了相关的方法,其余的是S2VT方法的变体。我们的基本S2VT AlexNet RGB视频帧模型(表2中的第9行)达到27。与[39]中的基本平均池模型(第2行,26.9%)以及VGG平均池模型(第3行,27.7%)相比,METEOR和改进率为9%;表明S2VT是一种更有效的方法。当使用随机排序的帧(表2中的第10行)对模型进行训练时,分数要低得多,这清楚地表明模型受益于利用时间结构。
表2。MSVD数据集(流星百分比越高越好)。
我们的S2VT模型使用流图像(第8行)仅达到24。3%METEOR,但改进了我们VGG模型的性能,从29。2%(第11行)至29行。8%(第12行),合并时。流模型性能低下的一个原因可能是,即使对于相同的活动,光流特征也会随环境e而显著变化。 “熊猫吃”与“人吃”。
此外,该模型只接收到与Y ouTube视频中描述的活动类型相关的非常微弱的信号。一些常用的动词如“play”是多义词,可以指演奏乐器(“弹吉他”)或运动(“打高尔夫球”)。但是,将RGB与Flow集成可以提高描述的质量。
我们使用RGB和Flow的集合的性能略优于[43]中提出的最佳模型,即GoogleNet 3D-CNN的时间注意(第7行)。改进的适度规模可能是由于更强大的3D-CNN功能(与GoogleNet单独的差异(第6行)表明)。因此,时间注意模型[43]和S2VT之间最接近的比较可以说是带有VGG的S2VT(第12行)和它们的仅谷歌网模型(第6行)。
图3显示了我们的模型在MSVD的Y outube样本剪辑上生成的描述。为了比较生成中的原创性,我们计算了预测语句与训练集中预测语句的Levenshtein距离。来自表3的MSVD语料库,42。9%的预测与某个训练句子相同,另外38%的预测与某个训练句子相同。通过在训练语料库中插入、删除或替换某个句子中的一个单词,可以获得3%。我们注意到,生成的许多描述都是相关的。
对于更具挑战性的MPII-MD和M-V AD数据集,我们使用单一的最佳模型,即在RGB帧和VGG上训练的S2VT。为了避免对电影语料库的过度拟合,我们采用了drop-out,这在这些数据集上被证明是有益的[27]。我们发现最好在两个LSTM层的输入和输出端使用dropout。此外,我们使用ADAM[17]进行优化,第一动量系数为0。9和第二个动量系数0。999对于表4中报告的MPII-MD,我们将SMT方法从[28]改进为[5]。6%对7%。1%的流星和超过平均水平的池[39]为0。4%. 我们的性能类似于视觉标签[27],这是一种基于LSTM的同期方法,它不使用时间编码,而是使用更多样化的视觉特征,即对象检测器以及活动和场景分类器。
在 M-V AD 上,我们实现了 6.7% 的 METEOR,这显着优于时间注意力模型 [43] (4.3%)4 和平均池化 (6.1%)。 在这个数据集上,我们的表现也优于 Visual-Labels [27] (6.3%)。
我们报告了结合了M-V AD和MPII-MD的TheLSMDChallenge5的结果。S2VT达到7。使用评估服务器的公共测试集上有0%METEOR
在图4中,我们展示了模型在M-V AD数据集中的一些样本剪辑上生成的描述。作者的网页上提供了更多示例视频剪辑、生成的句子和数据6。
表4。MPII-MD数据集(流星百分比越高越好)
表5。M-V AD数据集(流星百分比越高越好)。
本文提出了一种新的视频描述方法。与相关工作相反,我们使用序列到序列模型构造描述,其中帧首先按顺序读取,然后按顺序生成单词。这使我们能够处理可变长度的输入和输出,同时对时间结构进行建模。我们的模型在MSVD数据集上实现了最先进的性能,并且在两个大型且具有挑战性的电影描述数据集上优于相关工作。尽管其概念简单,但我们的模型显著受益于额外的数据,这表明它具有较高的模型容量,并且能够在具有挑战性的电影描述数据集的输入和输出序列中学习复杂的时间结构。