首页 > 运维 > linux运维 > 正文

用CLIP做多个视频任务!上交&牛津提出基于Prompt将CLIP拓展到多个视频任务,在open-set场景中效果极佳!

星夢妙者
发布: 2025-06-26 12:52:18
原创
321人浏览过

本文分享了题为『prompting visual-language models for efficient video understanding』的论文,介绍了如何利用clip模型完成多个视频任务。上海交通大学与牛津大学的研究团队通过基于提示(prompt)的方法,将clip扩展到多个视频任务,并在开放场景(open-set)中展现出卓越的效果。

详细信息如下:

用CLIP做多个视频任务!上交&牛津提出基于Prompt将CLIP拓展到多个视频任务,在open-set场景中效果极佳!论文链接:https://www.php.cn/link/0272139a5b83cf5bbe88f311c2796670

视觉语言预训练模型在从大型web数据中学习联合视觉文本表示方面展现了巨大的成功,证明了其在“零样本”(Zero-Shot)泛化方面的卓越能力。本文提出了一种简单的方法,通过最少的训练将预训练的视觉语言模型应用于新的视频理解任务。具体来说,作者提出了优化一些随机向量,称为“连续提示向量(continuous prompt vectors)”,将新任务转化为与预训练目标相同的格式。

此外,为了弥补静态图像与视频之间的差距,时间信息通过轻量级Transformer编码,这些Transformer堆叠在帧视觉特征之上。作者进行了广泛的消融研究,以分析关键组件。在动作识别、动作定位和文本视频检索的9个公共基准上,在封闭集(closed-set)、少样本(few-shot)和开放集(open-set)场景中,本文模型实现了与现有方法相比的竞争性或最先进(SOTA)的性能,且训练参数明显减少。

01

动机

尽管计算机视觉的研究主要集中在解决特定任务上,但人类感知的目标始终是学习通用视觉表示,这种表示可以以最小的微调解决各种问题。为了实现这一目标,近期在训练视觉语言模型方面的研究显示出不错的进展。例如,CLIP和ALIGN通过简单的噪声对比学习,学习图像和文本的联合表示,极大地受益于文本描述中的丰富信息,如动作、对象、人-对象交互和对象-对象关系。

因此,这些视觉语言模型已在各种图像分类任务中展示了不错的“零样本”泛化性能。重要的是,这些数据可以在网上大规模获取,无需昂贵的手工标注。因此,有理由相信,随着计算能力的提升,将收集到更大的数据集,并在不久的将来训练出更强大的模型。

基于这样的背景,自然会出现一个问题:我们如何才能最好地利用这些强大视觉语言模型的能力,并有效地使其适应解决感兴趣的特定新视觉任务?一种可能的解决方案是在考虑的下游任务上加上图像编码器,但由于每个下游任务都需要保存自己的一组参数,数百个单独任务就需要数百个模型。

更成问题的是,丢弃文本编码器会失去模型“零样本”泛化的能力,因此所得模型只能适用于一组预定类别。在CLIP中,给定适当设计的“提示”,该模型能够处理各种下游任务,其中分类由文本编码器动态生成,来自类别名称或其他自由形式的文本。这里的提示是手工制作的填空模板,以便于分类生成,因此下游视觉任务可以与预训练目标的格式相同,从而有效地缩小预训练和下游任务之间的差距。剩下的一个问题是,这种手工制作的提示需要大量的专家知识和劳动力,限制了其用于有效的任务适应。

在本文中,作者继续以提示学习为基础,目的是探索一种有效的方法来适应新任务的视觉语言模型。作者通过在文本输入中添加随机向量序列(称为“连续提示向量”)来实现一个简单的想法。这些提示向量完全由自由参数组成,这些参数不对应于任何真实的具体单词,并且文本编码器的后续层将参与优化这些向量,就好像它们是生成分类或嵌入的“虚拟token”序列一样。尽管文本编码器的权重保持冻结,但梯度会通过它向后传播,以优化可训练的提示向量。因此,视觉主干网络能够执行各种视频理解任务,每个任务的可训练参数数量最少,即只有几个提示向量。

02

方法

