【计算机视觉 | 目标检测】Aligning Bag of Regions for Open-Vocabulary Object Detection

简介: 对准开放词汇表对象检测的区域袋

一、摘要

预训练的视觉—语言模型(VLMs)学习在大规模数据集上对齐视觉和语言表示,其中每个图像—文本对通常包含一袋语义概念。然而,现有的开放词汇表对象检测器仅将 region embeddings 与从VLMs中提取的相应特征单独对齐

这样的设计没有充分利用场景中语义概念的组成结构,尽管VLMs可以隐式地学习该结构。在这项工作中,我们建议将区域包的 embedding 对齐到单个区域之外。所提出的方法将上下文相关的 region 分组为一个袋子。region 在包中的 embedding 被视为词在句子中的 embedding ,并将它们发送到VLM的文本编码器中获得区域包嵌入,并学习与冻结的VLM提取的相应特征对齐。

应用于常用的 Faster R-CNN,我们的方法在开放词汇 COCO 和 LVIS 基准的新类别上分别超过了之前的最佳结果4.6框$AP_{50}$和2.8 mask AP。

二、介绍

传统的目标检测器只能识别在训练阶段学习到的类别,其在现实世界中的应用受到了几乎无限的概念池的限制。开放词汇对象检测(Openvocabulary object detection, OVD)是一种检测训练中缺少类别的对象的任务,近年来引起了越来越多的研究关注。

OVD的一个典型解决方案,称为基于蒸馏的方法,是从预先训练的视觉语言模型(VLMs)中提取丰富和未见类别的知识。特别是,VLMs在大规模图像-文本对上学习对齐的图像和文本表示。

大多数基于蒸馏的方法使用一些精心设计的策略,将每个单独的 region embeddings 与从VLM中提取的相应特征对齐。

image.png

  • (a)典型的视觉语言模型(VLMs)学习将图像和字幕的表示与丰富的组成结构对齐;

  • (b)现有的基于蒸馏的物体探测器将每个单独的区域嵌入到由VLMs的冻结图像编码器提取的特征中。

  • (c)取而代之的是,该方法对区域包的嵌入进行对齐。将袋子中的区域嵌入投影到词嵌入空间(称为伪词)中,形成一个句子,然后发送到文本编码器中,得到区域嵌入袋,并与冻结的VLMs提取的相应图像特征对齐。

我们认为,VLMs已经从大量的图像-文本对中隐式地学习了多个语义概念的固有组成结构(例如,物质和事物的共存)。最近的一项研究MaskCLIP利用这种概念进行零镜头分割。然而,现有的基于蒸馏的OVD方法还没有完全利用封装在VLMs中的成分结构。

BARON很容易实现。如图(c)所示,BARON首先对上下文相关的区域进行采样,形成一个“袋子”。由于区域建议网络(RPN)被证明可以覆盖潜在的新对象,我们探索了一种邻域抽样策略,对 region proposals 周围的 box 进行抽样,以帮助建模一袋视觉概念的共同出现。其次,BARON通过将区域特征投影到词嵌入空间中,并使用冻结的VLM的文本编码器(TE)对这些伪词进行编码,从而获得区域袋嵌入。BARON将区域特征投射到伪词上,自然使TE能够有效地表示共现语义概念,理解整个场景。为了保留区域框的空间信息,BARON将框形和框中心位置投影到嵌入中,并添加到伪词中,然后将它们馈送给TE。

为了训练BARON,学习区域袋嵌入与通过将包含区域袋的图像作物馈送给教师(即VLM的图像编码器(IE))获得的嵌入对齐。我们采用对比学习方法学习伪词和区域袋嵌入。与VLMs的预训练(例如CLIP)一致,对比损失拉近了对应的学生(检测器)和教师(IE)嵌入对,并推开了不对应的对。

我们在OV-COCO和OV-LVIS这两个具有挑战性的基准上进行了广泛的实验。在不同的环境下,所提出的方法始终优于现有的最先进的方法。结合Faster R-CNN, BARON在OV-COCO上实现了34.0(增加4.6)box $AP_{50}$, OV-LVIS上实现了22.6(增加2.8)mask mAP。值得注意的是,BARON还可以从标题监督中提取知识——它在OV-COCO上达到了32.7 box $AP_{50}$的新类别,优于之前使用COCO Caption的方法。

