论文笔记:DepthLab: From Partial to Complete

是一篇很精炼的论文,不知道咋总结了,就差全文翻译了,不过在这里我主要关注3D部分,因为他的pipeline是基于SD的,框图也比较清晰易懂,非常细节的内容可以回头看论文,哈哈哈,给作者大佬们点赞

1.abstract

由于数据采集不完整和视角改变等多种原因,缺失值仍然是深度数据在广泛应用中的常见挑战。 这项工作通过 DepthLab 弥补了这一差距,DepthLab 是一种由图像扩散先验支持的基础深度修复模型。 我们的模型具有两个显着的优势:(1)它表现出对深度不足区域的弹性,为连续区域和孤立点提供可靠的补全,(2)在填充缺失值时,它忠实地保持了与条件已知深度的尺度一致性。 凭借这些优势,我们的方法在各种下游任务中证明了其价值,包括 3D 场景修复、文本到 3D 场景生成、使用 DUST3R 的稀疏视图重建以及 LiDAR 深度补全,在数值性能和性能方面都超过了当前的解决方案。

2.Introduction

深度修复是重建图像中丢失或遮挡的深度信息的任务 ,在许多领域都至关重要,包括 3D 视觉 [25, 34, 91]、机器人 [1, 32] 和AR [53, 61]。 如图 1 所示,强大的深度修复模型可以实现高质量的 3D 场景完成、编辑、重建和生成。 先前的深度修复研究可分为两种主要方法。 第一种方法 [12,26,48,65,71,89] 侧重于将全局稀疏 LiDAR 深度 [16] 数据完成为密集深度,通常在固定数据集上进行训练和测试。 然而,这些模型缺乏通用性,并且在不同下游任务中的适用性有限。 第二种方法[15,31,72,75,77]采用单目深度估计器来推断单个图像的深度,将修复区域与已知深度对齐。 由于估计深度与现有几何形状之间的不对准,这些方法经常会出现严重的几何不一致,特别是沿边缘。 最近的研究 [41] 将 RGB 图像合并到 UNet 输入中,作为训练深度修复模型的指导,但在复杂场景和修复大的缺失区域时,其性能仍然不理想。

为此,我们提出了 DepthLab,一种 RGB 图像条件深度修复的基础模型,它引入了双分支深度修复扩散框架。 具体来说,该框架通过参考 U-Net 处理单个参考图像,提取 RGB 特征作为条件输入。 同时,已知深度和需要修复的掩模指示区域被输入深度估计 U-Net提取的 RGB 特征逐渐逐层集成到深度估计 U-Net 中,以指导修复过程。在训练过程中,我们对已知深度应用随机尺度归一化,以减轻已知区域中非全局极值引起的正则化溢出。 与 Marigold [31] 类似,我们的模型仅需要合成 RGBD 数据即可在几天的 GPU 内进行训练。 受益于扩散模型强大的先验,DepthLab在不同场景下展现出强大的泛化能力。

如图1所示,得益于精确的深度修复,DepthLab支持多种下游应用。(1) 3D场景修复 [41]:在3D场景中,我们首先从摆好的参考视图中修复图像修复区域的深度,然后将点投影到3D空间中以实现最佳初始化,这显着提高了质量和速度 3D场景修复(2) 文本到场景生成[83]:我们的方法通过消除对齐的需要,极大地改进了从单个图像生成 3D 场景的过程。这一改进有效地缓解了边缘分离的问题 之前由于修复和已知深度之间的几何不一致而产生的问题,从而显着增强了生成场景的连贯性和质量。(3)基于DUST3R的稀疏视图重建 :InstantSplat[14]利用DUST3R[68]中的点云作为无SfM重建和新视图合成的初始化。通过将噪声作为潜在输入添加到DUST3R深度图中,我们的方法对缺乏交叉视点对应的区域的深度进行细化,从而产生更精确、几何一致的深度图。这些精细化的深度贴图进一步增强了InstantSplat的初始点云(4)激光雷达深度完成:传感器深度完成[89]是与深度估计相关的一项重要任务。与在单个数据集上训练和测试的现有方法(如NYUv2[46])不同,我们的方法在零镜头设置下可以获得类似的结果,并且可以通过最小的微调提供更好的结果。为了进行更全面的评估,我们通过对需要修复的区域应用不同类型的随机遮罩来评估其在深度估计基准上的有效性。

这里只关注前三块。

