YOLO-World:实时开放词汇目标检测

摘要

Open Vocabulary:开放词汇
论文链接:https://arxiv.org/pdf/2401.17270.pdf

You Only Look Once (YOLO) 系列检测器已经确立了自己作为高效和实用工具的地位。然而,它们对预定义和训练过的对象类别的依赖限制了它们在开放场景中的适用性。为了解决这个问题,我们引入了 YOLO-World,这是一种创新的方法,通过视觉语言建模和在大规模数据集上的预训练,为 YOLO 增添了开放词汇检测能力。具体来说,我们提出了一种新的可重新参数化的视觉语言路径聚合网络(RepVL-PAN)和区域文本对比损失,以促进视觉和语言信息之间的交互。我们的方法以零样本的方式高效检测各种对象,表现出色。在具有挑战性的 LVIS 数据集上,YOLO-World 在 V100 上实现了 35.4 AP 和 52.0 FPS,在准确性和速度方面都优于许多最先进的方法。此外,经过微调的 YOLO-World 在多个下游任务上表现出色,包括目标检测和开放词汇实例分割。

1、引言

目标检测是计算机视觉中长期存在且基础性的挑战,它在图像理解、机器人技术和自动驾驶等领域有着广泛的应用。随着深度神经网络的发展,大量工作[16, 27, 43, 45]在目标检测方面取得了显著的突破。尽管这些方法取得了成功,但它们仍然受到限制,因为它们仅处理具有固定词汇的目标检测,例如 \mathrm{COCO}[26] 数据集中的80个类别。一旦定义了目标类别并进行了标注,训练过的检测器只能检测那些特定的类别,从而限制了开放场景下的能力和适用性。
在这里插入图片描述

最近的工作[8, 13, 48, 53, 58]已经探索了流行的视觉语言模型[19,39]来解决开放词汇检测[58]问题,通过从语言编码器(例如BERT[5])中提炼词汇知识。然而,由于训练数据稀缺且词汇多样性有限(例如,OV-COCO[58]包含48个基础类别),这些基于蒸馏的方法受到了很大的限制。一些方法[24,30,56,57,59]将目标检测训练重新定义为区域级别的视觉语言预训练,并在大规模上训练开放词汇目标检测器。然而,这些方法在现实世界场景中仍然面临检测的挑战,这主要体现在两个方面:(1)计算负担沉重;(2)对于边缘设备的部署复杂。之前的工作[24,30,56,57,59]已经证明了预训练大型检测器的有前景的性能,而预训练小型检测器以赋予它们开放识别能力仍然是一个未探索的领域。

在本文中,我们提出了YOLO-World,旨在实现高效的开放词汇目标检测,并探索大规模预训练方案,将传统的YOLO检测器提升到一个新的开放词汇世界。与以前的方法相比,提出的YOLO-World具有显著的高效性,具有高推理速度和易于为下游应用部署的特点。具体来说,YOLO-World遵循标准的YOLO架构[20],并利用预训练的CLIP[39]文本编码器对输入文本进行编码。我们进一步提出了可重新参数化的视觉语言路径聚合网络(RepVL-PAN),用于连接文本特征和图像特征,以获得更好的视觉语义表示。在推理过程中,可以移除文本编码器,并将文本嵌入重新参数化为RepVL-PAN的权重,以实现高效的部署。我们还通过在大规模数据集上进行区域-文本对比学习,研究了YOLO检测器的开放词汇预训练方案,将检测数据、定位数据和图像-文本数据统一为区域-文本对。使用丰富的区域-文本对进行预训练的YOLO-World展示了强大的大词汇检测能力,并且训练更多的数据可以进一步提高开放词汇能力。

此外,我们探索了一种“提示-然后-检测”范式,以进一步提高现实世界场景中开放词汇目标检测的效率。如图2所示,传统的目标检测器[16,20,23,41-43,52]主要集中在固定词汇(封闭集)检测上,具有预定义和训练过的类别。而之前的开放词汇检测器[24,30,56,59]使用文本编码器对用户的提示进行编码,以在线处理词汇,并检测目标。值得注意的是,这些方法倾向于使用大型检测器,如Swin-L[32],以增加开放词汇能力。相比之下,“提示-然后-检测”范式(图2(c))首先编码用户的提示以构建离线词汇,该词汇随需求的不同而变化。然后,高效的检测器可以在不重新编码提示的情况下即时推断离线词汇。对于实际应用,一旦我们训练了检测器,即YOLO-World,我们就可以预先编码提示或类别以构建离线词汇,然后将其无缝集成到检测器中。

在这里插入图片描述

我们的主要贡献可以总结为三个方面:

  • 我们引入了YOLO-World,这是一种针对现实世界应用的高效前沿开放词汇目标检测器。
  • 我们提出了一种可重新参数化的视觉语言PAN,用于连接视觉和语言特征,以及一种针对YOLO-World的开放词汇区域-文本对比预训练方案。
  • 在大规模数据集上预训练的YOLO-World表现出强大的零样本性能,在LVIS上实现了35.4的AP,同时保持了52.0的FPS。预训练的YOLO-World可以轻松地适应下游任务,例如开放词汇实例分割和指代目标检测。此外,我们将公开YOLO-World的预训练权重和代码,以促进更多的实际应用。

2、相关工作

2.1、传统目标检测

