当前位置: 首页 > article >正文

论文精读:YOLOE: Real-Time Seeing Anything

文章目录

  • 前言
  • 1、背景
  • 2、方法
    • 2.1.重参Region-Text对齐模块
    • 2.2.VisualPrompt模块
    • 2.3.PromptFree
  • 2.4.损失函数
  • 3、实验
    • 3.1.训练集
    • 3.2.实验结果
  • 总结


前言

 本文介绍一篇来自清华的开放词汇检测论文:YOLOE;源码链接。

在这里插入图片描述

1、背景

 本文在yolo-world基础上,拓展使其支持开方词汇检测、分割、以及visual prompt和prompt free来实现检测任务。笔者感觉其灵感来自DINO-X,后续我会单独写一篇博客来介绍,读者有兴趣可自行阅读。

2、方法

 论文的行文思路是如何实现各种prompt检测的,如下图所示:左下角是visual prompt模块,右下角是重参Text模块、右上角部分是prompt free模块,即不指定prompt会尽可能检索词库里的物体。
在这里插入图片描述
 而图中其余部分:左上角部分其实就是yolo-world,其中Seg、Reg表示分割和检测头,而Embedding则是每个anchor包含的语义向量:比如维度是[8400,256],其中8400表示anchor个数,后续该Embedding即O跟各种prompt进行对比学习,来实现物体类别判断。
 下面将分别介绍各个prompt模块是如何实现的。


2.1.重参Region-Text对齐模块

在这里插入图片描述

 如上图所示,首先Text经过TextEncoder提取出特征嵌入向量P,然后经过 f θ f_\theta fθ 经过一次变换,得到Prompt Embedding。注意,上述部分在部署阶段是可以离线做的,即不影响模型性能,也就是Re-parameterization过程。 整体流程比较简单, f θ f_\theta fθ 则是如下图,选用了一个FFN:
在这里插入图片描述

2.2.VisualPrompt模块

在这里插入图片描述
 这块就是如何将box或者mask等视觉prompt转化成PromptEmbedding,输入需要借助经过PAN模块的P3-P5特征层,子模块设计了一个激活分支和语义分支,其中S表示语义分支输出,W表示激活分支输出:
在这里插入图片描述
 这里简单说下S和W是如何聚合的,作者采用类似分组卷积思想,将S分成A组,即下面公式中的G_i,通过下面公式将W的A那个维度给销掉了,从而得到PromptEmbedding,使其维度对齐其余的Prompt embedding。
在这里插入图片描述

2.3.PromptFree

在这里插入图片描述
 该部分作者使用了一种LazyRegionPromptContrast方式:首先自己内建了一个词汇库特征向量,然后又额外创建一条可学习的Specialized Embedding,然后跟每个Anchor_Points的特征向量进行乘积,但考虑到检索复杂度太大,因此,在进行Retrieval前,进行了一步过滤:就是人为卡了个阈值 δ \delta δ
在这里插入图片描述

2.4.损失函数

 分配策略采用simOTA ,损失就是二元交叉熵和定位以及Seg Loss。

3、实验

3.1.训练集

 跟yolo-world一样O365+GQA,只不过用SAM得到mask来进行Seg分支训练。训练阶段比较复杂,分为好几个阶段,分别训练不同的prompt分支。(感觉这块不完美)。

3.2.实验结果

 依旧看LVIS指标,看起来确实比YOLO-world效果明显。
在这里插入图片描述
 还有prompt free的前景物体召回实验结果:
在这里插入图片描述

总结

 整体来说是YOLO-World一篇拓展,使其支持各种Prompt方式,但训练stage很多,这点可能训练会不方便,另外,对于实际应用来说:应该是个不错的部署工作。

相关文章:

论文精读:YOLOE: Real-Time Seeing Anything

文章目录 前言1、背景2、方法2.1.重参Region-Text对齐模块2.2.VisualPrompt模块2.3.PromptFree 2.4.损失函数3、实验3.1.训练集3.2.实验结果 总结 前言 本文介绍一篇来自清华的开放词汇检测论文:YOLOE;源码链接。 1、背景 本文在yolo-world基础上&#x…...

以影像为笔,劳润智在世界舞台上书写艺术之路

在光影交织中,摄影师劳润智的镜头仿佛能穿透喧嚣,捕捉人类情感最细腻的脉动。从疫情下洛杉矶裁缝日常的温馨瞬间,到象征自由与解脱的飞鸟影像,再到探索时间与空间交错的抽象作品,每一幅作品都展现了他对艺术的深度追求与对生活的温柔洞察。 劳润智的作品为他赢得了多个国际奖项…...

vue3 computed方法传参数

我们对computed的基础用法不陌生,比如前端项目中经常会遇到数据处理的情况,我们就会选择computed方法来实现。但大家在碰到某些特殊场景,比如在template模板中for循环遍历时想给自己的计算属性传参,这个该怎么实现呢,很…...

