CVPR 2024 目标检测!开放词汇

作者:大模型实验室Lab4AI日期:2025/11/20

CVPR 2024 目标检测!开放词汇

01 论文概述

论文名称:YOLO-World: Real-Time Open-Vocabulary Object Detection

会议名称:CVPR (2024)

👉一键直达论文

👉Lab4AI大模型实验室论文

🌟简介

在相当长的一段时间里,目标检测领域存在一个核心的权衡:要么选择像 YOLO 系列那样拥有极致速度但只能识别固定类别的“闭集”检测器,要么选择像 Grounding DINO 那样能够识别任意文本描述但速度较慢的“开放集”检测器。对于需要实时响应和灵活性的现实世界应用(如机器人、自动驾驶),这一直是个难题。

于2024年初发布的 YOLO-World 彻底打破了这一局面。该研究首次成功地将开放词汇(Open-Vocabulary)能力与以速度著称的 YOLO 架构进行了深度融合。YOLO-World 能够在不需要为新类别进行任何训练的情况下,实时地检测由任意文本描述的物体。它的问世,标志着目标检测技术进入了一个兼具速度、灵活性和强大泛化能力的新纪元,并已成为后续实时通用感知系统的关键基石。

🔍 优势

  • 实时开放词汇检测
    YOLO-World 的标志性贡献。它在保持 YOLO 系列无与伦比的推理速度的同时,实现了对任意文本提示的零样本检测能力,完美解决了速度与灵活性的核心矛盾。
  • 强大的零样本性能
    通过在大规模图文数据集上进行预训练,YOLO-World 能够直接检测从未见过的物体类别,表现出卓越的泛化能力,极大地拓宽了其应用场景。
  • 灵活高效的部署
    模型支持“在线”和“离线”两种词汇表模式。在线模式可以动态接收文本提示,灵活性最高;离线模式则可以将词汇表预先编译进模型,实现极致的推理速度,方便生产环境部署。
  • 继承YOLO生态
    建立在成熟的 YOLO 架构之上,使其能够轻松地被社区和行业接受,并方便地集成到现有的、为 YOLO 优化的部署流程和硬件加速方案中。

🛠️ 核心技术

  • 可提示的YOLO架构 (Promptable YOLO Architecture)
    模型的核心是一个经过改造的 YOLO 检测器。它引入了一个轻量级的文本编码器来处理输入文本,并将文本特征高效地注入到检测流程中,使得整个模型可以被语言动态“编程”。
  • 区域-文本对比学习预训练 (Region-Text Contrastive Pre-training)
    YOLO-World 在大规模的视觉定位(Grounding)数据集上进行预训练。其核心目标是让模型学习到将图像中任意一个对象区域的视觉特征,与描述该对象的文本特征进行精确对齐。
  • 视觉-语言路径聚合网络 (Vision-Language Path Aggregation Network - VL-PAN)
    为了在保持速度的同时实现有效的跨模态融合,作者设计了 VL-PAN。它能够在 YOLO 的特征金字塔(FPN/PAN)结构中,以极小的计算开销,将文本特征与多尺度的视觉特征进行深度交互。
  • 解耦的检测头与类别无关嵌入 (Decoupled Head with Class-Agnostic Embedding)
    模型的检测头被设计为类别无关的,它不直接预测固定的类别ID,而是预测一个“物体存在度”和该物体的视觉嵌入向量。最终的分类通过计算此视觉嵌入与用户提供词汇的文本嵌入之间的相似度来完成。

02 论文原文阅读

您可以跳转到Lab4AI.cn上进行查看。👉Lab4AI大模型实验室论文复现

  • Lab4AI.cn提供免费的AI翻译和AI导读工具辅助论文阅读;
  • 支持投稿复现,动手复现感兴趣的论文;
  • 论文复现完成后,您可基于您的思路和想法,开启论文创新。

03 一键式论文复现

Lab4AI平台上已上架了此篇复现案例,登录平台即可体验论文复现。

👉Lab4AI项目复现

🛠️ 实验部署