传统的目标检测研究主要集中在固定词汇(封闭集)检测上,其中目标检测器在具有预定义类别的数据集上进行训练,例如COCO数据集[26]和Objects365数据集[46],然后在固定类别的集合内检测目标。在过去的几十年里,传统目标检测的方法可以简单地分为三组,即基于区域的方法、基于像素的方法和基于查询的方法。基于区域的方法[11, 12, 16, 27, 44],如Faster R-CNN[44],采用两阶段框架进行提议生成[44]和RoI-wise(感兴趣区域)分类和回归。基于像素的方法[28, 31, 42, 49, 61]往往是一阶段检测器,在预定义的锚点或像素上进行分类和回归。DETR[1]首次通过变换器[50]探索目标检测,并激发了大量的基于查询的方法[64]。在推理速度方面,Redmon等人提出了YOLO系列[40-42],它们利用简单的卷积架构实现实时目标检测。一些工作[10,23,33,52,55]为YOLO提出了各种架构或设计,包括路径聚合网络[29]、跨阶段部分网络[51]和重新参数化[6],这些进一步提高了速度和准确性。与之前的YOLO相比,本文中的YOLO-World旨在检测固定词汇之外的目标,并具有很强的泛化能力。

2.2、开放词汇目标检测

开放词汇目标检测(OVD)[58]已成为现代目标检测的新趋势,旨在检测预定义类别之外的目标。早期工作[13]遵循标准的OVD设置[58],在基础类别上训练检测器并评估新颖(未知)类别。然而,尽管这种开放词汇设置可以评估检测器检测和识别新颖目标的能力,但由于在有限的数据集和词汇上进行训练,它仍然局限于开放场景,并且缺乏向其他领域推广的能力。受到视觉语言预训练[19,39]的启发,最近的工作[8,22,53,62,63]将开放词汇目标检测表述为图像-文本匹配,并利用大规模图像-文本数据来增加训练词汇的规模。OWLViTs[35,36]使用检测和定位数据集对简单的视觉变换器[7]进行微调,并构建了具有出色性能的简单开放词汇检测器。GLIP[24]提出了一种基于短语定位的开放词汇检测预训练框架,并在零样本设置下进行评估。Grounding DINO[30]将定位预训练[24]融入检测变换器[60]中,实现跨模态融合。一些方法[25,56,57,59]通过区域-文本匹配将检测数据集和图像-文本数据集统一起来,并使用大规模图像-文本对进行预训练,实现了出色的性能和泛化能力。然而,这些方法通常使用像ATSS[61]或DINO[60]这样的重型检测器,并使用Swin-L[32]作为骨干网络,导致计算需求高且部署具有挑战性。相比之下,我们提出了YOLO-World,旨在实现高效、实时推理和易于下游应用部署的开放词汇目标检测。与ZSD-YOLO [54] 不同,后者也通过语言模型对齐在YOLO上探索了开放词汇检测[58],YOLO-World引入了一个新颖的YOLO框架和有效的预训练策略,从而提高了开放词汇的性能和泛化能力。

3、方法

3.1、预训练公式:区域-文本对

传统的目标检测方法,包括YOLO系列[20],使用实例标注 Ω = { B i , c i } i = 1 N \Omega=\left\{B_{i}, c_{i}\right\}_{i=1}^{N} Ω={Bi,ci}i=1N 进行训练,这些标注由边界框 { B i } \left\{B_{i}\right\} {Bi} 和类别标签 { c i } \left\{c_{i}\right\} {ci} 组成。在本文中,我们将实例标注重新定义为区域-文本对 Ω = { B i , t i } i = 1 N \Omega=\left\{B_{i}, t_{i}\right\}_{i=1}^{N} Ω={Bi,ti}i=1N,其中 t i t_{i} ti 是对应于区域 B i B_{i} Bi 的文本。具体来说,文本 t i t_{i} ti 可以是类别名称、名词短语或对象描述。此外,YOLO-World采用图像 I I I 和文本 T T T(一组名词)作为输入,并输出预测的边界框 { B ^ k } \left\{\hat{B}_{k}\right\} {B^k} 和相应的对象嵌入 { e k } \left\{e_{k}\right\} {ek} e k ∈ R D e_{k} \in \mathbb{R}^{D} ekRD)。

3.2、模型架构

所提出的YOLO-World的整体架构如图3所示,包括一个YOLO检测器、一个文本编码器和一个可重新参数化的视觉-语言路径聚合网络(RepVL-PAN)。给定输入文本,YOLO-World中的文本编码器将文本编码为文本嵌入。YOLO检测器中的图像编码器从输入图像中提取多尺度特征。然后,我们利用RepVL-PAN通过利用图像特征和文本嵌入之间的跨模态融合来增强文本和图像表示。
在这里插入图片描述

YOLO检测器。YOLO-World主要基于YOLOv8[20]进行开发,其中包含一个Darknet骨干网[20,43]作为图像编码器,一个用于多尺度特征金字塔的路径聚合网络(PAN),以及一个用于边界框回归和对象嵌入的头部。

文本编码器。给定文本 (T),我们采用由CLIP[39]预训练的Transformer文本编码器来提取相应的文本嵌入 W = TextEncoder ( T ) ∈ R C × D W = \text{TextEncoder}(T) \in \mathbb{R}^{C \times D} W=TextEncoder(T)RC×D,其中 C 表示名词的数量,D 是嵌入的维度。与仅使用文本的语言编码器相比[5],CLIP文本编码器提供了更好的视觉语义能力,用于将视觉对象与文本连接起来。当输入文本是标题或指代表达式时,我们采用简单的n-gram算法提取名词短语,并将其作为输入传递给文本编码器。

文本对比头。遵循以前的工作[20],我们采用解耦头,该解耦头包含两个 3 × 3 3 \times 3 3×3 的卷积层,用于回归边界框 { b k } k = 1 K \left\{b_{k}\right\}_{k=1}^{K} {bk}k=1K 和对象嵌入 { e k } k = 1 K \left\{e_{k}\right\}_{k=1}^{K} {ek}k=1K,其中 K 表示对象的数量。为了获得对象与文本之间的相似度 s k , j s_{k, j} sk,j,我们引入了一个文本对比头,其计算方式如下:
s k , j = α ⋅ L 2 − Norm ⁡ ( e k ) ⋅ L 2 − Norm ⁡ ( w j ) ⊤ + β , s_{k, j}=\alpha \cdot \mathrm{L} 2-\operatorname{Norm}\left(e_{k}\right) \cdot \mathrm{L} 2-\operatorname{Norm}\left(w_{j}\right)^{\top}+\beta, sk,j=αL2Norm(ek)L2Norm(wj)+β,

