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

MobileSal:极其高效的RGB-D显著性物体检测模型

摘要

问题一:什么叫做MobileSal?

MobileSal 是指一种用于移动设备上的显著性检测(Saliency Detection)方法,通常是针对在资源受限的环境(如智能手机)上运行的视觉模型。

问题二:什么叫做隐式恢复技术?

在图像去噪、图像修复或图像超分辨率等任务中,隐式恢复技术指的是利用模型(如深度神经网络)自动学习从损坏或低分辨率图像中恢复细节的过程。与传统的显式恢复方法不同,隐式恢复往往通过学习到的特征和模式来推断缺失的信息,而无需明确地计算每个恢复步骤。

问题三:什么叫做紧凑金字塔细化(CPR)操作?

紧凑金字塔细化(Compact Pyramid Refinement, CPR) 操作通常是指在图像处理、计算机视觉或深度学习中,用于多尺度特征提取和细化的技术。它结合了金字塔结构细化操作,以提高模型在不同尺度下的性能,尤其是在目标检测、图像分割等任务中。

金字塔结构:金字塔结构是一种多尺度处理方式,通常包括空间金字塔图像金字塔。它通过对图像进行不同层次的缩放或多尺度处理,使得模型能够在不同分辨率下提取特征。金字塔结构的关键优势在于能够捕捉到大范围的上下文信息以及细节信息。

细化:细化操作指的是在图像或特征的多尺度表示中,通过某些方法增强或优化重要的信息,以提升细节和结构的准确性。细化通常用于后处理阶段,目的是提升模型的精度和准确性,修正模糊或不清晰的部分。

紧凑:意味着该方法在金字塔结构的基础上进行优化,使得不同尺度之间的特征信息更加紧密和有效,避免冗余。

一 介绍

问题1:什么叫做深度信息?

深度信息(Depth Information):是指图像中每个像素到观察者(或摄像头)之间的距离。深度图像通常通过深度摄像头(如Kinect、LiDAR等)采集,能够提供关于场景中物体相对位置和空间关系的信息。

问题二:什么叫做MobileNets网络和ShuffleNets?

MobileNets:MobileNets 是由 Google 提出的一个轻量级卷积神经网络架构,专门优化了在移动设备上的计算效率。MobileNets 的关键创新是使用 深度可分离卷积(Depthwise Separable Convolutions)来替代标准的卷积操作,从而减少计算量和参数量。

关键特点:

  • 深度可分离卷积:标准卷积操作是对输入特征图与卷积核进行全局运算,而深度可分离卷积将卷积操作分为两步:

    1. 深度卷积(Depthwise Convolution):每个输入通道独立进行卷积,计算量大大减少。
    2. 逐点卷积(Pointwise Convolution):使用 1×11 \times 11×1 卷积对深度卷积后的输出进行合并,这样可以将信息从各个通道融合到一起。
  • 宽度乘子(Width Multiplier):MobileNets 引入了一个宽度乘子 α\alphaα,用来控制网络的宽度。通过调整这个乘子,可以在精度和计算效率之间进行平衡。

  • 分辨率乘子(Resolution Multiplier):MobileNets 还使用了分辨率乘子 β\betaβ,可以改变输入图像的分辨率,进一步减少计算量。

ShuffleNet:ShuffleNet 是由华为提出的另一种高效神经网络架构,旨在通过更巧妙的设计进一步提高计算效率。ShuffleNet 的一个关键特点是引入了 通道洗牌(Channel Shuffle) 操作。

关键特点:

  • 组卷积(Group Convolutions):与标准卷积不同,组卷积将输入特征图分成若干组,并在每组内部进行卷积,从而减少了卷积操作的计算量。组卷积通过限制每次卷积操作的输入通道数来减少计算量。

  • 通道洗牌(Channel Shuffle):在组卷积之后,通道洗牌操作打乱(shuffle)不同组之间的通道,使得各组之间的特征能够融合。这一操作显著提高了组卷积的表现,同时保持了计算量较低。

  • 减少计算量:ShuffleNet 通过组卷积和通道洗牌,显著减少了计算量,同时保证了特征信息能够充分流动。

二 相关工作

2.1 显著性物体检测

2.2 RGB-D显著性物体检测

2.3 高效的骨干网络

问题一:什么叫做MobileNetV2

