用于稀疏自适应深度细化的掩码空间传播网络 CVPR2024

news2024/9/21 21:41:55

目录

  • Masked Spatial Propagation Network for Sparsity-Adaptive Depth Refinement (CVPR 2024)
  • 用于稀疏自适应深度细化的掩码空间传播网络
  • 1 介绍
  • 2 算法流程
    • 2.1 问题建模
    • 2.2 Guidance Network
    • 2.3 MSPN 模块
  • 3 实验结果
    • 3.1 稀疏度自适应深度细化对比试验
    • 3.2 深度补全对比试验

Masked Spatial Propagation Network for Sparsity-Adaptive Depth Refinement (CVPR 2024)

用于稀疏自适应深度细化的掩码空间传播网络

论文地址:CVPR官网 arxiv

项目链接:github地址

摘要:深度补全的主要功能是弥补硬件传感器提供的稀疏深度测量点数量不足且不可预测的问题。然而,现有的深度补全研究假设稀疏性(即点数或 LiDAR 线数)在训练和测试过程中是固定的。因此,当稀疏深度的数量发生显著变化时,补全性能会大幅下降。为了解决这一问题,我们提出了稀疏自适应深度细化(SDR)框架,该框架使用稀疏深度点来优化单目深度估计。针对SDR,我们提出了掩码空间传播网络(MSPN),它能够通过逐步传播稀疏深度信息至整个深度图,有效地处理不同数量的稀疏深度点。实验结果表明,MSPN在SDR和传统深度补全场景中都达到了当前最先进的性能表现。

1 介绍

图像引导的深度补全是一项通过利用稀疏深度测量和RGB图像来估计密集深度图的任务;它通过估算深度来填充未测量的区域。由于许多深度传感器(如LiDAR和飞行时间相机(ToF))只能提供稀疏的深度图,这项任务变得尤为重要。随着深度信息在自动驾驶和各种3D应用中的广泛应用,深度补全已经成为一个重要的研究课题。

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

近年来,随着深度神经网络的成功,基于学习的方法通过利用大量训练数据显著提升了性能。这些方法尝试融合多模态特征,如表面法线或提供重复的图像引导。尤其是,基于亲和性的空间传播方法被广泛研究。

深度补全的主要功能是弥补现有深度传感器的局限性,但传统的深度补全研究通常假设稀疏性在训练和测试中是固定的。然而,实际上稀疏性会显著变化,因为在透明区域、镜子以及黑色物体上很难测量到深度。此外,传感器缺陷也会影响测量的数量。传统的空间传播方法在深度细化时通常对所有像素进行同时处理,而不考虑稀疏深度测量点的位置。因此,当只有少量稀疏深度点可用时错误的深度信息可能会在细化过程中传播。

在本文中,我们提出了一个稀疏自适应深度细化(SDR)框架,该框架根据深度测量的稀疏性自适应地优化单目密集深度估计。此外,我们提出了掩码空间传播网络(MSPN),用于将稀疏深度点的信息传播到未测量的区域。首先,我们使用现成的单目深度估计器从输入的RGB图像中估计一个初始深度图。接下来,一个引导网络使用输入图像、稀疏深度和初始深度图生成引导特征。最后,利用这些引导特征,所提出的 MSPN 通过迭代细化生成一个优化的深度图,如图1所示。

所提出的SDR框架能够在不同数量的稀疏深度点下进行训练,使其更加适用于实际应用。此外,所提出的MSPN通过根据稀疏测量生成自适应传播掩码,在 SDR 场景中比传统方法表现显著更好。此外,MSPNNYUv2KITTI 数据集上的传统深度补全任务中也提供了最先进的性能表现。

本文的贡献如下:

  • 我们开发了 SDR 框架,该框架利用可变数量的稀疏深度测量点来优化单目深度估计。
  • 针对 SDR,我们提出了 MSPN,以逐步传播稀疏深度信息,从而处理不同数量的稀疏深度点。
  • MSPNSDR 和传统深度补全场景中均提供了最先进的性能表现。

