基于CLIP,浙大提出:ActionCLIP,用检索的思想做视频动作识别!性能SOTA!代码已开源!...

关注公众号,发现CV技术之美

本文分享论文『ActionCLIP: A New Paradigm for Video Action Recognition』,假设视频动作识别不是分类问题,而是检索问题?并基于 CLIP,浙大提出 ActionCLIP,用检索的思想做视频动作识别!性能 SOTA!代码已开源!

详细信息如下:

基于CLIP,浙大提出:ActionCLIP,用检索的思想做视频动作识别!性能SOTA!代码已开源!..._第1张图片

  • 论文链接:https://arxiv.org/abs/2109.08472

  • 项目链接:https://github.com/sallymmx/ActionCLIP

导言:

97f0d8bef0d2a405e733ecc78d35e82e.png

视频动作识别的标准方法要求神经模型执行经典的1-of-N投票任务。他们被训练来预测一组固定的预定义类别,从而限制了他们在具有未知概念的新数据集上的可迁移能力。

在本文中,作者通过重视标签文本的语义信息,而不是简单地将它们映射成数字,为动作识别提供了一个新的视角。具体地说,作者将此任务建模为多模态学习框架内的视频文本匹配问题,该框架通过更多语义语言监督来增强视频表示,并使模型能够进行Zero-Shot动作识别,而无需任何进一步的标记数据或参数要求。

此外,为了解决标签文本的不足和利用大量的网络数据,作者提出了一种基于多模态学习框架的行为识别新范式,称之为 “预训练、提示和微调”(“pretrain, prompt and fine-tune”)。该范式首先从大量web图像文本或视频文本数据的预训练中学习强大的表示。然后通过prompt engineering使动作识别任务更像预训练的问题。最后,它对目标数据集进行端到端的微调,以获得强大的性能。

作者给出了新范式ActionCLIP的一个实例,它不仅具有优越且灵活的zeroshot/fewshot迁移能力,而且在一般动作识别任务中达到了最高性能,在Kinetics-400上用ViT-B/16作为 Backbone上实现了83.8%的top-1准确率。

      01      

Motivation


视频动作识别是视频理解的第一步,是近年来视频研究的热点。作者观察到它主要经历了两个阶段,feature engineering 和 architecture engineering。由于在Kinetics等大型数据集诞生之前,没有足够的数据来学习高质量的模型,早期的方法侧重于feature engineering,利用他们的知识设计特定的手工表达。

然后,随着深度神经网络和大型基准测试的出现,现在进入了第二阶段,即architecture engineering。通过合理吸收时间维度,出现了许多设计良好的网络,如two-stream网络、三维卷积神经网络(CNN)、计算高效的网络和基于Transformer的网络。

基于CLIP,浙大提出:ActionCLIP,用检索的思想做视频动作识别!性能SOTA!代码已开源!..._第2张图片

尽管特征和网络结构在过去几年中得到了很好的研究,它们经过训练,可以在单模态框架内预测一组固定的预定义类别,如上图(a)所示。但是这种预先确定的方式限制了它们的通用性和使用,因为需要额外的带标签的训练数据才能迁移到任何其他新的概念。

与以前那样直接将标签映射到数字相比,直接从文本中学习是更加有效的,它可以成为更广泛的监督来源,并提供更全面的代表性。人类可以通过将视觉外观的语义信息与自然语言源(而不是数字)相关联来识别已知和未知的视频。

在本文中,作者在多模态框架中探索自然语言监督,如上图(b)所示,目标有两个:

  1. 通过更多语义语言监控加强传统动作识别的表示 ,

  2. 使模型能够实现Zero-Shot迁移,而无需任何进一步的标记数据或参数要求 。

本文的多模态框架包括用于视频和标签的两个单独的单模态编码器和一个相似度计算模块。训练目标是使成对视频和标签表示相互靠近,因此学习到的表示比单模态方法更具语义。在推理阶段,它成为一个视频文本匹配问题,而不是一个1/N投票任务,并且能够进行zero-shot预测。

