写在前面
这篇论文是2015年发在CVPR上的,实现了对视频帧序列输入、文字序列输出的一个端到端视频描述模型。
这篇论文提出的利用LSTM解决视频与文字可变长度的解决思路,以及整个视频描述的S2VT网络结构设计都是比较经典的,我在很多最新几年发表的视频描述相关的论文中都看到了S2VT的影子,个人觉得这篇文章具有很好的学习价值。
arxiv原文链接:sequence to sequence:video to text
摘要
现实世界中的视频多种多样,一个好的视频描述方法应该对时序结构具有敏感性,且能够满足输入的视频帧和输出的文本是长度可变的。本文提出了一种用于生成视频描述的端到端模型,实现从视频帧序列到单词序列的转换。本文探索了递归神经网络,尤其是在图像注释生成领域有着最佳性能的长短时记忆网络LSTM。实验用LSTM对已经标注内容的视频进行训练,进而用来生成输入视频的事件描述。本文提出的模型能够学习视频帧序列以及单词序列中的时间结构。本文在标准的YouTube视频集以及两个电影描述语料库(M-VAD和MPII-MD)上进行了多个模型变种的性能比较。
1 引言
用自然语言文本来描述视觉内容已经成为了研究热点,特别是用一句话来描述图像[8,5,16,18,20,23,29,40]最近受到了越来越多研究人员的关注。而视频描述在人机交互、视频索引以及为盲人电影描述等方面有着重要的应用。图像描述需要解决输出文本序列的长度可变性问题,视频描述同样也需要解决输入视频帧长度的可变性问题。目前在视频描述领域提出的整体视频表示[29,28,11]、帧汇聚[39]、取固定数量的帧做降采样[43]等方法已经解决了可变长度输入的问题。本文提出了一个按序读入帧序列并按序输出文本序列的模型,用端到端的方式进行训练,此模型能够学习输入视频帧序列的任意时间结构。
在开放域视频中生成描述的难点不仅仅在于各种各样的对象、场景、行为和属性的多样性,还在于很难确定显著的内容并在上下文中恰当地描述事件。为了学习什么是值得描述的,我们的模型从配对的视频片段和对应的句子描述中进行学习,使用一种长短时记忆网络LSTM[12]。LSTM是一种循环神经网络,在语音识别[10]和机器翻译[34]等相似的序列到序列模型任务中取得了巨大的成功。另外,由于视频和语言的固有顺序属性,LSTM非常适用于生成视频中事件的描述。
本文的主要贡献在于提出了S2VT这个新模型,它直接学习从帧序列到单词序列的映射关系。如图1所示,S2VT由两个LSTM网络叠加而成,第一个LSTM将通过卷积神经网络提取到的帧特征向量作为输入进行逐个编码。一旦读取完所有的帧,模型会逐个单词的生成一个句子。帧和单词表示的编码和解码工作由平行语料库学习得到。为了更好地表示视频中活动的时序特点,我们还计算了连续帧之间的光学流[2],流图像也是先通过CNN网络并作为输入提供给LSTM网络, 在论文[31,8]中已经展示流卷积网络有益于识别活动类型。
这是第一次将通用的序列到序列模型应用到视频描述中,这使得该模型能够处理可变长度的输入帧,学习并使用视频的时序结构,以及通过学习语言模型来生成既符合语法规范又能自然表达视频内容的句子。该模型同时包含对帧图像输入和光学流图像输入的处理,且不需要精准的注意力模型。我们在标准的YouTube语料库(MSVD)[3]、M-VAD[37]以及MPII电影描述数据集[28]这三个不同数据集上进行实验,都具有比其他相关方法更好的性能。我们基于Caffe[27]这个深度学习框架实现的代码可以在github上找到。
2 相关工作
之前的研究中用于生成句子描述的方法[11,19,36]都由两个阶段组成,首先是识别主语、动词、宾语这些语义内容,然后基于模板生成一个句子。这通常需要先训练个体分类器来识别候选对象,动作以及场景。然后采用概率图模型结合视觉信息和语言模型来判断视频中最有可能的内容,用来生成一个句子。这种方法虽然把内容提取和句子分成做了简化分离,但它需要选择一组相关的对象和动作用来是被,且基于模板的句子生成方法不足以模拟人类描述语言的丰富程度。相反,本文的S2VT模型避免了内容识别与句子生成的分离,直接学习输入视频与相应句子描述之间的映射关系,同时学习了一个以视觉特征为条件的语言模型。
S2VT模型从图像注释生成模型[8,40]中获得灵感,其第一步是通过用CNN网络提取固定长度的图像特征,然后通过LSTM网络将特征向量解码成构成图像描述的单词序列。另外,由于本文使用可变长度的视频作为输入,我们遵循语言翻译模型[34]用LSTM作为序列到序列的转换器。
在论文[39]中,他们为视频中的各个帧分别提取CNN特征,然后对结果进行均值汇聚用来表示整个视频的单个特征向量。然后他们使用一个LSTM作为序列解码器来产生一个基于这个特征向量的语言描述。这种方法的一个主要缺点是完全忽略了视频帧的时序结构。论文[8]中的方法也使用LSTM生成视频描述,然而,他们还是采用了两步法的基本方法,先获得活动、对象、工具和定位的语义元组,然后使用LSTM将这个元组翻译成一个句子。此外,[8]中的模型近适用于烹饪视频的有限领域,而本文是为所有开放域的视频生成描述。
同时期论文[43]也强调了[39]中方法的局限性。在[43]中假定视频有固定的大小,在这个长方体上提取密集的轨迹特征(HoG、HoF、MBF)[41]并连接这些特征作为输入,然后采用3D卷积网络来获取时空运动特征。此外与[39]中取平均不同的是他们还加入了一个注意力机制提高关键帧的权重。
论文[33]中使用LSTM学习之前帧的编码来预测未来的帧序列。他们的模型类似于语言翻译模型[34],使用一个LSTM将输入文本编码为固定长度,另一个LSTM将其解码为不同的语言。相反,本文只使用一个单一的LSTM在输入视频序列和输出文本序列之间学习,即做到编码和解码参数共享。
其他相关工作使用LSTM预测每帧表示的活动类型[24,8]。相比之下,本文的模型不是针对单帧进行的,而是在对整个视频的帧都完整编码之后再生成描述。而且我们的模型集合了原始图像和光学流图像两种输入。
3 实验方法
本文提出了一个序列到序列的模型,其中输入是视频帧序列 输出是单词序列其中输入和输出的长度都是可变的,且通常视频帧长度大于单词序列的长度。
在此模型中,给定输入为视频帧情况下,输出为的概率为:
这个问题类似于自然语言的机器翻译,论文[6,34]最近已经提出了用LSTM结构有效解决序列到序列模型方法。我们将这种方法扩展到由视频帧序列组成的输入,从而显著地简化了基于RNN的视频描述方法。在下文中将会对本文模型结构包括输入输出的表示做一个详细的介绍。
3.1 LSTM序列模型
处理可变长度输入和输出的主要思想是先对帧的输入序列逐帧编码,用向量来表示视频特征,然后将这个特征向量进行解码逐单词的产生一个句子。
首先来回忆一下最先在论文[12]中提出的LSTM长短时记忆网络结构。依赖于论文[44]中提出的LSTM记忆单元,对于每个时间t的输入x, LSTM会计算隐藏状态h和对时间t之间出现的事物的编码记忆单元c。具体的表示如下所示:
在编码阶段,LSTM接收输入,计算其中的隐含状态。在解码阶段定义了在给定X序列的下输出序列的条件概率为:
其中
的分布是对词汇表中所有的单词做softmax得到的,具体见下文式5,而
由公式2可以得到。
3.2 视频帧序列转换为文本序列
论文[6,34]中首先使用一个LSTM将输入序列编码为固定长度,然后用另一个LSTM将向量映射为输出序列。但本文的方法只需要一个LSTM,即编码和解码过程参数共享。
本文的S2VT模型如下图2所示,使用两层LSTM,每个具有1000个隐藏单元。第一个红色的LSTM层用于帧序列进行家建模,输出隐藏状态作为第二层绿色LSTM层的输入用于对最终的输出子序列进行建模。
训练和推理过程:一开始先由顶层LSTM接受帧序列并进行编码,而第二层的LSTM接受第一层的隐含状态h, 并将其与零填充符相连然后编码,这个过程不计算损失值。在所有帧都输出隐含状态后,第二层LSTM送入起始符<BOS>,促使其开始将受到的隐藏状态解码成单词序列。解码阶段进行训练时,在已经知道帧序列的隐藏状态及之前输出的单词的条件下,求预测句子的对数似然性。训练目标就是使得式4到达最大值。
整个训练数据集上使用随机梯度下降算法进行优化,从而使得LSTM学习更合适的隐含状态h。第二层LSTM的输出z通过在词汇库V中寻找最大可能性的目标单词y,具体的如下式所示:
除此,我们还需要一个明确表示句子结束的符号<EOS>,这使得模型能够满足不同长度的输出。在测试阶段,在遇到结束符之前每次都选择一个使得式5获得最大概率的单词。
3.3 视频和文本的表示方法
RGB帧:与之前基于LSTM的图像描述方法[8,40]和视频到文本转换方法[39,43]一样,本文用卷积神经网络对输入的RGB图像进行处理后作为顶层LSTM的输入。实验从256*
256大小的输入帧随机选取227*
227的区域,并采用了AlexNet的一种变体网络模型及16层VGG网络模型[32]的第7个全连接层的输出,然后在ImageNet[30]的子数据集ILSVRC-2012图像集上进行模型的参数训练。
光学流图像:除了将RGB图像作为输入外,我们还将光学流图像作为输入。论文[24,8]中已经证明将光学流图像作为LSTM的输入有助于提高活动分类的精度,由于本文很多视频描述也都是基于活动的,所以将其作为一种输入形式。我们按照[8,9]的方法先提取经典的变分光学流特征[2],然后用类似[9]的方法将x和y的转换到0和255之间,除此将流量大小作为第三个通道加到流量图中。然后使用在UCF101视频数据集上训练好的CNN模型[9]将光学流图像分成101种活动类型,CNN的第6个全连接层输出500维的空间作为LSTM的输入。
在最后的组合模型中,本文使用浅层融合技术来集成RGB特征和流特征。即在解码阶段,会选择使得以下式子达到最大值的单词y:
文本输入:单词的目标输出序列使用1-N方式编码表示,通过对输入数据做线性变换我们将单词嵌入到较低的500维空间中并通过反向传播学习其参数。输出的500维特征向量与第一层LSTM层的输出h连接后作为第二层LSTM的输入。考虑第二层LSTM的输出时,如式5所示我们在整个词汇表上应用一个softmax函数来挑选最有可能的单词。
4 环境配置
本节中先介绍了实验用到的数据集,然后给出了所用的评价标准,最后对于S2VT模型的细节做了一个阐述。
4.1 视频描述数据集
本文在三个视频描述语料库上进行实验:微软视频描述语料库(MSVD)[3],MPII电影描述语料库(MPII-MD)[28],蒙特尔特诗品注释数据集(M-VAD)[37]。这三个语料库一起形成了开放域视频的最大平行语料库。MSVD是借助于人工在网络短视频航注释形成的,而MPII-MD和M-VAD则来自带有描述脚本数据和音频描述的好莱坞电影片段。
如下表1列出了每个语料库的信息:
4.1.1 微软视频描述语料库-MSVD
MSVD[3]是由Mechanical Turk收集的Youtube视频集合,每个视频都有工作人员添加单个活动的句子描述。原始的语料库由多种语言的描述,在本实验中只使用英文描述,除此还做了将所有文本转换为小写,对句子进行标记并去除标点符号这些最小限度的预处理。实验采用了论文[39]提供的数据拆分功能,并每隔士帧进行一次采样。
4.1.2 电影描述语料库-MPII-MD
MPII-MD[28]包含大约从94部好莱坞电影中提取的68,000个视频片段。每个片段都附带一个从电影脚本和音频描述中提取到的文本描述。虽然文本描述跟视频片段的匹配是手动进行的,但由于电影内容的多样性以及大多数片段之后一个可以参考的描述句子,数据处理仍然非常具有挑战性。本文使用该数据集提供的数据,并在每个片段中每隔五帧提取一次,最后得到平均长度为94帧的片段。
4.1.3 蒙特利尔视频描述语料库-M-VAD
M-VAD[37]是另一个从92部电影中收集到的短视频片段数据集,大约包含49,000个短视频。它与MPII-MD类似,所以实验中的处理也采用了与MPII-MD一样的方法。
4.2 评价指标
模型使用METOR[7]来定量评估,该评价指标最初被提出适用于评价机器翻译结果的准确性。METOR根据给定的假设句子和一组候选参考句子之间的对应关系计算得到的,使用WordNet同义词进行比较确切的符号匹配、词汇匹配以及语义相似度上的匹配。METOR在语义当面比BLEU[26]、ROUGE-L[21]或者是CIDEr[38]都好。CIDEr的作者就评估了这四种图像描述方法,他们发现METOR的变现总是优于BLUE和ROUGE,在参考文字资料很大的时候与CIDEr的表现相当,但是当参考资料数量很小时其表现就会比CIDEr出色。考虑到MPII-MD和M-VAD都只有一个语句描述,我们决定使用METOR来评估实验结果。
4.3 网络模型的实验细节
模型的输入都来自于直接输入到CNN中的原始RGB帧或者预处理过的光学流图像。在训练过程中,将LSTM展开成为80个时间步骤,这使得我们能在小批量上适应多个视频。且当以每10帧采一次样时94%的Youtube视频能满足这个限制。对于小于80个时间步长的视频,采用零填充的方法进行补充,而对于较长的视频则截取帧的数目,以确保帧数在此范围之内。在测试阶段,模型对输入视频的长度不做限制,所有采样好的帧都输入到模型中进行处理。实验采用预先训练好的AlexNet和VGG CNN网络结构来提取输入帧的特征。
将本文的从序列到序列的LSTM模型与从AlexNet和16层VGG网络中提取的RGB图像特征进行比较。除此,为了将VGG网络中提取出来的特征与之前的模型进行对比,实验将16层VGG的第7个全连接层的输出用在平均混合模型作为基准线。本文所有的序列到序列实验模型都在表2中的S2VT栏。本文的第一个变种RGB(AlexNet)是在RGB帧上使用了Alex的端到端模型;相应地,Flow (AlexNet)指的是通过训练流图像获取到的模型; RGB(VGG)指的是在16层VGG网络模型上进行对RGB图像的处理。如表2中的第10行所示实验还将随机进行重新排序排序后的帧序列作为输入以验证S2VT模型能够学习时序信息。本文的最终模型是RGB(VGG)和Flow(AlexNet)的集合,而每个时间步骤预测到的单词都是来自单个模型的加权平均。
4.4 相关方法比较
本文将S2VT模型与元素图模型FGM[36]、平均池模型Mean Pool[39]以及软注意力模型[43]进行比较。其中,FGM使用了两步法即首先获得对主语、动词、宾语和情景(S,V,O,P)的置信度,然后将其与语言模型中的置信度结合起来产生最有可能在视频中出现的(S,V,O,P)组合,最后根据模板生成一个句子。
Mean Pool模型将所有将各帧在AlexNet的第7个全连接层的输出平均汇聚,从而获得整个视频的定长特征向量,然后使用LSTM模型将该特征向量解码成单词序列。此外,Mean Pool模型在Flickr30k[13]和MSCOCO[22]这两个图像描述数据集上进行了预先训练,并在MSVD上进行参数优化以提升模型性能。
我们将本文提出的模型与FGM模型、平均池模型以及经过在Flickr30k和MSCOCO进行参数优化后的最佳模型都进行了比较。除此,本文跟进行平均汇聚的GoogleNet[35]变体网络、运用了时间注意力模型的GoogleNet、同样使用了注意力模型的GoogleNet模型和3D-CNN模型的结合都进行了实验效果的对比。实验对比结果如下表2所示:
5 讨论与结果
本节主要对文中的表2、表4以及表5中的实验结果进行进一步的讨论与分析。
5.1 MSVD数据集
表2展示了在MSVD数据集上进行的实验结果。其中第1行到底7行表示了相关的方法,而剩下的是S2VT模型的各个变种。最基本的S2VT模型RGB(AlexNet)的METEOR指标达到了27.9%,比第二行中的用了平均池[39]的AlexNet表现(26.9%)和第三行中的VGG平均池模型(27.7%)都要好, 这证明了S2VT是一个性能很好的方法。从第10行可以看出当用随机排序的帧作为输入时得分很低,这清晰地表明本文提出的模型能学习到时间信息。
当S2VT模型将流图像作为唯一输入时Flow(AlexNet),METOR得分只有24.3%,但是当将其与RGB(VGG)相结合时,性能从原来的29.2%(第11行)提升到29.8%(第12行)。光学流模型表现效果差的一个原因可能在于即使对于相同的活动,光学流特征可能也有很大差别。此外,该模型只能接受到YouTube视频中活动的微弱信号。但是将RGB与FLOW这两种输入类型集成可以提高整个模型的预测质量。
如表2的第7行所示,将RGB和FLOW结合只有的模型比[43]中的结合GoogleNet和3D-CNN的时间注意力模型结果要好。但是第7行的效果提升是由于使用了更强大的3D-CNN模型。因此S2VT与时序注意力模型最好的对比试验应该是没有使用3D-CNN的情况,即第12行与第6行进行对比。
下图3展示了本文的S2VT模型用MSVD语料库对YouTube视频生成的描述。为了比较模型生成的句子的原创性,我们计算了预测的句子与训练集中句子的Levenshtein距离。从表3可以看到对于MSVD语料库,42.9%的预测结果与某些训练语句完全相同,另外的38.3%可以通过在语料库中插入、删除或者替换其中的一个词来得到,而且我们注意到很多生成的句子描述都是相关的。
5.2 电影描述数据集
对于更具挑战性的MPII-MD和M-VAD数据集,本文使用了单一的最佳模型RGB(VGG)。为了避免对电影语料库的过拟合,我们采用了在论文[27]中已经被证明可以有效减轻过拟合的drop-out方法,即随机让节点失活。除此实验还发现在两层LSTM的输入和输出上使用随机失活效果最好。此外,我们还采用ADAM[17]优化器进行优化,第一个动量系数为0.9,第二个动量系数为0.999。
从表4中可以看出对于MPII-MD数据集,本文的METEOR指标比SMT方法[28]的5.6%提高到了7.1%,比平均池方法[39]也提高了0.4%,与Visual-Labels[27]视觉标记法效果相当,该方法是同时期的基于LSTM的方法,不对时间进行编码但是使用了多样化的对象检测器、活动以及场景分类器这样的视觉特征。
下表5为在M-VAD数据集上进行的实验结果,本文模型的METEOR达到了6.7%, 明显优于时间注意力模型43和平均池(6.1%)。在这个数据集上,我们也超越了Visual-Labels27。
除此,我们还给出了结合M-VAD和MPII-MD两个电影数据集的LSMDC挑战的结果。S2VT模型在公共评测系统上达到了7.0的METEOR指标。
图4展示了S2VT模型在M-VAD数据集上生成的一些描述示例。
6 总结
本文提出了一种新颖的从视频帧序列到文本单词序列的视频描述方法,首先按序读入视频帧然后经过模型后逐个单词生成句子。这使得我们能够处理可变长度的输入和输出,同时对视频帧的时间结构建模。实验模型在MSVD数据及上达到了最优的效果,并且在MPII-MD和M-VAD这两个极具挑战性的电影描述数据集上的表现也胜过了其他的相关工作。尽管模型的设计简单,但我们的模型从额外的数据中获益显著,表明其具有很大的模型容量。除此,该模型还能在输入输出的序列中学习时序结构以用于具有挑战性的电影描述数据集。
写在最后
这篇翻译也作为我本科毕业的内容,如需转载还请 注明出处哦~~~
有理解或者翻译不到位的地方,欢迎简信交流!
网友评论