[论文阅读RGBD-SOD][2022_TCSVT_MoADNet][轻量化]

news2025/1/18 20:19:43

MoADNet: Mobile Asymmetric Dual-Stream Networks for Real-Time and Lightweight RGB-D Salient Object Detection 

paper:https://ieeexplore.ieee.org/abstract/document/9789193

动机

尽管已有许多优秀的RGB-D SOD技术被提出,但它们大多关注性能增强,而缺乏对移动设备上实际部署的关注。

解决方案

在本文中,我们提出了移动非对称双流网络(MoADNet),用于实时和轻量级RGB-D SOD。

1.首先,受到RGB和深度模式之间固有差异的启发,我们观察到深度图可以用比RGB图像更少的通道表示。因此,我们设计了基于MobileNetV3非对称双流编码器

补充:这句话的意思是,深度图像可以使用比RGB图像更少的通道来表示。这是因为深度图像与RGB图像不同,不需要表示颜色信息,而只需表示距离信息。RGB图像包含红色、绿色和蓝色三个通道,每个通道都包含一个像素点的颜色信息。而在深度图像中,每个像素点代表的是距离摄像头的距离值,因此只需要一个通道就可以表示。这也就意味着,相对于RGB图像,深度图像可以用更少的数据来表示,从而减少计算和存储开销。

疑问??这种不对称是怎么设计的?动机是什么?

在后文提到:前人使用对称双流网络从RGB图像和深度图中提取特征。然而,这两种模式传达了不同的信息。RGB图像包含丰富的颜色和纹理特征,深度图提供空间位置和粗略形状。这两种模式之间的内在差异启发了我们开发非对称双流网络来进行特征提取。

RGB:MobileNetV3-Large,Depth:MobileNetV3-Small

2.其次,我们开发了一种倒置瓶颈跨模态融合(IBCMF)模块来融合多模态特征,该模块采用倒置瓶颈结构来补偿轻量化主干中的信息丢失

3.第三,我们提出了自适应atrous空间金字塔(A2SP)模块来加速推理,并通过适当选择解码器中的多尺度特征来保持推理的性能。(这个模块可以理解为上下文提取模块,用于更好的表达特征的表示)

 IBCMF

1.为什么设计这个模块?

        轻量级主干提取代表性特征的能力低。

2.怎么设计的?

        受[47]的启发,采用channel expansion 来补偿轻量级骨干中的信息损失。我们首先在低级阶段扩大融合前的channel数量。随后,减少这些channel,以促进逐元素操作。由于该过程与反向瓶颈结构[47]具有相同的精髓,我们将此组件命名为反向瓶颈跨模态融合( IBCMF)模块。

1)Channel Alignment: 由于我们的目标是设计非对称双流编码器,不同支路的输出可能有不一致的形状。我们使用Pointwise Convolution Conv1×1(·)使RGB和深度流的输出具有相同的通道尺寸,

补充:Pointwise Convolution也被称为 1×1 卷积,是指卷积核大小为 1×1 的卷积操作。Pointwise Convolution 是一种非常轻量级的卷积操作,其本质上就是一种线性变换,可以有效地将通道之间的信息进行整合和变换。

与传统卷积不同,Pointwise Convolution 在空间上不进行滑动窗口卷积,而是在通道维度上进行乘加运算。因此,它可以非常高效地实现通道数的变换和压缩。同时,由于 Pointwise Convolution 的计算量较小,其计算速度也比较快,因此常常被用于轻量化网络设计中。

Pointwise Convolution 主要应用在两个方面:特征融合和特征变换。

具体来说:

  1. 特征融合:在深度学习中,我们经常需要将不同尺度的特征进行融合,这时可以使用 Pointwise Convolution 实现通道数的增加或者减少,从而实现特征融合。

  2. 特征变换:有时候我们需要对特征进行维度变换,例如将一个高-dimensional 的特征张量映射到 low-dimensional 的嵌入空间中。此时可以使用 Pointwise Convolution 实现通道数的变换,然后将变换得到的特征进行池化或者全局平均池化,从而得到 low-dimensional 的嵌入特征。

