ActionCLIP: Adapting Language-Image Pretrained Models for Video Action Recognition

标题:ActionCLIP:适应语言图像预训练模型的视频动作识别

源文链接:IEEE Xplore Full-Text PDF:icon-default.png?t=N7T8https://ieeexplore.ieee.org/stamp/stamp.jsp?tp=&arnumber=10323592

源码链接:GitHub - sallymmx/ActionCLIP: This is the official implement of paper "ActionCLIP: A New Paradigm for Action Recognition"icon-default.png?t=N7T8https://github.com/sallymmx/ActionCLIP 

发表: IEEE TRANSACTIONS ON NEURAL NETWORKS AND LEARNING SYSTEMS(中科院1区top期刊)

目录

摘要

1.介绍

2.相关工作

A. 双流网络

B. 基于3D CNN的网络

C. 计算效率模型

D. 基于Transformer的网络

E. 视觉-文本多模态模型

F. 在动作识别中的适应 

3.方法

A. 多模态学习框架

B. 新范式

C. 新范式实例化细节

4.实验

A.实验设置

B.消融实验

C.运行时分析

E.与最先进方法的比较

5.结论

读后总结


摘要

视频动作识别的经典方法采用神经网络模型进行1-of-N多数投票任务。这些模型被训练来预测一组固定的预定义类别,这限制了它们在处理包含未见概念的新数据集时的可转移性。在本文中,我们通过重视标签文本的语义信息而不是简单地将它们映射成数字,提供了一种动作识别的新视角。具体而言,我们将该任务建模为在多模态学习框架内的视频-文本匹配问题,这通过更多的语义语言监督加强了视频表示,并使我们的模型能够在无需进一步标注数据或参数要求的情况下进行零样本动作识别。此外,为了应对标签文本的不足并利用大量的网络数据,我们在此多模态学习框架的基础上提出了一种新的动作识别范式,我们称之为“预训练、适应和微调”。该范式首先通过在大量的网络图像-文本或视频-文本数据上进行预训练来学习强大的表示然后,通过适应性工程使动作识别任务更像预训练问题最后,在目标数据集上进行端到端的微调以获得强大的性能。我们给出了这一新范式的一个实例,ActionCLIP,它不仅具有卓越且灵活的零样本/少样本迁移能力,还在一般动作识别任务上取得了顶尖的性能,使用ViT-B/16作为主干,在Kinetics-400数据集上达到了83.8%的top-1准确率。代码可在https://github.com/sallymmx/ActionCLIP.git获取。

Index Terms—Adapter, multimodal framework, new paradigm(范式), video action recognition, video classification.

1.介绍

视频动作识别是多媒体视频理解的第一步,近年来一直是一个活跃的研究领域。我们观察到,它主要经历了两个阶段:特征工程和架构工程。在Kinetics等大型数据集出现之前,由于没有足够的数据来学习高质量的模型,早期的方法主要集中在特征工程上,研究人员考虑了视频中的时间信息,并利用他们的知识设计了特定的手工特征表示。然后,随着深度神经网络和大型基准的出现,我们现在进入了第二阶段,架构工程。许多精心设计的网络通过合理地吸收时间维度应运而生,例如双流网络、3D卷积神经网络(CNN)、计算效率高的网络和基于transformer的网络。

尽管在过去几年中特征和网络架构得到了充分研究,但它们都是在单模态框架内训练的,用于预测一组固定的预定义类别,而没有考虑标签文本信息。这种预定方式限制了它们的通用性和应用,因为要转移到任何其他新的和未见过的概念中,需要额外的标注训练数据。与传统方法直接将标签映射为数字不同,从原始文本中学习将是一个更有前途的解决方案,因为这可以提供更广泛的监督来源,并提供更全面的表示。回想一下人类是如何完成这项工作的,我们可以通过将视觉外观的语义信息与自然语言来源联系起来,而不是数字,来识别已知和未知的视频在本文中,我们在一个多模态框架中探索自然语言监督,目标有两个:1)通过更多的语义语言监督加强传统动作识别的表示;2)使我们的模型能够在无需进一步标注数据或参数的情况下实现零样本转移。我们的多模态框架包括两个独立的单模态编码器,分别用于视频和标签,以及一个相似性计算模块。训练目标是将成对的视频和标签表示拉近距离,从而使学习到的表示比单模态方法更加语义化。如图1所示,我们框架学习到的注意力高度集中并与动作主体相关,而传统的单模态管道则有更多不必要的干扰甚至不相关的注意。在推理阶段,它变成了一个视频-文本匹配问题,而不是经典的1-of-N多数投票任务,并且能够进行零样本预测

然而,现有全监督动作识别数据集的标签总是过于简洁,无法构建用于语言学习的丰富句子。收集和标注新的视频数据集需要巨大的存储资源和大量的人力和时间。另一方面,每天都有海量的视频伴随嘈杂但丰富的文本标签在网络上存储和生成。那么,有没有办法利用这些丰富的网络数据来进行动作识别呢?最直接和直观的方法是预训练。实际上,在多模态学习中,利用预训练来激活丰富的网络数据已经得到了深入研究。它首先在大型嘈杂数据集上预训练固定架构,以学习鲁棒的通用特征,然后微调或提示各种下游任务。然而,这些弱监督预训练模型在视频动作识别领域的进展尚未得到充分利用。预训练模型时,仍然通常采用大量标注的ImageNet,而不是原始的大规模网络资源。直接从网络数据中学习是否能在动作识别中带来类似的突破?我们兴奋地发现,最近的一项工作ViViT给出了一个令人鼓舞的答案,他们通过用一个大型JFT数据集预训练模型,在Kinetics-400上获得了2.2%的提升,该数据集包含3亿张图像和超过3.75亿个嘈杂标签。然而,他们的使用方式依然是将JFT视为比ImageNet更大的预训练数据集,并没有利用原始的文本特征,即仍然是单模态设置。此外,使用大量的网络数据进行预训练并不容易。它在存储硬件、计算资源和实验周期方面代价昂贵。我们不会忽略文本中的丰富信息,因为它们正是我们为解决标签词稀缺问题所需要的。这些嘈杂的标签可能使标签词的学习变得可行。

