跨模态检索论文泛读:VisualSparta-利用加权的词袋进行大规模的文本到图像的检索

news2024/12/25 9:27:07

ACL2021 | 利用加权的词袋进行大规模的文本到图像的检索

VisualSparta: An Embarrassingly Simple Approach to Large-scale Text-to-Image Search with Weighted Bag-of-words主打速度!

简介

目前的跨模态检索方法主要分为查询相关和查询无关两种。查询无关的方法(双塔) 通过点积度量相似度,使得检索速度较快,但是缺少了模态间的交互限制了检索精度。查询相关的方法(单塔) 通过深层次的模态间交互提升了检索精度,但是高昂的计算复杂度使得检索非常慢。
在这里插入图片描述
然而在大规模的场景下这两种方法都不适用,即使查询无关的方法可以提前建立索引,但是点积的计算仍然不能实现实时检索,并且稠密向量的索引需要大量的内存。针对这些问题,作者提出了VisualSparta,兼顾了准确率和检索速度。本文的贡献包括:

  1. 提出了一个新的基于片段交互作用的图文检索模型,并取得了SOTA的性能;
  2. 反向索引 (Inverted index) 被证实对图文检索有效。

该模型利用词袋模型表示文本查询,预训练模型编码图像的多模态表示。由于文本查询的离散表示,可以将图像进行倒排索引,降低了检索的时间复杂度,这保证了高效率,可以应用在大规模跨模态检索的场景中。同时,引入的大规模图文预训练模型,保证了检索的高精度。在MSCOCO和Flickr30K上的实验结果验证了方法在检索效率和检索精度上的有效性。

模型结构

文本查询的表示

由于查询处理是在检索过程中的在线操作,因此需要很好地考虑编码查询的效率。

不同于一些方法对query编码成文本序列,本方法先将query编码成词向量。将查询中所有单词的词嵌入作为查询的表示,没有常规模型中的上下文编码,减少检索时的计算量。在这里插入图片描述

图像的表示

包含区域中物体的视觉表示和文本表示(属性;标签)。
对于每幅图像,作者采用了三种特征:局部的深度特征,局部的位置特征,目标标签特征。

  1. 局部的深度特征 (regional deep feature):采用Faster-RCNN提取,即:在这里插入图片描述
  2. 局部的位置特征 (regional location feature):每个局部都包含六个位置特征,即:;
    每个图像的局部都采用上述两个特征的级联:在这里插入图片描述
    ,图像特征为:在这里插入图片描述
  3. 目标标签特征 (object label feature):对于每个局部都采用三种编码,即:word embedding、position embedding、segment embedding,即:在这里插入图片描述
    ,图像的标签特征为:。
    图像特征表示为:在这里插入图片描述
    ,最后再输入到Transformer中:在这里插入图片描述

在这里插入图片描述
VisualSparta模型。它首先计算上下文化的图像区域表示和非上下文化的查询令牌表示。然后计算每个查询标记和图像区域之间的匹配得分,这些得分可以存储在一个反向索引中以便进行有效的搜索。

相似度函数

逐一计算文本和图像中细粒度级别的相似度。
先捕获每个图像区域与每个查询单词令牌之间的片段级相互作用,计算每个局部与每个单词的相似度yi;通过relu和可训练的偏差的组合产生稀疏的嵌入输出;对所有局部相似度取log(防止得分过高)并进行累加总结得分。
在这里插入图片描述

索引和检索

提前计算所有图像和词表中每一个词的相似度,倒排索引:
在这里插入图片描述
检索:
在这里插入图片描述

实验

数据集

本文中的数据集,我们使用MSCOCO和Flickr30k数据集进行文本到图像检索任务的培训和评估。MSCOCO是一个大规模的多任务数据集,包括对象检测,语义分割和图像字幕数据。在本实验中,我们遵循以前的工作,并使用图像字幕数据拆分进行文本模型培训和评估。Flickr30k是另一个公共可用的图像字幕数据集,总共包含31,783张图像,使用了29,783张图像进行训练,并使用1,000张图像进行验证。根据1,000张测试图像的结果报告得分。对于速度实验,除了MSCOCO 1K和5K拆分外,我们还创建了113K分配和1M拆分,两次新数据拆分以测试大规模检索设置中的性能。由于这些拆分仅用于速度实验,因此我们直接重复了现有数据集中的训练数据,而不必担心训练和测试阶段之间的数据泄漏。

评估指标