三、相关工作

3.1 视觉语言预训练

视觉语言预训练的目的是在大规模的图像-文本对上学习对齐的图像和文本表示。有许多研究对视觉-语言模型(VLMs)进行预训练,以提高下游识别和生成任务的性能。也有研究学习对齐的视觉语言表示,使图像可以与任意文本分类。

受到VLMs成功的启发,一些工作试图利用视觉-语言表示的对齐来完成密集的预测任务,例如分割和检测。特别是,MaskCLIP表明,VLMs中的图像编码器捕捉了复杂场景中的东西,其中每个概念的像素嵌入自然地与相应的文本表示对齐,尽管原始CLIP模型并没有显式地学习这个目标。这意味着,在经过大量图像-文本对的训练后,VLMs已经隐式地学习了多个语义概念的组成结构,这些概念自然存在于图像-文本对中。

这促使我们探索区域袋和单词袋之间的表示对齐,不同于以往的工作,这些工作专注于对齐VLMs中单个像素、区域或单词的表示。

3.2 开放域目标检测

传统的对象检测器仅限于预定义的对象类别。为了检测不可见类别的物体,提出了零镜头物体检测(zero-shot object detection, ZSD),通过不同的策略将单个区域嵌入与类别的文本嵌入对齐。最近的尝试进一步探索了开放词汇对象检测(OVD),这是一种更通用的ZSD形式,它利用了弱监督,如视觉接地数据、图像标题和图像标签。大规模预训练VLMs也因其出色的零镜头识别能力而得到开发。这些VLMs可以生成条件查询或作为知识蒸馏的好老师。

具体而言,基于蒸馏的方法在预先计算的区域建议上提取嵌入,并将它们单独与从VLMs中获得的相应特征对齐。据我们所知,BARON是第一次尝试将OVD的学习从单个区域提升到区域包。

四、方法

我们的方法首次尝试将OVD的区域包嵌入到单个区域之外。我们称我们的方法为BARON。在这项工作中,我们实例化了基于常用的Faster - RCNN 的BARON思想,并将其修改为OVD。我们设计了一个简单的策略,从区域建议中形成区域包。区域袋被视为单词袋,以获得区域袋嵌入,然后与来自VLMs的相应特征对齐。BARON是通用的,它不仅可以将bag of regions嵌入对齐到图像表征,还可以对齐到文本表征。

4.1 初步行动

在本文中,为了简单起见,我们在Faster RCNN上实例化了这个想法。该思想也可以用于其他适用于OVD的架构。为了使 Faster R-CNN能够检测任意词汇表中的对象,我们将原始分类器替换为一个线性层,该层将区域特征投射到词嵌入空间(称为伪词)。在实践中,线性层将一个区域特征映射到多个伪词,以表示每个对象的丰富语义信息,类似于由多个词组成的类别名称(如马拉小车)。最后,我们将这些伪词输入文本编码器,然后计算与类别嵌入的相似度,得到最终的分类结果。

image.png

  • (a) BARON基于Faster R-CNN,其分类器被线性层取代,将区域特征映射为伪词;

  • (b) BARON将区域提案及其周围的方框组成区域袋;

  • (c) BARON从预训练的VLMs中获得区域包的学生和教师嵌入;

  • (d) BARON通过InfoNCE损失学习对齐,并维护嵌入队列,为InfoNCE损失提供足够的负对。

给定$C$个对象类别,我们通过用提示模板输入类别名称来获得第$C$个类别的嵌入$f_c$,例如:a photo of {category} in scene。输入文本编码器$T$。对于一个区域及其伪词$w$,该区域被归类为第$c$类的概率为:
$$ p_c=\frac{\exp(t\cdot )}{\sum_{i=0}^{C-1}\exp(t\cdot )} $$
其中$<,>$表示余弦相似度,$t$是重新缩放值的温度。

在训练过程中,只对基类的方框进行标注,对基类的学习遵循Faster R-CNN的惯例,有回归和分类损失。为了学习训练中没有边界框注释的新类别,先前基于蒸馏的方法分别将区域嵌入(例如,$T(w)$)与从VLMs中获得的相应特征对齐。为了进一步利用VLM捕获多个概念的组成结构的功能,我们将学习从单个区域提升到区域包。

