Transformer网络学习记录——基于空间约束自注意力和Transformer的RGB-D显著性检测方法研究

news2024/10/7 19:29:47

基于图半监督学习和图卷积的目标分割与跟踪算法研究 (wanfangdata.com.cn)

只能说看不懂,记录是为了有耐心慢消化

原文:

网络整体为通用的编码器-解码器架构 ,总体上由骨干编码器、交互编码器、RGB 解码器、深度解码器组成。

具体来说,采用 ResNet50 作为骨干网络。给定一对 RGB 模态和 Depth 模态的输 入图像,分别得到不同尺度的特征。为了减少参数和提高网络的性能,采用 1×1 卷积对降维到 64。分别将这些特征表示为𝑋 𝑟 {𝑋 𝑟 | 2 3 4 5}和𝑋 {𝑋 | 2 3 4 5}。 将 RGB 图像特征和 Depth 图像特征𝑋5 𝑟、𝑋5 作为输入,并利用 PSMA 模块得到更加结构化的特征表示𝑍5 𝑟、𝑍5 。对于特征𝑍5 𝑟、𝑋 𝑟 {𝑋 𝑟 | 2 3 4}和𝑍5 、𝑋 {𝑋 | 2 3 4},分 别用 RGB 解码器和深度解码器将高层特征上采样到与浅层特征相同的尺度,再通过元素相加来融合不同层级的特征(如图 (a)、(c)所示)。

在得到两个分支的输出特征之后,为了更好地挖掘不同模态的共同特征,用交互编码器来促进两个模态之间的信息交换。与文献[49]相似,交互编码器将 RGB 解码器和深度解码器的拼接特征作为输入,它通过叠加多个卷积来提取多层次特征。再分别使用不同的卷积得到适用于 RGB 解码器和深度解码器的交互信息,去自适应地指导 RGB 解 码器和深度解码器(如图 3.3(b)所示)。最后将融合交互特征和主干编码器的特征直接 相加,以充分利用不同模态的特征。在本章提出的框架中,特征交互是由多次迭代组成 的。在第一次迭代中,RGB 解码器和深度解码器两个分支在不交换信息的情况下输出融 合特征。从第二次迭代开始,将前一次迭代后的拼接特征作为交互编码器的输入,从而 实现两个分支之间的交互。

理解:

1、骨干网络(ResNet50)图中粉色部分

详细介绍:ResNet50网络结构图及结构详解 - 知乎 (zhihu.com)

最开始有一个单独的卷积层stage 0,后4个Stage都由Bottleneck组成,分别是3, 4, 6, 3个小Bottleneck。下面摘取了stage 0的解释:

  • (3,224,224)指输入INPUT的通道数(channel)、高(height)和宽(width),即(C,H,W)。现假设输入的高度和宽度相等,所以用(C,W,W)表示。
  • 该stage中第1层包括3个先后操作
  1. CONV
    CONV是卷积(Convolution)的缩写,7×7指卷积核大小,64指卷积核的数量(即该卷积层输出的通道数),/2指卷积核的步长为2。
  2. BN
    BN是Batch Normalization的缩写,即常说的BN层。
  3. RELU
    RELU指ReLU激活函数。
  • 该stage中第2层为MAXPOOL,即最大池化层,其kernel大小为3×3、步长为2
  • (64,56,56)是该stage输出的通道数(channel)、高(height)和宽(width),其中64等于该stage第1层卷积层中卷积核的数量,56等于224/2/2(步长为2会使输入尺寸减半)。

总体来讲,在Stage 0中,形状为(3,224,224)的输入先后经过卷积层、BN层、ReLU激活函数、MaxPooling层得到了形状为(64,56,56)的输出。

2、金字塔结构的空间约束自相互注意力模块 (Pyramid Spatial Constrained Self-Mutual Attention, PSMA)

用于学习多模态图像的空间上下文和多模态感知特征表示

RGB 模态 和 Depth 模态的特征𝑋 𝑟 ∈ ℝ𝐻×𝑊×𝐶和𝑋d ∈ 𝐻×𝑊×C在通道维度上拼接,然后使用卷积和𝑠𝑜𝑓𝑡𝑚𝑎x激活函数来计算选择注意。

没看懂 等等再理解

3、交互编码器

