【计算机视觉 | 目标检测】Open-Vocabulary DETR with Conditional Matching论文解读

简介: 具有条件匹配的开放词汇表DETR

一、导读

论文题目:具有条件匹配的开放词汇表DETR

image.png

开放词汇对象检测是指在自然语言的引导下对新对象进行检测的问题,越来越受到社会的关注。理想情况下,我们希望扩展一个开放词汇表检测器,这样它就可以基于自然语言或范例图像形式的用户输入生成边界框预测。这为人机交互提供了极大的灵活性和用户体验。为此,我们提出了一种新的基于DETR的开放词汇检测器,因此命名为OV-DETR,一旦训练,它可以检测任何给定其类名或样本图像的对象。

将DETR转变为开放词汇检测器的最大挑战是,如果不访问新类的标记图像,就不可能计算新类的分类成本矩阵。为了克服这一挑战,我们将学习目标制定为输入查询(类名或示例图像)与相应对象之间的二进制匹配目标,从而学习有用的对应关系,以便在测试期间推广到未见过的查询。对于训练,我们选择将Transformer解码器设置在从预训练的视觉语言模型(如CLIP)获得的输入嵌入上,以便对文本和图像查询进行匹配。通过在LVIS和COCO数据集上的大量实验,我们证明了OV-DETR—第一个端到端基于变压器的开放词汇检测器——比目前的技术水平取得了重大改进。

二、介绍

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

检测新类的一种直接方法是收集它们的训练图像并将其添加到原始数据集中,然后重新训练或微调检测模型。然而,由于数据收集和模型训练的巨大成本,这既不切实际又效率低下。

最近,开放词汇检测(open-vocabulary detection),一种利用大型预训练语言模型的新公式,越来越受到社区的关注。现有工作的中心思想是将检测器的特征与在CLIP等大规模图像-文本对上预训练的模型提供的嵌入对齐。通过这种方式,我们可以使用对齐的分类器仅从描述文本中识别新类。

image.png

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

现有开放词汇检测器的一个主要问题是,它们依赖于region proposals,由于缺乏训练数据,通常不可靠地覆盖图像中的所有新类别,参见图1(A)。最近的一项研究也发现了这个问题,该研究表明,区域建议网络(RPN)的二值性很容易导致对已知类别的过拟合(从而无法推广到新的类别)。

在本文中,我们提出在Transformer框架下训练端到端的开放词汇检测器,目的是在不使用中间RPN的情况下,提高新类别的泛化能力。为此,我们提出了一种新的基于DETR的开放词汇检测器—因此被命名为OV-DETR—它被训练来检测给定类名或样本图像的任何对象。这将比仅从自然语言中进行传统的开放词汇检测提供更大的灵活性。

尽管端到端DETR训练很简单,但将其转换为开放词汇表检测器并非易事。最大的挑战是无法计算没有训练标签的新类的分类成本。为了克服这一挑战,我们将学习目标重新定义为输入查询(类名或样本图像)与相应对象之间的二元匹配。这种对不同训练对的匹配损失允许学习有用的对应关系,可以在测试期间推广到看不见的查询。对于训练,我们扩展了DETR的Transformer解码器以接受条件输入查询。

具体来说,我们根据预训练的视觉语言模型CLIP获得的查询嵌入来调整Transformer解码器,以便对文本或图像查询执行条件匹配。图1显示了这个高级思想,它在检测新类方面比基于rpn的闭集检测器更好。

我们在两个具有挑战性的开放词汇目标检测数据集上进行了全面的实验,并显示出性能的一致改进。具体而言,我们的OV-DETR方法在开放词汇LVIS数据集上实现了17.4个新类的mask mAP,在开放词汇COCO数据集上实现了29.4个新类的box mAP,分别比SOTA方法高出1.3 mAP和1.8 mAP。

三、Open-Vocabulary DETR

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

然而,将具有闭集匹配的标准DETR改造为开放词汇表检测器(需要对未见过的类进行匹配)是非常重要的。对于这种开集匹配,一种直观的方法是学习一个与类别无关的模块(例如,ViLD)来处理所有的类。但是,这仍然无法匹配那些没有标记图像的开放词汇表类。

引导我们将固定的集合匹配目标重新表述为条件输入(文本或图像查询)和检测输出之间的条件二进制匹配目标。

