YOLO-World: Real-Time Open-Vocabulary Object Detection
Abstract
你只看一次(YOLO)系列探测器已经确立了自己的高效和实用的工具。然而,它们对预定义和训练过的对象类别的依赖限制了它们在开放场景中的适用性。针对这一限制,我们引入了YOLO-World,这是一种创新的方法,通过视觉语言建模和大规模数据集的预训练,增强了YOLO的开放词汇检测能力。具体而言,我们提出了一种新的可重新参数化视觉语言路径聚合网络(RepVL-PAN)和区域-文本对比损失,以促进视觉和语言信息之间的交互。该方法具有以Zero-Shot方式检测大范围目标的优点,且效率高。在具有挑战性的LVIS数据集上,YOLO-World在V100上实现了35.4 AP和52.0 FPS,在精度和速度方面都优于许多最先进的方法。此外,经过微调的YOLO-World在几个下游任务上取得了显著的性能,包括对象检测和开放词汇表实例分割。
1.Introduction
在计算机视觉领域,目标检测一直是一个长期存在的基本挑战,在图像理解、机器人和自动驾驶汽车领域有着广泛的应用。随着深度神经网络的发展,大量工作[16,27,43,45]在目标检测方面取得了重大突破。尽管这些方法取得了成功,但它们仍然有限,因为它们只处理固定词汇表的对象检测,例如COCO[26]数据集中的80个类别。一旦物体类别被定义和标记,训练有素的检测器只能检测到那些特定的类别,因此限制了开放场景下的能力和应用。
最近的研究[8,13,48,53,58]探索了流行的视觉语言模型[19,39],通过从语言编码器(例如BERT[5])中提取词汇知识来解决开放词汇检测[58]。然而,由于训练数据的稀缺性和词汇的多样性有限,这些基于蒸馏的方法受到很大的限制,例如OV-COCO[58]包含48个基本类别。几种方法[24,30,56,57,59]将目标检测训练重新定义为区域级视觉语言预训练,并在规模上训练开放词汇目标检测器。然而,这些方法在现实场景中仍然难以检测,这受到两个方面的影响:(1)计算负担重;(2)边缘设备部署复杂。过去的工作已经证明了预训练大规模检测器的良好性能,而预训练小检测器以赋予他们开放检测能力仍然未被探索。
本文提出了面向高效开放词汇目标检测的YOLO- world,并探索了大规模的预训练方案,将传统的YOLO检测器提升到新的开放词汇世界。与以前的方法相比,YOLOWorld具有很高的推理速度和易于部署的下游应用的效率。具体来说,YOLO- world遵循标准的YOLO架构[20],并利用预训练的CLIP[39]文本编码器对输入文本进行编码。我们进一步提出了可重新参数化的视觉语言路径聚合网络(RepVL-PAN)来连接文本特征和图像特征,以获得更好的视觉语义表示。在推理过程中,可以去除文本编码器,并将文本嵌入重新参数化为repv1 - pan的权值,以便于高效部署。我们进一步研究了基于大规模数据集的基于区域-文本对比学习的YOLO检测器开放词汇预训练方案,该方案将检测数据、基础数据和图像-文本数据统一为区域-文本对。预训练的具有丰富区域-文本对的YOLO-World具有较强的大词汇检测能力,训练的数据越多,开放词汇能力的提高越大。
此外,我们还探索了一个提示-然后检测范式,以进一步提高现实场景中开放词汇对象检测的效率。如图2所示,传统的目标检测器[16,20,23,41 - 43,52]侧重于使用预定义和训练好的类别进行固定词汇(近集)检测。而以前的开放词汇检测器[24,30,56,59]使用文本编码器对用户的在线词汇提示进行编码并检测对象。值得注意的是,这些方法倾向于使用具有重型主干的大型检测器,例如swing - l[32],以增加开放词汇量。相反,提示-然后检测范式(图2 (c))首先对用户的提示进行编码,以构建一个离线词汇表,词汇表随着不同的需求而变化。然后,高效检测器可以动态地推断离线词汇表,而无需对提示进行重新编码。在实际应用中,一旦我们训练了检测器,即YOLO-World,我们就可以对提示或类别进行预编码,以构建离线词汇表,然后将其无缝集成到检测器中。
我们主要贡献可以总结为三点:
- 我们介绍了YOLO-World,一个先进的开放词汇对象检测器,具有高效的现实世界应用。
- 我们提出了一个可重新参数化的视觉语言PAN来结合视觉和语言特征,提出了一种开放词汇区域-文本对比预训练方案。
- 在大规模数据集上进行预训练的YOLO-World显示出较强的零射击性能,在LVIS上达到35.4 AP和52.0 FPS。预训练的YOLO-World可以很容易地适应下游任务,例如开放词汇实例分割和引用对象检测。此外,YOLO-World的预训练权值和代码将被开源,以方便更多的实际应用。
2. Related Works
2.1 Traditional Object Detection
流行的对象检测研究集中在固定词汇(近集)检测上,其中对象检测器在预定义类别的数据集上进行训练,例如COCO数据集[26]和Objects365数据集[46],然后检测固定类别集合内的对象。在过去的几十年里,传统的目标检测方法可以简单地分为三类,即基于区域的方法、基于像素的方法和基于查询的方法。基于区域的方法[11,12,16,27,44],如Faster R-CNN[44],采用两阶段框架进行提案生成[44]和RoI-wise (region- of- interest)分类和回归。基于像素的方法[28,31,42,49,61]往往是单阶段检测器,在预定义的锚点或像素上执行分类和回归。DETR[1]首先探索了通过变压器进行对象检测[50],并启发了广泛的基于查询的方法[64]。在推理速度方面,Redmon等人提出了YOLOs[40-42],它利用简单的卷积架构进行实时目标检测。一些研究[10,23,33,52,55]提出了YOLO的各种架构或设计,包括路径聚合网络[29],跨阶段部分网络[51]和重新参数化[6],这些都进一步提高了速度和准确性。与以往的YOLOs相比,本文的YOLOWorld旨在检测固定词汇之外的对象,具有较强的泛化能力。
2.2 Open-Vocabulary Object Detection
开放词汇对象检测(Open-vocabulary object detection, OVD)[58]是现代对象检测的新趋势,其目的是检测超出预定义类别的对象。早期的工作[13]遵循标准的OVD设置[58],在基类上训练检测器并评估新的(未知的)类。尽管这种开放词汇表设置可以评估检测器检测和识别新对象的能力,但由于在有限的数据集和词汇表上进行训练,它在开放场景中仍然受到限制,并且缺乏对其他领域的泛化能力。受大语言模型预训练启发,最近的研究[8,22,53,62,63]将开放词汇目标检测表述为图像-文本匹配,并利用大规模图像-文本数据来大规模地增加训练词汇。OWLViTs[35,36]利用检测和接地数据集对简单的Vision Transformer[7]进行微调,构建性能良好的简单开放词汇检测器。
GLIP[24]提出了一种基于短语基础的开放词汇检测预训练框架,并在Zero-Shot设置下进行评估。Grounding DINO[30]将接地预训练[24]与跨模态融合的检测transformer[60]相结合。几种方法[25,56,57,59]通过区域-文本匹配和大规模图像-文本对预训练检测器来统一检测数据集和图像-文本数据集,取得了很好的性能和泛化效果。然而,这些方法通常使用复杂探测器,如ATSS[61]或DINO[60],并以swing-l[32]为骨干,导致高计算需求和部署挑战。相比之下,我们提出了YOLO-World,旨在通过实时推理和更容易的下游应用程序部署实现高效的开放词汇表目标检测。与ZSD-YOLO[54]不同的是,ZSD-YOLO也通过语言模型对齐探索了YOLO的开放词汇检测[58],YOLO- world引入了一种新颖的YOLO框架,并采用了有效的预训练策略,增强了开放词汇性能和泛化能力。
3. Method
3.1 Pre-training Formulation: Region-Text
传统的目标检测方法,包括yolo系列[20],是用实例注释来训练的,它由边界框和类别标签组成。在本文中,我们将实例注释重新表述为区域-文本对,其中ti为区域Bi的对应文本。具体来说,文本ti可以是类别名称、名词短语或对象描述。YOLO-World同时采用图像I和文本T(一组名词)作为输入,输出预测框对应的对象嵌入。
3.2 Model Architecture
所提出的YOLO- world的整体架构如图3所示,它由一个YOLO检测器、一个文本编码器和一个可重新参数化的视觉语言路径聚合网络(RepVL-PAN)组成。给定输入文本,YOLO-World中的文本编码器将文本编码为文本嵌入。YOLO检测器中的图像编码器从输入图像中提取多尺度特征。然后,我们利用RepVL-PAN通过利用图像特征和文本嵌入之间的跨模态融合来增强文本和图像的表示。
YOLO检测器。意思YOLO-World主要是基于YOLOv8[20]开发的,它包含了一个Darknet骨干[20,43]作为图像编码器,一个用于多尺度特征金字塔的路径聚合网络(PAN),以及一个用于边界盒回归和对象嵌入的头部。
文本编码器。给定文本T,我们采用CLIP预训练的Transformer文本编码器[39]提取相应的文本嵌入W =TextEncoder(T)∈R C×D,其中C为名词个数,D为嵌入维数。与纯文本语言编码器相比,CLIP文本编码器提供了更好的视觉语义能力,可以将视觉对象与文本连接起来[5]。当输入文本为标题或引用表达式时,我们采用简单的n-gram算法提取名词短语,然后将其输入文本编码器。
文本对比头 根据之前的工作[20],我们采用两个3×3卷积解耦头部回归边界框和对象嵌入,其中K表示对象的数量。我们提出了一个文本对比头,通过以下方法获得对象-文本相似度sk,j:
其中L2- norm(·)为L2归一化,wj∈W为第j个文本嵌入。此外,我们还加入了具有可学习缩放因子α和移位因子β的仿射变换。L2范数和仿射变换对于稳定区域文本训练都很重要.
在线词汇训练。在训练过程中,我们为每个包含4张图像的马赛克样本构建一个在线词汇T。具体来说,我们对拼接图像中涉及的所有肯定名词进行采样,并从相应的数据集中随机抽取一些否定名词。每个马赛克样本的词汇表最多包含M个名词,M被默认设置为80。
离线词汇推理。在推理阶段,我们提出了一种使用离线词汇表的提示-检测策略,以提高效率。如图3所示,用户可以定义一系列自定义提示,其中可能包括标题或类别。然后,我们利用文本编码器对这些提示进行编码,并获得离线词汇嵌入。离线词汇表允许避免对每个输入进行计算,并提供根据需要调整词汇表的灵活性。
3.3 Re-parameterizable Vision-Language PAN
图4为本文提出的RepVL-PAN的结构,它遵循文献[20,29]中自上而下和自下而上的路径,通过多尺度图像特征{C3, C4, C5}建立特征金字塔{P3, P4, P5}。此外,我们提出了文本引导CSPLayer (T-CSPLayer)和图像池注意(i -池注意),进一步增强图像特征和文本特征之间的交互,从而提高开放词汇的视觉语义表示能力。在推理过程中,离线词汇嵌入可以重新参数化为卷积层或线性层的权重,以便部署。
Text-guided CSPLayer。如图4所示,在自顶向下或自底向上融合后,使用了跨级部分层(CSPLayer)。我们对[20]的CSPLayer(也称为C2f)进行了扩展,将文本引导加入到多尺度图像特征中,形成了文本引导CSPLayer。具体来说,给定文本嵌入W和图像特征Xl∈R^H×W×D (l∈{3,4,5}),我们采用最后一个dark bottleneck块后的max-sigmoid关注将文本特征聚合为图像特征:
其中,更新后的与跨阶段特征连接作为输出。δ表示sigmoid函数。
Image-Pooling关注。为了利用图像感知信息增强文本嵌入,我们提出了图像池关注,聚合图像特征来更新文本嵌入。我们没有直接在图像特征上使用交叉关注,而是利用多尺度特征上的最大池化来获得3×3区域,从而得到总共27个补丁令牌然后通过以下方式更新文本嵌入:
3.4 Pre-training Schemes
在本节中,我们介绍了在大规模检测、grounding和图像-文本数据集上预训练YOLO-World的训练方案。
从区域-文本对比损失中学习。给定马赛克样本I和文本T, YOLO-World输出K个对象预测以及注释。我们遵循[20]并利用任务对齐标签分配[9]将预测与groundtruth注释匹配,并将每个正面预测分配为文本索引作为分类标签。在此基础上,通过对象-文本相似性和对象-文本赋值之间的交叉熵,构建了具有区域-文本对的区域-文本对比损失Lcon。此外,我们采用IoU损失和分布式焦点损失进行边界盒回归,总训练损失定义为:L(I) = Lcon + λI·(Liou + Ldfl),其中λI为指示因子,当输入图像I来自检测或grounding数据时设为1,当输入图像I来自时设为0。考虑到图像-文本数据集具有噪声框,我们只计算具有精确边界框的样本的回归损失。
图像-文本数据的伪标记。我们提出了一种自动标记方法来生成区域-文本对,而不是直接使用图像-文本对进行预训练。具体来说,标注方法包括三个步骤:(1)名词短语提取:首先利用n-gram算法从文本中提取名词短语;(2)伪标注:我们采用预训练的开放词汇检测器,如GLIP[24],为每张图像的给定名词短语生成伪框,从而提供粗糙的区域-文本对。(3)过滤:我们使用预训练的CLIP[39]来评估图像-文本对和区域-文本对的相关性,并过滤低相关性的伪注释和图像。我们通过结合非最大抑制(NMS)等方法进一步过滤冗余的边界框。我们建议读者参考附录了解详细的方法。通过上述方法,我们对来自CC3M[47]的246k张图像进行了采样和标记,并使用了821k个伪注释。
4. Experiments
在本节中,我们通过在大规模数据集上对所提出的YOLO-World进行预训练,并在LVIS基准和COCO基准上以零射击的方式评估YOLO-World的有效性(第4.2节)。我们还评估了YOLOWorld在COCO, LVIS上的目标检测微调性能。
4.1 Implementation Details
YOLO-World是在MMYOLO工具箱[3]和MMDetection工具箱[2]的基础上开发的。在[20]之后,我们针对不同的延迟需求提供了三种YOLO-World变体,即小(S)、中(M)和大(L)。我们采用开源的CLIP[39]文本编码器和预训练的权值对输入文本进行编码。除非特别说明,我们在一个NVIDIA V100 GPU上测量所有模型的推理速度,而不需要额外的加速机制,例如FP16或TensorRT。
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],我们在GoldG [21] (GQA和Flickr30k)中从COCO数据集中排除了图像。用于预训练的检测数据集的注释既包含边界框,也包含类别或名词短语。此外,我们还使用图像-文本对扩展预训练数据,即CC3M†[47],我们通过第3.4节讨论的伪标记方法对246k图像进行了标记。
零样本评估 预训练完成后,我们在LVIS数据集[14]上以零射击的方式直接评估提出的YOLO-World。LVIS数据集包含1203个对象类别,远远超过预训练检测数据集的类别,可以衡量大词汇检测的性能。根据前人的研究[21,24,56,57],我们主要在LVIS minival上进行评价[21],并报道Fixed AP[4]进行比较。最大预测数设置为1000.
LVIS目标检测的主要结果。在表2中,我们在LVIS基准上以零射击的方式将提出的YOLO-World与最新的最先进方法[21,30,56,57,59]进行了比较。考虑到计算量和模型参数,我们主要与基于更轻骨架的方法进行比较,如swing - t[32]。值得注意的是,YOLO-World在零射击性能和推理速度方面优于以前最先进的方法。与纳入更多数据的GLIP、GLIPv2和Grounding DINO(如Cap4M (CC3M+SBU[37]))相比,在O365和GolG上预训练的YOLO-World即使在更少的模型参数下也能获得更好的性能。与DetCLIP相比,YOLO-World实现了相当的性能(35.4 vs . 34.4),同时获得了20倍的推理速度提高。实验结果还表明,小型模型(如13M个参数的YOLO-World-S)可以用于视觉语言预训练,并获得较强的开放词汇能力.
4.3 Ablation Experiments
我们提供了广泛的消融研究,从预训练和架构两个主要方面来分析YOLOWorld。除非特别说明,我们主要进行基于YOLO-World-L的消融实验,并在LVIS minival上进行零射击评估的预训练Objects365。
训练的数据。在表3中,我们使用不同的数据来评估预训练YOLO-World的性能。与在Objects365上训练的基线相比,添加GQA可以显著提高性能,在LVIS上获得8.4 AP增益。这种改进可以归因于GQA数据集提供的更丰富的文本信息,这可以增强模型识别大型词汇表对象的能力。添加部分CC3M样本(占完整数据集的8%)可以进一步带来0.5 AP增益,而稀有对象的增益为1.3 AP。表3表明,增加更多的数据可以有效地提高大词汇量场景下的检测能力。此外,随着数据量的增加,性能也在不断提高,这凸显了利用更大、更多样化的数据集进行训练的好处.
RepVL-PAN的消融。表4展示了提出的YOLO-World的RepVL-PAN,包括文本引导的CSPLayers和图像池注意,对于零射击LVIS检测的有效性。具体来说,我们采用两种设置,即(1)在O365上进行预训练,(2)在O365 & GQA上进行预训练。与只包含类别注释的O365相比,GQA包含了丰富的文本,特别是名词短语的形式。如表4所示,所提出的repv1 - pan在LVIS上比基线(YOLOv8-PAN[20])提高了1.1 AP,并且在LVIS的稀有类别(APr)方面的改善是显著的,这些类别是难以检测和识别的。此外,当使用GQA数据集对YOLO-World进行预训练时,改进变得更加显著,实验表明所提出的RepVL-PAN在丰富的文本信息下工作得更好。
文本编码器。在表5中,我们比较了使用不同文本编码器的性能,即BERT-base[5]和CLIP-base (ViT-base)[39]。我们在预训练中利用了冻结和微调两种设置,微调文本编码器的学习率是基本学习率的0.01倍。如表5所示,CLIP文本编码器获得的结果优于BERT (LVIS中罕见类别+10.1 AP), BERT使用图像文本对进行预训练,具有更好的以视觉为中心的嵌入能力。在预训练期间微调BERT带来了显著的改善(+3.7 AP),而微调CLIP导致严重的性能下降。我们把这种下降归咎于在O365上进行微调可能会降低预训练CLIP的泛化能力,因为预训练CLIP只包含365个类别,缺乏丰富的文本信息。
4.4 Fine-tuning YOLO-WORLD
在本节中,我们将进一步微调YOLO-World,以便在COCO数据集和LVIS数据集上进行近集对象检测为了证明预训练的有效性。
实验设置。我们使用预训练的权重初始化YOLO-World进行微调。使用AdamW优化器对所有模型进行80次微调,初始学习率设置为0.0002。此外,我们以0.01的学习因子对CLIP文本编码器进行微调。对于LVIS数据集,我们遵循先前的工作[8,13,63],在LVIS-base (common & frequency)上微调YOLO-World,并在LVIS-novel (rare)上对其进行评估。
COCO目标检测。我们将预训练的YOLO- world与之前的YOLO检测器[20,23,52]在表6中进行比较。为了在COCO数据集上对YOLO-World进行微调,考虑到COCO数据集的词汇量很小,我们删除了建议的repv1 - pan以进一步加速。从表6中可以看出,我们的方法在COCO数据集上可以取得不错的zero-shot性能,这说明YOLO-World具有很强的泛化能力。此外,在COCO train2017上微调后的YOLO-World和以前从头开始训练的方法相比性能更高。
LVIS目标检测。在表7中,我们评估了YOLO-World在标准LVIS数据集上的调优性能。首先,与在完整LVIS数据集上训练的oracle YOLOv8s[20]相比,yolovworld取得了显著的改进,特别是对于更大的模型,例如,yolovworld - l的性能比YOLOv8-L高出7.2 AP和10.2 AP。这些改进可以证明所提出的预训练策略对于大词汇检测的有效性。此外,YOLO-World作为一种高效的一级检测器,在整体性能上优于目前最先进的两级方法[8,13,22,53,63],而无需额外的设计,例如可学习提示[8]或基于区域的定位[13]。
4.5. Open-Vocabulary Instance Segmentation
在本节中,我们将进一步对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 & frequency)上对YOLO-World进行微调,使用mask标注,模型需要从866个类别转移到1203个类别(866→1203)。
我们在标准LVIS val2017上用1203个类别评估了微调后的模型,其中337个罕见类别是看不见的,可以用来衡量开放词汇表的性能。
结果 表8给出了扩展YOLO-World进行开放词汇实例分割的实验结果。具体来说,我们采用了两种微调策略:(1)只微调分段头部和(2)微调所有模块。在策略(1)下,经过微调的YOLOWorld仍然保留了从预训练阶段获得的zero-shot能力,使其能够在不进行额外微调的情况下泛化到未知类别。策略(2)使YOLO-World能够更好地拟合LVIS数据集,但可能会导致零射击能力的下降。
表8显示了不同设置(COCO或LVIS-base)和不同策略(微调段)对YOLO-World的微调比较。头或微调)。首先,基于lvis的微调比基于COCO的微调获得了更好的性能。然而,AP与APr的比值(APr/AP)几乎没有变化,例如,yolo - world在COCO和LVIS-base上的比值分别为76.5%和74.3%。考虑到检测器是冻结的,我们将性能差距归因于LVIS数据集提供了更详细和更密集的分割注释,这有利于分割头的学习。在对所有模块进行微调后,YOLO-World在LVIS上得到了显著的改进,例如YOLO-World- l实现了9.6 AP增益。然而,微调可能会降低开放词汇表的性能,并导致YOLO-World-L的APr下降0.6。
4.6 Visualizations
我们在三种设置下提供预训练YOLOWorld-L的可视化结果:(a)我们使用LVIS类别进行零射击推理;(b)我们输入带有细粒度类别和属性的自定义提示;(c)参考检测。可视化还表明,YOLO-World对开放词汇表场景具有较强的泛化能力和引用能力。
LVIS的零样本推理。图5为预训练的YOLO-World-L以零射击方式生成的LVIS分类的可视化结果。预训练的YOLO-World显示出强大的归零转移能力,能够在图像中检测到尽可能多的物体。
使用用户词汇进行推理。在图6中,我们用我们定义的类别探索了YOLO-World的检测能力。可视化结果表明,预训练的YOLO-World-L还具有:(1)细粒度检测(即检测一个物体的各个部分)和(2)细粒度分类(即区分物体的不同子类别)的能力。
参考对象检测。在图7中,我们利用一些描述性(判别性)名词短语作为输入,例如站立的人,来探索模型是否可以定位图像中与我们给定输入匹配的区域或对象。可视化结果显示短语和他们对应的回归框,表明预训练的YOLO-World具有参考或grounding能力。这种能力可归因于所提出的大规模训练数据预训练策略。
6.Conclusion
我们提出了一个前沿的实时开放词汇检测器YOLO-World,旨在提高实际应用中的效率和开放词汇能力。在本文中,我们将流行的YOLO重新塑造为一种用于开放词汇预训练和检测的视觉语言YOLO架构,并提出了RepVL-PAN,它将视觉和语言信息与网络连接起来,并且可以重新参数化以实现高效部署。我们进一步提出了基于检测、基础和图像-文本数据的有效预训练方案,使YOLOWorld具有强大的开放词汇检测能力。实验证明了YOLO-World在速度和开放词汇性能方面的优势,也表明了在小模型上进行视觉语言预训练的有效性,对未来的研究具有一定的指导意义。我们希望YOLO-World可以作为解决现实世界开放词汇检测的新基准。