论文阅读笔记:T-Rex2: Towards Generic Object Detection via Text-Visual Prompt Synergy

论文阅读笔记:T-Rex2: Towards Generic Object Detection via Text-Visual Prompt Synergy

  • [1 背景](#1 背景)
    • [1.1 现有方法和问题](#1.1 现有方法和问题)
    • [1.2 本文解决方案](#1.2 本文解决方案)
  • [2 创新点](#2 创新点)
  • [3 方法](#3 方法)
  • [4 模块](#4 模块)
    • [4.1 视觉-文本提示目标检测](#4.1 视觉-文本提示目标检测)
    • [4.2 区域级对比对齐](#4.2 区域级对比对齐)
    • [4.3 训练策略和目标](#4.3 训练策略和目标)
    • [4.4 四种推理工作流](#4.4 四种推理工作流)
  • [5 效果](#5 效果)
    • [5.1 与SOTA方法相比](#5.1 与SOTA方法相比)
    • [5.2 消融实验](#5.2 消融实验)

论文:https://arxiv.org/pdf/2403.14610

代码:https://github.com/IDEA-Research/T-Rex

1 背景

由于现实世界的不断变化和不可预见的性质要求目标检测方法向开集范式转变。

1.1 现有方法和问题

一种流行的方法是使用文本提示来进行开放词汇目标检测。这种方法通常涉及语言模型(如CLIP或BERT)中提取知识,以将文本描述与视觉表示对齐。

基于文本提示的目标检测框架Grounding DINO如下:

虽然使用文本提示由于其抽象描述对象的能力在开集检测中备受青睐,但它仍然面临以下局限性:

1)长尾数据缺陷。本文提示的训练需要在视觉表征之间进行模态对齐,然而长尾物体的数据稀缺可能会损害学习效率,如图2所示,物体的分布固有地遵循长尾模式,即随着可探索物体种类的增加,这些物体的可用数据变得越来越稀缺。这种数据稀缺性会削弱模型识别稀有物体或新奇物体的能力。

2)描述的局限性。文字提示也不足以准确描述语言中难以描述的对象。如图2所示,虽然文本提示可以有效地描述摩天轮,但在缺乏生物学知识的情况下,文本提示难以描述显微镜图像中的微生物。

文本提示涵盖了长尾曲线的中间部分,视觉提示涵盖了长尾曲线的尾部部分。

另一种流行的方法是使用视觉提示。视觉提示通过提供一种更直观的视觉示例来表示物体。例如,用户可以使用点或框来标记物体进行检测,即使他们不知道物体是什么。此外视觉提示不受跨模态对齐需求的限制,因为它们依赖于视觉相似性而不是语言相关性,这使得他们可以应用于训练过程中没有遇到的新物体。

基于视觉提示的目标检测框架T-Rex(本文前作)如下:

尽管如此,视觉提示也表现出局限性。与文本提示相比,它们在捕获物体的一般概念方面效率较低。例如,"狗"一词作为本文提示语,广泛的涵盖了所有类型的狗,相比之下,由于狗的品种,大小和颜色的多样性,视觉提示需要一个全面的图像集合来直观的传达狗的抽象概念。

1.2 本文解决方案

考虑到本文和视觉提示互补的优势和不足,作者提出了T-Rex2,一个通用的开放集目标检测模型。T-Rex2是在端到端的目标检测模型DETR的结构上建立的。它包含了两个并行编码器,对文本和视觉提示进行编码。对于本文提示,作者利用CLIP的文本编码器将文本编码成本文嵌入。对于视觉提示,作者引入了一种新的带有可变形注意力机制的视觉提示编码器,他可以将输入的单幅图像或多幅图像上的视觉提示(即点或框)转换成为视觉提示嵌入。

为了促进两种提示模态的协作,作者提出了一个对比学习模块,可以显式地对齐文本提示和视觉提示。在对齐过程中,视觉提示可以得益于文本提示所固有地概括性和抽象能力。相反,文本提示可以通过查看各种视觉提示来增强其描述能力,这种迭代的交互允许视觉或文本提示不断演化,从而提高它们在一个模型中的通用理解能力。

2 创新点

  1. 提出了一个开放集的目标检测模型T-Rex2,将文本和视觉提示统一在一个框架中,这在各种场景中显示出强大的零样本能力。

  2. 提出了一个对比学习模块来显式地对齐文本和视觉提示,这使得这两种模态的相互增强。

3 方法

T-Rex2集成了4个组件,如图3所示:1)图像编码器,2)视觉提示编码器,3)文本提示编码器,4)框解码器。T-Rex2遵循DETR的设计原则。这四个组件促进了四个不同的工作流,涵盖了广泛的应用场景。

4 模块

4.1 视觉-文本提示目标检测

图像编码器 。借鉴Deformable DETR框架,T-Rex2中的图像编码器由一个从输入图像中提取多尺度特征的视觉骨架组成。其次是几个配备了可变形自注意力机制的Transformer编码器层,他们被用来改进这些提取的特征图。图像编码器输出的特征图记为 f i ∈ R C i × H i × W i , i ∈ { 1 , 2 , . . . , L } f_i∈R^{C_i×H_i×W_i},i∈\{1,2,...,L\} fi∈RCi×Hi×Wi,i∈{1,2,...,L},其中 L L L 为特征图层数。

视觉提示编码器 。本文方法结合了框和点两种分割的视觉提示。设计原理涉及将用户指定的视觉提示从其坐标空间转换到图像特征空间。给定 K K K 个用户指定的参考图像上的4D归一化框 b j = ( x j , y j , w j , h j ) , j ∈ { 1 , 2 , . . . , K } b_j=(x_j,y_j,w_j,h_j),j∈\{1,2,...,K\} bj=(xj,yj,wj,hj),j∈{1,2,...,K},或2D归一化点 p j = ( x j , y j ) , j ∈ { 1 , 2 , . . . , K } p_j=(xj,y_j),j∈\{1,2,...,K\} pj=(xj,yj),j∈{1,2,...,K},首先通过一个固定的正余弦嵌入层将这些坐标编码成为位置嵌入。随后使用两个不同的线性层,将这些嵌入投影到一个统一的维度:

其中 PE 表示位置嵌入, L i n e a r ( ⋅ ; θ ) Linear(·;\theta) Linear(⋅;θ) 表示一个带有参数 θ \theta θ 的线性投影运算。作者将框和点建模为不同类型的提示。然后创建一个可学习的内容嵌入, 将其广播 K K K 次,记为 C ∈ R K × D C∈R^{K×D} C∈RK×D。此外一个通用的类标记 C ′ ∈ R 1 × D C'∈R^{1×D} C′∈R1×D 被用来聚合来自其他视觉提示的特征,以适应用户可能在单张图像中提供多个视觉提示的场景。

这里的通用类标记 C ′ C' C′ 用来聚合其他视觉提示的特征,从下文中看出这里的"其他视觉提示特征"应该指的是全局查询特征。

将这些内容嵌入与位置嵌入沿着通道维度进行串联,并应用一个线性层进行投影,从而构建输入查询嵌入 Q Q Q:

其中 C A T CAT CAT 表示通道维度的合并, B ′ B' B′ 和 P ′ P' P′ 表示全局位置嵌入,源于全局归一化坐标 [ 0.5 , 0.5 , 1 , 1 ] [0.5, 0.5, 1, 1] [0.5,0.5,1,1] 和 0.5 , 0.5 0.5, 0.5 0.5,0.5。全局查询的作用是从其他查询中聚合特征。

随后作者采用多尺度可变形交叉注意力层,以视觉提示为条件,从多尺度特征图中提取视觉提示特征。对于第 j j j 个提示,计算交叉注意力后的查询特征为 Q j ′ Q'_j Qj′:

在本文方法中,将可变形注意力限制在视觉提示的坐标上,即每个查询将选择性地关注包含视觉提示周围区域的有限多尺度特征集合。这保证了代表感兴趣区域的视觉提示的捕获。在抽取特征后,作者使用一个自注意力层来调节不同查询之间的关系,并使用一个前馈层来投影。全局内从查询的数据将作为最终的视觉提示嵌入 V V V。

感觉这里就是将全局信息中和视觉提示信息相似的特征全都提取出来并和视觉信息的特征聚合。

本文提示编码器 。这里作者直接使用CLIP来编码类别名或短语,并使用 [ C L S ] [CLS] [CLS] token输出作为本文提示嵌入,记为 T T T。

框解码器 。本文使用DETR-like解码器进行框预测。和DINO一样,每个查询被表示为一个4D锚点坐标,并在解码器层进行求精。作者使用Grounding DNIO中提出的查询选择层来初始化锚点坐标 ( x , y , w , h ) (x,y,w,h) (x,y,w,h) ,即通过计算编码器特征与提示嵌入之间的相似度,并选择相似度排名前900的索引来初始化位置嵌入。检测查询利用可变形的交叉注意力关注编码的多尺度图像特征,并用于在每个解码器层预测锚点偏移 ( Δ x , Δ y , Δ w , Δ h ) (\Delta{x},\Delta{y},\Delta{w},\Delta{h}) (Δx,Δy,Δw,Δh)。通过对锚点和偏移求和来获得最终的预测框:

其中 Q d e c Q_{dec} Qdec 是来自盒子解码器的预测查询。同时,不再使用可学习的线性层来预测标签,而是和其他开集目标检测方法一样,使用提示嵌入作为分类层的权重:

其中 C C C 表示视觉提示类的总数,N表示检测查询数。视觉提示目标检测和开放词汇目标检测任务都共享相同的图像编码器和框解码器。

视觉提示类的总数感觉就是本文提示的种类数,即将类别名作为文本提示。

4.2 区域级对比对齐

为了将视觉提示和文本提示整合在一个模型中,作者使用区域级别的对比学习来对其这两种模态。具体来说,给定一幅输入图像和从视觉提示编码器中提取的 K K K 个视觉视觉提示嵌入 V = ( v 1 , ... v K ) V=(v_1,...v_K) V=(v1,...vK),以及每个提示区域的文本提示嵌入 T = ( t 1 , ... t K ) T=(t_1,...t_K) T=(t1,...tK),计算这两类嵌入之间的 InfoNCE 损失:

从公式上看这个损失的作用就是提高视觉提示嵌入 v i v_i vi 和对应的文本提示嵌入 t i t_i ti 的相似度,降低和其他文本提示嵌入 t j t_j tj 的相似度。

对比对齐可以被看作是一个互相升华的过程,每一种模态都有助于只是的交流并从中受益。具体来说,文本提示可以被看作是一个概念锚点,围绕这个锚点,不同的视觉提示可以汇合在一起,从而使视觉提示获得一般性的知识。同时,视觉提示充当了文本提示不断细化的来源。通过接触大量的视觉实例,文本提示被动态地更新和增强,从而获得提升

4.3 训练策略和目标

视觉提示训练策略。对于视觉提示训练,采用"当前图像提示,当前图像检测"的策略。具体来说,对于训练集图像的每个类别,在所有GT中随机选择若干个框作为视觉提示。并有50%的概率将这些GT框转换成他们的中心点作为点提示训练。

文本提示训练策略。T-Rex2同时使用检测数据和 grounding data 进行文本提示训练。对于检测数据,将当前图像中的类别名称作为正文本提示,在其余类别中随机采样类别作为负文本提示。对于grounding data,提取边框对应的正短语,并排除标题中的其他单词,用于本文输入。

这里的检测数据指的是目标检测任务格式的数据,如COCO数据集中的数据,grounding data是指phrase grounding任务(即给定短语或一句话作为文本,定位文本中提到的目标)格式的数据,如RefCOCO数据集中的数据,如下:

遵循DetCLIP方法,维护一个全局字典来采样Grounding data的负文本提示,这些提示语正文本提示合并。该全局字典是通过选择文本提示训练数据中出现次数超过100次的类别名称和短语名称来构建的。

训练目标 。作者使用 L1 损失和 GIOU 损失进行框回归。对于分类损失,根据Grounding DNIO,作者应用了一个对比损失来衡量目标和嵌入之间的差异具体来说,通过点积计算每个检测查询与视觉提示或文本提示嵌入的相似性来预测logits,然后计算每个logits的focal loss。标签分配策略采用二分匹配,然后计算GT和匹配的预测值之间的损失:

训练过程中采用循环训练策略,即在持续的迭代中交替使用文本提示和视觉提示。

这里的交替使用应该是指最后和检测查询点积计算logits时,交替使用两种提示嵌入。但网络输入会一直使用两种提示。

4.4 四种推理工作流

T-Rex2 通过将文本提示和视觉提示以不同的方式组合,提供了四种不同的工作流。

本文提示工作流。该工作流仅使用文本提示进行目标检测,这与开放词汇的目标检测相同。该工作流适用于常见物体的检测,其中文本提示可以提供清晰的描述。

交互式可视化提示工作流。该工作流围绕用户驱动的交互性这一核心原则进行设计。给定用户提供的T-Rex2的初始输出,用户可以根据可视化结果,通过在漏检或误检对象上添加额外的提示来细化检测结果。这个迭代周期允许用户交互的微调T-Rex2的性能,保证了精确的检测。由于T-Rex2是一种后期融合模型,只需要图像编码器运行一次,因此该交互过程仍然保持快速和资源高效。

通用视觉提示工作流 。在该工作流中,用户可以通过任意数量的示例图像提示T-Rex2为特定对象定制视觉嵌入。这种能力对于通用目标检测来说是至关重要的,因为一类目标具有非常多的实例,因此需要一定数量的视觉实例来表示它。令 V 1 , V 2 , ... V n V_1,V_2,...V_n V1,V2,...Vn 表示从 n n n 幅不同图像中获得的视觉嵌入,通用视觉嵌入 V V V 可以被计算为他们的均值:

混合提示工作流 。视觉提示和文本提示对齐后,可以同时用于推理。这种融合是通过将各自的嵌入平均来实现的:

在这个工作流中,文本提示由于主广泛的上下文理解,而视觉提示则增加了精确和具体是视觉线索。

5 效果

5.1 与SOTA方法相比

零样本目标检测效果对比。

交互式目标检测效果对比。

目标计数效果对比。

视觉提示和文本提示在LVIS上的每类AP差异。分析表明,文本提示语在识别出现频率较高的常见类别时表现更好。相比之下,随着频率的降低,视觉提示在识别稀有类别方面更出色。这表明文本提示适合于常见的概念,而视觉提示对稀有类别更有效。

5.2 消融实验

本文提示和视觉提示联合训练(中间两行)以及对比对齐策略(最后两行)的消融实验。文本提示和视觉提示直接联合训练,对视觉提示的指标有提升,说明文本信息和视觉信息相结合有助于模型形成更稳定和可泛化的表示。

但文本提示的效果反而变差了。作者通过t-SNE来可视化文本提示和视觉提示的嵌入分布,发现如果不使用对比对齐策略,对应的文本提示和视觉提示嵌入在特征空间是分离的而不是聚集的,如图5a,因此检测嵌入的特征不能同时对齐两种提示 ,从而使学习更具有挑战性。如图5b,使用对比对齐策略后,视觉提示和文本提示嵌入的特征分布更有条理性了。文本提示充当锚点,视觉提示聚集在他们周围。这种分布意味着视觉提示可以从紧密关联的文本提示中学习或推导出一般性知识,使得学习过程更高效 。此外,与 图5a相比,文本提示在特征空间中更加分离,这表明它允许通过将文本提示暴露在大量的视觉提示中进行细化 ,从而是他们更加独特和更好地定义。

这里使用对比对齐策略后,文本提示的效果依然比单独使用文本提示训练时差,后文中作者提到说是视觉提示有时会干扰本文提示,特别是在常见对象的场景中。

通用视觉提示工作流中,视觉提示的数量消融实验。

训练数据的消融实验。

不同backbone在RTX 3090上的推理速度。

尽管文本和视觉提示整合在一个统一的模型中互惠互利,但视觉提示有时会干扰本文提示,特别是在常见对象的场景中。如图8所示。由于视觉多样性,需要多余16个视觉示例来确保可靠的检测。

相关推荐
FutureUniant2 小时前
GitHub每日最火火火项目(9.13)
人工智能·python·计算机视觉·github·音视频
ai_xiaogui2 小时前
【AIStarter:AI绘画、设计、对话】零基础入门:Llama 3.1 + 千问2快速部署
人工智能·深度学习
逼子格3 小时前
基于深度学习的线性预测:创新应用与挑战
深度学习·神经网络·线性预测·自适应线性预测
格林威3 小时前
Baumer工业相机堡盟工业相机如何通过NEOAPI SDK使用超短曝光功能(曝光可设置1微秒)(Python)
开发语言·人工智能·python·数码相机·计算机视觉
Doctor老王3 小时前
进击J6:ResNeXt-50实战
pytorch·深度学习
Invulnerabl_DL3 小时前
《基于深度半监督学习的目标检测综述》泛读
笔记·深度学习·学习·目标检测·计算机视觉
wzf@robotics_notes3 小时前
对极约束及其性质 —— 公式详细推导
计算机视觉·矩阵·机器人·几何学·相机
AI创客岛4 小时前
如何通过LlamaIndex工作流程简化我的研究和演示
人工智能·计算机视觉
Zorione4 小时前
机器学习特征-学习篇
学习·机器学习·计算机视觉
图学习的小张4 小时前
论文笔记:基于LLM和多轮学习的漫画零样本角色识别与说话人预测
论文阅读·学习