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

article/2025/9/22 17:15:44

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

 写在前面

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

在本文中,作者提出了一种多模态Transformer(MMT)来对视频中的不同模态进行联合编码,从而允许它们中的每一帧关注其他模态。此外,Transformer架构还用于对时间信息进行编码和建模。通过实验表明,本文提出的多模态Transformer能够在多个数据集上实现SOTA的视频检索性能。

 1. 论文和代码地址

b2396a9d29bb4d8ca628220bba335459.png

Multi-modal Transformer for Video Retrieval

论文地址:https://arxiv.org/abs/2007.10639

代码地址:https://github.com/gabeur/mmt

 2. Motivation

视频是目前最受欢迎的媒体形式之一,因为它能够捕捉动态事件,并自然地吸引人类的视觉和听觉感官。在线视频平台在推动这种媒体形式方面发挥着重要作用。

然而,如果不能有效地访问这些平台上数十亿小时的视频,例如通过查询检索相关内容,那么这些平台上的视频将无法使用。

在本文中,作者解决了文本到视频和视频到文本的检索任务。在文本到视频的检索任务中,给定一个文本形式的查询,目标是检索能够最好描述它的视频。

实际上,给定文本-视频对的测试集,模型的目标是为每个文本查询提供所有候选视频的排名,以便与文本查询相关联的视频的排名尽可能高。另一方面,视频到文本检索的任务侧重于在文本候选集合中找到最能描述查询视频的候选文本。

检索问题的一种常见方法是相似性学习,即学习衡量两个元素(查询和候选元素)相似性的函数。然后,可以根据与查询的相似性对所有候选对象进行排序。为了执行该排序,文本以及视频被表示在公共多维嵌入空间中,其中相似性可以被计算为其相应表示的点积。这里的关键问题是如何学习文本和视频的精确表示,以建立相似性估计。

78c7ea7d165a83804b5015608c9668e8.png

文本的学习表征问题已经得到了广泛的研究,可用于对文本进行编码。与这些进步相反,学习有效的视频表示仍然是一个挑战,这也是本文工作的重点。视频数据不仅在外观上有所不同,而且在运动、音频、叠加文本、语音等方面也有所不同。

因此,利用好跨模态关系是构建有效视频表示的关键 。如上图所示,从所有组成模态中联合提取的线索比单独处理每个模态更具信息性。

最近的视频检索工作并没有充分利用这种跨模态高层语义。视频表示的另一个挑战是它的时间性。由于难以处理视频的可变持续时间,目前的方法通常通过聚合视频中不同时刻提取的描述来丢弃长期时间信息。作者认为,这些时间信息对视频检索任务非常重要。

综上所述,作者提出了多模态Transformer来解决视频数据中的时间和多模态挑战。它执行的任务是处理在视频中不同时刻从不同模态中提取的特征,并将它们聚集在一个紧凑的表示中。

基于Transformer架构,本文的多模态transformer利用自注意力机制收集视频中发生的事件的跨模态和时间线索。作者将本文的多模态Transformer集成到一个跨模态框架中,该框架充分利用了文本和视频信息,并估计了它们的相似性。

 3. 方法

e1f713ce5649452650f68331c45cdfe5.png

本文的总体方法依赖于学习函数来计算两个元素(文本和视频)之间的相似性,如上图所示。然后,作者根据文本到视频(或视频到文本)检索中与查询文本(或视频)的相似性,对数据集中的所有视频(或文本)进行排序。

换句话说,给定n个视频文本对的数据集,目标是学习视频和文本之间的相似性函数。如果,那么返回一个高的相似度值;否则返回一个低的相似度值。

3.1 Video representation

视频级表示由本文提出的多模态Transformer(MMT)来计算。MMT遵循Transformer编码器的结构。它由堆叠的自注意力层和全连接层组成。MMT的输入() 是一组嵌入,所有嵌入都具有相同的。每个特征都同时嵌入了特征的语义、模态和时间信息。该输入可以表示为下面的公式:

