【论文解读】MODEST 透明物体 单目深度估计和分割 ICRA 2025

MODEST是一种用于透明物体的单目深度估计和分割的方法,来自ICRA 2025。

它通过单张RGB图像作为输入,能够同时预测透明物体的深度图分割掩码

由深度图生成点云数据,然后采用GraspNet生成抓取位姿,开展透明物体抓取实验。

 论文地址:Monocular Depth Estimation and Segmentation for Transparent Object with Iterative Semantic and Geometric Fusion

代码地址:https://github.com/D-Robotics-AI-Lab/MODEST

一、主体框架分析

MODEST 的主体结构,如下图所示:

  • 1、输入与编码阶段: 

    • 模型接收一张RGB图像作为输入。

    • 使用基于Transformer的编码器(ViT)对输入图像进行处理,提取多层特征,生成视觉tokens。

  • 2、重组阶段: 

    • 将视觉tokens转换为多尺度特征图。形成两个特征金字塔,分别用于深度估计和语义分割任务。

  • 3、迭代融合解码阶段: 

    • 融合模块:通过语义和几何融合模块(SGFM),将深度和分割任务的特征进行整合,充分利用两项任务间的互补信息。

    • 迭代优化:采用迭代策略,通过共享权重解码器和门控单元,逐步细化初始预测结果,从粗到细地优化深度和分割特征。

  • 4、输出阶段: 

    • 经过多次迭代后,通过深度预测头和分割预测头,最终输出深度图和分割掩码。

​​​​​总结:Transformer编码器提供了全局特征表示,重组模块将特征转换为多尺度特征图,迭代融合解码器通过语义和几何信息的融合以及迭代优化,逐步提高预测的准确性和细节。

二、进一步了解MODEST设计思路

问题定义与方法概述 

给定一张RGB图像 (3×H×W),其中 H 是图像的高度,W 是图像的宽度,

目标是获得透明物体的准确分割掩码 (S∈N×H×W )和深度图( D∈H×W),其中 N 是语义类别的数量。

模型学习一个函数 f,将输入映射到两个输出,定义为 (S,D)=f(I)。

整体架构由基于Transformer的编码器、重组模块和迭代融合解码器组成。

Transformer编码器

与传统卷积神经网络不同,modest采用Vision Transformer (ViT)作为骨干网络提取多层特征。

首先将输入RGB图像分割成非重叠的图像块,通过线性投影嵌入成tokens,然后添加位置嵌入并经过多个Transformer块处理。

编码器由12个Transformer块组成,从中选择4层tokens,从浅到深均匀分布,用于后续模块。

重组模块

由于ViT将图像特征编码为具有相同空间分辨率的tokens,需要将其转换回特征图以便后续融合和预测。

按照DPT的方法,通过连接和投影将vision tokens重塑为对应的特征图。

为了充分利用不同层次的特征,将其表示为多尺度形式,其中较深的特征对应较小的分辨率。

重组模块的结果是两个四层金字塔,分别用于深度和分割

迭代融合解码器

在解码器中,通过提出的融合模块将来自两个金字塔的几何特征和语义特征整合在一起,然后通过门控单元从同一共享权重解码器反复更新特征,以获得更细粒度的预测。

  • 融合解码器:由于透明物体的光学特性,单独使用单张RGB图像预测深度和分割特别困难。为了提高两项任务的性能,设计了一种基于注意力的融合模块,充分利用两项任务的互补信息。在每一层对深度和分割特征金字塔进行语义和几何融合,整合多尺度特征。通过通道注意力模块和空间注意力模块依次提取有意义的线索,然后通过对称乘法相互作用,实现特征的融合。

  • 迭代优化:面对透明物体,仅进行一次预测的方法往往会产生不清晰的结果。为此,提出了一种迭代优化策略,以粗到细的方式优化深度和分割特征。以多尺度融合结果作为初始特征,通过共享权重解码器反复更新。通过轻量级门控单元将前一次迭代的结果传递到下一次迭代。基于最后一次迭代的特征,通过两个预测头获得最终的深度图和分割掩码。为了使模型逐渐学习更多关于透明物体的细节,对每次迭代应用从弱到强的多尺度监督。

三、损失函数

模型采用两种损失函数进行端到端训练,分别用于深度和分割任务。

  • 几何损失:深度估计损失包括:预测深度与真实深度的L2损失、梯度的L1损失、表面法线的L1损失。

  • 语义损失:语义分割采用标准的交叉熵损失。

