本文分享论文『Prompting Visual-Language Models for Efficient Video Understanding』,用 CLIP 做多个视频任务!上交&牛津提出基于 Prompt 将CLIP 拓展到多个视频任务,在 open-set 场景中效果极佳!
详细信息如下:
- 论文链接:https://arxiv.org/abs/2112.04478
- 项目链接:https://github.com/ju-chen/Efficient-Prompt
导言:
视觉语言预训练在从大型web数据中学习联合视觉文本表示方面显示出巨大的成功,证明了 “Zero-Shot” 泛化的卓越能力。本文提出了一种简单的方法来有效地将一个预训练的视觉语言模型利用最少的训练来适应视频理解新任务。具体而言,作者提出优化一些随机向量,称为“连续提示向量(continuous prompt vectors)”,将新任务转换为与预训练目标相同的格式。
此外,为了弥补静态图像和视频之间的差距,时间信息是用轻量级Transformer编码的,这些Transformer堆叠在帧视觉特征之上。作者进行了广泛的消融研究,以分析关键部件。在动作识别,动作定位和文本视频检索的9个公共基准上,在closed-set, few-shot, open-set场景中,本文模型实现了现有方法的竞争性或SOTA的性能,并且训练了明显更少的参数。
01
Motivation
尽管计算机视觉的研究主要集中在解决特定任务上,但人类感知的目标始终是学习通用视觉表示,该视觉表示可以以最小的微调解决各种问题。为了实现这一目标,最近在训练视觉语言模型方面的工作显示出不错的进展。例如,CLIP和ALIGN通过简单的噪声对比学习,来学习图像和文本的联合表示,极大地受益于文本描述中的丰富信息,例如动作、对象、人-对象交互和对象-对象关系。
因此,这些视觉语言模型已经在各种图像分类任务中展示了不错的 “Zero-Shot” 泛化性能。重要的一点是,这些数据可以在网上大规模的爬取,不需要昂贵的手工标注。因此,有理由相信,随着计算量的增长,将收集到更大的数据集,并在不久的将来训练出更强大的模型。
基于这样的背景,自然会出现一个问题: 我们如何才能最好地利用这些强大的视觉语言模型中的能力,并有效地使其适应以解决感兴趣的特定新的视觉任务?一种可能的解决方案是在考虑的下游任务上加上图像编码器,然而,由于每个下游任务都需要保存自己的一组参数,数百个单独任务就需要数百个模型。
更成问题的是,丢弃文本编码器会失去模型 “zero-shot” 泛化的能力,因此所得模型只能适用于一组预定类别。在CLIP中,给定适当设计的 “提示”,该模型能够处理各种下游任务,其中分类由文本编码器动态生成,来自类别名称或其他自由形式的文本。这里的提示是手工制作的填空模板,以便于分类生成,因此下游视觉任务可以与预训练目标的格式相同,从而有效地缩小预训练和下游任务之间的差距。剩下的一个问题是,这种手工制作的提示需要大量的专家知识和劳动力,限制了其用于有效的任务适应。
在本文中,作者继续以提示学习为基础,目的是探索一种有效的方法来适应新任务的视觉语言模型。作者通过在文本输入中添加随机向量序列 (称为 “连续提示向量”) 来实现一个简单的想法。这些提示向量完全由自由参数组成,这些参数不对应于任何真实的具体单词,并且文本编码器的后续层将参加优化这些向量,就好像它们是生成分类或嵌入的 “虚拟token” 序列一样。尽管文本编码器的权重保持冻结,但梯度会通过它向后传播,以优化可训练的提示向量。因此,视觉主干网络能够执行各种视频理解任务,每个任务的可训练参数数量最少,即只有几个提示向量。
02
方法
本文的框架如上图所示,作者的目标是有效地引导基于图像的时间语言模型来处理新的下游任务,这个过程称之为模型适应(model adaptation)。
2.1. Visual-Language Model: CLIP
给定一个采样batch中的N个对 (图像,文本),分别使用两个编码器计算图像和文本的特征嵌入,并在所有N个可能的 (图像,文本) 对之间计算密集余弦相似矩阵。训练目标是通过最大化N个正确的 (图像,文本) 关联对之间的相似性,同时通过对称的交叉熵最小化N × (N-1) 个不正确对的相似性,共同优化图像和文本编码器密集矩阵上的熵,即噪声对比学习。
输入图像被分成patch,然后转换成“视觉token”; 输入文本通过可训练的look-up table被转换成“文本token”。
经过训练后,CLIP可以部署用于开放词汇上的图像分类任务,视觉分类句子是从文本编码器 () 生成的。例如,要将图像分类为cat或dog,可以将视觉分类句子生成为:
“this is a photo of [·]” 是手工设计的提示模板,已证明对图像分类有效。
尽管在Zero-Shot图像分类上取得了巨大的成功,CLIP也被证明对手工制作的提示模板很敏感,显然对其有效适应新的下游任务提出了限制,在这些任务中,专家知识可能很难浓缩。因此,在这里,作者考虑自动化的提示设计,探索有效的方法来适应新的下游视频相关任务的预训练的视觉语言模型。
2.2. Prompting CLIP for Video Understanding
2.2.1 Problem Scenario
给定由训练集和验证集组成的数据集,。视频的范围可以从几秒 (识别和检索) 到几分钟 (定位)。对于动作识别和定位任务,是一个类别单词;对于检索任务,是一个句子。
在closed-set方案中,训练和验证的动作类别是相同的,即; 而在open-set方案中,训练和验证的动作类别是不相交的,即。
2.2.2 Model Adaptation by Learning Prompts
这里的目标是引导预训练的CLIP模型以最少的训练来执行各种视频任务。作者通过在文本token中添加连续随机向量 (“提示向量”) 序列来实现有效的模型适应。在训练过程中,CLIP的图像和文本编码器都被冻结,梯度将流经文本编码器,仅更新提示向量。最终,这些学习的向量最终构造了文本编码器可以理解的 “虚拟” 提示模板,并生成所需的分类或查询嵌入。
Action Recognition
动作识别是对视频的动作进行分类。为了生成分类文本,作者通过将标记化动作类别名称输入预训练文本编码器()来构建“虚拟”提示模板,如下所示:
其中,表示第i个提示向量,由可学习的参数组成,D是向量维数。指的是生成的用于 “archery” 动作的分类句子 。这里,提示向量对于所有动作类别都是共享的。
Action Localisation
动作定位考虑对未修剪视频中的动作进行定位和分类。作者利用两阶段范式 :首先检测潜在的类不可知的动作proposal,然后对这些检测到的proposal进行动作分类。
Text-Video Retrieval
文本视频检索考虑联合学习视频及其相应的文本描述之间的视觉和文本嵌入。与动作识别相反,视频片段被动作类别粗略地标记,视频检索中的文本描述包含更多的细节,通常是一个句子。在这里,作者同样对整个句子进行标记化,并使用可学习的提示向量将标记化结果提供给文本编码器,以生成每个句子的查询嵌入。
2.2.3 Temporal Modeling
对于预训练,CLIP完全依赖图像-文本对。一方面,用于训练的 (图像,文本) 数据可以很容易地从网络上抓取,这使得能够在给定的计算约束下学习更丰富的内容; 但是,另一方面,它忽略了视觉场景的时间成分。因此,作者通过添加一个简单的时间建模模块来弥补图像与视频之间的差距。
具体而言,作者将CLIP图像编码器升级为视频编码器,方法是在冻结图像编码器的逐帧特征上附加来Transformer:
其中是指时间建模模块,它是一个多层Transformer编码器。为了表示时间顺序,作者还将可学习的时间位置编码添加到图像特征上。表示T帧的密集特征嵌入。
2.2.4 Training Loss
给定一个batch的 (视频,文本) 对,视觉流最终以密集的逐帧特征嵌入表示; 而对于文本流,取决于所考虑的下游任务,它以一组动作分类句子或文本查询嵌入表示。
对于动作识别和文本视频检索,作者通过对密集特征进行平均池化来进一步计算视频片段级别的特征:
对于动作定位,作者在每个检测到的动作proposal中采用密集特征的平均池化,以获得proposal级特征。在训练过程中,作者共同优化文本提示向量和时间建模模块,使得视频特征及其配对的分类或文本查询嵌入获得最高的相似性得分。这是通过简单的NCE损失实现的:
03
实验
3.1. Action Recognition
3.1.1 Closed-set Action Recognition
上表展示了在两个数据集上close-set动作识别的消融实验结果。
上表展示了本文方法在close-set动作识别上和SOTA结果的对比结果。
3.1.2 Few-shot Action Recognition
上表展示了本文方法在Few-shot动作识别的上的实验结果。
3.1.3 Open-set Action Recognition
上表展示了本文方法在Open-set动作识别上的实验结果。
3.2. Action Localisation
3.2.1 Closed-set Action Localisation
上表展示了本文方法在Closed-set Action Localisation任务上和SOTA方法的对比。
3.2.2 Open-set Action Localisation
上表展示了本文方法在Open-set Action Localisation任务上的实验结果。
3.3. Text-Video Retrieval
上表展示了本文方法在视频-文本检索上的实验结果
04
总结
本文提出了用基于CLIP来做Action Recognition、Text-Video Retrieval、Action Localisation三个任务。对于前两个任务,处理方式和ActionCLIP和CLIP4Clip差不多,对于第三个任务作者采用两步的方式,首先把所有的片段proposal给提取出来,然后比较每个proposal和query 文本的相似度,从而达到检索的目的。此外,为了捕获视频的时序信息,作者还在Image Encoder上面加了一个Temporal Encoder。在少样本和开放场景中,本文的方法在所有任务中的表现都明显优于现有方法,有时甚至超过10%。