4.2 构建bag of regions

具体来说,我们选择VLMs的图像编码器作为老师,并期望它来教检测器。但与现有的方法不同,我们希望探测器能够学习多个概念的共存,特别是新对象的潜在存在。为了有效地从VLMs中学习这些知识,我们考虑了袋内区域的以下两个属性:

1)区域需要彼此接近,因为包围距离较远的区域的图像裁剪将包含更大比例的冗余图像内容,分散了图像编码器对区域袋的表示;

2)区域大小相近,区域之间的大小比例不平衡会使图像表示以最大的区域为主。

根据这两个要求,我们采用简单的邻域抽样策略,根据区域建议网络(RPN)预测的区域建议形成区域包。具体而言,对于每个区域方案,我们将其周围的8个方框(邻居)作为候选区域,它们在空间上相互接近,如图2(b)所示。我们允许这些候选框在前景(IOF)上的特定交集略微重叠,以提高区域表示的连续性。为了平衡袋子内区域的大小,我们简单地让8个候选盒子具有与区域建议相同的形状。在实际操作中,超出图像边界超过一定比例的候选者,例如,超过其区域超出图像的$\frac{2}{3}$,将被丢弃。对剩余的候选对象进行独立采样,采样框与区域建议一起形成一个区域袋。

下图展示了 COCO 数据集上区域袋的一些采样结果:

image.png

绿色方框表示区域建议,蓝色方框是抽样邻居(候选)。超出图像边界的区域被裁剪掉。

一个包中的分组区域可以覆盖与区域建议中的对象(绿色)同时出现的对象(蓝色)。共同出现的物体的背景使BARON对区域有了场景级的理解,例如“一匹拉着马车的马”和“一个在海浪上冲浪的人”。新的对象类别偶尔会出现在区域包中,例如左上方图像中的“马车”和右上方图像中的“杯子”。

4.3 表示bag of regions

使用采样的区域袋,BARON从学生(即开放词汇表对象检测器)和教师(即VLMs)获得区域袋嵌入。我们将第$i$组中的第$j$个区域表示为$b_{ij}$,将投影层后的伪词表示为$w_{ij}$。对于预训练的VLM,我们用$T$表示文本编码器,用$V$表示图像编码器。

4.3.1 Student Bag-of-Regions Embedding

由于区域特征被投影到词嵌入空间,并学习与类别的文本嵌入对齐,因此获得一袋区域的嵌入的直接方法是将伪词连接起来并将其馈送到文本编码器$T$。但在此过程中,区域的空间信息会丢失,包括相对盒心位置和相对盒形。中心位置和形状表明了袋子中区域之间的空间关系,这是对袋子区域进行句状解释的必要条件。它们也通过输入中的位置嵌入编码在教师(VLMs的图像编码器)中。因此,BARON参照transformer的做法,将空间信息编码为与$w_{j}^i$具有相同维数的位置嵌入$p_{j}^i$。位置嵌入在拼接前添加到伪词中。假设组的大小是$N^i$,这个表示可以表述为:

$$ f_t^i=T(w_0^i+p_0^i,w_1^i+p_1^i,\cdots,w_{N^i-1}^i+p_{N^i-1}^i) $$

4.3.2 Teacher Bag-of-Regions Embedding

所述分组区域的图像嵌入可通过将所述包围所述区域的图像裁剪馈送给所述图像编码器$V$来获得。所述图像裁剪可包含所述分组区域之外的冗余内容;我们将它们隐藏在$V$的注意力层中。

4.4 对齐bag of regions

BARON将来自学生和教师的区域包嵌入对齐,以使学生学会对可能包含多个概念的多个区域的共存进行编码。我们采用了视觉语言预训练中使用的对比学习方法。具体而言,给定 $G$ 袋区域,袋区域嵌入之间的对准InfoNCE损失计算为:

$$ L_{bag}=-\frac{1}{2}\sum_{k=0}^{G-1}(\log(p_{t,v}^k)+\log(p_{v,t}^k)) $$

4.4.1 Aligning Individual Regions

