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

读后总结

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

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

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

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

相关文章

sw布尔减

可能最有效率还是草图边界线,然后用草图做分割

ue5 中ps使用记录贴

一、快捷键记录 放大图形 ctrlalt空格 放大图形 缩小视口 ctrl空格 ctrlD 取消选区 ctrlt缩小文字 w魔棒工具 选择魔棒的时候把容差打开的多一点 二、案例 移动文字 在相应的图层选择 移动文字 修改图片里的颜色 在通道里拷贝红色通道,复制红色通道粘贴给正常图…

记录Hbase出现HMaster一直初始化,日志打印hbase:meta,,1.1588230740 is NOT online问题的解决

具体错误 hbase:meta,,1.1588230740 is NOT online; state{1588230740 stateOPEN, ...... 使用 hbase 2.5.5 ,hdfs和hbase分离两台服务器。 总过程 1. 问题发现 在使用HBase的程序发出无法进行插入到HBase操作日志后检查HBase状况。发现master节点和r…

大模型应用商业化落地关键:给企业带来真实的业务价值

2024 年被很多人称为大模型应用的元年,毫无疑问,大模型已经成为共识,下一步更急迫的问题也摆在了大家的面前——大模型到底能够用在哪?有哪些场景能落地?怎么做才能创造真正的价值? 在刚刚过去的 AICon 全…

【排序算法】快速排序(四个版本以及两种优化)含动图)

制作不易,三连支持一下吧!!! 文章目录 前言一.快速排序Hoare版本实现二.快速排序挖坑法版本实现三.快速排序前后指针版本实现四.快速排序的非递归版本实现五.两种优化总结 前言 前两篇博客介绍了插入和选择排序,这篇博…

halcon配合yolov8导出onnx模型检测物体

1.工业上多数视觉开发都是用halcon开发的,halcon本身也有自己的深度学习网络,至于halcon如果不使用本身的深度学习,使用其他网络导出的onnx模型怎样配合使用?本文基于yolov8写一个列子。 2。创建输入数据的转换代码 #region 创建输…

Nginx高可用性架构:实现负载均衡与故障转移的探索

随着网络应用的不断发展和用户访问量的增长,如何确保系统的高可用性、实现负载均衡以及快速响应故障转移成为了每个运维和开发团队必须面对的挑战。Nginx作为一款高性能的HTTP和反向代理服务器,凭借其强大的功能和灵活的配置,成为了实现这些目…

题目:填空练习(指向指针的指针)

题目:填空练习(指向指针的指针) There is no nutrition in the blog content. After reading it, you will not only suffer from malnutrition, but also impotence. The blog content is all parallel goods. Those who are worried about …

【bugfix】/usr/local/bin/docker-compose:行1: html: 没有那个文件或目录

前言 在使用 docker-compose 管理容器化应用时,偶尔会遇到一些意想不到的错误,比如当尝试运行 docker-compose 命令时,终端非但没有展示预期的输出,反而出现类似网页错误的信息。这类问题通常与 docker-compose 的安装或配置有关…

首都师范大学聘请旅美经济学家向凌云为客座教授

2024年4月17日,首都师范大学客座教授聘任仪式在首都师范大学资源环境与旅游学院举行。首都师范大学资源环境与旅游学院院长吕拉昌主持了仪式,并为旅美经济学家向凌云教授颁发了聘书。 吕拉昌院长指出,要贯彻教育部产学研一体化战略&#xff0…

数据库工具类

public interface DbMapper {/*** 查询数据库类型*/String queryDbType(); }<select id"queryDbType" resultType"java.lang.String">select<choose><when test"_databaseId mysql">mysql</when><when test"_d…

虚拟机Centos扩展磁盘空间

虚拟机空间&#xff1a;现sda大小20G&#xff0c;因课程需要扩容 在虚拟机扩容中&#xff0c; 新增一块硬盘 和 直接在原有硬盘基础上扩容是一样的&#xff08;只不过在原有硬盘上扩容需要关机才可以执行&#xff09;&#xff1b; 但两者都最好先做数据备份或快照&#xff0c…

夏令营复习coding 算法第一天-状态:新奇

T1:bubble冒泡排序 &#xff08;1&#xff09;思路&#xff1a;两次循环&#xff0c;外层循环从后面开始-作为一个支点&#xff0c;内层循环每次将当前需要排序的最大的那个元素一步步移动到该支点&#xff0c;最终升序排列完成 &#xff08;2&#xff09;代码: #include &l…

5、设计模式之适配器模式/原型模式

文章目录 开始之前适配器模式使用场景注意事项何时使用优缺点代码实现 原型模式深拷贝和浅拷贝 开始之前 本章节是一个系列&#xff0c;里面用的的代码实例都是连贯的。在实现某一种设计模式时&#xff0c;为了减少代码篇幅&#xff0c;前面博客出现model类&#xff08;仅限公…

【LabVIEW FPGA入门】同步C系列模块

1.同步使用循环定时器VI计时循环速率的系列模块 数字模块SAR ADC 模块多路复用模块 数字通道可以在一个时钟周期内执行。模拟通道需要多个时钟周期。 同步模拟模块的每个通道有一个 ADC&#xff0c;采集的数据在通道之间没有明显的偏差。多路复用模块使用多路复用器通过单个 A…

Docker安装并部署Gitlab,同时解决Gitlab服务经常503/500的问题

文章目录 Docker 安装Gitlab部署后需要解决的小问题1. 获取初始密码2. 解决刚安装好的Gitlab频繁出现503/500并重启的错误 Docker 安装Gitlab docker pull gitlab/gitlab-cedocker run -d -p 11443:443 -p 11090:80 -p 11022:22 \ --name gitlab \ --restart unless-stopped \…

深入理解NumPy与Pandas【numpy模块及Pandas模型使用】

二、numpy模块及Pandas模型使用 numpy模块 1.ndarray的创建 import numpy as np anp.array([1,2,3,4]) bnp.array([[1,2,3,4],[5,6,7,8]]) print(a) #[1 2 3 4] print(b) #[[1 2 3 4][5 6 7 8]] 1.1使用array()函数创建 numpy.array(object, dtype None, copy True, ord…

vue2和vue3区别

Vue 3是Vue.js框架的下一代主要版本&#xff0c;它在2020年9月正式发布。Vue 3带来了一系列的新特性和改进&#xff0c;包括性能提升、更小的打包尺寸、更好的TypeScript支持、新的组合式API等。以下是Vue 2和Vue 3之间的一些主要区别&#xff1a; 1. 性能提升&#xff1a; …

计算机存储单位

目录 是什么 存储单位的划分 存储单位转换关系表 相关疑问 存储单位转换除了位之外的存储单位转换规则是什么 为什么在编码中最小的操作单位不是位 是什么 用来度量数据存储容量的单位。 存储单位的划分 存储单位有 位&#xff08;bit&#xff0c;也称为比特&#xff…

光伏项目怎么做预算?

随着可再生能源行业的蓬勃发展&#xff0c;光伏行业也得到了扩张。许多想要加入光伏项目投资的人&#xff0c;都在为怎样为项目做预算而苦恼&#xff0c;今天我就来跟大家分析下可以怎么做。 一、了解市场需求&#xff0c;确定预算目标 在制定光伏项目预算方案之前&#xff0c…