我们使用召回率作为我们的准确评估指标。在MSCOCO和FLIKR30K数据集中,我们报告了Reacll@t,t = [1,5,10],并与以前的工作进行比较。为了进行速度性能评估,我们选择每秒查询,而延迟(MS)作为评估度量,以测试每个模型在不同尺寸的图像索引下以速度的性能。

实验结果

优于所有查询无关方法,稍差于查询相关方法。
在这里插入图片描述

总结思考

提出了VisualSparta,一个高效的跨模态检索模型,同时保证检索精度;
该模型结合了预训练编码器和细粒度级别的打分方式;
大规模的图像倒排索引使得检索非常高效,适合现实场景的跨模态检索。

据我们所知,VisualSparta是第一个基于transformer的文本对图像检索模型,主要创新之处在于将强大的预训练图像编码器与片段级评分相结合。可以实现实时搜索非常大的数据集,与以前的最新方法相比,准确性的改进很大。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/508577.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

js实现产品页点击小图在大图区显示

企业网站产品图片可能会比较多&#xff0c;需要在产品页面多放几张展示图片&#xff0c;我们可以使用一张大图几张小图的形式排列&#xff0c;并使用js代码实现点击小图显示大图。效果如下所示 html代码部分&#xff1a; <div class"img_bd"> <img src"…

Windows在外远程桌面控制macOS 【macOS自带VNC远程】

文章目录 前言1.测试局域网内远程控制1.1 macOS打开屏幕共享1.2 测试局域网内VNC远程控制 2. 测试公网远程控制2.1 macOS安装配置cpolar内网穿透2.2 创建tcp隧道&#xff0c;指向5900端口 3. 测试公网远程控制4. 配置公网固定TCP地址4.1 保留固定TCP地址4.2 配置固定TCP端口地址…

在树莓派上搭建WordPress博客网站【内网穿透】

文章目录 概述安装 PHP安装MySQL数据库安装 Wordpress设置您的 WordPress 数据库设置 MySQL/MariaDB创建 WordPress 数据库 WordPress configuration将WordPress站点发布到公网安装相对URL插件修改config.php配置 支持好友链接样式定制主题 转载自cpolar极点云的文章&#xff1…

k8s集群部署 | 二进制三节点(复用)高可用集群部署过程

文章目录 1. 二进制部署三节点&#xff08;复用&#xff09;高可用 k8s 集群1.1 环境规划阶段1.1.1 实验架构图1.1.2 系统版本说明1.1.3 环境基本信息1.1.4 k8s 网段划分 1.2 基础安装及优化阶段1.2.1 系统信息检查1.2.2 静态 IP 地址配置1.2.3 配置主机名1.2.4 配置/etc/hosts…

基于绝缘状态的煤矿电缆绝缘可视化在线检测系统

摘要&#xff1a;针对供电系统绝缘问题检测技术限制煤炭产量效率的问题&#xff0c;以某煤炭企业6kV井下供电系统为研究对象&#xff0c;开展了在线监测系统设计与应用工作。结果表明&#xff0c;系统工作稳定&#xff0c;满足井下电力电缆绝缘在线监要求&#xff0c;降低了井下…

Pycharm运行unittest报错ModuleNotFoundError: No module named ‘pytest‘解决

使用unittest未import pytest相关功能语句&#xff0c;在pycharm中右键run的时候报错&#xff1a; Traceback (most recent call last):File "B:\Application\pycharm\PyCharm 2023.1\plugins\python\helpers\pycharm\_jb_pytest_runner.py", line 5, in <modul…

超星项目进程2023.5.9

一.解决了对于服务器传来的消息&#xff0c;想要在页面显示&#xff0c;页面显示的信息快于服务器传来的消息&#xff0c;导致显示的信息总是上一个操作的信息 原因&#xff1a;主线程比客户端专门接受服务器传回的消息的线程跑的快 解决&#xff1a;对于主线程在对于服务器发…

区别:阿里云公共镜像、自定义镜像、共享镜像、云市场镜像和社区镜像对比

阿里云服务器镜像根据来源不同分为公共镜像、自定义镜像、共享镜像、云市场镜像和社区镜像&#xff0c;一般没有特殊情况选择公共镜像&#xff0c;公共镜像是阿里云官网提供的正版授权操作系统&#xff0c;云市场镜像是在纯净版操作系统的基础上预装了相关软件及运行环境&#…

YOLOv5 实例分割 用 OPenCV DNN C++ 部署

Pre: 如果之前从没接触过实例分割&#xff0c;建议先了解一下实例分割的输出是什么。 实例分割两个关键输出是&#xff1a;mask系数、mask原型 本文参考自该项目(这么优秀的代码当然要给star!)&#xff1a;GitHub - UNeedCryDear/yolov5-seg-opencv-onnxruntime-cpp: yolov5…

