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

news2024/11/17 13:23:27

标题: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上的监督性能仍然具有竞争力,同时训练参数数量要少得多。

读后总结

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

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

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

代码随想录算法训练营第五十天||309.最佳买卖股票时机含冷冻期、714.买卖股票的最佳时机含手续费

文章目录 一、309.最佳买卖股票时机含冷冻期 思路 二、714.买卖股票的最佳时机含手续费 思路 一、309.最佳买卖股票时机含冷冻期 给定一个整数数组,其中第 i 个元素代表了第 i 天的股票价格 。 设计一个算法计算出最大利润。在满足以下约束条件下,…

如何高效创建与配置工程环境:零基础入门

新书上架~👇全国包邮奥~ python实用小工具开发教程http://pythontoolsteach.com/3 欢迎关注我👆,收藏下次不迷路┗|`O′|┛ 嗷~~ 目录 一、工程环境的搭建与准备 二、配置虚拟环境与选择解释器 三、编写代码与自动添加多行注释 …

JVM学习-堆空间(三)

JVM在进行GC时,并非每次都对新生代、老年代、方法区(元空间)三个区域一起回收,大部分时间回收的都是新生代 针对Hotspot VM的实现,它里面的GC按照回收区域分两大类型:一种是部分收集(Partial GC),一种是整堆收集(Full …

【新】snapd申请Let‘s Encrypt免费SSL证书、自动化续签证书

简介 之前写过一篇certbot申请SSL证书的文章:SSL证书申请,写得比较详细,但是最近发现使用snapd会更方便。 使用机器:Ubuntu 20.04 简单步骤 1、首先安装必要软件 sudo apt install snapd sudo apt install certbot sudo apt …

SQL语言实践

1.数据库 创建 CREATE DATABASE Database; 改名 ALERT DATABASE Data RENAME TO Database; 删除 DROP DATABASE Database; 2.表 创建: CREATE TABLE table(); 与主键,外键有关 CREATE TABLE Table(特殊的主键 serial NOT NULL,外键 …

ICML2024 定义新隐私保护升级:DP-BITFIT新型微调技术让AI模型学习更安全

DeepVisionary 每日深度学习前沿科技推送&顶会论文分享,与你一起了解前沿深度学习信息! 引言:差分隐私在大模型微调中的重要性和挑战 在当今的深度学习领域,大型预训练模型的微调已成为提高各种任务性能的关键技术。然而&am…

Multi-objective reinforcement learning approach for trip recommendation

Multi-objective reinforcement learning approach for trip recommendation A B S T R A C T 行程推荐是一项智能服务,为游客在陌生的城市提供个性化的行程规划。 它旨在构建一系列有序的 POI,在时间和空间限制下最大化用户的旅行体验。 将候选 POI 添…

[OpenGL] 法线贴图

目录 一 为什么要使用法线贴图 二 二种不同法线方式的使用 2.1 插值法线 2.1 法线贴图 本章节源码 点击此处 一 为什么要使用法线贴图 法线贴图我们可以使用更少的顶点表现出同样丰富的细节。高精度网格和使用法线贴图的低精度网格几乎区分不出来。所以法线贴图不仅看起来…

从ES到ClickHouse,Bonree ONE平台更轻更快!

本文字数:8052;估计阅读时间:21 分钟 作者:博睿数据 李骅宸(太道)& 娄志强(冬青) 本文在公众号【ClickHouseInc】首发 本系列第一篇内容: 100%降本增效!…

windows安装kafka环境

1.安装jdk8 参考教程java8安装教程_java8u371安装教程-CSDN博客 下载kafak安装包: kafka_2.12-3.6.1.tgz 解压: 启动ZooKeeper软件,kafka内部已近集成了该软件。 进入Kafka解压缩文件夹的config目录,修改zookeeper.properti…

SpringCloud系列(22)--Ribbon默认负载轮询算法原理及源码解析

前言:在上一篇文章中我们介绍了如何去切换Ribbon的负载均衡模式,而本章节内容则是介绍Ribbon默认负载轮询算法的原理。 1、负载轮询算法公式 rest接口第N次请求数 % 服务器集群总数 实际调用服务器下标(每次服务器重启后rest接口计数从1开始…

HTML静态网页成品作业(HTML+CSS)——动漫海绵宝宝介绍网页(5个页面)

🎉不定期分享源码,关注不丢失哦 文章目录 一、作品介绍二、作品演示三、代码目录四、网站代码HTML部分代码 五、源码获取 一、作品介绍 🏷️本套采用HTMLCSS,未使用Javacsript代码,共有5个页面。 二、作品演示 三、代…

外卖小程序开发指南:从源码开始构建高效的外卖平台

今天,笔者将为您详细讲解如何从源码开始构建一个高效的外卖小程序,帮助您快速进入这一蓬勃发展的市场。 一、需求分析与设计 需求分析包括: 1.用户需求 2.市场需求 3.技术需求 二、前端开发 以下是开发步骤: -使用微信开发…

听说部门来了个00后测试开发,一顿操作给我整麻了

公司新来了个同事,听说大学是学的广告专业,因为喜欢IT行业就找了个培训班,后来在一家小公司实习半年,现在跳槽来我们公司。来了之后把现有项目的性能优化了一遍,服务器缩减一半,性能反而提升4倍&#xff01…

labelme的使用

创建虚拟环境 听说是要用这个3.6版本的python环境 conda create --namelabelme python3.6激活虚拟环境 activate labelme下载labelme pip install labelme #安装labelme组件启动labelme 在你打开文件的时候推荐还是自己先建立一个label.txt 把自己要分的类别放进去 label.…

【CSP CCF】202104-2 邻域均值

题目 过程 前缀和 定义 假定一个数组,前缀和就是该元素前所有元素和。也就是如果我们舌钉一个数组s为前缀和数组,那么s[3]就是我们原数组前三个元素之和。 优势 降低计算复杂度。 如果我们要求一段区间的和,那么我们用普通数组要从第一…

Linux驱动开发笔记(二) 基于字符设备驱动的I/O操作

文章目录 前言一、设备驱动的作用与本质1. 驱动的作用2. 有无操作系统的区别 二、内存管理单元MMU三、相关函数1. ioremap( )2. iounmap( )3. class_create( )4. class_destroy( ) 四、GPIO的基本知识1. GPIO的寄存器进行读写操作流程2. 引脚复用2. 定义GPIO寄存器物理地址 五、…

一个 Go 实现的跨平台 GUI 框架 Fyne

今天,推荐一个 Go 实现的 GUI 库 - fyne。 Go 官方也没有提供标准的 GUI 框架,在 Go 实现的几个 GUI 库中,Fyne 算是最出色的,它有着简洁的API、支持跨平台能力,且高度可扩展。这也就是说,Fyne 是可以开发…

如果直升机一直在空中悬停,24小时后能否绕行地球一圈?

直升机悬停在空中,似乎给了我们一种静止的错觉。但如果直升机一直保持这种状态,24小时后,它是否能够神奇地绕地球一圈? 地球自转:直升机悬停的无形锁链 问题的答案并非像表面上看起来那样简单。要解答这个问题&#…

Win10玩红警黑屏有声音的解决方法

Win10玩红警黑屏怎么解决?红色警戒,可以说是一款深受青少年朋友喜爱的网游,但是,当我们在使用win10电脑运行红色警戒的时候免不了会出现不兼容、权限不足等问题。相信玩过红警的小伙伴都有遇到过黑屏的问题,那该怎么解…