【ES】Elasticsearch字段映射冲突问题分析与解决

在使用Elasticsearch作为搜索引擎时,经常会遇到一些映射(Mapping)相关的问题。本文将深入分析字段映射冲突问题,并通过原生的Elasticsearch API请求来复现和解决这个问题。 问题描述 在实际项目中,我们遇到以下错误: Transport…...

昇腾NPU容器内 apt 换源

环境 昊算NPU云910b 问题 缺少vim等,同时无法apt安装新的依赖 解决办法 使用vi修改/etc/apt/sources.list.d/debian.sources Types: deb URIs: http://deb.debian.org/debian Suites: bookworm bookworm-updates bookworm-backports Components: main contrib…...

MySQL 从入门到精通(五):索引深度解析 —— 性能优化的核心武器

目录 一、索引概述:数据库的 “目录” 1.1 什么是索引? 1.2 索引的性能验证:用事实说话 实验环境准备 无索引查询耗时 有索引查询耗时 索引的 “空间换时间” 特性 二、索引的创建:三种核心方式 2.1 方式 1:C…...

spark-Join Key 的基数/rand函数

在数据处理中,Join Key 的基数 是指 Join Key 的唯一值的数量(也称为 Distinct Key Count)。它表示某个字段(即 Join Key)在数据集中有多少个不同的值。 1. Join Key 基数的意义 高基数:Join Key 的唯一值…...

LLMs之ChatGPT:《Connecting GitHub to ChatGPT deep research》翻译与解读

LLMs之ChatGPT:《Connecting GitHub to ChatGPT deep research》翻译与解读 导读:这篇OpenAI帮助文档全面介绍了将GitHub连接到ChatGPT进行深度代码研究的方法、优势和注意事项。通过连接GitHub,用户可以充分利用ChatGPT强大的代码理解和生成…...

【桌面】【输入法】常见问题汇总

目录 一、麒麟桌面系统输入法概述 1、输入法介绍 2、输入法相关组件与服务 3、输入法调试相关命令 3.1、输入法诊断命令 3.2、输入法配置重新加载命令 3.3、启动fcitx输入法 3.4、查看输入法有哪些版本,并安装指定版本 3.5、重启输入法 3.6、查看fcitx进程…...

R语言学习--Day01--数据清洗初了解andR的经典筛选语法

当我们在拿到一份数据时,是否遇到过想要分析数据却无从下手?通过编程语言去利用它时发现有很多报错不是来源于代码而是因为数据里有很多脏数据;在这个时候,如果你会用R语言来对数据进行清洗,这会让你的效率提升很多。 …...

QT的初始代码解读及其布局和弹簧

this指的是真正的当前正在显示的窗口 main函数: Widget w是生成了一个主窗口,QT Designer是在这个主窗口里塞组件 w.show()用来展示这个主窗口 头文件: namespace Ui{class Widget;}中的class Widget和下面的class Widget不是一个东西 Ui…...

Profinet转CanOpen网关,打破协议壁垒的关键技术

在石油化工行业的生产现场,各类自动化设备如同精密运转的神经系统,而通信协议则是传递信号的"语言"。当不同厂商的设备采用Canopen与Profinet这两种主流工业协议时,就像两个使用不同方言的专家需要实时协作,此时开疆智能…...

引用第三方自定义组件——微信小程序学习笔记

1. 使用 npm 安装第三方包 1.1 下载安装Node.js 工具 下载地址:Node.js — Download Node.js 1.2 安装 npm 包 在项目空白处右键弹出菜单,选择“在外部终端窗口打开”,打开命令行工具,输入以下指令: 1> 初始化:…...

Docker、Docker-compose、K8s、Docker swarm之间的区别

1.Docker docker是一个运行于主流linux/windows系统上的应用容器引擎,通过docker中的镜像(image)可以在docker中构建一个独立的容器(container)来运行镜像对应的服务; 例如可以通过mysql镜像构建一个运行mysql的容器,既可以直接进入该容器命…...

SpringAI实现AI应用-使用redis持久化聊天记忆