然而,现有的全监督动作识别数据集的标签总是过于简洁,无法为语言学习构建丰富的句子。收集和标注新的视频数据集需要巨大的存储资源和巨大的人力和时间。另一方面,每天网络上都会存储和生成大量带有嘈杂但富文本标签的视频。

有没有一种方法可以激活丰富的web数据以进行动作识别?

ViViT证明了预训练可能是一种解决方案。但使用大量web数据进行预训练并不容易。它在存储硬件、计算资源和实验周期方面非常昂贵。这引发了本文的另一个动机,能否直接将预训练好的多模态模型应用到这项任务中,从而避免上述困境?作者认为这是可能的。

在形式上,作者为视频动作识别定义了一个新的范例“预训练、提示和微调”。尽管使用大规模视频文本数据集(如Howto100M)对整个模型进行端到端的重新训练很有吸引力,但这仍受到巨大计算成本的限制。但是作者发现使用预先训练好的模型也是可行的,因此作者采用了公开的预训练好的模型。

然后作者重新制定了新任务,使其看起来更像原始预训练过程中解决的那些问题。基于prompt的学习被认为是对自然语言处理(NLP)的巨大改变,但它在视觉任务中并不活跃,特别是在动作识别中还没有被利用。最后,作者在目标数据集上微调整个模型。并实现了这个范式的一个实例,ActionCLIP,它使用CLIP作为预训练的模型。它在Kinetics-400上获得了83.8%top-1精度。

      02      

方法


2.1. Multimodal Learning Framework

以前的视频动作识别方法将此任务视为标准的1-of-N投票问题,将标签映射为数字。这个pipeline完全忽略了标签文本中包含的语义信息。与纯视频建模相比,作者将此任务建模为视频文本多模态学习问题。作者认为,在自然语言的监督下学习不仅可以提高表达能力,而且可以实现灵活的zero-shot transfer。

形式上,给定一个输入视频x和一个来自预定义标签集的标签y,之前的工作通常训练一个模型来预测条件概率,并将y转换为一个数字或一个one-hot向量。在推理阶段,预测得分最高的下标被视为对应的类别。作者试图打破这一pipeline,并将问题建模为,其中i是标签的原始单词,f是一个相似函数。

那么,测试就是一个匹配过程,相似度得分最高的标签词就是分类结果:

基于CLIP,浙大提出:ActionCLIP,用检索的思想做视频动作识别!性能SOTA!代码已开源!..._第3张图片

如上图(b)所示,作者在dual stream框架内学习视频和标签词的单独单模态编码器。视频编码器提取视觉形态的时空特征。语言编码器用于提取输入标签文本的特征,可以是多种语言模型。然后,为了使成对视频和标签表示彼此接近,作者在相似性计算模块中定义两种模态之间的对称相似性,即余弦距离:

其中和分别是x和y的编码特征。然后,视频到文本和文本到视频的相似性分数可以计算为:

式中,τ是可学习的温度参数,M是训练对的数量。设表示Ground-Truth相似性得分,其中负对的概率为0,正对的概率为1。由于视频的数量远大于固定标签,因此在一个batch的视频中不可避免地会出现属于一个标签的多个视频。

因此,在中可能存在多个正对,所以将相似性得分学习看做具有交叉熵损失的1-in-N分类问题是不恰当的。相反,作者将KL散度定义为视频文本对比损失,以进行优化:

其中表示整个训练集。由于模型学习到了语义信息,因此也可以进行zero-shot的迁移。

2.2. The New Paradigm

在考虑上述多模态学习框架时,需要考虑标签词的不足。最直观的方法是利用大量的web图像文本或视频文本数据。为了迎合这一点,作者提出了一种新的 “预训练、提示和微调”(“pre-train, prompt and fine-tune”)动作识别范式。

Pre-train