2.1. Depth Completion

深度补全[22,39,42,43,70,74]是计算机视觉中的一项关键任务,特别是随着有源深度传感器的兴起。它的目标是从传感器提供的稀疏GT测量中估计准确的深度图。然而,现有的方法[12,26,48,65,70,89,90]往往是在固定的数据集上训练和评估的,这限制了它们的泛化能力,并且许多方法依赖于繁琐的处理流水线。

2.2. Monocular Depth Estimation

单目深度估计是计算机视觉中的一项关键任务,主要通过判别和生成方法来实现 。 判别方法通常将深度预测为绝对深度 [2, 3, 29, 36, 44, 86] 或相对深度 [13, 51, 52, 76, 77, 80, 81, 87]。 最近,生成模型 [4,23,88],特别是扩散模型,在深度估计中得到了普及。 DDP [27]、DepthGen [57]、Marigold [31] 和 GeoWizard [15] 等方法利用扩散过程来生成高质量的深度图,他们通常以缓慢采样为代价。 基于流匹配的模型 [18] 的出现是为了缓解这些限制,提供更快的采样。 尽管单目深度估计取得了进步,但将估计深度与已知数据对齐通常会导致几何不一致。 我们的工作通过为各种任务引入强大的基础深度修复模型来解决这个问题。

2.3. Downstream Tasks with Known Partial Depth

除了传统的深度完成任务外,许多 3D 视觉任务还涉及部分已知的深度信息:(1)3D 场景修复侧重于填充 3D 空间的缺失部分,例如移除对象并为修复区域生成合理的几何形状和纹理。 早期的作品主要解决几何补全[10,11,19,30,49,62,69],而最近的方法侧重于联合修复纹理和几何[6,24,33,40,45,79]。 可以渲染此类 3D 场景以获得深度,其中未更改的区域用作已知的部分深度信息。 (2) 3D 场景生成涉及利用强大的生成先验和深度估计,根据单个图像或文本提示等输入创建 3D 内容。 最近的方法[8,20,35,47,83,84,92]改变相机视点,对扭曲的图像执行RGB修复,然后估计深度,将其与扭曲的深度对齐。 相反,我们的方法将扭曲深度视为已知,将现有的两步过程表述为以已知比例为条件的深度修复。 (3) DUST3R [68] 提出了一种新颖的 3D 重建管道,该管道在稀疏视图上运行,无需任何相机校准或姿势的先验知识。 最近,一些作品 [38,60,64] 利用 COLMAP [58] 或 DUST3R 中的初始点云进行后续任务,例如 3D 场景重建 [14]、新颖的视图合成 [85] 和 4D 场景生成 [7]。 然而,DUST3R 很难在没有视点重叠的区域中进行准确的重建。 我们的方法利用来自具有像素对应关系的区域的深度数据来增强缺乏匹配的区域的深度。

3. Method

给定原始(不完整或失真)深度图,指示修复目标区域的二值掩码,以及条件RGB图像,我们的目标是使用RGB图像来预测完整的深度图。这就要在保持未掩蔽区域中的深度值的同时准确地估计掩蔽区域中的深度。这一过程自然地将估计深度与现有几何体对齐,消除了已知修复区域和目标修复区域之间的不一致。

为了实现这一目标,我们引入了一种基于双分支扩散的深度修复框架,包括用于 RGB 特征提取的参考 U-Net 和以原始深度和修复掩模作为输入的估计 U-Net。 我们没有使用常用的文本条件,而是利用 CLIP 图像编码器的交叉注意力来捕获丰富的语义信息。 通过参考 U-Net 和估计 U-Net 之间的注意力进行逐层特征融合,实现更细粒度的视觉引导。这种设计使DepthLab能够取得显著的效果,即使是对于大的修复区域或复杂的RGB图像,如图2。

3.1. Network Design

两个分支都使用 Marigold [31] 作为基础模型,并根据 Stable Diffusion V2 [56] 进行了微调。 这种设计无需学习从RGB到深度的域转移过程,提高了训练效率。Marigold 如下, 是一个利用SD pipeline来估计深度的方法:

以上是Marigold的简单介绍

