Yolo-World网络模型结构及原理分析(三)——RepVL-PAN

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档

文章目录

  • 前言
    • 1. 网络结构
    • 2. 特征融合
    • 3. 文本引导(Text-guided)
    • 4. 图像池化注意力(Image-Pooling Attention)
    • 5. 区域文本匹配(Region-Text Matching)
  • 总结


前言

通过前边的YOLO检测器和文本编码器分别得到了特征图像和词向量,那么如何实现二者的融合,以达到目标检测的目的呢?就是通过yolo-world中提出的新的网络架构RepVL-PAN,下边我们来研究一下他是如何工作的。


RepVL-PAN(Re-parameterizable Vision-Language Path Aggregation Network)是YOLO-World中的一个核心网络结构,它通过融合视觉信息和语言信息来提升目标检测的性能。

1. 网络结构

  • RepVL-PAN基于YOLO架构,并采用特征金字塔网络(FPN)来提取多尺度图像特征,提取图像特征的部分已经在前文讲过,详情参考:Yolo-World网络模型结构及原理分析(一)——YOLO检测器。
  • 它利用Transformer文本编码器(例如CLIP模型)来处理输入文本,生成文本嵌入。这部分也在前文讲过,详情参考:Yolo-World网络模型结构及原理分析(二)——文本编码器

2. 特征融合

通过Top-Down和Bottom-Up的路径来建立特征金字塔,这有助于在不同尺度上融合图像特征。

  • (1)Top-Down Path:从高层特征图向低层特征图传递信息。这种路径通过上采样操作(如反卷积或插值)将高层的抽象特征图扩展到低层的空间分辨率上。这样可以将高层特征与低层特征结合,使得模型在检测较小目标时具有更好的精度。
  • (2)Bottom-Up Path:从低层特征图向高层特征图传递信息。这种路径通过卷积操作将低层的细节特征图逐步融合到高层特征图中,从而保留更多的细节信息。这样可以帮助模型在检测较大目标时更好地保留细节信息。
  • (3)引入Text-guided Cross Stage Partial Layers(T-CSPLayer),这是一种扩展的CSPLayer,它将文本嵌入整合到多尺度图像特征中。图示中的C3,C4,C5就是从YOLO检测器之后获取到的三种不同尺度的特征图,尺寸分别为80x80,40x40,20x20三种尺寸。
    融合过程

3. 文本引导(Text-guided)

  • T-CSPLayer使用文本嵌入来引导图像特征的更新,通过在CSPLayer后应用max-sigmoid注意力机制来聚合文本特征。
    T-CSPLayer结构如图所示:T-CSPLayer
  • (1)首先将传进来的特征图进行Split切分,比如一开始传入的特征图为40x40x512,那么切分之后一份是40x40x256,另一份也是40x40x256。
  • (2)其中一份进入Dark Bottleneck,进行一次普通卷积:使用较小的卷积核(如 1x1 卷积)来减少通道数和计算复杂度。可以有效地压缩特征图中的信息,同时保留重要的特征。然后进行深度可分离卷积:这种卷积方式将标准卷积拆分为深度卷积和逐点卷积两个步骤,从而进一步减少计算量和参数数量。深度卷积在每个通道上独立进行卷积操作,而逐点卷积则在通道间进行卷积。最后进行残差连接来增强模型的训练能力和稳定性。
  • (3)从Dark Bottleneck输出特征图之后进入Max-Sigmoid,同时text文本向量也进入Max-Sigmoid,在Max-Sigmoid中的处理过程是这样的:比如传进来的特征图是40x40x256,文本向量是3x256(3个词汇:“男”“女”“狗”),在特征图中有40x40=1600个像素点,每个像素点与3个文本提示词逐一计算,看哪个像素点与文本提示词的相关性最大,就给哪个像素点更多的权重(sigmoid)。也就是通过这个操作找到特征图中与文本提示词相关性更大的区域。这样就可以实现文本对图像的更新
  • (4)从Max-Sigmoid出来的融合图再与最开始切分之后的特征图拼接,做一个残差连接,生成含有更丰富信息的特征图(注意这里还是特征图,只是有些像素点的权重更大)。

4. 图像池化注意力(Image-Pooling Attention)

  • 为了增强文本嵌入的图像意识,RepVL-PAN使用图像池化操作来更新文本嵌入。
  • 通过在多尺度特征上应用最大池化,生成小区域的patch tokens,然后使用多头注意力机制来更新文本嵌入。