我们的开放词汇表DETR概述如下图所示。在高层次上,DETR首先将 query embeddings (文本或图像)作为从预训练的CLIP模型中获得的条件输入,然后对检测结果施加二值匹配损失来衡量它们的匹配性。

image.png

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

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

对于输入图像 $x$,一个标准的 DETR 推断出 $N$ 个对象预测 $y$,其中 $N$ 由作为可学习位置编码的 object queries $q$ 的固定大小决定。DETR 管道的单次传递由两个主要步骤组成:(i)集预测,(ii)最优二部匹配。

Set Prediction:

给定输入图像 $x$,全局上下文表示 $c$ 首先由 CNN 主干 $f_{\phi}$ 提取,然后由 Transformer 编码器 $h_{\Phi}$ 提取:
$$ c = h_{\Phi}(f_{\phi}(x)) $$
其中,输出 $c$ 表示 $q$ 的特征嵌入序列。将上下文特征 $c$ 和对象查询q作为输入,Transformer解码器 $h_{\theta}$ (带有预测头)然后产生集合预测:
$$ \hat{y} = \{\hat{y_i}\}_{i=1}^N $$

$$ \hat{y} = h_{\theta}(c, q) $$

其中,$\hat{y}$ 包含封闭训练类集的边界框预测值 $\hat{b}$ 和类预测值 $\hat{p}$。

3.2 最优二部匹配

最优二部匹配(Optimal Bipartite Matching)是寻找 $N$ 个预测集合 $\hat{y}$ 与基础真对象集合 $y = \{y_i\}_{i=1}^M$ (不包括对象 ∅ )之间的最佳匹配。具体来说,需要搜索N个元素 σ∈ $S_n$的一个匹配代价最低的排列:

image.png

注意 $L_{cost}$ 由类预测 $L_{cls} (p, \hat{p})$ 和边界盒定位 $L_{box}(b, \hat{b})$ 的损失组成。整个二部匹配过程产生一对一的标签分配,其中每个预测 $y_i$ 被分配给一个基真注释 $y_j$ 或 ∅ (无对象)。匈牙利算法可以有效地找到最优分配。

如上所述,二分匹配方法不能直接应用于包含基类和新类的开放词汇表设置。原因是计算上式中的匹配代价需要访问标签信息,这对于新类是不可用的。我们可以遵循以前的工作来生成可能涵盖新类的类别不可知论对象建议,但我们不知道这些建议的真实分类标签。因此,由于缺乏训练标签,对 N 个对象查询的预测不能推广到新的类。如下图所示,只能对具有可用训练标签的基类进行二部匹配。

image.png

比较DETR和OV-DETR的标签分配机制。

(a)在原始的DETR中,集合到集合的预测是通过预测与闭集注释的二部匹配进行的,其中有一个关于查询和类别的代价矩阵。由于缺乏新类的类标签注释,计算这种特定于类的成本矩阵是不可能的。

(b)相反,我们的OV-DETR将开放词汇检测转换为条件匹配过程,并制定了一个二元匹配问题,该问题计算条件输入的类别不可知匹配成本矩阵。

四、Conditional Matching for Open-Vocabulary Detection

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

4.1 Conditional Inputs

给定一个具有所有训练(基)类的标准注释的对象检测数据集,我们需要将这些注释转换为条件输入,以促进我们的新训练范式。具体来说,对于每一个边界框为 $b_i$,类标签名为 $y_i^{class}$ 的真值标注,我们使用CLIP模型生成它们对应的图像嵌入 $z_i^{image}$ 和文本嵌入 $z_i^{text}$:

image.png

这样的图像和文本嵌入已经被CLIP模型很好地对齐了。

因此,我们可以选择它们中的任何一个作为输入 queries 来约束 DETR 的解码器并训练以匹配相应的对象。一旦训练完成,我们就可以在测试期间使用任意输入查询来执行开放词汇表检测。为了确保图像和文本查询条件下的训练相等,我们随机选择概率为 ξ = 0.5 的 $z_i^{text}$ 或 $z_i^{image}$ 作为条件输入。

此外,我们遵循先前的工作,为新类生成额外的对象建议,以丰富我们的训练数据。我们只提取图像嵌入作为条件输入的新类建议,因为它们的类名无法提取文本嵌入。

4.2 Conditional Matching