本实验环境已为您精心配置,开箱即用。

  • 💻 代码获取:项目复现代码已存放于 /codelab/YOLO-World/code 文件夹中。
  • 🧠 模型说明:/codelab/YOLO-World/model 文件夹中存放了 YOLO-World 的预训练模型权重。
  • 📊 数据说明:/codelab/YOLO-World/dataset 文件夹中包含了用于实验的示例图像和提示词。
  • 🌐 环境说明:运行所需的所有依赖已预安装在 /envs/yoloworld/ 环境中,您无需进行任何额外的环境配置。

🚀 环境与内核配置

请在终端中执行以下步骤,以确保您的开发环境(如 Jupyter 或 VS Code)能够正确使用预设的 Conda 环境。

1. 在 Jupyter Notebook/Lab 中使用您的环境
  • 为了让Jupyter能够识别并使用您刚刚创建的Conda环境,您需要为其注册一个“内核”。
  • 首先,在您已激活的Conda环境中,安装 ipykernel 包:
1conda activate yoloworld  
2pip install ipykernel  
  • 然后,执行内核注册命令。
1#为名为 yoloworld 的环境注册一个名为 "Python(yoloworld)" 的内核  
2kernel_install --name yoloworld --display-name "Python(yoloworld)"  
  • 完成以上操作后,刷新您项目中的Jupyter Notebook页面。在右上角的内核选择区域,您现在应该就能看到并选择您刚刚创建的 “Python(yoloworld)” 内核了。
2. 在 VS Code 中使用您的环境
  • VS Code 可以自动检测到您新创建的Conda环境,切换过程非常快捷。
  • 第一步: 选择 Python 解释器
    • 确保VS Code中已经安装了官方的 Python 扩展。
    • 使用快捷键 Ctrl+Shift+P (Windows/Linux) 或 Cmd+Shift+P (macOS) 打开命令面板。
    • 输入并选择 Python: Select Interpreter。
  • 第二步: 选择您的 Conda 环境
    • 在弹出的列表中,找到并点击您刚刚创建的环境(名为 yoloworld 的 Conda 环境)。
    • 选择后,VS Code 窗口右下角的状态栏会显示 yoloworld,表示切换成功。此后,当您在 VS Code 中打开 Jupyter Notebook (.ipynb) 文件时,它会自动或推荐您使用此环境的内核。

CVPR 2024 目标检测!开放词汇》 是转载文章,点击查看原文


相关推荐


软件苹果商城上架的流程与团队协作模式 一个项目从开发到发布的完整经历
aiopencode2025/11/19

在很多技术团队里,“软件苹果商城上架” 常常被安排在项目周期的末尾,甚至被视为上线前的最后一道关卡。 但经历过多次 iOS 上架之后,你会发现——这不是简单的“把 IPA 传上去”,而是一段涉及角色分工、工具链协同、发布审核管理的完整流程。 在这篇文章中,我将以一个真实团队的视角,讲述我们如何把一款跨平台 App 成功上架到苹果商城(App Store),重点分享工程侧如何配合产品、设计、测试等角色,在没有单一 Mac 依赖的情况下完成上架流程。 一、项目收尾阶段:上架并不是“最后一个动作”


Python 的内置函数 type
IMPYLH2025/11/17

Python 内建函数列表 > Python 的内置函数 type Python 的内置函数 type() 是一个非常重要的函数,它主要用于获取对象的类型信息。这个函数有两种主要用法: 单参数调用: 当传入一个参数时,type() 会返回该对象的类型(类)。返回的结果是一个类型对象,通常显示为 <class '类型名称'> 的格式。 示例: print(type(42)) # <class 'int'> print(type("hello")) # <class 's


Python 的内置函数 repr
IMPYLH2025/11/16

Python 内建函数列表 > Python 的内置函数 repr Python 的内置函数 repr() 是一个非常重要的对象字符串表示函数,其主要功能是返回一个对象的"官方"字符串表示形式(通常称为"representation")。这个字符串通常能够被 Python 解释器读取,并尽可能准确地重建该对象。 详细特性: 可重建性原则:repr() 返回的字符串理论上应该能够通过 eval() 函数重新构造出原对象与 str() 的区别:相比 str() 函数返回的可读性字符串,repr


Python 的内置函数 memoryview
IMPYLH2025/11/15

