Vita-CLIP: Video and text adaptive CLIP via Multimodal Prompting

标题:Vita-CLIP: 通过多模态提示进行视频和文本自适应CLIP

源文链接:https://openaccess.thecvf.com/content/CVPR2023/papers/Wasim_Vita-CLIP_Video_and_Text_Adaptive_CLIP_via_Multimodal_Prompting_CVPR_2023_paper.pdficon-default.png?t=N7T8https://openaccess.thecvf.com/content/CVPR2023/papers/Wasim_Vita-CLIP_Video_and_Text_Adaptive_CLIP_via_Multimodal_Prompting_CVPR_2023_paper.pdf

源码链接:https://github.com/TalalWasim/Vita-CLIPicon-default.png?t=N7T8https://github.com/TalalWasim/Vita-CLIP

发表:CVPR-2023 

目录

摘要

1.介绍

2.相关工作

3. Vita-CLIP: 方法

3.1.视频和文本编码

3.2.视频和文本提示学习

3.2.1视频编码器提示学习

3.2.2文本编码器提示学习

3.3.学习目标

4. 结果和分析

4.1. 实验设置与方案

4.2. 监督实验

4.3. Zero-shot 实验

4.4.监督与零样本之间的权衡

4.5. 消融实验

5. 结论

读后总结


摘要

采用像CLIP这样的对比图像-文本预训练模型进行视频分类因其成本效益高且表现出色而受到关注。然而,该领域的最新研究面临一个权衡。对预训练模型进行微调以实现强大的监督性能会导致零样本泛化能力下降。同样,冻结主干网络以保持零样本能力会导致监督准确性显著下降。因为这个原因,文献中的最新研究通常为监督和零样本动作识别训练独立的模型。在这项工作中,我们提出了一种多模态提示学习方案,旨在通过单一统一的训练平衡监督和零样本性能。我们在视觉方面的提示方法涵盖了三个方面:1) 全局视频级提示以建模数据分布;2) 局部帧级提示提供每帧的判别性条件;3) 总结提示以提取简洁的视频表示。此外,我们在文本方面定义了一种提示方案以增强文本上下文。通过这种提示方案,我们在Kinetics-600、HMDB51和UCF101上实现了最先进的零样本性能,同时在监督设置中保持了竞争力通过保持预训练主干网络冻结,我们优化了更少的参数量,并保留了现有的通用表示,从而实现强大的零样本性能。我们的代码和模型将发布在https://github.com/TalalWasim/Vita-CLIP。

1.介绍

在图像分类领域,多模态图像-文本预训练模型如CLIP [58]、ALIGN [31]和Florence [75]展示了学习通用表示的能力。这些模型在大规模语言-图像对上以对比方式训练,具有显著的零样本能力,并且可以很好地迁移到各种下游任务。然而,为视频识别任务训练类似的模型在收集大规模视频-文本对方面不可行,因为这可能会受到对齐问题的影响 [30],并且由于每个视频需要处理多个帧,计算开销也呈指数级增长。因此,研究社区最近开始努力有效地将预训练的图像-文本模型应用于视频识别任务,同时保持它们的零样本能力。在这方面,现有方法可以分为两类。一些方法从最近的提示学习方法 [25, 32, 77, 81, 82] 中获得灵感,提出在文本 [36] 或视觉 [55, 70] 方面的提示学习方案,并加入额外的变压器层以改进时间学习。其他方法则偏向于端到端的CLIP微调方案,用于视频任务 [51, 55, 70]。然而,这些方法的问题在于,它们要么未能有效利用文本和视觉方面的学习 [36, 55],要么通过微调视觉解码器 [47] 或主干网络 [51, 55, 70] 而失去了CLIP的零样本泛化能力。总之,现有的方法可以将模型引导向良好的零样本泛化或更好的视频任务监督学习。由于现实世界的任务需要同时具备监督和零样本能力,我们的工作探讨了以下问题:我们能否开发一个统一的视频模型,在监督学习和零样本泛化任务中都表现良好?

为了回答上述问题,我们提出了一种基于多模态提示的“视频和文本自适应CLIP”。为了有效地将预训练的图像-文本CLIP模型适应于视频,我们考虑了两个重要方面。首先,需要保留原始预训练CLIP主干网络的泛化能力;其次,必须能够有效地适应视频领域。在这方面,我们提出保持整个主干网络冻结,并学习额外的轻量模块来使模型适应视频任务在视觉方面,我们旨在显式利用视频中缺乏的时间信息,而这一信息在冻结的图像模型中是缺失的。我们的方法在三个层次上建模视频信息:首先,通过全局视频级提示学习视频数据的整体分布特征,例如运动和动态;其次,受 [53] 的启发,通过局部帧级提示对每帧的分类标记进行直接条件化,从而建模每帧的判别信息;第三,通过一个总结提示将整个视频序列的响应提炼成一个简洁的总结向量。 

