读Hierarchical Modular Network for Video Captioning

abstract

      视频字幕的目的是根据内容生成自然语言描述,其中表示学习起着至关重要的作用。现有的方法主要是在监督学习框架内开发的,通过将生成的标题与真实文本进行逐字比较,而没有充分利用语言语义。在这项工作中,我们提出了一个分层模块化网络,在生成字幕之前从三个层次连接视频表示和语言语义。特别是,层次结构由:(I)实体层,它突出显示最有可能在标题中提到的对象。(II)谓词层,学习以高亮对象为条件的动作,由标题中的谓词监督。(III)句子级,学习全局语义表示,由整个标题监督。每一层由一个模块实现。广泛的实验结果表明,该方法在两个广泛使用的基准上(MSVD 104.0%和MSR-VTT 51.5%)优于现有模型。

1. Introduction

      视频字幕旨在从视频中自动生成自然语言描述,在辅助视障人士、人机交互、视频检索等众多应用中发挥着重要作用[7,27,37,43,44,46,50]。尽管这一领域最近取得了进展,但它仍然是一项具有挑战性的任务,因为视频通常包含丰富多样的内容,但只有一些信息与标题相关(例如,许多物体中的两到三个会被捕捉到标题中)。  

     现有的方法旨在学习有效的视频表示,以通过递归解码器生成字幕,这可以大致分为两行工作。第一种方法是设计复杂的视频编码器,以学习更好的视频表示[1,5,6,26,45,51,52]。例如,STG-KD[26]和ORG-TRL[52]构建对象关系图,推理视频对象之间的时空关系。GRU-EVE[1]应用短傅里叶变换[25]在视觉特征中嵌入时间动力学,POS+CG[45]开发交叉门框块,融合外观和运动特征,进行综合表示。然而,这些方法的优化目标是作为字幕生成逐字计算的,忽略了视频表示与其语言对应物之间的相关性。另一种方法是在生成字幕之前缩小视频表示和语言字幕之间的语义差距[28,36,53]。例如,Pan等人[28]学会对齐一个视频的全局表示到整个标题的嵌入。相比之下,Shen et al[36]和Zheng et al[53]将名词和动词与视觉特征相关联,以在细粒度水平上探索视频语言对应。这些方法能够生成更准确的字幕,因为学习了更有代表性的视频嵌入。然而,它们要么专注于全局句的对应,要么专注于局部词的对应,而忽略了细粒度的细节或全局相关性。

在这项工作中,我们提出了一个分层模块化网络来解决上述问题。我们的模型旨在学习三种不同层次上由语言语义监督的视频表示,如图1所示:(I)实体级,它突出了在标题中最有可能被提及的对象,并由标题中的entities1监督。(II)谓词层,学习以高亮对象为条件的动作,由标题中的谓词监督。(III)句子级,在整个标题的监督下学习全局视频表示。每一层由一个模块实现。我们设计的动机是对象通常作为视频标题的基石,它可以是动作的主体或对象,也可以是主体和/或对象的修饰符。与其学习动词的视觉表示,我们建议学习谓词(动词+名词)的视频表示。这有助于减少从多含义动词到特定视频动作嵌入的对应错误,例如踢足球和弹钢琴。通过整个标题的嵌入来监督视频内容的全局嵌入,使得生成的标题具有合理的含义。

值得注意的是,我们提出了一个新的实体模块。该模块将视频中所有预提取的对象作为输入,并输出标题中最有可能提到的一小组主要对象。受DETR[3]成功用于目标检测的激励,我们的实体模块设计了一个变压器编码器-解码器架构。与DETR相比,我们的查询由视频内容增强,并由字幕中的实体监督,这使得模型能够根据视频场景选择主要对象。

