论文笔记:LAFF 文本到视频检索的新基准
整理了ECCV2022 Lightweight Attentional Feature Fusion: A New Baseline for Text-to-Video Retrieval 论文的阅读笔记
- 背景
- 模型
- 问题定义
- LAFF(Lightweight Attention Feature Fusion)
- LAFF Block
- 实验
- 消融实验
- 可视化
- 对比试验
这篇文章提出了一种新颖灵活的特征融合方式,尽管很简单,但似乎是这一领域的经典基准之一,读了很多遍,感觉还是很有可取之处,所以写了这篇笔记。不过论文中提到的融合方法在其他领域不一定有效,需要根据实际情况调整。
背景
文本到视频检索是指从大量未标记的视频中直接检索到文本查询的视频。视频和文本都必须嵌入到一个或多个跨模态公共空间,以进行文本到视频的匹配。本文讨论如何融合来自不同模型提取的视频/文本表示,来获取最佳的匹配表示,这是文本到视频检索的一个重要但尚未充分探索的主题。
给定由不同特征表示的视频/文本样本,特征融合旨在回答一个基本的研究问题,即什么是组合这些特征的最佳方式?所谓最优,是指融合后的检索性能达到最大。同时,融合过程应该是可解释的,以解释单个特征的重要性。
模型
问题定义
本文提出了视频端和文本端的可训练特征融合。具体来说,对于一个特定的视频 x x x,可能获得一组 k 1 k_1 k1个视频级特征表示 f v , 1 ( x ) , … , f v , k 1 ( x ) {f_{v,1}(x),…,f_{v,k_1} (x)} fv,1(x),…,fv,k1(x),这些表示是使用不同的网络提取的。相似的,对于一个特定的文本查询 q q q,由一组 k 2 k_2 k2个句子级特征 f t , 1 ( q ) , … , f t , k 2 ( q ) {f_{t,1}(q),…,f_{t,k_2} (q)} ft,1(q),…,ft,k2(q)。作者的目标是构建两个特征融合块,融合这些特征形成视频和查询文本的 d d d维跨模态嵌入 e ( x ) e(x) e(x)和 e ( q ) e(q) e(q),这样,我们可以通过计算 e ( x ) e(x) e(x)和 e ( q ) e(q) e(q)之间的语义相似度进行文本-视频匹配,即:
e ( x ) : = f u s i o n v ( f v , 1 ( x ) , … , f v , k 1 ( x ) ) e(x):=fusion_v({f_{v,1}(x),…,f_{v,k_1} (x)}) e(x):=fusionv(fv,1(x),…,fv,k1(x)) e ( q ) : = f u s i o n t ( f t , 1 ( q ) , … , f t , k 2 ( q ) ) e(q):=fusion_t({f_{t,1}(q),…,f_{t,k_2} (q)}) e(q):=fusiont(ft,1(q),…,ft,k2(q)) s ( x , q ) : = s i m i l a r i t y ( e ( x ) , e ( q ) ) s(x,q):=similarity(e(x),e(q)) s(x,q):=similarity(e(x),e(q)) 对给定查询 q q q的文本到视频检索是通过根据 s ( x , q ) s(x, q) s(x,q)降序对测试集合中的所有视频进行排序来实现的。
LAFF(Lightweight Attention Feature Fusion)
本文提出了一个非常简化的特征融合块,称为轻量级注意特征融合(LAFF)。其结构如图所示,LAFF是通用的,可用于视频和文本端。
在特定的LAFF块中,使用学习到的组合权重来优化跨模态文本到视频的匹配。在特征级别进行融合,可以被视为一种早期的融合方法。同时,使用多头注意的技巧,可以在单个网络中部署多个LAFFs,并以后期融合方式将其产生的相似性组合在一起,进一步提升网络性能。
LAFF Block
对于要进行融合操作的 k k k个不同特征 f 1 , … , f k {f_1,…, f_k} f1,…,fk,由于不同的提取器可能具有不同的维度,首先要使用特征转换层将不同的特征校正为相同的长度。要将 i i i维特征转换为新的 d d d维特征,使用: f i ′ = σ ( L i n e a r d i × d ( f i ) ) f'_i=\sigma(Linear_{d_i×d}(f_i)) fi′=σ(Lineardi×d(fi)) 虽然转换后的特征{f ’ i}现在是可比较的,但它们对于表示视频/文本内容并不同等重要。因此我们考虑加权融合,即: f ^ = ∑ i k α i f i ′ \hat f=\sum^k_i\alpha_if'_i f^=i∑kαifi′,这些权重是通过一个线性变换和softmax函数得到的: { α 1 , . . . , α k } = s o f t m a x ( L i n e a r d × 1 ( { f 1 ′ , . . . , f k ′ } ) ) \{\alpha_1,...,\alpha_k\}=softmax(Linear_{d×1}(\{f'_1,...,f'_k\})) {α1,...,αk}=softmax(Lineard×1({f1′,...,fk′})) 如图1所示,当将权重强制为均匀时,即 a i = 1 / k a_i = 1/k ai=1/k时,无注意力特征融合块是LAFF的一种特殊情况。相对于这种情况(Attention-free), LAFF需要学习的参数更多,见表2。
LAFF可以作为融合函数被直接应用在文本到视频检索中。然而,由于视频和文本内容的高度复杂性,作者假设单一配置对于跨模态表示和匹配是次优的。借用MHSA的多头思想,通过部署 h h h对LAFFs,其中每对LAFFs共同确定视频文本匹配的潜在公共空间,设计了多头LAFF。具体来说,一个特定的LAFFs对,表示为 < L A F F v , i , L A F F t , i > <LAFF_{v,i}, LAF F_{t,i}> <LAFFv,i,LAFFt,i>,将视频/文本特征聚合到一个d维跨模态嵌入向量 e i ( x ) / e i ( q ) e_i(x)/e_i(q) ei(x)/ei(q)中,即: e i ( x ) : = L A F F v , i ( x ) e_i(x):=LAFF_{v,i}(x) ei(x):=LAFFv,i(x) e i ( q ) : = L A F F t , i ( q ) e_i(q):=LAFF_{t,i}(q) ei(q):=LAFFt,i(q) s i ( x , q ) : = 1 h ∑ i = 1 h s i ( x , q ) s_i(x,q):=\frac1h\sum^h_{i=1}s_i(x,q) si(x,q):=h1i=1∑hsi(x,q) 最终使用的相似度就是这些多头相似度的平均。这一结构如图2:
到目前为止,我们假设要融合的功能都在视频级。事实上,由于LAFF具有很高的灵活性,它可以很容易地扩展为多级变体,以处理不同帧级和视频级特征共存的情况。图3显示了这种变体,称之为 L A F F − m l LAFF-ml LAFF−ml。 L A F F − m l LAFF-ml LAFF−ml以自下而上的方式工作,其中一组特定的帧级特征通过特定的LAFF块聚合以产生视频级特征。假设有两个不同的帧级特征,例如clip和rx101。每个都有自己的LAFF块。(由此产生的)不同的视频特征然后通过视频级LAFF块融合。
实验
为了评估LAFF的有效性,作者在MSR-VTT上进行消融研究,以从多个方面评估LAFF。然后,将基于laff的检索模型与最先进的MSR-VTT和其他三个流行的基准(包括MSVD, TGIF和VATEX)进行比较。为了在更大的集合上评估,在TRECVID AVS基准系列上进行了评估。
消融实验使用了这些模型提取特征,如果是细粒度的,则进行平均池化。
消融实验
作者首先进行了消融实验,对于视频和查询文本两端,控制一端不变,只改变另一端的特征,通过逐步添加预训练模型来获得性能曲线,如图4:
为了比较特征融合块。通过将图2中的LAFF分别替换为MHSA和Attention-free来比较三种特征融合块。结果如表4所示,LAFF取得了最佳效果:
可视化
为了探索模型的可解释性作者对特征选择的LAFF权重进行可视化,图5显示了MV-test3k测试集中选择的视频及其相关字幕的LAFF权重。我们观察到,当视频内容包含更多的运动时,3D-CNN特征得到的权重更大,如图5(b)所示。对于每个特征,其权重在样本上的平均值反映了其对检索性能的贡献。作者用排名前三的视频/文本特征重新训练模型。与完整设置(mAP为0.358)相比,简化模型的mAP为0.353,这意味着性能损失相对较小,仅为1.4%。因此,LAFF权重有助于特征选择:
对比试验
作者进一步纳入MSVD、TGIF和VATEX。对于MSVD和TGIF,遵循他们的官方数据分割。对于VATEX,遵循HGR中使用的数据分割。对于MSR-VTT,除了官方的MVtest3k分割外,作者还报告了另一种流行的数据分割的性能,其中9k视频用于训练,1k用于测试。称之为分裂MV-test1k。实验结果如表7所示:
由于包含了更好的clip-ft特征,其性能比消融研究中报道的要好。基线(JE, w2vv++, SEA和MMT)比使用单个特征(clip-ft)得到的结果更差。结果表明,不能想当然地认为添加更好的特征就会产生更好的性能,需要对特征融合进行智能设计。所提出的LAFF在所有测试集上始终表现最好。LAFF-ml优于LAFF,说明在多个层次上灵活使用LAFF可以进一步提高性能。
相关文章:

