YOLO-World——超级轻量级开放词汇目标检测方法

前言

目标检测一直是计算机视觉领域中不可忽视的基础挑战,对图像理解、机器人技术和自主驾驶等领域具有广泛应用。随着深度神经网络的发展,目标检测方面的研究取得了显著进展。尽管这些方法取得了成功,但它们存在一些限制,主要体现在只能处理具有固定词汇表的目标检测问题,例如COCO数据集中的80个类别。一旦目标类别被定义和标记,训练好的目标检测器只能识别这些特定的类别,从而限制了其在开放场景中的适用性。

近期的研究致力于解决开放词汇检测问题,探索了流行的视觉语言模型(如BERT)以从语言编码器中提取词汇知识。然而,这些基于蒸馏的方法受制于训练数据的稀缺性和词汇多样性的限制,比如OV-COCO只包含48个基本类别。有些方法尝试通过重新构建物体检测训练为基于区域的视觉语言预训练,并在大规模上训练具有开放词汇的物体检测器。然而,这些方法在真实世界场景中仍然面临挑战,主要因为计算负担较重且在边缘设备上部署复杂。过去的研究已经验证了大型检测器的预训练在性能上的表现,但对于预训练小型检测器以赋予其开放识别能力的研究尚未深入进行。

YOLO-World

YOLO-World似乎致力于在open vocabulary物体检测领域实现高效的解决方案。通过探索大规模预训练方案,该项目旨在提升传统YOLO检测器的open vocabulary能力。YOLO-World的推理速度高效且易于部署,其推理过程中甚至可以移除文本编码器,通过将文本嵌入重新参数化为RepVL-PAN的权重来实现高效部署。此外,通过区域-文本对比学习在大规模数据集上进行open vocabulary预训练,进一步提升了YOLO-World的性能。预训练结果表明,YOLO-World在大词汇检测方面表现强大,而通过更多数据的训练,预计可以实现更大的改进。
在这里插入图片描述
YOLO-World采用了可重参数化的视觉-语言PAN和开放词汇区域-文本对比预训练方案。该检测器在大规模数据集上进行了预训练,展现出卓越的零样本性能,并能够轻松适应各种下游任务。不仅如此,该检测器的预训练权重和代码将会被开源,以促进更广泛的实际应用。此外,文章还提出了一种提示-检测范式,旨在进一步提高open vocabulary物体检测的效率。

预训练

YOLO-World引入了一种创新的目标检测方法,重新将实例标注定义为区域-文本对,其中文本可以是类别名称、名词短语或对象描述。该方法以图像和文本作为输入,然后输出预测框和相应的对象嵌入。这种方法的独特之处在于将文本信息与图像结合,为目标检测任务提供了更丰富的语义信息,有望提高检测的准确性和鲁棒性。

模型架构

YOLO-World的整体架构包括YOLO检测器、文本编码器和可重新参数化的视觉-语言路径聚合网络(RepVL-PAN)。在给定输入文本的情况下,YOLO-World中的文本编码器将文本编码成文本嵌入。图像编码器在YOLO检测器中提取多尺度特征。RepVL-PAN通过跨模态融合图像特征和文本嵌入来增强文本和图像的表示。

YOLO检测器方面,基于YOLOv8开发,包括Darknet作为图像编码器的骨干,路径聚合网络(PAN)用于多尺度特征金字塔,以及头部用于边界框回归和对象嵌入。

文本编码器方面,给定文本T,采用CLIP预训练的Transformer文本编码器提取文本嵌入W = TextEncoder(T)。相较于纯文本语言编码器,CLIP文本编码器具有更强的视觉-语义能力,有助于连接视觉对象与文本。对于标题或引用表达式的输入文本,使用简单的n-gram算法提取名词短语,并输入文本编码器。

文本对比Head采用具有两个3×3卷积的解耦头,用于回归边界框和对象嵌入。引入了文本对比中心,通过一种方法获取对象-文本相似度。
在这里插入图片描述

在训练过程中,为每个包含4张图像的马赛克样本构建一个在线词汇表T。对涉及的所有积极名词进行采样,并从相应数据集中随机采样一些消极名词。每个马赛克样本的词汇表最多包含M个名词,M默认设置为80。