本文的贡献总结如下:

  • 我们提出了一个层次模块化框架,通过将它们与语言对应物(实体、谓词和句子)相关联,来学习不同粒度的多层次视觉表示。
  • 我们提出了一个基于变压器的实体模块来学习选择标题中最有可能提到的主要对象。
  • 我们的方法在两个广泛使用的基准上与最先进的模型相比表现良好:MSVD[4]和MSR-VTT[48]。

2. Related Work

    从基于模板到基于cnn的方法:对于视频字幕任务,已经提出了许多方法。Kojima等[18]和Krishnamoorthy等[20]提出,首先为对象和动作生成单词,然后将预测的单词放入预定义的句子模板中生成字幕。然而,基于模板的方法很难生成灵活的描述。受RNN和CNN成功的启发,编码器-解码器结构被广泛用于生成具有灵活句法结构的描述[27,44,46]。在[43]中,V enugopalan等人通过对每帧的CNN特征进行均值池化来学习视频表示,并利用LSTM[14]生成字幕。另一方面,Y ao等[50]设计了一种时间注意力机制,在给定文本生成RNN的状态下聚合相关视频片段,对视频的全局时间结构进行建模。除了最常用的图像和运动特征,Hori等[15]和Xu等[49]利用音频特征来丰富视频表示。在[7]中,Chen等人提出了一个PickNet来从视频中选择有信息的帧,去除冗余的视觉信息。最近,Wang等人[47]和Pei等人[30]通过设计一个记忆网络来组织多个视觉特征来提高字幕质量。

   利用检测到的对象。对象在生成标题中发挥着重要作用,通常通过预先训练的对象检测器提取标题(例如YOLO9000 [31], FasterRCNN [33], Mask RCNN[13])。在利用视频的对象信息制作字幕方面已经做出了很大的努力。在[51]中,Zhang等人利用GRU[8]从时间轨迹中捕获对象动态信息。Aafaq等[1]利用对象标签(由对象检测器预测)来增强视觉表示的语义。另一方面,Zheng等[53]采用点积注意机制来帮助确定对象之间的相互作用。此外,Pan等[26]和Zhang等[52]使用图卷积网络[17]在检测到的对象之间执行关系推理,以增强对象级表示。随着详细的视频信息被挖掘,这些方法可以生成更准确的字幕。但是,在这些方法中使用了所有检测到的对象。由于通常在字幕中只提到一小部分对象,大量的冗余对象可能会对字幕性能产生负面影响。相比之下,我们提出了一个实体模块,在本作品的标题中突出显示最有可能被提及的主要对象,减少冗余对象带来的噪音。

   transformer在视觉中的应用。一些方法已经证明了变压器对视觉任务的有效性,如图像分类[10,24,40],目标检测[3,55],视频理解[11,38]和语义分割[54]。在DETR[3]的激励下,它自适应地学习查询来检测对象,在这项工作中,我们开发了一个基于变压器的实体模块来突出显示大量候选对象中的主要对象。实验和烧蚀研究表明了该设计的有效性。

3. Method

如图2所示,我们的模型遵循传统的编码器-解码器范式,其中我们的分层模块化网络(HMN)作为编码器。我们的hmm由实体、谓词和句子模块组成。

这些模块配备了语言头,旨在从三个层次连接视频表示和语言语义。我们的模型运行如下。首先,实体模块以所有检测到的对象为输入,输出主体对象的特征。谓词模块结合主对象和视频运动的特征对动作进行编码。接下来,句子模块考虑到之前生成的对象和动作的全局上下文和特征,为整个视频内容编码全局表示。最后,将所有特征连接在一起并输入解码器以生成字幕。

3.1. Entity Module

给定一组视频帧,我们统一选取T帧作为关键帧,收集近距离视频帧.我们利用预训练的目标检测器并根据边界框之间的IoU从每个关键帧中捕获目标区域,并对这些区域进行聚类。然后对这些聚类进行均值池化操作,得到初始对象特征

,其中L和do表示视频对象的数量和对象特征的大小。由于视频中有大量的对象,但只有一些在标题中提到,我们设计实体模块来学习自适应地突出显示这些主要对象。

