YOLO-World实时开集检测论文阅读
论文:《YOLO-World: Real-Time Open-Vocabulary Object Detection》
代码:https://github.com/AILab-CVC/YOLO-World
1.Abstract
我们介绍了YOLO World,这是一种创新的方法,通过在大规模数据集上进行视觉语言建模和预训练,增强YOLO的开放词汇检测能力。具体而言,我们提出了一种新的可重新参数化的视觉-语言路径聚合网络(RepVL-PAN)和区域文本对比损失,以促进视觉和语言信息之间的交互。我们的方法可以以zero-shot方式高效检测各种物体。

YOLO World遵循标准YOLO架构[20],并利用预先训练的CLIP[39]文本编码器对输入文本进行编码。我们进一步提出了可重新参数化的视觉语言路径聚合网络(RepVL-PAN)来连接文本特征和图像特征,以获得更好的视觉语义表示。在推理过程中,可以移除文本编码器,并将文本嵌入重新参数化为RepVL PAN的权重,以实现高效部署。对于实际应用,一旦我们训练了检测器,即YOLO World,我们就可以对提示或类别进行预编码,以构建离线词汇表,然后将其无缝集成到检测器中。

2.Related Work
传统的目标检测方法可以简单地分为三类,即基于区域region-based的方法、基于像素pixel-based的方法和基于查询query-based的方法。
3. Method
3.1. Pre-training Formulation: Region-Text Pairs
传统的对象检测方法,包括YOLO系列[20],使用实例注释Ω={Bi,ci}Ni=1,其由边界框{Bi}和类别标签{ci}组成。在本文中,我们将实例注释重新表述为区域-文本对Ω={Bi,ti}Ni=1,其中ti是区域Bi的对应文本。具体而言,**文本ti可以是类别名称、名词短语或对象描述。**此外,YOLO World采用图像I和文本T(一组名词)作为输入和输出预测框{Bõk}和相应的对象嵌入{ek}(ek∈RD)。

所提出的YOLO World的总体架构如图所示。3,它由YOLO检测器、文本编码器和可重新参数化的视觉语言路径聚合网络(RepVL PAN)组成。给定输入文本,YOLO World中的文本编码器将文本编码为文本嵌入。YOLO检测器中的图像编码器从输入图像中提取多尺度特征。然后,我们利用RepVL PAN,通过利用图像特征和文本嵌入之间的跨模态融合来增强文本和图像表示。
YOLO Detector。YOLO World主要基于YOLOv8[20]开发,其中包含作为图像编码器的Darknet backbone[20,43]、用于多尺度特征金字塔的路径聚合网络(PAN)以及用于边界框回归和object embeddings的head。
Text-Enocder。给定文本T,我们采用CLIP[39]预先训练的Transformer文本编码器来提取相应的文本嵌入W=TextEncoder(T)∈RC×D,其中C是名词的数量,D是embeding维数。与纯文本语言编码器相比,CLIP文本编码器提供了更好的视觉语义功能,可以将视觉对象与文本连接起来[5]。当输入的文本是描述或引用表达式时,我们采用简单的n-gram算法提取名词短语,然后将其输入到文本编码器中。
3.3. Re-parameterizable Vision-Language PAN
Text-guided CSPLayer. 如图4所示,跨阶段部分层(CSPLayer)是在自上而下或自下而上的融合之后使用的。我们通过将文本引导合并到多尺度图像特征中来扩展[20]的CSPLayer(也称为C2f),以形成文本引导的CSPLyer。具体地说,给定文本嵌入W和图像特征Xl∈RH×W×D(l∈{3,4,5}),我们在最后一个bottleneck之后采用max-sigmoid attention将文本特征聚合为图像特征:
Image-Pooling Attention。为了增强具有图像感知信息的文本嵌入,我们通过提出图像池注意来聚合图像特征以更新文本嵌入。我们不是直接在图像特征上使用交叉注意力,而是利用多尺度特征上的最大池化来获得3×3个区域,从而产生总共27个补丁标记X∈R27×D。然后通过以下方式更新文本嵌入:W ′ = W + MultiHead-Attention(W, X ̃, X ̃)
Pre-training data。对于预训练YOLO-World,我们主要采用检测或grounding数据集,包括Ob-Projects365(V1)[46]、GQA[17]、Flickr30k[38],如表1所示。根据[24],我们从GoldG[21](GQA和Flickr30k)中的COCO数据集中排除图像。用于预训练的检测数据集的注释包含边界框和类别或名词短语。此外,我们还用图像-文本对扩展了预训练数据,即CC3M†[47],我们已经通过第3.4节中讨论的伪标记方法标记了246k个图像。
Grounding数据集通常用于计算机视觉和自然语言处理的联合任务,特别是Visual Grounding任务。这类数据集包含图像以及与之相关的物体描述,目标是定位描述中提及的物体。以下是Grounding数据集格式的详细介绍,并通过举例说明:一、数据集格式Grounding数据集一般由以下几个部分组成:图像(Images): 数据集包含一系列图像,这些图像中包含了需要被定位的物体。
描述(Descriptions): 针对每张图像,数据集提供了相应的描述,这些描述可能是一个句子、短语或者是一个物体名称,用于指明需要定位的物体。
标注框(Bounding Boxes): 对于描述中提及的每个物体,数据集都提供了一个或多个标注框,这些标注框用坐标表示物体在图像中的位置。
类别标签(Category Labels) (可选): 某些数据集还可能包含物体的类别标签,以便于分类和识别。
二、举例说明以Flickr30k Entities数据集为例,这是一个常用的Visual Grounding数据集:图像: 数据集包含31783张图像。
描述: 每张图像对应5个不同的caption(描述),总共有158915个caption。
标注框: 数据集提供了244035个phrase-box标注,即针对特定短语的标注框。例如,如果一个caption是“A man in a red shirt is riding a bike”,那么“man”、“red shirt”和“bike”都可能有对应的标注框。
类别标签: 数据集中的phrase还会被细分为people, clothing, body parts, animals, vehicles, instruments, scene, other等八个不同的类别。
在RefCOCO、RefCOCO+、RefCOCOg等数据集中,格式类似,但可能包含更多的交互性和复杂性,例如在RefCOCO+中,查询不包含绝对的方位词,要求模型更智能地理解上下文来定位物体。总的来说,Grounding数据集的格式是为了训练模型能够准确理解语言描述,并在图像中定位相应物体的能力。通过大量的图像、描述和标注框的组合,模型可以学习到如何从复杂的视觉和语言信息中提取关键特征,实现准确的物体定位。