2 算法流程

图2 整体网络架构

2.1 问题建模

如上图2所示本文提出的模型输入为 图像 I ∈ R 3 × H × W \mathbf{I} \in \mathbb{R}^{3 \times H \times W} IR3×H×W 和稀疏深度图 S ∈ R H × W \mathbf{S} \in \mathbb{R}^{H \times W} SRH×W ,最终输出为密集深度图 D ∈ R H × W \mathbf{D} \in \mathbb{R}^{H \times W} DRH×W

该模型总共分为三部分包括:

  • 用于预测初始深度 D 0 ∈ R H × W \mathbf{D^0}\in \mathbb{R}^{H \times W} D0RH×W 的单眼深度估计模型 MDE
  • 用于融合不同模态的特征并生成指导特征 G ∈ R C × H × W \mathbf{G}\in \mathbb{R}^{C \times H \times W} GRC×H×W的指导网络 Guidance network
  • 用于迭代传播稀疏深度信息MSPN 模块

首先,RGB图像 I \mathbf{I} I 被输入到 MDE 中已得到初步的深度图 D 0 \mathbf{D^0} D0 ;接着,RGB图像 I \mathbf{I} I、稀疏深度图 S \mathbf{S} S 和初步深度图 D 0 \mathbf{D^0} D0 被输入到 Guidance network 用于生成指导特征 G \mathbf{G} G;最后,深度图 D n \mathbf{D^n} Dn 、 掩码 M n \mathbf{M^n} Mn 和指导特征 G \mathbf{G} G 被输入到 MSPN 模块多次迭代逐步输出更精细的深度图。其中,$\mathbf{M^0}=\Xi\left ( \mathbf{S}\right ) $ , Ξ \Xi Ξ表示指示函数,对于每个稀疏深度点输出 1,否则输出 0。(MDE模型采用了论文提供的预训练模型)

2.2 Guidance Network

图3 Guidance Network结构

Guidance Network 中,输入信号 I \mathbf{I} I S \mathbf{S} S D 0 \mathbf{D^0} D0 分别生成 481616 个通道的特征,这些特征通过拼接和卷积进行混合。混合后的特征被送入一个编码器-解码器网络。作为编码器,我们采用 PVT-Base,它处理一个 64 × H × W的张量,输出大小为 512 × H/32 × W/32 的编码特征。解码器由五个模块组成,每个模块执行 3 × 3 转置卷积、层归一化、ReLU 激活函数和 NAF 模块操作。每个解码器模块中的通道数保持不变。

提取高频特征

如红框中所示,通过从3×3卷积结果中减去1×1卷积结果来提取高频特征,类似于论文中的方法。

2.3 MSPN 模块

MSPN 的输入为 D n \mathbf{D^n} Dn M n \mathbf{M^n} Mn 输出 D n + 1 \mathbf{D^{n+1}} Dn+1 M n + 1 \mathbf{M^{n+1}} Mn+1 ,不断迭代并细化深度图。首先,使用 S \mathbf{S} S 替换 D n \mathbf{D^n} Dn 中的深度值得到 D ~ n \mathbf{\tilde{D} ^n} D~n ,公式如下:
D ~ n = ( 1 − M 0 ) ⊗ D n + M 0 ⊗ S \mathbf{\tilde{D} ^n}=(1-\mathbf{M ^0})\otimes \mathbf{D ^n}+\mathbf{M ^0}\otimes \mathbf{S} D~n=(1M0)Dn+M0S
其中,$\otimes $ 代表元素乘法。接着,确定细化过程中的参考像素细化的强度。传统的空间传播方法集中于选择参考像素。然而,可靠的像素远少于不可靠的像素,因此当仅提供少量稀疏深度时,这些方法的效果较差。为此,我们设计了基于掩码注意力动态滤波器,该滤波器计算每个像素与其周围像素之间的注意力得分。

