当前位置: 首页 > news >正文

MQ-Det: Multi-modal Queried Object Detection in the Wild

在这里插入图片描述
首个支持视觉和文本查询的开放集目标检测方法
NeurIPS2023
文章:https://arxiv.org/abs/2305.18980
代码:https://github.com/YifanXu74/MQ-Det

主框图

在这里插入图片描述
在这里插入图片描述

摘要

这篇文章提出了MQ-Det,一种高效的架构和预训练策略,它利用文本描述的开放集泛化能力和视觉示例的丰富描述粒度作为类别查询,即多模态查询目标检测。MQ-Det将视觉查询融入现有的仅基于语言查询的检测器。文章提出了一个即插即用的门控类可扩展感知器(GCP)模块,用于在冻结检测器上增强类别文本与类别相关的视觉信息。为了解决由于冻结检测器带来的学习惯性问题,提出了一种视觉条件的掩码语言预测策略。MQ-Det的简单而有效的架构和训练策略与大多数基于语言查询的目标检测器兼容,从而实现多种应用。实验结果表明,多模态查询大大提高了开放世界检测的性能。例如,MQ-Det在LVIS基准测试中显著提高了最先进的开放集检测器GLIP的性能,无需任何下游微调,相较于GLIP提高了7.8%的AP。在13个少样本下游任务中,MQ-Det平均提高了6.3%的AP,而GLIP仅需额外增加3%的调制时间。

引言

近年来,随着大规模视觉语言预训练模型的兴起,目标检测领域已经进入了一个全新的范式,即使用查询文本进行目标定位。受益于预训练模型在大规模数据上的泛化能力,这种文本查询范式在通向开放集目标检测的道路上取得了稳定的进步。

与传统的固定类别集合(通常由有限数量的数字表示)相比,文本查询可以表示更广泛的概念,但也存在描述粒度不足的内在限制。例如,类别同义词(如“bat"可以表示木头制作的球棒,也可以表示一种动物)会导致模糊的查询。与此同时,对于一些细粒度的类别(如图1所示的鱼类品种检测),仅使用有限的文本很难描述鱼类的具体模式。显然,解决文本查询描述粒度不足问题的一个直接方案是设计额外的文本描述,但这存在三个明显障碍:
1)很难全面描述视觉细节。为大量类别编写文本描述是一项繁琐的工作。
2)较长的查询文本会增加预训练模型的理解难度。
3)带来更多的计算开销。

最先进的文本查询检测器GLIP即使为一些类别设计了额外的文本描述,也只能在Aquarium数据集上将平均精度(AP)从17.7%提高到18.4%。与文本相比,图像可以提供更丰富的视觉线索。但同时,人工生成的文本具有更高的信息密度,因此具有更强的泛化能力。鉴于此,一个自然的想法是将文本和图像结合起来,构成多模态查询,兼具前者的广度和后者的丰富粒度。然而,如何获得这样的多模态查询检测模型仍面临挑战:
1)直接使用有限的视觉示例进行微调会导致灾难性遗忘。
2)大规模基础模型具有良好的泛化能力,但如果重新组织和从头训练,需要承担繁重的训练负担(例如,GLIP需要超过3000万的数据存储和近480个V100 GPU天的训练时间)。

本文填补了多模态查询目标检测(MQ-Det)的空白,提出了一种高效的插件式训练架构。MQ-Det的核心思想是融合描述丰富的视觉线索和具有很强泛化能力的文本表示,同时只需在现有基于语言查询的目标检测基础模型的基础上增加很小的训练成本。作者在Objects365数据集上对模型进行微调,仅占用GLIP预训练时间的3%,就能在LVIS基准测试中通过提供5个视觉示例和文本类别描述,将微调-free的性能显著提高7.8%。

为了实现这一目标,作者提出了一个即插即用的Gated Class-scalable Perceiver (GCP)模块,用于在文本编码器的每个高级阶段动态融合信息丰富的视觉线索和高度泛化的语言线索。另外,作者还设计了一种视觉条件的掩码语言预测策略,以确保在冻结检测模型的基础上进行足够的多模态融合。作者观察到,在将视觉线索以门控残差的方式加入时,学习过程往往会陷入初始优化点附近的局部最优,而无法引入足够的视觉知识。因此,作者随机mask文本tokens,让对应的视觉查询独立地进行目标预测。作者冻结初始的检测基础模型,只训练调制阶段的GCP模块,这非常高效。