此外,为了更好地建模文本上下文,我们建议在文本编码器上使用可学习的上下文。这一点特别重要的原因是可用视频数据集中的文本信息非常有限。我们无法为每个样本提供文本描述,只能使用类别标签作为文本描述。受 [82] 的启发,我们提出了一种在文本方面的提示学习方法,以更好地建模文本上下文并增强视频类别标签描述。图1展示了我们方法的概述及其试图平衡的权衡。本研究的主要贡献如下:

- 我们提出了一种多模态提示方法Vita-CLIP,用于视频,通过学习视频和文本特定的上下文向量,以有效地将预训练的图像-文本CLIP模型适应于视频识别任务
- 在视觉方面,我们显式地建模时间信息和视频数据分布。我们的提示学习方法聚合了片段中每帧与其他帧的判别信息,同时提供了每层的学习能力以更好地捕捉数据分布。在语言方面,我们的方法学习互补的语义上下文,以更好地适应语言表示。
- 我们在监督和泛化任务上评估了我们的方法,并展示了在单一统一模型中对这两方面的良好平衡。具体而言,在零样本任务上,我们在HMDB-51、UCF101和Kinetics-600数据集上分别比最新的SoTA X-CLIP [55] 提高了4.0%、3.0%和2.2%。

图1. 提出的提示方案概览(左)以及我们尝试在监督和零样本性能之间平衡的权衡(右)。
(a) 我们的提示方法添加了可学习的参数,以在三个层次上学习视频中的视觉和时间信息:一个摘要提示,以学习视频的简要表示;视频级提示,以建模适应视频领域所需的全局分布变化;以及帧级提示,以丰富每帧中的局部判别信息。在文本方面,我们学习提示,以调整视频的语言表示
(b) 零样本与监督性能比较的权衡图,展示了我们的方法和最近的基于CLIP的视频方法。请注意,现有的最新方法 [55] 为零样本和监督设置训练了两个独立的模型,而我们的方法提供了一个统一的模型,对这两种设置进行相同的训练。

2.相关工作

视觉-语言(VL)模型:VL模型 [31, 58, 75] 包括图像和文本编码器,并在大规模图像-文本对上以对比方式训练,以学习图像和文本标签之间的共同特征空间由文本驱动的语义监督使得像CLIP [58]这样的模型能够学习细粒度的视觉概念,这些概念可以迁移到许多下游任务中,如语义分割 [27, 60, 80]、目标检测 [18]、点云分类 [78] 和视频分类 [74]。重要的是,这些模型允许“零样本”知识迁移。在视频领域,存在一些用视频-文本对训练的模型,用于视频检索 [3, 41, 52] 等应用。然而,这些模型并没有在大量视频-文本数据上进行训练。在这项工作中,我们提出了一种新方法,在预训练的VL模型CLIP中引入时间线索,以增强其在视频上的“零样本”泛化能力

视频识别:视频识别中用于时空学习的传统技术从手工制作特征 [16, 38, 68] 发展到端到端深度学习方法 [40]。在基于神经网络的方法中,3D卷积网络(CNNs) [11, 15, 22, 65] 直接从RGB视频数据中学习时空表示,而其他方法使用专门的2D CNNs [23, 34, 69, 72],在独立的网络中学习空间和动态信息,然后将它们融合在一起。关于2D/3D网络在视频中的权衡问题已在 [67, 73, 83] 中探讨。最近,基于Transformer [17] 的架构在视频识别中崭露头角 [4, 7, 19, 54, 59]。在这项工作中,我们提出采用预训练的多模态Transformer [58] 进行时空学习

提示学习:提示学习在NLP领域被提出 [35, 48],它指的是生成特定任务的指令,以获得语言模型的预期行为。这些指令可以手动创建 [9],也可以通过训练离散 [26, 35, 61, 63] 或连续向量 [42, 44] 来学习。提示学习最近在视觉问题中得到探索,用于将大规模模型的知识转移到下游任务。目前的提示技术应用于单模态模型,例如训练在图像上的视觉Transformer(ViTs) [17],以及多模态模型如CLIP。对于ViTs的情况,[5, 33] 训练可学习的提示,以引导预训练的视觉Transformer [17, 49]。另一方面,像 [66, 81, 82] 这样的方法将可学习向量引入CLIP的文本编码器,用于图像识别任务的迁移学习。相比之下,我们提出学习多模态视频提示,以同时引导CLIP的视觉和文本编码器,在视频上进行时空学习

将VL模型调整为视频:CLIP模型已经完全在基于视频的检索和识别任务上进行了微调 [51, 70]。Ju等人 [36] 将CLIP的零样本泛化能力转移到视频中,方法是在文本编码器输入上学习提示,并在图像编码器的帧级视觉表示上学习两个Transformer层来建模时间上下文。然而,直接使用CLIP图像编码器处理视频会导致CLIP视觉编码器的早期块缺乏时间信息,因此,这种方法的泛化性比完全微调的方法 [70] 差。类似地,[55] 提出了一个跨帧注意力模块,以建模视频中的长距离帧间依赖关系,并使用文本提示生成来调整视频和文本表示,以获得更好的泛化性能。与这些方法相比,我们在CLIP的图像和文本编码器中引入了可学习的视频提示模块,以建模时间线索,而不是完全微调,展示了泛化性能和完全监督性能之间的良好平衡