我们能否直接将预训练的多模态模型适配到这个任务中,避免上述困境?我们发现这是可能的。正式地,我们为视频动作识别定义了一个新的范式“预训练、适配和微调”。尽管端到端地使用大规模视频-文本数据集(如HowTo100M)进行预训练是很有吸引力的,但我们受限于巨大的计算成本。幸运的是,我们发现使用预训练模型也是可行的。在新的范式中,我们使用“预训练”而不是“预训练过”这个词来保持预训练功能。然后,与其通过替换最终的分类层和目标函数来调整预训练模型以适应特定的基准测试,我们通过适配器将任务重新定义为更像原始预训练过程中解决的问题。适配器类似但比自然语言处理(NLP)中的提示更广泛。本文中的适配器包括输入、特征和架构调整而NLP中的提示通常仅限于输入修改。事实上,基于提示的学习被认为是NLP领域的一次重大变革,但提示和适配器在视觉任务中还不活跃,尤其是在动作识别中尚未被利用。我们相信它们在许多视觉-文本相关任务中将具有吸引力,并在此探索它们在动作识别中的应用。最后,我们在目标数据集上对整个模型进行微调。我们实现了这一范式的一个实例ActionCLIP,该实例采用CLIP作为预训练模型。在Kinetics-400上获得了83.8%的top-1准确率。

我们的贡献可以总结如下:

1)我们提出了一种新的动作识别范式,称为“预训练、适配和微调”。在这一范式中,通过设计适当的适配器,直接重用大规模网络数据预训练模型,扩大模型在零样本/少样本情况下的通用性和应用性
2)为了重用优秀的图像-文本预训练模型,我们通过探索各种视觉时间建模适配器掌握动作识别的视频本质,并通过多个文本适配器扩展简洁的标签
3)综合实验表明,我们的方法具有潜力和有效性,在多个公共基准数据集上始终优于最先进的方法。

2.相关工作

我们观察到视频动作识别主要经历了两个阶段,特征工程和架构工程。在第一个阶段,研究人员设计了大量用于时空表示的手工特征描述符,如3DHOG和Dense Trajectories。然而,这些特征缺乏泛化能力,因为它们不是在大规模数据集中端到端学习的。现在我们处于第二阶段,即架构工程。我们将这些架构粗略地分类为四类:双流网络、3D CNN、计算效率高的网络和基于transformer的网络。我们将在下文介绍这四种类型。此外,我们还简要介绍了动作识别中的视觉-文本多模态。

A. 双流网络

双流方法【4】【5】【6】【24】通过两个网络分别对外观和动态进行建模,并在中间或最后融合这两个流。Simonyan 和 Zisserman【25】首次提出了具有空间和时间网络的双流卷积神经网络(ConvNet)架构。时间段网络(TSN)【4】为双流结构提供了一种稀疏的时间采样策略,并在最后通过加权平均融合两个流。Feichtenhofer 等人【24】研究了在两个流的中间进行融合的策略,以获得时空特征。然而,这些方法通常仅通过加权或平均和来简单地融合多个片段的学习特征和最终预测,因此在时间关系建模上表现较差

B. 基于3D CNN的网络

直接从RGB帧中学习时空特征与3D CNNs[1][7][8][9][26]一起使用是很直观的,它们通过额外的时间维度扩展了常见的2D CNNs。[27]是第一个使用3D CNNs进行动作识别的先驱工作,但网络不够深以显示其潜力。C3D[8]将[27]扩展为更深的3D网络,即VGG16。然而,由于需要优化的参数庞大,以及缺乏高质量的大规模数据集,C3D的性能仍然不理想。接着,I3D[1]将ImageNet预训练的2D核膨胀为3D,以捕获时空特征,并用另一个流来模拟运动特征。在大规模Kinetics数据集和双流设置的帮助下,I3D在基准数据集上取得了非常有竞争力的性能。Slowfast[7]涉及一个缓慢路径来捕获空间语义,以及一个快速路径来在细微的时间分辨率下捕获运动。最近,Feichtenhofer提出了X3D[28],通过沿多个可能的轴逐渐将一个微小的基础2D图像架构扩展为一个时空架构。尽管基于3D CNN的方法已经达到了最先进的性能,但它们仍然难以训练,并且在部署时具有挑战性

C. 计算效率模型

由于3D CNN的高计算负担,许多计算效率型网络被设计用于在精度和速度之间找到平衡[10][11][12][13][29][30][31][32][33]。Tran等人[11]和Xie等人[12]讨论了几种时空卷积的形式,包括在早期层中使用3D卷积和在更深层中使用2D卷积(底层重)或反转组合(顶层重)。P3D[34]、S3D[12]和R(2 + 1)D[11]试图通过将其分解为2D空间卷积和1D时间卷积来减少3D卷积的成本。TSM[35]通过在时间维度上移动部分通道来引入时间卷积。STM[10]通过将时空特征和运动编码直接相加,将这两种特征视为独立且互补的表示。TEA[13]使用运动特征重新校准时空特征并增强运动模式。

D. 基于Transformer的网络

最近,基于Transformer的网络[14][15][16][36][37]引起了很多关注。它们利用并修改了最近强大的视觉Transformer来共同编码空间和时间特征。例如,[14]和[15]探索了多种结构来有效地编码诸如联合时空注意力(将从视频中提取的所有时空令牌一起发送)和因式化编码器(由两个独立的空间和时间Transformer编码器组成)等时空特征。然而,这些基于Transformer的工作主要关注结构设计,而不考虑标签中包含的语义信息,与它们不同,这是我们的核心见解。我们提出了一个基于视频-文本多模态学习框架的动作识别新范式“预训练、适应和微调”,这为标签词的语言建模照亮了道路