Features

为了从视频数据中的不同模态中学习有效的表示,作者从称为“专家”的视频特征提取器开始。与以前的方法相比,MMT学习了一种利用专家之间的跨模态和长期时间关系的联合表示。

作者使用N个预训练的专家。每个专家都是为特定任务训练的模型,然后用于从视频中提取特征。对于一个视频v,每个专家提取K个特征的序列。

专家提取的特征编码了视频的语义。每个专家输出特征为。为了将不同的专家特征投影到一个公共维度中,作者学习了N个FC层(每个专家一个)来将所有特征投影到中。

Transformer编码器为其每个特征输入生成嵌入,从而为一个专家生成了多个嵌入。为了获得每个专家的唯一嵌入,作者定义了一个聚合嵌入,它将收集专家的信息并将其上下文化。

作者使用所有相应专家特征的最大池化聚合(max-pooling aggregation)初始化此嵌入,得到。然后,视频编码器的输入特征序列采用以下形式:

Expert embeddings

为了处理跨模态信息,MMT需要确定它所关注的专家。因此,作者学习了N个的嵌入来区分不同专家的嵌入。因此,视频编码器的专家嵌入序列采用以下形式:

Temporal embeddings

视频中的特征具有时序的信息,考虑到最大持续时间为秒的视频,作者学习了个维度为的嵌入特征。在时间范围内提取的每个专家特征将嵌入。此外,作者还学习了另外两个时间嵌入和,用来编码聚合特征和未知时态信息特征。视频编码器的时间嵌入序列采用以下形式:

Multi-modal Transformer

d4245082693b54013d7b615d1817e9c0.png

如上图所示,视频嵌入()为特征、专家和时间嵌入的和,这个也是MMT的输入特征,即:

MMT将其输入上下文化并生成视频表示。在输出时,作者只保留的每个专家的聚合特征:

与collaborative gating机制相比,本文的MMT的优势有两个方面:首先,输入嵌入不是简单地在一个步骤中进行调整,而是通过多个注意力头的几个层次进行迭代优化。

其次,作者提供了所有时刻的提取特征,以及一个描述从视频中提取特征时刻的时间编码。由于其自注意力模块,本文的多模态Transformer的每一层都能够处理所有输入嵌入,从而提取视频中发生的事件在多个模态上的语义。

3.2 Caption representation

作者分两个阶段计算文本表示:首先,作者获得了文本的嵌入,然后使用一个函数将其投影到不同的空间,即◦。对于嵌入函数h,作者使用了预训练的BERT模型。

具体地说,作者从BERT的[CLS]输出中提取文本嵌入。为了使文本表示的大小与视频的大小相匹配,学习的函数可以作为多个门控嵌入模块,以匹配不同的视频专家。因此,文本嵌入可以表示为。

3.3 Similarity estimation

最终的视频文本相似性为每个专家视频文本相似性的加权和,如下所示:

其中表示第i个专家的权重。这个权重由在文本表示上施加线性层,并用Softmax实现:

其中表示线性层的权重,使用加权和的原因是,文本可能无法统一描述视频中的所有模态。例如,在一段视频中,一个穿着红色衣服的人正在唱歌剧,文本“一个穿着红色衣服的人”没有提供与音频相关的信息。相反,“有人在唱歌”的文本应该侧重于计算与音频模态的相似度。

3.4 Training

作者采用了bi-directional max-margin ranking loss来计算损失函数:

其中为batch大小,为视频和文本之间的相似性得分。该损失强制匹配的视频文本对的相似性比不匹配的相似性至少高出。

 4.实验

4.1. Pretraining

5b18fc6a311212b4d7eaeda59bfee6b2.png

上表展示了在HowTo100M上预训练和在MSRVTT上微调的结果,可以看出,预训练对于性能的提升有促进作用。

42ef09017079187925c01888df84956d.png

