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

【计算机视觉 | 目标检测】BARON:pseudo words 和 linear layer 的理解

文章目录

  • 一、问题
  • 二、个人的理解
    • 2.1 线性层的理解
    • 2.2 pseudo words的理解
      • 2.2.1 详细一点
      • 2.2.2 为什么可以使用文本嵌入空间中的技术?
      • 2.2.3 pseudo word的本质是什么?
      • 2.2.4 好处
      • 2.2.5 论文中的具体体现

一、问题

在BARON中,有这样一个地方:

在这里插入图片描述

BARON基于Faster R-CNN,其分类器被线性层取代,将区域特征映射为伪词。

之前一直有一个很大的疑问,为什么区域特征映射成为“伪词”,并且可以传入文本编码器?

二、个人的理解

2.1 线性层的理解

在目标检测任务中,一般会将图片中的每一个物体框(Region of Interest,RoI)提取出来,作为检测的基本单元。对于每个RoI,我们可以提取其特征表示,通常使用卷积神经网络(Convolutional Neural Network,CNN)来进行特征提取。

在BARON中,对于每个RoI提取的特征表示,称其为“Region Embedding”,即区域嵌入。

在得到区域嵌入后,BARON会将其投影到“Word Embedding Space”中,即单词嵌入空间。这里的“Word Embedding”指的是自然语言处理领域中使用的词向量表示方法,可以将自然语言中的单词表示成一个向量。

在BARON中,将区域嵌入投影到词向量空间中,可以使得不同区域之间可以在语义上进行比较,这有助于将图像和文本的信息进行融合,以便进行跨模态的匹配。

具体来说,投影的过程可以使用一个全连接层(Fully Connected Layer)来实现,其中权重矩阵就是用来进行区域嵌入到单词嵌入空间的映射的。

2.2 pseudo words的理解

在BARON中,pseudo words(伪词)是指为了把区域特征映射到词向量空间而生成的一组虚构的词。这些伪词实际上并没有真正的语义含义,只是用来表示每个区域的语义信息。

伪词的数量通常与图像中的区域数量相同,可以通过对每个区域的嵌入进行一些线性变换来获得。

通过这种方式,图像区域和自然语言文本之间就可以进行跨模态的比较和匹配,从而实现图像与文本的对齐和检索。

2.2.1 详细一点

在 BARON 中,pseudo words 是由 region embedding 经过投影得到的。这些 region embeddings 包含了对于图像区域的语义信息,而 pseudo words 通过将这些信息映射到文本嵌入空间中,使得这些信息可以直接与文本嵌入进行对齐和比较。

具体来说,每个 pseudo word 是由一个区域周围的 n n n 个单词的平均嵌入组成。这些单词可以来自于 region embedding 所在的图像中的标注,也可以来自于使用 OCR 等技术识别出来的文本。因此,pseudo words 中包含了对于图像区域和其周围文本的综合描述,可以视为一种融合了视觉和文本信息的表征。

相比于仅仅使用 region embedding 或文本嵌入,使用 pseudo words 的好处在于可以利用图像中的视觉信息和文本信息对不同区域进行更准确的区分和比较。因此,pseudo words 不仅包含了区域周围的文本信息,也包含了位置信息,可以看作是一种综合表征。

2.2.2 为什么可以使用文本嵌入空间中的技术?

在文本嵌入空间中,每个单词都被表示为一个向量,这些向量在空间中的距离和角度可以表示单词之间的相似度和差异性。因此,我们可以通过计算这些向量之间的相似度来比较文本中的单词或短语。

在自然语言处理任务中,通常使用词嵌入技术,例如Word2Vec、GloVe等,将单词嵌入到低维向量空间中,这些向量保留了单词之间的语义和上下文信息。这些技术被广泛应用于各种任务,例如情感分析、文本分类、语言翻译等。

对于目标检测问题,我们可以将物体区域的表示嵌入到同样的低维向量空间中,然后使用这些向量与文本嵌入进行比较,以便将区域与相应的物体类别关联起来。这种方法可以用于跨模态的任务,例如将图像中的物体标注为相应的单词或短语。

2.2.3 pseudo word的本质是什么?

Pseudo word(伪单词)是一种特殊的词汇,它不是自然语言中真正存在的词汇,而是由算法根据输入的文本和任务要求生成的一种词汇。在自然语言处理领域中,伪单词常常用于解决词汇稀疏性的问题,或者是用于在语义空间中表征一些语言学概念或者实体,例如在图像标注中使用物体名称的伪单词来表示物体。

在BARON模型中,pseudo word被用来扩充文本嵌入空间,使得模型可以更好地处理词汇稀疏性的问题,并且可以更好地表征图像和文本之间的关系。pseudo word本质上是一种特殊的符号,它可以被视为文本嵌入空间中的一个点,并且可以通过各种算法进行计算、操作和优化。通过在文本嵌入空间中引入pseudo word,可以增强模型对于复杂语义信息的表征能力,提高模型在多模态任务中的性能。

