【论文阅读笔记】MobileSal: Extremely Efficient RGB-D Salient Object Detection

1.介绍

MobileSal: Extremely Efficient RGB-D Salient Object Detection
MobileSal:极其高效的RGB-D显著对象检测
2021年发表在 IEEE Transactions on Pattern Analysis and Machine Intelligence。
Paper Code

2.摘要

神经网络的高计算成本阻碍了RGB-D显着对象检测(SOD)的最新成功,使其无法用于现实世界的应用。因此,本文介绍了一种新的网络MobileSal,它专注于使用mobile networks进行深度特征提取的高效RGB-D SOD。然而,mobile networks在特征表示方面不如笨重的网络强大。为此,我们观察到,彩色图像的深度信息可以加强与SOD相关的特征表示,如果利用得当。因此,我们提出了一种隐式深度恢复(IDR)技术,以加强mobile networks的RGB-D SOD的特征表示能力。IDR只在训练阶段采用,在测试过程中省略,因此它是计算自由的。此外,我们提出了紧凑的金字塔细化(CPR)高效的多层次特征聚合,以获得清晰的边界显着的对象。通过整合IDR和CPR,MobileSal在六个具有挑战性的RGB-D SOD数据集上与最先进的方法相比表现良好,速度更快(320 × 320的输入大小为450 fps),参数更少(6.5M)。

Keywords:mobile network,深度信息,SOD

3.Introduction

显著目标检测(SOD)的目的是定位和分割自然图像中最引人注目的目标。它是图像理解中的一个基本问题,并且是许多计算机视觉任务的初步步骤,例如视觉跟踪,内容感知图像编辑和弱监督学习。目前的SOD方法主要是针对RGB图像开发的、,这些图像通常受到无法区分的前景和背景纹理的阻碍。虽然卷积神经网络(CNN)在RGB-D SOD上取得了辉煌的成就,但它们的高精度往往是以高计算成本和大模型尺寸为代价的。这种情况已经阻止了最近的最先进的方法被应用于现实世界的应用,特别是对于那些在移动的设备上的应用,这些设备是深度可访问的,具有非常有限的能量开销和计算能力。因此,设计高效的网络以实现精确的RGB-D SOD是至关重要的。实现这一目标的一个简单的解决方案是采用轻量级的主干,如MobileNets和ShuffleNets进行深度特征提取,而不是常用的笨重主干。问题在于,轻量级网络在特征表示学习方面通常不如笨重的网络强大。

为了克服这一挑战,本文指出,如果适当利用彩色图像的深度信息,可以加强RGB-D SOD的特征表示。与一些显式利用深度信息的现有研究不同,本文提出了一种隐式深度恢复(IDR)技术来加强轻量级骨干网络的特征表示学习,以确保RGB-D SOD在有效设置中的准确性。更重要的是,IDR只在训练阶段采用,在测试阶段被省略,因此在推理阶段是计算自由的。具体来说,本文强制模型从高级别骨干网络恢复深度图(生成深度图),通过该特征,轻量级骨干的表示学习变得更加强大,并对深度流进行重要监督。除了IDR模块之外,还提出了另外两个组件来确保高效率:i)仅在粗粒度级别进行RGB和深度信息融合,因为这样小的特征分辨率(即,1/32比例)是降低计算成本的关键; ii)提出了一个紧凑的金字塔细化(CPR)模块,以有效地聚合多尺度深度特征,以获得具有清晰边界的准确SOD。

MobileNetV2为骨干网络,MobileSal在单个NVIDIA RTX 2080 Ti GPU上实现了450 fps,输入尺寸为320 × 320,NJU 2K [15]和DUTLF [9]数据集上的最大F测量分别为91.4%和91.2%,参数较少(6.5M)。如此高的效率、良好的精度和小的模型尺寸将有利于许多现实世界的应用。

4.模型结构解析