其中, L 2 − Norm ( ⋅ ) L2-\text{Norm}(\cdot) L2Norm() L 2 L2 L2 归一化,而 w j ∈ W w_j \in W wjW 是第 j j j 个文本嵌入。此外,我们添加了具有可学习缩放因子 α \alpha α 和偏移因子 β \beta β 的仿射变换。 L 2 L2 L2 归一化和仿射变换对于稳定区域文本训练都非常重要。

在线词汇训练。在训练过程中,我们为每个包含 4 张图像的马赛克样本构建一个在线词汇 T T T。具体来说,我们采样马赛克图像中涉及的所有正名词,并从相应的数据集中随机采样一些负名词。每个马赛克样本的词汇最多包含 M M M 个名词,并且默认设置 M M M 为 80。

离线词汇推理。在推理阶段,我们提出了一种使用离线词汇的“提示-然后-检测”策略,以提高效率。如图 3 所示,用户可以定义一系列自定义提示,可能包括标题或类别。然后,我们利用文本编码器对这些提示进行编码,并获得离线词汇嵌入。离线词汇允许避免对每个输入进行计算,并提供根据需要调整词汇的灵活性。
在这里插入图片描述

3.3、可重参数化的视觉语言 PAN

图 4 展示了提出的 RepVL-PAN 的结构,它遵循 [20,29] 中的自上而下和自下而上的路径,使用多尺度图像特征 { C 3 , C 4 , C 5 } \{C_{3}, C_{4}, C_{5}\} {C3,C4,C5} 建立特征金字塔 { P 3 , P 4 , P 5 } \{P_{3}, P_{4}, P_{5}\} {P3,P4,P5}。此外,我们提出了文本指导的 CSPLayer(T-CSPLayer)和图像池化注意力(I-Pooling Attention),以进一步增强图像特征和文本特征之间的交互,从而提高开放词汇能力的视觉语义表示。在推理阶段,离线词汇嵌入可以被重参数化为卷积层或线性层的权重以进行部署。

文本指导的 CSPLayer。如图 4 所示,在自上而下或自下而上的融合之后,我们使用了跨阶段部分层(CSPLayer)。我们通过将文本指导纳入多尺度图像特征中,扩展了 [20] 中的 CSPLayer(也称为 C2f),形成了文本指导的 CSPLayer。具体来说,给定文本嵌入 W W W 和图像特征 X l ∈ R H × W × D ( l ∈ { 3 , 4 , 5 } ) X_{l} \in \mathbb{R}^{H \times W \times D}(l \in\{3,4,5\}) XlRH×W×D(l{3,4,5}),我们在最后一个暗瓶颈块之后采用最大 Sigmoid 注意力,通过以下方式将文本特征聚合到图像特征中:

X l ′ = X l ⋅ δ ( max ⁡ j ∈ { 1 , … , C } ( X l W j ⊤ ) ) ⊤ , X_{l}^{\prime} = X_{l} \cdot \delta\left(\max _{j \in\{1, \ldots, C\}}\left(X_{l} W_{j}^{\top}\right)\right)^{\top}, Xl=Xlδ(j{1,,C}max(XlWj)),

其中,更新的 X l ′ X_{l}^{\prime} Xl 与跨阶段特征拼接作为输出。 δ \delta δ 表示 Sigmoid 函数。

Image-Pooling Attention. 为了通过图像信息增强文本嵌入,我们提出了 Image-Pooling Attention,通过聚合图像特征来更新文本嵌入。与直接在图像特征上使用交叉注意力不同,我们利用多尺度特征上的最大池化来获得 3 × 3 的区域,从而得到总共 27 个补丁令牌 X ~ ∈ R 27 × D \tilde{X} \in \mathbb{R}^{27 \times D} X~R27×D。然后,通过以下方式更新文本嵌入:

W ′ = W + MultiHead-Attention ( W , X ~ , X ~ ) W^{\prime} = W + \text{MultiHead-Attention}(W, \tilde{X}, \tilde{X}) W=W+MultiHead-Attention(W,X~,X~)

3.4、预训练方案

在本节中,我们将介绍在大规模检测、定位和图像-文本数据集上预训练 YOLO-World 的训练方案。

从区域-文本对比损失中学习。给定马赛克样本 I I I 和文本 T T T,YOLO-World 输出 K K K 个对象预测 { B k , s k } k = 1 K \left\{B_{k}, s_{k}\right\}_{k=1}^{K} {Bk,sk}k=1K 以及注释 Ω = { B i , t i } i = 1 N \Omega=\left\{B_{i}, t_{i}\right\}_{i=1}^{N} Ω={Bi,ti}i=1N。我们遵循 [20] 并利用任务对齐的标签分配 [9] 将预测与真实标注进行匹配,并为每个正预测分配一个文本索引作为分类标签。基于这个词汇表,我们构建区域-文本对比损失 L con  \mathcal{L}_{\text {con }} Lcon ,通过对象-文本(区域-文本)相似性与对象-文本分配之间的交叉熵来实现。此外,我们采用 IoU 损失和分布式焦点损失进行边界框回归,总训练损失定义为: L ( I ) = L con  + λ I ⋅ ( L iou  + L dfl  ) \mathcal{L}(I)=\mathcal{L}_{\text {con }}+\lambda_{I} \cdot\left(\mathcal{L}_{\text {iou }}+\mathcal{L}_{\text {dfl }}\right) L(I)=Lcon +λI(Liou +Ldfl ),其中 λ I \lambda_{I} λI 是一个指示因子,当输入图像 I I I 来自检测或定位数据时设置为 1,当来自图像-文本数据时设置为 0。考虑到图像-文本数据集存在噪声框,我们仅对具有准确边界框的样本计算回归损失。