2.2.4 好处

将pseudo word引入文本嵌入空间有以下好处:

  1. 增加了可解释性:传统的视觉推理模型难以解释其预测过程,而将pseudo word引入文本嵌入空间后,可以将图像和文本的关系可视化并解释。

  2. 提高泛化能力:模型在训练时使用了类别标签信息,因此学到的文本嵌入向量具有更好的泛化能力,可以在不同的视觉推理任务上重用。

  3. 增强了对词汇信息的利用:文本嵌入空间中的词向量具有语义信息,将pseudo word映射到这个空间中,可以利用词向量中的语义信息来增强模型的表达能力。

  4. 简化模型:将pseudo word引入文本嵌入空间,可以将文本和视觉信息的融合转化为简单的向量加法操作,从而降低了模型的复杂度。

2.2.5 论文中的具体体现

在这里插入图片描述
在实践中,线性层将一个区域特征映射到多个伪词,以表示每个对象的丰富语义信息。

相关文章:

  • 【Git从入门到精通】分支机制
  • 【jvm系列-04】精通运行时数据区共享区域---堆
  • 【机器学习】P10 从头到尾实现一个线性回归案例
  • 四个常见的Linux面试问题
  • 【面试】TCP、UDP、Socket、HTTP网络编程面试题
  • Mysql查询截取分析_慢查询日志
  • Qt 中的信息输出机制:QDebug、QInfo、QWarning、QCritical 的简单介绍和用法
  • 50 Projects 50 Days - Expanding Cards 学习记录
  • Go语言精修(尚硅谷笔记)第十一章
  • 【EHub_tx1_tx2_E100】不止科技NVISTAR ROC 300激光雷达Ubuntu18.04+ROS1ROS2 评测
  • WebRTC API
  • 大数据之Spark开发环境准备
  • 什么是Java运算?Java运算好学吗?
  • abaqus子程序vumat安装使用
  • 【Java项目】Minio的安装部署以及SpringBoot整合Minio
  • Android组件 - 收藏集 - 掘金
  • conda常用的命令
  • CSS进阶篇--用CSS开启硬件加速来提高网站性能
  •  D - 粉碎叛乱F - 其他起义
  • JS创建对象模式及其对象原型链探究(一):Object模式
  • Median of Two Sorted Arrays
  • Nacos系列:Nacos的Java SDK使用
  • spring boot 整合mybatis 无法输出sql的问题
  • Yii源码解读-服务定位器(Service Locator)
  • 浮现式设计
  • 高程读书笔记 第六章 面向对象程序设计
  • 区块链将重新定义世界
  • 如何打造100亿SDK累计覆盖量的大数据系统
  • 限制Java线程池运行线程以及等待线程数量的策略
  • ​RecSys 2022 | 面向人岗匹配的双向选择偏好建模
  • ​Spring Boot 分片上传文件
  • # Swust 12th acm 邀请赛# [ A ] A+B problem [题解]
  • #include
  • #stm32驱动外设模块总结w5500模块
  • #常见电池型号介绍 常见电池尺寸是多少【详解】
  • #传输# #传输数据判断#
  • (3)选择元素——(17)练习(Exercises)
  • (8)STL算法之替换
  • (done) NLP “bag-of-words“ 方法 (带有二元分类和多元分类两个例子)词袋模型、BoW
  • (Spark3.2.0)Spark SQL 初探: 使用大数据分析2000万KF数据
  • (附源码)spring boot儿童教育管理系统 毕业设计 281442
  • (区间dp) (经典例题) 石子合并
  • (提供数据集下载)基于大语言模型LangChain与ChatGLM3-6B本地知识库调优:数据集优化、参数调整、Prompt提示词优化实战
  • (一)Java算法:二分查找
  • (原创)Stanford Machine Learning (by Andrew NG) --- (week 9) Anomaly DetectionRecommender Systems...
  • (原創) 物件導向與老子思想 (OO)
  • (转)fock函数详解
  • (转)自己动手搭建Nginx+memcache+xdebug+php运行环境绿色版 For windows版
  • **PyTorch月学习计划 - 第一周;第6-7天: 自动梯度(Autograd)**
  • .bat批处理(八):各种形式的变量%0、%i、%%i、var、%var%、!var!的含义和区别
  • .net 逐行读取大文本文件_如何使用 Java 灵活读取 Excel 内容 ?
  • .NET6 命令行启动及发布单个Exe文件
  • .net操作Excel出错解决
  • @cacheable 是否缓存成功_让我们来学习学习SpringCache分布式缓存,为什么用?
  • @ComponentScan比较