首先,分别生成 查询特征 Q ∈ R L × H × W \mathbf{Q}\in \mathbb{R}^{L \times H \times W} QRL×H×W 和键特征 K ∈ R L × H × W \mathbf{K}\in \mathbb{R}^{L \times H \times W} KRL×H×W
Q n = f Q ( [ D ~ n , G ] ) , K n = f K ( [ D ~ n , G ] ) ⊗ M n \mathbf{Q^n} = f_\mathbf{Q}([\mathbf{ \tilde{D}^n}, \mathbf{G}]), \mathbf{K^n} = f_\mathbf{K}([\mathbf{\tilde{D}^n}, \mathbf{G}]) \otimes \mathbf{M^n} Qn=fQ([D~n,G]),Kn=fK([D~n,G])Mn
其中, f Q f_\mathbf{Q} fQ f K f_\mathbf{K} fK 都由一个 1×1 的卷积层和 LN层组成; [ ⋅ ] [\cdot ] [] 代表通道维度拼接。由于 D ~ n \mathbf{\tilde{D} ^n} D~n 尚未细化,所以, K n \mathbf{{K} ^n} Kn是可靠和不可靠像素特征的混合。因此,在计算 K n \mathbf{{K} ^n} Kn 时,我们会对不可靠的像素特征进行掩码处理。也就是公式中最后需要把 f K f_\mathbf{K} fK 的结果与 M n \mathbf{M^n} Mn 进行元素乘法。

图4 pixel-to-window attention

接着,接下来,我们计算 Q n \mathbf{Q^n} Qn 和 $\mathbf{K^n} $ 之间的注意力得分。设 q ∈ R L \mathbf{q} \in \mathbb{R}^{L} qRL 为 $\mathbf{Q^n} $ 中位于位置 ( i , j ) (i,j) (i,j) 的查询像素特征。同时,设 W k ∈ R L × p 2 \mathbf{W_k} \in \mathbb{R}^{L\times p^2} WkRL×p2 表示 $\mathbf{K^n} $ 中以 ( i , j ) (i,j) (i,j) 为中心的 p × p p \times p p×p 窗口内的键特征。请注意,我们计算的是像素到窗口的注意力,以使用其邻近像素来细化像素 ( i , j ) (i,j) (i,j)。更具体地说,像素到窗口的注意力 a ∈ R p 2 \mathbf{a} \in \mathbb{R}^{p^2} aRp2 计算如下:
a = softmax ( q T W K + b ) \mathbf{a} = \text{softmax}(\mathbf{q^T} \mathbf{W_K} + \mathbf{b}) a=softmax(qTWK+b)
其中, b ∈ R p 2 \mathbf{b} \in \mathbb{R}^{p^2} bRp2 代表 w × w w\times w w×w 窗口中的相对位置偏置,通过对 $\mathbf{Q^n} $ 的所有像素执行注意力操作,获得注意力特征 A n ∈ R p 2 × H × W \mathbf{A^n}\in \mathbb{R}^{p^2 \times H \times W} AnRp2×H×W

然后,使用 A n \mathbf{A^n} An D ~ n \mathbf{\tilde{D}^n} D~n,我们生成了一个精细化的深度图 R n ∈ R × H × W \mathbf{R^n}\in \mathbb{R}^{\times H \times W} RnR×H×W。令 KaTeX parse error: Got function '\tilde' with no arguments as subscript at position 11: \mathbf{W_\̲t̲i̲l̲d̲e̲{D}} W M \mathbf{W_M} WM 分别表示 D ~ n \mathbf{\tilde{D}^n} D~n M n \mathbf{M^n} Mn 中以 ( i , j ) (i,j) (i,j) 为中心的 p × p p \times p p×p 窗口。精细化后的深度像素 r \mathbf{r} r R n \mathbf{R^n} Rn 中的计算方式为:
r = ∑ t = 1 p 2 a t ⋅ W D ~ , t \mathbf{r} = \sum_{t=1}^{p^2} \mathbf{a}_t \cdot \mathbf{W}_{\mathbf{\tilde{D}},t} r=t=1p2atWD~,t
t t t 代表窗口中的第 t t t 个元素。图4展示了 pixel-to-window 注意力机制的处理过程。

