首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >YOLOe问世,实时观察一切,统一开放物体检测和分割

YOLOe问世,实时观察一切,统一开放物体检测和分割

作者头像
机器之心
发布于 2025-03-13 13:29:04
发布于 2025-03-13 13:29:04
1900
举报
文章被收录于专栏:机器之心机器之心

机器之心报道

机器之心编辑部

它能像人眼一样,在文本、视觉输入和无提示范式等不同机制下进行检测和分割。

自 2015 年由华盛顿大学的 Joseph Redmon 研究团队提出 YOLO(You Only Look Once)以来,这项突破性的目标检测技术就像为机器装上了「闪电之眼」,凭借单次推理的实时性能刷新了计算机视觉的认知边界。

传统的 YOLO 系列如同我们人工效准的精密仪器,其识别能力被严格框定在预定义的类别目录之中,每个检测框的背后,都需要工程师手动输入认知词典。这种预设规则在开放场景中限制了视觉模型的灵活性。

但是在万物互联的时代,行业迫切需要更接近人类视觉的认知范式 —— 不需要预先设定先验知识,却能通过多模态提示理解大千世界。那么如何通过视觉模型来实现这一目标呢?

近来,研究者们积极探索让模型泛化至开放提示的方法,力图让模型拥有如同人眼般的强大能力。不管是面对文本提示、视觉提示,甚至在无提示的情况下,模型都能借助区域级视觉语言预训练,实现对任意类别的精准识别。

image.png
image.png
  • 论文标题:YOLOE:Real-Time Seeing Anything
  • 论文地址:https://arxiv.org/abs/2503.07465
  • 技术展示页:https://github.com/THU-MIG/yoloe?tab=readme-ov-file#demo

YOLOE 的设计思路

在 YOLO 的基础之上,YOLOE 通过 RepRTA 支持文本提示、通过 SAVPE 支持视觉提示以及使用 LRPC 支持无提示场景。

f2.png
f2.png

图 1.YOLOE 的架构

如图 1 所示,YOLOE 采用了典型的 YOLO 架构,包括骨干、PAN、回归头、分割头和对象嵌入头。骨干和 PAN 为图像提取多尺度特征。对于每个锚点,回归头预测用于检测的边界框,分割头生成用于分割的原型和掩码系数。对象嵌入头遵循 YOLO 中分类头的结构,只是最后一个 1× 卷积层的输出通道数从闭集场景中的类数更改为嵌入维度。同时,给定文本和视觉提示,YOLOE 分别使用 RepRTA 和 SAVPE 将它们编码为规范化的提示嵌入 P。

在开放集场景中,文本和对象嵌入之间的对齐决定了识别类别的准确性。先前的研究通常引入复杂的跨模态融合来改进视觉文本表示以实现更好的对齐。然而,这些方法会产生大量的计算开销。鉴于此,作者提出了可重新参数化的区域文本对齐 (RepRTA) 策略,通过可重新参数化的轻量级辅助网络在训练过程中改进预训练的文本嵌入。文本和锚点对象嵌入之间的对齐可以在零推理和传输成本的情况下得到增强。

接下来是语义激活的视觉提示编码器。为了生成视觉提示嵌入,先前的工作通常采用 Transformer 设计,例如可变形注意或附加 CLIP 视觉编码器。然而,由于运算符复杂或计算要求高,这些方法在部署和效率方面带来了挑战。

考虑到这一点,研究人员引入了语义激活的视觉提示编码器(SAVPE)来高效处理视觉提示。它具有两个解耦的轻量级分支:(1) 语义分支在 D 通道中输出与提示无关的语义特征,而无需融合视觉提示的开销;(2) 激活分支通过在低成本下在更少的通道中将视觉提示与图像特征交互来产生分组的提示感知权重。然后,它们的聚合会在最小复杂度下产生信息丰富的提示嵌入。

在没有明确指导的无提示场景中,模型需要识别图像中所有有名称的物体。先前的研究通常将这种设置表述为生成问题,使用语言模型为密集的发现物体生成类别。然而,其中语言模型远不能满足高效率要求。YOLOE 将这种设置表述为检索问题并提出惰性区域提示对比(Lazy Region-Prompt Contrast,LRPC)策略。它以高效的方式从内置的大型词汇表中惰性检索带有物体的锚点的类别名称。这种范例对语言模型的依赖为零,同时具有良好的效率和性能。

实验结果