3. Vita-CLIP: 方法

我们的方法Vita-CLIP旨在利用一种多模态提示方案,将预训练的基于图像的视觉-语言模型适应于视频,既保留了强大的泛化能力(零样本性能),又具有良好的监督性能。Vita-CLIP允许利用现有的图像-语言预训练模型,而不是为视频从头开始训练一个模型。

本节介绍了我们的方法。我们从视觉/文本编码器的概述开始(第3.1节),然后详细解释了我们的多模态提示学习方案(第3.2节)。这进一步分为视觉方面(第3.2.1节)和文本方面提示学习(第3.2.2节)。最后,我们在第3.3节中概述了我们的学习目标。

图 2. Vita-CLIP 提示架构: 我们在视觉和文本编码器上添加了多个提示标记。在视觉编码器上,我们推断出一个总结(摘要)标记 (S),它浓缩了整个视频标记序列,并附加到输入中。此外,我们添加了 Mv 个全局 (G) 视频级提示,以学习数据分布,并添加了 T 个帧级提示,这些提示根据各自帧的 CLS 标记进行调整,以增强判别信息。在文本端,我们添加了 Mc 个可学习的提示,以对文本编码器的输入上下文进行建模。带有 ( ) 的模块是可训练的,而带有 ( ) 的模块是冻结的。

3.1.视频和文本编码

如前所述,我们希望以一种方式将预训练的图像-文本模型应用于视频,既保留预训练的通用表示,同时又能够与通过在文本或视觉编码器上进行微调的方法实现竞争性的完全监督性能。在这方面,我们提出了一种多模态的视觉和文本提示学习方案该方案保持了原始的CLIP图像和文本编码器冻结状态,并引入了额外的可学习参数来使它们适应视频。从更广泛的角度来看,我们分别从视频(f_{\Theta v})和文本(f_{\Theta c})编码器中获得视频(v)和文本(c)表示。本节正式定义了如何获得这些表示,而关于提出的提示学习方案的具体细节将在第3.2节中介绍。

视频编码器:考虑一个空间尺寸为H×W的视频V\in\mathbb{R}^{T\times H\times W\times3},其中包含了T个采样帧。每一帧t ∈ {1 . . . T} 被划分为N个大小为P×P的非重叠方块,以满足ViT架构[17]的要求,其中总方块数为N = H\times W/P^{2}。对于每一帧,所有形状为P × P × 3的方块都被展平为一组向量,并表示为\{\mathbf{x}_{t,i}\in\mathbb{R}^{3P^{2}}\}_{i=1}^{N},其中t是帧编号,i是方块编号。然后,使用线性投影层\mathbf{P}_{emb}\in\mathbb{R}^{3P^{2}\times D}将这些向量投影形成令牌嵌入,对于每个令牌,有一个输出维度D。为每一帧的嵌入令牌序列添加了一个额外的分类令牌\mathbf{x}_{cls}\in\mathbb{R}^D输入到视频编码器的最终每帧令牌序列为

\mathbf{z}_t^{(0)}=[\mathbf{x}_{cls},\mathbf{P}_{emb}^T\mathbf{x}_{t,1},\cdots,\mathbf{P}_{emb}^T\mathbf{x}_{t,N}]+\mathbf{e},\quad(1)

其中\mathbf{e}=\mathbf{e}^{sp}+\mathbf{e}^{tm}。这里,\mathbf{e}^{sp}\mathbf{e}^{tm}分别表示空间和时间位置编码。

从包含L_v层的视频编码器中,我们在每一层l获得帧级表示,如下所示:
\mathbf{z}_t^{(l)}=f_{\theta_v}^{(l)}(\mathbf{z}_t^{(l-1)}),\quad l\in\{1,\cdots,L_v\},\quad(2)
其中,f_{\theta_v}^{(l)}是视频编码器的第l层。