E. 视觉-文本多模态模型

近年来,视觉-文本多模态已成为几个视觉-文本相关领域的热门话题,如预训练[19][38]、视觉-文本检索[39][40]等。其中,最具影响力的作品之一是对比语言-图像预训练(CLIP)[17],它是一种大规模的多模态方法,提出使用自然语言监督来学习可转移的视觉特征,并在大量图像-标题对上进行训练。为了利用CLIP的强大表示能力,最近出现了许多作品,如[41][42][43][44][45][46][47][48],这些作品表明CLIP实际上是一个非常有用的工具,可以改善广泛领域的性能,甚至如音频[42]和点云[45]等。对多模态模型和基于CLIP的作品的全面回顾超出了本文的范围,请参阅最近的调查报告[49][50][51]以获取更多细节。对我们来说,CLIP最具吸引力的特点是多模态框架和大规模的训练过程。我们进一步提出了将视频动作识别任务建模为多模态对比学习(MCL)问题的想法,这在以前并未针对此任务进行过探索。在这个流程中,我们努力通过一种新的“预训练、适应和微调”范式将CLIP的力量转移到我们的视频任务上。值得一提的是提示(prompt)的概念[23],它意味着一种工程技术,通过将下游数据集转换为预训练任务的格式,来适应大型预训练语言模型到新任务中。周等人[52]提出使用可学习向量来建模提示的上下文单词,而整个预训练参数是固定的。Bahng等人[53]则通过学习单个图像扰动来探索视觉提示,使得使用此扰动提示的冻结模型执行新任务。在本文中,我们提出了适配器来适应我们的视觉和文本模态,这与原始提示不同,因为我们方法中的CLIP并非完全冻结

F. 在动作识别中的适应 

视频动作识别可以解释为一个文本不足的视频到文本检索问题。因此,在这个任务中应用视觉-文本多模态学习也可能是可行的[54][55][56][57][58][59]。例如,X-CLIP[56]引入了一个跨帧注意力模块,用于建模视频中的长距离帧间依赖关系,并使用基于视频和文本表示的文本提示生成以实现更好的泛化。Vita-CLIP[58]在CLIP的图像和文本编码器中引入了一个可学习的视频提示模块,以建模时间线索时空适配器(ST-Adapter)[57]提出了一个参数高效的(STAdapter),以更有效地利用大型预训练图像模型来理解视频。AIM[59]冻结了预训练的图像模型,并为时序建模添加了一些轻量级适配器。然而,ST-Adapter和AIM仅使用CLIP的图像模型,并在末端附加了一个线性层进行分类。因此,它们的模型无法进行零样本生成。与它们不同,在本文中,我们着眼于一般动作识别中的视觉-文本多模态学习,并为它与零样本/少样本动作识别建立了桥梁。我们主要关注图像和文本流的适配器设计,以保持基础模型的泛化能力。此外,我们的方法采用了一个三步适应范式,包括“预训练、适应和微调”。这与最近基于适配器的方法不同,这些方法仅关注于适应,如ST-Adapter、AIM或微调[60],或者提示[58]。请注意,我们的组合三步“预训练、适应和微调”过程在实现最终性能方面起着关键作用。

3.方法

A. 多模态学习框架

以往的视频动作识别方法通常将该任务视为经典的和标准的1对N多数投票问题,将标签映射为数字。这种流程完全忽略了标签文本中包含的语义信息。相反,我们将这个任务建模为一个视频-文本多模态学习问题,与纯粹的视频建模形成对比。我们相信从自然语言的监督中学习不仅可以增强表示能力,还可以实现灵活的零样本传输

形式上,给定一个输入视频 x 和一个来自预定义标签集 Y 的标签 y,先前的工作通常训练一个模型来预测条件概率 P( y|x, θ),并将 y 转换为一个数字或一个独热向量,以表示其在整个标签集长度 |Y| 中的索引,如图 2(a) 所示。在推理阶段,预测的最高得分索引被视为对应的类别。我们尝试打破这种常规,将问题建模为 P( f(x, y)|θ),其中 y 是标签的原始词,f 是一个相似性函数。然后,测试更可能是一个匹配过程,具有最高相似性分数的标签词是分类结果:

\hat{\mathbf{y}}=\arg\max_{\mathbf{y}\in\mathcal{Y}}P(f(\mathbf{x},\mathbf{y})|\theta).\quad(1)

如图2(b)所示,在双流框架内,我们学习单独的单模态编码器 g_Vg_W 用于视频和标签词。视频编码器 g_V提取视觉模态的时空特征,并可以是任何设计良好的架构。语言编码器 g_W用于提取输入标签文本的特征,并可以是各种各样的语言模型。然后,为了将视频和标签表示之间的成对相似性拉近,我们使用余弦距离在相似性计算模块中定义了两个模态之间的对称相似性

s(x,y)=\frac{\mathbf{v}^{\top}\mathbf{w}}{\|\mathbf{v}\|\|\mathbf{w}\|},\quad s(\mathbf{y},\mathbf{x})=\frac{\mathbf{w}^{\top}\mathbf{v}}{\|\mathbf{w}\|\|\mathbf{v}\|}\quad(2)

其中 v = g_V(x) 和 w = g_W( y) 分别是 x 和 y 的编码特征。然后可以计算 softmax-归一化的视频到文本和文本到视频的相似性分数,如下所示: 

\begin{aligned}&p_{i}^{x2y}(x)=\frac{\exp(s(x,y_{i})/\tau)}{\sum_{j=1}^{N}\exp(s(x,y_{j})/\tau)}\\&p_{i}^{y2x}(y)=\frac{\exp(s(y,x_{i})/\tau)}{\sum_{j=1}^{N}\exp(s(y,x_{j})/\tau)}&\text{(3)}\end{aligned}

