MDETR - Modulated Detection for End-to-End Multi-Modal Understanding

Abstract

多模态推理系统(如视觉问答系统或图像与文本之间的匹配系统)通常依赖于一个预训练的物体检测器,用于从图像中提取感兴趣的区域。这些物体检测器通常是作为“黑盒”使用的,也就是说,它们在被训练时独立于下游任务,并且是基于一个固定的物体和属性词汇表进行训练的。

这种做法有一个问题:固定的物体和属性词汇表限制了这些检测器只能识别训练时所见的物体类别,因此当遇到自由文本表达的视觉概念(即,文本中提到的物体类别或者描述是从未在训练集中出现过的)时,系统就很难有效地理解和检测这些概念。

我们在130万个文本-图像对上预训练网络,这些文本-图像对是从已有的多模态数据集中挖掘出来的,文本中的短语和图像中的对象之间有明确的对齐。 然后,我们对几个下游任务进行微调,如短语基础、参考表达理解和分割,在流行的基准上获得最先进的结果。 我们还研究了我们的模型在给定标签集上作为对象检测器的效用,当在几个镜头设置中进行微调时。 我们表明,我们的预训练方法提供了一种方法来处理具有很少标记实例的对象类别的长尾。

Introduction

传统的目标检测通常是将目标检测视为一个“黑盒”,他们在训练的时候独立于下游任务,通常是先将image中的目标检测出来,然后再与文本等多模态对齐,固定的object和词汇检测表。限制里这些检测器只能识别训练时见到过的object,当出现没有见到过的,就很难进行识别。检测系统通常被冻结,参数和结构就不能被优化了。物体检测器通常作为一个独立模块存在,而不与下游任务(如图像-文本匹配或视觉问答等)共同训练。

本文贡献:

  • 引入了一个端到端的文本调制检测系统,该系统源自于DETR检测器。
  • 我们证明了调制检测方法可以无缝地应用于解决诸如phrase grounding和referring expression comprehension等任务,并使用具有合成图像和真实图像的数据集在这两个任务上设置了新的最先进的性能。
  • 良好的调制检测性能自然地转化为下游任务性能,例如在视觉问题回答、参考表达式分割和少数镜头长尾目标检测上实现竞争性性能。

Method

Background

本文的方法建立在DETR系统之上

MDETR

Architecture

图像编码:

MDETR首先使用卷积神经网络(CNN)作为图像的特征提取器,通常会被“扁平化”成一个一维的向量,而且会为每个图像加上空间位置信息。

文本编码:

MDETR使用预训练的变换器(例如BERT、GPT等)模型来处理输入的文本。

然后,我们对图像和文本特征应用模态相关的线性投影,将它们投影到共享嵌入空间中。然后图像和文本features会在序列维度上进行拼接。然后他们会被送入cross encoder进行联合编码,使模型更理解二者之间的关系。

物体查询与decoder:

物体查询的作用与DETR类似:它们作为模型关注的目标,旨在通过与图像中的特征进行交互,预测物体的位置和类别。物体查询的存在帮助模型保持对图像中潜在物体的持续关注

decoder的输出就是bounding box

Training

Soft token prediction:与传统的DETR不同的,MDETR不是简单地预测类别,而是通过预测文本中对应描述该物体的词语范围(token span)。MDETR并不直接给每个物体一个类标签,而是预测一系列文本中的token,这些token描述了image中的物体。每个box通过与文本中的相关部分进行匹配。

如果某个物体查询没有匹配到box,模型会被训练预测“没有物体”(∅)标签

而且还会存在多个文本对应同一个物体的情况。

这个更加强调在空间位置上进行对齐,即box与文本token在位置上进行对齐。

Contrastive alignment

对比对齐损失强制在解码器输出处的对象的嵌入表示交叉编码器输出处的文本表示之间进行对齐(也就是在特征空间上就开始进行对齐)。与不相关标记的嵌入相比,(视觉)对象及其对应的(文本)标记的嵌入在特征空间中更接近。

O就是物体集合,T就是token集合。