最后,为了获得每帧表示,从最后一层的输出令牌序列z^{(Lv)}_{t}中提取分类令牌xcls,并使用线性投影层\mathbf{P}_{out}\in\mathbb{R}^{D\times D^{\prime}}将其投影到维度D'
\mathbf{v}_t=\mathbf{P}_{out}^T\mathbf{z}_{t,0}^{(L_v)}\in\mathbb{R}^{D'},\quad(3)
其中,vt是帧t的输出表示,z^{(Lv)}_{t,0}是视频编码器最后一层输出序列中的分类令牌

为了获得视频表示,对每帧表示vt进行平均池化以得到聚合表示
\mathbf{v}=\text{AvgPool}([\mathbf{v}_1,\cdots,\mathbf{v}_T]).\quad(4)

文本编码器:对于输入的文本表示,我们使用了一个预训练的文本编码器,并加入了一个额外的文本提示学习方案预训练的文本编码器是一个12层的BERT模型(针对CLIP B/16变体),其嵌入大小为512,上下文长度为77。模型的每一层由多头自注意力(MHSA)和前馈网络(FFN)组成。给定视频的文本描述C,我们使用文本编码器获得表示\textbf{c}=f_{\theta_{c}}(C)。与最近工作 [70] 中使用的“一个关于{label}动作的视频”这样的手工设计的提示不同,我们采用了一种提示学习方案,这种方案受到最近在语言-图像模型上进行文本提示学习工作的启发 [81, 82]。

3.2.视频和文本提示学习

虽然以前有尝试通过提示学习将语言-图像模型适应视频,但它们要么只关注视觉或文本方面 [36, 55],要么在某些情况下完全微调整个视觉编码器 [55, 70]。为了将我们的预训练语言-图像模型适应视频,我们提出了一种新的多模态提示学习方案,该方案保持预训练模型冻结状态,以更好地保留其通用表示通过保留这种表示,我们能够训练一个单一模型,使其在监督和零样本设置中都能表现良好,而不像最近的工作 [55] 那样,需要不同的超参数选择来为每种设置生成独立的模型

在这方面,我们的多模态提示旨在将预训练表示对齐到视频任务,确保同时利用文本和视觉信息。更具体地,在文本方面,我们引入了一个可学习的上下文,而不是手工设计的提示,以便文本编码器能够更好地适应新的视频类别在视觉方面,我们提出了一种视频提示方案,重点在于建模帧级信息和帧间关系,以及提供对新视频数据分布的适应性(视频数据的分布可能因拍摄角度、场景、动作复杂度、光照条件等因素而有显著变化。这些变化会影响模型的泛化能力,即模型在未见过的数据上的表现。)。我们将在第3.2.1节和第3.2.2节分别解释我们的视频和文本提示方案。

3.2.1视频编码器提示学习

对于视觉编码器的提示,我们有两个主要目标:1)通过在帧之间引入信息交换来利用时间信息,2)提供额外的参数以使CLIP图像表示适应视频数据集的分布

在这方面,我们引入了三种附加的令牌,它们被附加到第l层帧t的令牌序列z^{(l)} _t中。具体来说,在每一层,我们引入一个摘要令牌,它总结了所有帧的判别信息;引入T个帧级本地提示令牌,将每帧的判别信息传递给剪辑中的其他帧;引入M_v个视频级全局提示令牌,为模型适应视频数据集分布提供学习能力。以下是这些提示令牌类型的详细描述。

摘要令牌:摘要令牌的灵感来自于[55]中提出的信息注意力概念。它用于总结剪辑中每一帧的判别信息,并在应用该层的预训练自注意力机制之前将其反馈给每一帧。更具体地,第l层的第t帧的摘要令牌s^{(l) }_t是通过先对分类令牌\mathbf{z}_{t,0}^{(l-1)}进行线性投影Psum,然后在这些帧级令牌之间应用MHSA(多头自注意力)操作获得的:

\begin{aligned}\mathbf{Z}_{0,proj}^{(l-1)}&=\mathbf{P}_{sum}^{T}\mathbf{Z}_{0}^{(l-1)},\\S^{(l)}&=\mathrm{MHSA}(\mathrm{LN}(\mathbf{Z}_{0,proj}^{(l-1)}))+\mathbf{Z}_{0,proj}^{(l-1)},\quad(5)\end{aligned}

其中,\mathbf{Z}_{0}^{(l-1)}=[\mathbf{z}_{1,0}^{(l-1)},\cdots,\mathbf{z}_{T,0}^{(l-1)}],\mathbf{S}^{(l)}=[\mathbf{s}_{1}^{(l)},\cdots,\mathbf{s}_{T}^{(l)}],LN表示层归一化。然后,在应用该层的冻结预训练自注意力机制之前,将相应的摘要令牌附加到令牌序列z^{(l-1)} _t中,如公式7所示。

全局提示令牌视频级全局提示令牌(\mathbf{G}^{(l)} = [\mathbf{g}_{1}^{(l)},\cdots,\mathbf{g}_{M_{v}}^{(l)}])是随机初始化的可学习向量。它们用于为模型提供额外的学习能力,以学习数据分布

局部提示令牌帧级局部提示令牌(\mathbf{L}^{(l)} = [\mathbf{l}_{1}^{(l)},\cdots,\mathbf{l}_{T}^{(l)}])也是随机初始化的可学习向量,数量等于训练过程中剪辑中的帧数T,但它们是根据每帧的相应分类令牌进行条件化的。这个对 L^{(l) }进行 [CLS] 令牌 \mathbf{z}_{t,0}^{(l-1)}的条件化使帧级可学习令牌中实现了自上而下的判别信息流。每个帧级局部提示令牌定义如下:

\hat{\mathbf{l}}_t^{(l)}=\mathbf{l}_t^{(l)}+\mathbf{z}_{t,0}^{(l-1)}.\quad(6)

