YOLO | YOLO-World论文详解

腾讯出的热气腾腾的论文YOLO-World来啦~

论文:2024.2.2v2_Real-Time Open-Vocabulary Object Detection

代码:AILab-CVC/YOLO-World: Real-Time Open-Vocabulary Object Detection (github.com)

Demo:YOLO-World (yoloworld.cc)

论文详解

简要总结

YOLO-World使用一种名为RepVL-PAN(Pr-parmeteriable Vision-Langeuate Path Aggregation Network)的新网络来促进视觉和语言信息之间的交互,以零样本的方式高效运行。使用开放词汇对象检测更快、更便宜和更广泛可用。YOLO-World保持几乎相同的精度,比之前好的零样本检测器快20倍,小了5倍。

摘要

You Only Look Once (YOLO) 系列探测器已成为高效实用的工具。但是,它们对预定义和训练的对象类别的依赖限制了它们在开放场景中的适用性。为了解决这一局限性,论文引入了YOLO-World,这是一种创新方法,通过视觉语言建模和大规模数据集上的预训练,增强了YOLO的开放词汇检测能力。具体来说,论文提出了一种新的可重参数化的视觉-语言路径聚合网络(RepVL-PAN)和区域-文本对比损失,以促进视觉和语言信息之间的交互。擅长以零样本方式高效检测各种物体。在具有挑战性的LVIS数据集上,YOLO-World在V100上实现了35.4 AP,FPS为52.0 FPS,在准确性和速度方面都优于许多最先进的方法。此外,经过微调的YOLO-World在多个下游任务上取得了卓越的性能,包括对象检测和开放词汇实例分割。

方法

预训练公式:区域-文本对

传统的YOLO系列(例如YOLOv5,YOLO6,YOLO7,YOLO8),需要有bounding box有instance annotation去训练,但YOLO-World 同时采用图像  和文本 (一组名词)作为输入,输出预测的边界框  及其对应的目标嵌入

模型架构

YOLO-WORLD的骨干采用了YOLO的现有结构,语言模型采用了CLIP模型。使用文本和图像特征中的特征通过区域到文本对比学习连接到 RepVL-PAN。YOLO检测将图像-文本数据集成到区域-文本对中。

YOLO检测器(YOLO Detector)

  • 基于 Ultralytics YOLOv8;
  • 从输入影像中提取多尺度要素。
  • 暗网骨干作为图像编码器
  • 多尺度特征金字塔的路径聚合网络(PAN),
  • head 用于边界框回归和对象嵌入。

文本编码器(Text Encoder):

  • 使用CLIP 预训练的 Transformer 文本编码器;
  • 将文本编码为文本嵌入

文本对比头(Text Contrastive Head)

  • 使用了yolov8的解耦头和俩个3×3卷积
  • 因为要计算目标-文本的相似度,所以提出文本对比头
  • 为了稳定区域-文本训练,目标编码e和文本编码t使用L2-Norm

在线词汇训练(Training with Online Vocabulary)

  • 在训练过程中,为每个包含4幅图像的马赛克样本构建一个在线词汇表 。

离线词汇推理​​​​​​​(Inference with Offline Vocabulary)

  • 提出了一种以“提示后检测”的策略,使用离线词汇以进一步提高效率。

可重新参数化的视觉语言路径聚合网络 (RepVL-PAN)

 - 在图像特征和文本嵌入之间执行多级跨模态融合

  • 提出RepVL-PAN的结构:PAN中的自顶向下和自底向上的路径,建立具有多尺度图像特征的特征金字塔。
  • 提出了文本引导的CSPLayer(T-CSPLayer)和图像池化注意力(I-Pooling Attention),以进一步增强图像特征与文本特征之间的交互,这可以提高开集能力的视觉语义表示。
  • 在推理过程中,离线词汇嵌入可以重新参数化为卷积层或线性层的权重以进行部署。

与传统的YOLO检测器相比,YOLO-World是一个开放的词汇检测器,它使用文本作为输入,而文本编码器首先将输入文本编码为嵌入。然后,图像编码器将输入图像编码为多层图像特征,RepVL-PAN对图像和文本特征进行多层跨模态融合。最后,YOLO-World 预测与输入文本中出现的类别或名词匹配的校准边界框和对象嵌入。