其中 τ 是一个可学习的温度参数,N 是训练对的数量。让q^{x2y}(x),q^{y2x}(y)表示地面真实的相似性分数,其中负对的概率为0,正对的概率为1。由于视频的数量远远大于固定标签的数量,在一个批次中可能会有多个属于同一个标签的视频。因此,在 q^{x2y}(x),q^{y2x}(y) 中可能存在多个正对。将相似性分数学习视为一个 1对N 的分类问题,使用交叉熵损失是不合适的。相反,我们将 Kullback-Leibler(KL)散度定义为视频文本对比损失,以优化我们的框架,如下所示:

\begin{aligned}\mathcal{L}=\frac{1}{2}\mathbb{E}_{(x,y)\sim\mathcal{D}}\mathrm{KL}(p^{x2y}(x),q^{x2y}(x))+[\mathrm{KL}(p^{y2x}(y),q^{y2x}(y))]\quad(4)\end{aligned}

其中 D 是整个训练集。基于多模态框架,我们可以像(1)中的普通测试过程一样进行零样本预测。

图2. 现有的单模态流程(a)和我们的多模态框架(b)。它们在标签的使用上有所不同。在(a)中,将标签映射为数字或独热向量,而在(b)中,利用标签文本本身的语义信息,并试图将相应的视频表示拉近到一起。

零样本迁移在多模态学习框架中,当模型被训练后,它可以进行零样本预测,如图3所示。给定一个新的测试数据集,其包含完整的标签集合,共有M个标签,我们首先通过语言编码器g_W提取其标签特征W = [w0, w2, . . . , wM−1]。然后,对于一个测试视频,我们使用视频编码器g_V获取其特征v。通过公式(2)计算v与W中每个标签特征的相似性最终分配给v的标签是与v具有最大相似性的标签。相比之下,传统的单模态模型不能像我们的框架那样进行零样本迁移。它们需要在新的数据集上重新训练或微调模型,因为它们包含一个固定数量(即其训练数据集的类别数)的全连接线性层用于分类。

B. 新范式

在考虑上述的多模态学习框架时,我们需要考虑标签词的不足之处。最直观的方法是利用庞大的网络图像文本或视频文本数据为此,我们提出了一种新的“预训练、适应和微调”的范式,用于动作识别

1) 预训练:如先前的研究所建议的,预训练对于视觉语言多模态学习具有重要影响。由于训练数据直接来自网络,设计适当的目标来处理这些嘈杂的数据是研究的热点之一。我们发现在预训练过程中主要有三种上游预训练代理任务:多模态匹配(MM)、多模态对比学习(MCL)和掩码语言建模(MLM)。MM 预测一对模态是否匹配。MCL 的目标是将成对的单模态表示拉近。MLM 利用两种模态的特征来预测被掩码的单词。然而,由于巨大的计算成本限制,本文不专注于此步骤。我们直接选择应用预训练模型,并致力于以下两个步骤。

2) 适应:在本文中,我们将这一步定义为调整和重新制定下游任务,使其更像上游的预训练任务。值得注意的是,传统做法是通过将新的线性层附加到预训练特征提取器上,将预训练模型调整到下游分类任务,而我们则相反。在这里,我们制作了两种适配器,文本适配器和视觉适配器前者对于标签文本扩展非常重要,给定一个标签 y,我们首先定义一个合法值集合 Z,然后通过填充函数f_{fill}(y, z) 获取调整后的文本输入 y',其中 z ∈ Z。f_{fill}有三种变体,分别是前缀适配器、填空适配器和后缀适配器,它们基于填充位置进行分类。由于文本适配器作用于输入,因此它也可以被解释为 NLP 中的提示对于视觉适配器,其设计主要取决于预训练模型。如果模型是在视频文本数据上进行预训练的,那么对于视觉部分几乎不需要额外的重新制定,因为模型已经训练成输出视频表示。而如果模型是在图像文本数据上进行预训练的,则我们应该使模型学习视频的重要时间关系。形式上,给定一个视频 x,我们引入适配器函数为h_{tem}(h_I(x)),其中 h_I是预训练模型的视觉编码网络。类似地,h_{tem} 有三种变体,根据其对 h_I 的操作位置进行分类,包括前网络适配器、网络内适配器和后网络适配器。通过精心设计适配器,我们甚至可以避免上述不可达到的计算“预训练”步骤,通过保留预训练模型的学习能力。需要注意的是,在新范式中,预训练模型不应该被大幅修改,以避免灾难性遗忘,即预训练模型失去了在预训练时能够做到的事情的能力。我们在实验中也证明了这一点。

合法值集合 Z 可以包括各种与标签相关的文本片段、关键词或其他语义信息,用于扩展原始标签的语义表示.

文本适配器:用于扩展标签文本,以便更好地捕捉语义信息。通过添加合法值集合 Z 中的文本信息,文本适配器能够将原始标签调整为更丰富的表示形式,从而提高了模型对标签的理解能力

3) 微调:当存在足够的下游训练数据集(如 Kinetics)时,毫无疑问,对特定数据集进行微调将大大提高性能。此外,如果适配器引入了额外的参数,则有必要训练这些参数,并与整个框架一起进行端到端的学习。

C. 新范式实例化细节

新范式的每个组件都有广泛的选择。如图4所示,我们在这里展示一个实例化的例子,并使用这个实例进行所有的实验。

图4. ActionCLIP概览。 (a) 整体架构,由两个单模态编码器、一个相似性计算模块和所有可能的适配器位置组成。(b)–(g) 根据(a)中的位置,呈现了适配器的示例或细节,具有相同的背景颜色。具体来说,(b)展示了文本适配器的几个示例。(c)和(d)分别是前网络和中间网络视觉适配器的细节。(e)–(g)给出了后网络视觉适配器MeanP、Conv1D、LSTM和Transf的细节。请注意,我们的模型每次只会使用一种类型的视觉适配器,尽管为了清晰起见,所有的视觉适配器都被呈现出来。Pos.缩写为位置。