最后,在应用该层的冻结预训练自注意力(FSA)之前,将令牌\hat{\mathbf{L}^{(l)}} = [\hat{\mathbf{l}}_1^{(l)},\cdots,\hat{\mathbf{l}}_T^{(l)}]\hat{\mathbf{G}^{(l)}} = [\hat{\mathbf{g}}_1^{( g)},\cdots,\hat{\mathbf{g}}_{M_v}^{(l)}]附加到每帧序列 \mathbf{z}_{t}^{(l-1)},如下所示:

最后,我们移除额外附加的令牌,并仅在\hat{\mathbf{z}}_t^{(l)}上应用前馈网络(FFN),如下所示:

\mathbf{z}_t^{(l)}=\mathrm{FFN}(\mathrm{LN}(\hat{\mathbf{z}}_t^{(l)}))+\hat{\mathbf{z}}_t^{(l)}.\quad(8)

3.2.2文本编码器提示学习

受 [36, 81, 82] 的启发,我们也在文本编码器上使用了一种提示学习方案。我们不是基于类别标签手工制作文本输入,而是使用可训练向量来建模上下文词语。更具体地说,输入到文本编码器f_{\theta_{c}}的是如下形式的令牌序列:

C=[\mathbf{u}_1,\mathbf{u}_2,\cdots,\mathbf{u}_{M_c},\{\text{label}\}]\quad(9)

其中,\mathbf u_{i},i\in\{1,\cdots,M_{c}\} 是与文本编码器输入嵌入相同大小的可训练向量M_c 是可训练统一提示的数量。然后将这个令牌序列传递给文本编码器,生成文本嵌入 \mathbf{c}=f_{\theta_t}(C)

虽然可能有两种不同的变体,统一上下文(Unified Context, UC)(所有类别共享一组上下文向量)和类别特定上下文(Class-Specific Context, CSC)(为每个类别定义独立的一组上下文向量),但我们在方法中使用了CSC。提示向量定义为[\mathbf{u}_i^{n_c}],其中 i\in\{1,\cdots,M_{c}\}n_{c}\in\{1,\cdots,N_{c}\},其中N_c是类别总数。通过在第4.5节中的消融实验,展示了使用CSC相对于UC的效果。在所有实验中,除零样本实验外,我们都使用了类别特定的提示。对于零样本评估的情况,由于可能会出现新类别,我们简单地使用包含任何给定类别名称的手动提示

3.3.学习目标

如上所述,我们的架构包括基于 Vision Transformer (ViT) [17] 的图像编码器和 BERT [14] 文本编码器,类似于 CLIP [58]。视觉和文本编码器分别对视频和文本描述进行编码,然后使用余弦相似度目标进行比较。更正式地说,给定一组视频 V 和一组文本类别描述 C,我们从中抽取视频 V\in\mathcal{V}和相关的文本描述 C\in\mathcal{C},并将它们分别传递给视频编码器f_{\theta_v} 和文本编码器f_{\theta_c}。这将产生视频和文本表示,具体如下:

\mathbf{v}=f_{\theta_{v}}(V\mid\mathbf{S}^{(l)},\mathbf{G}^{(l)},\mathbf{L}^{(l)}),\mathbf{c}=f_{\theta_{t}}(C).\quad(10)

我们定义视频和文本表示之间的余弦相似度损失函数L_{\text{cos}} 如下:

\mathcal{L}_{cos}(\mathbf{v},\mathbf{c})=\frac{\langle\mathbf{v},\mathbf{c}\rangle}{\|\mathbf{v}\|\|\mathbf{c}\|}.\quad(11)

我们旨在最大化真实  v 和 c 对的 L_{\text{cos}}(以尽可能地增加视频和文本匹配对之间的相似度),并在其他情况下最小化它(尽可能减少不匹配对之间的相似度)。

4. 结果和分析

4.1. 实验设置与方案

数据集:在监督设置中,我们在Kinetics-400(K400)[37]和Something-SomethingV2(SSv2)[29]的训练集上进行训练。我们在K400和SSv2的验证集上报告与文献中现有方法的监督性能。对于零样本实验,我们在K400的训练集上进行训练,并在三个数据集上进行评估:Kinetics600(K600)[10]、HMDB51 [39]和UCF101 [64]。对于K600的零样本评估,我们遵循[12],使用K400之外的220个新类别进行评估。根据[55]的方法,我们进行三次评估,每次从K600的220个类别中随机抽取160个类别进行评估。对于HMDB51和UCF101的零样本评估,我们遵循[85],并在测试集的三个分割上报告平均top-1准确率和标准偏差。

超参数:对于所有实验,我们使用余弦衰减调度器进行30个epoch的模型训练,并将初始学习率设置为8×10−4。除非另有说明,训练期间的帧数设为8。在评估时,我们在监督设置中使用8帧的单视图。在零样本评估期间,我们使用8帧训练模型,但在评估时使用32帧的单视图。

4.2. 监督实验