最后,深度图 D n + 1 \mathbf{D^{n+1}} Dn+1 和掩码 D n + 1 \mathbf{D^{n+1}} Dn+1 分别由下面的两个公式生成:
D n + 1 = ( 1 − M n ) ⊗ D ~ n + M n ⊗ R n \mathbf{D}^{n+1} = (1 - \mathbf{M}^n) \otimes \mathbf{\tilde{D}}^n +\mathbf{M}_n \otimes \mathbf{R}_n Dn+1=(1Mn)D~n+MnRn

m n + 1 = ∑ t = 1 p 2 a t ⋅ W M , t \mathbf{m}_{n+1} = \sum_{t=1}^{p^2} \mathbf{a}_t \cdot \mathbf{}W_{\mathbf{M},t} mn+1=t=1p2atWM,t

3 实验结果

3.1 稀疏度自适应深度细化对比试验

在图 5 和图 6 中,实线表示单个模型在不同稀疏深度数量下的评估结果;相反,每个符号表示为固定数量的稀疏深度分别训练并评估的模型。我们可以从图 5 和图 6 中得出以下结论:

  • 通过比较图 5 中的实线,可以看出,所提出的 MSPNNYUv2 数据集上的所有稀疏深度数量下都优于其他方法。
  • 具体而言,一些方法专门针对较多的稀疏深度,随着稀疏深度的减少,它们的性能显著下降。相反,一些方法专门针对较少的稀疏深度,而当稀疏深度增加时,它们的性能仅有少量改善。
  • 另一方面,MSPN 展现出与那些为特定稀疏深度训练的符号标记方法类似的性能。这表明 MSPN 在不同的稀疏深度数量下都能产生稳健的结果。
  • 在图 6 中,MSPNKITTI 数据集上,当稀疏深度小于 64 行时,显著优于其他方法。
  • 对于 KITTI 数据集,那些专门针对某个特定激光雷达线数的方法在较少线数下表现不佳。相反,MSPN 利用单目深度估计结果,无论线数多少,都能有效进行深度补全。
  • 总体而言,MSPN 比传统算法在不同稀疏深度数量下生成更可靠的深度图,这表明 MSPN 更适合真实世界的应用。

图5 不同方法在NYUv2数据集上的性能对比图6 不同方法在KITII数据集上的性能对比

3.2 深度补全对比试验

虽然 MSPN 的主要关注点是 SDR(稀疏深度自适应精化),但我们也评估了 MSPN 在常规深度补全场景下的性能。对于这种常规深度补全,我们在引导网络中添加了另一个解码器头来预测初始深度图,并且不像之前的工作那样使用单目深度估计器。关于常规深度补全的详细网络结构见补充文档。

我们使用固定数量的稀疏深度来训练和测试我们的模型。对于 NYUv2 数据集,我们从真实深度中随机采样 500 个稀疏深度点,并训练网络 72 个周期。对于 KITTI 数据集,我们分别为 16 和 64 条激光雷达线条训练专门的模型,同样训练 72 个周期。为了在 KITTI 上进行公平比较,我们使用提供的 10k 子集进行训练。

下面两个表分别比较了在 NYUv2KITTI 数据集上的性能。可以看到,所提出的 MSPN 在常规深度补全任务上也提供了最先进的性能。图 7 通过定性分析将结果与进行了比较,可以看出 MSPN 更有效地填充了具有挑战性的区域,并提供了更精细的细节。

图7 在NYUv2数据集上的深度补全结果