总之,Pointwise Convolution 具有计算量小、速度快、通道信息整合等优势,在轻量化网络设计中常常被用于提高网络的性能和效率。

Channel Alignment这样设计有什么好处?在文中作者这样描述的:(1)可以将不同形状的特征图对齐到同一维度。(2)在主干网的底层阶段,特征由少量的通道表示。通道对齐操作可以增加融合前的通道数量。这样,会有更多的频道特性参与融合,进一步提升性能。(3)在主干的高级阶段,特征通常包含大量的通道。在将这些特性输入解码器之前,通道缩减是不可避免的。通道对准操作使信道变化更加普遍,避免了一次急剧减小所造成的信息损失。


2)Feature Fusion:将这些特征串联起来进行跨模态交互,

 在此之后,我们可以得到两个连接的权重

 CSP表示通道分离操作。

        在对齐通道数量后,我们利用注意机制来选择代表性特征。增强的特性可以表示为:

 SA表示shuffle attention (SA) module

补充:Shuffle Attention (SA) 模块是一种用于图像分类和目标检测任务的注意力机制模块,它可以有效地提取图像中不同区域之间的重要性信息,并帮助模型更好地进行物体辨识。

SA 模块的核心思想是将空间上相邻的特征图位置打乱,然后再对每个特征点进行全局池化,这样可以使得特征图中的每个输出点都能够看到相互独立的内容。具体来说,SA 模块的操作步骤如下:

  1. 输入特征 x 的尺寸为B×C×H×W,其中 B 为 batch size,C 为通道数,H 和 W 分别为特征图的高度和宽度。
  2. 将输入特征 x 分成若干个小块,每个小块的大小为 k×k,并打乱每个小块内的元素顺序。
  3. 对每个小块内的元素进行全局平均池化,得到该小块内的特征表示。
  4. 将所有的小块内的特征表示拼接起来,并通过一个 1x1 卷积层进行非线性变换,得到最终的特征表示。

与其他注意力机制不同的是,SA 模块并没有计算 query 和 key 之间的相似度,而是直接从局部特征块中提取信息。

总之,SA 模块通过打乱输入特征图的位置、全局池化和特征拼接等操作,可以帮助模型更好地利用图像中不同区域之间的重要性信息,从而提高图像分类和目标检测任务的性能表现。

Shuffle Attention (SA) 模块和空间注意力(Spatial Attention)在注意力机制的实现方式上有着一定的区别

空间注意力是一种经典的注意力机制,其思想是通过对输入图像的不同位置进行加权,让模型更关注重要的信息。具体来说,空间注意力通常会引入两个关键变量:query 和 key,计算它们之间的相似度,并利用 softmax 函数将相似度转换成权重,最终将这些加权后的特征图进行池化或者卷积。

相比于空间注意力,Shuffle Attention 模块则更加关注特征图中不同区域之间的关联性,其核心思想是将空间上相邻的特征图位置打乱,然后对每个小块内的元素进行全局平均池化,从而得到该小块内的特征表示。这样可以使得特征图中的每个输出点都能够看到相互独立的内容,进而提取出更全面、更准确的特征。

因此,Shuffle Attention 模块与传统的空间注意力模块有着明显的区别。SA 模块通过对特征图中的位置重新排列并进行全局池化等操作,强调了特征图中不同区域之间的相互独立性,能够更好地挖掘不同区域之间的关联性。而空间注意力则更加注重不同位置之间的权重计算,能够更好地提取重要的信息。

总之,在实际应用中,选择何种注意力机制取决于具体任务的需求以及特征图中不同区域之间的关联程度。

更多参考:【CV中的Attention机制】ShuffleAttention_sa注意力机制_*pprp*的博客-CSDN博客

        特征融合过程可以表示为:

 3)Channel Projection: 通过3次ReLU激活的3×3卷积来减少通道的数量。因此,IBCMF模块的最终输出为:

三个连续的3×3卷积,为简便起见省略ReLU激活。这种尝试带来了两个好处。首先,减少特征通道的数量有利于内存的使用和计算的消耗。第二,相同数量的通道简化了元素操作。在此之后,我们最终可以得到融合后的feature map。


