视频文本检索之CLIP4Clip

article/2025/9/22 16:40:27

论文:CLIP4Clip: An Empirical Study of CLIP for End to End Video Clip Retrieval

GitHub:https://github.com/ArrowLuo/CLIP4Clip

学习是一种行动反射,

不是为了晓得些知识

要切己体察,代入自己,要事上琢磨

落实行动,这就是知行合一。

否则,读书也是一种玩物丧志。  

----华杉

论文基于图片-文本检索模型CLIP (Contrastive Language-Image Pretraining)提出了视频-文本检索模型CLIP4Clip (CLIP For video Clip retrieval)。在MSR-VTT, MSVC, LSMDC, ActivityNet, DiDeMo等多个数据集上都取得了SOTA的结果。

训练视频-文本检索任务通常有2种方法,一种直接基于视频像素特征进行训练(raw video pixel-level),另一种基于视频特征进行训练 (video feature feature-level)。

基于pixel-level的方法优点可以直接学习视频特征和文本特征,是一种端到端的训练方法,有助于提取底层特征,缺点训练视频特征是耗时费力的。比如ClipBERT提出了一种视频帧的稀疏采样策略,Frozen方法直接将一张图片当作一个视频进行训练,并提出了一种课程学习策略(curriculum learning schedule),来提高训练效率。

基于feature-level的方法优点训练较快,缺点高度依赖特征提取模型的预训练权重,会有domain问题产生。

(1)图片特征对于视频-文本检索是否足够?

单个的图片特征对于视频文本检索中的视频编码是远远不够的。

(2)基于大规模视频-文本数据集对clip模型进行后预训练会影响模型表现吗?

在大规模视频-文本数据集上对CLIP4Clip模型进行后训练是必须的,并且看可以提高模型性能,尤其是在0样本迁移学习中,精度上会有比较大的突破。

(3)有什么方法可以让模型学习视频帧之间的时序依赖?

论文提出了3种方法分别为,无参型(Parameter-free type),顺序型(Sequential type),紧凑型(Tight type),来学习视频帧之间的时许依赖。

(4)在视频-文本检索任务上,模型的超参数设置是否敏感?

论文认真进行了不同超参数设置的实验,汇报了最好的超参数设置。

网络结构:

给定一组视频(或视频片段)V和一组本文T,模型的目标是学习函数s(vitj)来计算视频(或视频片段)viV与本文tjT之间的相似度。视频采样策略采用1秒采1帧。根据文本到视频检索中的相似性得分对给定查询本文的所有视频(或视频片段)进行排序,或者在视频到文本检索任务中对给定查询视频(或视频片段)的所有文本进行排序。s(vitj)的目标是计算相关视频文本对的高相似度分数和不相关视频文本对的低相似度分数。

本文的模型是一种端到端方式(E2E),通过将帧作为输入直接对像素进行训练。上图展示了本文的框架,它主要包含一个文本编码器 、一个视频编码器 和一个相似性计算模块 

视频编码器:

视频编码模型类似clip采用ViT-B/32,网络深度为12层,包含32patch

虽然CLIP对于学习图像的视觉概念是有效的,但从视频中学习时间特征是必不可少的。为了进一步将CLIP的知识迁移为视频,作者用CLIP4Clip模型在Howto100M数据集上进行了后预训练。

通过将视频帧进行分patch,并结合位置attention输入ViT模型中,进行线性投影,得到代表视频的embedding向量。

 

这里将输入视频序列定义为V,视频生成的embedding定义为Z,文本的embedding定义为W。

这里线性投影的方法有2种,分别为2D线性投影和3D线性投影。

2D线性投影忽略了视频帧之间的时序关系,因此采用3D线性投影。两者主要的区别在于卷积核的选择上。2D线性投影卷积核的维度为[h× w],2D线性投影卷积核的维度为[t × h × w]。其中t表示时序,h表示高度,w表示宽度。

虽然理论上来说3D线性投影会优于2D线性投影。但是作者通过实验发现,反而2D线性投影效果更好。

通过分析发现预训练模型clip是基于2D线性投影训练的,却作为3D线性投影的初始化参数,这导致模型没有学习视频帧间的时序特征。这也是后续作者计划在大规模视频-文本数据集上训练clip模型的原因。

文本编码器:

文本编码器模型直接采用CLIP模型的Transformer网络。模型为12层,宽度为512,包含8个注意力头。将Transformer最后一层在[EOS]的输出作为文本的输出特征。

特征相似性度量:

论文提出了3种度量方法,分别为无参型(Parameter-free type),顺序型(Sequential type),紧凑型(Tight type)