图8 在KITTI数据集上深度补全结果

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

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

相关文章

COMDEL电源CX2500S RF13.56MHZ RF GENERATOR手侧

COMDEL电源CX2500S RF13.56MHZ RF GENERATOR手侧

如何让虚拟机的服务被主机访问

当我们在虚拟机上写了一个服务器,在宿主机访问时,出现无法访问的情况。这可能是虚拟机网络的设置问题。 查看虚拟机防火墙是否关闭 在终端输入: systemctl status firewalld 如果是active就说明防火墙是开启的,需要关闭。 输入…

高级I/O知识分享【epoll || Reactor ET,LT模式】

博客主页:花果山~程序猿-CSDN博客 文章分栏:Linux_花果山~程序猿的博客-CSDN博客 关注我一起学习,一起进步,一起探索编程的无限可能吧!让我们一起努力,一起成长! 目录 一,接口 epo…

SpringBoot 消息队列RabbitMQ 消息可靠性 数据持久化 与 LazyQueue

介绍 在默认情况下,RabbitMQ会将接收到的信息保存在内存中以降低消息收发的延迟 一旦MO宕机,内存中的消息会丢失内存空间有限,当消费者故障或处理过慢时,会导致消息积压,引发MQ阻塞 在消息队列运行的过程中&#xf…

LeetCode 815.公交路线(BFS广搜 + 建图)(中秋快乐啊)

给你一个数组 routes ,表示一系列公交线路,其中每个 routes[i] 表示一条公交线路,第 i 辆公交车将会在上面循环行驶。 例如,路线 routes[0] [1, 5, 7] 表示第 0 辆公交车会一直按序列 1 -> 5 -> 7 -> 1 -> 5 -> …

物理感知扩散的 3D 分子生成模型 - PIDiff 评测

PIDiff 是一个针对蛋白质口袋特异性的、物理感知扩散的 3D 分子生成模型,通过考虑蛋白质-配体结合的物理化学原理来生成分子,在原理上,生成的分子可以实现蛋白-小分子的自由能最小。 一、背景介绍 PIDiff 来源于延世大学计算机科学系的 Sang…

vue2基础系列教程之v-model及面试高频问题

v-model是表单组件里面的核心知识点&#xff0c;这个指令给我们写表单业务带来了很大的方便。 元素标签上的 v-model 指令用于双向绑定数据,它是一个语法糖&#xff0c;可以用于代替 v-bind:value 和 input 例如&#xff1a;<input v-model"message" placeholder…

VTD激光雷达(6)——06_OptiX_Variables

文章目录 前言一、总结 前言 感谢VTD官方学习资料 一、 1、 总结 学海无涯回头是岸

curl格式化json之jq工具?

jq 是一个轻量级的命令行工具&#xff0c;用于解析、操作和格式化 JSON 数据。它类似于 sed 或 awk&#xff0c;但专门用于处理 JSON 格式。使用 jq&#xff0c;你可以从复杂的 JSON 数据中提取所需的信息&#xff0c;格式化输出&#xff0c;进行数据筛选&#xff0c;甚至修改 …

正点原子阿尔法ARM开发板-IMX6ULL(六)——通过官方SDK完成实验

文章目录 一、引言1.1 cc.h1.2 main.c1.2 fsl_common.h、MCIMX6Y2.h、fsl_iomuxc.h1.3 对于宏定义能多个参数 其他 一、引言 在开发过程中&#xff0c;如果一个人来写寄存器、汇编等东西&#xff0c;会变得特别繁琐&#xff0c;好在官方NXP官方给出了SDK包&#xff0c; 1.1 c…

牛客周赛 Round 60(下)

构造序列 题目描述 登录—专业IT笔试面试备考平台_牛客网 运行代码 #include <iostream> #include<stdio.h> #include<math.h> using namespace std; int main() {int n, m;cin >> n >> m;int minVal min(n, m);int maxVal max(n, m);cout …