正如先前的工作所表明的,预训练对视觉语言多模态学习有很大的影响。由于训练数据是直接从网络上收集的,因此其中一个热门方向是设计适当的目标,以便在此过程中处理这些噪声数据。

在预训练过程中主要有三个上游预训练代理任务:多模态匹配(multimodal matching,MM)多模态对比学习(multimodal contrastive learning,MCL)掩蔽语言建模(masked language modeling,MLM)。MM预测一对模态是否匹配。

MCL的目的是绘制彼此接近的成对单模态表示。MLM利用这两种模态的特征来预测mask的词。然而,由于计算量巨大的限制,本文没有关注这一步骤。作者直接选择应用预训练的模型,并在以下两个步骤上进行研究。

Prompt

NLP中的提示(Prompt)意味着使用模板将原始输入修改为文本字符串提示,该提示有一些未填充的slot,以填充预期结果。值得注意的是,传统的做法是通过在预训练的特征提取器上附加一个新的线性层,使预训练的模型适应下游的分类任务,这与本文的做法相反。

在本文中,作者做了两种提示,文本提示(textual prompt )视觉提示(visual prompt)。前者对于标签文本扩展具有重要意义。给定一个标签y,首先定义一组允许值,然后通过填充函数获得提示的文本输入,其中。有三种类型的:前缀提示(prefix prompt)中间提示(cloze prompt)后缀提示(suffix prompt)。它们根据填充位置进行分类。

对于视觉提示,其设计主要取决于预训练模型。如果模型在视频文本数据上进行了预训练,则几乎不需要对视觉部分进行额外的重新格式化,因为模型已经训练为输出视频表示。而如果模型是用图像文本数据预训练的,那么应该让模型学习视频的重要时间关系。

形式上,给定一个视频x,作者引入了提示函数,其中是预训练模型的视觉编码网络。类似地,根据其工作位置分为三种变体:网络前提示(pre-network prompt)网络内提示(in-network prompt)网络后提示(post-network prompt)

通过精心设计提示,甚至可以通过保持预训练模型的学习能力来避免上述无法达到的计算“预训练”步骤。注意,在新范式中,由于灾难性遗忘,不能对预训练模型进行大量修改。

Fine-tune

当有足够的下游训练数据集时,对特定数据集进行微调无疑会显著提高性能。此外,如果提示(prompt)引入了额外的参数,则有必要对这些参数进行训练,并对整个框架进行端到端的学习。

2.3. New Paradigm Instantiation Details

基于CLIP,浙大提出:ActionCLIP,用检索的思想做视频动作识别!性能SOTA!代码已开源!..._第4张图片

新范式的每个组成部分都有多种选择。如上图所示,作者展示了一个实例化示例,并使用该实例化进行了所有实验。

作者采用了预训练的模型CLIP,以避免在第一个预训练步骤中产生巨大的计算资源。因此,此实例化模型称为ActionCLIP,如上图(a)所示。CLIP是一种通过MCL任务训练的高效图像文本表示,类似于本文的多模态学习框架。上图(b)显示了实例化中使用的文本提示的具体示例。

为了简单起见,作者将定义为K个离散的人工定义的句子。然后,提示输入被输入到语言编码器中,这与预训练的语言模型相同。对于视觉模型,基于CLIP的预训练图像编码器,作者采用以下三种类型的视觉提示。

Pre-network Prompt

如上图(c)所示,该类型在送入编码器之前对输入进行操作。给定一个视频x,只需forward所有从视频中提取的时空标记,以共同学习时空注意。除了空间位置嵌入外,token嵌入将添加额外的可学习时间位置嵌入,以指示帧索引。可以使用原始预训练图像编码,这种方式简称为Joint。

In-network Prompt

如上图(d)所示,这是一种parameter-free prompt,简称为Shift。作者引入了时间移位模块,该模块沿时间维度移动部分特征通道,并促进相邻输入帧之间的信息交换。作者在每两个相邻的层之间插入模块。的结构和预训练的权重可以直接重用,该模块不带任何参数。

Post-network prompt