在推理阶段,引入了基于离线词汇表的先提示后检测策略,用户可以定义自定义提示,通过文本编码器进行编码,获得离线词汇嵌入,以提高效率。
在这里插入图片描述

重新参数化VL-PAN

在这里插入图片描述
RepVL-PAN遵循自上而下和自下而上的路径,以建立多尺度图像特征金字塔。此外,文本引导的CSPLayer和Image-Pooling注意力被引入,进一步增强图像特征和文本特征之间的交互,提高open vocabulary表的视觉语义表示能力。在推理过程中,离线词汇嵌入可以被重新参数化为卷积层或线性层的权重以进行部署。

文本引导的CSPLayer在自顶向下或自底向上融合后使用跨阶段局部层(CSPLayer),通过融合文本引导信息对CSPLayer进行扩展,形成文本引导的CSPLayer。
在这里插入图片描述
Image-Pooling注意力为了用图像感知信息增强文本嵌入,提出了图像池化注意力(Image-Pooling Attention)。不直接在图像特征上使用交叉注意力,而是通过多尺度特征上的最大池化获取3×3区域,总共产生27个patch。然后通过以下方式更新文本嵌入:
在这里插入图片描述

训练方式

在大规模检测、定位和图像文本数据集上,YOLO-World进行了预训练。预训练过程采用了区域-文本对比损失函数,通过交叉熵计算目标-文本相似度和目标-文本分配之间的损失。边界框回归方面则使用了IoU损失和分布式焦点损失。在图像-文本数据集中,考虑到存在噪声框,只对准确边界框的样本计算回归损失。整体的训练损失由区域-文本对比损失和边界框回归损失组成。
此外,为了进行预训练,采用了图像-文本数据的伪标记方法。这个过程包括三个关键步骤:提取名词短语、伪标注和过滤。首先,通过提取名词短语和使用预训练的open vocabulary检测器生成伪框,得到初步的区域-文本对。接着,利用预训练的CLIP模型评估图像-文本对和区域-文本对的相关性,并过滤掉相关性较低的伪标注和图像。最后,通过非极大值抑制等手段,过滤掉冗余的边界框。通过这一方法,从CC3M数据集中采样和标注了246k张图像,生成了821k个伪标注。

实验与结果

通过在大规模数据集上进行预 训练并在LVIS基准和COCO基准上以零 样本的方式评估YOLO-World的有效性。还评估 了YOLO-World在COCO和LVIS上进行目标检测的微调 性能。
实验设置。我们使用预训练的权重来初始化YOLO-World进行微调。所有模型都使用AdamW优化器进行80个epoch的微调。此外,我们使用学习因子0.01对CLIP文本编码器进行微调。对于LVIS数据集,我们遵循之前的工作,并在LVIS-base(常见和频繁)上微调YOLO-World,并在LVIS-novel(罕见)上进行评估。

COCO目标检测。我们将预训练的YOLO-World与之前的YOLO检测器进行了比较。在COCO数据集上微调YOLO-World时,考虑到COCO数据集的词汇量较小,我们移除了提出的RepVL-PAN以进一步加速。从结果可以看出,我们的方法在COCO数据集上可以取得不错的零样本性能,这表明YOLO-World具有很强的泛化能力。此外,经过在COCO train2017上微调后,YOLO-World的性能比之前从头开始训练的方法更高。

在这里插入图片描述
LVIS目标检测。我们评估了YOLO-World在标准LVIS数据集上的微调性能。与在完整LVIS数据集上训练的oracle YOLOv8s相比,YOLO-World取得了显著的改进,特别是对于较大的模型,例如YOLO-World-L的AP提高了7.2,APr提高了10.2。这些改进证明了针对大词汇检测的预训练策略的有效性。此外,作为一种高效的单阶段检测器,YOLO-World在整体性能上优于之前的最先进的两阶段方法,例如可学习提示[7]或基于区域的对齐。
在这里插入图片描述
open vocabulary实例分割

我们进一步对YOLO-World进行微调,以在open vocabulary的情况下进行对象分割,这可以称为open vocabulary实例分割(OVIS)。我们直接在具有掩码注释的数据子集上对YOLO-World进行微调,并在大词汇设置下评估分割性能。我们在两种设置下评估open vocabulary实例分割:

