type
status
date
slug
summary
tags
category
icon
password
ㅤ | info |
paper | |
code | |
org | 腾讯 |
demo | |
个人博客位置 |
1 Motivation2 Method2.1 模型架构2.2 优化目标2.3 一些细节2.3.1 如何大批量自动化生成训练标注2.3.2 Vision-Language PAN 的重参数化3 Result3.1 YOLO world的zero-shot能力3.2 预训练数据集对效果的影响3.3 text encoder对效果的影响4 参考文献
1 Motivation
这篇文章从计算效率的角度解决开集目标检测问题(open-vocabulary object detection,
OVD
)。2 Method
经典的目标检测的instance annotation是bounding box和类别对。对于
OVD
来说,此时的注释变为,此处的可以是类别名、名词短语、目标描述等。此外YOLO-Word
还可以根据传入的图片和text,输出预测的box及相关的object embedding。2.1 模型架构
模型架构由3个部分组成
YOLO backbone
,用于提取多尺度的图片特征
text encoder
,用于提取名词短语的特征。流程如下:给定一段text,首先会提取里面的名词,随后将提取的每个名词短语输入CLIP
中得到向量。可以知道text encoder
的输出 , 是名词短语的数量,是embedding的维度
Vision-Language PAN
。用于预测bounding box和object embedding。其架构如下图所示,核心组件有两个,分别为Text-guided CSPLayer
及Image-Pooling Attention
。下面对其进行简单介绍
Text-guided CSPLayer
该层的目的是为了用文本向量来强化图片特征。具体计算公式如下
式中: 为多尺度的图片特征。为名词的text embedding。为
sigmoid
函数。Image-Pooling Attention
该层的目的是为了用图片特征来强化文本向量。具体做法为:将多尺度图片特征通过max pooling,每个尺度经过max-pooling后的size 即9个patch token,因为有3个尺度,总计27个patch token,记作。随后将这27个patch token作为
cross-attention
的key,value,将text embedding作为query进行特征交互,从而得到image-aware的文本特征向量。2.2 优化目标
优化目标分为两部分:其一是针对语义的region-text 对比损失,其二是针对检测框的IOU loss 和distributed focal loss ,总体优化目标如下:
2.3 一些细节
2.3.1 如何大批量自动化生成训练标注
目前我们可以很方便的拿到图片对数据,此处的目标是如何将图文对数据转化成,图片-instance annotation ()的形式
作者的方法如下:
[STEP1]: 通过n-gram算法提取文本中的名词短语,作者给出的示例代码如下:
[STEP2]: 将图片和提取的名词短语输入到
GLIP
中检测bounding box[STEP3]: 将(region_img, region_text)和(img, text)送入到CLIP中计算相关度,如果相关度低,则过滤掉这个图片(作者制定的规则是)。再通过NMS过滤掉冗余的bounding box。
2.3.2 Vision-Language PAN
的重参数化
当推理的词表是固定的时候,此时text encoder的输出是固定的, , 是offline词表的大小,是embedding的维度。此时可以对
Vision-Language PAN
层进行重参数化。Text-guided CSPLayer
的重参数化由于此时的是固定的,可以将其reshape成随后作为1x1卷积的权重,此时式1可以转化为:
表示包含reshape和transpose的矩阵乘法运算
Image-Pooling Attention
的重参数化作者表示可以将式2简化为:
论文给出的这个公式似乎有点问题,dim=-1不确定对应哪个操作?,此公式位于论文式6。 另外这个符号似乎有点歧义,在式4中,应该是对应元素相乘(Hadamard product),式5中应该是普通矩阵乘法 (matmul product)
3 Result
3.1 YOLO world的zero-shot能力
下表展现了
YOLO-world
在LVIS数据集上的zero-shot能力,可见效果优于当前Sota,但速度更快(评估硬件:NVIDIA V100 GPU w/o TensorRT)。3.2 预训练数据集对效果的影响
用
Object365
和GlodG
就能达到较好的效果。加入CC3M
效果提升不是很大,可能是因为CC3M
的标签是用2.3.1节的方法生成的,含有较多噪声导致。3.3 text encoder对效果的影响
如果用轻量backbone最好结合微调。CLIP本身预训练的数据规模特别大,如果微调数据不多的话,frozen的效果反而好。
4 参考文献
- 作者:莫叶何竹🍀
- 链接:http://www.myhz0606.com/article/yolo_world?target=comment
- 声明:本文采用 CC BY-NC-SA 4.0 许可协议,转载请注明出处。