在监督设置中,我们在表1和表2中分别展示了K400和SSv2的数据。我们在不同的初始化(随机、ImageNet-1k/21k [13] 和CLIP400M)条件下,与现有方法进行对比,并比较了GFLOPs、训练帧数和评估视图。

表1. 与最新技术在Kinetics-400 [37]监督训练上的比较。我们在不同的初始化(随机、ImageNet 1k/21k 和 CLIP-400M)条件下进行对比,具体说明了帧数、视图和FLOPs。我们还提到了模型是否使用冻结/微调的主干网络以及该方法是否适用于零样本评估。

表2。在SomethingSomething-V2[29]上与监督方法的比较,并提及它们的zero-shot能力。

与使用ImageNet预训练的方法相比,我们的Vita-CLIP模型在保持较低GFLOP计数并且完全冻结主干网络的情况下,表现优于或与其他所有方法相当。我们的模型在GFLOPs方面比TimeSformer [6]和Mformer [56]分别低6倍和4倍,但性能优于这两者。我们与Swin-B [50](IN-1k)的表现相当,同时在GFLOPs方面比Swin-B(IN-21k)和MViTv2-B低2-3倍,并保持竞争力。需要注意的是,这些模型都是完全训练过的,而我们的Vita-CLIP仅训练了所提出的提示方案。

同样,将Vita-CLIP与CLIP-400M预训练方法进行比较时,我们在top-1准确率上比A6 [36]提示方法高出3.6%,而A6同样使用了与我们类似的冻结主干网络。我们在保持较低GFLOP计数的情况下,与X-CLIP [55]和ActionCLIP [70]两者的表现相当,而这两者都对预训练的主干网络进行了微调。与同样使用冻结主干网络的EVL [47]相比,我们的性能相当,并且我们还具有两个优势。首先,我们的GFLOPs低4.5倍,其次,我们保留了零样本识别能力,而EVL不能用于零样本识别。

在SSv2数据集上,我们在表2中将监督性能与最近的方法进行了比较。虽然我们的结果低于基于交叉熵的方法,但我们超过了最佳的视觉-文本方法B6 [36],超过了10%。需要注意的是,与交叉熵方法相比,视觉-语言模型的性能始终较低。这是由于SSv2类别描述的细粒度性质,与例如K400类别相比,更难以区分。

从上述实验中,我们可以看出,我们的Vita-CLIP在保持零样本推理能力的同时,表现更好或与现有方法相竞争。这归因于我们的提示方案,它有助于捕捉每帧的变化(通过局部帧级提示),以及视频和数据集的整体分布(分别通过摘要标记和全局视频级提示)

4.3. Zero-shot 实验

如前所述,在零样本实验中,我们将我们的Vita-CLIP模型训练于K400的训练集,采用8帧的视频输入,然后在三个数据集,即UCF101、HMDB51和K600上进行零样本评估。值得注意的是,我们使用与监督实验相同的模型和超参数设置,而当前的最先进方法X-CLIP采用了不同的训练设置进行零样本评估。

在零样本设置中,我们简单地将类特定的上下文替换为分词化的类描述。我们在UCF101、HMDB51和K600上的零样本性能结果分别列在表3和表4中。从表3中可以看出,我们在HMDB51和UCF101上的性能分别比以前的方法提高了4%和3%。类似地,我们在K600上实现了最先进的零样本性能,超过以前的最佳性能2.2%。我们将这一强劲的表现归因于我们提出的提示方案,以及我们保留了CLIP骨干的预训练通用表示。

4.4.监督与零样本之间的权衡

在本节中,我们进一步强调了通过我们提出的方法试图平衡的权衡。请考虑表5,其中当前的最先进方法XCLIP [55] 在监督和零样本设置中具有两组不同的超参数。作者在监督设置中使用8帧采样并训练30个时期。而在零样本设置中,X-CLIP训练10个时期,每个剪辑采样32帧。这导致了两个模型,一个只在监督设置中表现良好,另一个只在零样本设置中表现良好,但两者兼而有之。相反,我们的Vita-CLIP旨在保持骨干的广义表示,并使用提示学习来适应视频,能够在这两种设置之间取得平衡。这使得我们可以使用单个模型,在每个剪辑中采样8帧,共训练30个时期,用于两种设置

4.5. 消融实验

在本节中,我们对我们方法的不同组件进行了消融研究。所有实验都是在K400训练集上进行训练,并在验证集上进行测试。所有模型都是根据之前提到的,在每个视频剪辑中采样8帧的情况下进行了30个时期的训练。

我们首先在表6中对视觉端提示进行消融研究。请注意,在这个消融研究中,所有Vita-CLIP模型的文本端提示都固定为Mc = 8,使用类别特定上下文。我们定义了一个简单的基线,即纯CLIP的零样本准确率。在此基础上,我们添加了全局视频级提示(G,Mv = 8),同时保持模型的其余部分不变。这使得在K400上达到了77.83%的top1准确率。然后,我们添加了局部帧级提示(L),将模型推向了79.16%。包含摘要令牌使我们达到了80.51%。这表明这三种提示技术是互补的,并对模型的整体准确性有所贡献。