MobileNetV2 是一种轻量级的卷积神经网络(CNN)架构,主要用于移动端和嵌入式设备上的计算机视觉任务。它的设计旨在提高效率和降低计算开销,同时尽量保持较高的准确率。MobileNetV2 相比于 MobileNetV1 引入了一些新颖的技术来优化网络结构,尤其是以下几个关键创新:

  1. 倒残差结构(Inverted Residuals):这是 MobileNetV2 的一个核心创新。它通过使用“倒残差块”,将传统的卷积结构反转,使得通道数在卷积操作中先扩展再压缩,从而提高了计算效率。

  2. 深度可分离卷积(Depthwise Separable Convolution):类似于 MobileNetV1,MobileNetV2 也使用深度可分离卷积,减少了计算量。深度可分离卷积通过将标准卷积拆分为两步:深度卷积(对每个输入通道单独卷积)和逐点卷积(1x1卷积)来减少计算量和参数量。

  3. 线性瓶颈(Linear Bottlenecks):该结构通过在网络末端使用线性激活函数,而不是传统的ReLU激活函数,来防止信息丢失,改善了模型的表达能力。

MobileNetV2 以其高效的计算和较小的模型大小,成为了许多移动设备、嵌入式设备和资源受限的环境中的常用模型。

三 方法

3.1 概述

问题一: 什么叫做RGB信息流和深度信息流?

在你的模型中,你分别使用 RGB 信息流和深度信息流进行特征提取。也就是说,你的模型会分别处理两种不同的数据源:一种是图像的 RGB(红绿蓝)颜色信息,另一种是深度图(即每个像素的深度值)。

  • RGB 信息流:这部分处理传统的颜色图像,提取颜色和纹理等特征。
  • 深度信息流:这部分则处理深度图像,深度图通常用于表示物体的距离或深度信息,它可以帮助模型理解物体的空间结构和几何形状。

问题二:什么叫做倒置残差块?

倒置残差块(Inverted Residual Block)是一种在神经网络架构中常见的模块,特别是在轻量级卷积神经网络(如 MobileNetV2)中广泛使用。它的核心思想是通过特定的结构设计来提高计算效率,减少模型的参数量,同时保持较高的表现。

倒置残差块的设计大致可以分为以下几个关键步骤:

  • 深度可分卷积(Depthwise Separable Convolution)

    • 与常规卷积不同,深度可分卷积将卷积操作分为两步:首先对每个输入通道独立进行卷积,然后将结果进行逐点卷积(1x1卷积)。这种方式显著减少了计算量。
  • 倒置结构

    • 在倒置残差块中,首先用一个 扩展卷积(通常是 1x1 卷积)来增加通道数,从而“扩展”特征空间。然后是深度可分卷积,用来对每个通道独立处理特征。最后,再通过一个 1x1 卷积将通道数压缩回原来的规模。
    • 这个扩展和压缩的过程就像“倒置”了传统卷积块的结构。通常,传统卷积是先压缩再扩展,而倒置残差块则是先扩展再压缩。
  • 残差连接

    • 重要的一点是,倒置残差块通过残差连接(skip connection)将输入和输出进行相加,这样可以更好地进行信息流的传递,避免梯度消失或爆炸的情况,帮助更深的网络训练。

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

3.3 隐式深度恢复

问题一:什么叫做SSIM 指标?

这是一个关于隐式深度恢复(IDR)损失函数的公式。其中,表示 IDR 的损失值,它通过 1 减去预测深度图和真实深度图之间的结构相似性(SSIM)来计算。在深度学习处理深度图相关任务时,通常希望预测的深度图与真实深度图尽可能相似。这里采用 1 减去 SSIM 的方式,是因为 SSIM 值越接近 1 表示两张图越相似,那么 1 减去 SSIM 得到的损失值就越小,意味着预测图和真实图越接近,符合损失函数越小模型性能越好的目标设定。

3.4 紧凑金字塔细化

CPR 模块将多层次的深层特征有效地融合起来。“D-Conv” 代表着深度可分离卷积。

四 实验

4.1 实验环境及设置

骨干网络:MobileNetV2 

数据集:NJU2K (1985)、DUTLF-D (1200)、NLPR (1000)、STERE (1000)、  SSD (80)和 SIP(927)

