DetCLIPv3:面向多功能生成开放词汇的目标检测

DetCLIPv3:面向多功能生成开放词汇的目标检测

  • 摘要
  • Introduction
  • Related works
  • Method

DetCLIPv3: Towards Versatile Generative Open-vocabulary Object Detection

摘要

现有的开词汇目标检测器通常需要用户预设一组类别,这大大限制了它们的应用场景。在本文中,作者介绍了DetCLIPv3,这是一种高性能检测器,不仅在开词汇目标检测方面表现出色,同时还能为检测到的目标生成分层标签。

DetCLIPv3的特点有三个核心设计:

多功能的模型架构:作者导出一个健壮的开集检测框架,并通过集成字幕 Head 进一步赋予其生成能力。

高信息密度数据:作者开发了一个自动标注 Pipeline ,利用视觉大型语言模型来细化大规模图像-文本对中的字幕,为训练提供丰富、多粒度的目标标签以增强训练。

高效的训练策略:作者采用了一个预训练阶段,使用低分辨率输入,使目标字幕生成器能够从广泛的图像-文本配对数据中高效学习广泛的视觉概念。

在预训练之后是一个微调阶段,利用少量高分辨率样本进一步提高检测性能。借助这些有效的设计,DetCLIPv3展示了卓越的开词汇检测性能,例如,作者的Swin-T Backbone 模型在LVIS minival基准上取得了显著的47.0零样本固定AP,分别优于GLIPv2、GroundingDINO和DetCLIPv2 18.0/19.6/6.6 AP。DetCLIPv3在VG数据集上的密集字幕任务也取得了先进的19.7 AP,展示了其强大的生成能力。

Introduction

在开放词汇目标检测(OVD)领域的近期进展已经实现了识别和定位多种不同目标的能力。然而,这些模型在推理过程中依赖于预定义的目标类别列表,这限制了它们在实际场景中的应用。

与目前仅基于类别名称识别物体的开放词汇目标检测(OVD)方法相比,人类认知展现出了更多的灵活性。如图2所示,人类能够以层次化的方式,从不同的粒度理解物体。这种多级识别能力展示了人类丰富的视觉理解能力,这是现代OVD系统尚未达到的。
在这里插入图片描述
为了解决上述限制,作者引入了DetCLIPv3,这是一种新型的目标检测器,它扩展了开放词汇目标检测的范围。DetCLIPv3不仅能够根据提供的类别名称识别物体,还能够为每个检测到的物体生成层次化的标签。这一特性具有两个优点:1) 由于其卓越的生成能力,即使在没有适当的输入物体类别的情况下,检测器仍然适用;2) 模型能够提供关于物体的全面且分层的描述,而不仅仅是基于给定类别进行识别。具体来说,DetCLIPv3具有三个核心设计特点:

多功能的模型架构: DetCLIPv3基于一个健壮的开词汇(OV)检测器,并且进一步通过一个物体描述器增强了其生成能力。具体来说,物体描述器利用OV检测器提供的foreground proposals(前景 Proposal ),并通过语言建模训练目标来训练生成每个检测到的物体的分层标签。这种设计不仅允许精确的定位,还能提供视觉概念的详细描述,从而为视觉内容提供更丰富的解释。

高信息密度数据: 发展强大的生成能力需要丰富的训练数据,这些数据需充实了详细的物体 Level 描述。这样全面的数据库稀缺(例如,Visual Genome [25])成为了训练有效物体描述生成器的重大障碍。另一方面,尽管大规模的图像-文本配对数据很丰富,但它们缺乏对每个物体的细粒度标注。为了利用这些数据,作者设计了一个自动标注管线,利用最先进的视觉大型语言模型[7, 35],该模型能够提供包含丰富层次化物体标签的精细图像描述。通过这个管线,作者得到了一个大规模的数据集(称为GranuCap50M),以增强DetCLIPv3在检测和生成方面的能力。

