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照…...
手游刚开服就被攻击怎么办?如何防御DDoS?
开服初期是手游最脆弱的阶段,极易成为DDoS攻击的目标。一旦遭遇攻击,可能导致服务器瘫痪、玩家流失,甚至造成巨大经济损失。本文为开发者提供一套简洁有效的应急与防御方案,帮助快速应对并构建长期防护体系。 一、遭遇攻击的紧急应…...
从零实现富文本编辑器#5-编辑器选区模型的状态结构表达
先前我们总结了浏览器选区模型的交互策略,并且实现了基本的选区操作,还调研了自绘选区的实现。那么相对的,我们还需要设计编辑器的选区表达,也可以称为模型选区。编辑器中应用变更时的操作范围,就是以模型选区为基准来…...
Day131 | 灵神 | 回溯算法 | 子集型 子集
Day131 | 灵神 | 回溯算法 | 子集型 子集 78.子集 78. 子集 - 力扣(LeetCode) 思路: 笔者写过很多次这道题了,不想写题解了,大家看灵神讲解吧 回溯算法套路①子集型回溯【基础算法精讲 14】_哔哩哔哩_bilibili 完…...
Map相关知识
数据结构 二叉树 二叉树,顾名思义,每个节点最多有两个“叉”,也就是两个子节点,分别是左子 节点和右子节点。不过,二叉树并不要求每个节点都有两个子节点,有的节点只 有左子节点,有的节点只有…...
iOS性能调优实战:借助克魔(KeyMob)与常用工具深度洞察App瓶颈
在日常iOS开发过程中,性能问题往往是最令人头疼的一类Bug。尤其是在App上线前的压测阶段或是处理用户反馈的高发期,开发者往往需要面对卡顿、崩溃、能耗异常、日志混乱等一系列问题。这些问题表面上看似偶发,但背后往往隐藏着系统资源调度不当…...
算法:模拟
1.替换所有的问号 1576. 替换所有的问号 - 力扣(LeetCode) 遍历字符串:通过外层循环逐一检查每个字符。遇到 ? 时处理: 内层循环遍历小写字母(a 到 z)。对每个字母检查是否满足: 与…...
MinIO Docker 部署:仅开放一个端口
MinIO Docker 部署:仅开放一个端口 在实际的服务器部署中,出于安全和管理的考虑,我们可能只能开放一个端口。MinIO 是一个高性能的对象存储服务,支持 Docker 部署,但默认情况下它需要两个端口:一个是 API 端口(用于存储和访问数据),另一个是控制台端口(用于管理界面…...
人工智能--安全大模型训练计划:基于Fine-tuning + LLM Agent
安全大模型训练计划:基于Fine-tuning LLM Agent 1. 构建高质量安全数据集 目标:为安全大模型创建高质量、去偏、符合伦理的训练数据集,涵盖安全相关任务(如有害内容检测、隐私保护、道德推理等)。 1.1 数据收集 描…...
相关类相关的可视化图像总结
目录 一、散点图 二、气泡图 三、相关图 四、热力图 五、二维密度图 六、多模态二维密度图 七、雷达图 八、桑基图 九、总结 一、散点图 特点 通过点的位置展示两个连续变量之间的关系,可直观判断线性相关、非线性相关或无相关关系,点的分布密…...
使用python进行图像处理—图像滤波(5)
图像滤波是图像处理中最基本和最重要的操作之一。它的目的是在空间域上修改图像的像素值,以达到平滑(去噪)、锐化、边缘检测等效果。滤波通常通过卷积操作实现。 5.1卷积(Convolution)原理 卷积是滤波的核心。它是一种数学运算,…...