总体损失函数是几何损失和语义损失的加权和,通过调整超参数平衡两项任务的损失。

补充介绍:

梯度的L1损失

  • 梯度的L1损失关注的是深度图的梯度,也就是深度值在图像空间中的变化率。
  • 深度图的梯度可以反映物体的边界和表面的朝向等几何信息。
  • 通过让预测深度图的梯度尽可能接近真实深度图的梯度,可以促使模型学习到更准确的物体形状和边界信息。

表面法线的L1损失

  • 表面法线的L1损失则关注的是深度图所隐含的表面法线信息。
  • 表面法线是指垂直于物体表面的向量,它能够提供关于物体表面朝向的更直接的几何信息。
  • 通过让预测深度图所对应的表面法线尽可能接近真实表面法线,可以进一步约束模型学习到更准确的深度信息。

在深度估计任务中,将深度值的L2损失、梯度的L1损失和表面法线的L1损失结合起来,形成一个综合的损失函数。

这样可以充分利用不同损失项的优势,全面约束模型的学习过程,提升深度估计的准确性。

四、迭代融合解码器

迭代融合解码器,通过语义和几何融合模块以及迭代优化策略,逐步提高预测的准确性和细节。

在透明物体的感知任务中,仅依靠单张RGB图像进行深度估计和分割是非常具有挑战性的,因为透明物体的光学特性使得它们在图像中缺乏明显的纹理特征,并且容易与背景融合。

为了解决这一问题,MODEST提出的迭代融合解码器通过以下两个核心组件来提升模型性能:

  1. 语义和几何融合模块(Semantic and Geometric Fusion Module, SGFM):该模块通过注意力机制整合深度和分割任务的特征,充分利用两项任务之间的互补信息。

  2. 迭代优化策略(Iterative Refinement Strategy):通过多次迭代逐步细化初始预测结果,从粗到细地优化深度和分割特征。

语义和几何融合模块(SGFM)

SGFM的设计目的是通过注意力机制自适应地交互深度和分割任务的特征,从而充分利用两项任务之间的互补信息。

具体来说,该模块在每一层对深度和分割特征金字塔进行语义和几何融合,整合多尺度特征。

  • 通道注意力模块(Channel Attention Module, CAM):通过全局平均池化和最大池化操作提取特征的全局信息,然后通过全连接层学习每个通道的重要性权重。这些权重用于强调对当前任务更有意义的通道特征。

  • 空间注意力模块(Spatial Attention Module, SAM):通过卷积操作和池化操作提取特征的空间信息,生成一个空间注意力图,用于强调特征图中更重要的空间区域。

通过通道和空间注意力模块的结合,SGFM能够自适应地强调深度和分割特征中有意义的部分,从而实现更有效的特征融合。

对于深度特征 Fd​ 和分割特征 Fs​,SGFM通过通道注意力模块和空间注意力模块

分别提取通道空间信息,然后通过对称乘法相互作用实现特征的融合。这一过程可以表示为:

其中,⊗ 表示逐元素相乘,Fd′′​ 是融合后的深度特征。分割特征的处理方式类似。

 

迭代优化策略

为了进一步提高预测的准确性和细节,提出了一种迭代优化策略。

该策略通过多次迭代逐步细化初始预测结果,从粗到细地优化深度和分割特征。

  • 初始特征:以多尺度融合结果作为初始特征。

  • 共享权重解码器:通过同一个解码器反复更新特征,避免了为每次迭代单独设计解码器的复杂性。

  • 门控单元:每次迭代的结果通过轻量级门控单元传递到下一次迭代,门控单元包含卷积操作和ReLU函数,用于控制信息的流动和更新。

  • 多尺度监督:为了使模型逐渐学习更多关于透明物体的细节,对每次迭代应用从弱到强的多尺度监督。监督的强度由迭代次数决定,随着迭代次数的增加,监督的强度逐渐增强。

具体来说,迭代过程可以表示为:

其中,Fn−1​ 和 Fn​ 分别是第 n−1 次和第 n 次迭代的所有多尺度深度和分割特征,Fe​ 是来自重组模块的特征,fd​ 是由共享解码器表示的函数。