在这里插入图片描述
上图是模型整体结构,使用RGB和深度流进行单独的特征提取。
RGB流。采用MobileNetV2作为方法的骨干网络。为了使其适应SOD任务,从骨干中删除了全局平均池化层和最后一个全连接层。对于RGB流,每个阶段之后是步长为2的卷积层,因此特征图在每个阶段之后被下采样为半分辨率。为了方便起见,将五个阶段的输出特征图分别表示为C1、C2、C3、C4、C5,步长分别为2、 2 2 2^2 22 2 3 2^3 23 2 4 2^4 24 2 5 2^5 25
深度流:与RGB流类似,深度流也有五个具有相同步幅的阶段。由于深度图包含的语义信息比相应的RGB图像少,因此构建了一个轻量级的深度网络,其卷积块比RGB流少。每个阶段只有两个反向残差块(IRB)【MobileNetV2: Inverted residuals and linear bottlenecks】。这样的设计降低了计算复杂度。在每个IRB中,首先通过1 × 1卷积沿通道维度将特征图沿着扩展M倍,然后是具有相同数量的输入和输出通道的深度可分离的3 × 3卷积。然后,通过另一个1×1卷积将特征通道压缩到1/M。在这里,每个卷积后面都是批归一化(BN)和ReLU层,除了最后一个只有BN层的1 × 1卷积。反向残差块的最终输出是初始输入和由上述三个顺序卷积生成的输出的逐元素和。对于每个阶段中的第一层,深度可分离卷积的步幅被设置为2,并且如果需要,隐藏特征通道的数量被增加。深度流的五个阶段的输出特征图被表示为D1、D2、D3、D4、D5,其中前四个阶段分别具有16、32、64、96个通道。D5和C5具有相同的通道数和相同的步幅。

如图所示,利用RGB和深度流的输出,首先融合提取的RGB特征C5和深度特征D5以生成RGB-D特征 C 5 D C^D_5 C5D。所提出的IDR技术从C1、C2、C3、C4、 C 5 D C^D_5 C5D恢复深度图,其由输入深度图监督以加强特征表示学习。对于显著性预测,设计了一个轻量级的解码器使用CPR模块作为基本单元。解码器在底部阶段的输出是最终预测的显著图。更多细节可参见以下章节。

RGB和深度特征的跨模态融合 CMF

在这里插入图片描述

深度图揭示了彩色图像的空间线索,有助于区分前景对象和背景,特别是对于纹理复杂的场景。本文不是在多个级别进行融合,只在粗略级别融合RGB和深度特征,因为小的特征分辨率计算成本低。根据上述分析,仅融合RGB特征图C5和深度特征图D5。为此,设计了一个轻量级的跨模态融合(CMF)模块。直观上,语义信息主要存在于RGB图像中。深度图传达近似表示完整物体或材料的形状和结构的深度平滑区域的先验(深度图传达了对形状和结构完整的物体或材料的近似表示,并且在深度图中存在一些平滑区域,这些区域对应着深度的连续性,形成了一种先验(先验知识或先验信息))因此,采用像门这样的深度特征来通过乘法增强RGB语义特征,这可以被视为一种强正则化。但按元素添加或连接只能通过平等对待特征来聚合两个特征图,这与本文目标正交(不吻合),所以乘了。

具体地,首先将RGB和深度特征通过IRB(反向残差块)组合以获取转换的RGB-D特征图T,其可以被公式化为
在这里插入图片描述
其中, ⊗ \otimes 是逐元素乘法运算符。同时,对C5全局平均池化(GAP)以获得特征向量,然后是两个完全连接的层来计算RGB注意力向量v,如:
在这里插入图片描述
其中FC和ReLU分别表示全连接层和ReLU层。FC1和FC2的输出通道数与输入相同。σ表示标准sigmoid函数。在计算出T和v的情况下,v、T和D5的乘积被馈送到IRB中,如:
在这里插入图片描述
其中 C 5 D C^D_5 C5D是CMF模块的输出特征图。注意,v在乘法之前被复制为与T相同的形状。上式通过乘以D5再次过滤RGB语义特征,并且通道注意力v用于重新校准融合的特征。在RGB和深度特征的融合之后,可以导出骨干特征,包括RGB特征C1、C2、C3、C4和融合的RGBD特征 C 5 D C^D_5 C5D

隐式深度恢复 IDR

在这里插入图片描述
深度图传达了通常表示对象、对象部分或平滑背景的深度平滑区域,因为直观地说,对象或连接的填充区域通常具有相似的深度。所以使用深度图作为指导表征学习的额外监督源,这将有助于mobile networks抑制对象或连接的填充区域内的纹理变化并突出它们之间的差异。通过这种方式,显著对象与背景之间的对比也将得到加强。基于这一思想,设计了一种隐式深度恢复(IDR)技术。在这里,使用“隐式”一词,因为IDR仅在训练阶段采用,在测试期间省略,使其在实际部署中无需计算。