将视频的特征定义为Z,文本的特征定义为W。

无参型(Parameter-free type):

 

先对视频的特征进行平均池化,然后将池化后的视频特征和文本特征计算cos距离。

顺序型(Sequential type):

直接对视频特征进行平均池化,这样的操作忽略了视频帧之间的序列关系。因此先对视频特征基于LSTM/Transformer编码,然后对编码后的特征进行平均池化操作,最后按照同样的方法计算cos距离。

紧凑型(Tight type):

将文本特征W和视频特征Z拼接起来,得到拼接后的特征U,并将U和位置编码P,类型编码T进行拼接,输入Transformer进行编码,然后使用2个全连接层做特征投影,得到最终的输出。

损失函数:

假设一个batch里面包含B 个(video, text)对。那么将会产生B*B种组合关系。这里损失函数采用对称交叉熵损失函数。损失函数就是优化使得video和text相对应的pair对loss变小,video和text不对应的pair对loss变大。

Lv2t会将batch内的每个视频计算与所有文本的交叉熵。

Lt2v会将batch内的每个文本计算与所有视频的交叉熵。

最终的损失函数L就是Lv2和Lt2v的和。

实验结果:

CLIP4Clip方法显著优于其他方法。

结论:

1)图像特征也能促进视频文本检索;

2)在CLIP上进行post-pretrain,可以进一步提高视频文本检索的性能;

3)3D patch线性投影和序列型相似度是检索任务中很有前途的方法;

4)用于视频文本检索的CLIP具有学习率敏感性。


http://chatgpt.dhexx.cn/article/pDSXk7B3.shtml

相关文章

跨模态检索之文本视频检索(Text to Clip)

《Multilevel Language and Vision Integration for Text-to-Clip Retrieval》(2018 CVPR) 这篇文章引入了一个多层的模型,输入一个描述某个动作的查询语句,就可以从一段没有经过修剪的视频中找出对应的片段。 首先是第一个阶段…

MPEG-CDVA标准的特征提取(除深度学习) 视频匹配 视频检索

依据可查阅资料对CDVA标准中的特征提取(不涉及深度特征部分),视频匹配和视频检索流程做了分析说明。 1. 概要 1.1 描述子提取: 使用关键帧描述子 提取关键帧之前,视频做一个降采样,每隔2-10帧左右取一帧…

CLIP4Clip:用于端到端视频检索的CLIP实证研究

Luo, Huaishao, Lei Ji, Ming Zhong, Yang Chen, Wen Lei, Nan Duan and Tianrui Li. “CLIP4Clip: An Empirical Study of CLIP for End to End Video Clip Retrieval.” ArXiv abs/2104.08860 (2021). 1. Abstract 视频文本检索在多模态研究中起着至关重要的作用&#xff0c…

同时利用字幕、音频、视频进行检索!Inria谷歌提出MMT用于高效跨模态视频检索,代码已开源!...

关注公众号,发现CV技术之美 ▊ 写在前面 检索与自然语言查询相关的视频内容对于有效处理互联网规模的数据集起着关键作用。现有的大多数文本到视频检索方法都没有充分利用视频中的跨模态线索。此外,它们以有限或没有时间信息的方式聚合每帧视觉特征。 在…

视频检索——BLSTM(论文翻译、理解)

视频检索BLSTM方法论文翻译 摘要1 介绍2 相关工作3 自监督时序哈希3.1 时序感知的哈希函数3.2 二进制的LSTM3.3 学习目标3.4 框架细节 4 二进制优化4.1 二进制求导4.2 算法细节 5 实验5.1 数据集5.2 实验设置5.3 结果分析 6 结论 Play and Rewind: Optimizing Binary Represent…

基于内容的视频检索(CBVR)

参考 1. 视频检索的基本流程 2. 视频的结构分层 各层都可以用一些属性来描述: 1. 视频序列的属性主要包括场景的个数和持续时间; 2. 场景的属性包括标题、持续时间、镜头数目、开始镜头、结束镜头等; 3. 镜头的属性包括持续时间、动态特征…

人脸视频检索系统设计(C++)

目录 人脸检索系统框架的构建 1 一.软件实现的主要界面 1 二.软件的需求概括 1 三.软件代码设计过程中需要注意的问题 2 四.程序到目前为止产生的诸多缺陷 4 五.程序的详细设计过程 4 1.输入部分的设计 4 2.检测结果部分的设计过程 10 人脸检索系统框架的构建 ------FaceMFC_v…