那么在实验测试中,YOLOE 的效果如何呢?

作者将 YOLOE 基于 YOLOv8 和 YOLOv11 架构开展了实验,并提供了不同的模型尺度。如下表所示,对于 LVIS 上的检测,YOLOE 在不同模型尺度上表现出效率和零样本性能之间的良好平衡。

表 1. LVIS 上的零样本检测评估

实验结果表明 YOLOE 的训练时间少于其他对比模型,比 YOLO-Worldv2 快了近 3 倍。同时 YOLOE-v8-S/M/L 的性能比 YOLOv8-Worldv2-S /M/L 分别高出 3.5/0.2/0.4AP,在 T4 和 iPhone 12 上的推理速度分别提高 1.4 倍 / 1.3 倍 / 1.3 倍和 1.3 倍 / 1.2 倍 / 1.2 倍。

不过在 Ap 指标上,与 YOLO - Worldv2 相比,YOLOE-v8-M/L 稍显逊色。进一步分析发现,这种性能差距主要是由于 YOLOE 创新性地在一个模型中集成了检测和分割功能。

作者还通过以下角度验证了模型和方法的有效性:

  • 分割评估

表 2. LVIS 上的分割评估

  • 无提示词评估

表 3. LVIS 上的无提示词评估

  • 可迁移性评估

表 4. 在 COCO 上的可迁移性测试,测试了两种微调策略,线性探测和完全调整

这些结果充分证明,YOLOE 拥有强大的功能和高效率,适用于各种提示方式,可以实时看到任何东西。

image.png
image.png

此外,研究人员对 YOLOE 开展了四种场景的可视化分析:

  • 图 (a):在 LVIS 上进行零样本推理,以类别名称作为文本提示
  • 图 (b):可输入任意文本作为提示
  • 图 (c):能绘制视觉线索作为提示
  • 图 (d):无明确提示,模型自动识别所有对象

结果显示,YOLOE 在这些不同场景下均表现出色,能准确检测和分割各类物体,进一步体现了其在多种应用中的有效性与实用性。

© THE END