论文笔记:LAFF 文本到视频检索的新基准
整理了ECCV2022 Lightweight Attentional Feature Fusion: A New Baseline for Text-to-Video Retrieval 论文的阅读笔记 背景模型问题定义LAFF(Lightweight Attention Feature Fusion)LAFF Block 实验消融实验可视化对比试验 这篇文章提出了一种新颖灵活的特征融合方式&#x…...

iSTFT 完美重构的条件详解
目录 引言1. 短时傅里叶变换(STFT)与逆变换(iSTFT)概述2. 完美重构的条件3. 数学推导4. 实现要点5. 示例代码6. 总结 引言 在数字信号处理领域,短时傅里叶变换(Short-Time Fourier Transform,简…...

SSH(安全外壳协议)可以基于多种加密算法
SSH(安全外壳协议)可以基于多种加密算法,确保数据的机密性和完整性。以下是 SSH 中常见的加密类型: 1. 对称加密 对称加密算法用于加密会话中的数据,常见的算法包括: AES(高级加密标准&#…...

Navicat 工具 下载安装
准备工作 下载 下载链接:https://www.123865.com/ps/EF7OTd-kdAnH 演示环境 操作系统:windows10 产品:Navicat 版本: 15.0.25 注意:如果需要其他版本可以自行下载。 安装步骤 1、解压(如果解压中出现提示…...

家用高清投影仪怎么选?目前口碑最好的投影仪推荐
双十一马上要到了,而且今年还有投影仪的家电国补,所以大家入手投影仪的需求也越来越多,但是家用高清投影仪怎么选?什么投影仪最适合家用?家庭投影仪哪个牌子质量最好?今天就给大家做一个2024性价比高的家用…...

阿里云盾同步漏洞之限制请求数
阿里云sdk不支持一次性请求太多,所以我们需要限制每次请求最大1000条,此代码无任何参考意义。仅做记录 func VulList(hole_type string) ([]*sas20181203.DescribeVulListResponseBodyVulRecords, error) {pageSize : 20allItems : make([]*sas20181203…...

docker安装kafka-manager
kafkamanager docker安装_mob64ca12d80f3a的技术博客_51CTO博客 # 1、拉取镜像及创建容器 docker pull hlebalbau/kafka-manager docker run -d --name kafka-manager -p 9000:9000 --networkhost hlebalbau/kafka-manager# 2、增设端口 腾讯云# 3、修改防火墙 sudo firewall-…...

Android Studio 新版本 Logcat 的使用详解
点击进入官方Logcat介绍 一个好的Android程序员要会使用AndroidStudio自带的Logcat查看日志,会Log定位也是查找程序bug的第一关键。同时Logcat是一个查看和处理日志消息的工具,它可以更快的帮助开发者调试应用程序。 步入正题,看图说话。 点…...

基于php摄影门户网站
作者:计算机学姐 开发技术:SpringBoot、SSM、Vue、MySQL、JSP、ElementUI、Python、小程序等,“文末源码”。 专栏推荐:前后端分离项目源码、SpringBoot项目源码、Vue项目源码、SSM项目源码 精品专栏:Java精选实战项目…...

uniapp中uni.request的统一封装 (ts版)
文章目录 前言一、我们为什么要去封装?二、具体实现1.创建一个请求封装文件:2.封装 uni.request:3.如何去使用? 总结 前言 在uniapp中如何去更简洁高效的发送我们的请求,下面就介绍了uni.request()二次封装。 一、我们…...

记录一次gRpc流式操作(jedis版)
使用背景: 从redis队列中发送和消费消息.(使用gRpc的流式实现的消费消息) gRpc协议类定义 service方法定义 service MQDataService{ rpc sendFacebookAndroidMsg(google.protobuf.StringValue)returns (ResultProto); rpc receiveFacebookAndroidMsg(empty)returns (stream g…...

20241001国庆学习
n60f/p 这个n是指旋转磁场的速度。 极数表示旋转转子的永磁体极数,具有一对N极/S极的电机称为双极电机。 极数可以是2、4、6、8等。 (从电机控制的角度来看,当极数增加一倍时,转速将减半,当极数增加四倍时…...

基于SSM的农产品仓库管理系统【附源码】
基于SSM的农产品仓库管理系统(源码L文说明文档) 目录 4 系统设计 4.1 系统概要设计 4.2 系统功能结构设计 4.3 数据库设计 4.3.1 数据库E-R图设计 4.3.2 数据库表结构设计 5 系统实现 5.1 管理员功能介绍 5.1.1 用户管…...

fmt:C++ 格式化库
fmt 是一个现代化、快速且安全的 C 格式化库,专注于高效地格式化文本。它提供了类似 Python 的 format 功能,但具有更高的性能和类型安全特性。fmt 库在处理字符串格式化、日志输出以及构建用户友好的输出时尤为强大。自从 C20 标准引入 std::format 后&…...

RabbitMQ MQ的可靠性及消费者的可靠性
1.MQ可靠性: 如何保证消息的可靠性: (1).通过配置可以让交换机、队列、以及发送的消息都持久化。这样队列中的消息会持久化到磁盘,MQ重起消息依然存在。 (2).3.6.0版本开始,RabbitMQ引入了惰性队列模式,这种模式下&am…...

使用 Nexus 代理 Docker Hub 的配置指南
在本篇文章中,我们将详细介绍如何配置 Nexus 以代理 Docker Hub,从而实现更高效的镜像管理。以下步骤涵盖了从 Nexus 的安装到 Docker 客户端的配置。 1. 配置 Nexus 1.1 登录 Nexus 打开浏览器,访问 Nexus 的 URL(例如 http:/…...

笔记整理—linux进程部分(4)进程状态与守护进程
进程的几种重要状态,就绪态;运行态;僵尸态;等待态(浅度睡眠、深度睡眠);停止态。 就单核CPU而言,在同一时间只能运行一个进程,但实际上要运行的进程不止一个,…...

# VirtualBox中安装的CentOS 6.5网络设置为NAT模式时,怎么使用SecureCRT连接CentOS6.5系统?
VirtualBox中安装的CentOS 6.5网络设置为NAT模式时,怎么使用SecureCRT连接CentOS6.5系统? 一、查询 【VirtualBox Host-Only Network】虚拟网卡的网络配置 IP。 1、按键盘上WIN R 组合键,打开【运行】,输入【 ncpa.cpl 】&…...

7-1.Android SQLite 之 SQLiteDatabase 简单编码模板(SQLiteDatabase 使用、SQL 语句编写)
一、SQLiteDatabase SQLite 是一种轻量级的数据库引擎,它非常适合在移动设备(例如,Android)上使用 SQLiteDatabase 允许应用程序与 SQLite 数据库进行交互,它提供了增删改查等一系列方法 二、SQLiteDatabase 简单编码…...

灰度图像重心(质心)求取算法
1、图像的重心坐标计算 假设我们有一个二维图像,其中 (x, y) 表示图像中每个像素的坐标。I(x, y) 表示图像在 (x, y) 处的亮度(或像素值),通常是灰度值。 图像的重心坐标 (X, Y) 可以通过以下公式计算: X = Σ [x * I(x, y)] / Σ I(x, y) Y = Σ [y * I(x, y)] / Σ I(…...

k8s 1.28.2 集群部署 ingress 1.11.1 包含 admission-webhook
文章目录 [toc]证书创建部署 ingress-controlleringress 验证创建测试 nginx pod创建错误的 ingress 配置创建正确的 ingress 配置 ingress 官方 yaml 文件:deploy.yaml基于官方 yaml 文件做了一些修改 官方的 svc 是 ClusterIP 和 LoadBalancer,我这边把…...

pom web 自动化测试框架分享
这是初版的 pom web 测试框架,目录如下同时部分代码也放在下面,详细代码可前往 github 查看,欢迎大家给出宝贵意见。 |--base | base_page.py(封装方法) | |--config | allure_config.py(测试报告配…...

一些以前使用的linux及shell命令,gnuplot脚本
tar tar -cvzf xxx.tar.gz * -c,--create 创建新的tar文件 -v,--verbose 列出每一步处理涉及的文件的信息,只用一个“v”时,仅列出文件名 使用两个“v”时,列出权限、所有者、大小、时间、文件名等信息 -z,…...

Django一分钟:DRF模型序列化器处理关联关系的示例与注意事项
DRF的ModelSerializer序列化器与Django的Model模型紧密映射,本文将通过简单的示例介绍几种处理关联关系的方法。 1. 创建模型和初始数据 创建模型 from django.db import modelsclass Product(models.Model):product_name models.CharField(max_length255)quant…...

Python爬虫selenium框架基本使用
一、安装导入 使用包管理器安装 pip3 install selenium 二、WebDriver工具 要使用这个工具我们需要保证安装了一个浏览器的驱动器。 Python的WebDriver是一个用于自动化Web浏览器操作的工具,它属于Selenium的一部分,特别是Selenium 2.0及以后版本中…...

sql 时间交集
任务(取时间交集) 前端输入开始时间和结束时间,通过sql筛选出活动开始时间和活动结束时间再开时时间和结束时间有交集的活动 想法: 前后一段时间内遇到了类似取交集的,从网上找到了两种写法,再结合GPT等…...

【深度学习】05-Rnn循环神经网络-01- 自然语言处理概述/词嵌入层/循环网络/文本生成案例精讲
循环神经网络(RNN)主要用于自然语言处理的。 循环神经网络(RNN)、卷积神经网络(CNN)和全连接神经网络(FCN)是三种常见的神经网络类型,各自擅长处理不同类型的数据。下面…...

基于JAVA+SpringBoot+Vue的电商平台的设计与实现
基于JAVASpringBootVue的电商平台的设计与实现 前言 ✌全网粉丝20W,csdn特邀作者、博客专家、CSDN[新星计划]导师、java领域优质创作者,博客之星、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java技术领域和毕业项目实战✌ 🍅文末附源码下载链接🍅…...

CSS盒模型-怪异盒模型笔记-思维导图-案例等
文章目录 一、盒模型(重点)二、怪异盒模型三、块级元素和行内元素区别汇总四、块级元素和行内元素的转换(显示方式)||元素的显示和隐藏五、思维导图六、笔记资料 一、盒模型(重点) 所有HTML元素可以看作盒子。 CSS盒模型本质上是…...

thinkphp6开发的通用网站系统源码
thinkphp6开发的通用网站系统源码。 基于ThinkPHP6框架开发的通用后台权限管理系统,底层采用国内最流行的ThinkPHP6框架, 支持内容管理、文章管理、用户管理、权限管理、角色管理等功能。 代码下载百度网盘...