综上,本文的贡献如下:
1)首个引入既具有广度又具有丰富粒度的多模态查询的工作,为开放集目标检测开辟了一条新路。
2)提出了一个即插即用的GCP模块,用于动态融合多模态查询中信息丰富的视觉线索和高度泛化的语言线索,并采用视觉条件的掩码语言预测策略,在冻结检测模型的基础上实现充分的多模态融合。
3)MQ-Det在finetune-free和few-shot场景下展现出强大的迁移能力,而所需的训练时间远少于之前的最先进基础检测器。具体来说,MQ-Det在具有挑战性的LVIS基准测试中,相比GLIP提高了7.8%的AP,在13个下游few-shot检测任务[23]中平均提高了6.3%的AP,而调制过程仅占用了GLIP所需训练时间的3%。

方法

Gated Class-scalable Perceiver(GCP)

在第2.2节中,作者提出了一种名为Gated Class-scalable Perceiver(GCP)的即插即用架构,用于将视觉查询融入预训练的语言查询目标检测模型。具体来说,GCP模块被设计插入到文本编码器的每个高级阶段之间,以动态融合来自视觉查询的类相关视觉信息。
GCP模块包含以下两个关键组件:
1)类相关的交叉注意力层:每个类别的文本查询令牌独立地与对应的视觉查询进行交叉注意力计算,以获取丰富的视觉细节。这种设计没有类别特定的参数,可以扩展到不同粒度的类别。2)门控层:根据视觉查询的质量,动态调整交叉注意力产生的增强视觉特征的权重。这通过一个MLP层实现,它将交叉注意力的结果和文本查询令牌作为输入,产生一个标量门控值。门控值初始化为0,这样在训练开始时,输出与预训练文本编码器匹配,有助于训练稳定性和最终性能。
通过在文本编码器中以残差方式加入GCP模块的输出,该模块可以无缝地融合视觉和语言查询。由于GCP没有类别特定的参数,它可以很容易地应用于各种预训练的语言查询目标检测模型,如GLIP和GroundingDINO。此外,GCP允许模型在推理时泛化到任何数量的类和视觉查询,增强了通用性。总的来说,这种即插即用的GCP架构为有效地将视觉查询融入语言查询目标检测模型提供了一个简单而有效的设计。它为多模态查询目标检测提供了坚实的基础。

Modulated pre-training

在第2.3节中,作者提出了一种调制预训练的策略,通过在大规模图像文本数据集上进行额外的训练,将视觉查询融入预训练的语言查询目标检测模型。具体来说,调制预训练包含以下步骤:
1)提取视觉查询:从包含视觉实例的大型数据集(D)中提取视觉查询。每个类别的查询数远多于最终使用的查询数(k)。
2)在冻结的检测器上训练GCP模块:只训练新加入的GCP模块,而冻结预训练的语言查询目标检测模型(如GLIP)。这大大减少了训练时间。
3)视觉条件的掩码语言预测:为了解决仅依赖文本特征导致的学习惯性问题,提出了一种视觉条件的掩码语言预测策略。随机mask文本tokens,让模型从视觉查询中提取信息进行预测。这确保了视觉查询在训练中的充分参与。

微调

在调制预训练之后,可以对模型进行微调,以适应下游任务。由于GCP模块是即插即用的,微调也可以只针对GCP模块进行,而保持预训练模型的其他部分冻结。这只需要很少的计算资源。通过这种调制预训练策略,模型可以接受文本和视觉查询作为输入,实现多模态目标检测,而只需在预训练模型上增加很小的训练成本。实验结果表明,这种策略在finetune-free和few-shot场景下都取得了显著的性能提升。它使模型能够利用语言查询的泛化能力和视觉查询的丰富粒度。

结果

zero-shot结果

在这里插入图片描述

few-shot结果

在这里插入图片描述

消融结果

在这里插入图片描述

其他结果

在这里插入图片描述

相关文章:

MQ-Det: Multi-modal Queried Object Detection in the Wild

