关注公众号,发现CV技术之美

 写在前面

视频文本检索在多模态研究中起着至关重要的作用,在许多实际应用中得到了广泛的使用。CLIP(对比语言图像预训练)是一种图像语言预训练模型,它展示了从网络收集的图像文本数据集中学习视觉概念的能力。

在本文中,作者提出了一个CLIP4Clip 模型,以端到端的方式将CLIP模型的知识转移到视频语言检索中。在本文中,作者通过实验研究了以下几个问题:

1) 图像特征是否足以用于视频文本检索?

2) 基于CLIP的大规模视频文本数据集的后预训练如何影响性能?

3) 对视频帧之间的时间依赖性建模的实用机制是什么?

4) 该模型对视频文本检索任务的超参数敏感性。

大量实验结果表明,基于CLIP的CLIP4Clip模型可以在各种视频文本检索数据集上实现SOTA结果,包括MSR-VTT、MSVC、LSMDC、ActivityNet和DiDeMo。

 1. 论文和代码地址

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

论文:https://arxiv.org/abs/2104.08860

代码:https://github.com/ArrowLuo/CLIP4Clip

 2. Motivation

随着每天在线上传视频的增加,视频文本检索成为人们高效查找相关视频的一个新兴需求。除了实际的web应用之外,视频文本检索是多模态视觉和语言理解的一项基础研究任务。我们可以直接通过输入来对以前的工作进行分类:原始视频(像素级)视频特征(特征级)

预训练的模型是特征级的,因为他们在一些大规模视频文本数据集上进行过预训练,例如Howto100M。输入是通过现成的冻结视频特征提取器生成的缓存视频特征。如果输入是原始视频,则会使预训练非常缓慢。然而,得益于大规模数据集,预训练模型在视频文本检索方面表现出显著的性能提升。

像素级方法直接以原始视频作为输入来训练模型,早期模型几乎都属于这种方法。这种方法结合成对文本学习视频特征提取器。相反,特征级方法高度依赖于合适的特征提取器。它不能将学习的梯度传播回固定的视频编码器。

最近的一些工作开始用像素级的方法对模型进行预训练,使预训练模型从原始视频中学习。最大的挑战是如何减少密集视频输入的高计算过载 。ClipBERT采用了稀疏采样策略,使端到端预训练成为可能。具体地说,该模型仅在每个训练步骤中从视频中稀疏地采样一个或几个短片段。

实验结果表明,端到端训练有利于低层特征提取。少量的稀疏采样片段就足以解决视频文本检索任务。Frozed模型将图像视为单帧视频,并设计了curriculum learning schedule,以在图像和视频数据集上训练模型。

结果表明,curriculum learning schedule从图像学习到多帧信息,可以提高学习效率。本文的目标不是预训练一种新的视频文本检索模型,而是主要研究如何将知识从图片文本预训练模型CLIP中迁移到视频本文检索任务中

在本文中,作者利用预训练好的CLIP,提出了一个名为CLIP4ClipCLIP For ** video Clip ** retrieval)的模型来解决视频文本检索问题。具体而言,CLIP4Clip构建在CLIP之上,并设计了一个相似度计算器来研究三种相似度计算方法:无参数型顺序型 和紧密型 。

与目前基于CLIP的工作相比,不同之处在于,他们的工作直接利用片段进行 zero-shot预测,而没有考虑不同的相似性计算机制。然而,本文设计了一些相似性计算方法来提高性能,并以端到端的方式训练模型。

此外,通过大量的实验,作者得出了以下结论:

1)单个图像远远不足以用于视频文本检索的视频编码。

2) 在CLIP4Clip模型上对大规模视频文本数据集进行后预训练是必需的,并且可以提高性能,特别是对于大幅度的零样本预测。

3) 基于强大的预训练CLIP,对于小数据集,最好不要引入新参数,对视频帧采用平均池化机制;对于大数据集,最好引入更多参数,以学习大型数据集的时间依赖性。

4)视频文本检索中使用的CLIP是学习率敏感的。

 3. 方法

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