MySQL 字段为 NULL 的坑,你踩过吗?

前言 很多小知识点&#xff0c;我以为自己懂了&#xff0c;实际没搞透。 数据库字段允许空值(null)的问题&#xff0c;你遇到过吗&#xff1f; 在验证问题之前&#xff0c;我们先建一张测试表及测试数据。 构建的测试数据&#xff0c;如下图所示&#xff1a; 有了上面的表及…

RHCSA 作业一

[rootserver ~]# mkdir /opt/tmp #在/opt目录下创建一个目录tmp [rootserver ~]# ls /opt tmp [rootserver ~]# touch /opt/tmp/a.txt #在tmp目录下新建一个文件a.txt [rootserver ~]# ls /opt/tmp a.txt [rootserver ~]# cd /opt/tmp #进入tmp目录下 [rootserver tmp]# …

大比拼:讯飞星火大模型将超越ChatGPT?

5月6日&#xff0c;讯飞星火认知大模型成果发布会于合肥举办。会上&#xff0c;备受业界期待的“星火”认知大模型正式发布&#xff0c;讯飞AI学习机、讯飞听见、讯飞智能办公本、讯飞智慧驾舱、讯飞数字员工&#xff0c;四大行业中的五大成果同步演示&#xff0c;发布会全程进…

Hive经典面试题——连续7天登录用户与TopN

目录 一、连续7天登录用户 1.数据准备ulogin.dat 2.建表与加载数据 3. 使用 row_number 在组内给数据编号(rownum) 4.某个值 - rownum gid&#xff0c;得到结果可以作为后面分组计算的依据 5.根据求得的gid&#xff0c;作为分组条件&#xff0c;求最终结果 二、求TopN …

Overcoming catastrophic forgetting in neural networks

目录 预备知识&#xff1a; 论文笔记 1. Introduction 2. Elastic weight consolidation 2.1 EWC allows continual learning in a supervised learning context 2.2 EWC allows continual learning in a reinforcement learning context 3. Conclusion 文章链接&#x…

100ASK_全志V853-PRO开发板支持人形检测和人脸识别

1.前言 V853 芯片内置一颗 NPU核&#xff0c;其处理性能为最大 1 TOPS 并有 128KB 内部高速缓存用于高速数据交换&#xff0c;支持 OpenCL、OpenVX、android NN 与 ONNX 的 API 调用&#xff0c;同时也支持导入大量常用的深度学习模型。本章提供一个例程&#xff0c;展示如何使…

JavaScript基础之数值计算

常见的几种场景 场景一&#xff1a;进行浮点值运算结果的判断 常见错误写法&#xff1a;floatNum1 floatNum2 res 我们在Chrome里测试一下 0.1 0.2 0.3&#xff0c;得出的结果是false&#xff0c;而不是预期结果true&#xff0c;因为 0.1 0.2 0.30000000000000004 场…

【Vue-Treeselect 和 vue3-treeselect】树形下拉框

Vue-Treeselect Vue2树形下拉框 链接 文档&#xff1a;Vue-Treeselect 实现 第一步&#xff1a;安装 npm install --save riophae/vue-treeselect 第二步:实现 import Treeselect from riophae/vue-treeselect import riophae/vue-treeselect/dist/vue-treeselect.css属性…

python数据类型总结

标准数据类型 Python 有以下几种标准数据类型&#xff1a; 整数&#xff08;int&#xff09;&#xff1a;表示整数值&#xff0c;如 1, -5, 0 等。浮点数&#xff08;float&#xff09;&#xff1a;表示小数值&#xff0c;如 3.14, -0.01, 1.0 等。字符串&#xff08;str&…

AI智能音箱高性价比出好音质的功放芯片

近几年人工智能等技术的不断发展&#xff0c;AI智能音箱已成为炙手可热的爆款&#xff1b;众多企业纷纷加入其中&#xff1b;如我们熟知的天猫精灵、小爱同学、小度智能音箱、华为AI音箱、腾讯叮当等等智能音箱&#xff1b;据不完全统计&#xff0c;目前国内做智能音箱的企业已…

SpringBoot——创建一个SpringBoot工程

简单介绍&#xff1a; 在之前我们学习JavaEE的时候&#xff0c;是直接使用Spring进行操作&#xff0c;以比较原始的方式进行了SSM的整合&#xff0c;这次我们就来学习一个强大的框架——SpringBoot&#xff0c;这个框架是用来简化Spring应用的初始化创建过程&#xff0c;以及开…