YOLO-World——S(cvpr2024)

news/2024/5/28 4:09:38/ 标签: YOLO, 目标检测


文章目录

  • 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_19">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


http://www.ppmy.cn/news/1424627.html

相关文章

ChatGPT在论文写作中的应用:提升表达与逻辑的双重助力

随着人工智能技术的快速发展,其在科研领域的应用也愈发广泛。AI不仅提升了科研创新的效率,还为科研人员带来了前所未有的便利。本文将从ChatGPT深度科研应用、数据分析及机器学习、AI绘图以及高效论文撰写等方面,综述AI如何助力科研创新与效率…

区块链的应用场景及优势

区块链技术具有广泛的应用场景和众多的优势。 金融服务:区块链技术可以改善金融服务的效率与安全性。通过使用分布式账本,可以实现更快捷的支付和结算系统,减少交易的中介环节和成本。区块链还可以提供去中心化的借贷、投资和众筹平台&#x…

udemy视频教程下载:AI和ChatGPT提示工程精通指南

欢迎来到 ChatGPT 大师班! 这个 ChatGPT 大师班:AI 和提示工程指南是您通往 AI 未来的全通道通行证。 以下是您的学习旅程: 理解和掌握 ChatGPT:您将深入了解 AI 和语言模型,重点是 ChatGPT。我们设计了这个部分&am…

3d视图模型乱了怎么调?---模大狮模型网

在进行3D建模时,有时候您可能会遇到视图模型混乱的情况。这可能是由于模型结构问题、导入导出错误或编辑操作不当等原因造成的。混乱的模型不仅影响工作效率,还可能导致渲染结果不理想。本文将介绍六种有效的方法来调整混乱的3D视图模型,帮助…

华为OD-C卷-开源项目热榜[100分]Python3-100%

题目描述 某个开源社区希望将最近热度比较高的开源项目出一个榜单,推荐给社区里面的开发者。 对于每个开源项目,开发者可以进行关注(watch)、收藏(star)、fork、提issue、提交合并请求(MR)等。 数据库里面统计了每个开源项目关注、收藏、fork、issue、MR的数量,开源…

基于springboot实现车辆管理系统设计项目【项目源码+论文说明】计算机毕业设计

基于springboot实现车辆管理系统演示 摘要 随着信息技术在管理上越来越深入而广泛的应用,管理信息系统的实施在技术上已逐步成熟。本文介绍了车辆管理系统的开发全过程。通过分析车辆管理系统管理的不足,创建了一个计算机管理车辆管理系统的方案。文章介…

Elasticsearch克隆索引

我所使用的Elasticsearch的版本是基于7.17.7。 需求是将某个ES的索引进行克隆。例如我要将索引test_0419_1克隆一份新的索引test_0419_2。步骤如下: 首先将源索引进行修改PUT /test_0419_1/_block/write,即禁止对这个索引进行写数据操作。然后执行克隆…

中断的设备树修改及上机实验(按键驱动)流程

写在前面的话:对于 GPIO 按键,我们并不需要去写驱动程序,使用内核自带的驱动程序 drivers/input/keyboard/gpio_keys.c 就可以,然后你需要做的只是修改设备树指定引脚及键值。 根据驱动文件中的platform_driver中的.of_match_tabl…

【uniapp】request请求函数封装,token、成功、失败等

1、封装http.ts //utils--->http.ts/*** 添加拦截器* 拦截request请求* 拦截uploadFile文件上传** TODO* 1、非http开头需要拼接地址* 2、请求超时* 3、添加小程序端请求头标识* 4、添加token请求头标识*/ import { useMemberStore } from /stores/index const member…

yolov8目标检测 部署瑞芯微rk3588记录

1. 前置条件 本地电脑系统,ubuntu20.04 训练代码: 训练代码下载的ultralytics官方代码 SHA:6a2fddfb46aea45dd26cb060157d22cf14cd8c64 训练代码仅做数据修改,类别修改,代码结构未做任何修改 需要准备的代码&#…

【网站项目】驾校报名小程序

🙊作者简介:拥有多年开发工作经验,分享技术代码帮助学生学习,独立完成自己的项目或者毕业设计。 代码可以私聊博主获取。🌹赠送计算机毕业设计600个选题excel文件,帮助大学选题。赠送开题报告模板&#xff…

华为校园公开课走入上海交大,鸿蒙成为专业核心课程

4月12日,华为校园公开课在中国上海交通大学成功举办,吸引了来自计算机等相关专业的150余名学生参加。据了解,由吴帆、陈贵海、过敏意、吴晨涛、刘生钟等教授在中国上海交通大学面向计算机系本科生开设的《操作系统》课程,是该系学…

Day04 - React 第四天

学习react的第四天&#xff0c;持续更新中 关注不迷路&#xff01;&#xff01;&#xff01; 组件三大核心之——Ref ref多种形式 字符串形式 回调形式 createRef 字符串形式 class Perosn extends React.Component {render() {return (<div><input ref"ipnp…

R语言影像批量镶嵌与裁剪——mosaic

你有中国不同省份的影像&#xff0c;想要拼接镶嵌成完整的中国影像 镶嵌一 library("raster") library("sp") library("rgdal") library("rgeos") library("…

Django中间件路由映射自动加/斜杠问题原因及分析

输入 http://127.0.0.1:8000/main/index/ 输入 http://127.0.0.1:8000/main/index 路由定义情况 urlpatterns [path("index/", views.index) ]可以发现我在输入URL的index路由时&#xff0c;如果没有和Django定义的路由匹配规则一样的话&#xff0c;浏览器自…

【机器学习】数据变换---小波变换特征提取及应用案列介绍

引言 在机器学习领域&#xff0c;数据变换是一种常见且重要的预处理步骤。通过对原始数据进行变换&#xff0c;我们可以提取出更有意义的特征&#xff0c;提高模型的性能。在众多数据变换方法中&#xff0c;小波变换是一种非常有效的方法&#xff0c;尤其适用于处理非平稳信号和…

(十六)call、apply、bind介绍、区别和实现

函数中的this指向&#xff1a; 函数中的this指向是在函数被调用的时候确定的&#xff0c;也就是执行上下文被创建时确定的。在一个执行上下文中&#xff0c;this由调用者提供&#xff0c;由调用函数的方式来决定。 类数组对象arguments&#xff1a; arguments只在函数&#…

Adobe Premiere Pro将加入AI生成式功能,以提高视频编辑的效率;OpenAI宣布在东京设立亚洲首个办事处

&#x1f989; AI新闻 &#x1f680; Adobe Premiere Pro将加入AI生成式功能&#xff0c;以提高视频编辑的效率 摘要&#xff1a;Adobe宣布&#xff0c;将为Premiere Pro引入由生成式AI驱动的新功能&#xff0c;以提高视频编辑的效率。这些功能包括“生成扩展”&#xff0c;能…

ArrayList,Vector,LinkedList内存解析

1.ArrayList (1). 特点 : 实现了List接口&#xff0c;存储有序的&#xff0c;可重复的数据.底层使用Object[]数组存储.线程不安全.(底层方法未用synchronized修饰.) (2). 版本解析 : <i> : JDK7版本 ArrayList<String> list &#xff1d;new ArrayList<&…

OV通配符证书:安全、便捷的网络认证新选择

OV通配符证书&#xff0c;即组织验证型通配符证书&#xff0c;其最大特点在于其通配符功能。这意味着&#xff0c;一个OV通配符证书可以覆盖同一主域名下的多个子域名&#xff0c;大大简化了证书管理和维护的复杂性。无论是大型企业还是个人网站&#xff0c;都可以通过OV通配符…