使用图像-文本数据进行伪标注。为了利用图像-文本数据进行预训练,我们提出了一种自动标注方法来生成区域-文本对。具体来说,这个标注方法包含以下三个步骤:

(1)提取名词短语:我们首先利用n-gram算法从文本中提取名词短语。

(2)伪标注:我们采用一个预训练的开放词汇检测器,例如GLIP [24],为给定的名词短语生成每个图像的伪边界框,从而提供粗略的区域-文本对。

(3)过滤:我们使用预训练的CLIP [39]来评估图像-文本对和区域-文本对的相关性,并过滤掉低相关性的伪标注和图像。此外,我们还通过融入如非极大值抑制(NMS)等方法来过滤冗余的边界框。

我们建议读者参考附录以获取详细的方法描述。通过上述方法,我们从CC3M [47]中抽取并标注了246k张图像,产生了821k个伪标注。

4、实验

在本节中,我们通过在大规模数据集上预训练来展示提出的YOLO-World的有效性,并在LVIS基准和COCO基准上以零样本方式评估YOLO-World(第4.2节)。我们还评估了YOLOWorld在COCO、LVIS上的对象检测微调性能。

4.1、实现细节

YOLO-World是基于MMYOLO工具箱[3]和MMDetection工具箱[2]开发的。根据[20],我们为不同的延迟要求提供了YOLO-World的三个变体,例如小型(S)、中型(M)和大型(L)。我们采用开源的CLIP[39]文本编码器与预训练权重来编码输入文本。除非另有说明,我们在没有额外加速机制(例如FP16或TensorRT)的NVIDIA V100 GPU上测量所有模型的推理速度。

4.2、预训练

实验设置。在预训练阶段,我们采用AdamW优化器[34],初始学习率为0.002,权重衰减为0.05。YOLO-World在32个NVIDIA V100 GPU上训练100个周期,总批处理大小为512。在预训练过程中,我们遵循以前的工作[20]并采用颜色增强、随机仿射、随机翻转以及由4张图像组成的马赛克进行数据增强。在预训练期间,文本编码器被冻结。
在这里插入图片描述

预训练数据。为了预训练YOLO-World,我们主要采用了包括Objects365 (V1) [46]、GQA [17]、Flickr30k [38]在内的检测或定位数据集,如表1所示。遵循[24],我们排除了来自COCO数据集中的GoldG [21](GQA和Flickr30k)的图像。用于预训练的检测数据集的注释包含边界框和类别或名词短语。此外,我们还通过第3.4节中讨论的伪标注方法扩展了预训练数据,使用图像-文本对,即 C C 2 M † \mathrm{CC}^{2} \mathrm{M}^{\dagger} CC2M [47],我们标注了246k张图像。

零样本评估。预训练后,我们直接在LVIS数据集[14]上以零样本方式评估提出的YOLO-World。LVIS数据集包含1203个对象类别,远多于预训练检测数据集的类别,并且可以衡量在大词汇表检测上的性能。遵循以前的工作[21, 24, 56, 57],我们主要在LVIS minival [21]上进行评估,并报告Fixed AP [4]以供比较。预测的最大数量设置为1000。

LVIS对象检测的主要结果。在表2中,我们以零样本方式在LVIS基准上与最近的最先进方法[21, 30, 56, 57, 59]比较了提出的YOLO-World。考虑到计算负担和模型参数,我们主要与基于更轻量级骨干网(例如Swin-T [32])的方法进行比较。值得注意的是,YOLO-World在零样本性能和推理速度方面均优于以前的最先进方法。与整合了更多数据(例如Cap4M(CC3M+SBU [37]))的GLIP、GLIPv2和Grounding DINO相比,YOLO-World在O365&GolG上预训练后,即使模型参数更少,也获得了更好的性能。与DetCLIP相比,YOLO-World在保持相当性能(35.4 vs 34.4)的同时,推理速度提高了20倍。实验结果还表明,小型模型(例如参数为13M的YOLO-World-S)可用于视觉语言预训练,并获得强大的开放词汇表能力。

在这里插入图片描述

4.3、消融实验

我们提供了广泛的消融研究,从预训练和架构两个方面分析YOLOWorld。除非另有说明,我们主要基于YOLO-World-L进行消融实验,并使用Objects365进行预训练,在LVIS minival上进行零样本评估。
在这里插入图片描述

预训练数据。在表3中,我们评估了使用不同数据预训练YOLO-World的性能。与在Objects365上训练的基线相比,添加GQA可以显著提高性能,LVIS上的AP增益为8.4。这种改进可以归因于GQA数据集提供的更丰富的文本信息,这可以增强模型识别大词汇表对象的能力。添加部分CC3M样本(占完整数据集的8%)可以进一步带来0.5 AP的增益,其中罕见对象的AP为1.3。表3表明,添加更多数据可以有效地提高大词汇表场景下的检测能力。此外,随着数据量的增加,性能继续提高,这突出了利用更大、更多样的数据集进行训练的好处。
在这里插入图片描述