自适应Atrous空间金字塔(A2SP)模块

1.为什么设计这个模块?

        ASPP由于并行卷积层[16],它们也降低了GPU推理速度,增加了参数数量。

2.怎么设计的?

        由于来自不同编码器阶段的特征映射具有不同的分辨率,在解码器中使用相同的扩展速率和内核大小来处理特征映射是不合理的。一些高级阶段的特征映射可以用更少的扩张卷积和更小的内核尺寸来表示。为了加快推理速度和减少参数,我们开发了一个自适应Atrous空间金字塔(A2SP)模块,如图5所示。

为了有效地利用多尺度特征,我们首先自适应地将通过扩张卷积提取的多尺度信息串联起来。假设这些丰富特征在第i阶段表示为F^{Cat}_i,则可计算为:

最后,我们通过1*1卷积将输出特征的维数恢复到与输入相同的维数。则在第i阶段,A2SP模块的最终输出为:


解码器

密集连接。在每个连接中,feature map被适当2,4,8上采样,以保持相同的分辨率。

 显著性头

其中Si是第i阶段的预测显著性映射,Upraw(·)表示将特征映射上采样到输入数据的原始大小。请注意,该单元仅在训练阶段使用,而在测试时省略。因此,在不增加任何额外推理成本的情况下,可以提高性能,这与本文设计实时轻量级模型的目标一致。


 

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

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

相关文章

面试篇-从今天开始彻底分清Java内存模型JMM和运行时数据区

“相信很多人会把Java内存模型与Java运行时数据区给搞混淆” Java内存模型和Java运行时数据区是两个不同的概念,很容易让人混淆。下面简单介绍一下它们的区别: Java内存模型(JMM)是Java虚拟机规范中定义的一种内存模型&#xff…

如何优化快速排序?

欢迎来到 Claffic 的博客 💞💞💞 前言: 还记得上次的快速排序吗?还记得 key 是怎么取的吗?当时我直接把数组的起始元素作为了 key 值,其实这样做是有弊端的,试想:一个降…

SAP Business Technology Platform (BTP)的架构理解

查资料看到的,转一下,附上链接: SAP Business Technology Platform (BTP)的架构理解 长期以来,我在与客户和伙伴的沟通交流中发现大家依然对SAP业务技术平台 – SAP Business Technology Platform (以下简称BTP)纯有各种疑惑&…

webgl-图形非矩阵旋转

知识拓展 由(x1,y1)旋转β角度到(x2,y2) 根据圆极坐标方程 x1 r*cosα y1 r*sinα 可得 x2 r*cos(α β) r*cosα*cosβ - r*sinα*sinβ,因为x1 r*cosα,y1 r*sinα,所以x2 x1*cosβ -y1*sinβ…

如何进行移动设备资产管理

随着越来越多的移动设备进入和访问组织的企业资源,管理员必须监视和控制对企业数据的访问。与传统工作站不同,传统工作站位于企业的物理工作区内,移动设备从多个位置使用,从而使移动资产管理过程更加复杂。 什么是移动资产管理 …

java基础集合面试题

什么是集合 集合就是一个放数据的容器,准确的说是放数据对象引用的容器 集合类存放的都是对象的引用,而不是对象的本身 集合类型主要有3种:set(集)、list(列表)和map(映射)。 集合的特点 集合的特点主要有如下两点&…

LMKD分享

背景 Android是一个多任务系统,可以同时运行多个程序,一般来说,启动运行一个程序是有一定的时间开销的,因此为了加快运行速度,当你退出一个程序时,Android并不会立即杀掉它,这样下次再运行该程…

【MySQL优化】快速入门慢SQL优化

MySQL B树结构(二叉排序树) 索引 SQL优化,主要就是在优化索引 索引:相当于书的目录 索引:index是帮助MYSQL高效获取数据的数据结构。索引是数据结构(树:B树(默认)、Hash树…) 索引的弊端: 1.索引本身很大,可以存…

Spring Cloud Config配置服务及那些你不知道的坑