训练数据集:NJU2K (1500)、NLPR (700)

测试数据集:NJU2K(485)、NLPR   (300)  除了DUTLE-D数据集,其他数据集直接用于测试

在 DUTLF-D [51] 数据集上,我们按照 [51],  [80],使用其中的 800 张图片用作训练,400 张图片用做测试。

评估指标:F-measure  Fβ,平均绝对误差(MAE)

4.2 与著名方法的比较

量化比较    定性比较    CPU推断时间

4.3 消融研究

不同的RGB-D融合策略    为 RGB-D 融合节省了时间  深度信息恢复质量   IDR 损失函数的选择

损失函数中的 λ 常数    深度信息和 CMF 模块  CMF 模块中的初始 RGB-D 融合操作   CMF 模块的混合策略  紧凑金字塔细化  混合损失函数

4.4 IDR在其他任务中的应用

五 总结

相关文章:

MobileSal:极其高效的RGB-D显著性物体检测模型

摘要 问题一:什么叫做MobileSal? MobileSal 是指一种用于移动设备上的显著性检测(Saliency Detection)方法,通常是针对在资源受限的环境(如智能手机)上运行的视觉模型。 问题二:什…...

【个人总结】1. 开发基础 工作三年的嵌入式常见知识点梳理及开发技术要点(欢迎指正、补充)

【个人总结】1. 开发基础 工作三年的嵌入式常见知识点梳理及开发技术要点(欢迎指正、补充) 工作快三年以来 分别进行了嵌入式MCU及外设开发、RTOS、传感器、文件系统及USB、Linux、GUI、通讯协议、毫米波雷达、少量的DSP和物联网开发。 特此总结&#x…...

硬核技术组合!用 DeepSeek R1、Ollama、Docker、RAGFlow 打造专属本地知识库

文章目录 一、引言二、安装Ollama部署DeepSeekR1三、安装Docker四、安装使用RAGFlow4.1 系统架构4.2 部署流程4.3 使用RAGFlow4.4 在RAGFlow中新增模型4.5 创建知识库4.6 创建私人助理使用RGA 一、引言 本地部署DeepSeek R1 Ollama RAGFlow构建个人知识库,通过将…...

MySQL官网驱动下载(jar包驱动和ODBC驱动)【详细教程】

1.打开MySQL的官网,选择下载(Download) MySQL[这里是图片001]https://www.mysql.com/cn/ 2.往下划点击MySQL Community(GPL)Downloads 3.要下载MySQL的jar包的选择Connector/J 4.进入后,根据自己的需求选择相应的版本 5.下载完成后,进行解压…...

idea 2019.3常用插件

idea 2019.3常用插件 文档 idea 2019.3常用插件idea 2023.3.7常用插件 idea 2019.3常用插件 插件名称插件版本说明1AceJump3.5.9AceJump允许您快速将插入符号导航到编辑器中可见的任何位置。只需按“ctrl;”,键入一个字符,然后在Ace Jump…...

对CSS了解哪些?

