YOLO-world论文阅读笔记

论文:https://arxiv.org/abs/2401.17270

code: https://github.com/AILab-CVC/YOLO-World

1、为什么要做这个研究(理论走向和目前缺陷) ?

之前的开集检测器大多比较慢,不利于部署。

2、他们怎么做这个研究 (方法,尤其是与之前不同之处) ?

结合CLIP和yolov8,CLIP提取文本特征,yolov8提取图像特征,核心是如何将文本特征和图像特征融合,这个特征融合模块要非常简单,最好融合一次就行,不用多多阶段融合,这样部署的时候就可以直接用CLIP离线编码好的文本特征,而不用再实时推理了,节约了大量的计算量,并且非常简单。

3、发现了什么(总结结果,补充和理论的关系)?

提出YOLO-World, 快且实时在V100上可以打到50+FPS?

实际使用下来发现还是比Grounding DINO效果要差一些。

摘要

YOLO系列的检测器在工业界是非常实用的,但是它们有个非常大的问题就是只能检测预定义的类别。本文提出的方法可以通过视觉语言模型在大规模数据集上训练,实现了检测任意类别的目的。在LVIS数据集上AP35.4, V100上52FPS。

1 引言

现有的做开集检测的视觉语言模型(BERT, OV-COCO)计算量都太大了,而且部署不友好。已经有一些论文证明了预训练的大模型效果非常好,但是用预训练的小模型做开集检测的能力仍有待探索。

Yolo-world 的yolov8的检测架构,结合预训练clip文本编码器来编码输入的文本,并用作者设计的重参数化视觉鱼眼数据聚合网络来融合文本和图像特征。在推理阶段,文本编码器可以直接拿掉,只用文本embeddings来作为输入就行。

之前的开集检测方法都需要在线编码文本,以获取需要检测的类别,而yolo-world只需要离线编码一次就行了,后面推理阶段直接用离线编码的文本就行,对部署非常友好。

2 相关研究

传统目标检测

开集目标检测(OVD)

OWL-ViTs, GLIP, Grounding DINO. ZSD-YOLO

3 方法

3.1 预训练方法:区域文本对

传统检测方法的实例标注是类别区域对(类别对应的是类别ID),本文方法使用的是文本类别对,文本可以类别名、短语或一句话。YOLO-World已图像和一系列文本作为输入输出的是框和对应的目标的嵌入特征。

3.2 模型架构

检测器:yolov8

文本编码器:CLIP

文本对比头:文本特征和图像框特征计算余弦相似度

在线训练:马赛克增强

离线推理:输入自定义离线文本特征

3.3 文本图像特征融合模块

文本引导的 CSPLayer: 类似与fpn结构的图像文本特征融合层, 文本引导。

Image-Pooling Attention:

3.4 预训练方法

图像文本对伪标注:1)先用n-gram方法从文本中提取名词短语。2)将名词短语输入GLIP获取生成标注框,这样就可以提供粗糙的文本检测框对。3)用CLIP来评估名词短语和对应检测框的相关性,剔除相关性比较低的文本检测框对。如此便可以制作出大规模的用于训练的数据集(CC3M 246K帧)了。

4 实验

4.1实现细节

4.2 预训练

实验设置:预训练阶段文本编码器参数冻结

预训练数据:

零样本评估:预训练数据中没有LVIS, 在LVIS进行评估

4.3 消融实验

预训练数据:数据越多越好

文本图像特征融合模块(RepVL-PAN):

文本编码器:比较了BERT和CLIP这两种文本编码器,CLIP比bert好很多。且CLIP如果微调的话效果会变差,因为CLIP本来训练用的数据已经就足够丰富了。

4.4 在COCO和LVIS上微调YOLO-World

实验建立: CLIP也进行了微调,学习率0.01

COCO目标检测:微调时移除了RepVL-PAN以加速训练。

LVIS目标检测

4.5 开集实例分割

需要有实例集的分割标注

只微调分割头的话会有更好的开集分割能力(泛化能力)。

图片

5结论

提出了YOLO-World,开集实时目标检测器,设计了文本和图像特征融合模块,支持离线部署。

相关推荐
雾岛听蓝25 分钟前
深入解析内存中的整数与浮点数存储
c语言·经验分享·笔记·visualstudio
jimmyleeee26 分钟前
人工智能基础知识笔记十八:Prompt Engineering
笔记·prompt
Ro Jace28 分钟前
模式识别与机器学习课程笔记(11):深度学习
笔记·深度学习·机器学习
小小洋洋1 小时前
笔记:TFT_eSPI不支持ESP32C6;ESP8266运行LVGL注意事项
笔记
聪明的笨猪猪1 小时前
Java JVM “垃圾回收(GC)”面试清单(含超通俗生活案例与深度理解)
java·经验分享·笔记·面试
ue星空2 小时前
逆向分析光与影:33号远征队使用的UE技术栈
笔记·学习
立志成为大牛的小牛2 小时前
数据结构——二十二、并查集(王道408)
c语言·数据结构·笔记·学习·考研
JANGHIGH2 小时前
YOLO系列——OpenCV DNN模块在YOLOv11检测物体时输出的边界框坐标问题
opencv·yolo·dnn
宁若风2 小时前
如何将yolov5模型部署到RK3588开发板上
yolo
今天只学一颗糖3 小时前
Linux学习笔记--GPIO控制器驱动
笔记·学习