专栏名称: FightingCV
一个专注于分享计算机视觉、多模态机器学习方向前沿论文,解答常见科研问题,分享好用科研工具的公众号。努力努力再努力,瑞思拜!
目录
相关文章推荐
北京厚朴中医  ·  今晚19:00直播 | 筑基课程说明与探究 (下) ·  2 天前  
拾榴询财  ·  新一轮户型革命来了!还有这么炸裂的房子 ·  4 天前  
北京厚朴中医  ·  厚朴电子日历 | 早 ·  4 天前  
51好读  ›  专栏  ›  FightingCV

具有条件匹配的开放词汇 DETR

FightingCV  · 公众号  ·  · 2024-11-22 09:00

正文

开放词汇对象检测涉及自然语言引导下的新对象检测问题,越来越受到社区的关注。 理想情况下,我们希望扩展开放词汇检测器,以便它可以基于自然语言或样本图像形式的用户输入生成边界框预测。 这为人机交互提供了极大的灵活性和用户体验。 为此,我们提出了一种基于 DETR 的新型开放词汇检测器(因此命名为 OV-DETR),一旦经过训练, 可以检测给定其类名或示例图像的任何对象 。 将 DETR 转变为开放词汇检测器的最大挑战是,如果不访问新类别的标记图像,就不可能计算新类别的分类成本矩阵。 为了克服这一挑战,我们将学习目标制定为输入查询(类名称或示例图像)与相应对象之间的二元匹配,它学习有用的对应关系以泛化到测试期间未见过的查询。 对于训练,我们选择根据从预先训练的视觉语言模型(如 CLIP)获得的输入嵌入来调节 Transformer 解码器,以便能够匹配文本和图像查询。 通过对 LVIS 和 COCO 数据集进行大量实验,我们证明了我们的 OV-DETR( 第一个基于 Transformer 的端到端开放词汇检测器 )在当前技术水平的基础上实现了重大改进。 代码可在 https://github.com/yuhangzang/OV-DETR 获取。

1 简介

图1 基于 RPN 的检测器和使用条件查询的基于开放词汇转换器的检测器 (OV-DETR) 之间的比较 。 在封闭集对象类上训练的 RPN 很容易忽略新类( 例如 ,“猫”区域收到很少的响应)。 因此,这个例子中的猫基本上被错过了,几乎没有建议。 相比之下,我们的 OV-DETR 被训练来执行条件查询与其对应框之间的匹配,这有助于学习可以泛化到来自未见过的类的查询的对应关系。 请注意,我们可以以文本(类名)或示例图像的形式进行输入查询,这为开放词汇对象检测提供了更大的灵活性。

对象检测是一项基本的计算机视觉任务,旨在定位图像中具有紧密边界框的对象,由于深度学习的出现,它在过去十年中取得了显着进步 [25,32,9,29,15] . 然而,大多数对象检测算法在词汇量方面是不可扩展的, ,它们仅限于检测数据集中定义的一组固定对象类别 [8, 22] 。 例如,在 COCO [22] 上训练的对象检测器只能检测 80 个类,并且无法处理训练类之外的新类。

检测新类别的一种直接方法是收集其训练图像并将其添加到原始数据集中,然后重新训练或微调检测模型。 然而,由于数据收集和模型训练的成本高昂,这是不切实际且低效的。 在检测文献中,从基础类到新类的泛化已被研究为零样本检测问题 [1] ,其中零样本学习技术如词嵌入投影 [10] 被广泛使用。

最近,开放词汇检测这种利用大型预训练语言模型的新表述越来越受到社区的关注 [36, 13] 。 现有工作的中心思想是将检测器的特征与在大规模图像文本对(如 CLIP [27] )上预先训练的模型提供的嵌入对齐(参见图 1 (一个))。 这样,我们就可以使用对齐的分类器仅从描述性文本中识别新类别。

现有开放词汇检测器 [36, 13] 的一个主要问题是它们依赖于区域提议,由于缺乏训练数据,这些区域提议通常无法可靠地覆盖图像中的所有新类别,请参阅图 1 (a)。 最近的一项研究 [17] 也发现了这个问题,该研究表明区域提议网络(RPN)的二元性质很容易导致对所见类别的过度拟合(因此无法推广到新类别) )。