Image-Pooling Attention结构如图所示:
Image-Pooling Attention

  • (1)多尺度特征聚合:在I-Pooling Attention中,首先对图像进行多尺度特征提取。这意味着模型会从不同分辨率的图像中提取特征,以捕捉图像的不同层次的信息。
  • (2)最大池化操作:在提取多尺度特征后,使用最大池化(max pooling)操作来聚合这些特征。最大池化是一种常用的池化技术,它选择每个池化窗口内的最大值作为输出,这有助于保留图像中最重要的信息。
  • (3)生成Patch Tokens:通过最大池化操作,将每个特征图(80x80,40x40,20x20三种尺寸)聚合成3x3的区域,每个区域生成一个patch token。这样,对于一个给定的图像,总共会生成27个patch tokens(3x3),每个token都是一个特征向量,其维度为D。
  • (4) 更新文本嵌入:生成的patch tokens随后用于更新文本嵌入。这是通过多头注意力机制实现的。具体来说,原始的文本嵌入w与patch tokens (含有文本信息w和图像信息token的向量)进行多头注意力计算,然后将结果加到原始文本嵌入上,得到更新后的文本嵌入w’,实现用图像更新文本嵌入,模型可以在更新文本嵌入时同时考虑来自图像的多个不同区域的特征。

5. 区域文本匹配(Region-Text Matching)

区域-文本匹配的目的是将检测到的图像区域(bounding boxes)与文本中提到的对象类别或名词进行匹配的过程。
区域文本匹配图示:
区域文本匹配

  • (1) 通过RepVL-PAN网络之后,输出的P3 P4 P5是含有语义信息的特征图,将特征图输入到不同的Head中,首先通过BoxHead预测图像中每个对象的位置,这些位置以边界框(bounding boxes)的形式表示,每个边界框包含了对象的位置和大小信息。
  • (2)除了边界框,检测器还会为每个检测到的对象生成一个对象嵌入向量(object embeddings)。这个嵌入向量是一个高维空间中的点,它编码了对象的特征信息(每个对象含有语义信息“男”“女”“狗”),使得不同对象之间可以进行比较和区分
  • (3)文本对比头(Text Contrastive Head)
    通过RepVL-PAN网络之后得到的Image-aware Embeddings也含有了图像信息,object embeddings中含有了语义信息。利用文本对比头计算的相似度分数来匹配文本中提到的类别或名词与图像中的对象。找到对象嵌入与哪个文本嵌入之间的相似性最大。这样,模型不仅能够识别图像中的对象,还能够理解这些对象与用户输入的文本之间的关系。
    也就是说YOLO-World 为每个边界框分配一个最匹配的类别或名词。这是基于相似度计算结果,模型会选择与对象嵌入最相似的文本嵌入所对应的类别或名词。
  • (4)零样本学习能力
    YOLO-World 的一个关键特点是其零样本学习能力。这意味着即使在训练数据中没有见过某些类别或名词,模型也能够通过其语言和视觉的联合表示来识别和匹配这些新对象。

总结

通过RepVL-PAN网络,YOLO-World 展示了如何有效地结合视觉信息和语言描述,以实现对图像内容的深入理解和准确的自动标注,为开放词汇表对象检测领域提供了一种新的解决方案。

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

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

相关文章

springboot+vue+mybatis校园热点新闻系统+PPT+论文+讲解+售后

21世纪的今天,随着社会的不断发展与进步,人们对于信息科学化的认识,已由低层次向高层次发展,由原来的感性认识向理性认识提高,管理工作的重要性已逐渐被人们所认识,科学化的管理,使信息存储达到…

如何在 Windows 上恢复丢失或删除的文件

意外删除重要文件或文档的历史与 Windows 本身一样悠久,这就是为什么有许多内置方法来恢复它。从深入回收站到挖掘 Microsoft 的 Windows 文件恢复实用程序,以下是如何在 Windows 中恢复丢失和删除的文件。 检查回收站 Windows 帮助您恢复已删除并需要再…

IO多路复用之poll、epoll和select区分

epoll和select 假设你在大学读书,住的宿舍楼有很多间房间,你的朋友要来找你。 select版宿管大妈就会带着你的朋友挨个房间去找,直到找到你为止。 而epoll版宿管大妈会先记下每位同学的房间号, 你的朋友来时,只需告诉你…

德国汉堡大学、清华大学联合英国布里斯托机器人实验室的研究工作分享:基于视觉遥操作的多指机械手灵巧操作

德国汉堡大学(张建伟院士团队)、清华大学(孙富春教授和方斌)联合英国布里斯托机器人实验室等单位在基于视觉信息遥操作的多指机械手灵巧操作研究方面取得进展。该工作得到了德国科学基金会(DFG)与中国国家自…

Git分支管理基本原理

原文全文详见个人博客: Git分支管理基本原理上文已讨论过svn分支管理的基本原理,本文将继续探讨Git分支管理的基本原理,以便后续进行进一步的理解和对比:https://www.coderli.com/git-branch-method/【Java学习交流(982860385)】…

Linux journalctl日志太长,如何倒序查看journalctl --reverse,journalctl -xeu

文章目录 需求实验方法一方法二 需求 Linux journalctl日志太长,如何倒序查看 我们通常关心的是最近的日志,但是每次打开日志都是按时间先后顺序显示的,如何倒序查看,请看下面: 实验 方法一 journalctl 命令默认按…

Linux工具相关介绍

目录 1.linux安装软件 2.Linux软件生态问题 3.linux软件包管理器yum 4.linux里面好玩的小命令 4.1安装源 4.2小火车 4.3人物说话情景 5.vim简单介绍 5.1简单认识 5.2代码编写 5.3命令模式 1.linux安装软件 1.1源代码安装:这个里面可能根据代码bug需要修改…

