0

0

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

星夢妙者

星夢妙者

发布时间:2025-06-26 12:52:18

|

448人浏览过

|

来源于php中文网

原创

本文分享了题为『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的图像和文本编码器都被冻结,梯度将流经文本编码器,仅更新提示向量。最终,这些学习的向量最终构造了文本编码器可以理解的“虚拟”提示模板,并生成所需的分类或查询嵌入。

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

白果AI论文
白果AI论文

论文AI生成学术工具,真实文献,免费不限次生成论文大纲 10 秒生成逻辑框架,10 分钟产出初稿,智能适配 80+学科。支持嵌入图表公式与合规文献引用

下载

用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%。

相关专题

更多
登录token无效
登录token无效

登录token无效解决方法:1、检查token的有效期限,如果token已经过期,需要重新获取一个新的token;2、检查token的签名,如果签名不正确,需要重新获取一个新的token;3、检查密钥的正确性,如果密钥不正确,需要重新获取一个新的token;4、使用HTTPS协议传输token,建议使用HTTPS协议进行传输 ;5、使用双因素认证,双因素认证可以提高账户的安全性。

6099

2023.09.14

登录token无效怎么办
登录token无效怎么办

登录token无效的解决办法有检查Token是否过期、检查Token是否正确、检查Token是否被篡改、检查Token是否与用户匹配、清除缓存或Cookie、检查网络连接和服务器状态、重新登录或请求新的Token、联系技术支持或开发人员等。本专题为大家提供token相关的文章、下载、课程内容,供大家免费下载体验。

810

2023.09.14

token怎么获取
token怎么获取

获取token值的方法:1、小程序调用“wx.login()”获取 临时登录凭证code,并回传到开发者服务器;2、开发者服务器以code换取,用户唯一标识openid和会话密钥“session_key”。想了解更详细的内容,可以阅读本专题下面的文章。

1062

2023.12.21

token什么意思
token什么意思

token是一种用于表示用户权限、记录交易信息、支付虚拟货币的数字货币。可以用来在特定的网络上进行交易,用来购买或出售特定的虚拟货币,也可以用来支付特定的服务费用。想了解更多token什么意思的相关内容可以访问本专题下面的文章。

1264

2024.03.01

堆和栈的区别
堆和栈的区别

堆和栈的区别:1、内存分配方式不同;2、大小不同;3、数据访问方式不同;4、数据的生命周期。本专题为大家提供堆和栈的区别的相关的文章、下载、课程内容,供大家免费下载体验。

392

2023.07.18

堆和栈区别
堆和栈区别

堆(Heap)和栈(Stack)是计算机中两种常见的内存分配机制。它们在内存管理的方式、分配方式以及使用场景上有很大的区别。本文将详细介绍堆和栈的特点、区别以及各自的使用场景。php中文网给大家带来了相关的教程以及文章欢迎大家前来学习阅读。

572

2023.08.10

http与https有哪些区别
http与https有哪些区别

http与https的区别:1、协议安全性;2、连接方式;3、证书管理;4、连接状态;5、端口号;6、资源消耗;7、兼容性。本专题为大家提供相关的文章、下载、课程内容,供大家免费下载体验。

1998

2024.08.16

PHP 命令行脚本与自动化任务开发
PHP 命令行脚本与自动化任务开发

本专题系统讲解 PHP 在命令行环境(CLI)下的开发与应用,内容涵盖 PHP CLI 基础、参数解析、文件与目录操作、日志输出、异常处理,以及与 Linux 定时任务(Cron)的结合使用。通过实战示例,帮助开发者掌握使用 PHP 构建 自动化脚本、批处理工具与后台任务程序 的能力。

30

2025.12.13

Java JVM 原理与性能调优实战
Java JVM 原理与性能调优实战

本专题系统讲解 Java 虚拟机(JVM)的核心工作原理与性能调优方法,包括 JVM 内存结构、对象创建与回收流程、垃圾回收器(Serial、CMS、G1、ZGC)对比分析、常见内存泄漏与性能瓶颈排查,以及 JVM 参数调优与监控工具(jstat、jmap、jvisualvm)的实战使用。通过真实案例,帮助学习者掌握 Java 应用在生产环境中的性能分析与优化能力。

8

2026.01.20

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
相关推荐
/
热门推荐
/
最新课程
进程与SOCKET
进程与SOCKET

共6课时 | 0.3万人学习

swoole入门物联网开发与实战
swoole入门物联网开发与实战

共15课时 | 1.2万人学习

swoole项目实战(第二季)
swoole项目实战(第二季)

共15课时 | 1.2万人学习

关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送

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