RepVL-PAN的消融实验。表4展示了YOLO-World中提出的RepVL-PAN(包括文本引导的CSPLayers和图像池化注意力)在零样本LVIS检测中的有效性。具体来说,我们采用了两种设置,即(1)在O365上进行预训练;(2)在O365和GQA上进行预训练。与仅包含类别标注的O365相比,GQA包含丰富的文本,特别是以名词短语的形式。如表4所示,提出的RepVL-PAN在LVIS上比基线(YOLOv8-PAN [20])提高了1.1 AP,并且在LVIS的稀有类别(APr)方面的改进尤为显著,这些类别难以检测和识别。此外,当YOLO-World使用GQA数据集进行预训练时,改进变得更加显著,实验表明提出的RepVL-PAN与丰富的文本信息配合得更好。
在这里插入图片描述

文本编码器。在表5中,我们比较了使用不同文本编码器的性能,即BERT-base [5]和CLIP-base(ViT-base) [39]。在预训练期间,我们采用了两种设置,即冻结和微调,微调文本编码器的学习率是基本学习率的0.01倍。如表5所示,CLIP文本编码器在LVIS的稀有类别上比BERT获得了更好的结果(+10.1 AP),这是因为CLIP使用图像文本对进行预训练,具有更好的以视觉为中心的嵌入能力。在预训练期间微调BERT带来了显著的改进(+3.7 AP),而微调CLIP则导致性能严重下降。我们认为这是由于在O365上进行微调可能会降低预训练CLIP的泛化能力,其中仅包含365个类别且缺乏丰富的文本信息。

4.4、YOLO-World的微调

在本节中,我们进一步在COCO数据集和LVIS数据集上对YOLO-World进行微调,以展示预训练的有效性。

实验设置。我们使用预训练的权重来初始化YOLO-World进行微调。所有模型都使用AdamW优化器进行80个epoch的微调,初始学习率设置为0.0002。此外,我们以0.01的学习因子微调CLIP文本编码器。对于LVIS数据集,我们遵循之前的工作[8,13,63],在LVIS-base(common & frequent)上微调YOLO-World,并在LVIS-novel(rare)上进行评估。
在这里插入图片描述
COCO目标检测。我们在表6中将预训练的YOLO-World与之前的YOLO检测器[20, 23, 52]进行了比较。为了在COCO数据集上进一步加速YOLO-World的微调,我们移除了提出的RepVL-PAN。如表6所示,我们的方法在COCO数据集上可以实现不错的零样本性能,这表明YOLO-World具有强大的泛化能力。此外,与从头开始训练的先前方法相比,在COCO train2017上微调后的YOLO-World展示了更高的性能。

在这里插入图片描述

LVIS目标检测。在表7中,我们评估了YOLO-World在标准LVIS数据集上的微调性能。首先,与在完整LVIS数据集上训练的oracle YOLOv8s [20]相比,YOLO-World取得了显著的改进,尤其是对于较大的模型,例如YOLO-World-L比YOLOv8-L高出7.2 AP和10.2 APr。这些改进证明了所提出的预训练策略对于大词汇表检测的有效性。此外,YOLO-World作为一种高效的一阶段检测器,在没有额外设计的情况下,如可学习的提示[8]或基于区域的对齐[13],在整体性能上超过了之前的最新两阶段方法[8,13,22,53,63]。

4.5、开放词汇实例分割

在本节中,我们进一步在开放词汇设置下对YOLO-World进行微调,以实现对象的实例分割,这可以称为开放词汇实例分割(OVIS)。之前的方法[18]通过在新对象上进行伪标签来探索OVIS。不同的是,考虑到YOLO-World具有强大的迁移和泛化能力,我们直接在带有遮罩注释的数据子集上对YOLO-World进行微调,并在大词汇表设置下评估分割性能。具体来说,我们在以下两个设置下对开放词汇实例分割进行基准测试:

  1. COCO到LVIS设置:我们在带有遮罩注释的COCO数据集(包括80个类别)上对YOLO-World进行微调。在此设置下,模型需要从80个类别迁移到1203个类别(80→1203)。

  2. LVIS-base到LVIS设置:我们在带有遮罩注释的LVIS-base(包括866个类别,common & frequent)上对YOLO-World进行微调。在此设置下,模型需要从866个类别迁移到1203个类别(866→1203)。

我们在包含1203个类别的标准LVIS val2017上评估微调后的模型,其中337个罕见类别是未见过的,可以用于测量开放词汇性能。通过这两个设置,我们能够评估YOLO-World在开放词汇环境下的迁移和泛化能力,尤其是在面对未见过的类别时。
在这里插入图片描述

结果。表8展示了将YOLO-World扩展到开放词汇实例分割的实验结果。具体来说,我们采用了两种微调策略:(1)仅微调分割头部;(2)微调所有模块。在策略(1)下,微调后的YOLO-World仍然保留了从预训练阶段获得的零样本能力,使其能够推广到未见过的类别,而无需额外的微调。策略(2)使YOLO-World更好地适应LVIS数据集,但可能会导致零样本能力的下降。

表8比较了在不同设置(COCO或LVIS-base)和不同策略(微调分割头部或微调所有模块)下微调YOLO-World的结果。首先,与基于COCO的微调相比,基于LVIS-base的微调获得了更好的性能。然而,AP和APr(APr/AP)之间的比率几乎保持不变,例如,在COCO和LVIS-base上的YOLO-World的比率分别为76.5%和74.3%。考虑到检测器被冻结,我们将性能差距归因于LVIS数据集提供了更详细和密集的分割注释,这对于学习分割头部是有益的。当微调所有模块时,YOLO-World在LVIS上获得了显著的改进,例如,YOLO-World-L实现了9.6的AP增益。然而,微调可能会降低开放词汇性能,导致YOLO-World-L的box APr下降0.6。

4.6、可视化结果

我们提供了在三种设置下预训练的YOLO-World-L的可视化结果:(a)我们使用LVIS类别进行零样本推理;(b)我们输入具有属性的细粒度类别的自定义提示;(c)引用检测。这些可视化结果也证明了YOLO-World在开放词汇场景下的强大泛化能力和引用能力。