AI模型大比拼:Claude 3系列 vs GPT-4系列最新模型综合评测

AI模型大比拼:Claude 3系列 vs GPT-4系列最新模型综合评测 引言 人工智能技术的迅猛发展带来了多款强大的语言模型。本文将对六款领先的AI模型进行全面比较:Claude 3.5 Sonnet、Claude 3 Opus、Claude 3 Haiku、GPT-4、GPT-4o和GPT-4o Mini。我们将从性能…

huawei USG6001v1学习---防火墙高可靠性(双机热备)

1.什么是双机热备 如图:当左图的防火墙发生故障时,整个系统都会收到影响,而右图即使有防火墙发生故障,但是还有一台防火墙做备份,相对于只有一台防火墙,要可靠些。 由于防火墙上不仅需要同步配置信息&…

【数据分享】2013-2022年我国省市县三级的逐月SO2数据(excel\shp格式\免费获取)

空气质量数据是在我们日常研究中经常使用的数据!之前我们给大家分享了2000——2022年的省市县三级的逐月PM2.5数据和2013-2022年的省市县三级的逐月CO数据(均可查看之前的文章获悉详情)! 本次我们分享的是我国2013——2022年的省…

DAY05 CSS

文章目录 1 CSS选择器(Selectors)8. 后代(包含)选择器9. 直接子代选择器10. 兄弟选择器11. 相邻兄弟选择器12. 属性选择器 2 伪元素3 CSS样式优先级1. 相同选择器不同样式2. 相同选择器相同样式3. 继承现象4. 选择器不同权值的计算 4 CSS中的值和单位1. 颜色表示法2. 尺寸表示法…

java中多态的用法

思维导图: 1. 多态的概念 多态通俗的讲就是多种形态,同一个动作,作用在不同对象上,所产生不同的形态。 例如下图: 2. 多态的实现条件 Java中,多态的实现必须满足以下几个条件: 1. 必须在继承…

将mars3D导入自己的项目中

文章目录 一、打开自己的vite项目二、创建场景配置文件1.json文件路径 public\config\config.json2.创建组件定义文件路径 src\components\mars-work\mars-map.vue三、demo中引入四、必要样式 依赖文件 总结 一、打开自己的vite项目 我创建了一个新的 结构如下 二、创建场景…

Netty技术全解析:EventLoopGroup类详解

❃博主首页 &#xff1a; 「码到三十五」 &#xff0c;同名公众号 :「码到三十五」&#xff0c;wx号 : 「liwu0213」 ☠博主专栏 &#xff1a; <mysql高手> <elasticsearch高手> <源码解读> <java核心> <面试攻关> ♝博主的话 &#xff1a…

java学校--Object类方法--toString

第一点解析&#xff1a; 全类名就是包名加类名 getClass&#xff08;&#xff09;.getName()是得到其包名和类名如图&#xff0c;包名是com.hspedu.object_类名是Monster。 Integer.toHexString&#xff08;hashCode&#xff08;&#xff09;&#xff09;&#xff1b;是得到其…

Spring中@PostConstruct注解的使用

1.描述 1.1 背景 最近在做一个系统交互日志模块&#xff0c;要监控一个http请求&#xff0c;并记录请求与响应日志。项目中使用RestTemplate来发送http请求&#xff0c;所以打算给RestTemplate设置拦截器&#xff0c;来进行自定义操作。但是&#xff0c;只对当前类生效&#x…

Java文件IO操作知识点

关于文件 关于IO的定义 I:input输入 O:output输出,这是一套人为规定的规则,下面这个图方便我们理解输入输出的定义,统一以CPU为基准 在操作系统中其实把很多的资源都抽象成文件,我们在这里所说的文件就是"狭义"文件,平时保存在硬盘上的文件, 文件夹也是一种文件,我们…

「iOS」自定义cell与cell的复用

iOS学习 前言一&#xff1a;TableView协议二&#xff1a;cell的复用Cell的复用原理自定义cell总结 前言 UITableView是iOS开发中不可或缺的一部分&#xff0c;它是苹果iOS SDK提供的一种用于展示数据列表的视图控件。我们对其中的cell进行自定义&#xff0c;即可得到我们需要的…

Python 实现股票指标计算——BBI

BBI (Bull And Bear lndex) - 多空指标 1 公式 3日均价 3日收盘价之和 / 36日均价 6日收盘价之和 / 612日均价 12日收盘价之和 / 1224日均价 24日收盘价之和 / 24BBI (3日均价 6日均价 12日均价 24日均价) / 4 2 数据准备 我们以科创50指数 000688 为例&#xff0c…

Qt 学习第一天:安装VS和Qt

本人更换了一台新的电脑&#xff0c;使用联想电脑管家传输文件后没有安装VS&#xff0c;导致出现了以下问题&#xff1a; 疯狂查资料问人。弄了一个晚上加上午一个多小时之后&#xff0c;还是决定删掉原来的文件夹&#xff0c;重新下载一个 一、安装VS&#xff08;Visual Stud…