如上图所示,IDR的流水线是简单的,即,只是将多层次的特征图连接起来,然后将它们融合。具体来说,首先应用1 × 1卷积将C1、C2、C3、C4、 C 5 D C^D_5 C5D压缩到相同数量的通道。然后,将得到的特征图调整为与C4相同的大小,然后将它们连接起来。1 × 1卷积将级联特征图从1280通道改变为256通道,以节省计算成本。接下来,四个顺序IRBs之后,融合多层次的功能,使我们可以获得强大的多尺度功能。最后,一个简单的1 × 1卷积将融合后的特征映射转换为单通道。使用标准的sigmoid函数和双线性上采样,可以获得与输入大小相同的恢复深度图。IDR的训练损失采用公知的SSIM度量[65]来测量恢复的深度图Dr和输入的深度图Dg之间的结构相似性,其可以写为
在这里插入图片描述
其中,SSIM使用默认设置。请注意,在测试期间省略了上述操作,以使IDR空闲。

紧凑的金字塔细化 CPR

在这里插入图片描述
我们的解码器不仅要有效地融合多层次特征,而且要尽可能地高效,即紧凑的金字塔细化(CPR)模块作为基本单元。为了提高效率,CPR使用1×1和深度可分离卷积,而不是以前方法中的vanilla卷积[A single stream
network for robust and real-time RGB-D salient object detection]。由于多层次特征表现出多尺度表示,高层次对应于粗尺度,反之亦然,多尺度学习将是必要的多层次特征融合。因此,CPR采用轻量级的多尺度学习策略来增强这种融合。假设CPR模块的输入是X。如上图所示,CPR首先应用1 × 1卷积以将通道数量扩展M倍。然后,将3个膨胀率分别为1,2,3的3 × 3深度可分卷积并行连接(膨胀率是卷积核内元素之间的间隔。增加膨胀率会导致卷积核内元素之间的距离增加,这可以扩大卷积核的感受野),进行多尺度融合。这可以表述为
在这里插入图片描述
其中d1、d2和d3是膨胀率,即,分别是1,2,3。BN是batch normalization的缩写。1 × 1卷积用于将通道压缩到与输入相同的数量,即,
在这里插入图片描述
其使用残差连接以实现更好的优化。注意力机制应用于X以计算注意力向量v’,因此我们有
在这里插入图片描述
它使用全局上下文信息来重新校准融合的特征。

如网络结构图所示,在每个解码器阶段,来自顶部解码器和相应编码器阶段的两个特征映射首先分别使用1× 1卷积将其通道数量减少到一半。然后将结果连接起来,然后是用于特征融合的CPR模块。通过这种方式,我们的轻量级解码器从上到下聚合多级特征。

混合损失函数

在每个解码器阶段,我们通过顺序地将具有单个通道的1×1卷积、S形函数和双线性上采样添加到CPR模块的输出来预测显著性图。因此,我们可以分别导出五个阶段的预测显著性图Pi(i = 1,2,…,5)。假设地面实况显著性图为G。每个侧输出的损失可以计算为
在这里插入图片描述

BCE表示二进制交叉熵损失函数:
在这里插入图片描述

其中“·”表示点积运算。Dice表示Dice损失:Dice(Pi,G)= 1 − 2 · G · Pi|| G||+的||Pi|||| · ||表示n = 1范数。在深度监督和IDR的情况下,训练损失可以公式化为
在这里插入图片描述
其中λ是平衡权重。在测试阶段,P1是最终预测的显著图。

5.实验结果

我们使用MobileNetV2 作为我们的骨干网。深度流、CPR和IDR中的M值分别被设置为4、4和6。我们将RGB和深度图像调整为320 × 320。我们使用水平翻转和随机裁剪作为消融研究的默认数据增强。在冻结设计和参数之后,我们应用多尺度训练,即,每个图像在训练中被调整为[256,288,320],但我们保持测试图像的大小不变。我们使用单个RTX 2080 Ti GPU进行训练和测试。初始学习率lr为0.0001,批量大小为10。我们训练我们的网络60个epoch。应用多学习率策略,使得每个epoch cur epoch的实际学习率为(1-cur epoch 60)power × lr,其中power为0.9。Adam优化器用于优化我们的网络,动量,权重衰减,β1和β2分别设置为0.9,0.0001,0.9和0.99。
在这里插入图片描述
在这里插入图片描述