我们使用了一个现成的预训练模型CLIP [17],以避免在初始预训练步骤中消耗大量计算资源。尽管其视觉模态仅通过图像进行训练,但它在许多视频相关任务中也表现出色[39], [41], [43]。具体来说,CLIP是一个高效的图像-文本表示模型,通过MCL(多模态对比学习)任务进行训练,类似于我们的多模态学习框架。CLIP的图像编码器hI是一个视觉变换器ViT [21],而文本编码器hW是一个变换器transformer[64],其架构修改如[65]所述。这两个编码器使用对比目标在由各种公开可用的互联网来源收集的4亿(图像、文本)对的大型数据集上进行训练。我们在“预训练”步骤中用CLIP实现了我们的实例化模型,因此该实例化模型被称为ActionCLIP,如图4(a)所示。

图4(b)展示了实例化中使用的文本适配器的具体示例。我们将Z定义为K个离散的手工句子,这是基于人类内省的最自然方式。然后,将适配后的输入y'送入与预训练语言模型hW(变换器transformer)相同的语言编码器gW提取文本特征。为了解释我们的视觉模型,我们首先在数学上描述如何使用CLIP的预训练图像编码器hI直接提取视频特征。给定一个包含T个采样帧的视频,我们首先将每一帧分解成N个不重叠的P×P补丁,因此N=HW/P^2。然后将这些补丁展平成向量序列x(s,t) \in R^{3P^2},其中s = 1, ... , N表示空间位置,t = 1, ... , T是输入帧索引。原始的预训练图像编码器hI依次处理这T个帧。第t帧的输入嵌入向量z^0 _t定义为

\mathbf{z}_t^0=W\mathbf{x}_{(s,t)}+\mathbf{e}_s\quad(5)

其中,z的上标表示层索引,0表示输入层。W是一个可学习的矩阵,es是一个可学习的空间位置嵌入。hI由Ls堆叠块组成,每个块包含一个多头自注意力(MSA)层和一个多层感知器(MLP)层,因此第t帧第l层块的输出为

\begin{aligned}&\hat{\mathbf{z}}_{t}^{l}=\mathrm{MSA}\big(\mathrm{LN}\big(\mathbf{z}_{t}^{l-1}\big)\big)+\mathbf{z}_{t}^{l-1}\\&\mathbf{z}_{t}^{l}=\mathrm{MLP}\left(\mathrm{LN}(\hat{\mathbf{z}}_{t}^{l})\right)+\hat{\mathbf{z}}_{t}^{l}&\text{(6)}\end{aligned}

其中,LN是层归一化。接下来,我们详细介绍如何在hI的基础上借助三种类型的视觉适配器构建我们的视觉模型gV

1) 网络前适配器这种类型的适配器直接作用于输入,在送入编码器之前,如图4(c)所示。我们将从视频中提取的所有时空标记x(s,t)一起组合为\textbf{X}\in\mathbb{R}^{NT\times3P^{2}},然后通过视觉编码器前向传播以联合学习时空注意力。除了空间位置嵌入es之外,还会添加一个可学习的时间位置嵌入et到标记嵌入中以指示帧索引。形式上,z0定义为:

\mathbf{z}^0=W\mathbf{X}+\mathbf{e}_s+\mathbf{e}_t.\quad(7)

然后,gV的第l层输出为:

\begin{aligned}&\hat{\mathbf{z}}^{l}=\mathrm{MSA}(\mathrm{LN}(\mathbf{z}^{l-1}))+\mathbf{z}^{l-1}\\&\mathbf{z}^{l}=\mathrm{MLP}(\mathrm{LN}(\hat{\mathbf{z}}^{l}))+\hat{\mathbf{z}}^{l}.&\text{(8)}\end{aligned}

视觉模型gV可以使用原始的预训练图像编码器hI,唯一的变化是添加et。我们将这种类型简称为联合(Joint)。

2) 网络内适配器:我们尝试了一种无参数适配器因为更改网络结构不可避免地会面临灾难性遗忘现象【23】。如图4(d)所示,我们引入了时间偏移模块【35】,该模块沿时间维度移动部分特征通道,促进相邻输入帧之间的信息交换。我们将该模块插入视觉编码器gV的每两个相邻层之间,如下所示:

\mathbf{z}_{c,t}^l=\mathbf{z}_{c,t+\vartheta}^l,\quad\begin{cases}\text{if }0\leq c<\alpha C,&\vartheta=1\\\text{if }\alpha C\leq c<2\alpha C,&\vartheta=-1\\\text{if }2\alpha C\leq c<C,&\vartheta=0\end{cases}\quad(9)

其中,C 是通道数,c 表示特征通道的索引,l 表示第l 层,\alpha 是控制偏移通道比例的超参数,本文中我们将其设置为  \frac{1}{8}由于该模块不引入参数,因此 gV 的架构和预训练权重可以直接复用 hI。我们将这种操作简写为 Shift。

