YOLO-World——S


文章目录

  • Abstract
    • 成果
  • Method
    • Pre-training Formulation: Region-Text Pairs
    • Model Architecture
      • YOLO Detector
      • Text Encoder
      • Text Contrastive Head
      • Training with Online Vocabulary
      • Inference with Offline Vocabulary
    • Re-parameterizable Vision-Language PAN
      • Text-guided CSPLayer
      • Image-Pooling Attention
    • Pre-training Schemes
      • Learning from Region-Text Contrastive Loss
      • Pseudo Labeling with Image-Text Data
  • Experiment

原文
代码

Abstract

YOLO系列检测器对预定义和训练对象类别的依赖限制了它们在开放场景中的适用性。(简单来说就是一旦对象类别被定义和标记,经过训练的检测器只能检测到那些特定的类别)为了解决这个限制,作者提出了YOLO-World——通过视觉语言建模和大规模数据集的预训练,增强了YOLO的开放词汇检测能力
具体来说,作者提出了一种新的可重参数化视觉-语言路径聚合网络(RepVL-PAN)和区域-文本对比损失,以促进视觉和语言信息之间的交互。

成果

在具有挑战性的LVIS数据集上,YOLO-World在V100上实现了35.4 AP和52.0 FPS,在精度和速度方面都优于许多最先进的方法。此外,微调YOLO-World在目标检测和开放词汇实例分割等几个下游任务上取得了显著的性能

Method

Pre-training Formulation: Region-Text Pairs

以往的目标检测方法实例注释是Ω={Bi,ci},由边界框{Bi}和类别标签{ci}组成。本文中,作者将实例注释重新表述为区域-文本对Ω= {Bi,ti},ti是区域Bi的对应文本,可以是类别名称、名词短语或对象描述。此外,YOLO-World同时采用图像I和文本T作为输入,输出预测框{bk}和对应的目标嵌入{ek} (ek∈RD)

Model Architecture


它由一个YOLO检测器、一个文本编码器和一个可重新参数化的视觉语言路径聚合网络(RepVL-PAN)组成。
文本编码器将输入文本转换为文本嵌入,图像编码器(也就是YOLO Backbone)从输入图像中提取多尺度特征,然后利用RepVL-PAN通过利用图像特征和文本嵌入之间的跨模态融合来增强文本和图像的表示,最后YOLO-World预测回归的边界框和目标嵌入,以匹配输入文本中出现的类别或名词

YOLO Detector

主要是基于YOLOv8开发的,它包含了一个Darknet骨架作为图像编码器,一个用于多尺度特征金字塔的路径聚合网络(PAN),以及一个用于边界盒回归和对象嵌入的头部

Text Encoder

给定文本T,采用CLIP预训练的Trans- former文本编码器提取相应的文本嵌入W = TextEncoder(T)∈RC×D,其中C是名词的数量,D是嵌入维度。
当输入文本为标题或引用表达式时,采用简单的n-gram算法提取名词短语,然后将其输入文本编码器。

Text Contrastive Head

作者采用解耦头部和两个3×3卷积来回归边界框{bk}Kk=1和对象嵌入{ek}K k =1,其中K表示对象的数量,提出了一个文本对比头来获得对象-文本相似度sk,j
将文本嵌入ek与分类器权重wj之间的相似度定义为它们的L2范数的乘积,并加入了具有可学习缩放因子α和移位因子β的仿射变换
(L2范数和仿射变换对于稳定区域文本训练都很重要)

Training with Online Vocabulary

在训练过程中,作者为每个包含4张图像的Mosaic样本构建一个在线词汇T。具体来说,对拼接图像中涉及的所有正面名词进行抽样,并从相应的数据集中随机抽样一些负面名词,每个Mosaic样本的词汇表最多包含M个名词,M被默认设置为80

Inference with Offline Vocabulary

在推理阶段,作者提出了一种基于离线词汇的“提示-然后检测”策略,以提高推理效率。如图3所示,用户可以定义一系列自定义提示,其中可能包括标题或类别。然后,利用文本编码器对这些提示进行编码,并获得离线词汇嵌入。离线词汇表允许避免对每个输入进行计算,并提供根据需要调整词汇表的灵活性。

Re-parameterizable Vision-Language PAN

提出的RepVL-PAN采用文本引导CSPLayer(T-CSPLayer)将语言信息注入图像特征,并采用图像池化注意力(I-Pooling Attention)增强图像感知文本嵌入

本文提出的RepVL-PAN遵循文献自顶向下和自底向上的路径,通过多尺度图像特征{C3,C4,C5}建立特征金字塔{P3,P4,P5}。此外,本文还提出了文本引导的CSP层(T-CSPLayer)和图像池化注意力(I-Pooling Attention),以进一步增强图像特征和文本特征之间的交互,从而提高开放词汇表的视觉语义表示能力。在推理过程中,离线词汇嵌入可以重新参数化为卷积层或线性层的权重,以便部署。

