《Multi-modal Dense Video Captioning》(MDVC)论文笔记

时间:2024-03-16 09:20:51

原文链接:

2003.07758v2.pdf (arxiv.org)

代码链接:

v-iashin/MDVC: PyTorch implementation of Multi-modal Dense Video Captioning (CVPR 2020 Workshops) (github.com)

原文笔记:

What:

我们提出了一种新的密集视频字幕方法,该方法能够利用任意数量的模态进行事件描述。具体来说,我们展示了音频和语音模式如何改进密集的视频字幕模型。我们应用自动语音识别 (ASR) 系统来获得语音的时间对齐的文本描述(类似于字幕),并将其视为不同于视频帧和相应的音频轨道的单独输入。我们将字幕任务制定为机器翻译问题,并利用最近提出的 Transformer 架构将多模态输入数据转换为文本描述。

简而言之就是有三个输入:视频帧几特征,音频信号,音频信号中用ASR提取出的字幕。

该论文突出贡献有两个,

一个是将Transformer架构用于Dence Video Caption,摒弃了原始固定句子模式填词的生成模式,转为Encoder-Decoder的生成模式。

一个是将多模态的思想用于Dence Video Caption,整合不同模态的信息帮助输出

从结果上说,当时他的效果还是不错的,但现在已经在出现PDVC,GVL,Vid2Seq以及阿里大模型之后以后MDVC在结果上已经不够看了,但是他的思想是好的。

Why:

以前的密集视频字幕的大部分工作都完全基于视觉信息,完全忽略了音频轨迹。然而,音频和语音,特别是人类观察者在理解环境方面的重要线索。

Challenge:

视频理解现在主要分为Encoder和Decoder两个部分,Encoder中包含两钟层次的特征生成,其中最重要的是事件级的特征生成,该文章采用Bi-SST结构生成Event proposal(事实上还有很多种其他定位方法),该方法也不是最好的,更多的具体细节需要看代码

帧级特征的生成方法套用I3D中规中矩,生成模型也是标准的Transformer方法,多模态concat需要自己重点看下代码

Idea:

文章比较容易懂,(熟悉Transformer,熟悉I3D,网络的画

Model:

原文翻译:

1. Abstract

密集视频字幕是一项从未修剪的视频定位有趣事件并为每个本地化事件生成文本描述(标题)的任务。以前的密集视频字幕的大部分工作都完全基于视觉信息,完全忽略了音频轨迹。然而,音频和语音,特别是人类观察者在理解环境方面的重要线索。在本文中,我们提出了一种新的密集视频字幕方法,该方法能够利用任意数量的模态进行事件描述。具体来说,我们展示了音频和语音模式如何改进密集的视频字幕模型。我们应用自动语音识别 (ASR) 系统来获得语音的时间对齐的文本描述(类似于字幕),并将其视为视频帧和相应的音频轨道的单独输入。我们将字幕任务制定为机器翻译问题,并利用最近提出的 Transformer 架构将多模态输入数据转换为文本描述。我们展示了我们的模型在 ActivityNet Captions 数据集上的性能。消融研究表明音频和语音组件有相当大的贡献,这表明这些模式包含视频帧的大量补充信息。此外,我们利用从原始 YouTube 视频中获得的类别标签,对 ActivityNet Caption 结果进行了深入分析。代码是公开的:github.com/v-iashin/MDVC。

Introduction

大量的免费视频资料提出了对自动方法的需求,以总结和紧凑地表示基本内容。一种方法是根据视频摘要任务[25]的建议,制作一个包含最重要视频片段的短视频略读。或者,视频内容可以用自然语言句子来描述。这种方法可以产生非常紧凑和直观的表示,通常称为视频字幕在文献[58]中。然而,为整个视频制作一个单一的描述对于不受约束的长镜头来说可能是不切实际的。相反,密集视频字幕[24]的目的首先是在时间上定位事件,然后为每个事件生成自然语言描述。图1示出示例视频序列的密集视频字幕。最近在密集视频字幕方面的工作将字幕问题表述为一个机器翻译任务,其中输入是从视频流中提取的一组特征,输出是一个自然语言句子。因此,字幕方法可以被机器翻译领域的最新发展所利用,例如Transformer模型[45]。转换器的主要思想是利用自注意机制对序列中的长期依赖关系进行建模。我们遵循最近的工作[59],在我们的密集视频字幕模型中采用了变压器架构。以前的绝大多数作品都是纯粹基于视觉信息生成字幕[59,48,26,28,53,30,54]。然而,几乎所有的视频都包含音频轨道,这可以为视频理解提供重要的线索。特别是,视频中人们所说的话,可能会对内容描述产生至关重要的影响。在在一个场景中,当有人从对面敲门时,我们只能看到门,但音频帮助我们理解有人在门后面,想要进去。因此,一个模型不可能为它制作一个有用的标题。此外,其他类型的视频,如教学视频、运动视频或视频讲座,对字幕模型来说可能是一个挑战。相比之下,我们构建的模型在字幕生成过程中利用视频帧、原始音频信号语音内容。为此,我们部署了自动语音识别(ASR)系统[1]来提取与时间一致的所说内容的字幕(类似于字幕),并将其与变压器模型中的视频和音频表示一起使用。所提出的模型是使用具有挑战性的ActivityNet Captions[24]基准数据集进行评估的,在该数据集中,我们获得了与当前最先进技术相比具有竞争力的结果。随后的消融研究表明,音频和语音信号有很大的贡献。此外,我们利用YouTube原始视频提供的先前未使用的视频类别标签进行检索和细分分析[2]。我们的模型的程序代码和评估方法将被公开。

2. Related Work

2.1 Video Captioning

视频字幕的早期工作应用了基于规则的模型[22,31,7],其思想是识别一组视频对象,并使用它们来填充预定义的模板来生成句子。之后,通过将字幕问题转换为机器翻译任务 [37],省略了对句子模板的需求。继神经模型在翻译系统[42]方面的成功之后,类似的方法在视频字幕中得到了广泛的应用[57,46,47,58,5,38,18,9,52]。这种方法背后的基本原理是以编码器-解码器方式训练两个循环神经网络 (RNN)。具体来说,编码器输入一组视频特征,累积其隐藏状态,传递给解码器以生成标题。为了进一步提高字幕模型的性能,已经提出了几种方法,包括视觉和文本域之间的共享内存 [49, 34]、空间和时间注意 [56]、强化学习 [50]、语义标签 [11, 32]、其他模态 [55, 19, 51, 13] 以及生成段落而不是一个句子 [36, 58]。

2.2. Dense Video Captioning

受密集图像字幕任务[20]的思想的启发,Krishna等人[24]引入了密集视频字幕的问题,并发布了一个名为ActivityNet字幕的新数据集,该数据集利用了该领域的研究[59,48,26,28,53,30,35,54]。特别是,[48] 采用了上下文感知 [24] 的思想,并推广了时间事件提议模块来利用过去和未来的上下文以及注意力融合来区分字幕与高度重叠的事件。同时,Single Shot Detector (SSD) [27] 的概念也被用于生成事件提议和奖励最大化,以便更好地在 [26] 中字幕。为了减轻 RNN 对序列中的长期依赖关系建模的内在困难,Zhou 等人。 [59] 为密集视频字幕定制了 Transformer [45] 的最新想法。在[28]中,作者注意到字幕可能受益于视频中的对象之间的交互,并开发了循环高阶交互模块来模拟这些交互。熊等人。 [53] 注意到许多以前的模型产生了冗余字幕,并建议以渐进的方式生成字幕,条件是先前的字幕,同时应用段落和句子级别的奖励。同样,[30] 中采用了“鸟瞰图”校正和两级奖励最大化,以实现更连贯的故事讲述。由于每个视频具有时间边界和字幕的视频的人工注释可能很费力,因此已经进行了几次尝试来解决这个问题 [10, 29]。具体来说,[10] 采用了循环一致性的思想,在没有任何配对注释的情况下将一组字幕翻译成一组时间事件,而 [29] 利用教学视频的结构自动收集了无与伦比规模的数据集。

与我们的字幕模型最相似的工作是[59],它也利用了Transformer[45]架构的一个版本。然而,他们的模型仅针对视觉特征设计。相反,我们认为密集视频字幕可能受益于来自其他模式的信息。

2.3. Multi-modal Dense Video Captioning

已经进行了几次尝试,以包括用于密集视频字幕任务的音频和语音 [35, 16, 39] 等附加线索。Rahman等人[35]利用循环一致性[10]的思想构建了一个具有视觉和音频输入的模型。然而,由于监督薄弱,系统并没有达到高性能。Hessel等人[16]和Shi等人[39]采用变压器架构[45]对视频帧和语音段进行编码,为教学(烹饪)视频生成标题。然而,仅限于教学视频的数据集的高结果似乎不是证据,因为语音和字幕已经在此类视频中彼此非常接近 [29]。与上述多模态密集视频字幕方法相比:(1)我们展示了语音和音频模态在无域数据集上的重要性,(2)提出了一种多模态密集视频字幕模块(MDVC),可以缩放到任意数量的模态。

3. Proposed Framework

在本节中,我们简要概述了我们的方法的工作流程,称为多模态密集视频字幕 (MDVC),如图 2 所示。我们方法的目标是对视频中的事件进行时间定位,并为每个事件生成文本描述。为此,我们应用了两阶段方法。首先,我们得到时间事件位置。对于这项任务,我们采用了 [48] 中提出的双向单流时间动作提议网络 (Bi-SST)。BiSST 将 3D 卷积网络 (C3D) [44] 应用于视频帧并提取传递给后续双向 LSTM [17] 网络的特征。LSTM 随着时间的推移积累视觉线索并预测每个位置作为事件的起点/终点的置信度分数。最后,获得一组事件建议(开始/结束时间),并传递到第二阶段以生成字幕。其次,我们生成给定提案的标题。为了从音频、视觉和语音模式生成输入,我们使用膨胀的 3D 卷积 (I3D) [6] 进行视觉和 VGGish 网络 [15] 用于音频模式。对于语音表示作为文本,我们采用了外部 ASR 系统 [1]。为了将文本表示为数字形式,我们使用了类似的文本嵌入,用于字幕编码。然后,这些特征被馈送到单个 Transformer 模型以及来自前一个时间步的标题的单词。Transformer 的输出被传递到生成器,该生成器融合了来自所有模态的输出并估计单词词汇表上的概率分布。在对下一个单词进行采样后,重复该过程,直到获得一个特殊的结束标记。图 1 说明了示例模态和相应的事件标题。

3.1. Temporal Event Localization Module

事件定位模块专门用于生成一组可能包含事件的时间区域。为此,我们采用了[48]中提出的预先训练的双向单流时间动作建议网络(Bi-SST),因为它已被证明在提案生成任务中表现良好。Bi-SST 从视频中提取T个RGB帧videoV = (x1, x2,., xF ) 从而生成一组 4096-d 特征 V ' = (f1, f2,., fT ) 通过在大小为 16 的非重叠段上应用 3D 卷积网络 (C3D),步幅为 64 帧。为了减少特征维度,仅使用 PCA 选择只有 500 个主成分。

考虑到视频的时序关系,在视频序列 V‘的前向和后向传递期间提出事件,然后将得到的分数融合在一起以获得最终的提议集。具体来说,在前向传递期间,LSTM 用于从每个位置 t 的“过去”上下文累积视觉线索,该位置t被视为终点并为每个提议生成置信度分数。

之后,在反向传递期间执行类似的过程,其中特征 V’以相反的顺序使用。这使模型能够感知视频中的“未来”上下文。与前向传递相比,每个位置都被视为提案的起点。最后,通过在每个时间步中每个提案的相应分数相乘来融合来自两个通道的置信度分数,然后根据预定义的阈值进行过滤。

最后,我们获得了一组用于字幕生成 PV = {pj = (startj , endj , scorej )}NVj=1 的 NV 事件建议。

3.2. Captioning Module

在本节中,我们根据示例模态来解释字幕,即视觉。给定视频 V 和一组来自事件定位模块的事件提议 Pv,字幕模块的任务是为 Pv中的每个提议提供一个标题。为了从视频 V 中提取特征,我们采用了在 Kinetics 数据集上预训练的 I3D 网络 [6],该网络产生 1024 维特征。提取的特征和生成的字幕之间的gap由 Transformer [45] 架构填充,该架构已被证明可以在序列到序列设置中有效地编码和解码信息。

3.2.1 Feature Transformer

如图3所示,Feature Transformer架构主要由三个模块组成:编码器、解码器和生成器。编码器输入一组提取的特征vj = (v1, v2,…), vTj)暂时对应于来自PV的提案pj,并将其映射到内部表示序列zj = (z1, z2,…)。, zTj)。解码器取决于编码器zj的输出和嵌入ej≤t = (e1, e2,…)。,等)的标题w≤t = (w1, w2,…wt)。它产生了表达式gj≤t = (g1, g2,…), gt),生成器使用它来为下一个单词p(wt+1|gj≤t)在词汇表上的分布建模。通过获取概率最高的单词来贪婪地选择下一个单词,直到采样到一个特殊的结束标记。用起始令牌初始化标题。两者都被添加到词汇表中。在提供编码器、解码器和生成器的概述之前,我们提出了多头注意力的概念,它是解码器和编码器块的重要组成部分。多头注意力的概念,反过来,很大程度上依赖于我们接下来要描述的点积注意力。(生成这块就类比Transformer就能理解,相当于加Mask的操作)