其中,视频(或视频片段)在本文中表示为一系列帧(图像)的集合,由个采样帧组成,使得。本文的模型是一种端到端方式(E2E),通过将帧作为输入直接对像素进行训练。上图展示了本文的框架,它主要包含一个文本编码器 、一个视频编码器 和一个相似性计算模块

3.1 Video Encoder

为了获得视频表示,首先从视频片段中提取帧,然后通过视频编码器对其进行编码,以获得一系列特征。在本文中,作者采用ViT-B/32作为视频编码器,具有12层,patch大小为32。具体地,作者使用预训练的CLIP(VIT-B/32)作为主干网络,并且主要考虑将图像表示转移到视频表示。

ViT首先提取非重叠图像块,然后用线性投影转换为一维的token,并利用transformer架构对输入图像的每个patch之间的交互进行建模,以获得最终的表示。在CLIP的ViT之后,作者使用[class] token的输出作为图像表示。对于视频的输入帧序列,生成的特征可以表示为。

在上图中,作者展示了Patch线性投影模块中研究了两种类型的线性投影,分别命名为2D线性3D线性 。(a)将ViT的Patch的线性投影视为二维线性投影,独立嵌入每个二维帧patch。这样的二维线性模型忽略了帧之间的时间信息。

(b) 因此,作者研究了的3D线性投影,以增强时间特征提取。三维线性投影会跨时间的patch。具体地说,三维线性使用以的核作为线性的三维卷积代替二维线性中的核,其中t、h和w分别为时间、高度和宽度。

3.2 Text Encoder

作者直接从CLIP中的文本编码器来生成文本表示,其文本编码器是一种Transformer结构。这是一个12层,通道为512的模型,有8个注意力头。在CLIP之后,[EOS] token处Transformer最高层的激活被视为文本的特征表示。对于文本,其特征表示为。

3.3 Similarity Calculator

在提取视频表示和文本表示之后,关键步骤是相似度计算。由于本文的模型是基于预训练的图像-文本模型构建的,因此应该在相似度计算模块中小心地添加新的可学习权重。如果没有权重初始化,很难进行学习,并且可能会影响使用反向传播的预训练模型训练的性能

因此,作者根据模块是否引入新参数进行学习,将相似度计算器的机制分为三类。无参数方法 ,即平均池化,在没有新参数的情况下融合视频表示。

另外,作者还提出两种方法引入了新的权值来学习,包括具有不同大小的新权值的序列型方法紧致型方法 。上图说明了三种机制的详细结构。

无参数类型和序列类型的相似度计算器属于松散类型,采用两个单独的分支分别用于视频和文本表示来计算余弦相似度。而紧凑型相似性计算器使用变压器模型进行多模态交互,并通过线性投影进一步计算相似性,两者都包含新的权重以供学习。

Parameter-free type

通过对图像-文本对的大规模预训练的CLIP,帧表示和文本表示已被层归一化并线性投影到多模态嵌入空间。因此,一个自然的想法是采用无参数类型直接从视频角度计算与图像/帧的相似性。

无参数类型首先使用平均池化来聚合所有帧的特征,以获得“平均帧”,然后,将相似性函数定义为余弦相似性:

Sequential type

平均池化操作忽略帧之间的顺序信息。因此,作者探索了两种为序列类型相似性计算器建模序列特征的方法。一个是LSTM ,另一个是带位置嵌入的Transformer编码器 。这两种模型都是序列特征的有效模型。

作者将它们分别表示为和。通过编码,嵌入了时间信息。后续操作与无参数类型相似性计算器相同。

Tight type

与上述无参数类型和顺序类型不同,紧密型使用Transformer编码器进行视频和本文之间的多模态交互,并通过线性层预测相似性,这引入了未初始化的权重。首先,将文本表示和帧表示concat起来作为融合特征,然后用Transformer编码器进行建模,其公式如下:

其中,[,]表示concat操作。P是位置嵌入,T是类型嵌入。它包含两种类型的嵌入,一种用于文本,另一种用于视频帧。

接下来,作者使用两个线性投影层和一个激活函数来得到来计算相似度,表示为,其中FC是线性投影,ReLU为激活函数。

3.4 Training Strategy

Loss Function

