查看原文
其他

CLIP还能做视频字幕任务!腾讯&清华提出CLIP4Caption,ACM MM2021挑战赛第二名!

小马 我爱计算机视觉 2022-05-01



关注公众号,发现CV技术之美





 写在前面


视频字幕(Video captioning)是一项具有挑战性的任务,因为它需要生成描述各种不同复杂视频的句子。现有的视频字幕模型由于忽略了视频和文本之间的差异,缺乏足够的视觉表现力。


为了弥补这一差距,在本文中,作者提出了一个基于CLIP的增强视频文本匹配网络(VTM)来改进视频字幕的CLIP4Caption框架。该框架充分利用了来自视觉和语言的信息,以学习与文本生成密切相关的视频特征。


此外,与大多数使用LSTM或GRU作为句子解码器的现有模型不同,作者采用Transformer结构的解码器网络来有效地学习远程视觉和语言依赖性。此外,作者还提出了一种新的字幕任务集成策略。


实验结果证明了本文的方法在两个数据集上的有效性:


1) 在MSR-VTT数据集上,本文的方法获得了SOTA的结果,在CIDEr中的显著增益高达10%;


2) 根据私有测试数据中,本文的方法在2021年ACM MM multimedia grand challenge:Pre-training for Video Understanding Challenge中排名第二。



 1. 论文和代码地址



CLIP4Caption: CLIP for Video Caption

论文地址:https://arxiv.org/abs/2110.06615

代码地址:未开源


 2. Motivation


描述视频内容对人类来说是一项劳动密集型任务。因此,计算机科学家们投入了大量精力将人类语言与视觉信息联系起来,开发出一种使用自然语言句子自动描述视频的系统。视频字幕技术的进步增强了各种实际应用,例如自动视频字幕、帮助视力受损者、人机交互以及改进在线视频搜索或检索。

早期的视频字幕研究使用了基于模板的方法,将预测的单词与预定义的模板对齐。S2VT提出了一种基于LSTM的序列间视频字幕模型。此后,许多序列学习方法被引入,它们采用编码器-解码器结构来灵活地生成字幕。

RecNet提出了一种重建网络,该网络利用视频到文本和文本到句子流进行视频字幕。在最近几年的研究中,一些研究人员还成功地将视觉语言(VL)预训练用于VL理解,这在图像字幕的下游任务中取得了重大进展。

上述所有方法都使用基于CNN的网络构建视频编码器,由于它们仅利用视觉模态的信息,因此缺乏足够的视觉表示。在本文中,作者提出了一个视频文本匹配网络,该网络通过一个良好的预训练CLIP模型来学习视频嵌入,充分利用视觉和语言模态。

作者首先对视频-文本匹配模型进行预训练,得到文本相关的视频嵌入,然后将这些增强的视频嵌入作为输入,在经过良好训练的transformer解码器网络中进行微调。

值得注意的是,本文的Transofrmer解码器是由预训练Uni-VL模型的部分权重初始化的。大量实验表明,在MSR-VTT数据集上,本文的方法优于SOTA的视频字幕方法。

此外,本文的方法在《ACM MM multimedia grand challenge2021:Pre-training for Video Understanding Challenge》中排名第二,在视频字幕预训练赛道中排名第一。


 3. 方法



上图展示了本文提出的用于视频字幕的CLIP4Caption的框架。作者分两个阶段训练本文的模型。

首先,作者在MSR-VTT数据集上预训练一个视频文本匹配网络,以获得更好的视觉特征 (上图的下半部分)。
然后,作者将预先训练好的匹配网络作为微调阶段的视频特征提取器 (上图的上半部分)。将嵌入的帧序列输入到视频编码器,与生成文本的解码器连接。
对于集成,作者使用不同的编码器和解码器层训练多个字幕模型,并集成所有生成的字幕文本以获得最终的强结果

3.1 Video-text matching pre-training

基于CLIP的CLIP4Clip模型在视频文本检索任务中表现出出色的性能。首先,作者在CLIP4Clip上对视频文本匹配网络(VTM)进行了预训练。CLIP4Clip以1fps的帧率从视频中提取图像帧,每个epoch的输入视频帧来自视频的固定位置。