LVIS上的零样本推理:图5展示了基于LVIS类别,通过预训练的YOLO-World-L以零样本方式进行生成的可视化结果。预训练的YOLO-World表现出强大的零样本迁移能力,并能够在图像中尽可能多地检测对象。
在这里插入图片描述

使用用户词汇的推理:在图6中,我们探索了YOLO-World使用我们定义的类别的检测能力。可视化结果证明,预训练的YOLO-World-L还具有(1)细粒度检测(即检测一个对象的部分)和(2)细粒度分类(即区分对象的不同子类别)的能力。
在这里插入图片描述

这些可视化结果进一步证实了YOLO-World在开放词汇实例分割任务中的有效性,特别是在处理未见过的类别和细粒度检测时。通过利用预训练的强大特征和迁移能力,YOLO-World能够在实际应用中实现高性能和灵活性。
在这里插入图片描述

引用目标检测:在图7中,我们利用一些描述性(可辨别的)名词短语作为输入,例如“站立的人”,来探索模型是否能够定位图像中与给定输入匹配的区域或对象。可视化结果展示了这些短语及其对应的边界框,证明了预训练的YOLO-World具有引用或定位能力。这种能力可以归因于我们提出的使用大规模训练数据的预训练策略。

5、结论

我们介绍了YOLO-World,这是一种前沿的实时开放词汇检测器,旨在提高现实世界应用中的效率和开放词汇能力。在本文中,我们将流行的YOLO重新塑造为用于开放词汇预训练和检测的视觉语言YOLO架构,并提出了RepVL-PAN,它将视觉和语言信息与网络连接起来,并可以进行重新参数化以进行高效部署。我们进一步提出了有效的预训练方案,结合检测、定位和图像-文本数据,使YOLO-World具备强大的开放词汇检测能力。实验证明了YOLO-World在速度和开放词汇性能方面的优越性,并表明在小型模型上进行视觉语言预训练的有效性,这对未来的研究具有启示意义。我们希望YOLO-World能够成为解决现实世界开放词汇检测问题的新基准。

A.1. RepVL-PAN 的重新参数化

在离线词汇的推理过程中,我们采用重新参数化来优化 RepVL-PAN,以加快推理速度和部署。首先,我们通过文本编码器预先计算文本嵌入 W ∈ R C × D W \in \mathbb{R}^{C \times D} WRC×D

重新参数化 T-CSPLayer。对于 RepVL-PAN 中的每个 T-CSPLayer,我们可以通过将文本嵌入 W ∈ R C × D × 1 × 1 W \in \mathbb{R}^{C \times D \times 1 \times 1} WRC×D×1×1 重塑为 1 × 1 1 \times 1 1×1 卷积层(或线性层)的权重来重新参数化和简化添加文本指导的过程,如下所示:

X ′ = X ⊙ sigmoid ( max ⁡ ( Conv ( X , W ) , dim = 1 ) ) , X^{\prime} = X \odot \text{sigmoid}(\max (\text{Conv}(X, W), \text{dim}=1)), X=Xsigmoid(max(Conv(X,W),dim=1)),

其中 X ∈ R B × D × H × W X \in \mathbb{R}^{B \times D \times H \times W} XRB×D×H×W X ′ ∈ R B × D × H × W X^{\prime} \in \mathbb{R}^{B \times D \times H \times W} XRB×D×H×W 分别是输入和输出图像特征。 ⊙ \odot 是具有重塑或转置的矩阵乘法。

重新参数化 I-Pooling 注意力。I-Pooling 注意力可以通过以下方式进行重新参数化或简化:

X ~ = cat ( MP ( X 3 , 3 ) , MP ( X 4 , 3 ) , MP ( X 5 , 3 ) ) , \tilde{X} = \text{cat}\left(\text{MP}\left(X_{3}, 3\right), \text{MP}\left(X_{4}, 3\right), \text{MP}\left(X_{5}, 3\right)\right), X~=cat(MP(X3,3),MP(X4,3),MP(X5,3)),

其中,cat 表示拼接操作, MP ( ⋅ , 3 ) \text{MP}(\cdot, 3) MP(,3) 表示对 3 × 3 3 \times 3 3×3 的输出特征进行最大池化。 { X 3 , X 4 , X 5 } \left\{X_{3}, X_{4}, X_{5}\right\} {X3,X4,X5} 是 RepVL-PAN 中的多尺度特征。 X ~ \tilde{X} X~ 被展平后具有形状 B × D × 27 B \times D \times 27 B×D×27。然后,我们可以按以下方式更新文本嵌入:

W ′ = W + Softmax ( W ⊙ X ~ ) , dim = − 1 ) ⊙ W , W^{\prime} = W + \text{Softmax}(W \odot \tilde{X}), \text{dim}=-1) \odot W, W=W+Softmax(WX~),dim=1)W,

A.2. 微调细节

当将 YOLO-World 转移到 COCO [26] 目标检测任务时,我们移除了 RepVL-PAN 中的所有 T-CSPLayers 和 Image-Pooling Attention。COCO 数据集仅包含 80 个类别,对视觉与语言交互的依赖相对较低。在微调过程中,我们使用预训练的权重来初始化 YOLO-World。微调的学习率设置为 0.0002,权重衰减设置为 0.05。微调完成后,我们使用给定的 COCO 类别预计算类别文本嵌入,并将这些嵌入存储到分类层的权重中。这样做有助于模型更好地适应 COCO 数据集的特点,并提升目标检测的性能。

B、大规模图像文本数据的自动标注