接下来,我们评估增加全局视频级提示数量的影响。我们测试了不同数量的提示值,如图4所示。我们可以看到准确率在Mv = 8附近饱和,这就是为什么在所有实验中我们使用8个全局提示的默认数量。

文本提示的数量和类型:在这里,我们考虑文本方面的提示。我们使用一个基线,其中只使用分词后的类名作为上下文,并评估了两种设计选择:文本提示的数量Mc和文本提示的类型,即统一上下文(UC)(即所有类别共享一组提示)和类别特定上下文(CSC)(即每个类别都有独立的提示集)。消融实验结果如图5所示。显然,CSC提供了更好的准确性,这是直观的,因为每个类别都有一个独立的可学习上下文。将上下文大小增加到8以上并没有带来显著的增益。因此,我们选择将文本提示固定为CSC,Mc = 8。

可视化:我们使用图3中的注意力展开方法来说明我们模型的注意力。我们将我们方法的可视化与一个不包括我们提出的提示方案的基线进行比较。我们注意到,提出的提示方案有助于模型集中注意力于视频中与最终识别任务相关的显著部分和重要动态。

图 3. 注意力展开 [1] 在示例视频上的显示,包括原始帧、未使用我们提出的提示方法的热图,以及使用 Vita-CLIP 提示方法的热图。例如,在“烹饪鸡肉”、“弹吉他”、“引体向上”和“跳绳”等动作中,我们的方法集中关注了在区分信息和运动特性方面最重要的局部区域。

5. 结论

我们提出了一种多模态提示方案,将图像-语言预训练模型应用于视频识别任务。现有的解决方案没有充分利用视频-文本联合提示学习,通常倾向于微调CLIP骨干网络,这导致了零样本泛化和监督性能之间的平衡不足我们的方法在零样本和监督性能之间取得了平衡,在相同的训练方案下表现出良好的统一性能。我们在三个数据集(UCF101、HMDB51和K600)上实现了最先进的零样本性能,在K400和SSv2上的监督性能仍然具有竞争力,同时训练参数数量要少得多。

读后总结

出发点:为了保证零样本泛化能力和监督性能之间的平衡

创新点:提出一种多模态提示方案,在视频编码器提示学习部分,通过添加摘要令牌、局部提示令牌和全局提示令牌,帧与帧之间交换信息,在图像-文本预训练模型中添加时间信息,建模帧级信息和帧间关系,以及提供对新视频数据分布的适应性;在文本编码器提示学习部分,通过添加可训练的向量来建模上下文词语,以便文本编码器能够更好地适应新的视频类别。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/645223.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

Java中IO流类的体系

Java为我们提供了多种多样的IO流,我们可以根据不同的功能及性能要求挑选合适的IO流,如图所示,为Java中IO流类的体系。 从上图发现,很多流都是成对出现的,比如: FileInputStream/FileOutputStream&#xff0…

国内首个智能体生态大会!2024百度万象大会定档5月30日

最近,百度悄悄「上新」了几个AI神器。 百度搜索上线「互动」功能,可以实时问答,查询信息就像聊天一样简单,还可以艾特相关智能体,更细致精确地满足个性化需求,比如去新加坡旅游,可以让新加坡旅…

Python - 深度学习系列35 重塑实体识别2

说明 上一篇Python - 深度学习系列34 重塑实体识别介绍了如何进行训练,这篇讨论如何应用。 详细review了之后,发现其实早先的服务还是略有欠缺的。例如: 1 最早的时候好像还没有pipeline,我用DataFrame并行处理,然后…

matlab 图像的中值滤波

目录 一、功能概述1、算法概述2、主要函数3、计算公式二、代码实现三、结果展示四、参考链接本文由CSDN点云侠翻译,放入付费专栏只为防不要脸的爬虫。专栏值钱的不是本文,切勿因本文而订阅。 一、功能概述 1、算法概述 中值滤波是图像处理中一种常用的非线性运算,用于减少…

摸鱼大数据——Hive基础理论知识——Hive环境准备

Hive环境准备 1、shell脚本执行方式 方式1: sh 脚本 注意: 需要进入脚本所在目录,但脚本有没有执行权限不影响执行 方式2: ./脚本 注意: 需要进入脚本所在目录,且脚本必须有执行权限 方式3: /绝对路径/脚本 注意: 不需要进入脚本所在目录,但必须有执行…

Pytorch深度学习实践笔记6(b站刘二大人)

🎬个人简介:一个全栈工程师的升级之路! 📋个人专栏:pytorch深度学习 🎀CSDN主页 发狂的小花 🌄人生秘诀:学习的本质就是极致重复! 《PyTorch深度学习实践》完结合集_哔哩哔哩_bilibi…

【Spring Security + OAuth2】OAuth2

Spring Security OAuth2 第一章 Spring Security 快速入门 第二章 Spring Security 自定义配置 第三章 Spring Security 前后端分离配置 第四章 Spring Security 身份认证 第五章 Spring Security 授权 第六章 OAuth2 文章目录 Spring Security OAuth21、OAuth2简介1.1、OAu…

