U版YOLO-World来了,YOLOv8再度升级,三行代码上手YOLO-World!

本文首发:AIWalker
欢迎关注AIWalker,近距离接触底层视觉与基础AI

https://arxiv.org/abs/2401.17270
https://github.com/AILab-CVC/YOLO-World
https://github.com/ultralytics/ultralytics
https://www.yoloworld.cc/

YOLO-World亮点

  • YOLO-World是下一代YOLO检测器,旨在实时开放词汇对象检测。
  • YOLO-World在大规模视觉语言数据集上进行了预训练,包括Objects 365,GQA,Flickr 30 K和CC 3 M,这使得YOLO-World具有强大的zero-shot开集Capbility与Grounding能力
  • YOLO-World实现了快速的推理速度;可以对用户给定词汇,所提重新参数化技术进一步加速推理和部署;

YOLO-World方案

上图为YOLO-World整体架构示意图,它包含一个YOLO检测器、一个文本编码器以及RepVL-PAN。文本编码器首先将输入文本编码为文本嵌入信息;图像编码器对基于输入图像提取多尺度特征信息;RepVL-PAN通过跨模态融合增强文本与图像表征。

  • YOLO Detector:编码器基于YOLOv8演变而来,YOLOv8由DarkNet骨干、PAN多尺度特征融合以及检测头构成;
  • Text Encoder:采用CLIP预训练文本编码器对输入文本T提取对应的文本嵌入 W = TextEncoder ( T ) ∈ R C × D W = \text{TextEncoder}(T) \in \mathbb{R}^{C \times D} W=TextEncoder(T)RC×D,这里C表示名词数目,D表示嵌入维度。相比于Text语言编码器,CLIP文本编码器可以提供更好的视觉-语义能力。当输入文本是句子时,我们采用n-gram算法提取名词短词并送入本文编码器
  • Text Contrastive Head:延续YOLOv8,我们采用解耦头对边框 { b k } k = 1 K \{b_k\}_{k=1}^K {bk}k=1K与目标嵌入 { e k } k = 1 K \{e_k\}_{k=1}^K {ek}k=1K进行回归。作者提出文本对比头(Text Contrastive Head)计算目标-文本相似度 s k , j s_{k,j} sk,j,定义如下:

s k , j = α ⋅ L2-Norm ( e k ) ⋅ L2-Norm ( w j ) T + β s_{k,j} = \alpha \cdot \text{L2-Norm}(e_k) \cdot \text{L2-Norm}(w_j)^{T} + \beta sk,j=αL2-Norm(ek)L2-Norm(wj)T+β

注:这里的L2-Norm与仿生变换参数对于稳定区域-本文训练非常重要。

  • Training with Online Vocabulary:在训练过策划肝囊肿,我们为每个Mosaic图像构建一个在线词汇集合T。具体来说,我们采样所有包含在Mosaic图像中的正名词短语,然后从对应数据集中随机采样一些负名词短语。每个Mosaic图像最多包含M个词汇,默认M=80。
  • Inference with Offline Vocabulary:在推理阶段,我们提出了一种基于离线词汇集合的prompt-then-detect策略以进一步提升效率。用户也可以自定义一些客制化提示信息[可选],然后采用文本编码器对这些提示信息进行编码得到离线嵌入包。离线词汇可以避免对每个输入都进行文本编码计算,为词汇调整提供了更灵活的调控机制。

更详细介绍请参考:YOLO-World | 赋能YOLOv8开集检测能力,构建新一代YOLO新标杆

上手测试

官方YOLO-World是基于mmyolo, mmdetection实现的,但U1S1,mm系列对于入门确实不错,但对于新开源算法上手测试真心难用,毒瘤啊[mmcv的ops这个鬼东西啊]~

好消息来了!ultralytics支持YOLO-World了,可以直接通过ultralytics库来玩YOLO-world了

使用方式简单到了极致,几行命令即可,还不需要安装一大堆的mm包,不需要编译各种无关op,牛逼克拉斯~

from ultralytics import YOLOWorld# Initialize a YOLO-World model
model = YOLOWorld('yolov8s-world.pt')  # Execute inference with the YOLOv8s-world on the specified image
results = model.predict('bus.jpg')# Show results
results[0].show()

就是这么的简单好用,三行代码完成测试!

那么,YOLO-World的Prompts功能该如何测试呢?同样非常简单,新增一行代码即可,代码如下:

from ultralytics import YOLOWorld# Initialize a YOLO-World model
model = YOLOWorld('yolov8s-world.pt')  # Define custom classes
model.set_classes(["person"])# Execute inference with the YOLOv8s-world on the specified image
results = model.predict('bus.jpg')# Show results
results[0].show()

就这么一行代码改动,YOLO-World就变成了行人检测器,

当然,你还可以把它变成bus检测器,效果如下

不得不说,YOLO-World进一步释放了检测器的可玩性,不仅可以搞通用检测,还可以玩限定场景检测,关键速度还贼快,还等什么呢,速速试玩咯

推荐阅读

  • YOLO-World | 赋能YOLOv8开集检测能力,构建新一代YOLO新标杆
  • YOLOv8重磅升级,新增旋转目标检测,又该学习了~
  • YOLO-NAS | YOLO新高度,引入NAS,出于YOLOv8而优于YOLOv8
  • YOLOv6 v3.0 | 重磅升级!性能超越V8!
  • DAMO-YOLO | 超越所有YOLO,魔搭社区开源至强YOLO,5行代码即可体验!
  • 南开大学提出YOLO-MS | 超越YOLOv8与RTMDet,即插即用打破性能瓶颈

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

如若内容造成侵权/违法违规/事实不符,请联系瞎胡闹网进行投诉反馈,一经查实,立即删除!

相关文章

c语言字符函数和字符串函数

目录 1. 字符分类函数2. 字符转换函数3. strlen的使用和模拟实现4. strcpy的使用和模拟实现5. strcat的使用和模拟实现6. strcmp的使用和模拟实现7. strncpy函数的使用8. strncat函数的使用9. strncmp函数的使用10. strstr的使用和模拟实现11. strtok函数的使用12. strerror函数…

数字化转型导师坚鹏:数据安全法解读与政府数字化转型

网络安全法、数据安全法、个人信息保护法解读与政府数字化转型 课程背景: 很多机构存在以下问题: 不清楚网络安全法、数据安全法、个人信息保护法立法背景? 不知道如何理解网络安全法、数据安全法、个人信息保护法政策? 不…

解决easyExcel模板填充时转义字符\{xxx\}失效

正常我们在使用easyExcel进行模板填充时,定义的变量会填充好对应的实际数据,未定义的变量会被清空,但是如果这个未定义的变量其实是模板的一部分,那么清空了就出错了。 在这张图里,上面的是模板填充后导出的文件&…

1906_ AMBA_高级MCU总线架构

1906_ AMBA_高级MCU总线架构 全部学习汇总: g_arm_cores: ARM内核的学习笔记 (gitee.com) 在看内核相关的文件的时候看到了AMBA这个缩写,查了一下具体的概念。这个其实是一个总线架构,应该是ARM设计的。我找到了相关的介绍网页: A…

[嵌入式系统-33]:RT-Thread -18- 新手指南:三种不同的版本、三阶段学习路径

目录 前言:学习路径:入门学习-》进阶段学习》应用开发 一、RT-Thread版本 1.1 标准版 1.2 Nano 1.3 Smart版本 1.4 初学者制定学习路线 1.5 RT-Thread在线文档中心目录结构 1.6 学习和使用RT-Thread的三种场景 二、入门学习阶段:内…

【爬虫逆向实战篇】定位加密参数、断点调试与JS代码分析

文章目录 1. 写在前面2. 确认加密参数3. 加密参数定位4. XHR断点调试 【作者主页】:吴秋霖 【作者介绍】:Python领域优质创作者、阿里云博客专家、华为云享专家。长期致力于Python与爬虫领域研究与开发工作! 【作者推荐】:对JS逆向…

C++基础学习——哈希表的封装

目录 ​编辑 一,实现一个可封装的哈希表 1,哈希表的节点 2,哈希表的成员 3,哈希表成员方法的实现 4,迭代器的实现 5,在哈希表中加入迭代器 二,封装哈希表 1,unorder_map封装 2…

win10安装使用AxurePR9

背景:win10 安装、汉化 Axure Pr9 下载 安装包 链接:https://pan.baidu.com/s/1taMgh2zLbaFK7VTfUXTHdQ 提取码:kygo 安装 修改安装目录 打开是英文的 汉化 复制lang包到Axure安装包 再打开就是中文 问题 发布html后火狐无法打开 一、…