转载请联系本公众号获得授权

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2025-03-13,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 机器之心 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
江哥带你玩转C语言 | 09 - C语言进制和位运算
00011 0x001 0x7h4 10.98 0986 .089-109 +178 0b325 0b0010 0xffdc 96f 96.0f 96.oF -.003
极客江南
2021/07/11
1.5K0
反码补码和位运算
三者是计算机存储数据的不同形式,计算机用补码存储数据。而且计算机利用这三者可以用加法实现减法
晚上没宵夜
2020/04/24
6900
世界上有10种人,一种是懂二进制的人,一种是不懂二进制的人。
看到这个问题,我想到了之前的一个场景是要获取近30天的日期列表,我的思路是通过System.currentTimeMillis()获取当前时间戳,然后依次减去对应的毫秒数(24 * 60 * 60 * 1000),后来发现问题:30 * 24 * 60 * 60 * 1000因为超过了int的上限值而变为了一个负数。于是我回复他:
敲得码黛
2021/02/22
1.5K0
世界上有10种人,一种是懂二进制的人,一种是不懂二进制的人。
java用位运算实现加减乘除的过程_java四则运算
我们经常使用的加减乘除,我们所看到的只是表面的效果,那么加减乘除在底层究竟是怎么实现的?今天就让我们一探究竟.今天用位运算实现的加减乘除不使用任何的加减乘除符号.
全栈程序员站长
2022/11/15
8930
java用位运算实现加减乘除的过程_java四则运算
C语言关于进制转换,补码, 整数的位操作
一、进制转换  //关于进制转换,从网上找了几张经典图片,便于后面查询 1、二进制转十进制、八进制转十进制、十六进制转十进制 2、十进制转二进制, 十进制转八进制,十进制转十六进制 3、二进制转八进制
tandaxia
2018/09/27
5.2K0
C语言关于进制转换,补码, 整数的位操作
探索计算机内部的神秘语言:二进制的魅力
在之前的章节中,我们已经详细介绍了计算机硬件的组成部分,包括中央处理器(CPU)、内存、磁盘和总线等。因此,从今天开始,我们将深入探讨计算机内部的工作原理。首先,我们将从二进制这个简单而重要的概念开始讲解,因为计算机底层只能使用二进制来表示和处理信息。
努力的小雨
2023/12/01
5302
图解二进制
更新日志 2022-9-15 子时 于 杭州 目录结构调整 配图补全 封面更改 说明:以下均指8位二进制数形式 在了解原码之前,先熟悉几个名词.。 机器数 数字在计算机中的二进制表现形式。分正负。 图解 真值 有符号数转二进制之后,其原来对应的值位真值,带符号的二进制转为其他进制之后的值称为形式值。 图解 注:红色的数字1是十进制-3转二进制之后的符号位 原码 符号位+真值的绝对值,即是带符号的二进制数 举例: 十进制 二进制原码 +1(正一) 0000 0001 -1
堆栈哲学
2022/11/24
1.3K0
图解二进制
大数加减乘除,一文彻底搞定
大家好,我是bigsai!最近,大数加减频频登上笔试的舞台,小伙伴们在群里也分享自己遇到面试官碰到大数运算的题目,想着这么重要而简单的知识点我还没写过,那得好好和大家一起总结一下。
bigsai
2021/04/12
5590
运筹学与最优化理论基础——高精度加减乘除(C++实现)
在写单纯形算法时,发现了高精度分数存在bug与不足,所以必须对相关函数进行修改。主要有bug的函数是string DIVIDE_INT(string str1,string str2,int flag),之前是为了运算简单起见,对于特殊除数与被除数进行特定的判断来减小计算复杂度,但是发现存在逻辑bug,判断这些条件之后,未直接返回结果使得程序仍然会执行正常的除法操作,因此对这个bug进行修正。同时为了方便之后的单纯型算法的编写,在此又特意添加两个函数int Compare2Zero()和int Compare2Fraction(Fraction fraction),分别来比肩与0和分数fraction的大小。 在写两阶段单纯形算法时,发现了高精度分数中缺少相关取反和取倒数等接口导致代码出现大量重复代码。因此再次对高精度分数类进行修改。主要实现了分数取反和分数取倒数,并将整体代码进行了优化。由于两个函数过于简单,因此不对这两个函数进行讲解。
AI那点小事
2020/04/20
1.3K0
运筹学与最优化理论基础——高精度加减乘除(C++实现)
使用位运算实现int32位 整数的加减乘除
我觉得异或操作和与操作完全就是实现加法的。 异或就是相同位相加最后留下的结果,而与就是相同位相加是否进1的结果。
ShenduCC
2019/08/26
1.4K0
每日一题 (不用加减乘除做加法,找到数组中消失的数字)
在二进制加法中,我们通常使用“逐位相加”的方法来模拟常规加法的过程。当两个数字进行加法运算时,从最低位(通常是右侧)开始相加,然后考虑进位。如果相加的结果产生进位,那么这个进位会被带到下一位的加法中。
用户11039545
2024/03/28
1650
每日一题 (不用加减乘除做加法,找到数组中消失的数字)
Python 笔记:二进制的补码
计算机只能识别0和1,使用的是二进制,而在日常生活中人们使用的是十进制,”正如亚里士多德早就指出的那样,今天十进制的广泛采用,只不过是我们绝大多数人生来具有10个手指头这个解剖学事实的结果。尽管在历史上手指计数(5,10进制)的实践要比二或三进制计数出现的晚。”.为了能方便的与二进制转换,就使用了十六进制(2 4)和八进制1.数值有正负之分,计算机就用一个数的最高位存放符号(0为正,1为负).这就是机器数的原码了。
用户8442333
2021/05/17
1.4K0
计算机组织结构(二) 定点运算
📚 文档目录 合集-数的二进制表示-定点运算-BCD 码-浮点数四则运算-内置存储器-Cache-外存-纠错-RAID-内存管理-总线-指令集: 特征- 指令集:寻址方式和指令格式 1. 移位运算 1.算数移位 符号位不变, 左移相当于乘以 2, 右移相当于除以 2(左侧全补符号位). 2. 逻辑移位 无符号数的移位, 右移时永远在高位填 0. 2. 加法运算 1. 全加器 𝑆_𝑖=𝑋_𝑖⊕𝑌_𝑖⊕𝐶_{𝑖−1} 𝐶_𝑖=𝑋_𝑖𝐶_{𝑖−1}+𝑌_𝑖𝐶_{𝑖−1}+𝑋_𝑖𝑌_𝑖 2. Serial Carr
Rikka
2022/01/11
5960
计算机组织结构(二) 定点运算
(加强版)大数加减乘除,一文彻底搞定
大家好,我是bigsai!(上次发布的忘加原创并且今天的把内容扩充了一下)最近,大数加减频频登上笔试的舞台,小伙伴们在群里也分享自己遇到面试官碰到大数运算的题目,想着这么重要而简单的知识点我还没写过,那得好好和大家一起总结一下。
bigsai
2021/04/26
2.1K0
LeetCode29 Medium 除法与二进制优化
Given two integers dividend and divisor, divide two integers without using multiplication, division and mod operator.
TechFlow-承志
2020/03/05
6730
不用加减乘除做加法
题意 写一个函数,求两个整数之和,要求在函数体内不得使用 +、-、*、/ 四则运算符号。 样例 对于 num1 = 15, num2 = 17,返回 32。 思路 位运算 首先先来看下十进制是如何计算的: 相加各位的值,不进位,结果是 22, (5 + 7 = 12,舍弃进位就是2, 1 + 1 = 2 没有进位就是 22) 计算进位值,得到 10。 然后将上述两步得到的值重复步骤 1 和 2 。直到进位置为 0,返回不进位的值即可。 那么对于二进制也可以用这种方式计算: 相加各位的值,不进位,15 (11
一份执着✘
2018/06/04
9290
补码运算加减乘除原理是什么_计算机组成原理补码乘法运算
大家好,又见面了,我是你们的朋友全栈君。 首先我们来看为什么要使用补码运算法: 因为人脑可以知道第一位是符号位, 在计算的时候我们会根据符号位, 选择对真值区域的加减. (真值的概念在本文最开头). 但是对于计算机, 加减乘数已经是最基础的运算, 要设计的尽量简单. 计算机辨别”符号位”显然会让计算机的基础电路设计变得十分复杂! 于是人们想出了将符号位也参与运算的方法. 我们知道, 根据运算法则减去一个正数等于加上一个负数, 即: 1-1 = 1 + (-1) = 0 , 所以机器可以只有加法而没有减法, 这样计算机运算的设计就更简单了. 于是人们开始探索 将符号位参与运算, 并且只保留加法的方法. 首先来看原码: 计算十进制的表达式: 1-1=0
全栈程序员站长
2022/11/04
6190
二进制加,减法,23个位运算技巧[通俗易懂]
二进制最高位为1时表示负数,为0时表示正数。 **原码:**一个正数,转换为二进制位就是这个正数的原码。负数的绝对值转换成二进制位然后在高位补1就是这个负数的原码。 举例说明:       int类型的 3 的原码是 11B(B表示二进制位), 在32位机器上占四个字节,那么高位补零就得:       00000000 00000000 00000000 00000011       int类型的 -3 的绝对值的二进制位就是上面的 11B 展开后高位补零就得:       10000000 00000000 00000000 00000011 **反码:**正数的反码就是原码,负数的反码等于原码除符号位以外所有的位取反。 举例说明:       int类型的 3 的反码是       00000000 00000000 00000000 00000011       和原码一样没什么可说的       int类型的 -3 的反码是       11111111 11111111 11111111 11111100       除开符号位 所有位 取反 **补码:**正数的补码与原码相同,负数的补码为 其原码除符号位外所有位取反(得到反码了),然后最低位加1. 还是举例说明:       int类型的 3 的补码是:       00000000 00000000 00000000 00000011       int类型的 -3 的补码是       11111111 11111111 1111111 11111101       就是其反码加1
全栈程序员站长
2022/09/13
2.2K0
二进制加,减法,23个位运算技巧[通俗易懂]
关于二进制表示和补码计算的来龙去脉,入门看了秒懂
计算机最喜欢的数字就是 0 和 1,在 CPU 的世界中,它只认识这两个数字,即使是强大的操作系统,也都是由 0 和 1 组成的。
IOT物联网小镇
2021/05/13
8720
关于二进制表示和补码计算的来龙去脉,入门看了秒懂
进制介绍与转换
计算机是电子电荷集合的方式在内存中宝保存指令和数据,二进制数用两个数字作基础,其中每一个二进制数成为bit不是0就是1.位自右向左,从0开始顺序增加,左边的位称为最高有效位(Most Significant Bit MSB),右边的称为最低有效位(LSB least significant Bit).一个16位的二进制数 其MSB和LSB如下所示:
小柒吃地瓜
2020/04/23
1.7K0
推荐阅读
相关推荐
江哥带你玩转C语言 | 09 - C语言进制和位运算
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档