相关文章:
YOLO-World实时开集检测论文阅读
论文:《YOLO-World: Real-Time Open-Vocabulary Object Detection》 代码:https://github.com/AILab-CVC/YOLO-World 1.Abstract 我们介绍了YOLO World,这是一种创新的方法,通过在大规模数据集上进行视觉语言建模和预训练&#…...
LLM - 词向量 Word2vec
1. 词向量是一个词的低维表示,词向量可以反应语言的一些规律,词意相近的词向量之间近乎于平行。 2. 词向量的实现: (1)首先使用滑动窗口来构造数据,一个滑动窗口是指在一段文本中连续出现的几个单词&#x…...
Tileserver GL中glyphs的使用
在Tileserver GL中,glyphs(字形)是用来渲染矢量切片地图中的文本标签的重要组件。它们定义了在地图上显示的字体和文字的具体形状。详细了解glyphs在Tileserver GL中的工作原理,可以帮助我们更好地配置和使用该服务。以下是关于Ti…...
uniapp自动升级
一、创建云服务空间(https://unicloud.dcloud.net.cn) 云空间用于关联需要版本控制升级的项目,如果已拥有云空间则省略此步骤。 二、搭建 uni升级中心 - 后台管理系统(升级中心 uni-upgrade-center - Admin) uni-adm…...
java Pair怎么使用
文章目录 1. 简介2. Pair类的来源3. 如何使用Pair类4. Pair类的实际应用5. Pair类的优点和缺点 1. 简介 什么是Pair Pair是一个通用的数据结构,用于存储一对关联的对象,也就是两个元素。这两个元素可以是任何类型,并且它们之间没有特定的层次…...
数据库doris中的tablet底层解析
在Doris中,tablet(数据片)是数据存储和管理的最小单元。理解tablet的底层原理有助于更好地理解Doris的高可用性、负载均衡和查询优化等特性。 Tablet 的概念 Tablet:Tablet是Doris中用于存储数据的最小物理单元。每个tablet通常对应于一个数据分区和一个分桶组合的子集。…...
江苏高防服务器都有哪些优势?
江苏高防服务器所针对的应用群体是不同的,高防服务器与普通服务器的应用效果和功能上是有着很大的差别,所以企业与用户在进行挑选高防服务器时,会更加看重服务器的质量与服务效果,本文就来聊一下江苏高防服务器的优势有哪些吧&…...
Pytest单元测试系列[v1.0.0][Pytest基础]
Pytest安装与配置 和Unittest一样,Pytest是另一个Python语言的单元测试框架,与Unittest相比它的测试用例更加容易编写、运行方式更加灵活、报错信息更加清晰、断言写法更简洁并且它可以运行有unittest和nose编写的测试用例。 Pytest 安装 启动命令行&…...
C/C++服务器基础(网络、协议、数据库)
Socket Socket是对网络中不同主机上的应用进程之间进行双向通信的端点的抽象。它可以看成是两个网络应用程序进行通信时,各自通信连接中的端点。Socket上联应用进程,下联网络协议栈,是应用程序通过网络协议进行通信的接口,是应用…...
Mysql系列-Binlog主从同步
原文链接:https://zhuanlan.zhihu.com/p/669450627 一、主从同步概述 mysql主从同步,即MySQL Replication,可以实现将数据从一台数据库服务器同步到多台数据库服务器。MySQL数据库自带主 从同步功能,经过配置,可以实现基于库、表…...
java设计模式(六)——原型模式
一、模式介绍 原型模式: 创建型模式之一,就是基于原型创建对象,也就是一个对象的产生可以不由零起步, 直接从一个已经具备一定雏形的对象克隆,然后再修改为所需要的对象。节约创建对象时间。 使用场景 如果对象创建成本比较大,例如某个对象里面的数据需要访问数据库才能…...
arm (exti中断)
src/key_it.c 1 #include "key_it.h"2 3 //按键1中断配置4 void key1_config()5 {6 //RCC章节7 //1:使能gpio f8 RCC->MP_AHB4ENSETR | (0x1<<5);9 //因为exti和gic属于芯片内部 所以无需使能10 11 //GPIO章节12 //1:将…...
触摸屏虚拟键盘组件 jQuery Virtual Keyboard使用 自定义键盘
如何在触摸设备上为输入域添加虚拟键盘? 一个插件可以解决这个问题,关键还支持高度自定义(git地址): GitHub - Mottie/Keyboard: Virtual Keyboard using jQuery ~ 官网地址:Virtual Keyboard 使用步骤&…...
面试题07-09
知道了 InnoDB 的索引实现后,就很容易明白为什么不建议使用过长的字段作为主键,因为所有辅助索引都引用主索引,过长的主索引会令辅助索引变得过大。再例如,用非单调的字段作为主键在 InnoDB 中不是个好主意,因为 InnoD…...
MySQL之binlog日志
原文链接:https://zhuanlan.zhihu.com/p/697078870 目录: binlog 是什么binlog 配置和查看binlog 的类型binlog 如何恢复数据binlog 是逻辑日志还是物理日志binlog 作用 注意:以下所有的操作都在 MySQL 8.0 版本实现。 1、binlog 是什么 …...
【大数据】什么是数据湖?一文揭示数据湖的本质
很多人跟我一样,对于数据湖充满好奇,也许还读了不少数据湖文章,但无论别人怎么说,你还是会觉得难以把握数据湖的本质。 有些人会望文生义说,数据湖嘛,就是什么东西都可以往里面扔,特别是对非结构…...
CSS【详解】文本相关样式(含 font 系列,文本排版,文本装饰,分散对齐,渐变色文本等)
文本风格 font-style font-style:italic 值描述normal默认值。浏览器显示一个标准的字体样式。italic加载对应字体的斜体字体文件,若找不到斜体字体文件,则进行物理上的倾斜。 标签默认font-style:italicoblique浏览器会显示一个倾斜的字体样式。 文本粗…...
加油卡APP系统开发,优惠加油收益
目前,汽车已经成为了不可或缺的出行工具,汽车加油更是成为了家家户户要做的事。不过随着油价的波动,车主急需能够进行优惠加油的渠道,因此,加油卡APP成为了大众汽车加油新的选择方式,用户在下载APP后即可享…...
el-scrollbar实现自动滚动到底部(AI聊天)
目录 项目背景 实现步骤 实现代码 完整示例代码 项目背景 chatGPT聊天消息展示滚动面板,每次用户输入提问内容或者ai进行流式回答时需要不断的滚动到底部确保展示最新的消息。 实现步骤 采用element ui 的el-scrollbar作为聊天消息展示组件。 通过操作dom来实…...
开源去除背景的项目:rembg 安装和部署
下载colne项目代码 git clone https://github.com/danielgatis/rembg.git安装依赖 pip install rembg pip install click pip install filetype pip install watchdog pip install aiohttp pip install gradio pip install asyncer测试使用 rembg i 照片.jpg zhaopian.jpg照…...
wordpress后台更新后 前端没变化的解决方法
使用siteground主机的wordpress网站,会出现更新了网站内容和修改了php模板文件、js文件、css文件、图片文件后,网站没有变化的情况。 不熟悉siteground主机的新手,遇到这个问题,就很抓狂,明明是哪都没操作错误&#x…...
Vue记事本应用实现教程
文章目录 1. 项目介绍2. 开发环境准备3. 设计应用界面4. 创建Vue实例和数据模型5. 实现记事本功能5.1 添加新记事项5.2 删除记事项5.3 清空所有记事 6. 添加样式7. 功能扩展:显示创建时间8. 功能扩展:记事项搜索9. 完整代码10. Vue知识点解析10.1 数据绑…...
C++实现分布式网络通信框架RPC(3)--rpc调用端
目录 一、前言 二、UserServiceRpc_Stub 三、 CallMethod方法的重写 头文件 实现 四、rpc调用端的调用 实现 五、 google::protobuf::RpcController *controller 头文件 实现 六、总结 一、前言 在前边的文章中,我们已经大致实现了rpc服务端的各项功能代…...
【kafka】Golang实现分布式Masscan任务调度系统
要求: 输出两个程序,一个命令行程序(命令行参数用flag)和一个服务端程序。 命令行程序支持通过命令行参数配置下发IP或IP段、端口、扫描带宽,然后将消息推送到kafka里面。 服务端程序: 从kafka消费者接收…...
树莓派超全系列教程文档--(61)树莓派摄像头高级使用方法
树莓派摄像头高级使用方法 配置通过调谐文件来调整相机行为 使用多个摄像头安装 libcam 和 rpicam-apps依赖关系开发包 文章来源: http://raspberry.dns8844.cn/documentation 原文网址 配置 大多数用例自动工作,无需更改相机配置。但是,一…...
java 实现excel文件转pdf | 无水印 | 无限制
文章目录 目录 文章目录 前言 1.项目远程仓库配置 2.pom文件引入相关依赖 3.代码破解 二、Excel转PDF 1.代码实现 2.Aspose.License.xml 授权文件 总结 前言 java处理excel转pdf一直没找到什么好用的免费jar包工具,自己手写的难度,恐怕高级程序员花费一年的事件,也…...
【大模型RAG】Docker 一键部署 Milvus 完整攻略
本文概要 Milvus 2.5 Stand-alone 版可通过 Docker 在几分钟内完成安装;只需暴露 19530(gRPC)与 9091(HTTP/WebUI)两个端口,即可让本地电脑通过 PyMilvus 或浏览器访问远程 Linux 服务器上的 Milvus。下面…...
ESP32读取DHT11温湿度数据
芯片:ESP32 环境:Arduino 一、安装DHT11传感器库 红框的库,别安装错了 二、代码 注意,DATA口要连接在D15上 #include "DHT.h" // 包含DHT库#define DHTPIN 15 // 定义DHT11数据引脚连接到ESP32的GPIO15 #define D…...
工程地质软件市场:发展现状、趋势与策略建议
一、引言 在工程建设领域,准确把握地质条件是确保项目顺利推进和安全运营的关键。工程地质软件作为处理、分析、模拟和展示工程地质数据的重要工具,正发挥着日益重要的作用。它凭借强大的数据处理能力、三维建模功能、空间分析工具和可视化展示手段&…...
Python爬虫(二):爬虫完整流程
爬虫完整流程详解(7大核心步骤实战技巧) 一、爬虫完整工作流程 以下是爬虫开发的完整流程,我将结合具体技术点和实战经验展开说明: 1. 目标分析与前期准备 网站技术分析: 使用浏览器开发者工具(F12&…...