给定一个具有提取帧的视频x,作者在prompt中使用两个单独的编码器顺序编码空间和时间特征。第一个是空间编码器,它只负责对从同一时间索引中提取的token之间的交互进行建模,可以使用作为。提取的帧级表示为,然后将concat成,然后送到时间编码器,以模拟来自不同时间索引的token之间的交互。

作者为提供四种选择(MeanP。Conv1D,。LSTM,Transf),如上图(e-g)所示。MeanP是时间维度上的平均池化的缩写。Conv1D是应用于时间维度上的1D卷积层。LSTM是一个递归神经网络,Tran为时间视觉Transformer编码器。


      03      

实验


3.1. Ablation Experiments

Is the “multimodal framework” helpful?

基于CLIP,浙大提出:ActionCLIP,用检索的思想做视频动作识别!性能SOTA!代码已开源!..._第5张图片

上表展示了单模态和多模态训练框架的实验结果,可以看出,多模态框架显著提升性能。

Is the “pre-train” step important?

基于CLIP,浙大提出:ActionCLIP,用检索的思想做视频动作识别!性能SOTA!代码已开源!..._第6张图片

上表展示了是否使用预训练的模型进行实验的结果。

Is the “prompt” step important?

基于CLIP,浙大提出:ActionCLIP,用检索的思想做视频动作识别!性能SOTA!代码已开源!..._第7张图片

上表展示了是否使用prompt的实验结果。

Is the “fine-tune” step important?

基于CLIP,浙大提出:ActionCLIP,用检索的思想做视频动作识别!性能SOTA!代码已开源!..._第8张图片

上表展示了不同模块是否进行fine-tuning的实验结果。

Backbones and input frames

基于CLIP,浙大提出:ActionCLIP,用检索的思想做视频动作识别!性能SOTA!代码已开源!..._第9张图片

上表展示了不同Backbone的实验结果。

3.2. Runtime Analysis

基于CLIP,浙大提出:ActionCLIP,用检索的思想做视频动作识别!性能SOTA!代码已开源!..._第10张图片

对于不同的Backbone,上表展示了训练情况的分析。

3.3. Zero-shot/few-shot Recognition

基于CLIP,浙大提出:ActionCLIP,用检索的思想做视频动作识别!性能SOTA!代码已开源!..._第11张图片

上表展示了不同数据集上本文方法的zero-shot结果。

3.4. Comparison with State-of-the-art Methods

基于CLIP,浙大提出:ActionCLIP,用检索的思想做视频动作识别!性能SOTA!代码已开源!..._第12张图片

基于CLIP,浙大提出:ActionCLIP,用检索的思想做视频动作识别!性能SOTA!代码已开源!..._第13张图片

上表展示了不同数据集上,本文方法和SOTA方法的对比结果。


      04      

总结


本文将动作识别视为一个视频-文本多模态学习问题,为动作识别提供了一个新的视角。与将任务建模为视频单模态分类问题的传统方法不同,作者提出了多模态学习框架来挖掘标签文本的语义信息。

然后,作者制定了一个新的范式,即 “预训练、提示和微调”,使本文的框架能够直接重用强大的大规模web数据预训练模型,大大降低了预训练成本。作者实现了新范式 ActionCLIP 的一个实例,它在一般和zero-shot/few-shot动作识别方面都具有优异的性能。

▊ 作者简介

研究领域:FightingCV公众号运营者,研究方向为多模态内容理解,专注于解决视觉模态和语言模态相结合的任务,促进Vision-Language模型的实地应用。

知乎/公众号:FightingCV

基于CLIP,浙大提出:ActionCLIP,用检索的思想做视频动作识别!性能SOTA!代码已开源!..._第14张图片

END

欢迎加入「动作识别交流群备注:Act

基于CLIP,浙大提出:ActionCLIP,用检索的思想做视频动作识别!性能SOTA!代码已开源!..._第15张图片

你可能感兴趣的:(大数据,自然语言处理,算法,编程语言,python)