YOLO-World提供三种型号:小型13M(重新参数化77M),中型29M(重新参数化92M)和大型48M(重新参数化110M)参数。

在LVIS数据集上对模型进行了基准测试,YOLO-World达到了35.4 AP和52.0 FPS之间的大版本和26.2 AP和74.1 FPS的小版本。

参考文献

【1】YOLO-World: Real-Time, Zero-Shot Object Detection (roboflow.com)

【2】[Paper Review] YOLO-World: Real-Time Open-Vocabulary Object Detection 리뷰 (velog.io) 

【3】 拯救大兵YOLO!爆款YOLO-World :开集检测速度提升20倍!-CSDN博客

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

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

相关文章

WebSocketServer方法里注入不了其他类

请直接看原文: WebSocketServer无法注入其他对象的问题 - 知乎 (zhihu.com) WebSocket服务无法使用自动注入解决方法_websocket sever不可以直接注入吧-CSDN博客 ------------------------------------------------------------------------------------------------------…

Matplotlib plt.plot:从入门到精通,只需一篇文章!

Matplotlib plt.plot:从入门到精通,只需一篇文章! 利用Matplotlib进行数据可视化示例 🌵文章目录🌵 📊 1. 引言:为什么Matplotlib在数据可视化中如此重要?📊✨ 2. plt.pl…

【stm32】hal库学习笔记-DAC数模转换(超详细!)

【stm32】hal库学习笔记-DAC数模转换(超详细!) DAC功能概述 DAC:将数字信号转换为模拟信号 并行式 分辨率 采样速率 DAC驱动函数 Cube图形化配置 导入TFT_LCD ioc 设置DAC通道 更改ADC配置 优先级设置 更改TIM3配置 按键…

刷题计划_冲绿名

现在 rating 是 1104 准备刷 100道 1200的题,把实力提升到 1200 ,上一个绿名 每一个分数段的题都写一百道,争取早日上蓝 现在 虽然 cf 里面显示写了一些这个分数段的题,但是自己训练的时候,其实是没有训练一道这个分…

推荐《架构探险:从零开始写Java Web框架》

版权声明 本文原创作者:谷哥的小弟作者博客地址:http://blog.csdn.net/lfdfhl 春节读了《架构探险:从零开始写Java Web框架》,一本大概10年前的好书。 本书的作者是阿里巴巴架构师黄勇。黄勇对分布式服务架构与大数据技术有深入…

排序算法---桶排序

原创不易,转载请注明出处。欢迎点赞收藏~ 桶排序(Bucket Sort)是一种排序算法,它将待排序的数据分到几个有序的桶中,每个桶再分别进行排序,最后将各个桶中的数据按照顺序依次取出,即可得到有序序…

COM初体验——新建文档并写入内容。

我想在程序里和Word交互。老师跟我说不要学COM,因为它已经过时了。但是我不想再把代码移植到C#上面,然后用VSTO——已经用了std::unordered_set!因为我使用了Copilot,结合我的思考,写了下面的代码: #impor…

【C++】const、static关键字和构造函数初始化

💗个人主页💗 ⭐个人专栏——C学习⭐ 💫点击关注🤩一起学习C语言💯💫 目录 1. const修饰成员函数 1.1 语法格式 1.2 权限放大缩小 1.3 思考 1.4 解答 2. 再谈构造函数 2.1 构造函数体赋值 2.2 初始…

用HTML5实现动画

用HTML5实现动画 要在HTML5中实现动画&#xff0c;可以使用以下几种方法&#xff1a;CSS动画、使用<canvas>元素和JavaScript来实现动画、使用JavaScript动画库。重点介绍前两种。 一、CSS动画 CSS3 动画&#xff1a;使用CSS3的动画属性和关键帧&#xff08;keyframes&…

ATT汇编入门[0] hello world

文章目录 写在前面寄存器使用语法指令后缀寻址方式 系统调用示例程序 写在前面 x86汇编有intel和AT&T两种语法&#xff0c;网上资料使用intel语法的相对多一些&#xff0c;但是在linux平台的GNU汇编器用的是AT&T语法&#xff0c;本篇记录一下AT&T格式汇编程序的he…

