• 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 检测器的数据。

    在这里插入图片描述

  • 相关阅读:
    koa如何进行token设置和进行token过期验证
    【Swift 60秒】08 - Simple types:Summary
    Redis系列17:聊聊布隆过滤器(实践篇)
    以一次 Data Catalog 架构升级为例聊业务系统的性能优化
    idea启用多个环境
    10个Golang 数据库最佳实践
    【黑马程序员】mysql进阶篇笔记
    C++异常
    03【设计模式的七大原则】
    离散化专题
  • 原文地址:https://blog.csdn.net/hhhhhhhhhhwwwwwwwwww/article/details/136480230