给定一个形状为H×W的输入图像,该主干将生成五个尺度的特征,由于下采样,尺寸减半。我们将这些特征表示为F={Fi|i=1,2,3,4,5}。第i个特征的大小为,其中Ci是第i个特性的通道。已经表明,低级特征大大增加了计算成本,但带来的性能改进有限。因此,我们只利用{Fi|i=2,3,4,5}的特征,如图2所示。将两个卷积层应用于这些特征,以使它们分别适应身体预测任务和细节预测任务。然后,我们得到两组特征B={Bi|i=2,3,4,5}和D={Di|i=2、3,4、5},它们都被压缩到64个通道,并被发送到解码器网络以生成显著性图。

在获得这两个分支的输出特征之后,处理它们的最简单方法是连接这些特征并应用卷积层以获得最终的显著性图。然而,这种方式忽略了分支之间的关系。为了显式地促进分支之间的信息交换,引入了交互编码器网络。更具体地,交互解码器将主体解码器和细节解码器的级联特征作为输入。它堆叠多个卷积以提取多层次特征。然后,这些多级特征将应用于3x3卷积层,以使它们分别适用于身体解码器和细节解码器。直接相加用于将交互特征与骨干编码器的特征融合,以产生更精确的显著性图。从表面上看,整个网络是不寻常的,因为后者的分支输出用于前者的解码器。但事实上,特征交互包括多次迭代。在第一次迭代中,两个分支输出特征而不交换信息。从第二次迭代开始,分支之间交互。

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

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

相关文章

ROCKSDB原理

按照读写的性质来分 分为读少写多和 写少读多 RocksDB适用于第一种。 磁盘中的数据结构 就地写和追加写 找到某一个页 然后将数据刷入到这一个页中. 这就导致了一个问题 就是追加写入的数据冗余 由于存在数据冗余 所以必须要对数据进行一定的处理才能保持查找性能 数据以块…

langchain系列:Model I/O模块之-Prompts

文章目录 Model I/O简介输入部分(Prompts)PromptTemplatefrom_template ChatPromptTemplate langchain是基于大语言模型而开发的一个框架,既然是基于大语言模型,自然最重要的就是先要介绍Model I/O模块。 Model I/O简介 Model I/O…

Helm3安装和使用

Helm3安装和使用 1、Helm简介 Helm 是 Kubernetes 上的包管理器,用来管理 Kubernetes 应用程序,Helm Charts 可帮助您定义,安装和升级 复杂的 Kubernetes 应用程序。Helm 把 Kubernetes 资源(比如deployments、services或ingress等) 打包到…

ProtoBuf的学习并且制作了一个网络通讯录项目

Linux环境下载安装ProtoBuf编译器 1. 安装依赖库 Ubuntu用户选择 sudo apt-get install autoconf automake libtool curl make g unzip -yCentos用户选择 sudo yum install -y autoconf automake libtool curl make gcc-c unzip2. 下载ProtoBuf编译器 Github地址&#xff…

kmalloc与vmalloc如何选择

kmalloc和vmalloc都是Linux内核中用于内存分配的函数,但它们适用于不同的内存分配场景。 kmalloc函数用于在内核空间中分配小块(通常小于一个页面大小)的连续内存区域,这些内存区域可以用于存储内核数据结构和缓冲区等。kmalloc内…

MySQL与Oracle的粗略对比

前言 首先先说自己的感受,我第一次使用Oracle是在我第一次的实习当中,包括我也在Leetcode中做了一些题目来练习,大家也可以做做,还是有收获的。 首先,我之前一直听说Oracle是要付费的,但其实它有免费版&am…

使用nvm use 切换node版本失败

使用nvm use 切换node版本失败 exit status 1: Access is denied.(或者显示乱码)解决方法一: 使用管理员的方式运行 解决方法二: 还有一种可能,在安装nvm之前电脑中已经安装过node,所以会导致切换失败,&#xff08…

【Java练习题汇总】《第一行代码JAVA》入门介绍篇程序基本概念篇,汇总Java练习题——基础语法:变量、数据类型、运算符、控制流... ~

Java练习题 入门介绍篇&程序基本概念篇 1️⃣ 入门介绍篇习题2️⃣ 程序基本概念篇习题 1️⃣ 入门介绍篇习题 一、填空题 Java 源程序文件的后缀是_______, Java 字节码文件的后缀名称是_______。Java 程序实现可移值性,依靠的是______________。Java 语言的…

C++中的类型转化