Text-guided CSPLayer

扩展了CSPLayer,将文本引导纳入多尺度图像特征,形成文本引导CSPLayer
具体来说,给定文本嵌入W和图像特征Xl∈RH×W×D (l∈{3,4,5}),作者采用最后一个黑瓶颈块后的max-sigmoid关注将文本特征聚合为图像特征:
Xl '与跨阶段特征连接作为输出, δ表示sigmoid函数

Image-Pooling Attention

为了利用图像感知信息增强文本嵌入,作者通过提出图像池关注聚合图像特征来更新文本嵌入
作者不是直接在图像特征上使用交叉关注,而是利用多尺度特征上的最大池化来获得3 × 3区域,从而得到总共27个tokenX ~ ∈R27×D

Pre-training Schemes

Learning from Region-Text Contrastive Loss

给定马赛克样本I和文本T,YOLO-World输出K个对象预测{ Bk,sk} Kk=1,以及注释Ω= { Bi,ti} Ni=1。遵循YOLOv8,并利用任务对齐标签分配将预测与地面真实性注释匹配,并为每个正预测分配一个文本索引作为分类标签基于这个词汇表,我们通过对象-文本(区域-文本)相似性和对象-文本分配之间的交叉熵,构建了区域-文本对的区域-文本对比损失Lcon。此外,我们采用IoU损失和分布式焦点损失进行边界盒回归,并将总训练损失定义为

λI为指示因子,当输入图像I来自检测或接地数据时设为1,当输入图像I来自图像-文本数据时设为0

Pseudo Labeling with Image-Text Data

作者提出了一种自动标记方法来生成区域文本对,而不是直接使用图像文本对进行预训练
包含三个步骤:
(1)名词短语提取:首先利用n-gram算法从文本中提取名词短语
(2)伪标注:采用预训练的开放词汇检测器,为每张图像的给定名词短语生成伪框,从而提供粗糙的区域-文本对
(3)过滤:使用预训练的CLIP来评估图像-文本对和区域-文本对的相关性,并过滤低相关性的伪注释和图像

Experiment

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/546097.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

强烈推荐 ——电脑终端管理系统

强烈推荐!电脑终端管理系统 电脑终端管理系统使用的目的是为了管控电脑上硬件和软件资产,以及员工使用电脑的行为,最终目的是为了保护企业资产和信息,以下是一些推荐的电脑终端管理系统,这些系统为企业提供了强大的功…

C语言基础入门案例(2)

目录 第一题:编写一个基于switch语句的等级评估程序 第二题:学生成绩评定 第三题:计算圆的周长和面积 第四题:将三个整数按从大到小顺序输出 第五题:打印九九乘法表 第一题:编写一个基于switch语句的等…

TXT文本批量高效编辑,支持给文章结尾进行添加上相同的结语,轻松应对多个文本

在信息爆炸的时代,我们每天面对大量的文本信息,无论是工作文档、新闻稿件还是社交媒体内容,都需要进行高效、精准的编辑。而XT文本批量编辑器正是您理想的助手,它支持批量高效编辑,更能在文章结尾添加上您想要的相同结…

Knowledge Editing for Large Language Models: A Survey

目录 IntroductionProblem Formulation评估指标Methods数据集应用讨论挑战未来方向 大型语言模型(LLMS)最近由于其出色的理解,分析和生成文本的能力而根据其广泛的知识和推理能力来改变了学术和工业景观。然而,LLM的一个主要缺点是…

韩顺平Java | C25 JDBC和连接池(上)

概述 JDBC概述:JDBC为访问不同数据库提供统一接口,为使用者屏蔽细节问题。Java程序员使用JDBC可以连接任何提供了JDBC驱动程序的数据库系统,从而完成对数据库的各种操作。 // 模拟代码 //JdbcInterface.java --Java规定的JDBC接口(方法) p…

计算机网络——抓取icmp包

前言 本博客是博主用于记录计算机网络实验的博客,如果疏忽出现错误,还望各位指正。 抓包 我们是用Wireshark工具来进行抓包的。 ​在安装时候一路打勾安装即可,不过最后那个因为是英文,一定要看清,点了立即重启&am…

采用C#.Net +JavaScript 开发的云LIS系统源码 二级医院应用案例有演示

采用C#.Net JavaScript 开发的云LIS系统源码 二级医院应用案例有演示 一、系统简介 云LIS是为区域医疗提供临床实验室信息服务的计算机应用程序,可协助区域内所有临床实验室相互协调并完成日常检验工作,对区域内的检验数据进行集中管理和共享&#xff0…

【UE5.1】使用MySQL and MariaDB Integration插件——(2)查询

在上一篇(【UE5.1】使用MySQL and MariaDB Integration插件——(1)连接MySQL)基础上继续实现查询MySQL数据表功能。 效果 步骤 1. 这里先新建一个控件蓝图,命名为“WBP_OperateDB”,该界面用于在连接数据…