Kotlin基本语法3集合

1.List集合 1.1 只读List fun main() {val list listOf("Jason", "Jack", "Jacky")println(list.getOrElse(3){"Unknown"})println(list.getOrNull(3)?:"Unknown") } 1.2 可变List fun main() {val mutableList mutabl…

电商+支付双系统项目------设计数据库

这篇文章将详细介绍电商支付双系统项目的数据库设计。数据库在该项目中扮演着至关重要的角色&#xff0c;它负责存储和管理用户信息、商品数据、订单记录以及支付交易等关键数据。通过精心设计和优化数据库结构&#xff0c;可以实现高效的数据存储和检索&#xff0c;确保系统的…

如何查看Apple Watch的步数?这里提供几个方法

所有Apple Watch都配有内置计步器,即具有步进跟踪功能。当你第一次设置手表时,你的Apple Watch将自动开始计算步数。让我们看看如何在Apple Watch上查看步数。​ 使用活动应用程序 1、按下Apple Watch上的数字皇冠,打开应用程序屏幕。 2、点击活动应用程序。 3、你会看到…

书生浦语大模型实战营-课程笔记(3)

本节课主要是跟着教程做的&#xff0c;操作的东西放到作业里记录了。 这里主要记录一些视频里讲的非操作性的东西。 RAG外挂知识库&#xff1f;优点是成本低&#xff0c;不用重新训练 RAG的一个整体流程。 涉及了文本相似度匹配&#xff0c;是不是和传统的问答系统&#xff0…

VueCLI核心知识4:动画效果、过渡效果

1 动画效果 【代码】 <template><div><button click"isShow !isShow">显示/隐藏</button><!-- <transition name"xxx" :appear"true"> 可以指定name属性&#xff0c;也可以不指定&#xff0c;name属性在有…

GAN生成对抗性网络

一、GAN原理 出发点&#xff1a;机器学习中生成模型的问题 无监督学习是机器学习和未来人工智能的突破点&#xff0c;生成模型是无监督学习的关键部分 特点&#xff1a; 不需要MCMC或者变分贝叶斯等复杂的手段&#xff0c;只需要在G和D中对应的多层感知机中运行反向传播或者…

红队打靶练习:HACK ME PLEASE: 1

信息收集 1、arp ┌──(root㉿ru)-[~/kali] └─# arp-scan -l Interface: eth0, type: EN10MB, MAC: 00:0c:29:69:c7:bf, IPv4: 192.168.61.128 Starting arp-scan 1.10.0 with 256 hosts (https://github.com/royhills/arp-scan) 192.168.61.2 00:50:56:f0:df:20 …

[BIZ] - 1.金融交易系统特点

1. 典型数据汇总 数据 说明 新增数据量(条/天) Qps(条/s) 消息大小(Byte) 实时性 可丢失性 可恢复性 实时行情 1.使用场景&#xff1a;交易&#xff0c;报价&#xff0c;策略验证&#xff1b; 2.冷热分离&#xff1a;彭博行情/其他行情&#xff1b;黄金&期货行情/…

Panalog 日志审计系统 libres_syn_delete.php 前台RCE漏洞复现

0x01 产品简介 Panalog是一款日志审计系统,方便用户统一集中监控、管理在网的海量设备。 0x02 漏洞概述 Panalog日志审计系统 libres_syn_delete.php接口处存在远程命令执行漏洞,攻击者可执行任意命令,接管服务器权限。 0x03 影响范围 version <= MARS r10p1Free 0…

【教3妹学编程-算法题】将数组分成最小总代价的子数组 II

2哥 : 叮铃铃&#xff0c;3妹&#xff0c;过年干嘛呢&#xff0c;是不是逛吃逛吃&#xff0c;有没有长胖呢。 3妹&#xff1a;切&#xff0c;我妈张罗着要给我相亲呢。 2哥 : 相亲&#xff1f;哈哈哈哈 3妹&#xff1a;别笑了&#xff0c;我妈说跟我年龄相等的人都已经孩子上小…