在本文中,我们建议在 Transformer 框架下训练端到端的开放词汇检测器,旨在在不使用中间 RPN 的情况下增强其新颖的类泛化能力。 To this end, we propose a novel open-vocabulary detector based on DETR [2] —hence the name OV-DETR—which is trained to detect any object given its class name or an exemplar image . 与仅从自然语言进行的传统开放词汇检测相比,这将提供更大的灵活性。

尽管端到端 DETR 训练很简单,但将其转变为开放词汇检测器并非易事。 最大的挑战是无法计算没有训练标签的新类的分类成本。 为了克服这一挑战,我们将学习目标重新制定为输入查询(类名称或示例图像)与相应对象之间的二元匹配。 不同训练对上的这种匹配损失允许学习有用的对应关系,这些对应关系可以推广到测试期间未见过的查询。 对于训练,我们扩展了 DETR 的 Transformer 解码器以接受条件输入查询。 具体来说,我们根据从预先训练的视觉语言模型 CLIP [27] 获得的查询嵌入来调节 Transformer 解码器,以便对文本或图像查询执行条件匹配。 图 1 显示了这种高级思想,事实证明,它比基于 RPN 的闭集检测器能够更好地检测新类别。

我们对两个具有挑战性的开放词汇对象检测数据集进行了全面的实验,并显示出性能的持续改进。 具体来说,我们的 OV-DETR 方法在开放词汇 LVIS 数据集 [13] 上实现了新类的 17.4 mask mAP 和新类的 29.4 box mAP在开放词汇 COCO 数据集 [36] 上,分别以 1.3 1.8 mAP 超越 SOTA 方法。

2 相关工作

开放词汇对象检测 利用大型预训练语言模型 [36, 13] 的最新进展,将开放词汇信息合并到对象检测器中。 OVR-CNN [36] 首先使用 BERT [6] 在图像标题上预训练 Faster R-CNN 检测器 [29] 配对,然后在下游检测数据集上微调模型。 ViLD [13] 采用基于蒸馏的方法,将Mask R-CNN [15] 的图像特征提取器与CLIP [的图像和文本编码器对齐27] 因此 CLIP 可用于合成任何新类别的分类权重。 用于预训练视觉语言模型的提示调整技术 [39,38,37] 也已应用于开放词汇检测器,例如DetPro [7] 。 我们的方法与这些工作的不同之处在于,我们使用新颖的条件匹配框架来端到端地训练基于 Transformer 的检测器。

零样本目标检测 还涉及检测新类 [1,20,40,28,31] 的问题。 但是,由于限制对与未见类 [36] 相关的资源的访问的严格限制,此设置不太实用。 零样本检测的常见方法是采用 GloVe [26] 等词嵌入作为分类器权重 [1] 。 其他工作发现,使用文本描述等外部资源可以帮助提高分类器嵌入的泛化 [20, 28] 。 或者,赵 等人 [31] 使用生成对抗网络 (GAN) [12] 生成新颖类的特征表示。 而朱 等人 [40] 使用数据增强策略合成了看不见的类。

视觉接地 是另一个相关研究领域,其问题是使用自然语言输入 [5, 3] 在一张图像中接地目标对象。 与旨在识别图像中所有目标对象的开放词汇检测不同,视觉基础方法通常涉及特定的单个对象,因此不能直接应用于通用对象检测。 不过,有一种相关的视觉基础方法,称为 MDETR [16] 。 该方法类似地使用给定的语言模型来训练 DETR,以便将 DETR 的输出标记与特定单词链接起来。 MDETR 还采用了条件框架,将视觉和文本特征结合起来馈送到 Transformer 编码器和解码器。 然而,MDETR方法不适用于开放词汇检测,因为它无法计算分类框架下新类的成本矩阵。 我们的 OV-DETR 通过使用条件匹配框架绕过了这一挑战。