AAAI 2023 | 基于多模态标签聚合的视频检索模型TABLE,多项SOTA

©作者 | QQ浏览器搜索技术中心、腾讯PCG ARC Lab 来源 | 机器之心 近年来,互联网短小视频内容的爆发式增长,对视频 - 文本检索(Video-Text Retrieval)的能力提出了更高的要求。在 QQ 浏览器搜索中,视频通常包含标…

5分钟实现「视频检索」:基于内容理解,无需任何标签

Notebook 教程:text-video retrieval 「视频检索」任务就是输入一段文本,检索出最符合文本描述的视频。随着各类视频平台的兴起和火爆,网络上视频的数量呈现井喷式增长,「视频检索」成为人们高效查找视频的一项新需求。传统的视频…

视频内容检索概述

视频内容检索 针对目前多媒体搜索引擎技术,视频数量的井喷式增加以及多媒体视频内容的多样性和数据结构的复杂性,如何快速的从有效地这些视频检索出人们感兴趣的已经成为当今信息化时代的难题。 数字视频内容检索 基于内容的视频检索(CBVR…

ad建集成库_手把手教你创建自己的Altium Designer集成元件库

一个善于规划、管理及总结的硬件开发工程师都喜欢创建自己的集成库,这样就相当于给自己打造了一款更适合自己的尖兵利器,无论是硬件设计的统一性还是硬件模块的可重用性,都会给工程师带来更多的设计便利。 一个管理规范的硬件开发企业,在集成库的制作及使用方面都会做出很多…

NC57中间表数据源的设置流程

目前场景如下:NC定时将数据写入中间库中,第三方去中间库中抓取; 方式一: 第一步:在NC客户端【客户化】——【二次开发工具】——【参数设置】——【参数模板管理】添加所设置的数据源数据 找到对应的数据库表pub_sysi…

分库分表介绍

目录 一、前言 二、何谓数据切分? 三、垂直切分 1、垂直分库 2、垂直分表 3、垂直切分优缺点 4、拆分需考虑的业务因素 四、水平切分 1、水平分库 2、水平分表 3、水平切分优缺点 五、垂直与水平切分的联合使用 六、数据分片规则 1、Hash取模分表 2、数…

分库分表入门介绍

本文收集网上资料,多合一 编撰于2020年4月21日 原文链接1 原文链接2 原文链接3 目录 为什么要分库分表读写分离,主从复制Why Not NoSQL/NewSQL?什么是RDBMS 分库分表概述切分策略路由规则范围路由hash算法路由配置 分库分表带来的问题join操作COUNT&…

工作区、暂存区、仓库三者关系

区分三者关系 Git最让你迷惑的无非是它里面的各种概念了,如果是刚开始接触Git希望看完本篇介绍之后有一个清晰的认识,笔者认识也有限这里只说说个人对使用Git的感受,说一下它里面的几个最常用的概念的理解。 在初始化git版本库之后会生成一个…

浅谈MYSQL中的基本表、中间表、临时表、派生表和视图

简单介绍 首先我们先了解一下什么叫虚拟表虚拟表,顾名思义就是就是实际上并不存在(物理上不存在),但是逻辑上存在的表。 在MYSQL中存在三种虚拟表:临时表、内存表、视图 1、基本表 基本表是本身独立存在的表&#x…

常见的系统间接口方式(02)-中间件的数据接口模式

导读: 原文路径:https://mp.weixin.qq.com/s/uq9DfxE5_cvAsitqlcblBg 大家可以关注我个人公众号,所有分享内容,会在公众号第一时间推送,且阅读排版更好。 愿大家的学习,轻松且愉快。 如果大家觉得有用&…

python matlab库使用_python matlab库

python与matlab的优缺点比较matlab主要是用来做数值计算的(矩阵,向量是强项),当然还加入了其他的许许多多的库。主要用来模拟一些东西。 python是一门语言,现在也有模拟matlab的库,不过功能显然还是很弱的。 python与matlab哪个简单 简单对比: python和matlab的共同点都是…

MYSQL:创建中间表

mysql> create table role_to_privilege( -> id int primary key auto_increment, -> rId int not null, -> pId int not null -> ); Query OK, 0 rows affected (0.09 sec)

中间表是什么?和报表有什么关系?会带来怎样的问题?又如何解决?

在数据库中有一类用于保存中间计算结果的物理表,通常被称为“中间表”。中间表主要跟 OLAP(在线联机分析)业务有关,产生的原因主要有以下几方面。 中间表来源 1. 计算逻辑复杂 在 OLAP(报表或查询)业务中&…