在本节中,我们增加了使用大规模图像文本数据(例如CC3M [47])标注区域文本对的详细步骤。整体标注流程如图8所示,主要包括三个步骤,即(1)提取对象名词,(2)伪标注和(3)过滤。如第3.4节所述,我们采用简单的n-gram算法从字幕中提取名词。
在这里插入图片描述

区域文本提议。在从第一步获得对象名词集合 T = { t k } K T=\left\{t_{k}\right\}^{K} T={tk}K 后,我们利用预训练的开放词汇检测器,即GLIP-L [24],生成带有置信度分数 { c i } \left\{c_{i}\right\} {ci} 的伪边界框 { B i } \left\{B_{i}\right\} {Bi}

{ B i , t i , c i } i = 1 N = GLIP-Labeler ( I , T ) , \left\{B_{i}, t_{i}, c_{i}\right\}_{i=1}^{N}=\text{GLIP-Labeler}(I, T), {Bi,ti,ci}i=1N=GLIP-Labeler(I,T),

其中, { B i , t i , c i } i = 1 N \left\{B_{i}, t_{i}, c_{i}\right\}_{i=1}^{N} {Bi,ti,ci}i=1N 是粗略的区域文本提议。这些提议为后续的过滤和微调步骤提供了基础数据。通过这种方式,我们可以利用大规模图像文本数据自动标注区域文本对,从而节省大量的人力和时间成本。

基于CLIP的重新评分与过滤。考虑到区域文本提议中包含大量噪声,我们利用预训练的CLIP模型[39]提出了一个恢复和过滤流程。给定输入图像I、字幕T以及粗略的区域文本提议 { B i , t i , c i } i = 1 N \left\{B_{i}, t_{i}, c_{i}\right\}_{i=1}^{N} {Bi,ti,ci}i=1N,具体流程如下:

  1. 计算图像-文本得分:我们将图像I及其字幕T输入到CLIP模型中,得到图像-文本相似度得分 s i m g s^{img} simg
  2. 计算区域-文本得分:根据区域框 { B i } \left\{B_{i}\right\} {Bi}从输入图像中裁剪出区域图像。然后,我们将裁剪后的图像及其文本 { t i } \left\{t_{i}\right\} {ti}输入到CLIP模型中,得到区域-文本相似度 S r = { s i r } i = 1 N S^{r}=\left\{s_{i}^{r}\right\}_{i=1}^{N} Sr={sir}i=1N
  3. [可选]重新标注:我们可以将每个裁剪后的图像与所有名词一起输入,并分配具有最大相似度的名词,这有助于纠正GLIP错误标注的文本。
  4. 重新评分:我们采用区域-文本相似度 S r S^{r} Sr对置信度得分进行重新评分,得到 c ~ i = c i ∗ s i r \tilde{c}_{i}=\sqrt{c_{i} * s_{i}^{r}} c~i=cisir
  5. 区域级别过滤:我们首先将区域文本提议根据文本分为不同的组,然后执行非最大抑制(NMS)以过滤重复预测(NMS阈值设置为0.5)。接着,我们过滤掉置信度得分较低的区域文本提议(阈值设置为0.3)。
  6. 图像级别过滤:我们计算图像级别的区域-文本得分 s r e g i o n s^{region} sregion,通过平均保留的区域-文本得分得到。然后,我们计算图像级别的置信度得分 s = s i m g ∗ s r e g i o n s=\sqrt{s^{img} * s^{region}} s=simgsregion ,并保留得分大于0.3的图像。

上述阈值是根据部分标注结果经验性地设定的,整个流程是自动的,无需人工验证。最终,标注的样本用于预训练YOLO-World。我们将提供CC3M的伪标注,以供进一步研究。

C、大规模预训练 YOLO-World

在预训练小型模型(例如 YOLO-World-S)时,我们自然会问:小型模型具有多少容量,以及小型模型需要多少训练数据或哪种类型的数据?为了回答这个问题,我们利用不同数量的伪标签区域-文本对来预训练 YOLO-World。如表 9 所示,添加更多的图像-文本样本可以提高 YOLO-World-S 的零样本性能。表 9 表明:(1)添加图像-文本数据可以提高 YOLO-World-S 的整体零样本性能;(2)对于小型模型(YOLO-World-S),使用过多的伪标签数据可能会有一些负面影响,尽管它可以提高罕见类别 \left(\mathrm{AP}_{r}\right) 的性能。然而,对于小型模型使用细粒度注释(GoldG)可以提供显著的改进,这表明大规模高质量标注数据可以显著增强小型模型的能力。主文本中的表 3 已经显示,使用细粒度标注数据和伪标注数据的组合进行预训练可以获得更好的性能。我们将在未来的工作中进一步研究用于预训练小型模型或 YOLO 检测器的数据。

在这里插入图片描述

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

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

MYSQL使用mysqldump备份、复原数据库

参考 添加链接描述 1. 备份数据库 C:\Windows\system32>mysqldump -uroot -p test student>C:\student.sql Enter password: ****2. 备份多个数据库 mysqldump -u root -p --databases test mysql>C:\testandmysql.sql3. 备份所有数据库 mysqldump -u root -p -…

Java+SpringBoot+Vue+MySQL:农业管理新篇章

✍✍计算机毕业编程指导师 ⭐⭐个人介绍:自己非常喜欢研究技术问题!专业做Java、Python、微信小程序、安卓、大数据、爬虫、Golang、大屏等实战项目。 ⛽⛽实战项目:有源码或者技术上的问题欢迎在评论区一起讨论交流! ⚡⚡ Java、…

SICP解读指南:深度阅读 “计算机领域三巨头” 之一(文末送书)

🌈个人主页:聆风吟_ 🔥系列专栏:Linux实践室、网络奇遇记 🔖少年有梦不应止于心动,更要付诸行动。 文章目录 📋前言一. 书籍介绍1.1 SICP侧重点1.2 SICP章节介绍 二. 书籍推荐2.1 书籍介绍2.2 推…