用CLIP做多个视频任务!上交&牛津提出基于Prompt将CLIP拓展到多个视频任务,在open-set场景中效果极佳!本文的框架如上图所示,作者的目标是有效地引导基于图像的时间语言模型来处理新的下游任务,这个过程称之为模型适应(model adaptation)。

2.1. 视觉语言模型:CLIP给定一个采样batch中的N个对(图像,文本),分别使用两个编码器计算图像和文本的特征嵌入,并在所有N个可能的(图像,文本)对之间计算密集余弦相似矩阵。训练目标是通过最大化N个正确的(图像,文本)关联对之间的相似性,同时通过对称的交叉熵最小化N × (N-1)个不正确对的相似性,共同优化图像和文本编码器密集矩阵上的熵,即噪声对比学习。

输入图像被分成patch,然后转换成“视觉token”;输入文本通过可训练的look-up table被转换成“文本token”。

经过训练后,CLIP可以部署用于开放词汇上的图像分类任务,视觉分类句子是从文本编码器()生成的。例如,要将图像分类为cat或dog,可以将视觉分类句子生成为:

用CLIP做多个视频任务!上交&牛津提出基于Prompt将CLIP拓展到多个视频任务,在open-set场景中效果极佳!“this is a photo of [·]” 是手工设计的提示模板,已证明对图像分类有效。

尽管在Zero-Shot图像分类上取得了巨大的成功,CLIP也被证明对手工制作的提示模板很敏感,显然对其有效适应新的下游任务提出了限制,在这些任务中,专家知识可能很难浓缩。因此,在这里,作者考虑自动化的提示设计,探索有效的方法来适应新的下游视频相关任务的预训练的视觉语言模型。

2.2. 通过提示引导CLIP进行视频理解2.2.1 问题场景给定由训练集和验证集组成的数据集,。视频的范围可以从几秒(识别和检索)到几分钟(定位)。对于动作识别和定位任务,是一个类别单词;对于检索任务,是一个句子。

在封闭集方案中,训练和验证的动作类别是相同的,即;而在开放集方案中,训练和验证的动作类别是不相交的,即。

2.2.2 通过学习提示进行模型适应这里的目标是引导预训练的CLIP模型以最少的训练来执行各种视频任务。作者通过在文本token中添加连续随机向量(“提示向量”)序列来实现有效的模型适应。在训练过程中,CLIP的图像和文本编码器都被冻结,梯度将流经文本编码器,仅更新提示向量。最终,这些学习的向量最终构造了文本编码器可以理解的“虚拟”提示模板,并生成所需的分类或查询嵌入。

动作识别是对视频的动作进行分类。为了生成分类文本,作者通过将标记化动作类别名称输入预训练文本编码器()来构建“虚拟”提示模板,如下所示:

用CLIP做多个视频任务!上交&牛津提出基于Prompt将CLIP拓展到多个视频任务,在open-set场景中效果极佳!其中,表示第i个提示向量,由可学习的参数组成,D是向量维数。指的是生成的用于“archery”动作的分类句子。这里,提示向量对于所有动作类别都是共享的。

动作定位考虑对未修剪视频中的动作进行定位和分类。作者利用两阶段范式:首先检测潜在的类不可知的动作proposal,然后对这些检测到的proposal进行动作分类。

文本视频检索考虑联合学习视频及其相应的文本描述之间的视觉和文本嵌入。与动作识别相反,视频片段被动作类别粗略地标记,视频检索中的文本描述包含更多的细节,通常是一个句子。在这里,作者同样对整个句子进行标记化,并使用可学习的提示向量将标记化结果提供给文本编码器,以生成每个句子的查询嵌入。

2.2.3 时间建模对于预训练,CLIP完全依赖图像-文本对。一方面,用于训练的(图像,文本)数据可以很容易地从网络上抓取,这使得能够在给定的计算约束下学习更丰富的内容;但是,另一方面,它忽略了视觉场景的时间成分。因此,作者通过添加一个简单的时间建模模块来弥补图像与视频之间的差距。

具体而言,作者将CLIP图像编码器升级为视频编码器,方法是在冻结图像编码器的逐帧特征上附加来Transformer:

v{i}=\Phi{\text {video }}\left(\mathcal{V}{i}\right)=\Phi{\text {TEMP }}\left(\left{\Phi{\text {image }}\left(I{i 1}\right), \ldots, \Phi{\text {image }}\left(I{i T}\right)\right}\right)其中是指时间建模模块,它是一个多层Transformer编码器。为了表示时间顺序,作者还将可学习的时间位置编码添加到图像特征上。表示T帧的密集特征嵌入。

