CLIP4Clip: An Empirical Study of CLIP for End to End Video ClipRetrieval--论文阅读

文章地址:https://arxiv.org/pdf/2104.08860.pdf'

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

摘要:在本文中,作者提出了一个CLIP4Clip模型,以端到端的方式将CLIP模型的知识转移到视频语言检索中。大量的实验结果表明,从CLIP传输的CLIP4Clip模型可以在各种视频文本检索数据集上实现SOTA结果,包括MSR-VTT、MSVC、LSMDC。ActivityNet, and DiDeMo.

引言:视频文本检索是多模态视觉和语言理解的基础研究任务,可以通过它们的输入来直接区分以前的作品:原始视频(像素级)或视频特征(特征级)。

        通常,预训练模型都是feature-level的,得益于它们是在一些大型的视频-文本数据集上进行训练的,,ClipBERT(Lei et al.,2021)采用稀疏采样策略,使端到端预训练成为可能。端到端训练有利于低级特征提取。少量稀疏采样的片段就足以解决视频文本检索任务。

        作者利用预训练后的CLIP,提出了一个名为CLIP4clip(CLIP用于video Clip检索)的模型来解决视频-文本检索问题。具体地说,CLIP4Clip是在CLIP之上构造的,并设计了一个相似度计算器来研究三种相似度计算方法:无参数类型、顺序类型和紧密类型。

主要贡献:

  • 研究了基于预训练的CLIP的三种相似度计算机制;
  • 进一步在一个有噪声的大规模视频语言数据集上对CLIP进行预训练,以学习更好的检索空间.达到了SoTA的效果

结论:在CLIp4Clip模型上的大规模视频文本数据集进行post-pretraining,可以提高性能,特别是对于大量的zero-shot预测。

2.相关工作:

Video Encoder Backbone;作者主要研究了一种有效的基于transformer的video backbone多模态视频-文本检索。

从文本监督中学习视觉表示:与以往的CLipBert和MIL-NCE不同的是,作者采用基于transformer的clip,将该图像-语言预训练模型扩展到视频文本检索的视频-语言预训练。考虑到video的temporal sequence,使用2D/3D linear embedding和附加在视觉转换器上的相似度计算器来捕获时间序列特征。

Video-Text Retrieval:作者提出直接从预先训练过的CLIP中转移强大的知识,并继续在一个大规模的视频-language dataset上 pre-train 设计的基于视频的CLIP4clip,实验证明了CLIp4CLip模型的有效性。

3.框架

 图1:CLIP4Clip的框架,它由三个组件组成,包括两个单模态编码器和一个相似度计算器。该模型以一个视频-文本对作为输入。对于输入的视频,作者首先将输入的视频采样到序数帧(图像)中。接下来,这些图像帧被重塑为一系列扁平的2D patches。这些patches被映射到嵌入的1D线性补丁序列嵌入层,并输入到图像编码器进行表示,如ViT。最后,相似度计算器预测了这些帧的文本表示和表示序列之间的相似度得分。在本研究中,我们研究了三种相似计算器,包括无参数、顺序和紧类型。⊗表示余弦相似度。我们使用CLIP(ViT-B/32)初始化两个单模态编码器.


    首先给定一组videosV和一组标题T,目的是学习一个函数s(vi , tj )计算视频vi∈V和标题tj∈T之间的相似性。目标是根据文本到视频检索中的相似性得分对给出查询标题的所有视频(或video clips)进行排序,或者对视频到文本检索任务中给出查询视频(或video clip)的所有字幕进行排序.

    本文将video(or video clip) vi∈V respented 作为一系列帧(图像)。形式上,视频(或video clip)vi是由|vi |采样帧组成的:vi = {vi 1,vi 2,……,vi |vi| }。作者提出的模型是一种端到端方式(E2E),通过像素直接训练帧作为输入。图1框架,它主要包含a text encoder, a video encoder, and a similarity calculator。

3.1 Video Encoder

    为了得到video representation,首先从video clip 提取帧,然后通过video encoder进行对其编码,以获得一系列特征。在论文中,作者采用了pre-trained CLIP (ViT-B/32)作为骨干,并主要考虑将图像表示转换为视频表示。pre-trained CLIP(ViT-B/32)对本文的视频文本检索任务是有效的。

    ViT首先提取不重叠的image patches这个不重叠的图像补丁应该是从一帧中进行提取的。),然后执行一个通过线性投影将它们project into 中1D tokens中,然后利用transformer architecture对于每个token之间相互建模,获得最终的representation。对于视频的输入帧序列vi = {vi 1,vi 2,…,vi |vi| },生成的表示可以表示为Zi =

 图2:视频编码器中扁平贴片线性投影的不同视图。彩色的虚线盒子是内核


         分别研究了图1a所示的两种Linear Projection of Flattened Patches module,分别命名为2D linear and 3D linear。a)将ViT的Flattened Patches线性投影视为2D线性投影,分别嵌入每个2D帧Patches。这种2d线性算法忽略了帧间的时间信息。b)因此,我们研究了一个类似的3D线性投影,以增强时间特征提取。2D和3D之间的比较如图2所示。3D线性算法是跨时间嵌入patches的。具体地说,3D线性使用3D Conv,kernels[t×h×w]作为线性而不是核[h×w]的2D线性,其中t、h和w分别是时间、高度和宽度维度。