使用 Transformer 进行物体检测。 先驱 DETR 方法 [2] 通过将检测视为集合到集合的匹配问题,极大地简化了检测流程。 已经开发了几种后续方法来提高表现和培训效率。 Deformable DETR [41] 具有可变形注意力模块,它对稀疏像素位置进行采样以计算注意力,并通过多尺度方案进一步缓解收敛速度慢的问题。 SMCA [11] 通过位置感知的共同关注机制加速训练收敛。 条件 DETR [24] 还解决了收敛速度慢的问题,但条件空间查询是从参考点和解码器嵌入中学习的。 我们的工作 首次 将DETR扩展到开放词汇领域,将开放词汇检测转化为条件匹配问题,并实现了对当前SOTA的重大改进。

3 开放词汇 DETR

我们的目标是设计一个简单而有效的开放词汇对象检测器,它可以检测由任意文本输入或示例图像描述的对象。 我们以 DETR [2] 的成功为基础,将对象检测转化为端到端的集合匹配问题(在封闭类中),从而消除了手工制作的组件(如锚点生成和非极大值抑制。 该管道使其成为构建端到端开放词汇对象检测器的合适框架很有吸引力。

然而,将具有闭集匹配的标准 DETR 改造为需要与未见过的类进行匹配的开放词汇检测器并非易事。 这种开放集匹配的一种直观方法是学习一个与类无关的模块( 例如 ,ViLD [13] )来处理所有类。 然而,这仍然无法匹配那些没有标记图像的开放词汇类。 在这里,我们为 DETR 中的匹配任务提供了一种新的视角,这使我们将固定的集合匹配目标重新表述为条件输入(文本或图像查询)和检测输出之间的条件二进制匹配。

图2 OV-DETR 概述 。 与标准 DETR 不同,我们的方法不会将一组封闭的类的“对象”与“非对象”分开。 相反,OV-DETR 通过测量某些条件输入(来自 CLIP 的文本或示例图像嵌入)与检测结果之间的匹配性(“匹配”与“不匹配”)来执行开放词汇检测。 我们展示了这种管道可以灵活地检测具有任意文本或图像输入的开放词汇表类。

我们的开放词汇 DETR 的概述如图 2 所示。 在高层,DETR 首先将查询嵌入(文本或图像)作为从预训练的 CLIP [27] 模型获得的条件输入,然后对检测结果施加二元匹配损失来测量他们的匹配性。 接下来,我们将在 3.1 节中重新审视标准DETR中的闭集匹配过程。 然后我们在 3.2 节中描述如何在 OV-DETR 中执行条件二进制匹配。

3.1 重新审视 DETR 中的闭集匹配

对于输入图像 𝐱 ,标准 DETR 推断 N 对象预测 𝐲 ^ ,其中 N 由对象查询的固定大小确定 𝐪 用作可学习的位置编码。 DETR 管道的一次传递由两个主要步骤组成:(i) 集合预测,以及 (ii) 最佳二分匹配。

设置预测。 给定输入图像 𝐱 ,全局上下文表示 𝐜 首先由 CNN 主干 f ϕ 提取,然后由 Transformer 编码器 h ψ 提取:

其中输出 𝐜 表示 𝐪 的特征嵌入序列。 将上下文特征 𝐜 和对象查询 𝐪 作为输入,Transformer 解码器 h θ (带有预测头)然后生成集合预测 𝐲 ^ = { 𝐲 ^ i } i = 1 N

其中 𝐲 ^ 包含训练类封闭集的边界框预测 𝐛 ^ 和类预测 𝐩 ^

最优二分匹配 是找到 N 预测集 𝐲 ^ 和地面真实对象集 𝐲 = { 𝐲 i } i = 1 M 之间的最佳匹配(不包括对象 )。 具体来说,需要搜索具有最低匹配成本的 N 元素 σ 𝔖 N 的排列:

其中 c o s t ( 𝐲 i , 𝐲 ^ σ ( i ) ) 是真实值 𝐲 i 与索引 σ ( i ) 的预测 𝐲 ^ σ ( i ) 之间的成对 匹配成本 >。 注意 c o s t 由类预测 cls ( 𝐩 ^ , 𝐩 ) 和边界框定位 box ( 𝐛 ^ , 𝐛 ) 的损失组成。 整个二分匹配过程产生 一对一 标签分配,其中每个预测 𝐲 ^ i 被分配给一个真实注释 𝐲 j (无对象)。 匈牙利算法 [18] 可以有效地找到最优分配。

挑战。 如上所述,二分匹配方法不能直接应用于同时包含 base novel 类的开放词汇设置。 原因是计算等式中的匹配成本。 ( 3 ) 需要访问标签信息,这对于 novel 类不可用。 我们可以按照之前的工作 [13,35,7] 来生成可能覆盖 新颖 类的与类无关的对象建议,但我们不知道真实分类这些提案的标签。 因此,由于缺乏训练标签, N 对象查询的预测无法推广到新类。 如图 3 (a)所示,只能对具有可用训练标签的基类进行二分匹配。

图3 比较 DETR 和我们的 OV-DETR 的标签分配机制 (a) 在原始 DETR 中,集合到集合的预测是通过预测和闭集注释之间的二分匹配进行的,其中关于查询和类别的成本矩阵。 由于缺乏 novel 类的类标签注释,计算这种特定于类的成本矩阵是不可能的。 (b) 相反,我们的 OV-DETR 将开放词汇检测视为条件匹配过程,并制定一个二元匹配问题,为条件输入计算与类别无关的匹配成本矩阵。

3.2 开放词汇检测的条件匹配

为了使 DETR 能够超越闭集分类并执行开放词汇检测,我们为 Transformer 解码器配备了条件输入,并将学习目标重新表述为二进制匹配问题。

条件输入。 给定一个包含所有训练 ( base ) 类的标准注释的对象检测数据集,我们需要将这些注释转换为条件输入,以促进我们的新训练范例。 具体来说,对于每个具有边界框 𝐛 i 和类标签名称 𝐲 i class 的真实注释,我们使用 CLIP 模型 [27] 生成其相应的图像嵌入 𝐳 i image 和文本嵌入 𝐳 i text

这种图像和文本嵌入已经通过 CLIP 模型很好地对齐了。 因此,我们可以选择其中任何一个作为输入查询来调节 DETR 的解码器并训练以匹配相应的对象。 训练完成后,我们可以在测试期间采用任意输入查询来执行开放词汇检测。 为了确保图像和文本查询的训练条件相同,我们以 ξ = 0.5 的概率随机选择 𝐳 i text 𝐳 i image 作为条件输入。 此外,我们遵循之前的工作 [13,35,7] novel 类生成额外的对象建议,以丰富我们的训练数据。 我们只为此类新颖类提案提取图像嵌入 𝐳 i image 作为条件输入,因为它们的类名无法提取文本嵌入。 请参阅补充材料了解更多详情。

图4 DETR 解码器具有 (a) 单个条件输入或 (b) 并行多个条件输入。

条件匹配。 我们的核心训练目标是测量条件输入嵌入和检测结果之间的匹配性。 为了执行此类条件匹配,我们从全连接层 𝔽 proj 开始,将条件输入嵌入( 𝐳 i t e x t 𝐳 i i m a g e )投影为具有相同的值维度为 𝐪 。 那么 DETR 解码器 𝐪 的输入由下式给出:

我们使用简单的加法操作 类无关 对象查询 𝐪 转换为 类特定 𝐪 𝔽 proj ( 𝐳 i mod ) 通知。

实际上,仅将条件输入嵌入 𝐳 添加到一个对象查询中将导致对可能在图像中多次出现的目标对象的覆盖范围非常有限。 事实上,在现有的对象检测数据集中,每个图像中通常存在来自相同或不同类别的多个对象实例。 为了丰富条件匹配的训练信号,我们将对象查询 𝐪 复制 R 次,并复制条件输入( 𝐳 i text 𝐳 i image ) N 次,然后执行方程式中的调节。 ( 5 )。 结果,我们在每次前向传递过程中总共获得了 N × R 个用于匹配的查询,如图 4 (b)所示。 补充材料中的实验将验证这种“特征克隆”的重要性,并展示我们如何根据性能与内存的权衡来确定 N R 。 请注意,对于最终的调节过程,我们进一步添加了注意掩码以确保不同查询副本之间的独立性,如 [4] 中的类似操作。

给定条件查询特征 𝐪 ,标签分配的二进制匹配损失如下:

其中 match ( 𝐩 , 𝐩 ^ σ ) 表示新的匹配损失,它取代了等式中的分类损失 cls ( 𝐩 , 𝐩 ^ σ ) 。 ( 3 )。 在我们的例子中, 𝐩 是一个 1 维 sigmoid 概率向量,用于表征匹配性(“匹配”与“不匹配”),而 match 则简单地由 Focal 实现预测 𝐩 ^ σ 和真实值 𝐩 之间的损失 [21] Focal 。 例如,以“鸟”查询作为输入,我们的匹配损失应该允许我们匹配一张图像中的所有鸟实例,同时将其他类的实例标记为“不匹配”。

3.3 优化

优化方程后( 6 ),我们获得针对不同对象查询的优化标签分配 σ 。 此过程会生成一组检测到的对象,这些对象具有指定的框坐标 𝐛 ^ 和 2-dim 匹配概率 𝐩 ^ ,我们将使用它们来计算用于建模训练的最终损失函数。 我们进一步将嵌入重建头附加到模型,该模型学习预测嵌入 𝐞 以便能够重建每个条件输入嵌入 𝐳 text 𝐳 image

补充材料验证了 embed 的有效性。

我们模型训练的最终损失再次将 embed 与边界框损失 match ( 𝐩 , 𝐩 ^ ) box ( 𝐛 , 𝐛 ^ ) 结合起来:

其中 box 由L1损失和广义IoU(GIoU) [30] 损失组成,而 λ L Focal , λ L L1 λ L Giou λ L embed 是权重参数。

3.4 推断

在测试过程中,对于每个图像,我们将所有 base + novel 类的文本嵌入 𝐳 text 发送到模型,并通过选择合并结果具有最高预测分数的前 k 预测。 我们遵循之前的工作 [13] ,将 k = 100 用于COCO数据集,使用 k = 300 用于LVIS数据集。 获取等式中的上下文表示 𝐜 。 ( 1 ),我们通过CNN主干 f ϕ 和Transformer编码器 h ψ 转发输入图像。 注意 𝐜 仅计算一次并为所有条件输入共享以提高效率。 然后来自不同类的条件对象查询被并行发送到 Transformer 解码器。 在实践中,我们复制对象查询 R 次,如图 4 (b)所示。

4 实验

数据集。 我们在分别从 LVIS [14] 和 COCO [22] 修改的两个标准开放词汇检测基准上评估我们的方法。 LVIS [14] 包含 100K 图像,1,203 个类别。 根据训练图像的数量,将类别分为三组,即频繁组、常见组和罕见组。 遵循 ViLD [13] ,我们将 337 个稀有类视为 新颖 类,仅使用频繁类和常见类进行训练。 COCO [22] 数据集是广泛使用的对象检测基准,由 80 类组成。 遵循OVR-CNN [36] ,我们将COCO中的类分为48个 base 类别和17个 novel 类别,同时删除了15个没有a的类别WordNet 层次结构中的同义词集。 训练集与完整的 COCO 相同,但仅使用包含至少一个 base 类的图像。 以下我们将这两个基准称为 OV-LVIS 和 OV-COCO。

评估指标。 对于 OV-LVIS,我们报告罕见、常见和频繁类别的掩模 mAP,用 AP r m AP c m AP f m 表示。 稀有类被视为 新颖 类( AP novel m )。 符号 AP m 表示所有类的mAP。 对于 OV-COCO,我们遵循之前的工作,仅报告 AP50 b 指标,这意味着 IoU 阈值 0.5 处的框 mAP。

实例分割的扩展。 对于 OV-LVIS,评估过程需要实例分割结果。 尽管DETR [2] 及其后续 [41, 24] 是为对象检测任务而开发的,但它们也可以扩展到实例分割任务。 我们按照 DETR [2] 添加外部与类无关的分割头来解决实例分割任务。 分割头采用全卷积网络(FCN [23] )结构,将从Transformer解码器提取的特征作为输入并产生分割掩模。

实施细节。 我们的模型基于 Deformable DETR [41] 。 继ViLD [13] 之后,我们还使用基于ViT-B/32的开源CLIP模型 [27] 来提取文本和图像嵌入。 请参阅我们的补充材料以了解更多培训详细信息。

4.1 消融研究

# Method AP m AP novel m AP c m AP f m
1 Mask R-CNN† 22.5 0.0 22.6 32.4
2 Def DETR 22.4 0.0 22.4 32.0


表1 OV-LVIS 上的 Mask R-CNN 和 Def DETR,均在基类上进行训练 :从 ViLD [13] 复制。


# P M AP m AP novel m AP c m AP f m
1

24.2 9.5 23.2 31.7
2
19.9 6.3 17.4 28.6
3 26.6 17.4 25.0 32.5


表2 使用对象提案 (P) 和我们的条件二元匹配机制 (M) 的 消融研究


我们对 OV-LVIS 进行消融研究,以评估我们方法的主要组成部分。

架构差异。 之前的工作如 ViLD [13] 是基于基于 RPN 的 Mask R-CNN [15] ,而我们的工作是基于基于 Transformer 的检测器 Deformable DETR [41] 。 我们首先研究这两个检测器在仅使用 base 类训练的开放词汇设置上的差异。 如表 1 行( 1 - 2 )所示,我们观察到Mask R-CNN的表现略优于Deformable DETR [41] 。 这个差距很小,表明与 ViLD [13] 相比,我们有一个公平的起点。

对象提案。 然后,我们将 Deformable DETR 的分类器层替换为 CLIP 提供的文本嵌入,并仅使用 base 类进行训练。 此步骤与之前的 ViLD-text [13] 方法类似。 结果显示在表 2 1 中。 我们观察到 AP novel m 指标从 0.0 改进到 9.5 。 为了进一步改进 AP novel m 指标,我们将可能包含 新颖 类区域的对象建议添加到训练阶段。 因为我们不知道这些对象提案的类别 ID,所以我们观察到这些对象提案的标签分配不准确,并且会将 AP novel m 性能从 9.5 降低到 6.3 .

条件二进制匹配。 现在我们将 DETR 的默认闭集标签分配替换为我们提出的条件二元匹配。 表 2 2-3 之间的比较结果表明,我们的二元匹配策略可以更好地利用对象提案中的知识,并将 AP novel m 9.5 17.4 。 如此大的改进表明,在将 DETR 系列检测器应用于开放词汇设置时,所提出的条件匹配至关重要。

4.2 开放词汇基准测试结果

表3 OV-LVIS 和 OV-COCO 的主要结果 。 对于 OV-LVIS(包含 886 个基类和 317 个新类),我们报告了 mask mAP 以及新(稀有)类、常见类和频繁类的细分。 对于 OV-COCO(有 48 个基类和 17 个新类),我们报告 IoU 阈值 0.5 时的边界框 mAP。 †:不使用标题或图像文本对的零样本方法。 ‡:整体模型。

# Method OV-LVIS OV-COCO
AP m AP novel m AP c m AP f m AP50 b AP50 novel b AP50 base b
1 SB [1] - - - - 24.9 0.3 29.2
2 DELO [40] - - - - 13.0 3.1 13.8
3 PL [28] - - - - 27.9 4.1 35.9
4 OVR-CNN [36] - - - - 46.0 22.8 39.9
5 ViLD-text [13] 24.9 10.1 23.9 32.5 49.3 5.9 61.8
6 ViLD [13] 22.5 16.1 20.0 28.3 51.3 27.6 59.5
7 ViLD-ens. [13] 25.5 16.6 24.6 30.3 - - -
8 OV-DETR 26.6 17.4 25.0






请到「今天看啥」查看全文