上表展示了在HowTo100M上预训练和在ActivityNet上微调的结果。

a09d312c57a81aff0f5be5cb9e8c8c69.png

上表展示了在HowTo100M上预训练和在LSMDC上微调的结果。

4.2. Language encoder

1bb5521ec8ea64e6de360ada346959fa.png

上表展示了不同本文编码器的实验结果,可以看出,BERT微调后的实验结果是最好的。不微调的BERT效果较差,这可能是因为预训练数据集和下游任务数据集的域差距较大。

4.3. Video encoder

6912359509e6547e23eff917fe5f0617.png

上表展示了不同输入和Encoder网络结构的实验结果。

7da08027ad4ad03e7a8a46b478dc56e1.png

上表展示了不同初始化专家聚合特征的实验结果。

49f8a7fd822a73c60fbe17aa9eaa8e58.png

上表展示了不同层数和head数的实验结果。

4.4. Comparison of the different experts

8ec4c70f670971a9290f88a7da621b9a.png

上表展示了在模型上使用不同的专家的实验结果,可以看出单独的音频专家并不能提供良好的性能,但与其他专家一起使用时,它的贡献最大,很可能是因为与其他专家相比,它提供了互补的线索。

4.5. Comparison to prior state of the art

8bc12d4148f1018321c97429c2563218.png

b960fd9befa390b302a6c3d0e8542b61.png

b6e5970cc662ad347dab11a8029e3a17.png

上面三个表格展示了本文方法和SOTA方法在MSR VTT、ActivityNet、LSMDC数据集上对比。可以看出,跟SOTA方法相比,本文的方法在性能上具有绝对的优势。

 5. 总结

在本文中,作者提出了multi-modal transformer(多模态Transformer) ,这是一种基于transformer的结构,能够处理在不同时刻从视频中的不同模态提取的多个特征。

这利用了时间和跨模态线索,对于准确的视频表示至关重要。作者将此视频编码器与文本编码器合并到跨模态框架中,以执行视频文本检索,并在多个数据集上达到了SOTA的性能

▊ 作者简介

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

知乎/公众号:FightingCV

b3d53cf88b1c3e421e6dd11af9788938.png

END

欢迎加入「视频检索交流群👇备注:检索

a1d10906eb4095531e2872a4ff246f0a.png


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

相关文章

视频检索——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(报表或查询)业务中&…

mysql 中中间表是什么意思_为什么会有这么多中间表?

中间表的由来 中间表是数据库中专门存放中间计算结果的数据表。报表系统中的中间表是普遍存在的。那么,这些中间表是如何出现的?为什么中间表会越来越多?中间表会给项目组带来什么样的困扰,如何解决这些困扰?这里我们就尝试探讨一下这个问题。 中间表出现的典型场景主要有…

IT 接口对接:足迹第十二步接口对接的定义(接口对接分三种:中间库方式的接口对接,Rest格式URL对接和HTTP格式URL对接;)

1)接口对接的定义:服务端通过暴露地址/参数名称/编码,指引客户端发送一个Rest风格的URL请求,服务端读取Rest风格的URL,并返回一个响应; 接口有四部分组成:方法、uri、请求参数、返回参数&#…

MSSQL中间库对接MySQL

需要下载MySQL ODBC数据源驱动程序, 在MSSQL所在服务器安装MySQL ODBC数据源驱动程序,安装完成之后,在【控制面板】->【工具管理】->【ODBC数据源(64bit)/ODBC数据源(32bit)】->【系统DSN】->【添加】下多了MySQL数据源的驱动程…

四点流程做好商机管理

企业想做好商机管理,仅凭员工是做不到的,借助CRM销售管理系统是比较明智的选择。接下来小编从客户信息管理、业务进程跟踪、设置提醒、销售漏斗等方面讲讲企业如何做好商机管理。 只有提高商机的转化率,企业的利润才会增长。想做好商机管理&…