3)后网络适配器。在这种类型的后网络适配器中,我们将空间特征和时间特征分别用两个独立的编码器进行顺序编码。我们将它们分成两个连续的模块有两个原因:1) 这种方式可以将视频-文本多模态学习分解为图像-文本多模态学习和时间关系建模;2) 时间信息更好地在网络的更高(更抽象)级别上被利用。具体来说,我们首先专注于空间表示,然后使用一个时间编码器来聚合每个帧级别的空间特征之间的时间关系前者使用一个空间编码器g_{V}^{sp},它仅负责对从相同时间索引中提取的标记之间的交互进行建模。我们直接使用$h_{I}$(clip的图像编码器-ViT),没有改变,作为我们的g_{V}^{sp}提取的帧级别表示 $z_{t}^{Ls} \in \mathbb{R}^{D}$ 然后被连接成\mathbf{Z} = [\mathbf{z}_{0}^{L_{s}},\mathbf{z}_{1}^{L_{s}},\ldots,\mathbf{z}_{T}^{L_{s}}] \in \mathbb{R}^{T\times D},其中 D 是输出特征维度,然后传递给一个时间编码器 g_{V}^{te},用于模拟来自不同时间索引的标记之间的交互。我们提供四种选择给 g_{V}^{te},MeanP、Conv1D、LSTM 和 Transf,如图 4(e)–(g) 所示。MeanP 是指对沿着时间维度获取的空间特征 Z 进行平均池化,这是最简单的方法。Conv1D 是应用在 Z 上的一维时间卷积层。LSTM 是一个具有一个 LSTM 层的循环神经网络,用于对 Z 的时间信息进行建模。Transf 意味着在时间维度上建模的 Lt 层视觉变换器。具体来说,Transf 的第 d 层的输入$y_{0}$和输出$y_{d}$ 计算如下:\begin{aligned} &\mathbf{y}^{0} =W\mathbf{Z}+\mathbf{e}_{t} \\ &\mathbf{\hat{y}}d =\mathrm{MSA}(\mathrm{LN}(\mathbf{y}^{d-1}))+\mathbf{y}^{d-1} \\ &\mathbf{y}^{d} =\mathrm{MLP}(\mathrm{LN}(\hat{\mathbf{y}}^{d}))+\hat{\mathbf{y}}^{d} & \left(10\right) \end{aligned}

其中 et是一个可学习的时间位置嵌入。对于 Conv1D、LSTM 和 Transf 的输出,我们添加了一个残差路径,以保持g_{V}^{sp}的原始特征。由于 Conv1D、LSTM 和 Transf 的时间维度与输入 $Z$ 保持相同,所以后续操作与 MeanP 相同。

正如在第 IV-B 节中展示的,我们经验性地发现 Transf 是最佳的配置作为视觉适配器,因此 Transf 被视为我们的最终选择。我们将这归因于时间变换器对时间建模的更强力量。更详细的分析在第 IV-B 节中提供。然后,我们对整个网络进行端到端的微调,使用训练目标(4)。

4.实验

A.实验设置

1) 网络架构:我们的文本编码器 gW 遵循 CLIP 的架构,即一个包含 12 层、512 个节点的 Transformer,具有 8 个注意力头,从最高层的 [EOS] 输出的激活被视为特征表示 w。我们使用 CLIP 的视觉编码器 hI 的 ViT-B/32 和 ViT-B/16。它们都是 12 层的视觉 Transformer,具有不同的输入块尺寸,分别为 32 和 16。它们的最高层输出中的 [Class] 标记被使用。我们对于文本适配器使用了 K = 18 个合法值 Z。对于视觉适配器,Conv1D 和 LSTM 的层数为 1,Transf 具有 Lt = 6 层。我们实现了两个版本的 Transf,它们在是否使用 [Class] 标记上有所不同。我们将它们区分为 Transf 和 Transfcls。

2) 训练:我们使用 AdamW 优化器,基本学习率为 5 × 10^-6,用于预训练参数,而对于具有可学习参数的新模块,学习率为 5 × 10^-5。模型训练时使用了 50 个 epochs,并且权重衰减率为 0.2。学习率在总训练 epochs 的 10% 内进行热身,然后按照余弦衰减规则将其衰减为零,直到训练结束。输入帧的空间分辨率为 224 × 224。我们采用了与 [66] 相同的基于片段的输入帧采样策略,其中使用了 8、16 或 32 帧。即使是我们方法中最大的模型 ViT-B/16,在输入八帧的情况下,也可以使用四块 NVIDIA GeForce RTX 3090 GPU 进行训练,并且训练过程大约需要 2.5 天。与使用 128 个 GPU 进行 256 个 epochs 训练的 X3D 和 SlowFast 相比,我们的训练速度更快,需要的 GPU 数量更少(约为 30)。

3) 推理:在所有实验中,输入分辨率均为 224 × 224。按照 [10] 的方法,我们对最佳性能模型仅使用三个空间裁剪和每个视频的十个时间剪辑进行多视角推理。最终的预测是所有视图的相似度分数的平均值。

B.消融实验

在本节中,我们进行了大量消融实验,以展示我们的方法,即 ActionCLIP。本节中的模型使用八帧输入,采用 Transf 进行时间建模,将 ViT-B/32 作为骨干,以及在 Kinetics-400 上进行单视图测试,除非另有说明。

1) “多模态框架”是否有帮助?:为了与传统的视频单模态1对N分类模型进行比较,我们实现了一个名为 unimodality 的变体,它与我们的 ActionCLIP 在骨干、预训练权重和时间建模策略(在最终线性层之前)上保持一致。结果如表 I 所示。当利用标签文本的语义信息进行多模态学习时,它极大地提高了性能,使 top-1 准确率提高了 2.91%,表明多模态框架有助于学习强大的动作识别表示。我们在图 1 中提供了 unimodality 和我们的 ActionCLIP 的注意力可视化,并在图 5 中提供了更多 ActionCLIP 的样本。可以看到,我们的方法能够更多地关注动作主体(对应的人和物体)而不是单模态。请注意,我们的模型不仅关注对象和人,还关注它们之间的关系。例如,在“切割菠萝”的样本中,最突出的区域是手和菠萝之间的中心。

图 1. 所采用的多模态框架和传统单模态框架的注意力图可视化。视觉模型保持不变。单模态模型在最后附加了一个线性层。所有模型都在 Kinetics-400 上进行了微调。展示了两个视频的注意力图,标签位于右侧。由于引入语言信息的帮助,我们的框架能够更多地关注动作主体。

