type
status
date
slug
summary
tags
category
icon
password
一、概要
YOLO-World: Real-Time Open-Vocabulary Object Detection
YOLO-World是腾讯发布的一个YOLO变种,其是一个使用开放词汇进行目标检测的新框架,其以YOLOv8框架为detector,所以继承了YOLO系列的特点,也即轻量、快速、性能好。
二、主要贡献
- 提出了YOLO-World,一个高效的轻量级开放词汇表目标检测器,适用于真实世界的应用。
- 提出了一个可重新参数化的视图-语言路径聚合网络(RepVL-PAN)和区域-文本对比损失函数,以促进视觉和语言信息之间的交互。
- 在大规模数据集上预训练的YOLO-World展示了强大的零样本(zero-shot)性能,并在LVIS数据集上达到了35.4 AP的检测准确度,同时保持了52.0 FPS的高效率。
三、效果对比
速度与准确度曲线对比图
将 YOLO- World 与最近的开放词汇方法在速度和准确性方面进行了比较。所有模型都在 LVIS minival 上进行评估,而计算速度则是在一台NVIDIA V100(不含 TensorRT)上测量的。圆圈的大小代表模型的大小。可以看到, YOLO- World 不仅模型小,而且准确度高、速度快。
与其他目标检测范式的比较
传统目标检测器:这些目标检测器只能检测由训练数据集预定义的固定词汇内的对象,例如80个类别的COCO数据集。
以前的开放词汇检测器:倾向于开发用于开放词汇检测的大而重的检测器,这些检测器直观上具有很强的能力。但由于同时对图像和文本进行编码作为预测的输入,对于实际应用来说非常耗时。
YOLO-World:展示了轻量级YOLO检测器的强大开放词汇性能,它没有使用在线词汇,而是提出了一种"先提示后检测"的有效推理范式,其中用户根据需要生成一系列提示,这些提示将被编码到离线词汇中。然后可以将其重新参数化为用于部署和进一步加速的模型权重。
四、详细原理
整体架构
与传统的YOLO检测器相比,YOLO-World作为一个开放词汇检测器采用文本作为输入。文本编码器首先对输入文本进行编码。然后,图像编码器将输入图像编码为多尺度图像特征,所提出的RepVL-PAN利用图像和文本特征的多级跨模态融合。最后,YOLO-World预测回归的边界框和对象嵌入,以匹配输入文本中出现的类别或名词。
YOLO-World的模型架构包括以下三个主要组件:
1) YOLO检测器:基于YOLOv8,包括图像编码器、路径聚合网络和预测头。
2) 文本编码器:使用CLIP预训练的Transformer编码器。流程如下:给定一段text,首先会提取里面的名词,随后将提取的每个名词短语输入CLIP中得到向量。可以知道text encoder的输出为
C 是名词短语的数量, D是embedding的维度。
3) 可重参数化的视觉语言路径聚合网络RepVL-PAN:连接文本特征和图像特征,包括文本引导的CSPLayer和图像池化注意力机制。
CSPLayer
该层用文本向量来强化图片特征。具体计算公式如下
式中:
为多尺度的图片特征。 W j 为名词 j 的text embedding。 δ 为sigmoid函数。
图像池化注意力机制
该层用图片特征来强化文本向量。具体做法为:将多尺度图片特征通过max pooling,每个尺度经过max-pooling后的
即9个patch token,因为有3个尺度,总计27个patch token,记作
随后将这27个patch token作为 cross-attention的key,value,将text embedding作为query进行特征交互,从而得到image-aware的文本特征向量。
预训练方案
YOLO-World使用在线词汇进行训练。在训练过程中,为每个包含4张图像的mosaic样本构建一个在线词汇T。具体做法是,从mosaic图像中抽样所有涉及的正面名词,并从相应的数据集中随机抽样一些负面名词。
随后使用离线词汇进行推理。在推理阶段,采用一种"先提示-再检测"的策略,使用离线词汇以提高效率。用户可以定义一系列自定义提示,然后利用文本编码器对这些提示进行编码,并获得离线词汇嵌入。
预训练表示:区域-文本对
传统的目标检测数据为区域-标签对,作者将其重新定义为区域-文本对,即
其中Bi表示目标的坐标框,ti表示该目标的文本描述(类别名称、名词短语或对象描述),从而将文本与图像中的目标区域进行关联。
在大规模数据集上进行开放词汇的区域-文本对比预训练的方案,包括使用大规模检测数据、grounding数据和图像-文本数据进行预训练。
给定mosaic样本I和文本T,YOLO-World输出K个对象预测{Bk,sk}以及注释Ω = {Bi,ti}。利用任务对齐的标签分配,将预测与真值注释匹配,并为每个正预测分配一个文本索引作为分类标签。基于这个词汇表,通过对象-文本(区域-文本)相似度和对象-文本分配之间的交叉熵构建区域-文本对比损失Lcon。此外,采用IoU损失和分布式focal损失进行边界框回归,总训练损失定义为:L(I) = Lcon + λI · (Liou + Ldfl)。
提出使用伪标签进行预训练的方法,包含三个步骤:
(1)提取名词短语:首先利用 n-gram 算法从文本中提取名词短语;
(2)伪标签:采用预训练的开放词汇检测器GLIP,为给定的名词短语生成伪框,从而为每个图像提供粗略的区域-文本对;
(3)过滤:使用预训练的CLIP评估图像-文本对和区域-文本对的相关性,并过滤低相关性的伪注释和图像。使用非最大抑制(NMS)进一步过滤冗余的边界框。
五、实验
在预训练阶段,采用AdamW优化器,初始学习率为0.002,权重衰减为0.05。在32个NVIDIA V100 GPU上进行预训练,batch size大小为512。数据增强包括颜色增强、随机仿射、随机翻转和mosaic。文本编码器在预训练时被冻结
预训练
(1)YOLO-World在Objects365、GQA、Flickr、CC3M数据集上进行预训练。
(2)使用在线词汇表进行训练,每个样本包含4幅图像的mosaic,词汇表大小默认为80。
(3)在CC3M图像-文本数据集上进行伪标签化,获得246k图像和821k伪注释。
(4)零样本评估在LVIS数据集上进行,YOLO-World-L获得35.4 AP,优于许多SOTA方法,同时速度更快。
消融实验
(1)在Objects365上预训练,添加GQA数据可显著提高性能,获得8.4 AP增益。
(2)添加CC3M样本可进一步提升性能,尤其是对稀有类别的APr提高了1.3。
(3)RepVL-PAN可提升1.1 AP,对稀有类别效果显著。
(4)使用CLIP文本编码器优于BERT,获得10.1 AP提升。
YOLO-World的微调
(1)在COCO数据集上微调,YOLO-World优于多个之前的YOLO版本。
(2)在LVIS数据集上微调,YOLO-World优于多个之前的open-vocabulary检测器。
开放词汇实例分割
将 YOLO-World 扩展到开放词汇实例分割,采用了两种微调策略:(1)仅微调分割头部和(2)微调所有模块
(1)在 LVIS-base 上微调获得了比基于 COCO 更好的性能。然而,AP 和 APr 之间的比例(APr/AP)几乎不变。
(2)当微调所有模块时,YOLO-World 在 LVIS 上取得了显著的改进,获得了 9.6 的 AP 增益。
- Author:Zhangsan
- URL:https://www.zhangsanpyq.top/article/YOLO-World
- Copyright:All articles in this blog, except for special statements, adopt BY-NC-SA agreement. Please indicate the source!