点积注意力多头注意力的思想取决于计算值加权和的缩放点积注意力。权重是通过对每对查询和键的点积应用 softmax 函数获得的,按 1√Dk 缩放。执行缩放以防止 softmax 函数位于小梯度区域 [45]。形式上,缩放的点积注意力可以表示如下 Attention(Q, K, V ) = softmax(QKT√Dk)V, (1) 其中 Q, K, V 分别是查询、键和值。

多头注意多头注意块在每个编码器层使用一次,在每个解码器层使用两次。该块由H个头组成,允许在保持相同计算复杂度的同时,在每个位置协同考虑来自多个表示子空间的信息[45]。在尺寸为DT的变压器中,每个头部的定义如下:headh(q, k, v) = Attention(qW q h, kW k h, vW v h),(2)其中,q, k, v是矩阵,其列数和行数取决于多头块的位置,但对于land和v具有相同的行数,以使(1)中的计算可行。W q h, W k h, W v h∈RDT ×Dk是可训练的投影矩阵,它将q, k, v从DT映射到Dk = DTH,断言DT是h的倍数。多头注意力,反过来,是所有注意力头部的连接,映射回dts可训练参数矩阵W o∈RDk·H×DT: MultiHead(q, k, v) =head1(q, k, v). . headh (q, k, v)W o。(这块就是最简单的多头注意力)

