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,开集实时目标检测器,设计了文本和图像特征融合模块,支持离线部署。

相关推荐
mahtengdbb11 小时前
PPHGNetV2高性能块改进YOLOv26密集连接与压缩激励双重突破
yolo
handler013 小时前
从零实现自动化构建:Linux Makefile 完全指南
linux·c++·笔记·学习·自动化
Hello_Embed4 小时前
嵌入式上位机开发入门(二十六):将 MQTT 测试程序加入 APP 任务
网络·笔记·网络协议·tcp/ip·嵌入式
不会编程的懒洋洋5 小时前
C# Task async/await CancellationToken
笔记·c#·线程·面向对象·task·同步异步
jerryinwuhan5 小时前
A comprehensive review of in-pipe robots 论文阅读
论文阅读
zhangrelay8 小时前
蓝桥云课五分钟-通关自动控制-octave
笔记·学习
_李小白9 小时前
【AI大模型学习笔记之平台篇】第六篇:安卓开发AI工具介绍(Android CLI、Android Skill和Android Knowledge Base)
人工智能·笔记·学习
YaBingSec9 小时前
玄机靶场:供应链安全-供应链应急-Part2 通关笔记
java·笔记·安全
s1ckrain10 小时前
【论文阅读】AstraNav-Memory: Contexts Compression for Long Memory
论文阅读·多模态·具身智能
qeen8710 小时前
【算法笔记】双指针及其经典例题解析
c++·笔记·算法·双指针