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

news2024/11/17 19:41:36

前言

目标检测一直是计算机视觉领域中不可忽视的基础挑战,对图像理解、机器人技术和自主驾驶等领域具有广泛应用。随着深度神经网络的发展,目标检测方面的研究取得了显著进展。尽管这些方法取得了成功,但它们存在一些限制,主要体现在只能处理具有固定词汇表的目标检测问题,例如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.coloradmin.cn/o/1435524.html

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

相关文章

Python __pycache__文件

pycharm配置位置 几个基本概念 源代码(source code) 我们每天编写的Python、Java、C等代码通常指的就是源代码,源代码的特点是人类可读。但是CPU只能读懂二进制,看不懂我们写的源代码,因此还需要进行编译&#xff08…

vue2 自定义指令 v-highlight 文本高亮显示分享

简单分享一个文本高亮显示的自定义指令,主要分两部分: 1、代码实现:在 main.js 文件中添加一个自定义指令,实现搜索时文本高亮显示,代码如下: const highlightText (el, searchText) > {const textCo…

安装PyInstaller的保姆级教程

一、安装PyInstaller之前首先要安装Python,小编这里安装的是Python3.9,目前(2024/2/6)匹配到的最高版本的PyInstaller的版本为6.3.0。需要安装Python的小伙伴可以去这里安装python详细步骤(超详细,保姆级&a…

黑马头条 Kafka

我是南城余!阿里云开发者平台专家博士证书获得者! 欢迎关注我的博客!一同成长! 一名从事运维开发的worker,记录分享学习。 专注于AI,运维开发,windows Linux 系统领域的分享! 知…

SpringBoot-基础篇03

之前搭建了整个开发环境实现了登录注册,springBoot整合mybatis完成增删改查,今天完成分页查询,使用阿里云oss存储照片等资源,后期会尝试自己搭建分布式文件系统来实现。 一,SpringBootMybatis完成分页查询 1&#xff…

选择大语言模型:2024 年开源 LLM 入门指南

作者:来自 Elastic Aditya Tripathi 如果说人工智能在 2023 年起飞,这绝对是轻描淡写的说法。数千种新的人工智能工具被推出,人工智能功能被添加到现有的应用程序中,好莱坞因对这项技术的担忧而戛然而止。 甚至还有一个人工智能工…

LLMs之miqu-1-70b:miqu-1-70b的简介、安装和使用方法、案例应用之详细攻略

LLMs之miqu-1-70b:miqu-1-70b的简介、安装和使用方法、案例应用之详细攻略 目录 miqu-1-70b的简介 miqu-1-70b的安装和使用方法 1、安装 2、使用方法 miqu-1-70b的案例应用 miqu-1-70b的简介 2024年1月28日,发布了miqu 70b,潜在系列中的…

Java面向对象 创建类 创建对象

目录 创建类类的属性类的方法实例分析 创建对象创建Test类测试分析 创建类 类的属性 属性用于定义该类或该类对象包含的数据或者说静态特征。属性作用范围是整个类体。 属性定义格式: [修饰符] 属性类型 属性名 [默认值] ;类的方法 方法用于定义该类或该类实例…

【ARM 嵌入式 编译系列 2.7 -- GCC 编译优化参数详细介绍】

请阅读【嵌入式开发学习必备专栏 】 文章目录 GCC 编译优化概述常用优化等级-O1 打开的优化选项-O2 打开的优化选项-O3 打开的优化选项-Os 打开的优化选项优化技术使用优化选项的注意事项GCC 编译优化概述 GCC(GNU Compiler Collection)包含了用于C、C++、Objective-C、Fort…

大模型综述

1.概念 大模型是指人工智能预训练大模型,具有海量参数和复杂架构,用于深度学习任务的模型,拥有强大的处理能力和表征能力,以数据算力为支撑,借助数据管理、模型训练、评估优化、服务平台、插件等辅助工具,…

Windows显示空的可移动磁盘的解决方案

123  大家好,我是爱编程的喵喵。双985硕士毕业,现担任全栈工程师一职,热衷于将数据思维应用到工作与生活中。从事机器学习以及相关的前后端开发工作。曾在阿里云、科大讯飞、CCF等比赛获得多次Top名次。现为CSDN博客专家、人工智能领域优质创作者。喜欢通过博客创作的方式…

macbookpro和macbookair的区别?cleanmymac 怎么清理mac空间

苹果mac air和pro区别有:1、air采用了轻薄的设计,重量相对较轻,便于携带,而pro更加注重性能,所以比较重;2、air通常搭载较低功耗的处理器内存和存储容量相对较小,而pro配备了更强大的处理器、更…

【最佳实践】el-admin多表CRUD最佳实践,不允许你只会搞单表CRUD了(源码错了,顺带升级了)

【最佳实践】el-admin多表CRUD最佳实践,不允许你只会搞单表CRUD了,(源码错了,顺带升级了) 一、el-admin前端通用核心组件二、如何使用?2.1 新建组件2.2 修改对象属性标记2.3 修改四类组件引用标记2.4 生效 …

HarmonyOS鸿蒙ArkTS证件照生成模板(适合二次开发,全套源码版)

预览效果 部分代码 开发语言 HarmonyOS 鸿蒙 ArkTS语言 (Stage模型) 备注 一键生成,自带证件照数集, 为开发者带来二次开发和学习体验, 在这祝福开发者们使用愉快。 使用方法 下载后通过DevEco Studio开发工…

HarmonyOS开发工具DevEco Studio安装以及汉化

HUAWEI DevEco Studio 面向HarmonyOS应用及元服务开发者提供的集成开发环境(IDE), 助力高效开发。 应用内共享HSP开发 支持在Stage模型和模块化编译方式下开发HSP,以及共享HSP给应用内其他模块使用;支持运行态共享HSP。Code Linter代码检查 支持ArkTS/T…

多模态论文串讲·上【论文精读·46】

大家好,今天我们就来过一下多模态的串讲,其实之前我们也讲了很多工作了,比如说clip,还有 ViLT 以及 clip 的那么多后续工作。多模态学习在最近几年真的是异常的火爆,那除了普通的这种多模态学习,比如说视觉…

【大数据】Flink 中的 Slot、Task、Subtask、并行度

Flink 中的 Slot、Task、Subtask、并行度 1.并行度2.Task 与线程3.算子链与 slot 共享资源组4.Task slots 与系统资源5.总结 我们在使用 Flink 时,经常会听到 task,slot,线程 以及 并行度 这几个概念,对于初学者来说,这…

爬虫工作量由小到大的思维转变---<第四十四章 Scrapyd 用gerapy管理多台机器爬虫>

前言: 之前讲过关于如何在gerapy中部署本地爬虫, 爬虫工作量由小到大的思维转变---<第三十四章 Scrapy 的部署scrapydGerapy>_gerapy如何登录-CSDN博客 爬虫工作量由小到大的思维转变---<第三十五章 Scrapy 的scrapydGerapy 部署爬虫项目&…

锦上添花!特征选择+深度学习:mRMR-CNN-BiGRU-Attention故障识别模型!特征按重要性排序!最大相关最小冗余!

适用平台:Matlab2023版及以上 特征选择方法:"最大相关最小冗余"(Maximal Relevance and Minimal Redundancy,简称MRMR)是一种用于特征选择的方法。该方法旨在找到最相关的特征集,同时最小化特征…

[UI5 常用控件] 06.Splitter,ResponsiveSplitter

文章目录 前言1. Splitter1.1 属性 2. ResponsiveSplitter 前言 本章节记录常用控件Splitter,ResponsiveSplitter。主要功能是分割画面布局。 其路径分别是: sap.ui.layout.Splittersap.ui.layout.ResponsiveSplitter 1. Splitter 1.1 属性 orientation &#x…