五、实验与测试

  • 实现细节:模型在PyTorch中实现,使用RTX 4090 GPU进行训练,批次大小为4,训练20个epoch。优化器采用Adam,学习率为1e-5。输入图像分辨率调整为384×384,未使用随机翻转或旋转等图像增强策略。

  • 数据集:实验在合成数据集Syn-TODD和真实世界数据集ClearPose上进行。Syn-TODD包含超过113k张图像对,支持单目、立体和多视角方法。ClearPose包含超过350k张RGB-深度帧,包含极端场景如严重遮挡和非平面配置。

  • 基线方法:与两种针对透明物体的立体和多视角方法(SimNet和MVTrans)以及两种通用多任务密集预测方法(InvPT和TaskPrompter)进行对比。

  • 评价指标:深度估计采用均方根误差(RMSE)、绝对相对差异(REL)和平均绝对误差(MAE)作为标准指标。语义分割采用交并比(IoU)和平均精度(mAP)作为评价指标。

 

在Syn-TODD数据集上,深度估计和语义分割任务上对比:

在Syn-TODD数据集上对深度和分割进行比较:

在 ClearPose 数据集上进行比较:

下面是 ClearPose 数据集上效果对比

 

论文的可视化效果,确实不错,但在复现时,发现效果差太多了,一言难尽。。。。

使用预训练权重ISGNet_clearpose.p,ClearPose中的数据,

 原图是这样的:

模型预测的深度图:

模型预测的分割效果:

后面有空再看看能不能调调参数,优化一下 

论文复现:复现 MODEST 机器人抓取透明物体 单目 ICRA 2025-CSDN博客

分享完成~

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

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

相关文章

【网络安全工程】任务11:路由器配置与静态路由配置

目录 一、概念 二、路由器配置 三、配置静态路由CSDN 原创主页:不羁https://blog.csdn.net/2303_76492156?typeblog 一、概念 1、路由器的作用:通过路由表进行数据的转发。 2、交换机的作用:通过学习和识别 MAC 地址,依据 M…

深入理解隐式类型转换:从原理到应用

C⽀持内置类型隐式类型转换为类类型对象,需要有相关内置类型为参数的构造函数。 构造函数前⾯加explicit就不再⽀持隐式类型转换。 类类型的对象之间也可以隐式转换,需要相应的构造函数⽀持。 内置类型隐式类型转换为类类型对象 在 C 中,如果…

垃圾收集算法与收集器

在 JVM 中,垃圾收集(Garbage Collection, GC)算法的核心目标是自动回收无用对象的内存,同时尽量减少对应用性能的影响。以下是 JVM 中主要垃圾收集算法的原理、流程及实际应用场景的详细介绍: 一、标记-清除算法&#…

如何为服务设置合理的线程数

1. 首先,要确定最大线程数的限制因素。通常,线程数量受限于内存、CPU和操作系统限制。比如,每个线程都需要一定的栈内存,默认情况下Java线程的栈大小是1MB(64位系统可能更大),所以如果内存不足&…

内容中台:元数据驱动管理新范式

元数据驱动智能管理中枢 现代企业内容管理正经历从碎片化存储向结构化治理的范式转变,元数据驱动机制在此过程中展现出核心枢纽价值。通过构建多维属性标签体系,Baklib等内容中台解决方案实现了对文本、音视频等数字资产的精准定义,其动态分…

在mac中设置环境变量

步骤一:打开终端 步骤二:输入printenv,查看当前已有的环境变量; 步骤三:输入:nano ~/.zshrc 打开环境变量编辑页面; 步骤四:输入新的变量:export DEEPSEEK_API_KEY&qu…

扩散模型的算法原理及其在图像生成领域的优势与创新

目录 一、引言 二、扩散模型的加噪过程 (一)前向扩散过程 (二)噪声调度策略 三、扩散模型的去噪过程 (一)反向扩散过程 (二)去噪网络架构 四、扩散模型的训练和推理机制 &am…

技术领域,有许多优秀的博客和网站

在技术领域,有许多优秀的博客和网站为开发者、工程师和技术爱好者提供了丰富的学习资源和行业动态。以下是一些常用的技术博客和网站,涵盖了编程、软件开发、数据科学、人工智能、网络安全等多个领域: 1. 综合技术博客 1.1 Medium 网址: ht…

mysql经典试题共34题