体系结构。图3说明了实体模块的主要架构,它由变压器编码器和变压器解码器组成。本设计的灵感来自于DETR[3],它利用一种变压器编码器-解码器架构来学习一组固定的对象查询,从而直接预测对象边界框,用于对象检测任务。

我们的目标不是简单地检测物体,而是确定视频中重要的物体。由于这两种任务之间的显著差异,简单的DETR架构应用的性能很差(见章节4.5)。由于DETR的关键是学习查询,我们稍后将详细设计自己的查询。

 深度学习之目标检测(十一)--DETR详解_木卯_THU的博客-CSDN博客_detr

DETR 论文精读【论文精读】 - 哔哩哔哩

编码器将输入对象O映射到一组表示:

 请注意,与传统的转换器不同,我们放弃了对象的位置编码,因为在对对象特征应用均值池后,对象的空间位置是没有意义的。为了使解码器能够突出显示主要对象,我们的解码器接受三种类型的输入:

 {v}×N为N个相同的视频内容向量,将每个查询qi置于适当的上下文中,从而便于解码N个视频特定的主对象特征。为了构造视频内容向量v,我们首先利用预训练好的二维cnn神经网络[39]和预训练好的三维cnn神经网络[12]从关键帧中提取上下文特征C = {ci}T/i=1,从三维长方体中提取运动特征M = {mi}T/i=1。然后,将C和M串联起来,送入一个BiLSTM,生成一组隐藏状态H = {hi}T/i=1 = BiLSTM({[ci;mi)}T/i= 1)。

 接下来,我们通过max-pooling对H进行聚合,得到一个表示视频内容的嵌入v = maxpool(H)。作为解码器输出,主要对象特征E稍后被馈送到谓词和句子模块以及语言头,如图2所示。语言头通过全连接层将E投影到语言语义空间.

 这个语言头由来自标题的实体嵌入来监督,详见下一小节。

Loss function.我们利用标题中的实体来监督我们的实体模块。具体来说,我们首先获得groundtruth字幕中每个名词在WordNet2中的“同义词标签”。然后,我们选择带有“object.n.01”,“causal agent.n.01”, and “matter.n.03”的标签名词作为实体,抛弃抽象名词

3.2.  Predicate Module

我们的谓词模块被设计用来学习动作表示,它将视频动作信息和标题的谓词连接起来。由于谓词通常由动词及其接受者组成,因此我们的谓词模块将初始运动特征M = {mi}T/i=1和运动相关对象特征Me = {mei}T/i=1作为输入。对于每一个运动mi,我们通过仔细总结主要物体特征来计算其运动相关的物体特征.然后,我们使用一个双向LSTM来编码动作.动作特征A稍后被用作句子模块和谓词语言头的输入。谓词语言头作为一个全连接层,将视频动作投射到语言语义空间:

损失函数:我们利用ground-truth字幕的谓词来监督我们的谓词模块。同样,我们使用SBERT[32]将谓词编码为嵌入p∈Rds。然后,通过最小化p和¯a之间的距离来优化我们的谓词模块:

3.3. Sentence Module

我们的句子模块旨在学习全局视频表示,将全局视觉内容和整个语言标题连接起来。由于标题由实体、谓词和其他上下文信息组成,因此我们的句子模块将初始视频上下文特征,与上下文相关的动作特征,与上下文相关的对象特征作为输入。

损失函数。我们利用整个标题的嵌入来监督句子模块。类似地,标题嵌入s∈Rds由预先训练的SBERT计算。然后我们最小化s和¯g之间的距离来优化我们的句子模块:

3.4. Description Generation

我们使用LSTM作为描述生成器,按步骤生成准确的标题。为了为视频生成准确的描述,我们的描述生成器将所有三个级别的视频表示、它们的语言预测和前面的单词wt−1作为输入.根据LSTM的当前隐藏状态,通过全连接层和softmax运算计算出D个单词的概率分布Pt.