单个区域的学生和教师嵌入之间的对齐与一组区域的对齐是互补的。因此,我们在实施中也采用了个体层面的蒸馏。为了提高计算效率,我们使用RoiAlign从图像编码器最后一个注意层的特征图中获取教师嵌入,而不是重复地向图像编码器传递图像裁剪。同样,学生嵌入从文本编码器的最后一个注意层中提取,通过平均同一区域的伪词嵌入。

我们应用InfoNCE损失和保持嵌入队列来计算个体级损失。

五、实验结果

在COCO和LVIS两个流行的目标检测数据集上评估了我们的方法。

  • 对于COCO数据集,我们遵循OV -RCNN将对象类别划分为48个基本类别和17个新类别;

  • 对于LVIS数据集,我们遵循ViLD将337个稀有类别划分为新类别,将其余常见和频繁类别划分为基本类别。

  • 为简洁起见,我们将基于COCO和LVIS的开放词汇表基准表示为OV -COCO和OV -L VIS。

在OV-COCO基准上与最先进方法的比较:

我们分别将我们的方法与从CLIP提取知识的方法和使用COCO标题的方法进行比较。

image.png

OV-LVIS与现有方法的比较:

image.png

六、总结

本文超越了OVD中单个区域的学习到区域包的学习,探索了大规模VLMs表示图像-文本对中自然存在的多个概念的组成结构的能力。我们开发了一种邻域采样策略,将上下文相关的区域分组到一个包中,并采用对比学习方法来对齐检测器和预训练的VLMs的区域包表示,从而在多个OVD基准上实现了最新的性能。

本文所探讨的构成结构主要是关于宾语的共现,表现为一袋词。语言中更复杂的组成结构仍有待探索,而现代预先训练的视觉语言模型是否能捕捉到这种结构仍然是社区的一个开放问题。

我们期待着进一步揭示VLMs的行为,更重要的是赋予VLMs类似人类的组成表示,以走向更普遍的智能。

七、补充内容

7.1 采样策略

我们介绍了两种基线抽样策略,即网格抽样和随机抽样。

网格采样策略是像OVR-CNN中的预训练阶段一样,将图像均匀地分割成网格;

随机抽样策略是对区域进行随机抽样,形成一个区域袋。

这两种基线策略让区域袋代表整个图像。我们添加了另外两个策略来将重点转移到邻近(本地)区域。

我们从随机抽样策略开始,让区域袋代表紧密包围它们的图像作物,而不是整个图像(称为random - tight)。

然后我们转向以区域提议为中心的邻域(称为随机邻域)。对于每个中心区域提案,我们随机抽取2个GIOU大于0.5的附近区域提案,制成一袋区域。我们随机选取12个区域方案作为中心,使得区域总数为36个,保证了与其他策略比较的公平性。

7.2 Pseudo Word Encoding

在基于区域的视觉语言表示学习方法中,将视觉特征投射到词嵌入空间是常见的。

在BARON算法中,我们将区域特征投射到伪词中,充分利用多个语义概念的固有组成结构,获得更有特色的特征嵌入。

使用TE编码的伪词,类别被划分为分布更多样化和边界更明确的集群。