首个支持视觉和文本查询的开放集目标检测方法 NeurIPS2023 文章:https://arxiv.org/abs/2305.18980 代码:https://github.com/YifanXu74/MQ-Det 主框图 摘要 这篇文章提出了MQ-Det,一种高效的架构和预训练策略,它利用文本描述的…...

HarmonyOS应用开发初体验

9月25日华为秋季全场景新品发布会上,余承东宣布,全面启动鸿蒙原生应用,HarmonyOS NEXT开发者预览版将在2024年第一季度面向开发者开放。 最近鸿蒙开发可谓是火得一塌糊涂,各大培训平台都开设了鸿蒙开发课程。美团发布了鸿蒙高级工…...

《C++新经典设计模式》之第4章 策略模式

《C新经典设计模式》之第4章 策略模式 策略模式.cpp 策略模式.cpp #include <iostream> #include <memory> using namespace std;// if或switch分支不稳定&#xff0c;经常改动时&#xff0c;考虑引入算法独立到策略类中去实现// 依赖倒置原则 // 高层组件不应该依…...

【方法】PowerPoint“只读方式”如何取消?

PPT设置了以“只读方式”打开&#xff0c;可以保护文件无法编辑更改&#xff0c;那后续不需要保护了&#xff0c;或者想要编辑文件&#xff0c;要如何取消“只读方式”呢&#xff1f; 首先&#xff0c;我们要看看PPT设置的是哪种“只读方式”。 如果PPT设置的是无密码“只读方…...

MySQL数据库概念与实践

MySQL数据库概念与实践 1. 概念 MySQL是一种常用的关系型数据库管理系统&#xff0c;具有丰富的功能和广泛的应用。在本篇博客中&#xff0c;我们将介绍MySQL数据库的一些重要概念和相关知识。 存储引擎 存储引擎是MySQL数据库用于存储、更新和查询数据的技术实现方法。MyS…...

【ArcGIS Pro微课1000例】0052:基于SQL Server创建企业级地理数据库案例

文章目录 环境搭建创建企业级数据库连接企业级数据库环境搭建 ArcGIS:ArcGIS Pro 3.0.1Server.ecp:版本为10.7SQL Server:版本为SQL Server Developer 2019创建企业级数据库 企业级地理数据库的创建需要通过工具箱来实现。工具位于:数据管理工具→地理数据库管理→创建企业…...

深度学习——第3章 Python程序设计语言(3.7 matplotlib库)

3.7 matplotlib库 目录 1 matplotlib库简介 2 pyplot的plot函数 3 matplotlib基础绘图函数示例 数据可视化有助于深度理解数据。 本节介绍绘制图形的基本方法。 1. matplotlib库简介 matplotlib官网 1.1 matplotlib库概述 matplotlib是Python优秀的数据可视化第三方库&a…...

【数据分析实战】酒店行业华住集团门店分布与评分多维度分析

文章目录 1. 写在前面2. 数据集展示3. 多维度分析3.1 门店档次多元化&#xff1a;集团投资战略观察3.1.1 代码实现3.1.2 本人浅薄理解 3.2 门店分布&#xff1a;各省市分布概览3.2.1 代码实现3.2.2 本人浅薄理解 3.3 门店分级评分&#xff1a;服务水平的多维度观察3.3.1 代码实…...

近期Chrome浏览器 不知哪个版本升级后原先http强制跳转到https,导致服务端302强制跳转到http也没反应

关于Chrome更新http强制跳转到https解决方法 近期Chrome浏览器 不知哪个版本升级后原先http强制跳转到https&#xff0c;导致服务端302强制跳转到http也没反应一、F12检查加载的Response Headers中有没有Non-Authoritative-Reason二、找了资料后得到解决方案&#xff1a;三、找…...

【scikit-learn基础】--『数据加载』之样本生成器

除了内置的数据集&#xff0c;scikit-learn还提供了随机样本的生成器。通过这些生成器函数&#xff0c;可以生成具有特定特性和分布的随机数据集&#xff0c;以帮助进行机器学习算法的研究、测试和比较。 目前&#xff0c;scikit-learn库&#xff08;v1.3.0版&#xff09;中有2…...

基于 ESP32-S3 的 Walter 开发板