6.总结

轻量化:mobile network提取特征,利用深度图作为辅助监督提高性能,但又不在推理阶段生成深度图进行特征表征,深度图与RGB的特征融合都是轻量化的:只融合高级特征(即分辨率小的),使用反向残差块进行RGBD特征融合。对于最终的不同层次特征进行融合,本文也采用使用1×1和深度可分离卷积,先把通道缩减再操作。

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

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

相关文章

Vue 自定义仿word表单录入之日期输入组件

因项目需要&#xff0c;要实现仿word方式录入数据&#xff0c;要实现鼠标经过时才显示编辑组件&#xff0c;预览及离开后则显示具体的文字。 鼠标经过时显示 正常显示及离开时显示 组件代码 <template ><div class"paper-input flex flex-col border-box "…

Matlab字符识别实验

Matlab 字符识别OCR实验 图像来源于屏幕截图&#xff0c;要求黑底白字。数据来源是任意二进制文件&#xff0c;内容以16进制打印输出&#xff0c;0-9a-f’字符被16个可打印字符替代&#xff0c;这些替代字符经过挑选&#xff0c;使其相对容易被识别。 第一步进行线分割和字符…

AI编程可视化Java项目拆解第一弹,解析本地Java项目

之前分享过一篇使用 AI 可视化 Java 项目的文章&#xff0c;同步在 AI 破局星球、知乎、掘金等地方都分享了。 原文在这里AI 编程&#xff1a;可视化 Java 项目 有很多人感兴趣&#xff0c;我打算写一个系列文章拆解这个项目&#xff0c;大家多多点赞支持~ 今天分享的是第一…

alibaba学习笔记03(小滴课堂)

自定义Ribbon负载均衡策略实战 启动3个视频服务和一个订单服务&#xff1a; 我们可以看到它是随机调用的。 也可以使用其他负载均衡策略。 讲解新一代负载均衡组件feign介绍 这种方式去写死接口肯定是不妥当的。 于是我们使用feign负载均衡组件&#xff1a; 改造微服务 集成F…

【Linux】 系统目录结构

进入到根目录 cd /ls目录名具体作用/存放系统系统相关的目录文件/boot放置linux系统内核文件和启动时用到的一些引导文件/home包含linux系统上各用户的主目录&#xff0c;子目录名称默认以该用户名命名/root系统管理员root的家目录/bin包含常用的命令文件&#xff08;如ls 等&a…

CBA业务架构师认证考试含金量

CBA业务架构师认证考试的含金量主要体现在以下几个方面&#x1f447; 1️⃣权威性 &#x1f48e;CBA业务架构师是业务架构师协会提供了一项国际认证计划&#xff0c;该计划可以衡量业务架构师的能力&#xff0c; 并向证明公认的熟练程度的个人授予认证业务架构师(Certified Bus…

vue前端开发自学,祖孙多层级组件嵌套关系数据传输

vue前端开发自学,祖孙多层级组件嵌套关系数据传输&#xff01;官方提供了一个解决方案&#xff0c;就是&#xff0c;在根组件内使用provide,哪个子孙组件想调用这个数据&#xff0c;就可以inject接收就行了。虽然是方便了&#xff0c;但是这个有点要求&#xff0c;就是只能自上…

初识 Elasticsearch 应用知识,一文读懂 Elasticsearch 知识文集(3)

&#x1f3c6;作者简介&#xff0c;普修罗双战士&#xff0c;一直追求不断学习和成长&#xff0c;在技术的道路上持续探索和实践。 &#x1f3c6;多年互联网行业从业经验&#xff0c;历任核心研发工程师&#xff0c;项目技术负责人。 &#x1f389;欢迎 &#x1f44d;点赞✍评论…

数据操作、数据预处理

1.数据类型&#xff1a; 2.数组元素操作&#xff1a; 3.数据预处理&#xff1a; import os import pandas as pd import numpy as np#创建csv文件并写入数据 os.makedirs(os.path.join(.., data), exist_okTrue) data_file os.path.join(.., data, house_tiny.csv) with open…

如何在电脑上免费更改 PDF 格式文档的字体大小?