高效的多阶段训练: 与高分辨率输入相关的目标检测训练成本高昂,这对从大量的图像-文本对中学习构成了重大障碍。为了解决这个问题,作者提出了一种高效的多阶段对齐训练策略。这种方法首先利用大规模、低分辨率的图像-文本数据集的知识,然后在高质量、细粒度、高分辨率的 数据上进行微调。这种方法确保了全面的视觉概念学习,同时保持了可管理的训练需求。

通过有效的设计,DetCLIPv3在检测和目标 Level 的生成能力上表现出色,例如,采用Swin-T Backbone 网络,在LVIS minival基准测试中取得了显著的47.0零样本固定AP[9],明显优于先前的模型如GLIPv2[65],DetCLIPv2[60]和GroundingDINO[36]。此外,它在密集字幕任务上达到18.4 mAP,比先前的SOTA方法GRiT[56]高出2.9 mAP。广泛的实验进一步证明了DetCLIPv3在领域泛化及下游迁移能力方面的优越性。

Related works

开放词汇目标检测。 近期在开放词汇目标检测(OVD)方面的进展使得可以识别无限范围类别的目标,如文献[16, 17, 57, 63, 69]所示。这些方法通过将预训练的视觉-语言模型,例如CLIP [46],整合到检测器中来实现OVD。另外,扩大检测训练数据集也显示出潜力[24, 29, 31, 36, 58, 60, 65, 70],这些方法结合了来自各种任务(如分类和视觉定位)的数据集。此外,伪标签已经作为增强训练数据集的另一种有效策略出现,如文献[15, 29, 43, 58, 68, 69]所示。然而,先前的OVD方法仍然需要一个预定义的目标类别进行检测,这限制了它们在多样化场景中的适用性。相比之下,作者的DetCLIPv3即使在没有类别名称的情况下也能够生成丰富的分层目标标签。

密集字幕生成。 密集字幕生成旨在为特定图像区域生成描述[23, 28, 30, 51, 61]。最近,CapDet [38] 和 GRiT [56] 都通过引入一个字幕生成器,为目标检测器配备了生成能力。然而,由于训练数据稀缺,例如 Visual Genome [25] 中包含的数据,它们只能为有限的视觉概念生成描述。相比之下,作者利用大规模图像-文本对中的丰富知识,使模型能够为更广泛的概念谱生成分层标签信息。

图像-文本对的重新描述。 近期研究 [5, 26, 44, 62] 强调了当前图像-文本对数据中存在的问题,并已表明重新描述的高质量图像-文本对可以显著提高各种视觉任务的学习效率,例如文本到图像生成 [5, 44],图像-文本检索 [26, 27] 和图像标注 [26, 62]。作者将这一想法扩展到开放词汇目标检测,并探索如何有效地利用图像-文本对中包含的目标实体信息。

Method

在本节中,作者介绍了DetCLIPv3的核心设计,包括:(1)模型架构(第3.1节)—阐述作者的模型如何实现开词汇目标检测及生成目标描述;(2)自动标注数据流程(第3.2节)—详细说明作者策划大规模、高质量的图像-文本对的方法,涵盖不同粒度层面的目标信息;(3)训练策略(第3.3节)—概述作者如何有效地利用大规模图像-文本数据集来促进目标概念的生成,进而提升开词汇检测的能力。