Walter 是一款基于 ESP32-S3 且拥有 5G LTE 连接功能的新型开源开发套件。 近日&#xff0c;比利时公司 DPTechnics BV 推出了一款基于乐鑫 ESP32-S3 且拥有 5G LTE 连接功能的新型开源开发套件。该套件即将在 Crowd Supply 平台上发布&#xff0c;您可以点击此处了解详情。 无…...

Gitlab+GitlabRunner搭建CICD自动化流水线将应用部署上Kubernetes

文章目录 安装Gitlab服务器准备安装版本安装依赖和暴露端口安装Gitlab修改Gitlab配置文件访问Gitlab 安装Gitlab Runner服务器准备安装版本安装依赖安装Gitlab Runner安装打包工具安装docker安装java17安装maven 注册Gitlab Runner 搭建自动化部署准备SpringBoot项目添加一个Co…...

待做-待补充-每个节点做事,时间,以及与角度的关系

文章目录 纲领1.是否可以通过遍历一遍二叉树得到答案2.是否可以通过两颗子树相同问题的答案推导出树的答案(形式为递归)无论哪种思维模式&#xff0c;都需要思考:单独一个二叉树节点&#xff0c;它需要做什么事情&#xff1f;需要在什么时候做 后序判断问题是否和子树相关&…...

液态二氧化碳储存罐远程无线监测系统

二氧化碳强化石油开采技术&#xff0c;须先深入了解石油储层的地质特征和二氧化碳的作用机制。现场有8辆二氧化碳罐装车&#xff0c;每辆罐车上有4台液态二氧化碳储罐&#xff0c;每台罐的尾部都装有一台西门子S7-200 smart PLC。在注入二氧化碳的过程中&#xff0c;中控室S7-1…...

kafka学习笔记--安装部署、简单操作

本文内容来自尚硅谷B站公开教学视频&#xff0c;仅做个人总结、学习、复习使用&#xff0c;任何对此文章的引用&#xff0c;应当说明源出处为尚硅谷&#xff0c;不得用于商业用途。 如有侵权、联系速删 视频教程链接&#xff1a;【尚硅谷】Kafka3.x教程&#xff08;从入门到调优…...

UE4 材质实现Glitch效果

材质实现Glitch效果 UE4 材质实现Glitch效果预览1预览2 UE4 材质实现Glitch效果 预览1 添加材质函数&#xff1a; MF_RandomNoise 添加材质&#xff1a; 预览2 添加材质函数MF_CustomPanner&#xff1a; 添加材质函数&#xff1a;MF_Glitch 材质添加&#xff1a; 下面用…...

oracle实验2023-12-8--触发器

第十四周实验 【例】功能要求&#xff1a;增加一新表XS_1&#xff0c;表结构和表XS相同&#xff0c;用来存放从XS表中删除的记录。 分析: 1、创建表 xs_1 SQL> create table xs_1 as select * from xs; Table created SQL> truncate table xs_1; Table truncated题目&a…...

【Python百宝箱】贝叶斯统计的魅力:从PyMC3到ArviZ,探索数据背后的不确定性

标题&#xff1a;预测未来趋势的利器&#xff1a;深入贝叶斯统计和概率编程的世界 前言 贝叶斯统计和概率编程是一种强大的分析方法&#xff0c;可以帮助我们处理不确定性、建立灵活的模型以及进行参数估计和推断。本文将介绍几个常用的Python库&#xff0c;包括PyMC3、ArviZ…...

Knowledge Graph知识图谱—8. Web Ontology Language (OWL)

8. Web Ontology Language (OWL) 在RDFs不可能实现&#xff1a; Property cardinalities, Functional properties, Class disjointness, we cannot produce contradictions, circumvent the Non Unique Naming Assumption, circumvent the Open World Assumption 8.1 OWL Tr…...

排序算法——冒泡排序

排序算法是计算机科学中最基本的概念之一。在众多排序算法中&#xff0c;冒泡排序因其实现简单而被广泛学习。尽管它不是最高效的排序方法&#xff0c;但对于理解基本的排序概念非常有用。本文将深入探讨冒泡排序的原理、实现、优缺点以及应用场景。 1. 冒泡排序原理 冒泡排序…...

Python爬虫实战:研究feedparser库相关技术