如何解决“json schema validation error ”错误? -- HarmonyOS自学6

一. 问题描述 DevEco Studio工程关闭后&#xff0c;再重新打开时&#xff0c;出现了如下错误提示&#xff1a; json schema validation error 原因&#xff1a; index.visual或其他visual文件中的left等字段的值为负数时&#xff0c;不能以”-0.x“开头&#xff0c;否则就会…

了解华为云容器引擎(Cloud Container Engine)

1.什么是云容器引擎&#xff1f; 云容器引擎&#xff08;Cloud Container Engine&#xff0c;简称CCE&#xff09;提供高度可扩展的、高性能的企业级Kubernetes集群。借助云容器引擎&#xff0c;您可以在华为云上轻松部署、管理和扩展容器化应用程序。云容器引擎是一个企业级的…

【Android】使用Room数据库解决本地持久化

【Android】使用Room数据库解决本地持久化 Room概述 Room 是一个持久性库&#xff0c;属于 Android Jetpack 的一部分。 Room 是 SQLite 数据库之上的一个抽象层。Room 并不直接使用 SQLite&#xff0c;而是负责简化数据库设置和配置以及与数据库交互方面的琐碎工作。此外&a…

ElasticSearch-2-核心语法集群高可用实战-Week2

ES批量操作 1.批量获取文档数据 这里多个文档是指&#xff0c;批量操作多个文档&#xff0c;搜索查询文档将在之后的章节讲解 批量获取文档数据是通过_mget的API来实现的 (1)在URL中不指定index和type 请求方式&#xff1a;GET 请求地址&#xff1a;_mget 功能说明 &#…

数据结构 - 树与二叉树

一.普通有序树的定义 1.树的概念及特性 二.二叉树的定义 1.二叉树的性质 2.二叉树的分类 ①.满二叉树 每一层的结点数都为最大值 ②.完全二叉树 完全二叉树是由满二叉树&#xff0c;从下向上&#xff0c;从右向左依次擦除若干个结点 3.二叉树的结构 三.链式二叉树的创建 1.链式…

24-9-17-读书笔记(十八)-《契诃夫文集》(二)上([俄] 契诃夫 [译] 汝龙 )

文章目录 《契诃夫文集》&#xff08;二&#xff09;上&#xff08;[俄] 契诃夫 [译] 汝龙 &#xff09;目录阅读笔记记录总结 《契诃夫文集》&#xff08;二&#xff09;上&#xff08;[俄] 契诃夫 [译] 汝龙 &#xff09; 中秋夜&#xff0c;最近有些忙&#xff0c;看书的进度…

【PHP代码审计】PHP常见配置解析

&#x1f31d;博客主页&#xff1a;菜鸟小羊 &#x1f496;专栏&#xff1a;Linux探索之旅 | 网络安全的神秘世界 | 专接本 | 每天学会一个渗透测试工具 php.ini配置文件 php函数禁用 disable_functions该选项可以设置哪些php函数是禁止使用的&#xff0c;重启生效&#xff0…

哪款宠物空气净化器能清除浮毛,希喂、米家、美的测评分享

要说市面上评价最为两极分化的家电产品&#xff0c;宠物空气净化器可以说是当仁不让了&#xff0c;几乎一半人说真香&#xff0c;另一半人却在吐槽鸡肋。 作为用过宠物空气净化器实测过市面上多个品牌多款宠物空气净化器产品的专业养宠测评博主&#xff0c;对宠物空气净化器这…

代码随想录:动态规划4-5

42.接雨水 题目 给定 n 个非负整数表示每个宽度为 1 的柱子的高度图&#xff0c;计算按此排列的柱子&#xff0c;下雨之后能接多少雨水。 示例 1&#xff1a; 输入&#xff1a;height [0,1,0,2,1,0,1,3,2,1,2,1] 输出&#xff1a;6 解释&#xff1a;上面是由数组 [0,1,0,2,…