论文阅读:CLIP2Video: Mastering Video-Text Retrieval via Image CLIP

2023-11-03

动机:

之前的大多都是试图从大规模的视频文本数据集中提取视频的时空特征以及视频和语言之间的多模式交互,作者将在图像语言中预训练的模型迁移到视频文本检索任务中,而之前这种使用这种方式的工作大多都是基于证明这种迁移学习是有效的,以验证CLIP模型在预训练中的效果。作者进一步研究了如何利用已有的显著的图像预训练模型,更好地建模视频帧与视频文本之间的时间依赖性。

由于CLIP模型在图像文本上旨在建模空间关系,而视频相比图像多了时间维度,因此作者进一步提出了TDB和TAB来探索时间关系

Temporal Difference BlockTemporal Difference Block

使用Vit得到帧特征,由于Vit只编码了每一帧的空间信息,作者提出使用一个Lt层的temporal transformer来编码视频特征

将vit的输出拼接起来作为frame tokens,由于两个连续的帧包含的内容会有变化,作者使用temproal difference block来指导temporal transformer编码动作相关的特征

作者使用帧嵌入差的转换来描述两个相邻时间戳之间的动作变化,具体方法是首先计算相邻时间戳之间的特征差,加上位置编码,输入到一个一层的transformer中,然后再接一个sigmoid函数,将其正则化为【-1,1】之间来表示这个动作的变化

之后,作者将differenceenhanced tokens Fd插入到相邻帧之间

其中P是位置编码,T是类型信息

将Fte输入到temporal transformer中,将输出{ fv0, fv1, fv2, ..., fvm−1}作为最终的视频嵌入,最后,使用全局平均池化来得到最终的视频特征fgv

Temporal Alignment Block

(和t2vlad一样,其实就是全局和局部的对齐)

作者使用CLIP的text encoder来生成文本特征,Ft= { ftcls, ft0, ft1, ..., ftn−1} ,将[cls]的输出ftcls作为文本的全局特征,和视频特征fgv进行全局匹配

 

受Netvlad的启发,作者提出了一个temporal alignment block通过使用共享的center来聚合不同模态的token嵌入

使用点积来计算模态特征和shared center之间的相似度,为每一个cluster分配不同的权重

其中,pi表示第i个模态特征,cj表示第j个shared center

然后,计算center cj聚合的嵌入对齐

C~j是可训练的权重,和cj有相同的shape

通过上述步骤,可以得到center特征υ = { υ 1, υ 2, ..., υ K},由于视频和文本是通过有相同内容的shared center进行聚合的,因此在联合空间中计算相似度之前就已经完全对齐了

使用更大帧率的特征来得到视频的center特征

为了重新调整动作相关center的权重分布,作者进行了对Ff(应该是vit输出的特征拼接)稀疏采样,隔一帧取一帧,虽然这样会丢失大量的语义信息,但是更加强调了动作的变化,接下来,作者采用一个一层的transformer来关联每个temporal token,得到输出特征Fdl,并将Fdl和Ff进行拼接得到Fml=[Ff, Fdl]

使用Fml得到对齐的视频文本特征

σv and σt表示l2正则化

然后使用全局平均池化层来得到最终的对齐特征fav 和 fat

Loss function

使用对称交叉熵损失函数来进行训练

<f, f>为余弦相似度,使用fg和fa来分别计算

Experiments

探索Temporal Difference Block的有效性

直接使用减法插值(TDB-Sub)

使用MLP(TDB-MLP)

difference-level attention (TDB)

在所有输出token上使用全局平均池化(TDB-All)

探索Temporal Alignment Block的有效性

应该是直接使用TDB的输出来进行对齐(TDB+TAB-Temporal)

使用帧嵌入作为basic alignment,并添加了额外的稀疏帧嵌入经过transformer(TDB+TAB-Transformer),这种较大帧率的特征将运动的表观变化编码在更少的帧中,重新分配运动相关中心的权重,使其与文本的上下文保持一致。

使用TDB (TDB+TAB-TDB)进一步编码了大帧率特征的时间关系

随着center数量的增加,性能逐渐退化,作者的解释为由于msrvtt视频数量的限制,更多数量的center很难收敛,因此作者对于msrvtt和msvd数据集选择k=5,而vatex相对有更多的视频数量,k=7

作者对loss的权重也进行了实验,

L o= w(L og)+(1−w)L oa,  w=0.5更合适

性能对比

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

论文阅读:CLIP2Video: Mastering Video-Text Retrieval via Image CLIP 的相关文章