图5。注意我们的ActionCLIP可视化。给出了Kinetics-400的8个序列。标签放在框架的左边或右边。在语义语言监督下,我们的模型主要关注人的行为发生在哪里。

2) “预训练”步骤重要吗?:在表 II 中,我们通过使用随机初始化或 CLIP 预训练的视觉和语言编码器进行实验,验证了这一步骤的影响。特别是,从模型 V3 和 V4 之间的巨大差距(40.10% 对比 78.36%)中,我们发现视觉编码器需要适当的初始化,否则模型将无法获得强大的性能。语言编码器的影响较小,因为模型 V2 也能够获得与模型 V4(78.36%)相比较的结果(76.63%)。当视觉编码器和语言编码器都是随机初始化时,模型 V1 很难学习到一个好的表示,与模型 V4 相比,下降了 41.4% 的大幅度。因此,最终的结论是,“预训练”步骤很重要,特别是对于视觉编码器

3) “适配”步骤重要吗?:表 III 显示了文本适配的结果。可以看出,仅使用标签词相比使用文本适配下降了 0.54%,这表明了这种简单、离散且易于理解的文本适配的有效性。对于视觉适配器,请注意,MeanP 是最简单的时间融合方式,我们将其他视觉适配器与其进行了比较。如表 IV 所示,我们发现 Joint 和 Shift 明显降低了性能,分别下降了 2.74% 和 5.38%。我们认为原因是灾难性遗忘现象,因为 Joint 中输入模式发生了改变,而 Shift 中预训练图像编码器 hI 的特征发生了改变。这些操作可能会破坏原始学习到的强大表示,并导致性能下降。后网络适配器是保持已学到特征的更合适和更安全的选项。具体来说,LSTM 和 Conv1D 导致了可忽略的 top-1 下降,但它们都提高了 top-5 准确率。Transfcls 和 Transf 分别提高了 1.01% 和 1.25% 的 top-1 结果。我们选择 Transf 作为我们最终的视觉适配器,因为它具有最好的结果。总之,适配的设计是重要的,因为合适的适配器可以避免灾难性遗忘,保持现有预训练模型的表示能力,为使用大量网络数据提供了捷径

4) “微调”步骤重要吗?:我们通过分别冻结预训练语言编码器 hW 和图像编码器 hI 的参数来展示这一步骤。结果见表 V。当两个编码器都被冻结,只训练视觉适配器 Transf 时,性能下降了 6.15% 的 top-1 准确率。当所有参数都进行端到端的微调时,我们获得了最佳结果,为 78.36%。如果其中一个预训练编码器被冻结,都会对准确率产生负面影响。因此,“微调”步骤对于特定数据集确实至关重要,这与我们的感知直觉一致。

5) 骨干网络和输入帧数:在表 VI 中,我们尝试了不同的骨干网络和输入帧数的 ActionCLIP 配置。输入帧数从 8、16 到 32 不等。使用了两种不同的骨干网络,ViT-B/32 和 ViT-B/16。直观的结论是,更大的模型和更多的输入帧数会产生更好的性能

C.运行时分析

对于不同的骨干网络和输入帧配置,我们在表 VII 中展示了它们的模型大小、FLOPs 和推理速度。注意,我们报告了所有模型的单视图速度。所有骨干网络的文本编码器具有相同的架构,其中包含 37.8M 个参数。我们在表中展示了整体参数。值得注意的是,ViT-B/32 比 ViT-B/16 稍微多一些参数,这源自于输入到视觉变换器之前的线性投影层。然而,ViT-B/32 的推理速度要快得多(3.3×),而 FLOPs 比 ViT-B/16更少(4×)。此外,我们提供了两种最近的方法进行比较,TimeSformer [15] 和 ViViT [14]。具体来说,与 ActionCLIP 的最高配置相比,TimeSformer-L 需要更多的输入帧(3×)才能获得最佳性能,但仍然比 ActionCLIP(83.8% ,对比 80.7%)差,差距达到了 3.1%。TimeSformer-L 的计算 FLOPs 与我们的 16 帧输入变体类似,但我们的性能仍然比 TimeSformer-L 高出很大的边际 1.9%。类似地,ViViT 需要更多的计算 FLOPs(2.8×)才能获得其最佳结果,输入分辨率更大为 320 × 320,而 ActionCLIP 的输入为 224 × 224,并且超过 ViViT,具有 0.3% 的 top-1 准确率差距,并且比 ViViT 运行速度更快(3.1×)。ViViT 的结果也是在大规模预训练数据集 JFT 上进行的预训练。此外,我们观察到我们的 ViT-B/32 版本是一种性价比高的版本,在表 VIII 中与所有方法相比,获得了令人满意的性能,GFLOPs 最少。总之,ActionCLIP 是一种高效且有效的动作识别方法

D.零样本/少样本识别

在这一部分,我们展示了我们的 ActionCLIP(ViT-B/16)在零样本/少样本识别方面的吸引力。我们实现了两种代表性方法进行比较:STM [10],它是一个设计良好的时序编码的二维网络,以及 3-D-ResNet-50,它是 SlowFast [7] 的慢路径。我们在所有模型中使用八帧输入,单视角推断。我们在 UCF-101 和 HMDB-51 数据集上验证了使用 Kinetics-400 预训练模型的模型(ActionCLIP 在这里使用 Transf)。正如图 6 所示,结果展示了 ActionCLIP 在这些数据稀缺条件下的强大迁移能力,而传统的单模态方法无法进行零样本识别,并且它们的少样本性能与 ActionCLIP 相比即使在大型 Kinetics-400 上进行了预训练也是低效的。此外,我们在表 IX 中列出了 ActionCLIP 和其他两种最近方法 X-CLIP [56] 和 Vita-CLIP [58] 的零样本性能。值得注意的是,即使使用可能不是最强大的预训练模型,ActionCLIP 也取得了优越的结果,突显了我们方法的有效性。