目录 1、为什么选择Spring Cloud Config 1.1 集中式管理 1.2 动态修改配置 2、Spring Cloud Config 简介 3、服务端配置 3.1 添加依赖 3.2 开启服务注册 3.3 添加YML配置 3.4 创建远程分支及Profile配置文件 3.5 启动并测试服务 4、客户端配置 4.1 添加依赖 4.2 开…

2.3-6循环链表

原理的单链表和循环单链表的区别: 初始化循环单链表时,使头节点next指针指向头节点。 判断循环单链表是否为空。 对比: 单链表:if(L->next NULL) 双链表:if(L->nextL) 判断循环单链表的结点p是否为表尾结点…

汇聚音视频新能量 探索行业新蓝海

视频行业卷成红海,如何突破瓶颈,去探索行业的新蓝海,本次LiveVideoStackCon 2022北京站邀请到快手高级副总裁、研发线负责人于冰,以《汇聚音视频新能量,探索行业新蓝海》为题,从视频行业趋势和痛点出发&…

类ChatGPT模型ChatGLM-b6本地部署实践

国外ChatGPT火爆持续,前一段时间百度发布“文心一言”还没有全面放开测试,这不阿里“通义千问”又悄然而至,国内大模型AI产品渐渐浮出水面。早在2022年8月份时候清华大学的对话语言模型ChatGLM-6B就发布并开源,本文简要介绍ChatGL…

flex弹性布局详细介绍

这里提供一个可以边学习边玩的flex学习网站:弹性盒青蛙 目录一、Flex布局是什么?二、属性1. justify-content 属性2. align-items属性3. flex-direction属性4. order属性5. align-self属性6. flex-wrap 属性7. flex-flow属性8. align-content属性三、综合…

测试新人必看,软件测试测试流程

不同类型的软件产品测试的方式和重点不一样,测试流程也会不一样。同样类型的软件产品,不同的公司所制定的测试流程也会不一样。虽然不同软件的详细测试步骤不同,但它们所遵循的最基本的测试流程是一样的。 1分析测试需求 2制定测试计划 3设…

Python opencv 实现图像平移及旋转

Python opencv 实现图像平移及旋转 仿射变换是一种仅在二维平面中发生的几何变形,变换之后的图像仍然可以保持直线的 “平直性” 和 “平行性”,也就是说原来的直线变换之后还是直线,平行线变换之后还是平行线。图像平移和图像旋转是常见的放…

IMX6ULL-IRQ中断之添加中断向量表

一. 中断向量表 中断向量表是存放中断向量的表。中断服务程序的入口地址或存放中断服务程序的首地址成为中断向量,因此中断向量表是一系列中断服务程序入口地址组成的表。当有中断事件发生时,处理器通过中断向量表进入相关的中断服务程序处理事件。 二.…

自动化测试(二):QTP验证点

1 、程序自带验证点 自带验证点:图形界面insert -> checkpoint Standard Checkpoint 标准验证:用于检查测试对象的属性 Text Checkpoint 文本验证:用于检查文本字符串是否在应用程序中的适当位置出现 Text Area Checkpoint文本区域验…

饮用水中的六价铬去除工艺详解

铬是人体必需的微量元素,天然水不含铬,海水中铬的平均浓度为0.05μg/L,饮用水中铬含量更低。 铬在水中主要以三价和六价形式存在,三价的铬是对人体有益的元素,而六价铬是有毒的。由于其毒性之高,已被国家列…

Smith预估器

Smith预估器主要针对存在大滞后的系统,作用延迟和反馈延迟环节的控制,Smith预估器的另一篇文章,请参看下面的博客文章: 博途1200/1500PLC Smith预估器(补偿器)算法实现(FB)_RXXW_Dor的博客-CSDN博客在写这篇文章之前写过一篇"大林控制算法",大家可以参看下面这…

免费的包噪音网站分享

免费的包噪音网站分享 现代生活中,噪音扰人,影响健康和情绪。白噪音可以为人们提供放松心情、提高睡眠质量和专注力的帮助。 现在有很多免费的白噪音网站可以任意使用和分享,包括海浪声、雨声、蝉鸣声等等,非常适合在办公室、家里…