1. 引言 1.1 研究背景与意义 在当今信息爆炸的时代,互联网上存在着海量的信息资源。RSS(Really Simple Syndication)作为一种标准化的信息聚合技术,被广泛用于网站内容的发布和订阅。通过 RSS,用户可以方便地获取网站更新的内容,而无需频繁访问各个网站。 然而,互联网…...

镜像里切换为普通用户

如果你登录远程虚拟机默认就是 root 用户&#xff0c;但你不希望用 root 权限运行 ns-3&#xff08;这是对的&#xff0c;ns3 工具会拒绝 root&#xff09;&#xff0c;你可以按以下方法创建一个 非 root 用户账号 并切换到它运行 ns-3。 一次性解决方案&#xff1a;创建非 roo…...

GitHub 趋势日报 (2025年06月08日)

&#x1f4ca; 由 TrendForge 系统生成 | &#x1f310; https://trendforge.devlive.org/ &#x1f310; 本日报中的项目描述已自动翻译为中文 &#x1f4c8; 今日获星趋势图 今日获星趋势图 884 cognee 566 dify 414 HumanSystemOptimization 414 omni-tools 321 note-gen …...

BCS 2025|百度副总裁陈洋:智能体在安全领域的应用实践

6月5日&#xff0c;2025全球数字经济大会数字安全主论坛暨北京网络安全大会在国家会议中心隆重开幕。百度副总裁陈洋受邀出席&#xff0c;并作《智能体在安全领域的应用实践》主题演讲&#xff0c;分享了在智能体在安全领域的突破性实践。他指出&#xff0c;百度通过将安全能力…...

深入解析C++中的extern关键字:跨文件共享变量与函数的终极指南

&#x1f680; C extern 关键字深度解析&#xff1a;跨文件编程的终极指南 &#x1f4c5; 更新时间&#xff1a;2025年6月5日 &#x1f3f7;️ 标签&#xff1a;C | extern关键字 | 多文件编程 | 链接与声明 | 现代C 文章目录 前言&#x1f525;一、extern 是什么&#xff1f;&…...

3-11单元格区域边界定位(End属性)学习笔记

返回一个Range 对象&#xff0c;只读。该对象代表包含源区域的区域上端下端左端右端的最后一个单元格。等同于按键 End 向上键(End(xlUp))、End向下键(End(xlDown))、End向左键(End(xlToLeft)End向右键(End(xlToRight)) 注意&#xff1a;它移动的位置必须是相连的有内容的单元格…...

有限自动机到正规文法转换器v1.0

1 项目简介 这是一个功能强大的有限自动机&#xff08;Finite Automaton, FA&#xff09;到正规文法&#xff08;Regular Grammar&#xff09;转换器&#xff0c;它配备了一个直观且完整的图形用户界面&#xff0c;使用户能够轻松地进行操作和观察。该程序基于编译原理中的经典…...

Python ROS2【机器人中间件框架】 简介

销量过万TEEIS德国护膝夏天用薄款 优惠券冠生园 百花蜂蜜428g 挤压瓶纯蜂蜜巨奇严选 鞋子除臭剂360ml 多芬身体磨砂膏280g健70%-75%酒精消毒棉片湿巾1418cm 80片/袋3袋大包清洁食品用消毒 优惠券AIMORNY52朵红玫瑰永生香皂花同城配送非鲜花七夕情人节生日礼物送女友 热卖妙洁棉…...

Go 并发编程基础:通道(Channel)的使用

在 Go 中&#xff0c;Channel 是 Goroutine 之间通信的核心机制。它提供了一个线程安全的通信方式&#xff0c;用于在多个 Goroutine 之间传递数据&#xff0c;从而实现高效的并发编程。 本章将介绍 Channel 的基本概念、用法、缓冲、关闭机制以及 select 的使用。 一、Channel…...

【从零学习JVM|第三篇】类的生命周期(高频面试题)

前言&#xff1a; 在Java编程中&#xff0c;类的生命周期是指类从被加载到内存中开始&#xff0c;到被卸载出内存为止的整个过程。了解类的生命周期对于理解Java程序的运行机制以及性能优化非常重要。本文会深入探寻类的生命周期&#xff0c;让读者对此有深刻印象。 目录 ​…...