我们的核心训练目标是衡量条件输入嵌入和检测结果之间的匹配度。为了执行这样的条件匹配,我们从一个全连接层 $F_{proj}$ 开始,将条件输入嵌入($z_i^{text}$ 或 $z_i^{image}$)投影为与 $q$ 具有相同的维度。然后,对DETR解码器的输入q ' 给出:

image.png

其中,我们使用一个简单的加法操作⊕将类无关的对象查询q转换为由 $F_{proj}(z_i^{mod})$ 通知的类特定的q '。

在实践中,将条件输入嵌入 $z$ 仅添加到一个 object query 中,将导致对可能在图像中出现多次的目标对象的覆盖非常有限。事实上,在现有的目标检测数据集中,每个图像中通常有来自相同或不同类别的多个对象实例。丰富的训练信号条件匹配,我们为对象查询 $q$ 复制 $R$ 次,和条件输入($z_i^{text}$ 或 $z_i^{image}$ ) N 次执行调节在上面的等式。因此,我们一共获得 $N \times R$ queries 匹配在每个传球前进。

如下图所示(b):
image.png

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

给定条件查询特征q ',我们的标签分配的二值匹配损失为:

image.png

其中 $L_{match} (p, \hat{p_{\sigma}})$
表示替换分类损失
$L_{cls} (p, \hat{p_{\sigma}})$
的新匹配损失。在我们的例子中,$p$ 是一个一维 sigmoid 型概率向量,表征匹配性(“匹配”与“不匹配”),$L_{match}$ 简单地通过预测的 $\hat{p_{\sigma}}$ 与GT值 $p$ 之间的 Focal loss $L_{Focal}$ 来实现。例如,使用“bird”查询作为输入,我们的匹配损失应该允许我们匹配一张图像中的所有鸟类实例。同时将来自其他类的实例标记为“不匹配”。

五、Inference

在测试过程中,对于每张图像,我们将所有基类 + 新颖类的文本嵌入 $z^{text}$ 发送给模型,并通过选择预测得分最高的前 k 个预测来合并结果。我们遵循先前的工作,对COCO数据集使用 k = 100,对LVIS数据集使用 k = 300。为了获得上下文表示 c,我们通过CNN主干 $f_φ$和变压器编码器 $h_ψ$ 转发输入图像。注意c只计算一次,并且为了效率起见,所有条件输入都是共享的。然后,来自不同类的条件对象查询被并行发送到Transformer解码器。在实践中,我们复制对象查询R次,如图4 (b)所示。

六、实验

数据集。我们分别在由 LVIS 和 COCO 修改的两个标准开放词汇检测基准上对我们的方法进行了评估。LVIS 包含100K个图像,1203个分类。根据训练图像的数量将类分为三组,即频繁类、常见类和罕见类。

根据ViLD,我们将337个罕见的课程作为新课程,只使用频繁和常见的课程进行培训。COCO 数据集是一个广泛使用的对象检测基准,它由80个类组成。根据OVR-CNN,我们将COCO中的类划分为48个基本类别和17个新类别,同时在WordNet层次结构中删除了15个没有同义词集的类别。训练集与完整的COCO相同,但只使用包含至少一个基类的图像。我们将这两个基准分别称为OV-L VIS和OV-COCO。

image.png

现在我们将DETR的默认闭集标记赋值替换为我们建议的条件二进制匹配。表第2-3行与表的比较结果表明,我们的二元匹配策略可以更好地利用来自对象建议的知识,并将APmnovel从9.5提高到17.4。如此大的改进表明,在将DETR系列检测器应用于开放词汇表设置时,所提出的条件匹配是必不可少的。