损失函数:给我一段视频,里面有最基本的词语[w1,…], wLs],其中Ls为标题长度,我们计算交叉熵损失来优化我们的描述生成器:然而,视频字幕语料库中的长尾词分布问题可能会导致训练问题.为了缓解这一问题,Zhang等[52]提出了一种插件方法,将丰富的语言知识从预训练的外部语言模型(ELM)转移到描述生成器.为了将知识从ELM转移到描述生成器,在训练过程中最小化Pt和Qt之间的KL发散:

3.5. Training

我们的模型通过优化所有损失的总和以端到端方式进行训练.

4. Experimental Results

在本节中,我们在两个广泛使用的数据集上评估我们的模型:MSVD[4]和MSR-VTT[48]。然后,我们讨论评估指标以及实现细节。接下来,我们将结果与最先进的方法进行比较,并报告两种基准的消融研究。源代码和训练过的模型将向公众开放。

4.1. Datasets

MSVD和MSR-VTT

4.2. Evaluation Metrics

我们使用四个广泛使用的指标来评估我们提出的方法:BLEU@4 [29], METEOR [2], ROUGEL[22]和CIDEr[42](分别用B@4, M, R和C表示)。BLEU@4测量地面真相和生成的字幕之间4克的精度。ROUGEL在比较的句子之间的最长公共子序列上计算精度和召回值的调和平均值。METEOR计算基于字母的加权f分数,并且可以根据字母的表面形式、词干形式和含义来匹配字母。CIDEr对句子中的每个n-gram进行TF-IDF[34]加权。

为了测量候选和参考之间的相似性,CIDEr计算它们的TF-IDF权重形成的向量之间的余弦相似度。根据之前的工作,我们使用Microsoft COCO标题评估代码4来评估生成的标题的质量。

4.3. Implementation Details

特征提取与文本处理。我们为每个视频统一采样T = 15个片段。每个剪辑由16个连续的帧组成。我们将每个片段的第8帧作为关键帧,每个关键帧检测10个对象。与最近的方法[1,5,6,52,53]类似,我们使用InceptionResNetV2[39]模型提取上下文特征,使用C3D[12]模型提取运动特征。此外,我们使用在视觉基因组[19]上预训练的Faster-RCNN[33]来检测目标区域。所有上述的视觉特征都被投影到512维空间中,然后输入到我们的模型中。同样,编码后的视觉特征dmodel的维数被设置为512。

对于标题,我们首先删除标点符号并将所有字母转换为小写字母。标题被截断为20个单词并标记化。我们利用AllenNLP5提供的现成选区解析工具从处理过的标题中提取名词和谓词,其中我们使用WordNet来区分实体和名词,如第3.1节所述。实体、谓词和句子的嵌入大小ds使用现成的预先训练的SBERT[32]设置为768。字嵌入dw的大小设置为300。

Other details.对于我们的实体模块,我们将Eq.(2)中的查询次数N设置为8。实体模块的编码器和解码器都有2层用于MSVD(3层用于MSR-VTT)、8个注意头和512个隐藏状态大小。根据经验,λe为0.6,λp为0.3,λs为1.0,λsof t为0.5。我们采用学习率为1e-4的Adam[16]优化器来优化我们的模型。批大小设置为64,训练周期设置为20。描述生成器的隐藏大小设置为512,在测试期间,我们使用大小为5的光束搜索来生成标题。整个系统使用PyTorch实现,所有实验都在4 × RTX2080Ti GPUs上进行。

4.4. Comparison to State-of-The-Art Methods

我们对所提出的模型与现有方法进行了评估。主要结果如表1所示。