抖音数据挖掘软件|视频内容提取

针对用户获取抖音视频的需求,我们开发了一款功能强大的工具,旨在解决用户在获取抖音视频时需要逐个复制链接、下载的繁琐问题。我们希望用户能够通过简单的关键词搜索,实现自动批量抓取视频,并根据需要进行选择性批量下载。因此&a…

实现外网手机或者电脑随时随地远程访问家里的电脑主机(linux为例)

文章目录 一、背景概要二、安装配置花生壳软件(linux版本)三、手机端(外网)验证连接四、安装ubuntu20server版系统遇到的问题记录 一、背景概要 由于经常在遇到某些问题的时候,针对某一个场景的理解,需要借助于自己的电脑去编译(aosp/linux/qemu)代码查…

PHP语言检测用户输入密码及调用Python脚本

现在有一份计算流体力学N-S方程的Python脚本,想要在用户登录网站后可以可以运行该脚本,然后将脚本运行后绘制的图片显示在用户网页上。 建一个名为N_S.py的python脚本文件,这个脚本在生成图像后会自行关闭,随后将图片保存在指定的…

SpringMVC 学习(三)之 @RequestMapping 注解

目录 1 RequestMapping 注解介绍 2 RequestMapping 注解的位置 3 RequestMapping 注解的 value 属性 4 RequestMapping 注解的 method 属性 5 RequestMapping 注解的 params 属性(了解) 6 RequestMapping 注解的 headers 属性(了解&…

【Android】坐标系

Android 系统中有两种坐标系,分别为 Android 坐标系和 View 坐标系。了解这两种坐标系能够帮助我们实现 View 的各种操作,比如我们要实现 View 的滑动,你连这个 View 的位置都不知道,那如何去操作呢? 一、Android 坐标…

【Flink精讲】Flink 内存管理

面临的问题 目前, 大数据计算引擎主要用 Java 或是基于 JVM 的编程语言实现的,例如 Apache Hadoop、 Apache Spark、 Apache Drill、 Apache Flink 等。 Java 语言的好处在于程序员不需要太关注底层内存资源的管理,但同样会面临一个问题&…

【接口加密】接口加密的未来发展与应用场景

目录 3.1 接口加密与区块链技术的结合 3.1.1 区块链技术的安全特性与优势 3.1.2 接口加密在区块链中的应用案例 3.2 接口加密与物联网安全 3.2.1 物联网安全的挑战与需求 3.2.2 接口加密在物联网领域的实际应用 3.3 接口加密在金融与电子商务领域的应用 随着信息技术的不…

Java中的常量与变量:初探Java世界的基石

✨✨ 所属专栏: Java基石:深入探索Java核心基础✨✨ 🎈🎈作者主页: 喔的嘛呀🎈🎈 目录 引言 一. 常量与变量的概念 常量 变量 总结 二. 常量的分类 1. 字面常量 2. 常量变量 3. 枚举常量…

8 buuctf解题

[BJDCTF2020]just_a_rar 1 下载,得到 发现有加密 使用ARCHPR设置四位数掩码爆破 得到口令2016,解压得到图片,flag在图片exif中 在备注里面看见了flag [HBNIS2018]excel破解 1 下载下来是attachment.xls 修改后缀为rar 使用010 Editor打开&a…

力扣技巧题:丢失的数字

先排后找可以让结果更简单 int cmp(const void* a, const void* b){return *(int*)a - *(int*)b; } int missingNumber(int* nums, int numsSize){qsort(nums, numsSize, 4, cmp);for(int i0; i<numsSize; i){if(nums[i] i){continue;}else{return i;}}return numsSize; }…

RandAugment(NeurIPS 2020)论文速读

paper&#xff1a;RandAugment: Practical automated data augmentation with a reduced search space third-party implementation&#xff1a;https://github.com/open-mmlab/mmpretrain/blob/main/mmpretrain/datasets/transforms/auto_augment.py 存在的问题 自动增强策…

k8s学习笔记-基础概念

&#xff08;作者&#xff1a;陈玓玏&#xff09; deployment特别的地方在于replica和selector&#xff0c;docker根据镜像起容器&#xff0c;pod控制容器&#xff0c;job、cronjob、deployment控制pod&#xff0c;job做离线任务&#xff0c;pod大多一次性的&#xff0c;cronj…