对于需要编辑或修改的 PDF 文件来说&#xff0c;更改其字体大小是一个非常常见且必要的工作。虽然 Adobe Acrobat Pro DC 等专业的 PDF 编辑软件可以帮助您完成此任务&#xff0c;但他们通常都需要昂贵的恢复。幸运的是&#xff0c;有许多免费的 PDF 编辑工具可供选择。在本文中…

【WPF.NET开发】流文档

本文内容 什么是流文档&#xff1f;流文档类型创建流内容与流相关的类内容架构自定义文本 流文档旨在优化查看和可读性。 流文档根据运行时变量&#xff08;例如&#xff0c;窗口大小、设备分辨率和可选的用户首选项&#xff09;来动态调整和重新排列内容&#xff0c;而不是设…

开源数据库系统OpenGauss本地部署

文章目录 前言1. Linux 安装 openGauss2. Linux 安装cpolar3. 创建openGauss主节点端口号公网地址4. 远程连接openGauss5. 固定连接TCP公网地址6. 固定地址连接测试 前言 openGauss是一款开源关系型数据库管理系统&#xff0c;采用木兰宽松许可证v2发行。openGauss内核深度融合…

1.5矩阵元素的引用

通过下标来引用矩阵的元素 A(3, 2)表示A矩阵第3行第2列的元素。 >> arr [1,2,3;4,5,6]; >> arr(4, 5) 10arr 1 2 3 0 04 5 6 0 00 0 0 0 00 0 0 0 10>> 如果引用元素超过矩阵的大小将自…

LeetCode讲解篇之47. 全排列 II

文章目录 题目描述题解思路题解代码 题目描述 题解思路 初始化一个nums中元素是否被访问的数组used、记录还需要递归的深度deep 遍历nums 如果当前元素被访问过或者当前元素等于前一个元素且前一个元素没被访问过就跳过该次遍历 否则选择当前元素&#xff0c;继续递归 直到…

Windows系统Outlook邮件备份导出与导入教程

注意&#xff1a;微软商店UWP版本outlook客户端暂时不支持邮件备份&#xff01;而Microsoft Office2003-目前(2021)中的outlook客户端才支持邮件备份。所以&#xff0c;想要备碧桂园集团邮箱邮件&#xff0c;请安装或者登录Microsoft Office中的outlook客户端以进行邮件的备份。…

S1-07 事件组

事件组 在 FreeRTOS 中&#xff0c;事件组&#xff08;Event Group&#xff09;是一种用于任务间通信的机制&#xff0c;用于在多个任务之间同步和传递事件。 事件组主要包含一下两个概念&#xff1a; 事件标志位&#xff08;Event Flags&#xff09;&#xff1a;每个事件标志…

动态规划篇-02:杨辉三角

118、杨辉三角 状态转移方程 我们还是老套路起手&#xff1a;先列出状态转移方程。 base case 每行的第一个和最后一个数字都是1 明确状态 “原问题或子问题中变化的变量” 此处的“状态”就是某一位置的数字大小 在此题中&#xff0c;每一个数的“状态” 是由其左上方…

Ensp AR/WLAN设备启动失败问题 错误代码41 解决方案

现象描述 启动AR设备之后&#xff0c;设备命令行无法接收输入&#xff0c;在长时间等待后一直输出“####”。启动AR/WLAN设备时&#xff0c;提示“…错误代码40…”。 检查虚拟网卡设置。 检查安装eNSP的PC上是否存在名为“VirtualBox Host-Only Network”的虚拟网卡。 - 如果…

【conda】pip安装报错,网络延时问题解决记录(亲测有效)

【conda】pip安装报错&#xff0c;网络延时问题解决记录 1. pip install 报错如下所示2. 解决方案&#xff1a; 1. pip install 报错如下所示 pip._vendor.urllib3.exceptions.ReadTimeoutError: HTTPSConnectionPool(hostfiles.pythonhosted.org, port443): Read timed out.…

AI文本生图模型Stable Diffusion部分模型叠加效果

兄弟们,最近有个烦恼,就是找图有点费事,干脆自己部署个文本生图模型Stable Diffusion,虽然机器性能慢,但是效果还可以,先和大家截图分享下,后面将映射ai.shenjian.online供大家免费使用 1. 效果预览 2. 主模型及插件安装 下载模型icerealistic_v21.safetensors放到./models/S…