目录 1.C语言中的类型转化 2.C强制类型转换 2.1、static_cast 2.2、reinterpret_cast 2.3、const_cast 2.4、dynamic_cast 1.C语言中的类型转化 在C语言中,如果赋值运算符左右两侧类型不同,或者形参与实参类型不匹配,或者返回值类型与…

华为ERP思考:国产自研迈出第一步

华为的进入会刺激用友、金蝶、浪潮等国产厂商加快技术革新,以及伴随着华为自身技术自研全栈的布局和不断测试,国产ERP的兼容性和标准性都将上一个新的台阶。 作者|斗斗 编辑|皮爷 出品|产业家 15小时完成全球88家子公司Meta ERP系统的切换&#x…

c++游戏小技巧6:rand()+随机迷宫(3写法:BFS,DFS,并查集)

目录 1.前言 2.前文(rand,随机数引入) 1.rand() 2.srand,随机数种子 3.用法: 1. 生成0~RAND_MAX里面的数 2.生成大于RAND_MAX的数 3.生成负数 3.正文(确信) 1.bfs写法: 1.让迷宫全是墙确定起点 2.初始化 3.循环操作: 4.总…

路径规划算法:基于天鹰优化的路径规划算法- 附代码

路径规划算法:基于天鹰优化的路径规划算法- 附代码 文章目录 路径规划算法:基于天鹰优化的路径规划算法- 附代码1.算法原理1.1 环境设定1.2 约束条件1.3 适应度函数 2.算法结果3.MATLAB代码4.参考文献 摘要:本文主要介绍利用智能优化算法天鹰…

漏洞复现 || TerraMaster TOS exportUser.php 远程命令执行

阅读须知 技术文章仅供参考,此文所提供的信息只为网络安全人员对自己所负责的网站、服务器等(包括但不限于)进行检测或维护参考,未经授权请勿利用文章中的技术资料对任何计算机系统进行入侵操作。利用此文所提供的信息而造成的直接或间接后果和损失,均由使用者本人负责。…

既有颜值又能打,达尔优实用之外的设计进化

对于时下不少二次元或游戏玩家来说,外设产品不再只是实用就够了,设计、风格也很重要,可盐可甜,有帅的也要有萌的,主打一个个性十足又非常实用。在这样的趋势下,达尔优的A系列,一改以往“硬朗”的设计风格,加入更多更贴合年轻人审美取向的主题配色。除此,新推出的针对女性市场的…

为什么Qt没有像其他框架一样广泛流行起来?

Qt 是一种功能强大且广泛应用的跨平台开发框架,具有许多优点。然而,以下是一些可能解释为什么 Qt 没有像其他框架那样广泛流行起来的原因: 我这里刚好有嵌入式、单片机、plc的资料需要可以私我或在评论区扣个6 知名度和推广力度&#xff1a…

GPT模型应用丨遥感云大数据在灾害、水体与湿地领域典型案例实践

​ ​ ​ ​ 第一部分 基础实践 一 平台及基础开发平台 GEE平台及典型应用案例介绍; GEE开发环境及常用数据资源介绍; ChatGPT、文心一言等GPT模型介绍 JavaScript基础简介; GEE遥感云重要概念与典型数据分析流程; …

技术导向下的业务测试何去何从?

前两天我发了篇鼓励测试人员学编程(思维)的文章《做测试到底要不要学编程?》,有不少同学在后台问我,自己底子差,实在跟不上怎么办? 看起来,应该是我没说清楚,导致大家有…

SOCVPOCV、global/local variation

Global/local variation global variation 用PVT 跟 RC-corner 来模拟;local variation 用 OCV/ AOCV/ SOCV 来模拟。在40nm 之前OCV 被广泛采用,但是OCV 对同一条path 上的所有cell 都设同一个derate 值,如果设的太严则过于悲观,…

自定义设置echarts label里的颜色

自定义echarts label里的颜色 option {xAxis: {type: category,data: [Mon, Tue, Wed, Thu, Fri, Sat, Sun]},yAxis: {type: value},series: [{data: [120, 200, 150, 80, 70, 110, 130],type: bar,label:{show: true,formatter: function (params){console.log(params)if (pa…

Three.js加载外部glb,fbx,gltf,obj 模型文件

vue3使用Three.js加载外部模型文件 1.安装Three.js yarn add three npm install three2.新建一个renderModel.js 用于处理Three.js相关逻辑 import * as THREE from three //导入整个 three.js核心库 import { GLTFLoader } from three/examples/jsm/loaders/GLTFLoader im…