深度编码器和解码器: 我们使用VAE编码器 E 将 RGB 图像及其相应的深度图编码到latent空间中。 编码深度图的方式请查看上面的Marigold ,由于编码器 E 最初是为三通道 RGB 输入设计的,因此单通道深度图在三个通道之间复制以匹配 RGB 格式。 值得注意的是,由于 VAE 编码器适用于非稀疏输入,因此我们在编码之前应用最近邻插值来致密稀疏深度图。 在推理过程中,使用解码器 D 对step t = 0 处的去噪深度latent编码 进行解码,并将三个通道的平均值用作预测深度图。 与 Marigold 估计相对深度并使用最小二乘优化来获得度量深度不同,我们的深度修复旨在根据已知深度区域的值和比例直接估计度量深度图。

估计Unet :用来估计的去噪Unet的输入由三个部分组成:噪声深度latent编码,masked latent和encoded mask,它们串联在一起变成12*h*w维度。latent depth representations是具有由VAE编码产生的4个通道,并且(h,w)是与原始输入维度(H,W)相比向下采样8倍的空间维度。为了更准确地保存掩码信息,而不是像传统的图像修复方法[28,93]中那样简单地对掩码进行下采样,我们使用VAE编码器E对mask进行编码获得,有效地保留了稀疏和细粒度的信息。

在训练过程中,通过将初始深度图d编码到latent空间,并在步骤t添加噪声来获得噪声潜在深度,通过对GT深度图进行随机mask,然后在修复区域中进行最近邻内插值并通过VAE进行编码来生成masked depth latent。由于SD2的VAE[56]擅长重建密集信息,这种方法更好地保留了稀疏点和复杂边缘边界上的已知深度值。

参考Unet : InFusion [41] 将单个参考图像输入编码器,随后连接了image latent with noisy depth latent、masked depth latent、downsampled mask,总共有 13 个通道。但是这种方法可能会丢失区域深度信息或难以生成清晰的深度边缘,特别是在修复大面积或使用复杂的参考图像时。 最近的研究 [21, 73] 表明额外的 U-Net 可以从参考图像中提取更细粒度的特征。 我们采用了类似的架构。 我们首先分别从Reference UNet和Estimation Denoising U-Net获得两个特征图,。 然后我们沿着宽度维度连接这些特征图,得到。然后,我们对连接的特征图应用自注意力操作,并提取结果特征图的前半部分作为输出。 这样能够在训练期间利用基础模型每一层的细粒度语义特征。 此外,由于参考 U-Net 和估计去噪 U-Net 共享相同的架构和初始权重------均在 Marigold [31] 上进行预训练------估计去噪 U-Net 可以在同一网络中选择性地从参考 U-Net 中学习相关特征。 特征空间。

3.2 Training Protocol

主要关注一下mask是怎么加的

为了最大限度地覆盖大量下游任务,采用了各种掩蔽策略。最初,我们从笔划、圆圈、正方形或这些形状的随机组合中随机选择来创建蒙版。然后,为了增强深度完成任务:从传感器采集的稀疏深度数据中恢复完整的深度图,我们使用随机点mask,其中只有0.1%-2%的点被设置为已知。最后,对于改进的对象级修复,我们利用接地SAM[54]来标注训练数据,然后根据它们的置信度分数来过滤掩码。总体而言,多种掩蔽策略的结合应用进一步增强了该方法的稳健性。

4.Experiments

主要关注在下游任务中的效果

4.3 Applications

1.3D高斯修复

首先,我们使用Gaussian Grouping[78]来分割和去除部分高斯。然后将SDXL修复模型[50]应用于在参考视图中渲染的图像。 修复后的 RGB 图像随后用作完成该参考视图的深度信息的指导。 然后将这些点反投影到三维空间中以实现最佳初始化。 如图4所示,由于修复和原始高斯之间的几何一致性以及像素和修复高斯之间的对齐,对修复图像进行简单编辑就可以在修复区域中进行纹理修改和对象插入。

这里是Gaussian Grouping的介绍,主要是利用SAM来做mask,然后反投影到对应部分的高斯球,再经过训练这样的一个pipeline

2.文本到 3D 场景生成

最近的方法 [8,47,92] 首先将单视图深度估计投影到 3D 场景上,以从给定的视点创建初始点云。 然后旋转相机以计算扭曲图像和扭曲深度。 在对扭曲的 RGB 图像进行修复之后,应用单眼深度估计,并将估计的深度与之前扭曲的深度对齐。 然后,对齐的深度数据不会投影回原始点云。 随着视角的改变,这个过程会重复进行。 然而,如图5所示,以LucidDreamer[8]为例,这种方法存在以下问题:在不同尺度的深度对齐过程中出现几何不一致,对 Inpainted 区域的深度精度产生不利影响。相比之下,我们的模型可以直接将 inpainted 图像和 warped depth 作为输入,无需对齐即可生成几何一致的深度图。