后面的Decoder,以及Generator和InputEmbedding和positional Encoding都是根Transofrmer一样的思想,看图都懂了,不再赘述,Position-wise Fully-Connected Network事一种作者提出的变化

3.2.2 Multi-modal Dense Video Captioning

在本节中,我们介绍了利用视觉、音频和语音模式的多模态密集视频字幕模块。如图3所示为该模块的示意图。为了表示语音,sj = (s1, s2,…), sT s j),我们使用size512-d的文本嵌入,这与嵌入标题wj6t时使用的文本嵌入相似。为了解释音频信息,给定提案pj,我们提取一组特征aj = (a1, a2,…)。, a j)在音轨上应用预训练VGGish网络的128-d嵌入层[15]。而视觉特征vj = (v1, v2,…)vT v j)由膨胀3D (I3D)卷积网络用1024-d向量编码[6]。为了融合特征,我们为每个模态创建一个编码器和一个解码器,其尺寸与提取的特征的大小相对应。所有解码器的输出在生成器内部融合,形成下一个单词wt+1的分布。

在我们的实验中,我们发现一个简单的两层全连接网络,应用一个连接特征矩阵,在第一层之后激活ReLU,在第二层之后激活softmax,表现最好。网络的每一层都有一个可训练权重矩阵:WF1∈RDF ×DV和WF2∈RDV ×DV,其中df = 512 + 128 + 1024, DV是词汇量。

3.3. Model Training