Experiment

预训练的RoBERTa-base作为我们的文本编码器,有12个encoders,每个层的隐藏维度为768,在多头注意力中有12个头。visual backbone用的是EfficientNet。

分别在Phrase grounding、REC、RES、VQA任务上进行微调实验,效果不错。

而且还可以解决长尾问题

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

pytest+allure生成报告显示loading和404

pytestallure执行测试脚本后,通常会在电脑的磁盘上建立一个临时文件夹,里面存放allure测试报告,但是这个测试报告index.html文件单独去打开,却显示loading和404, 这个时候就要用一些办法来解决这个报告显示的问题了。 用命令产生…

【MyBatis】验证多级缓存及 Cache Aside 模式的应用

文章目录 前言1. 多级缓存的概念1.1 CPU 多级缓存1.2 MyBatis 多级缓存 2. MyBatis 本地缓存3. MyBatis 全局缓存3.1 MyBatis 全局缓存过期算法3.2 CacheAside 模式 后记MyBatis 提供了缓存切口, 采用 Redis 会引入什么问题?万一遇到需强一致场景&#x…

MySQL —— MySQL 程序

目录 前言 一、MySQL 程序简介 二、mysqld -- MySQL 服务器 三、mysql -- MySQL 客户端 1. mysql 客户端简介 2. mysql 客户端选项 (1)指定选项的方式 (2)mysql 客户端命令常用选项 (3)在命令行中使…

统一功能(2异常)

RequestMapping("/r1")public String returnString(){return "asdfghjkl";} 如果在RequestMapping中返回的类型是String但是统一返回结果是Result类就会报错。 原因:源码中需要Result类型但是传入的是String类型 统一异常处理: 比如…

浅谈js中onmouseleave和onmouseout的区别

同步发布于我的网站 🚀 背景介绍基本概念区别详解 无子元素的情况有子元素的情况 实际应用场景 使用 onmouseleave使用 onmouseout 注意事项总结 背景介绍 在前端开发中,我们经常需要为元素绑定鼠标事件,以实现各种交互效果。onmouseleave…

python+django自动化部署日志采用‌WebSocket前端实时展示

一、开发环境搭建和配置 # channels是一个用于在Django中实现WebSocket、HTTP/2和其他异步协议的库。 pip install channels#channels-redis是一个用于在Django Channels中使用Redis作为后台存储的库。它可以用于处理#WebSocket连接的持久化和消息传递。 pip install channels…

【小白学机器学习37】用numpy计算协方差cov(x,y) 和 皮尔逊相关系数 r(x,y)

目录 1 关于1个数组np.array(1组数据)如何求各种统计数据 2 关于2个数组np.array(2组数据)如何求数组的相关关系? 2.1 协方差公式和方差公式 2.2 协方差 公式 的相关说明 2.3 用np.cov(x,y,ddof0) 直接求协方差矩…

(超详细图文)PLSQL Developer 配置连接远程 Oracle 服务

1、下载配置文件 (超详细图文详情)Navicat 配置连接 Oracle-CSDN博客 将下载的文件解压到单独文件夹,如:D:\App\App_Java\Oracle\instantclient-basic-windows.x64-19.25.0.0.0dbru 2、配置 打开 PLSQL Developer,登…

学习视频超分辨率扩散模型中的空间适应和时间相干性(原文翻译)

文章目录 摘要1. Introduction2. Related Work3. Our Approach3.1. Video Upscaler3.2. Spatial Feature Adaptation Module3.3. Temporal Feature Alignment Module3.4. Video Refiner3.5. Training Strategy 4. Experiments4.1. Experimental Settings4.2. Comparisons with …

设计模式---建造者模式

建造者模式 一种创建型设计模式,它允许你一步一步地构建复杂对象。通过使用建造者模式,你可以将对象的构建过程与其表示分离,使得同样的构建过程可以创建不同的表示。说白点就是,解决了构造函数创建对象的问题。 适用于那种构造函…

AtomicIntegerFieldUpdater能否降低内存