我们的方法在MSVD基准测试中实现了所有四个指标的最佳性能。特别是,我们的方法达到BLUE@4的59.2(+2.3改进)和CIDEr的104.0(+5.5改进)。在MSR-VTT基准测试中,我们的方法在4个指标中的3个指标上取得了最佳结果。请注意,CIDEr比其他指标更好地捕捉了人类对共识的判断。

CIDEr在两个基准测试中的显著改进表明,我们的模型可以生成语义上更准确的标题。请注意,GRU-EVE, STGKD和ORG-TRL专注于设计复杂的视频编码器来学习视频表示,但没有利用视频语言相关性。SAAT将主语、动词和宾语与可视信息联系起来,重点关注局部单词对应。然而,我们的模型通过联合建模三个不同层次的视频语言对应关系,在MSVD上的CIDEr显著领先于他们(+8.8 ~ 25.9),这表明进一步探索视频和句子之间的对应关系具有优势。

4.5. Ablation Study

Effectiveness of Proposed Modules.我们通过移除每个模块并重新训练模型来评估每个模块的有效性。结果如表2的第一组所示。所有提议的模块都对整体性能有显著贡献。实体模块贡献最大,其次是句子和谓词模块。

Effectiveness of Links Between Modules.在我们的模型中,我们调整了模块之间的侧连接。为了评估它们的有效性,我们分别切断了这些侧连接。我们用“cut e2p”表示去掉实体模块和谓词模块之间的连接,用“cut e2s”表示去掉实体模块和句子模块之间的连接,用“cut p2s”表示去掉谓词模块和句子模块之间的连接。结果显示在表2的第二组中。如果没有这些侧连接,性能就会下降,这表明它们对整体性能的贡献。与完全去掉各个模块时的性能相比,性能相对较好。这表明三个模块本身比它们之间的连接设计贡献更大。

Noun. v.s. Entity and V erb. v.s. Predicate.在训练过程中,我们分别用实体和谓词监督实体模块和谓词模块。本文从实体监督改为广义名词监督、谓词监督改为动词监督两个方面分析了替代方案。替代方法的性能比我们的最终模型差,它表明实体和谓词为视频字幕提供了更好的监督。

Principal Objects v.s. All Objects.为了评估选择主对象的有效性,我们将实体模块替换为所有对象的原始嵌入。如表2的“all objects”行所示,模型性能明显下降。这可能是由于许多对象对于视频字幕来说是多余的。

Video Content Enhanced Object Query.在实体模块中,我们使用视频内容向量增强对象查询。为了验证其有效性,我们进行了去除这些向量的实验。结果显示在表2的“w/o v.c.q”行中。如果没有视频内容进行查询,模型性能会显著下降。

Number of Queries查询的数量N会显著影响字幕性能,如图5所示。过多或过少的主对象查询会降低性能。这是因为过多的查询可能引入嘈杂的对象,而过少的查询不能提供足够的信息.

4.6. Qualitative Results

我们在图4中显示了一些定性结果。第一行显示实体模块所参与的对象。区域越清晰,表示注意力权重越高。第二行显示了用于参考的关键帧。如图所示,我们的模型可以生成高质量的字幕。在大多数情况下,主对象区域的选择是正确的,这表明实体模块具有将主对象与所有检测对象区分开来的能力。

我们还注意到实体模块能够忽略一些冗余的帧。例如,左上角的例子显示,我们的实体模块主要关注两个乒乓球运动员,而不是第一帧中的观众。类似地,在右上方和左下方的示例中,我们的实体模块忽略了出现在最后一帧中的对象,因为它们的内容与视频标题没有密切相关。

4.7. Limitations

与现有方法相似[28,35,53],我们的方法适用于单动作视频。然而,在MSR-VTT数据集中存在大量的多动作视频。例如,一个人走进一个房间并与他人交谈有两个单独的动作,即走进一个房间并与他人交谈。现有的方法和提出的模型无法处理这些需要多个谓词的复杂场景。这也是为什么为什么我们的模型在MSR-VTT上的改进不如在MSVD上的改进那么显著。

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值