给定一个Batch。即B个视频- 文本或视频片段-文本对,模型需要生成并优化B×B相似度矩阵。作者使用这些相似度分数上的对称交叉熵损失来训练模型的参数:

其中损失函数为video-to-text损失和text-to-video损失的和。

Frame Sampling

由于本文的模型是通过帧作为输入直接在像素上进行训练的,因此提取帧是一种重要的策略。一个有效的采样策略需要考虑信息丰富度和计算复杂性之间的平衡。

为了考虑视频(或视频片段)中的顺序信息,作者采用了均匀的帧采样策略,而不是随机稀疏采样策略。采样率为每秒1帧。此外,作者还研究了不同的帧长和不同的提取位置。

Pre-training

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

基于效率考虑,对视频文本数据集进行预训练是非常具有挑战性的。因此,作者使用“食品和娱乐”类别(约380k个视频)作为后预训练数据集(本文其余部分称为HOWT100M-380k)。

 4.实验

4.1. Comparison to the State of the Art

上表展示了本文方法和其他SOTA方法在 MSR-VTT数据集上的实验结果。

上表展示了本文方法和其他SOTA方法在MSVD数据集上的实验结果。

上表展示了本文方法和其他SOTA方法在 LSMDC数据集上的实验结果。

上表展示了本文方法和其他SOTA方法在 ActivityNet数据集上的实验结果。

上表展示了本文方法和其他SOTA方法在  DiDeMo数据集上的实验结果。

可以看出,本文方法在多个视频文本检索的数据集上都取得了SOTA的结果。

4.2. Hyperparameters and Learning Strategy

上图展示了本文方法在不同超参数和实验设置下的实验结果,可以看出,本文方法对于学习率是非常敏感的。

4.3. Post-pretraining on Video Dataset

上表展示了是否在Howto100M-380k数据集上后预训练的结果,可以看出,后预训练总体来说还是能够进一步的提高性能的。

4.4. Sampling strategy

上表展示了不同数据集不同帧采样策略的实验结果。

4.5. 2D/3D Patch Linear

从上表可以看出,3D linear在MSR-VTT和MSVD上生成的结果都比2D linear差。

 5. 总结

在本文中,作者使用预训练的CLIP作为主干网络来解决从帧级输入的视频片段检索任务。作者使用了无参数类型序列类型紧密类型 相似性计算器来获得最终结果。

实验结果证明了模型的有效性,并在MSR-VTT、MSVC、LSMDC、ActivityNet和DiDeMo上实现了SOTA结果。此外,作者从实验结果研究中得出了一些见解:

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

2)对优秀的图像文本预训练CLIP进行后预训练,可以进一步提高视频文本检索的性能;

3)三维patch线性投影和序列类型相似度计算会是一种promising的检索方法;

4)视频文本检索中使用的CLIP是学习率敏感的。

▊ 作者简介

研究领域:FightingCV公众号运营者,研究方向为多模态内容理解,专注于解决视觉模态和语言模态相结合的任务,促进Vision-Language模型的实地应用。

知乎/公众号:FightingCV

END

欢迎加入「视频检索交流群