图 6. 在 HMDB-51(左)和 UCF-101(右)上的零样本/少样本结果。在这些困难的数据稀缺情况下,ActionCLIP 领先表现。它可以在所有三个数据集上进行零样本识别,而 STM 和 3-D-ResNet-50 在这种情况下无法使用。此外,ActionCLIP 擅长少样本分类,在与其他两种方法相比的情况下,性能差距明显。棕色虚线表示零样本准确率。

E.与最先进方法的比较

在这一部分,我们评估了我们的方法在一系列多样化的动作识别数据集上的性能:Kinetics-400 [1]、Charades [76]、UCF-101 [77] 和 HMDB-51 [78]。ActionCLIP 使用 ViT-B/16、Transf 适配器和多视角测试。需要注意的是,为了进行公平比较,所有方法的结果都使用相同的输入分辨率 224 × 224。

1) Kinetics-400:表VIII对Kinetics-400上的先前方法进行了比较。表中有五个部分,对应于基于3D-CNN的方法、基于2D-CNN的方法、基于Transformer的方法、基于适配器的方法和我们的方法。根据表中的数据,第三部分采用了比第一部分和第二部分更强大的视觉Transformer,取得了更好的结果。其中,前四种方法都基于12层ViT-B/16模型进行参数和准确性的平衡,就像我们的ActionCLIP一样。Video Swin是专为视频理解设计的一种新的Transformer骨干网络,它有基础和大型变体。ViViT [14]则使用了更大的模型,24层ViT-L,以获得更好的结果。此外,它还引入了JFT进行进一步的预训练以获取更高的性能。我们的ActionCLIP在仅使用16帧输入时达到了82.6%的top-1准确率,超过了表中第一部分和第二部分的所有方法,以及大多数可能使用更多输入帧的基于Transformer的方法,例如使用250帧的ViT-B-VTN [36]。一个有趣的发现是,即使只使用16帧输入,我们的top-5准确率始终高于其他方法。我们认为,这得益于我们多模态框架的不同推理过程,该过程计算视频的语义表示与所有标签之间的相似度。当将输入增加到32帧时,ActionCLIP进一步达到了领先的83.8%的性能,超过了所有其他方法,包括具有更大模型的ViViT-L [14]和Video Swin-L [73]。我们相信,更多的输入帧、更大的模型和更大的输入分辨率将会产生更好的结果,并将其留给未来的工作。ActionCLIP目前的性能已经显示出了多模态学习框架和提出的新范式在动作识别中的潜力。我们还将我们的算法与最近的方法进行了比较,例如PromptCLIP A7 [55]、EVL [54]、X-CLIP [56]、ST-Adapter [57]、AIM [59]、ViFi-CLIP [60] 和 Vita-CLIP [58]。如表VIII所示,ActionCLIP仍然展现出竞争性的性能和优势。ActionCLIP同时适应了文本和视频模态,保留了原始的多模态框架,从而保持了零样本泛化能力。这使得它与现有的单模态转换方法有所区别,例如ST-Adapter [57] 和 AIM [59],这些方法在视觉模态中添加了时间建模,并遵循传统方法,通过添加线性层进行分类。因此,这些方法缺乏零样本泛化能力。

2) Charades:这是一个具有较长时间范围活动的数据集,每个视频中可能包含多个动作。我们在表X中展示了在Kinetics-400上预训练的模型。使用平均精度(mAP)进行评估。ActionCLIP实现了44.3的mAP的最佳性能,这表明了它在多标签视频分类上的有效性。

3) UCF-101,HMDB-51:在表XI中,我们在UCF-101和HMDB-51数据集上进行实验,以研究我们的ActionCLIP的泛化能力。我们使用在Kinetics-400上预训练的模型,并在三个分割上评估我们的方法,并报告了平均结果。结果表明,我们的ActionCLIP在小数据集上表现出卓越的泛化能力。

5.结论

这篇文章提出了一种新的视角来看待动作识别问题,将其视为视频文本多模态学习问题。与传统方法将任务建模为视频单模态分类问题不同,我们引入了一个从CLIP中获取语义信息的多模态学习框架。然后,我们提出了一个新的范式,即“预训练、适配和微调”,使我们的框架能够直接重用强大的大规模网络数据预训练模型,大大降低了预训练成本。我们实现了新范式的一个实例,即ActionCLIP,在一般动作识别和零样本/少样本动作识别方面表现出了卓越的性能。我们希望我们的工作能够为这一任务提供一个新的视角,特别是引起对语言建模的关注。

在未来,我们将继续从以下几个方面改进我们的方法:1)改进文本适配器;2)增强视觉主干;3)增加额外功能;以及4)扩展到更多视频相关任务,如视频检测和分割

读后总结

出发点:现有的传统视频动作识别很难做到零样本识别。

创新点:提出将视频动作识别转换为多模态的视频文本匹配问题,通过文本标签和视频图像的相似度比较,【文中分别通过文本编码器(clip的transformer)和视觉编码器(clip的ViT)获得对应的文本特征和视频特征】实现文本标签和视频的匹配,通过文本标签的辅助,从而实现视频动作识别的正确分类。

出发点:针对标签文本数据不足的问题。

创新点:提出一种新的动作识别范式“预训练-适应-微调”,从而能够使用预训练的大语言模型clip。预训练部分使用现有的预训练clip模型;适应部分,分为文本适配器和视频适配器,文本适配器分为前缀适配器、填空适配器和后缀适配器,丰富标签文本信息,视频适配器分为前网络适配器、网络内适配器和后网络适配器,适应步骤的作用是将下游任务的特性(如具体的分类标签、数据分布等)与预训练任务对齐,从而使模型能够更好地处理新的任务;微调部分,使用任务数据集进行训练微调模型。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值