SpringAI实战链接 1.SpringAl实现AI应用-快速搭建-CSDN博客 2.SpringAI实现AI应用-搭建知识库-CSDN博客 3.SpringAI实现AI应用-内置顾问-CSDN博客 4.SpringAI实现AI应用-使用redis持久化聊天记忆-CSDN博客 5.SpringAI实现AI应用-自定义顾问(Advisor&#xff09…...

C#问题 加载格式不正确解决方法

出现上面问题 解决办法:C#问题 改成x86 不要选择anycpu...

VTK|结合qt创建通用按钮控制显隐(边框、坐标轴、点线面)

文章目录 增加边框BoundingBox添加addBoundingBox添加BoundingBox控制按钮点击按钮之后的槽函数 添加坐标轴增加点线面显隐控制按钮添加控制点线面显隐的按钮到三维显示界面控制面显示槽函数控制线显示槽函数控制点显示槽函数 增加边框BoundingBox 增加边框BoundingBox并通过按…...

CentOS 7.9 安装详解:手动分区完全指南

CentOS 7.9 安装详解:手动分区完全指南 为什么需要手动分区?CentOS 7.9 基本分区说明1. /boot/efi 分区2. /boot 分区3. swap 交换分区4. / (根) 分区 可选分区(进阶设置)5. /home 分区6. /var 分区7. /tmp 分区 分区方案建议标准…...

在过滤器中获取body中的json数据并且使得后续的controller层也能获取使用

前景提示: ①我需要在filter中获取到json数据->对key名首字母进行排序,然后拼接,进行验签 ②所以就需要在filer获取到json的数据,因为请求数据是一次性读取的流。如果过滤器中调用了request.json或request.get_json()&#xff…...

如何使用测试软件 Jmeter

第一步,点击 编辑 添加线程组 第二步,右键单击线程组,添加取样器 HTTP 请求 第三步,设置请求路径 第四步,添加 查看结果树 用于查看请求响应 最后点击绿色小三角启动即可...

2025盘古石初赛WP

来不及做,还有n道题待填坑 文章目录 手机取证 Mobile Forensics分析安卓手机检材,手机的IMSI是? [答案格式:660336842291717]养鱼诈骗投资1000,五天后收益是? [答案格式:123]分析苹果手机检材&a…...

系统分析与设计期末复习

第一章 系统的五个特性 整体性、目的性、相关性、环境适应性、层次性 软件系统的四个特性 复杂性、一致性、可变性、不可见性 第二章 系统规划 系统开发生命周期 系统规划->系统分析->系统设计->系统实施->系统运行维护->系统规划 诺兰阶段模型 阶段&a…...

最大公约数gcd和最小公倍数lcm

一、相关公式及其性质 文章只服务于竞赛,所以不会涉及证明。 辗转相除法:gcd(a, b) gcd(b, a % b); 直到 b 0,就可以知道上一层递归中的 a % b 0,所以上一层的 b 就是答案,也就是这一层递归的 a gcd(a, b) * lcm…...

IBM BAW(原BPM升级版)使用教程第八讲

续前篇! 一、流程开发功能模块使用逻辑和顺序 前面我们已经对 流程、用户界面、公开的自动化服务、服务、事件、团队、数据、性能、文件各个模块进行了详细讲解,现在统一进行全面统一讲解。 在 IBM Business Automation Workflow (BAW) 中,…...

视觉革命来袭!ComfyUI-LTXVideo 让视频创作更高效

探索LTX-Video 支持的ComfyUI 在数字化视频创作领域,视频制作效果的提升对创作者来说无疑是一项重要的突破。LTX-Video支持的ComfyUI便是这样一款提供自定义节点的工具集,它专为改善视频质量、提升生成速度而开发。接下来,我们将详细介绍其功…...

从电动化到智能化,法雷奥“猛攻”中国汽车市场

当前,全球汽车产业正在经历前所未有的变革,外资Tier1巨头开始向中国智能电动汽车市场发起新一轮“猛攻”。 在4月23日-5月2日上海国际车展期间,博世、采埃孚、大陆集团、法雷奥等全球百强零部件厂商纷纷发布战略新品与转型计划。在这其中&am…...

鸿蒙开发——3.ArkTS声明式开发:构建第一个ArkTS应用

鸿蒙开发——3.ArkTS声明式开发:构建第一个ArkTS应用 一、创建ArkTS工程二、ArkTS工程目录结构(Stage模型)三、构建第一个页面四、构建第二个页面五、实现页面之间的跳转六、模拟器运行 一、创建ArkTS工程 1、若首次打开DevEco Studio,请点击…...

word换行符和段落标记

换行符:只换行不分段 作用:我们需要对它进行分段,但它是一个信息群组,我希望它们有同样的段落格式! 快捷键:shiftenter 段落标记:分段 快捷键:enter 修改字体格式或段落格式 …...

AI时代的数据可视化:未来已来

你有没有想过,数据可视化在未来会变成什么样?随着人工智能(AI)的飞速发展,数据可视化已经不再是简单的图表和图形,而是一个充满无限可能的智能领域。AI时代的可视化不仅能自动解读数据,还能预测…...

spark基本介绍

Spark 是基于内存计算的分布式大数据处理框架,由加州大学伯克利分校 AMPLab 开发,现已成为 Apache 顶级项目。以下是其核心要点: 核心特点 1. 内存计算:数据可驻留内存,大幅提升迭代计算(如机器学习、图计算…...