CLIP再创辉煌!西南交大MSRA提出CLIP4Clip,进行端到端的视频文本检索!相关推荐

  1. UCSB微软提出VIOLET,用Masked Visual-token Modeling进行端到端的视频语言学习!性能SOTA...

    关注公众号,发现CV技术之美 ▊ 写在前面 视频语言(VidL)建模的一个巨大挑战在于,从图像/视频理解模型提取的固定视频表示与下游VidL数据之间的脱节 .最近的研究试图通过端到端的训练来解决这个问 ...

  2. 加密界又一响声:WhatsApp宣布对所有通讯信息进行端到端加密

    Facebook旗下WhatsApp通讯服务日前宣布,使用最新版本WhatsApp的通讯消息都将进行端到端的加密.此前,WhatsApp提供对某些类型消息的加密,但现在,WhatsApp超过10亿用户 ...

  3. 图神经网络(二)GCN的性质(2)GCN能够对图数据进行端对端学习

    图神经网络(二)GCN的性质(2)GCN能够对图数据进行端对端学习  近几年,随着深度学习的发展,端对端学习变得越来越重要,人们普遍认为,深度学习的成功离不开端对端学习的作用机制.端对端学习实现了一种 ...

  4. WhatsApp宣布对所有通讯信息进行端到端加密

    Facebook旗下WhatsApp通讯服务日前宣布,使用最新版本WhatsApp的通讯消息都将进行端到端的加密.此前,WhatsApp提供对某些类型消息的加密,但现在,WhatsApp超过10亿用户 ...

  5. CVPR2021-《T2VLAD》-浙大百度悉尼科技提出用局部全局对齐来进行视频文本检索!效果优于MMT!...

    关注公众号,发现CV技术之美 ▊ 写在前面 文本视频检索是一项具有挑战性的任务,其目的是基于自然语言描述搜索相关的视频内容.这个问题的关键是在联合嵌入空间中测量文本视频的相似性.然而,大多数现有的方法 ...

  6. 前沿 | 使用Transformers进行端到端目标识别

    点上方蓝字计算机视觉联盟获取更多干货 在右上方 ··· 设为星标 ★,与你不见不散 仅作学术分享,不代表本公众号立场,侵权联系删除 AI博士笔记系列推荐 周志华<机器学习>手推笔记正式开源 ...

  7. 使用生成对抗网络进行端到端中国山水画创作(SAPGAN)

    目录​​​​​​​ 摘要: 1.Introduction 2. Related Work 2.1. Generative Adversarial Networks 2.2. Neural Style ...

  8. SAP Spartacus 如何使用 cypress 进行端到端自动化测试

    进入 spa root 目录,npm install, 然后 ng serve 启动应用: 进入 projects/storefrontapp-e2e 目录,先 npm install,然后 yarn ...

  9. 使用扩展技术对SAP Fiori应用进行端到端的增强,一个实际案例介绍

    第一章 These series of blogs give a step-by-step instructions about how to extend SAP standard CRM Fior ...

最新文章

  1. QIIME 2用户文档. 12训练特征分类器Training feature classifiers(2018.11)
  2. Spring MVC 基于AnnotationFormatterFactory接口实现自定义的规则
  3. HALCON双目三维重建实验
  4. mongo 3.4分片集群系列之六:详解配置数据库
  5. OpenGL环境下的射线选择
  6. Cocoa/iPhone App/静态库 嵌入资源文件 rtb v0.1发布
  7. RxJava中的doOnSubscribe默认运行线程分析
  8. qtcreator下拉列表怎么制作_设置EXCEL动态下拉菜单,只需要一个组合键,新手也能快速掌握...
  9. 计算机机房的安全等级分,计算机机房安全等级的划分标准是什么
  10. (转)Django ==== 实战学习篇九 在session中保存购物车
  11. Android开发— 2016_最流行的Android组件、工具、框架大全(二)
  12. weblogic启动项目失败查看_weblogic 部署项目成功,但是再界面上取不到数据
  13. 最好用的屏幕录像软件录制教程分享
  14. iOS 渲染原理解析
  15. 大数据开发之Sqoop详细介绍
  16. [转载] 中美德突发事件应急指挥组织结构初探
  17. PO: Purchase Order采购订单关键知识点
  18. 计算机图文混排知识点,图文混排
  19. 旅行照片剪辑--呼伦贝尔篇--9.18
  20. python计算最大回撤_12最大回撤数据分析

热门文章

  1. 【例题+习题】【数值计算方法复习】【湘潭大学】(六)
  2. 罗德里格斯(Rodrigues)旋转方程推导
  3. php mvc 参数传递数组,PHP MVC在帖子上添加到数组
  4. 机器学习笔记III: 基于支持向量机的分类预测
  5. VS code 调试配置01 Debugging
  6. linux 判断文件上传轨迹,linux各种常用命令
  7. ppt计算机控制系统实例,第部分计算机控制系统的应用实例.ppt
  8. java定义int函数_Java自定义函数的四种类型
  9. c语言字符串英文,C语言字符串函数大全(国外英文资料).doc
  10. java代码限制短信发送次数_java如何实现发短息限制日发送次数代码