绘唐科技绘唐ai工具邀请码

绘唐科技绘唐ai工具邀请码 绘唐AI工具 https://qvfbz6lhqnd.feishu.cn/wiki/QBr4wOAz2ilF4NknrqbcoKRhn2c TensorFlow是一个开源的机器学习框架,由Google开发并维护。它提供了一个灵活且高效的接口,用于构建和训练各种机器学习模型。 TensorFlow的基本概念包括: 1. 张量(…

基于python的网页自动刷新工具

1.下载webdriver https://msedgewebdriverstorage.z22.web.core.windows.net/?prefix122.0.2365.59/下载Edge的浏览器驱动 2.安装selenium pip install selenium4.11.1 3.写代码 # -*- coding: utf-8 -*- import tkinter as tk from tkinter import messagebox import thr…

当标签中出现输入了字母或者数字直接在一行上,没有换行的 情况时怎么办

当标签块中输入的是包含字母或者数字的时候,他不会换行,在一行上显示滚动条的形式,而我们想让他走正常文档流,该换行的时候换行 想要的如下效果 给相应的元素块添加该代码即可 word-break: break-all; .card-content { …

uniapp使用uni.chooseImage选择图片后对其是否符合所需的图片大小和类型进行校验

uni.chooseImage的返回值在H5平台和其他平台的返回值有所差异,具体差异看下图 根据图片可以看出要想判断上传的文件类型是不能直接使用type进行判断的,所以我使用截取字符串的形式来判断,当前上传图片的后缀名是否符合所需要求。 要求&#…

牛客网刷题 | BC97 回文对称数

目前主要分为三个专栏,后续还会添加: 专栏如下: C语言刷题解析 C语言系列文章 我的成长经历 感谢阅读! 初来乍到,如有错误请指出,感谢! 描述 今天牛牛学到了回文…

电子电器架构 - AUTOSAR软件架构介绍

电子电器架构 - AUTOSAR软件架构介绍 我是穿拖鞋的汉子,魔都中坚持长期主义的汽车电子工程师。 老规矩,分享一段喜欢的文字,避免自己成为高知识低文化的工程师: 屏蔽力是信息过载时代一个人的特殊竞争力,任何消耗你的人和事,多看一眼都是你的不对。非必要不费力证明自己…

Nginx代理配置(专业版)

写在前面提醒:使用代理,如果可以,请尽量支持双协议,http、https均要支持哈。 注意:监控系统只是运行代码,是否支持https,需要运维同学在你们的服务器上配置https证书,配置好证书&…

关于构建生成式AI产品的思考

在过去的六个月里,我们 LinkedIn 的团队一直在努力开发一种新的人工智能体验。我们希望重新构想我们的会员如何进行求职和浏览专业内容。 生成式人工智能的爆炸式增长让我们停下来思考一年前不可能实现的事情。我们尝试了许多想法,但都没有真正实现&…

OpenAI模型GPT-4o、GPT-4、Gemini 1.5性能比较

大家好,OpenAI最新推出的GPT-4o,标志着人工智能语言模型和交互方式迈入了新纪元。最引人注目的是,GPT-4o支持实时互动和流畅的对话切换,让交流更加自然。 本文将对比分析GPT-4o、GPT 4以及谷歌的Gemini和Unicorn模型,…

LabelMe下载及关键点检测数据标注

本文关键点数据集链接,提取码:x1pk 1.LabelMe下载 这部分内容和YOLOv8_seg的标注软件是一样的,使用anaconda创建虚拟环境安装LabelMe,指令如下: conda create -n labelme python=3.6 -y conda activate labelme conda install pyqt conda install pillow pip install la…

第六节:带你全面理解vue3 浅层响应式API: shallowRef, shallowReactive, shallowReadonly

前言 前面两章,给大家讲解了vue3中ref, reactive,readonly创建响应式数据的API, 以及常用的计算属性computed, 侦听器watch,watchEffect的使用 其中reactive, ref, readonly创建的响应式数据都是深层响应. 而本章主要给大家讲解以上三个API 对应的创建浅层响应式数据的 API,…

使用Java和XxlCrawler获取各城市月度天气情况实践

目录 前言 一、历史数据获取 1、关于天气后报 2、信息界面分析 二、数据的提取开发 1、PageVo的定义 2、属性定义 3、实际信息抓取 三、信息抓取调试以及可能的问题 1、信息获取成果 2、关于超时的问题 四、总结 前言 这篇文章主要来源于一个我们家小朋友的一个作业…

数据库管理-第194期 网络加速RDMA初探(20240526)

数据库管理194期 2024-05-26 数据库管理-第194期 网络加速RDMA初探(20240526)1 概念2 发展3 使用总结 数据库管理-第194期 网络加速RDMA初探(20240526) 作者:胖头鱼的鱼缸(尹海文) Oracle ACE A…