2.2.4 训练损失给定一个batch的(视频,文本)对,视觉流最终以密集的逐帧特征嵌入表示;而对于文本流,取决于所考虑的下游任务,它以一组动作分类句子或文本查询嵌入表示。

对于动作识别和文本视频检索,作者通过对密集特征进行平均池化来进一步计算视频片段级别的特征:

\bar{v}{i}=\Phi{\text {POOL }}\left(v_{i}\right) \in \mathbb{R}^{1 \times D}对于动作定位,作者在每个检测到的动作proposal中采用密集特征的平均池化,以获得proposal级特征。在训练过程中,作者共同优化文本提示向量和时间建模模块,使得视频特征及其配对的分类或文本查询嵌入获得最高的相似性得分。这是通过简单的NCE损失实现的:

\mathcal{L}=-\sum{i}\left(\log \frac{\exp \left(\bar{v}{i} \cdot c{i} / \tau\right)}{\sum{j} \exp \left(\bar{v}{i} \cdot c{j} / \tau\right)}\right) 03

实验

3.1. 动作识别3.1.1 封闭集动作识别用CLIP做多个视频任务!上交&牛津提出基于Prompt将CLIP拓展到多个视频任务,在open-set场景中效果极佳!上表展示了在两个数据集上封闭集动作识别的消融实验结果。

用CLIP做多个视频任务!上交&牛津提出基于Prompt将CLIP拓展到多个视频任务,在open-set场景中效果极佳!上表展示了本文方法在封闭集动作识别上和最先进(SOTA)结果的对比结果。

3.1.2 少样本动作识别用CLIP做多个视频任务!上交&牛津提出基于Prompt将CLIP拓展到多个视频任务,在open-set场景中效果极佳!上表展示了本文方法在少样本动作识别的上的实验结果。

3.1.3 开放集动作识别用CLIP做多个视频任务!上交&牛津提出基于Prompt将CLIP拓展到多个视频任务,在open-set场景中效果极佳!上表展示了本文方法在开放集动作识别上的实验结果。

3.2. 动作定位3.2.1 封闭集动作定位用CLIP做多个视频任务!上交&牛津提出基于Prompt将CLIP拓展到多个视频任务,在open-set场景中效果极佳!上表展示了本文方法在封闭集动作定位任务上和最先进(SOTA)方法的对比。

3.2.2 开放集动作定位用CLIP做多个视频任务!上交&牛津提出基于Prompt将CLIP拓展到多个视频任务,在open-set场景中效果极佳!上表展示了本文方法在开放集动作定位任务上的实验结果。

3.3. 文本视频检索用CLIP做多个视频任务!上交&牛津提出基于Prompt将CLIP拓展到多个视频任务,在open-set场景中效果极佳!上表展示了本文方法在视频-文本检索上的实验结果

04

总结

本文提出了利用基于CLIP来进行动作识别、文本视频检索、动作定位三个任务的方法。对于前两个任务,处理方式与ActionCLIP和CLIP4Clip相似,对于第三个任务,作者采用两步的方式,首先提取所有的片段proposal,然后比较每个proposal和查询文本的相似度,从而达到检索的目的。此外,为了捕获视频的时序信息,作者还在Image Encoder上添加了一个Temporal Encoder。在少样本和开放场景中,本文的方法在所有任务中的表现都明显优于现有方法,有时甚至超过10%。

以上就是用CLIP做多个视频任务!上交&牛津提出基于Prompt将CLIP拓展到多个视频任务,在open-set场景中效果极佳!的详细内容,更多请关注php中文网其它相关文章!

最佳 Windows 性能的顶级免费优化软件
最佳 Windows 性能的顶级免费优化软件

每个人都需要一台速度更快、更稳定的 PC。随着时间的推移,垃圾文件、旧注册表数据和不必要的后台进程会占用资源并降低性能。幸运的是,许多工具可以让 Windows 保持平稳运行。

下载
来源:php中文网
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
最新问题
开源免费商场系统广告
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习
PHP中文网抖音号
发现有趣的

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号