CSS(Cascading Style Sheets,层叠样式表)是用来描述HTML文档外观和布局的语言。以下是对CSS的常见了解范围: 1. CSS 基础 选择器:如通用选择器 (*)、类型选择器、类选择器 (.class)、ID选择器 (#id)、后代选择器、伪类…...

TikTok账户安全指南:如何取消两步验证?

TikTok账户安全指南:如何取消两步验证? 在这个数字化的时代,保护我们的在线账户安全变得尤为重要。TikTok,作为全球流行的社交媒体平台,其账户安全更是不容忽视。两步验证作为一种增强账户安全性的措施,虽…...

从零到一:构建现代 React 应用的完整指南

1. create-react-app (CRA) 简介: create-react-app 是官方推荐的 React 项目脚手架工具,提供了一个开箱即用的开发环境,帮助开发者快速启动 React 应用。它会自动配置 Webpack、Babel、ESLint 等工具,让你专注于开发而不需要手动配置工具链。 特点: 零配置:CRA 自动配…...

【Python爬虫(26)】Python爬虫进阶:数据清洗与预处理的魔法秘籍

【Python爬虫】专栏简介:本专栏是 Python 爬虫领域的集大成之作,共 100 章节。从 Python 基础语法、爬虫入门知识讲起,深入探讨反爬虫、多线程、分布式等进阶技术。以大量实例为支撑,覆盖网页、图片、音频等各类数据爬取&#xff…...

机器学习数学基础:28.卡方检验

卡方检验教程 一、引言 在统计学的广阔领域中,卡方检验(Chi - Square Test)宛如一把锐利的手术刀,能够精准剖析数据背后隐藏的关系与模式。它主要用于两大核心任务:一是深入分析两个及两个以上分类变量之间错综复杂的…...

【工具插件类教学】实现运行时2D物体交互的利器Runtime2DTransformInteractor

目录 ​编辑 1. 插件核心功能 1.1 基础变换操作 1.2 高级特性 2. 安装与配置 2.1 导入插件 2.2 配置控制器参数 2.3 为物体添加交互功能 3. 使用示例 3.1 基础操作演示 3.2 多选与批量操作 3.3 自定义光标与外观 4. 高级配置技巧 4.1 动态调整包围框控件尺寸 4.…...

回调处理器

文章目录 什么是回调处理器回调处理器的工作流程回调处理器的使用自定义链组件中的回调 内置回调处理器自定义回调处理器 在编程领域中,回调是一个非常重要的概念。简而言之,回调是一种特殊的函数或方法,它可以被传递给另一个函数作为参数&am…...

Redis-03高级篇中-多级缓存:

说明: 分布式缓存和多级缓存的视频,与springcloud高级篇redis的一模一样。这里就不在重复学习了,如果后面用到关于redis的配置,直接到springcloud模块安装的redis中学习即可。 多级缓存 0.学习目标 1.什么是多级缓存 传统的缓…...

Spring Boot ShardingJDBC分库分表(草稿)

ShardingJDBC分库分表 1.Maven 引用 <dependency><groupId>org.apache.shardingsphere</groupId><artifactId>sharding-jdbc-spring-boot-starter</artifactId><version>4.1.1</version></dependency><dependency><…...

Jenkins 环境搭建---基于 Docker

前期准备 提前安装jdk、maven、nodeJs&#xff08;如果需要的话&#xff09; 创建 jenkins 环境目录&#xff0c;用来当做挂载卷 /data/jenkins/ 一&#xff1a;拉取 Jenkins 镜像 docker pull jenkins/jenkins:lts 二&#xff1a;设置 Jenkins挂载目录 mkdir -p ~/jen…...

如何在自定义组件中使用v-model实现双向绑定

在 Vue 2 中&#xff0c;v-model 是双向数据绑定的语法糖&#xff0c;它默认将 value 作为 prop 传入组件&#xff0c;并通过监听 input 事件来更新父组件的数据。若要在自定义组件中实现 v-model 的双向绑定&#xff0c;需遵循以下步骤&#xff1a; 1. 基本实现&#xff1a;va…...

Ubuntu 下 nginx-1.24.0 源码分析 - ngx_pool_t 类型

ngx_pool_t 定义在 src/core/ngx_core.h typedef struct ngx_pool_s ngx_pool_t; ngx_pool_s 定义在 src/core/ngx_palloc.h struct ngx_pool_s {ngx_pool_data_t d;size_t max;ngx_pool_t *current;ngx_chain_t *chain;ng…...

如何在 ubuntu 上使用 Clash 与 docker 开启代理拉起

如何在 ubuntu 上使用 Clash https://github.com/doreamon-design/clash/releases上面是clash 的地址 clash_2.0.24_linux_386.tar.gz 下载 386 的 如果你的电脑是inter tar -xzvf clash_2.0.24_linux_386.tar.gz 启动 ./clash 然后会在电脑上生成一个config的文件 /home/xxx/…...

linux tcpdump抓包

参数说明: -i 指定网卡 -w 指定保存文件 -s0 完整抓包 -G 指定间隔时长(秒) -C 指定每个文件大小(M) 用法1: 指定端口输出到指定文件 tcpdump -i em3 -w 182910.pcap 用法2: 指定端口每10分钟输出到不同文件 tcpdump -i em3 -s0 -G 600 -w %Y_%m%d_%H%M_%S.pcap 用法3: 指…...

PLSQL连接Oracle 19c报错ORA-28040

PLSQL连接Oracle 19c报错ORA-28040 原因解析解决办法原因解析 使用PLSQL Developer连接19c数据库报错: ORA-28040: No matching authentication protocol报错信息解析: [oracle@ora19c ~]$ oerr ora 2804028040, 0000, "No matching authentication protocol" /…...

深入剖析AI大模型:大模型时代的 Prompt 工程全解析

今天聊的内容&#xff0c;我认为是AI开发里面非常重要的内容。它在AI开发里无处不在&#xff0c;当你对 AI 助手说 "用李白的风格写一首关于人工智能的诗"&#xff0c;或者让翻译模型 "将这段合同翻译成商务日语" 时&#xff0c;输入的这句话就是 Prompt。…...

CVPR 2025 MIMO: 支持视觉指代和像素grounding 的医学视觉语言模型

CVPR 2025 | MIMO&#xff1a;支持视觉指代和像素对齐的医学视觉语言模型 论文信息 标题&#xff1a;MIMO: A medical vision language model with visual referring multimodal input and pixel grounding multimodal output作者&#xff1a;Yanyuan Chen, Dexuan Xu, Yu Hu…...

《通信之道——从微积分到 5G》读书总结

第1章 绪 论 1.1 这是一本什么样的书 通信技术&#xff0c;说到底就是数学。 那些最基础、最本质的部分。 1.2 什么是通信 通信 发送方 接收方 承载信息的信号 解调出其中承载的信息 信息在发送方那里被加工成信号&#xff08;调制&#xff09; 把信息从信号中抽取出来&am…...

VTK如何让部分单位不可见

最近遇到一个需求&#xff0c;需要让一个vtkDataSet中的部分单元不可见&#xff0c;查阅了一些资料大概有以下几种方式 1.通过颜色映射表来进行&#xff0c;是最正规的做法 vtkNew<vtkLookupTable> lut; //值为0不显示&#xff0c;主要是最后一个参数&#xff0c;透明度…...

【python异步多线程】异步多线程爬虫代码示例

claude生成的python多线程、异步代码示例&#xff0c;模拟20个网页的爬取&#xff0c;每个网页假设要0.5-2秒完成。 代码 Python多线程爬虫教程 核心概念 多线程&#xff1a;允许程序同时执行多个任务&#xff0c;提高IO密集型任务&#xff08;如网络请求&#xff09;的效率…...

数据库分批入库

今天在工作中&#xff0c;遇到一个问题&#xff0c;就是分批查询的时候&#xff0c;由于批次过大导致出现了一些问题&#xff0c;一下是问题描述和解决方案&#xff1a; 示例&#xff1a; // 假设已有数据列表 dataList 和 PreparedStatement pstmt int batchSize 1000; // …...

3403. 从盒子中找出字典序最大的字符串 I

3403. 从盒子中找出字典序最大的字符串 I 题目链接&#xff1a;3403. 从盒子中找出字典序最大的字符串 I 代码如下&#xff1a; class Solution { public:string answerString(string word, int numFriends) {if (numFriends 1) {return word;}string res;for (int i 0;i &…...

【开发技术】.Net使用FFmpeg视频特定帧上绘制内容

目录 一、目的 二、解决方案 2.1 什么是FFmpeg 2.2 FFmpeg主要功能 2.3 使用Xabe.FFmpeg调用FFmpeg功能 2.4 使用 FFmpeg 的 drawbox 滤镜来绘制 ROI 三、总结 一、目的 当前市场上有很多目标检测智能识别的相关算法&#xff0c;当前调用一个医疗行业的AI识别算法后返回…...

关键领域软件测试的突围之路:如何破解安全与效率的平衡难题

在数字化浪潮席卷全球的今天&#xff0c;软件系统已成为国家关键领域的核心战斗力。不同于普通商业软件&#xff0c;这些承载着国家安全使命的软件系统面临着前所未有的质量挑战——如何在确保绝对安全的前提下&#xff0c;实现高效测试与快速迭代&#xff1f;这一命题正考验着…...

Webpack性能优化:构建速度与体积优化策略

一、构建速度优化 1、​​升级Webpack和Node.js​​ ​​优化效果​​&#xff1a;Webpack 4比Webpack 3构建时间降低60%-98%。​​原因​​&#xff1a; V8引擎优化&#xff08;for of替代forEach、Map/Set替代Object&#xff09;。默认使用更快的md4哈希算法。AST直接从Loa…...