随机推荐

  • 我的大学职业规划(大一时的思考)

    我的大学职业规划 文章目录 我的大学职业规划 1 计算机科学与技术专业的发展方向 不仅限于计科 2 大学四年应该做什么 3 学校竞赛与证书考核 4 编程学习的境界 以C 举例 5 考研与就业 考公与参军的抉择 写作时间 2021 5 28
  • 学会这八个技术,你离BAT大厂不远了

    红人榜第七期来咯 本期干货 HTTP 本周最受关注的技术关键词TOP8 往下看吧 在如今这个时间和知识都是碎片化的时代 C站根据C1 C4认证的成长路径 进行知识细化整理 形成系统化的知识图谱 小编根据C1认证的成长路径整理了100篇HTT
  • Linux下Gitee的user和email配置,查看配置信息命令

    Linux下Gitee的user和email配置 查看配置信息命令 查看配置信息 git config l 配置邮箱 git config global user email email 配置用户名 git config global us
  • STM32CUBEMX配置教程(二)时钟等内部参数配置

    STM32CUBEMX配置教程 二 时钟等内部参数配置 基于STM32H743VI 使用STM32CUBEMX两年了 始终觉得这个工具非常的方便 但因为不是经常使用 导致有些要点总是会有些遗忘 因此写下这一系列教程以供记忆 顺便让我这个大萌
  • Python 打造最强表白程序(源码)

    此程序结合数据抓取 微信自动发消息 定时任务 实现一个能每天自动定时给你心爱的 ta 发送 你们相识相恋天数 情话 我爱你的图片 具体的消息如下 每天发送的消息格式如下 message 亲爱的 早上好 今天是你和 Koc 相恋的第 天 今天
  • C++性能测试工具——gperftools的安装

    一 软件安装说明 gperftools的安装有两种方式 一种是源码方式 一种是直接安装模式 这里使用源码安装模式 原因是使用直接安装模式比较简单 安装此软件需要先安装libunwind这个软件 所以这里需要通过源码方式安装libunwind
  • 【机器学习】支持向量机【上】硬间隔

    有任何的书写错误 排版错误 概念错误等 希望大家包含指正 在阅读本篇之前建议先学习 机器学习 拉格朗日对偶性 机器学习 核函数 由于字数限制 分成两篇博客 机器学习 支持向量机 上 硬间隔 机器学习 支持向量机 下 软间隔与核函数 支持向量
  • CSS布局flex布局 对齐 等分 均分 详解

    一切都始于这样一个问题 怎样通过 CSS 简单而优雅的实现水平 垂直同时居中 记得刚开始学习 CSS 的时候 看到float属性不由得感觉眼前一亮 顺理成章的联想到 Word 文档排版中用到的的左对齐 右对齐和居中对齐 然而很快就失望的发现
  • 【leetcode】1143.最长公共子序列

    leetcode 1143 最长公共子序列 题目 思路 代码 复杂度 题目 leetcode原题链接 给定两个字符串 text1 和 text2 返回这两个字符串的最长 公共子序列 的长度 如果不存在 公共子序列 返回 0 一个字符串的 子
  • 如何快速查看并定位网页元素代码

    如何快速查看并定位网页元素代码 目的 可以迅速得找出一个网页中对应元素的html代码 1 首先我们打开一个网页 比如 百度首页 2 打开后我们会看到很多的文字链接以及按钮链接 那么我们找到我们想要查看的元素的文字或者按钮 3 我们这里以 百
  • @Cacheable注解属性介绍

    本文目录 1 value cacheNames 属性 2 key属性 3 keyGenerator 属性 4 cacheManager 属性 5 cacheResolver 属性 6 condition 属性 7 unless 属性 8 s
  • C++导出EXCEL开源库xlslib库使用心得

    使用教程 第一步 下载xlslib库 本文建立在xlslib2 5 0版本基础上 下载地址xlsLib download SourceForge net 第二步 切换到解压文件目录xlslib build msvc2008 打开项目xlsl
  • linux查询jvm运行内存使用情况,在Linux下获取正在运行的JVM的总使用内存

    您可以运行 ps aux grep java 这将显示包含在其推出的字符串java的每个应用程序的内存使用情况 这应该是大多数 如果不是所有的Java应用程序 从我的服务器的输出如下 servername servername ps aux
  • 超过飞飞系列-ZYNQ之FPGA学习2.1Verilog语法

    一 VHDL Verilog C语言区别 VHDL 硬件描述语言 美军开发 相对难 不直观 需要专业培训 欧洲发展较好 Verilog 硬件描述语言 设计群体广泛 资源成熟 中国多采用 并行处理运行 C 软件语言 经过C的单片机程序需取码
  • 简单工厂(Simple Factory)

    文章目录 1 代码示例 2 简单工厂模式的定义 实现意图 工厂模式 通过把创建对象的代码包装起来 做到创建对象的代码与具体的业务逻辑代码相隔离的目的 工厂模式可以细分为 简单工厂模式 工厂方法模式 抽象工厂模式 1 代码示例 include
  • servlet实现图片的上传

    servlet实现图片的上传 我们通常说的上传图片 是将图片上传到服务器上面 本篇以tomcat为例 实现简单的本地图片上传服务器 一 图片的上传需要引入两个jar包 commons fileupload 1 4 jar 下载地址 http
  • 深度详解 View.post() 为何能够获取到 View 的宽高值?

    文章目录 1 简介 1 1 问题描述 1 2 结果展示 2 源码分析 2 1 View post 方法添加任务 2 2 HandlerActionQueue post 方法添加任务 2 3 探究 AttachInfo 的由来 2 3 1 A
  • 爬取在线论坛帖子:使用 Python 获取帖子及评论

    在这篇博客中 我们将学习如何使用 Python 编写一个网络爬虫 从一个在线论坛 例如 Reddit 中获取帖子及其评论 我们将使用 requests 和 BeautifulSoup 库来实现这个功能 文章将包括以下内容 目录 1 爬虫的基
  • 重写、覆盖、重载、隐藏、多态几个概念的区别分析

    override gt 重写 覆盖 overload gt 重载 polymorphism gt 多态 override是重写 覆盖 了一个方法 以实现不同的功能 一般是用于子类在继承父类时 重写 重新实现 父类中的方法 成员函数的重载 o
  • 论文阅读:CLIP2Video: Mastering Video-Text Retrieval via Image CLIP

    动机 之前的大多都是试图从大规模的视频文本数据集中提取视频的时空特征以及视频和语言之间的多模式交互 作者将在图像语言中预训练的模型迁移到视频文本检索任务中 而之前这种使用这种方式的工作大多都是基于证明这种迁移学习是有效的 以验证CLIP模型