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

news/2024/12/23 1:45:00/

目录

  • 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 整体<a class=网络架构" />

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.ppmy.cn/news/1527220.html

相关文章

基于微信小程序的图书馆预约占座系统

作者&#xff1a;计算机学姐 开发技术&#xff1a;SpringBoot、SSM、Vue、MySQL、JSP、ElementUI、Python、小程序等&#xff0c;“文末源码”。 专栏推荐&#xff1a;前后端分离项目源码、SpringBoot项目源码、SSM项目源码 系统展示 基于微信小程序JavaSpringBootVueMySQL的图…

目标检测基本知识

目标检测 一、目标检测二、常用的评价指标2.1 IOU2.2 NMS(非极大值抑制) 三、R-CNN网络基础3.1 Overfeat模型3.2 RCNN模型3.3FastRCNN模型 四、Faster-RCNN网络4.1 网络工作流程 五、yolo系列5.1 yoloV3 六、SSD算法 一、目标检测 目标检测的任务是找出图像中所有感兴趣的目标…

Java项目实战II基于Java+Spring Boot+MySQL的图书管理系统的设计与实现 (源码+数据库+文档)

目录 一、前言 二、技术介绍 三、系统实现 四、论文参考 五、核心代码 六、源码获取 全栈码农以及毕业设计实战开发&#xff0c;CSDN平台Java领域新星创作者&#xff0c;专注于大学生项目实战开发、讲解和毕业答疑辅导。获取源码联系方式请查看文末 一、前言 在信息爆炸…

C++:初始化列表

构造函数在上一篇帖子我们提到了对成员变量初始化的功能&#xff0c;出了在构造函数的函数体中队成员变量一个一个赋值以外&#xff0c;我们还可以采用初始化列表。 #include<iostream> using namespace std;class AA { private:int a;const int b; public:AA():b(200),…

STL —heap算法源码刨析 make_heap、push_heap、pop_heap、sort_heap操作分析

STL —heap算法源码刨析 heap算法概述push_heap 插入元素pop_heap 取出根节点元素sort_heap 按极值存放元素make_heap 将一段现有数据构造成heap程序测试 heap算法概述 heap的内部是一个完全二叉树&#xff0c;将极值存放在根节点。这个里的极值可分为最大值、最小值。根据极值…

分类预测|2024年最新优化算法鹦鹉优化器PO|基于鹦鹉优化SVM支持向量机数据分类预测Matlab程序PO-SVM

分类预测|2024年最新优化算法鹦鹉优化器PO|基于鹦鹉优化SVM支持向量机数据分类预测Matlab程序PO-SVM 文章目录 一、基本原理**原理****PO-SVM 流程****总结** 二、实验结果三、核心代码四、代码获取五、总结 一、基本原理 PO-SVM 是一种将鹦鹉优化算法&#xff08;Parrot Opti…

【农信网-注册/登录安全分析报告】

前言 由于网站注册入口容易被黑客攻击&#xff0c;存在如下安全问题&#xff1a; 暴力破解密码&#xff0c;造成用户信息泄露短信盗刷的安全问题&#xff0c;影响业务及导致用户投诉带来经济损失&#xff0c;尤其是后付费客户&#xff0c;风险巨大&#xff0c;造成亏损无底洞…

【SSRF漏洞】——gopherus工具伪造

改变的确很难&#xff0c;但结果值得冒险 本文如有错误之处&#xff0c;还请各位师傅指正 目录 一.gopherus概述 二.gopherus安装使用 三.gopherus覆盖的服务 四.使用案例 web359&#xff1a; web360&#xff1a; 一.gopherus概述 Gopherus是一个专为生成Gopher协议Payloa…