从COCO到LVIS设置,我们在COCO数据集上对YOLO-World进行微调(包括80个类别),模型需要从80个类别转移到1203个类别(80→1203)

从LVIS-base到LVIS设置,我们在LVIS-base上对YOLO-World进行微调(包括866个类别,常见和频繁的类别),模型需要从866个类别转移到1203个类别(866→1203)。

我们在具有1203个类别的标准LVIS val2017上评估微调模型,其中有337个罕见类别是未见过的,可以用来衡量open vocabulary性能。

结果。我们采用了两种微调策略:(1)仅微调分割头部和(2)微调所有模块。在策略(1)下,经过微调的YOLO-World仍保留了从预训练阶段获得的零样本能力,使其能够推广到未见过的类别而无需额外微调。策略(2)使YOLO-World更好地适应LVIS数据集,但可能会导致零样本能力的降低。
在这里插入图片描述
结果表明,在LVIS-base上进行fine-tuning可以获得更好的性能,这可能是因为LVIS数据集提供了更详细和更密集的分割注释。当fine-tuning所有模块时,YOLO-World在LVIS上获得了显著的改进,但可能会降低open vocabulary表现。

可视化

本文介绍了预训练的YOLO-World-L模型在三种不同场景下的可视化结果:零样本推理、用户自定义词汇的检测和指代检测。结果表明,该模型具有强大的零样本迁移能力和指代能力,并且能够进行细粒度的检测和分类。这种能力得益于该模型的大规模训练数据和预训练策略。
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

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

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

http伪造本地用户字段系列总结

本篇记录了http伪造本地用户的多条字段,便于快速解决题目 用法举例: 直接把伪造本地用户的多个字段复制到请求头中,光速解决部分字段被过滤的问题。 Client-IP: 127.0.0.1 Forwarded-For-Ip: 127.0.0.1 Forwarded-For: 127.0.0.1 Forwarded…

双非本科准备秋招(17.1)—— 力扣二叉树

1、257. 二叉树的所有路径 要求返回根节点到叶子节点的所有路径,这里用前序遍历就好。 每次递归前,都让字符串s加上当前节点的值和“->”,然后判断是否为叶子节点,如果是的话,说明这条路径是一个答案,因…

【教程】Linux使用支持文件恢复的rm命令

转载请注明出处:小锋学长生活大爆炸[xfxuezhang.cn] 背景介绍 首先非常不幸地告诉你:Linux 系统的标准 rm 命令不支持文件恢复功能。一旦使用 rm 删除了文件或目录,它们就会从文件系统中永久删除,除非你使用专门的文件恢复工具尝试…

计算机设计大赛 深度学习+opencv+python实现车道线检测 - 自动驾驶

文章目录 0 前言1 课题背景2 实现效果3 卷积神经网络3.1卷积层3.2 池化层3.3 激活函数:3.4 全连接层3.5 使用tensorflow中keras模块实现卷积神经网络 4 YOLOV56 数据集处理7 模型训练8 最后 0 前言 🔥 优质竞赛项目系列,今天要分享的是 &am…

算法学习——LeetCode力扣哈希表篇2

算法学习——LeetCode力扣哈希表篇2 454. 四数相加 II 454. 四数相加 II - 力扣(LeetCode) 描述 给你四个整数数组 nums1、nums2、nums3 和 nums4 ,数组长度都是 n ,请你计算有多少个元组 (i, j, k, l) 能满足: 0 …

Java 学习和实践笔记(1)

2024年,决定好好学习计算机语言Java. B站上选了这个课程:【整整300集】浙大大佬160小时讲完的Java教程(学习路线Java笔记)零基础,就从今天开始学吧。 在这些语言中,C语言是最基础的语言,绝大多…

C++ this指针/常量成员函数/const/mutable

目录 1.this 指针2.常量成员函数3.mutable 成员变量4.const 关键字总结5.参考内容 1.this 指针 this 指针,指向成员函数所作用的对象,并且 this 总是指向这个对象,所以 this 是一个常量指针,我们不允许改变 this 中保存的地址。th…

arcgis各种版本下载

arcgic 下载!!! ArcGIS是一款地理信息系统软件,由美国Esri公司开发。它提供了一系列完整的GIS功能,包括地图制作、空间数据管理、空间分析、空间信息整合、发布与共享等。ArcGIS是一个可扩展的GIS平台,提供…