相关文章
|
6月前
|
机器学习/深度学习 编解码 资源调度
2024年3月的计算机视觉论文推荐
从去年开始,针对LLM的研究成为了大家关注的焦点。但是其实针对于计算机视觉的研究领域也在快速的发展。每周都有计算机视觉领域的创新研究,包括图像识别、视觉模型优化、生成对抗网络(gan)、图像分割、视频分析等。
138 0
|
6月前
|
机器学习/深度学习 算法 计算机视觉
计算机视觉实战项目3(图像分类+目标检测+目标跟踪+姿态识别+车道线识别+车牌识别+无人机检测+A*路径规划+单目测距与测速+行人车辆计数等)
计算机视觉实战项目3(图像分类+目标检测+目标跟踪+姿态识别+车道线识别+车牌识别+无人机检测+A*路径规划+单目测距与测速+行人车辆计数等)
|
6月前
|
机器学习/深度学习 自然语言处理 算法
2024年4月计算机视觉论文推荐
四月的计算机视觉研究涵盖多个子领域,包括扩散模型和视觉语言模型。在扩散模型中,Tango 2通过直接偏好优化改进了文本到音频生成,而Ctrl-Adapter提出了一种有效且通用的框架,用于在图像和视频扩散模型中添加多样控制。视觉语言模型的论文分析了CLIP模型在有限资源下的优化,并探讨了语言引导对低级视觉任务的鲁棒性。图像生成与编辑领域关注3D感知和高质量图像编辑,而视频理解与生成则涉及实时视频转游戏环境和文本引导的剪贴画动画。
142 0
|
2月前
|
人工智能 并行计算 PyTorch
AI计算机视觉笔记十八:Swin Transformer目标检测环境搭建
本文详细记录了Swin Transformer在AutoDL平台上的环境搭建与训练过程。作者从租用GPU实例开始,逐步介绍了虚拟环境的创建、PyTorch安装、mmcv及mmdetection的配置,并解决了安装过程中遇到的各种问题,如cython版本冲突等。最后,通过修改代码实现目标检测结果的保存。如需了解更多细节或获取完整代码,请联系作者。原文链接:[原文链接](请在此处插入原文链接)。
|
2月前
|
机器学习/深度学习 人工智能 算法
AI计算机视觉笔记十一:yolo5+Deepsort实现目标检测与跟踪(CPU版)
DeepSORT是一种基于深度学习的计算机视觉跟踪算法,扩展了SORT算法,通过添加外观描述符减少身份切换,提高跟踪效率。本文档提供了DeepSORT环境搭建步骤,包括创建虚拟环境、安装依赖及解决常见错误等,最终实现人员和车辆的跟踪计数功能。适合无GPU设备的学习者参考。
|
5月前
|
编解码 机器人 测试技术
2024年6月计算机视觉论文推荐:扩散模型、视觉语言模型、视频生成等
6月还有一周就要结束了,我们今天来总结2024年6月上半月发表的最重要的论文,重点介绍了计算机视觉领域的最新研究和进展。
140 8
|
4月前
|
机器学习/深度学习 人工智能 算法
计算机视觉:目标检测算法综述
【7月更文挑战第13天】目标检测作为计算机视觉领域的重要研究方向,近年来在深度学习技术的推动下取得了显著进展。然而,面对复杂多变的实际应用场景,仍需不断研究和探索更加高效、鲁棒的目标检测算法。随着技术的不断发展和应用场景的不断拓展,相信目标检测算法将在更多领域发挥重要作用。
|
6月前
|
编解码 边缘计算 自然语言处理
2024年5月计算机视觉论文推荐:包括扩散模型、视觉语言模型、图像编辑和生成、视频处理和生成以及图像识别等各个主题
五月发布的计算机视觉领域重要论文涵盖了扩散模型、视觉语言模型、图像生成与编辑及目标检测。亮点包括:1) Dual3D提出双模式推理策略,实现高效文本到3D图像生成;2) CAT3D利用多视图扩散模型创建3D场景,仅需少量图像;3) Hunyuan-DiT是多分辨率的中文理解扩散Transformer,可用于多模态对话和图像生成;4) 通过潜在扩散模型从EEG数据重建自然主义音乐,展示复杂音频重建潜力。此外,还有关于视觉语言模型和图像编辑的创新工作,如BlobGEN用于合成具有控制性的图像。
239 3
|
6月前
|
机器学习/深度学习 计算机视觉
AIGC核心技术——计算机视觉(CV)预训练大模型
【1月更文挑战第13天】AIGC核心技术——计算机视觉(CV)预训练大模型
607 3
AIGC核心技术——计算机视觉(CV)预训练大模型
|
11月前
|
机器学习/深度学习 PyTorch 算法框架/工具
Azure 机器学习 - 使用 ONNX 对来自 AutoML 的计算机视觉模型进行预测
Azure 机器学习 - 使用 ONNX 对来自 AutoML 的计算机视觉模型进行预测
121 0

热门文章

最新文章