作者将帧采样方法改进为TSN采样,该方法将视频分成K个分割,并在每个分割中随机采样一帧,从而增加有限数据集上的采样随机性。TSN采样后,输入帧由预训练的CLIP(ViT-B/32)视频编码器编码。将视频的输入视频帧表示为, 视频帧嵌入可以表示为。
文本编码器使用深度为12,宽度为512,带有八个注意头的Transformer编码器,其权重源自预训练的CLIP文本编码器。基于CLIP和CLIP4Clip,[EOS] token对Transformer最高层的激活被用作输入文本的特征表示。输入文本表示为, 相应的文本嵌入表示为
在视频编码之后,作者使用平均池化层来聚合所有帧的嵌入,获得平均帧嵌入。然后定义相似度函数进行视频文本匹配。与CLIP4Clip相似,作者采用余弦相似性来度量联合视频帧嵌入和文本嵌入之间的相似性 , 表示如下:


视频文本匹配采用自监督的方式进行训练。给定一个batch的N个视频文本对,VTM生成N×N个相似度,优化目标是最大化成对视频文本之间的相似度和最小化未成对文本的相似度。因此,损失函数定义如下:


其中分别表示视频到文本和文本到视频的损失函数。

作者使用ViT视频编码器的输出,一系列帧嵌入,作为视频的表示。每个帧都映射到512d的视觉特征,从而对于每个视频,生成𝑛 ×512大小的动态特征,其中n是帧数。

3.2 Fine-tune on video captioning

在微调阶段,作者利用经过预训练的Uni-VL模型,在MSR-VTT数据集的视频字幕上微调Uni-VL的编解码器结构。Uni-VL是一种双流视频和语言预训练模型。在Uni-VL的预训练期间,文本和视频分别输入到文本编码器和视频编码器,交叉编码器将文本嵌入和视频嵌入对齐。

在微调阶段,作者丢弃了文本编码器和交叉编码器,因为数据集的输入视频没有相关的字幕。由于MSR-VTT数据集(用于微调阶段)相对于Uni-VL的预训练数据集(HowTo100M)而言较小,因此难以对整个预训练Uni-VL层进行微调。因此,通过减少Transformer层数,可以更容易训练并防止过拟合。
如上所述,本文的captioning模型由基于Transformer的视频编码器和解码器组成,即强文本相关的视频特征 输入到一层Transformer视频编码器(TE)以获得增强的特征, 然后输入三层Transformer解码器(TD)生成字幕 。作者使用Uni-VL中预先训练的权重初始化TE和TD,并仅使用交叉熵损失训练模型:
其中L是句子的最大长度,是在时间t时预测单词的概率,是在时间t生成的句子。

3.3 Ensemble strategy

单个的模型不够强大,无法产生很好的预测结果。为了获得更强大的captioning效果,作者设计了一种新的基于度量的caption投票策略。作者使用字幕评价指标,如BLEU4, CIDEr, SPICE,等,作为生成句子的“重要性分数”,并选择分数最高的句子组成最终结果。

从数学上讲,考虑由𝑛 个不同的模型生成的一段视频的预测字幕, 第i个caption的重要性评分可以通过假设其余的预测标题作为“ground truth”进行计算:


其中是captioning指标。得分最高的预测字幕𝑆 被选为最终输出。由于字幕任务通常使用多个度量,并且每个度量的值范围不一致,因此作者使用每个度量的最大值对其进行归一化。考虑到有多个指标,总体指标可计算为:



其中,M表示用于计算的度量数量,表示特定度量的最佳数值。多个指标的重要性得分为:




 4.实验

4.1 Pre-training result

上表展示了MSR-VTT上预训练的文本到视频和视频到文本的检索结果。

4.2 Fine-tuning result

上表展示了本文方法和SOTA方法在Video Captioning任务上的结果对比。

4.3 Ensemble result

上表展示了用本文的方法进行多个模型集成的结果。


 5. 总结


在这项工作中,作者专注于学习更好的用于文本生成的视觉表示,并通过视频和语言预训练模型改进视频字幕的性能。作者提出了CLIP4Caption ,一种基于两阶段语言和视频预训练的视频字幕解决方案。

为了更好的视觉表征,作者采用预训练阶段来学习强文本相关的视频特征。此外,为了改进视频字幕,作者使用Uni-VL预训练权重初始化基于编码器-解码器的caption结构,并在MSR-VTT数据集中微调模型。
此外,作者还引入了一种新的集成策略,利用caption度量集成多个模型的生成结果。大量实验表明,本文提出的CLIP4Caption方法显著优于当前SOTA的方法,在视频理解挑战测试数据集中排名第二。


▊ 作者简介

研究领域:FightingCV公众号运营者,研究方向为多模态内容理解,专注于解决视觉模态和语言模态相结合的任务,促进Vision-Language模型的实地应用。

知乎/众号:FightingCV


END




欢迎加入「视频字幕」交流群👇备注:字幕




您可能也对以下帖子感兴趣

文章有问题?点此查看未经处理的缓存