相关文章
|
7月前
|
机器学习/深度学习 算法 计算机视觉
计算机视觉实战项目3(图像分类+目标检测+目标跟踪+姿态识别+车道线识别+车牌识别+无人机检测+A路径规划+单目测距与测速+行人车辆计数等)
计算机视觉实战项目3(图像分类+目标检测+目标跟踪+姿态识别+车道线识别+车牌识别+无人机检测+A路径规划+单目测距与测速+行人车辆计数等)
136 2
|
2月前
|
机器学习/深度学习 算法 安全
基于深度学习的目标检测的介绍(Introduction to object detection with deep learning)
基于深度学习的目标检测的介绍(Introduction to object detection with deep learning)
35 0
|
7月前
|
机器学习/深度学习 算法 计算机视觉
计算机视觉实战项目3(图像分类+目标检测+目标跟踪+姿态识别+车道线识别+车牌识别+无人机检测+A*路径规划+单目测距与测速+行人车辆计数等)
计算机视觉实战项目3(图像分类+目标检测+目标跟踪+姿态识别+车道线识别+车牌识别+无人机检测+A*路径规划+单目测距与测速+行人车辆计数等)
|
3月前
|
人工智能 并行计算 PyTorch
AI计算机视觉笔记十八:Swin Transformer目标检测环境搭建
本文详细记录了Swin Transformer在AutoDL平台上的环境搭建与训练过程。作者从租用GPU实例开始,逐步介绍了虚拟环境的创建、PyTorch安装、mmcv及mmdetection的配置,并解决了安装过程中遇到的各种问题,如cython版本冲突等。最后,通过修改代码实现目标检测结果的保存。如需了解更多细节或获取完整代码,请联系作者。原文链接:[原文链接](请在此处插入原文链接)。
|
3月前
|
机器学习/深度学习 人工智能 算法
AI计算机视觉笔记十一:yolo5+Deepsort实现目标检测与跟踪(CPU版)
DeepSORT是一种基于深度学习的计算机视觉跟踪算法,扩展了SORT算法,通过添加外观描述符减少身份切换,提高跟踪效率。本文档提供了DeepSORT环境搭建步骤,包括创建虚拟环境、安装依赖及解决常见错误等,最终实现人员和车辆的跟踪计数功能。适合无GPU设备的学习者参考。
|
4月前
|
UED 开发工具 iOS开发
Uno Platform大揭秘:如何在你的跨平台应用中,巧妙融入第三方库与服务,一键解锁无限可能,让应用功能飙升,用户体验爆棚!
【8月更文挑战第31天】Uno Platform 让开发者能用同一代码库打造 Windows、iOS、Android、macOS 甚至 Web 的多彩应用。本文介绍如何在 Uno Platform 中集成第三方库和服务,如 Mapbox 或 Google Maps 的 .NET SDK,以增强应用功能并提升用户体验。通过 NuGet 安装所需库,并在 XAML 页面中添加相应控件,即可实现地图等功能。尽管 Uno 平台减少了平台差异,但仍需关注版本兼容性和性能问题,确保应用在多平台上表现一致。掌握正确方法,让跨平台应用更出色。
62 0
|
4月前
|
数据采集 API TensorFlow
简化目标检测流程:深入探讨TensorFlow Object Detection API的高效性与易用性及其与传统方法的比较分析
【8月更文挑战第31天】TensorFlow Object Detection API 是一项强大的工具,集成多种先进算法,支持 SSD、Faster R-CNN 等模型架构,并提供预训练模型,简化目标检测的开发流程。用户只需准备数据集并按要求处理,选择预训练模型进行微调训练即可实现目标检测功能。与传统方法相比,该 API 极大地减少了工作量,提供了从数据预处理到结果评估的一站式解决方案,降低了目标检测的技术门槛,使初学者也能快速搭建高性能系统。未来,我们期待看到更多基于此 API 的创新应用。
41 0
|
5月前
|
机器学习/深度学习 人工智能 算法
计算机视觉:目标检测算法综述
【7月更文挑战第13天】目标检测作为计算机视觉领域的重要研究方向,近年来在深度学习技术的推动下取得了显著进展。然而,面对复杂多变的实际应用场景,仍需不断研究和探索更加高效、鲁棒的目标检测算法。随着技术的不断发展和应用场景的不断拓展,相信目标检测算法将在更多领域发挥重要作用。
|
7月前
|
机器学习/深度学习 算法 安全
计算机视觉实战项目4(单目测距与测速+摔倒检测+目标检测+目标跟踪+姿态识别+车道线识别+车牌识别+无人机检测+A_路径规划+行人车辆计数+动物识别等)-2
计算机视觉实战项目4(单目测距与测速+摔倒检测+目标检测+目标跟踪+姿态识别+车道线识别+车牌识别+无人机检测+A_路径规划+行人车辆计数+动物识别等)-2
计算机视觉实战项目4(单目测距与测速+摔倒检测+目标检测+目标跟踪+姿态识别+车道线识别+车牌识别+无人机检测+A_路径规划+行人车辆计数+动物识别等)-2
|
7月前
|
机器学习/深度学习 计算机视觉
AIGC核心技术——计算机视觉(CV)预训练大模型
【1月更文挑战第13天】AIGC核心技术——计算机视觉(CV)预训练大模型
659 3
AIGC核心技术——计算机视觉(CV)预训练大模型

热门文章

最新文章