Model Design
图3展示了DetCLIPv3的整体框架。本质上,该模型基于一个强大的开放词汇目标检测器,并配备了一个专门用于生成分层和描述性目标概念的目标标题生成器。该模型能够在两种模式下运行:1) 当提供一个预定义的类别词汇表时,DetCLIPv3预测列表中提到的物体的定位;2) 在没有词汇表的情况下,DetCLIPv3能够定位物体并为每一个物体生成分层描述。
在这里插入图片描述
数据制定。DetCLIPv3的训练利用了来自多个来源的数据集,包括检测[50,55]、定位[24]以及图像-文本对[4,48,52,53],并带有边界框伪标签(具体见第3.2节)。与
DetCLIPv1/v2[58,60]一样,作者采用一种_平行制定_方法将来自不同数据源的文本输入统一为一种标准格式。具体来说,每个输入样本结构化为一个三元组,(a, {bi}A1,vg,),其中
a ∈ R3×H×W是输入图像,{b./b; ∈R*}言,表示一组边界框,而gg,则表示一组概念文本,包括正负概念。
对于检测数据,y;包括类别名称及其定义((如〔58, 60〕中所述),适用于训练和测试阶段。负概念是从数据集中的类别中抽取的。对于接地(grounding)和图像-文本对数据,正概念是目标描述,而负概念则从大规模名词语料库中抽取(具体见第3.2节)。在训练期间,为了增加负概念的数量,作者从所有训练节点收集它们,并执行去重处理。
开放词汇检测器。作者提出了一种紧凑但功能强大的检测器架构,用于DetCLIPv3,如图3中红色框所示。具体来说,它是一个双路径模型,包括一个视觉目标检测器重。和一个文本编码器重。视觉目标检测器采用基于Transformer的检测架构[3, 66,71],由一个 Backbone网络、一个像素编码器和一个目标解码器组成。Backbone网络和像素编码器负责提取视觉特征,进行细粒度特征融合,并为解码器提出候选目标Query 。类似于GroundingDINo [36],作者利用文本特征根据相似性选择前k个像素特征,并后来使用它们的坐标预测来初始化解码器目标Query 的位置部分。然而,与众不同的是,作者放弃了在[36]中设计的计算密集型跨模态融合模块。遵循先前的DETR-1ike检测器[3, 66,71],作者的训练损失由三个组成部分构成:Ldet =Laligm + Lior +Liou,其中 Lalim是区域视觉特征与文本概念之间的对比焦损失[34],而Lbo和Liou 分别是L1损失和GIOU[47]损失。为了提升性能,在解码器的每一层以及编码器的输出上采用了辅助损失。
目标描述器在DetCLIPV3中的作用是生成详细和分层的标签,使其能够对物体进行更准确的描述。为了获得丰富的图像-文本对知识,作者结合了图像级字幕目标,增强了生成能力。目标描述器的设计受到Qformer的启发,采用了基于多模态Transformer的架构,其中交叉注意力层被替换为定制的可变形注意力。描述器的输入包括视觉Query和文本标记,它们通过交叉注意力与自注意力层和FFN层交互。同时,采用了多模态因果自注意力Mask来控制不同模态之间的交互。

在目标级生成中,目标Query和可变形交叉注意力所需的参考点来自目标解码器最终层的输出。训练期间,使用与Ground Truth相匹配的正Query来计算损失。在推理过程中,为了生成前景Proposal,选择前k个候选目标Query,然后重新校准其目标性得分,并计算目标Query与生成的短语和类别字段之间的相似性。

在图像级生成中,初始化了32个可学习的图像Query,并使用一组固定的参考点。输入结构包括图像Query、图像任务标记和文本。推理过程与训练是一致的。
Dataset Construction
自动标注数据 Pipeline 。利用大量成本效益高的图像-文本对进行视觉概念学习,对于提高开放词汇目标检测器的一般化能力至关重要。然而,现有的图像-文本对数据集存在重大缺陷,这些缺陷阻碍了它们在OVD中的实用性,如图4所示:(1) 错位:互联网来源的图像-文本对数据经常包含大量噪声。即使使用CLIP [46]基于分数的过滤[48, 49],许多文本仍然无法准确描述图像的内容,如图4的第二和第三张图像所示。(2) 部分标注:大部分文本只描述图像中的主要目标,导致目标信息稀疏,因此,损害了OVD系统的学习效率,如图1所示。(3) 实体提取挑战:先前的工作[24, 32, 43, 60]主要使用传统的NLP解析器,如NLTK [1, 42]或SpaCy [21],从图像-文本对中提取名词概念。它们的有限能力可能导致名词与图像内容对齐不良,如图4的第二行所示。这种不匹配为后续的学习过程或伪标签工作流程带来了进一步的复杂性。在这里插入图片描述
在这里插入图片描述
一个理想的图像-文本对数据集对于视觉描述(OVD)应当包含对图像的准确和全面的描述,提供从详细到粗略不同粒度 Level 的图像中目标的信息。基于这种启发,作者 Proposal 使用视觉大型语言模型(VLLM)[7, 35]来开发一个自动标注流水线,以提高数据质量。VLLM具有感知图像内容的能力,以及强大的语言技能,使它们能够生成精确和详细的标题以及目标描述。

使用VLLM重制标题:作者从常用的数据集[4, 52, 53]中抽取了24万张图像-文本对,并使用InstructBLIP [7]模型进行了重制标题。为了利用原始标题中的信息,作者将其融入作者的提示设计中,结构如下:“给定图像的一个含噪声的标题:{原始标题},撰写一幅图像的详细清晰描述。”。这种方法有效地提升了标题文本的质量,同时保持了原始标题中名词概念的多样性。

使用GPT-4的实体提取:作者利用GPT-4[45]卓越的语言能力来处理精致标题中的实体信息。具体来说,首先用它过滤掉VLLM生成的标题中非实体的描述,比如对图像的氛围或艺术性解读。随后,它负责从标题中提取出现的物体实体。每个实体都被格式化为一个三元组:{短语,类别,父类别},分别表示物体描述在三个不同粒度 Level 上。

对VLLM进行大规模标注的指令调整:考虑到GPT-4 API的高昂成本,将其用于大规模数据集生成是不切实际的。作为一种解决方案,作者在LLaVA [35]模型上执行进一步的指令调整阶段,利用之前步骤获得的改进的标题和目标实体。然后,这个微调后的模型被用来为包含200M图像-文本对的大型数据集生成标题和实体信息,这些样本取自CC15M [4, 52],YFCC[53] 和 LAION [48]。

边界框自动标记:为了自动推导出图像-文本配对数据中的边界框标注,作者应用一个预训练的开词汇目标检测器(第3.3节)来分配伪边界框标签,给定从前一步骤中得出的目标实体。当提供来自VLLM的准确候选目标实体时,检测器的准确性可以大大提高。具体来说,作者将 ‘短语’ 和 ‘类别’ 字段作为检测器的文本输入,并使用预定义的分数阈值来过滤结果边界框。如果这两个字段中的任何一个匹配,作者会为该目标分配整个实体 {短语, 类别, 父类别}。在使用预定义的置信度阈值过滤后,大约有5000万个数据被采样用于后续训练,作者将其称为 GranuCap50M。在训练检测器时,作者使用 ‘短语’ 和 ‘类别’ 字段作为文本标签;而在训练目标描述器时,作者将三个字段 - ‘短语’ 类别’ 父类别’ - 连接起来,作为目标的 GT 描述。

无概念语料库。 与DetCLIP [58]相似,作者利用提取的目标实体的信息开发了一个名词概念语料库。这个语料库主要旨在为GT和图像-文本对数据(第3.1节)提供负概念。具体来说,作者从20亿个重新配文的数据中收集实体的_‘category’_字段。在频率分析之后,总频率低于10的概念被省略。DetCLIPv3的名词概念语料库由792k名词概念组成,几乎是DetCLIP中构建的14k概念的57倍扩展。

Multi-stage Training Scheme
学习生成多样化的物体描述需要在大型数据集上进行广泛的训练。然而,像目标检测这样的密集预测任务需要高分辨率输入才能有效处理不同物体之间的尺度变化。这大大提高了计算成本,给扩大训练规模带来了挑战。为了缓解这个问题,作者开发了一个基于“预训练+微调”范式的训练策略来优化训练成本,具体来说,它包括以下3个步骤:

训练OV检测器(第一阶段):在初始阶段,作者用标注的数据集来训练OV检测器,即Objects365 [50],V3Det[55]和GoldG [24]。为了使模型在后续训练阶段能够从低分辨率输入中学习,作者对训练数据应用了大规模抖动增强。此外,在这一阶段开发的具有Swin-L Backbone 网络的模型被用来为图像-文本对生成伪边界框,具体如第3.2节所述。

预训练目标描述生成器(阶段2):为了使目标描述生成器能够生成多样化的目标描述,作者使用GranuCap50M对其进行预训练。为了提高这个训练阶段的效率,作者冻结了OV检测器所有的参数,包括 Backbone 网络、像素编码器和目标解码器,并采用了较低的输入分辨率320×320。这种策略使得描述生成器能够从大规模的图像-文本对中有效地获取视觉概念知识。

整体微调(阶段3):这一阶段旨在使字幕生成器适应高分辨率输入,同时提高 OV 检测器的性能。具体来说,作者从 GranuCap50M 中均匀抽取了60万个样本。这些样本以及检测和定位数据集一起用来进一步微调模型。在此阶段,释放所有参数以最大化有效性,训练目标设置为检测和字幕生成损失的组合。字幕生成器的监督仅来自使用作者的自动标注 Pipeline 构建的数据集,而所有数据都用于 OV 检测器的训练。由于检测器和字幕生成器都已进行预训练,因此模型可以在几个周期内有效适应。

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

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

相关文章

07 常用工具集

本课时主要介绍常用的工具,将会讲解三个知识点: JVM 相关工具的作用和适用场景; Git 常用命令和工作流; Linux 系统中常用分析工具。 常用工具汇总 常用工具汇总如下图所示。 说明:这里列出的都是一些相对独立的工…

Edge视频增强功能

edge://flags/#edge-video-super-resolution 搜索Video查找 Microsoft Video Super Resolution 设置为Enabled

Linux操作系统中管理磁盘的另外一种操作方式。即LVM——逻辑卷管理操作

在Linux操作系统中管理磁盘的一种方法名称——LVM,这种管理磁盘的优势。 1.使用LVM去管理磁盘可以在不影响原来数据的前提下去扩容磁盘空间或者是缩减磁盘空间。 在LVM中除了上层逻辑券可以扩容,下层的券组也可以扩容。 2.使用LVM管理的磁盘支持快照功…

TriCore: 从RTOS内核的角度看CSA

今天尝试从RTOS内核的角度来看看 TriCore 的 CSA。 CSA的细节信息可以参考前一篇文章 TriCore User Manual 笔记 1-CSDN博客 CSA 的全称是 Context Save Area,顾名思义就是专门用来保存上下文的一块存储区域。 既然是上下文使用,那必然要求低延迟&…

【Leetcode每日一题】 分治 - 交易逆序对的总数(难度⭐⭐⭐)(74)

1. 题目解析 题目链接:LCR 170. 交易逆序对的总数 这个问题的理解其实相当简单,只需看一下示例,基本就能明白其含义了。 2.算法原理 归并排序的基本思路 归并排序将数组从中间分成两部分,在排序的过程中,逆序对的来…

民航电子数据库:在console或服务器登录数据库

目录 前言登录切换数据库 前言 在不使用数据库管理工具的情况下,可以在console或服务器上操作数据库,这时就需要使用相关命令登录到数据库 登录 caeconsole nssl IP地址 端口 数据库名称 用户名 密码 切换数据库 use 数据库名称

springboot+vue+mybatis警情高发智能灯箱+PPT+论文+讲解+售后

时代在飞速进步,每个行业都在努力发展现在先进技术,通过这些先进的技术来提高自己的水平和优势,警情高发智能灯箱当然不能排除在外。警情高发智能灯箱是在实际应用和软件工程的开发原理之上,运用微信开发者、java语言以及SpringBo…

拦截器添加以及注册

自定义拦截器 自定义一个类 实现 HandlerInterceptor 接口 并重写里面的方法 preHandle、postHandle、afterCompletion preHandle:在执行具体的Controller方法之前调用 postHandle:controller执行完毕之后被调用 afterCompletion:方法需要…

关于FreeRTOS/Nuttx/Zephyr对于用户态程序实现的对比

前言: 现在很多单片机有MPU。比如STM32F4 F7 H7等以ARM CM3 CM4 CM为架构的单片机。那么现在很多RTOS都支持MPU配置,利用MPU实现用户态程序和内核态程序隔离。 从用户产品经理角度出发,作为RTOS的使用者,以一个简单的商业例子来…

区块链 | NFT 水印:Review on Watermarking Techniques(三)

🍍原文:Review on Watermarking Techniques Aiming Authentication of Digital Image Artistic Works Minted as NFTs into Blockchains 一个 NFT 的水印认证协议 可以引入第三方实体来实现对交易的认证,即通过使用 R S A \mathsf{RSA} RSA…

喜报|知从科技荣获“2023年度浦东新区创新创业奖”

4月11日,由上海市浦东新区人民政府举办的“2024年浦东新区经济突出贡献企业表彰活动”在上海国际会议中心隆重举行。知从科技凭借过去一年在行业内卓越的技术创新实力及对浦东新区发展作出的杰出贡献,入选创新创业20强企业,荣获“2023年度浦东…

Coze扣子开发指南:用免费API自己创建插件

虽然Coze扣子现在插件商店已经有几百个插件了,但相对于海量人群的众多差异化需求,还是远远不够的。如果插件商店没有合适的插件,其实完成可以自己创建,过程也很简单,不需要编写任何代码。 首先打开个人空间&#xff0…

python:做柱状图

import matplotlib.pyplot as plt # 数据 categories [A, B, C, D] values [23, 45, 56, 78] # 创建柱状图 plt.bar(categories, values) # 添加标题和标签 plt.title(柱状图示例) plt.xlabel(类别) plt.ylabel(数值) # 显示图形 plt.show() D:\software\新建文件夹\python\L…

elementui- button按钮自适应大小

<el-button type"primary" class"daochu" click"download">导出</el-button> .daochu {width: calc(100vw * 80 / 1920);height: calc(100vw * 30 / 1920);font-size: calc(100vw * 13 / 1920); } 效果图&#xff1a;

顺序表详解及应用(通讯录的实现)

一.线性表 线性表&#xff1a;n个具有相同特性的的数据元素的有限序列。线性表是一种在实际中广泛应用的数据结构&#xff0c;常见的线性表&#xff1a;顺序表&#xff0c;链表&#xff0c;栈&#xff0c;队列&#xff0c;字符串... 线性表在逻辑上是线性结构&#xff0c;也就…

一、计算机基础(Java零基础一)

&#x1f33b;&#x1f33b;目录 一、&#x1f33b;&#x1f33b;剖析学习Java前的疑问&#x1f33b;&#x1f33b;1.1 零基础学习编程1.2 英语不好能学吗&#xff1f;1.3 理解慢能学好吗&#xff1f;1.4 现在学Java晚吗&#xff1f;1.5 Java 和 Python 还有 Go 的选择1.6 Java…

Rust 使用egui创建一个简单的下载器demo

仓库连接: https://github.com/GaN601/egui-demo-download-util 这是我第一个rust gui demo, 学习rust有挺长时间了, 但是一直没有落实到实践中, 本着对桌面应用的兴趣, 考察了slint、egui两种框架, 最后还是选择了egui. 这篇博客同时包含我当前的一些理解, 但是自身技术有限,…

ESP8266基础资源了解

封装的硬件资源 参考1&#xff0c;参考2 常说的esp8266指的是有一个屏蔽罩盖着的模块&#xff0c;里面包含了esp8266芯片和一个能够存储数据和程序的flash&#xff0c;因为esp8266没有存储功能。 使用arduino常用的nodemcu是包含这个模块并含有电源LDO和串口下载的设计电路如…

WINDOWS下zookeeper突然无法启动但是端口未占用的解决办法(用了WSL)

windows下用着用着时候突然zookeeper启动不了了。netstat查也没有找到端口占用&#xff0c;就是起不来。控制台报错 java.lang.reflect.UndeclaredThrowableException: nullat org.springframework.util.ReflectionUtils.rethrowRuntimeException(ReflectionUtils.java:147) ~…

铁山靠之数学建模 - Matlab入门

Matlab基础 1. Matlab界面与基本操作1.1 matlab帮助系统1.2 matlab命令1.3 matlab功能符号1.4 matlab的数据类型1.5 函数计算1.6 matlab向量1.7 matlab多项式1.8 M文件1.9 函数文件1.10 matlab的程序结构1.11 echo、warning和error函数1.12 交互输入1.13 程序调试1.14 设置断点…
最新文章