Python 内建函数列表 > Python 的内置函数 memoryview Python 的内置函数 memoryview 是一个用于访问其他二进制序列的内存视图对象,它允许在不复制底层数据的情况下直接操作原始数据。这在处理大型二进制数据(如音频、视频或图像文件)时特别有用,可以显著提升性能并减少内存消耗。 memoryview 的主要特点包括: 零拷贝访问:通过 memoryview 可以直接引用原始数据缓冲区,而不需要创建额外的数据副本。 支持缓冲区协议:可以操作任何支持 Py


Claude Code 深度解析:架构、工作原理与常见误解
袁洛施2025/11/14

Claude Code 深度解析:架构、工作原理与常见误解 本文档基于真实技术对话整理,深入剖析 Claude Code 的真实架构和工作原理 目录 核心问题关键发现架构解析常见误解技术细节 核心问题 Q1: Claude Code 是什么? 问题原文: “究竟什么是 Claude Code?Claude Code CLI 是个命令行终端,最终调用的还是 Anthropic Claude 大语言模型,比如 claude-sonnet-4-5-20250929


工业级部署指南:在西门子IOT2050(Debian 12)上搭建.NET 9.0环境与应用部署(进阶篇)
dephixf2025/11/13

在工业物联网(IIoT)场景中,实时监控设备状态和能源消耗是提升生产效率的核心需求。本文将详细介绍如何在 IOT2050 设备(搭载 Debian 12 系统)上,完成两大监控系统的部署:基于 Nginx 的设备监控管理 HTML 静态页面(负责可视化展示设备状态、工单数据)和Asp.net Core 能源监控系统(负责后端数据处理、能源趋势分析),实现从设备状态到能源消耗的全维度监控。 一、环境准备:IOT2050 基础配置 核心前提 IOT2050 设备已安装 Debian 12 操作


使用前端框架vue做一个小游戏
惜茶2025/11/11

游戏介绍:随机生成4个数字,通过加减乘除,是最后的结果为24。 不足之处: 随机生成的数字可能不能通过运算得出结果24,你们也可以在我的基础上进行修改。我的“确认”按钮每次只能进行两个数的运算。 闲谈:这是我这年暑假做的(挺久的),感觉还不是很成熟。很久没写了,都有些生疏了(^-^) 一、游戏布局 1.1页面布局介绍 不包含标题的情况下,大体上有三个版块: 第一个版块包含了时间、解决问题数、规则第二个版块包含了运算需要的数字和字符第三个版块包含了主要的功能按钮 1.2代码


docker下载配置redis
蓝象_2025/11/9

一、下载redis镜像源创建redis容器 1、创建映射配置文件(如果不手动创建文件,docker run创建的文件会生成文件夹出现错误) mkdir -p /mydata/redis/conf touch /mydata/redis/conf/redis.conf 2、创建redis容器 docker run -p 6379:6379 --name redis \ -v /mydata/redis/data:/data \ -v /mydata/redis/conf/redis


Python 的内置函数 hash
IMPYLH2025/11/7

Python 内建函数列表 > Python 的内置函数 hash Python 的内置函数 hash() 是一个非常有用的工具函数,主要用于获取对象的哈希值。哈希值是一个固定长度的整数,代表该对象的唯一标识。在 Python 中,hash() 函数常用于字典键值、集合元素等场景,因为这些数据结构内部依赖哈希值来快速查找和比较对象。 1. 基本用法 hash() 函数接受一个对象作为参数,返回该对象的哈希值。示例:print(hash("hello")) # 输出字符串 "hello"


从写原生JS到玩转框架:我走过的那些弯路和顿悟时刻
良山有风来2025/11/3

还记得刚入行时,我对着满屏的document.getElementById发誓要征服前端。三年后,当我第一次用Vue在半小时内完成过去需要两天的工作时,我才明白:从前端小白到大佬,差的不是代码量,而是思维模式的彻底转变。 今天,我想和你分享这段旅程中的关键转折点。无论你是正在学习前端的新手,还是已经有一定经验的开发者,相信这些感悟都能帮你少走很多弯路。 从“怎么做”到“做什么”:思维的根本转变 刚学JavaScript时,我的脑子里装满了“怎么做”。比如要做一个待办事项应用,我的思路是这样的:

首页编辑器站点地图

本站内容在 CC BY-SA 4.0 协议下发布

Copyright © 2025 聚合阅读