vite+vue3发布自己的npm组件+工具函数

记录一下个人最近一次发布npm组件的过程: 一、创建组件和工具函数 执行命令创建一个空项目: npm create vite 创建过程稍微有些慢,不知何故?其中选择vue , 个人暂时使用的JS 。在 src 目录下面创建一个文件 package 存放组件和公…

Spring Web Header 解析常见错误

在上一章,我们梳理了 URL 相关错误。实际上,对于一个 HTTP 请求而言,URL 固然重要,但是为了便于用户使用,URL 的长度有限,所能携带的信息也因此受到了制约。 如果想提供更多的信息,Header 往往…

CGAL-3D 凸包算法

3D 凸包算法 一、概述二、静态凸包构造1. Traits 特征类2. 极端点3. 半空间相交4. 凸性检验 三、动态凸包构造四、性能 一、概述 一个点集 S∈R3 是凸的,如果对于任意两点 p 和 q 在集合中,具有端点的线段 p 和 q 包含在 S。集合的凸包 P 包含点集 S 的最…

Java笔记 --- 六、IO流

六、IO流 概述 分类 纯文本文件:Windows自带的记事本打开能读懂的 eg:txt文件,md文件,xml文件,lrc文件 IO流体系 字节流 FileOutputStream 操作本地文件的字节输出流,可以把程序中的数据写到本地文件中…

XAI:探索AI决策透明化的前沿与展望

文章目录 📑前言一、XAI的重要性二、为什么需要可解释人工智能三、XAI的研究与应用四、XAI的挑战与展望 📑前言 随着人工智能技术的快速发展,它已经深入到了我们生活的方方面面,从智能手机、自动驾驶汽车到医疗诊断和金融投资&…

备战蓝桥杯---搜索(剪枝)

何为剪枝,就是减少搜索树的大小。 它有什么作用呢? 1.改变搜索顺序。 2.最优化剪枝。 3.可行性剪枝。 首先,单纯的广搜是无法实现的,因为它存在来回跳的情况来拖时间。 于是我们可以用DFS,那我们如何剪枝呢&#…

浅析现代计算机启动流程

文章目录 前言启动流程概述磁盘分区格式MBR磁盘GPT磁盘隐藏分区 传统BIOS引导传统BIOS启动流程 UEFI引导UEFI引导程序UEFI启动流程 引导加载程序启动操作系统相关参考 前言 现代计算机的启动是一个漫长的流程,这个流程中会涉及到各种硬件的配置与交互,包…

考研数据结构笔记(1)

数据结构(1) 数据结构在学什么?数据结构的基本概念基本概念三要素逻辑结构集合线性结构树形结构图结构 物理结构(存储结构)顺序存储链式存储索引存储散列存储重点 数据的运算 算法的基本概念什么是算法算法的五个特性有…

Linux嵌入式开发+驱动开发-中断

swi汇编指令可以产生软中断,以下是硬件中断的产生到执行完毕的全过程: 在自己设计的芯片“CPU响应中断”程序的第四个步骤可以转向“中断向量控制器”,中断向量控制器中存储中断元服务地址即处理中断处理程序的地址,而不用使用0X1…

【安卓跨程序共享数据,探究ContentProvider】

ContentProvider主要用于在不同的应用程序之间实现数据共享的功能,它提供了一套完整的机制,允许一个程序访问另一个程序中的数据,同时还能保证被访问数据的安全性。 目前,使用ContentProvider是Android实现跨程序共享数据的标准方…

2024年2月CCF-全国精英算法大赛题目

第一次参加这种比赛,虽然是c类赛事,但是是ccf主办的,难度还是有点的,主要是前面签到题主要是思想,后面的题目难度太高,身为力扣只刷了一百多道题目的我解决不了,这几道我只做了B,C题,E题超时了&…

生物素-PEG4-酪胺,Biotin-PEG4-TSA,应用于酶联免疫吸附实验

您好,欢迎来到新研之家 文章关键词:生物素-PEG4-酪胺,Biotin-PEG4-Tyramide,Biotin-PEG4-TSA 一、基本信息 产品简介:Biotin PEG4 Tyramine is a reagent used for tyramine signal amplification (TSA) through ca…