下面这是LucidDreamer,挺好玩的一个工作

3.使用 DUST3R 重建

DUST3R [68] 从稀疏视图引入了新的 3D 重建流程,无需有关相机校准或姿势的先验信息。 该方法可以提供密集的像素到像素和像素到点的对应关系,使其适用于各种 3D 视觉任务,包括深度预测。 然而,我们观察到 DUST3R 主要在具有像素对应的点上提供高质量的深度预测,同时尽力为不同视图之间没有对应的点生成清晰的深度边缘。

为了克服这个限制,我们针对对应关系较弱或不存在引入了一种改进区域深度估计的框架 。 我们的方法开始通过为没有任何源图像匹配的像素生成掩模。 然后通过我们的方法对这些不匹配区域进行细化 。 我们采用VAE将 DUST3R 的初始深度估计编码到latent空间中,添加噪声以产生noisy latents。 匹配点处的深度被编码为masked depth latents。 把这些输入到我们的模型中,以生成具有增强的准确性和空间一致性的精细深度图。 我们在InstanSplat [14] 上评估我们的方法,InstanSplat 是一种稀疏视图、SfM-free的GS方法,该方法使用 DUST3R 的预测点云进行新颖的视图合成。 通过将增强的深度图投影到 3D 空间中,我们用这个框架refined的数据(想知道这里是怎么根据补充后的深度图得到 DUST3R **稠密点云的?需要看看release的代码)**替换 DUST3R 的原始点云作为 InstanSplat 的输入。 如图 6 所示,我们的方法有效地锐化了 DUST3R 的初始深度,显着提高了GS渲染质量。 我们还在补充材料中提供定量比较。

5.Conclusion

在这项工作中,我们引入了 DepthLab,这是一个强大的深度修复框架,旨在通过利用 RGB 图像和已知深度作为条件输入来处理复杂的场景。 我们的方法保持几何一致性,确保估计的深度与现有结构无缝对齐。 通过利用预训练扩散模型中的先验知识,DepthLab 展示了跨各种深度修复任务的显着泛化能力。 其在多个基准测试和应用程序中的卓越性能证明了这一点,包括 3D 场景生成、高斯修复、LiDAR 深度补全和稀疏视图重建。 我们的实验展示了我们方法的稳健性,强调了其提高深度精度和下游 3D 场景质量的能力。 我们设想 DepthLab 成为更广泛任务的基础模型。

相关推荐
爱补鱼的猫猫2 小时前
9、Graph RAG论文笔记(查询为中心的摘要 (QFS)任务)
论文阅读
Maker~2 小时前
30、论文阅读:基于小波的傅里叶信息交互与频率扩散调整的水下图像恢复
论文阅读·计算机视觉
灵魂画师向阳3 小时前
【CSDN首发】Stable Diffusion从零到精通学习路线分享
人工智能·学习·计算机视觉·ai作画·stable diffusion·midjourney
jndingxin4 小时前
OpenCV相机标定与3D重建(43)用于计算矫正和重映射的变换函数initUndistortRectifyMap()的使用
opencv·3d
埃菲尔铁塔_CV算法4 小时前
BOOST 在计算机视觉方面的应用及具体代码分析(二)
c++·人工智能·算法·机器学习·计算机视觉
刘大猫265 小时前
《docker基础篇:4.Docker镜像》包括是什么、分层的镜像、UnionFS(联合文件系统)、docker镜像的加载原理、为什么docker镜像要采用这种
人工智能·算法·计算机视觉
湫ccc5 小时前
《Opencv》基础操作详解(5)
人工智能·opencv·计算机视觉
好评笔记5 小时前
多模态论文笔记——U-ViT(国内版DiT)
论文阅读·人工智能·深度学习·计算机视觉·aigc·transformer·u-vit
知来者逆5 小时前
安卓NDK视觉开发——手机拍照文档边缘检测实现方法与库封装
深度学习·计算机视觉·智能手机·扫描全能王·边缘检测
是十一月末8 小时前
Opencv查找、绘制轮廓、圆形矩形轮廓和近似轮廓
人工智能·python·opencv·计算机视觉