1. 代码如下: import java.util.LinkedList; import java.util.List; import java.util.concurrent.atomic.AtomicInteger;public class AtomicIntegerTest {final AtomicInteger startPosition new AtomicInteger(0);final AtomicInteger wrotePosition new Atom…

element的el-table表格标题用css自定义是否必填,用添加伪类的方式标红色*

element的el-table表格标题用css自定义是否必填添加伪类红色 * 效果图如下👇 el-table组件的html部分 css部分 /deep/.el-table__header-wrapper{.el-table__header{.has-gutter tr .el-table__cell:nth-of-type(3) .cell:before{content: *;color:red}.has-gutte…

数据库的⽤户和权限管理

数据库的⽤户和权限管理 应⽤场景⽤户查看⽤户创建⽤户语法注意事项示例 修改密码语法示例 删除⽤户语法 权限与授权给⽤户授权语法⽰例 回收权限语法⽰例 应⽤场景 数据库服务安装成功后默认有⼀个root⽤户,可以新建和操纵数据库服务中管理的所有数据库。在真实的…

C语言数据结构-栈和队列

C语言数据结构-栈和队列 1.栈1.1概念与结构1.2栈的实现1.2.1结构体定义1.2.2初始化1.2.3销毁1.2.4入栈1.2.5出栈1.2.6取栈顶处的元素1.2.7获取栈中有效的个数 2.队列2.1概念与结构2.2队列的实现2.2.1结构体定义2.2.2入队列2.2.3判断是否为空2.2.4队列中的有效元素个数2.2.5删除…

[CTF/网络安全] 攻防世界 upload1 解题详析

[CTF/网络安全] 攻防世界 upload1 解题详析 考察文件上传&#xff0c;具体原理及姿势不再赘述。 姿势 在txt中写入一句话木马<?php eval($_POST[qiu]);?> 回显如下&#xff1a; 查看源代码&#xff1a; Array.prototype.contains function (obj) { var i this.…

TiDB 优化器丨执行计划和 SQL 算子解读最佳实践

作者&#xff1a; TiDB社区小助手 原文来源&#xff1a; https://tidb.net/blog/5edb7933 导读 在数据库系统中&#xff0c;查询优化器是数据库管理系统的核心组成部分&#xff0c;负责将用户的 SQL 查询转化为高效的执行计划&#xff0c;因而会直接影响用户体感的性能与稳…

监控视频汇聚平台:Liveweb视频监控管理平台方案详细介绍

Liveweb国标视频综合管理平台是一款以视频为核心的智慧物联应用平台。它基于分布式、负载均衡等流媒体技术进行开发&#xff0c;提供广泛兼容、安全可靠、开放共享的视频综合服务。该平台具备多种功能&#xff0c;包括视频直播、录像、回放、检索、云存储、告警上报、语音对讲、…

10个Word自动化办公脚本

在日常工作和学习中&#xff0c;我们常常需要处理Word文档&#xff08;.docx&#xff09;。 Python提供了强大的库&#xff0c;如python-docx&#xff0c;使我们能够轻松地进行文档创建、编辑和格式化等操作。本文将分享10个使用Python编写的Word自动化脚本&#xff0c;帮助新…

ROS VSCode调试方法

VSCode 调试 Ros文档 1.编译参数设置 cd catkin_ws catkin_make -DCMAKE_BUILD_TYPEDebug2.vscode 调试插件安装 可在扩展中安装(Ctrl Shift X): 1.ROS 2.C/C 3.C Intelliense 4.Msg Language Support 5.Txt Syntax 3.导入已有或者新建ROS工作空间 3.1 导入工作…

排序学习整理(1)

1.排序的概念及运用 1.1概念 排序&#xff1a;所谓排序&#xff0c;就是使⼀串记录&#xff0c;按照其中的某个或某些关键字的大小&#xff0c;递增或递减的排列起来的操作&#xff0c;以便更容易查找、组织或分析数据。 1.2运用 购物筛选排序 院校排名 1.3常见排序算法 2.实…