打家劫舍(java版)

📑前言 本文主要是【动态规划】——打家劫舍(java版)的文章,如果有什么需要改进的地方还请大佬指出⛺️ 🎬作者简介:大家好,我是听风与他🥇 ☁️博客首页:CSDN主页听风与他 🌄每日一…

YTM32同步串行通信引擎SPI外设详解(slave part)

YTM32同步串行通信引擎SPI外设详解(slave part) 文章目录 YTM32同步串行通信引擎SPI外设详解(slave part)IntroductionPricinple & Mechinism引脚信号Slave从机工作模式发送/命令FIFO和接收FIFOMatch匹配接收功能硬件片选和内…

100 spring-security 中 /oauth/token 发送请求不携带参数 报错 “401 Unauthorized“

前言 最近存在这样的一个问题, 大致的复现方式是 访问 /oauth/token 接口, 然后不携带任何参数, 结果 服务器抛出了一个 "401 Unauthorized" 针对这个 401, 这里 梳理一下这个流程, 也会衍生出一些其他的问题 测试用例 客户端这边大致的情况是 构造参数, 然后发…

excel中去除公式,仅保留值

1.单个单元格去除公式 双击单元格,按F9. 2.批量去除公式 选中列然后复制,选择性粘贴,选值粘贴

【每日一题】1976. 到达目的地的方案数-2024.3.5

题目: 1976. 到达目的地的方案数 你在一个城市里,城市由 n 个路口组成,路口编号为 0 到 n - 1 ,某些路口之间有 双向 道路。输入保证你可以从任意路口出发到达其他任意路口,且任意两个路口之间最多有一条路。 给你一个整数 n 和二维整数数组 roads ,其中 roads[i] = […

PCL官方demo的编译使用教程

写在前面 本文内容 PCL官方demo的编译使用教程; 后续对PCL demo中比较常用的算法、应用demo会出专门的博客讲解、拓展; 更多点云基础、算法相关内容请关注专栏: 点云处理基础 点云配准(PointCloud Registration) Open3D点云处理 PCL点云处理 …

青少年如何从零开始学习Python编程?有它就够了!

文章目录 写在前面青少年为什么要学习编程 推荐图书图书特色内容简介 推荐理由粉丝福利写在最后 写在前面 本期博主给大家带来一本非常适合青少年学习编程的图书,快来看看吧~ 青少年为什么要学习编程 青少年学习编程,就好比在他们年轻时就开始掌握一种…

Vulnhub靶机:Bellatrix

一、介绍 运行环境:Virtualbox 攻击机:kali(10.0.2.4) 靶机:Bellatrix(10.0.2.9) 目标:获取靶机root权限和flag 靶机下载地址:https://www.vulnhub.com/entry/hogwa…

Sy2 Linux系统登录及用户管理

实验环境: 宿主机为win11 Vmware workstaion 17 目标机的OS: Ubuntu 2004 网络:NAT 获取地址:192.168.248.131/24 DNS,DHCP:192.168.248.2 第一章ppt的命令操作(部分) S1、执行whoami、who…

极狐GitLab 如何设置 Markdown 中的图片大小

GitLab 是一个全球知名的一体化 DevOps 平台,很多人都通过私有化部署 GitLab 来进行源代码托管。极狐GitLab 是 GitLab 在中国的发行版,专门为中国程序员服务。可以一键式部署极狐GitLab。 使用极狐GitLab 进行代码托管或者 CI/CD,都避免不了…

Vue3.0里为什么要用 Proxy API 替代 defineProperty API ?

文章目录 Object.defineProperty小结 proxy总结有需要的请私信博主,还请麻烦给个关注,博主不定期更新,或许能够有所帮助!!请关注公众号 Object.defineProperty 定义:Object.defineProperty() 方法会直接在一…

docker部署aria2-pro

前言 我平时有一些下载视频和一些资源文件的需求,有时候需要离线下载,也要速度比较快的方式 之前我是用家里的玩客云绝育之后不再写盘当下载机用的,但是限制很多 我发现了aria2 这个下载器非常适合我,而有个大佬又在原来的基础…

php常见的45个漏洞及解决方案

[TOC](太多了,目录只列出最重要的几个,剩下的同学们自己翻) PHP作为一种广泛应用的服务器端脚本语言,在历史上曾曝出过多种安全漏洞。以下是一些PHP漏洞的类别及其简要解释,以及如何解决这些问题&#xff1…

一次一对一服务引起的沉思和笑话(微信号Stefan)

前情提要 客户需求: 分析页面代码和接口请求协议和参数需求,将人工下载视频怎么获得最终的视频链接,这一逻辑清晰的展示并讲解清除。我询问了是否需要成品爬虫,他说代码他自己能搞定。 我给的价格选择: 第一种、首…

flowable的java class task,也叫服务任务

源码地址12级程序猿-新年正当红/flowable-ui和服务任务 启动flowable-ui-app 浏览器输入下面的地址 http://localhost:8080/flowable-ui/#/ 在服务任务这里设置java类的路径 com.dmg.flowabledemo.task.MyServiceTask 当请假任务完成之后,自动触发这个服务任务…

Java精品项目--第5期基于SpringBoot的高速收费系统的设计分析与实现

项目使用技术栈 SpringBootMavenShiroMySQLMybatis-PlusJavaJDK1.8HTML 系统介绍 项目截图

工商全程无纸化应用与CA认证结合方案

一、引言 随着互联网技术的飞速发展,政务服务正逐步向数字化、网络化、智能化转型。为响应国家关于推进“互联网政务服务”的号召,XX工商管理局致力于实现工商企业网上注册全程无纸化,提升政务服务的效率与质量。本方案旨在结合陕西CA认证中…