1、准备数据 -- drop drop table if exists dept; drop table if exists emp; drop table if exists salgrade;-- CREATE CREATE TABLE dept (deptno int NOT NULL COMMENT 部门编号,dname varchar(14) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci DEFAULT NULL COMM…

2025 - GDB 盲调笔记--调试 “无调试符号“ “无调试信息“ 的三方程序

环境: arm64-ubuntu 相关:strace、ltrace、readelf、patchelf、strings、ldd -v 1). 使用 gdb 启动目标程序(不能直接用gdb启动的,可以先单独启动,再 gdb attach 强制调试) DIR_APP/opt/test gdb --args env LANGUAGE LD_LIBRA…

OCPP扩展机制与自定义功能开发:协议灵活性设计与实践 - 慧知开源充电桩平台

OCPP扩展机制与自定义功能开发:协议灵活性设计与实践 引言 OCPP作为开放协议,其核心价值在于平衡标准化与可扩展性。面对不同充电桩厂商的硬件差异、区域能源政策及定制化业务需求,OCPP通过**扩展点(Extension Points&#xff09…

【项目】nnUnetv2复现

作者提出一种nnUNet(no-new-Net)框架,基于原始的UNet(很小的修改),不去采用哪些新的结构,如相残差连接、dense连接、注意力机制等花里胡哨的东西。相反的,把重心放在:预处理(resampling和normalization)、训练(loss,optimizer设置、数据增广)、推理(patch-based…

代码随想录算法训练营第八天|Leetcode 151.翻转字符串里的单词 卡码网:55.右旋转字符串 字符串总结 双指针回顾

151.翻转字符串里的单词 建议:这道题目基本把 刚刚做过的字符串操作 都覆盖了,不过就算知道解题思路,本题代码并不容易写,要多练一练。 题目链接/文章讲解/视频讲解:代码随想录 我们这道题的思路是,先将整…

【计算机网络】计算机网络的性能指标——时延、时延带宽积、往返时延、信道利用率

计算机网络的性能指标 导读 大家好,很高兴又和大家见面啦!!! 在上一篇内容中我们介绍了计算机网络的三个性能指标——速率、带宽和吞吐量。用大白话来说就是:网速、最高网速和实时网速。 相信大家看到这三个词应该就…

Refreshtoken 前端 安全 前端安全方面

网络安全 前端不需要过硬的网络安全方面的知识,但是能够了解大多数的网络安全,并且可以进行简单的防御前两三个是需要的 介绍一下常见的安全问题,解决方式,和小的Demo,希望大家喜欢 网络安全汇总 XSSCSRF点击劫持SQL注入OS注入请求劫持DDOS 在我看来,前端可以了解并且防御前…

vue3框架的响应式依赖追踪机制

当存在一个响应式变量于视图中发生改变时会更新当前组件的所以视图显示,但是没有视图中不写这个响应式变量就就算修改该变量也不会修改视图,这是为什么?我们能否可以理解宽泛的理解为vue组件的更新就是视图的更新,单当视图中不存在…

C#核心(22)string

前言 我们在之前的学习中已经学习过了很多数字类型的数据结构,但一直没有讲解除了char以外的字符串相关的知识点,这也是我们继继承,封装,重载这些知识点之后要补充讲解的核心知识点。 你也发现了,其实在密封函数之后我们就已经开始进入更底层的方面为你讲解知识点了,这…

Spring Boot 本地缓存工具类设计与实现

在 Spring Boot 应用中,缓存是提升性能的重要手段之一。为了更方便地使用缓存,我们可以设计一套通用的本地缓存工具类,封装常见的缓存操作,简化开发流程。本文将详细介绍如何设计并实现一套 Spring Boot 本地缓存工具类&#xff0…

引领变革!北京爱悦诗科技有限公司荣获“GAS消费电子科创奖-产品创新奖”!

在2025年“GAS消费电子科创奖”评选中,北京爱悦诗科技有限公司提交的“aigo爱国者GS06”,在技术创新性、设计创新性、工艺创新性、智能化创新性及原创性五大维度均获得评委的高度认可,荣获“产品创新奖”。 这一奖项不仅是对爱悦诗在消费电子…

考研英语语法全攻略:从基础到长难句剖析​

引言 在考研英语的备考之旅中,语法犹如一座灯塔,为我们在浩瀚的英语知识海洋中指引方向。无论是阅读理解中复杂长难句的解读,还是写作时准确流畅表达的需求,扎实的语法基础都起着至关重要的作用。本文将结合有道考研语法基础入门课的相关内容,为大家全面梳理考研英语语法…