3.2 Text Encoder

直接采用的是CLIp中的文本编码器来生成的标题表示,这个文本编码器其实就是一个变体transformer,对于标题tj∈T,将其表示为Wj。

3.3 Similarity Calculator

在提取视频表示Zi = {z 1 i,z 2 i,…,z |vi| i }和标题表示wj后,关键还是相似度计算,因为模型是基于预训练过的图像-文本模型建立的,故因此在相似度计算器模块中添加可学习的权重。因为没有权值初始化很难学习,会影响到反向传播的预训练模型训练的性能。

针对相似性计算器的提出了三种方法:

Parameter-free type:就是采用平均池化,融合了没有新参数的视频表示,只不过胡忽略了帧之间的时间顺序信息。

Sequential type:采用了两种方法来建模序列类型相似度计算器的序列特征,一个是LSTM,一种是transformer encoder,通过编码Z~i = LSTM(Zi) and Z~i = Transformer-Enc(Zi+P),里面已经包含了时间信息

Tight type:使用transformer encoder进行视频和标题之间的多模态交互。ransformer encoder采用连接的标题表示wj和帧表示Zi= {z 1 i , z 2 i , . . . , z |vi| i }作为融合Ui的形成

 其中P为位置嵌入,T是类似于BERT中片段嵌入的类型嵌入。具体来说, similarity function

 

 

3.4 Training Strategy

Loss Function

    给定一batch B(video、text)或(video clip、text)pairs,模型需要生成和优化B × B similarities。使用在这些相似性分数上的对称交叉熵损失来训练模型的参数。

 Frame Sampling

   为了考虑序列信息,采用了 统一采样,而不是随机采样,实质上,序列信息就是时序 信息。随机采样将视频的时序信息丢失了。

4 Experiments

数据集:MSR-VTT, MSVC, LSMDC, ActivityNet, and DiDeMo。

 

 

 

图3:对不同的batch sizes、frame length, freeze layer, and learning rate的检索结果。batch sizesfreeze layer为6。learning rate:batch sizes为128,freeze layer为6,frame length为12。freeze layerFz-Linear 是指下面freeze layer。-第th层(包括),Fz-Linear表示只在底部freeze线性层,无Fz-Linear是不freeze的训练,batch_size为128,frame length为12,lr为5e-8。帧长:批bz=128,fl为6,lr=5e-8。


 4.2 Experimental Details

    在文章中,作者主要是CLip(vit-B/32)初始化文本编码器和视频编码器。实际问题是该如何初始化相似度计算器的参数。例如,顺序类型的参数。解决方案是重用来自CLIP(ViT-B/32)的类似参数。具体地说,对于顺序类型和紧密类型的位置嵌入,通过重复从CLIP的文本编码器中得到的位置嵌入来初始化它们。类似地,变压器编码器由预训练的CLIP的图像编码器的相应层的权重进行初始化。其余的参数,如LSTM和线性投影,都是随机初始化的。

finetune:用Adam优化器来微调模型。对于lr,使用在CLIP(Radford et al.,2021)之后的a cosine schedule来衰减它。如果没有其他说明,文本编码器和视频编码器(包括新模块的初始学习速率为1e-7(包括线性投影),新模块的初始lr为1e-4,例如LSTM,标题标记长度为32,帧长为12,批处理大小为128,运行5个epoch。在实验中,LSTM的层为1,顺序型和紧型的变压器编码器的层均为4。

总结:本文使用预先训练好的CLIP作为骨干,以解决来自帧级输入的video clip retrieval task。采用无参数类型、序列类型和紧密类型similarity calculator 来得到最终的结果。实验结果证明了模型的有效性,并在MSR-VTT、MSVC、LSMDC、激活网络和DiDeMo上实现了SOTA的结果。

这篇文章希望对阅读的各位有帮助,是加上翻译软件和我的理解去读的文章,记录是为了以后方便自己查阅,也会进行补充的。

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值