Java——线程

程序 为实现某些功能,使用计算机语言编写的一系列指令(代码)的集合 特指静态的,安装在硬盘中的代码集合 进程 运行中的程序(被加载到内存中),是操作系统进行资源分配的最小单位 线程 进程可以进一步细化为线程,是进程内一个…

运费计算(C语言)

一、运行结果&#xff1b; 二、源代码&#xff1b; # define _CRT_SECURE_NO_WARNINGS # include <stdio.h>int main() {//初始化变量值&#xff1b;int distance, c;float weight, price, discount, fee;//提示用户&#xff1b;printf("请输入路程&#xff0c;单价…

自动驾驶时代的物联网与车载系统安全:挑战与应对策略

随着特斯拉CEO埃隆马斯克近日对未来出行景象的描绘——几乎所有汽车都将实现自动驾驶&#xff0c;这一愿景愈发接近现实。马斯克生动比喻&#xff0c;未来的乘客步入汽车就如同走进一部自动化的电梯&#xff0c;无需任何手动操作。这一转变预示着汽车行业正朝着高度智能化的方向…

C语言基础---指针的基本语法

概述 内存地址 在计算机内存中&#xff0c;每个存储单元都有一个唯一的地址(内存编号)。通俗理解&#xff0c;内存就是房间&#xff0c;地址就是门牌号 指针和指针变量 指针&#xff08;Pointer&#xff09;是一种特殊的变量类型&#xff0c;它用于存储内存地址。指针的实…

六、数据呈现

目录 6.1 理解输入输出 6.1.1 标准文件描述符 1 STDIN &#xff08;0&#xff09; 2 STDOUT &#xff08;1&#xff09; 3 STDERR&#xff08;2&#xff09; 6.1.2 重定向错误 1 只重定向错误 2 重定向错误和数据 6.2 在脚本中重定向输出 6.2.1 临时重定向 6.2.2 永…

腾讯云全新云服务器实例S8/M8正式上线,性能提升高达115%!

2024年4月15日&#xff0c;腾讯云正式上线第八代云服务器标准型实例 S8和内存型实例M8。基于自研服务器的高密设计与硬件升级&#xff0c;搭载第五代英特尔至强可扩展处理器的腾讯云实例S8/M8&#xff0c;计算性能大幅提升&#xff0c;对比腾讯云云服务器上代实例&#xff0c;整…

Ubuntu 22.04安装中文输入法

1. 安装 sudo apt install fcitx5 2. 管理已安装的语言 Setting->Region & Language->Manage Installed Language 在下图中点击“安装”&#xff0c;之后需要等一会 选择Fcitx 5 3. 添加输入法 Setting->Keyboard 点击chinese 选择你想要的输入法 重启一下&a…

React + 项目(从基础到实战) -- 第七期

使用ant design 表单组件,开发登录,注册,搜索功能 React 表单组件 ,受控组件 案列 使用defaultVlue属性 bug : 改变了数据源,但是页面未重新渲染 {/* 表单组件 */}<button onClick{()>{console.log(text);}}>打印</button><button onClick{()>[setText(&…

【网络编程】Linux网络内核结构以及分布剖析

hello &#xff01;大家好呀&#xff01; 欢迎大家来到我的网络编程系列之Linux网络内核结构以及分布剖析&#xff0c;在这篇文章中&#xff0c;你将会学习到在Linux内核中如何实现网络数据的输入和输出的&#xff0c;并且我会给出源码进行剖析&#xff0c;以及手绘UML图来帮助…

《TinyLlama: An Open-Source Small Language Model》全文翻译

【Title】 TinyLlama&#xff1a;开源小语言模型 【Abstract】 我们推出了 TinyLlama&#xff0c;这是一个紧凑的 1.1B 语言模型&#xff0c;在大约 1 万亿个令牌上进行了大约 3 个时期的预训练。 TinyLlama 基于 Llama 2&#xff08;Touvron 等人&#xff0c;2023b&#xff…

【Python】#3 基本程序控制

文章目录 一、分支结构if语句&#xff08;Python没有switch&#xff09;tips:紧凑形式&#xff1a;适用于简单表达式的二分支结构 二、循环结构1. for语句range函数 2. while语句3. 循环保留字&#xff1a;break/continue与带else的循环语句 一、分支结构if语句&#xff08;Pyt…

关于伴行天使车载监护器的技术路线

为了判断分析并反馈孩童是否昏睡状态&#xff0c;以预防因分心后排而导致的交通事故&#xff0c;本团队根据基于回归树对齐算法中获取的数据&#xff0c;建立了疲劳度评分机制。 本评分机制采用人脸关键点智能标注模型检测人脸&#xff0c;通过人脸识别68特征点检测、分别获取…