[论文阅读]Deep Depth Completion of a Single RGB-D Image

摘要

我们的工作目标是完成RGB-D图像的深度通道。商用级深度摄像头通常无法捕捉光滑、明亮、透明和远处表面的深度信息。为了解决这个问题,我们训练了一个深度网络,该网络以RGB图像作为输入,并预测稠密的表面法线和遮挡边界。然后,这些预测与RGB-D摄像头提供的原始深度观测数据结合起来,解决了包括原始观测中缺失像素在内的所有像素的深度问题。与其他方法(例如直接修复深度)相比,这种方法是通过在一个新的深度补全基准数据集上进行广泛实验后选择的,其中在训练数据中通过对多视角RGB-D扫描的表面重建进行渲染来填充深度缺失的区域。针对不同的网络输入、深度表示、损失函数、优化方法、修复方法和深度估计网络的实验表明,我们提出的方法比这些替代方案提供了更好的深度补全效果。

1.简介

深度感知技术已经广泛应用于各种不同的领域,如自动驾驶、增强现实和场景重建。尽管深度感知技术取得了显著进步,但像微软Kinect、英特尔RealSense和谷歌Tango这样的商用级RGB-D摄像头在面对过于光滑、明亮、薄、过近或过远的表面时,仍然会产生缺失数据的深度图像。当房间较大、表面光滑且光线充足时,这些问题尤为明显,例如在博物馆、医院、教室、商店等场景中。即便在家中,深度图像中往往也会缺失超过50%的像素(如图1所示)。
在这里插入图片描述
我们的工作目标是补全使用商用摄像头捕获的RGB-D图像的深度通道(即填补所有的空洞)。尽管在过去的二十年中,深度修补技术受到了广泛关注【64】,但这一问题通常通过手工调校的方法来解决,这些方法通过外推边界表面【46】或使用马尔可夫图像合成【13】来填补空洞。近年来,已经提出了使用深度网络从颜色信息中全新估计深度的新方法。然而,这些方法并未用于深度补全,而深度补全具有其独特的挑战:
训练数据: 大规模的RGB-D图像与“完整”深度图像(例如,提供了空洞区域的真实深度信息)的配对训练集并不容易获得。因此,大多数深度估计方法只针对商用RGB-D摄像头捕获的像素进行训练和评估【59】。从这些数据中,它们最多只能学习再现已观测到的深度,而无法补全那些未观测到的深度,因为这些未观测到的深度具有显著不同的特性。为了解决这个问题,我们引入了一个新的数据集,该数据集包含105,432张RGB-D图像,这些图像与在72个真实世界环境中通过大规模表面重建计算出的完整深度图像对齐。
深度表示: 解决我们问题的显而易见的方法是使用新的数据集作为监督,训练一个全卷积网络直接从RGB-D图像回归深度。然而,这种方法效果并不理想,特别是对于像图1底部一行那样的大面积缺失区域。即使是对人类来说,从单目彩色图像中估计绝对深度也是困难的【48】。因此,我们训练网络仅预测深度的局部差分属性(如表面法线和遮挡边界),这些属性相对更容易估计【31】。然后,我们通过全局优化来求解绝对深度。
**深度网络设计:**此前没有研究如何最好地设计和训练端到端的深度网络来从RGB-D输入中补全深度图像。乍一看,似乎可以简单地扩展以前用于从彩色到深度估计的网络(例如,通过为它们提供一个额外的深度通道作为输入)。然而,我们发现很难训练这些网络使得其可以补全深度输入中大面积的空洞——它们通常只学会复制和插值。此外,网络很难学习如何适应颜色和深度的错位。我们的解决方案是仅提供彩色图像作为网络的输入(如图2所示),并通过监督训练网络预测局部表面法线和遮挡边界。之后,我们将这些预测与输入的深度数据结合,通过全局优化求解完整的深度。通过这种方式,网络仅从彩色图像中预测局部特征,这是它擅长的任务。而场景的大尺度结构则通过结合输入深度的正则化全局优化来重建。
在这里插入图片描述
总体而言,我们的主要算法洞见是将RGB-D深度补全分解为两个阶段是最优的:1)仅从颜色图像预测表面法线和遮挡边界;2)利用这些预测结果,并结合观测到的深度作为软约束,优化全局表面结构。通过实验,我们发现这种方法比其他替代方法具有显著更小的相对误差。除此之外,该方法还有一个额外的优势,即训练后的网络独立于观测到的深度数据,因此无需针对新的深度传感器重新训练。

2.相关工作

关于深度估计、修补和处理,已经有大量的相关研究工作。
深度估计从单目彩色图像进行深度估计是计算机视觉中的一个长期存在的问题。经典方法包括从阴影中恢复形状【73】和从散焦中恢复形状【61】。其他早期方法基于手工调校的模型和/或对表面方向的假设【27, 55, 56】。较新的方法将深度估计视为机器学习问题,最近则主要使用深度网络【16, 68】。例如,Eigen等人首次使用多尺度卷积网络从彩色图像回归到深度【16, 15】。Laina等人基于ResNet提出了一个全卷积网络架构【33】。Liu等人提出了一种深度卷积神经场模型,将深度网络与马尔可夫随机场相结合【36】。Roy等人结合了浅层卷积网络和回归森林,减少了对大规模训练集的需求【54】。所有这些方法仅被训练用于再现商用RGB-D摄像头获取的原始深度。相比之下,我们专注于深度补全,明确目标是为深度传感器没有返回信号的像素进行新预测。由于这些像素通常在原始深度图中缺失,单靠原始深度监督训练的方法对它们的预测效果不佳。
深度修复许多方法已经被提出用于填补RGB-D图像深度通道中的空洞,包括使用平滑先验的方法【26】、快速行进方法【21, 38】、Navier-Stokes方程【4】、各向异性扩散【37】、背景表面外推【46, 49, 62】、颜色-深度边缘对齐【8, 72, 76】、低秩矩阵补全【70】、张量投票【32】、Mumford-Shah泛函优化【40】、与内在图像其他属性的联合优化【2】以及基于补丁的图像合成方法【9, 13, 20】。最近,也有一些方法使用自动编码器【65】和生成对抗网络(GAN)架构【53】进行彩色图像的修复。然而,之前的研究并未探讨如何将这些方法用于深度图像的修补。由于深度图像中缺乏显著特征且缺少大规模的训练数据集,这一问题更为复杂,而本文对此问题进行了探讨。
深度超分已经提出了多种方法,利用高分辨率的彩色图像来提高深度图像的空间分辨率。这些方法采用了各种途径,包括马尔可夫随机场【44, 12, 42, 51, 58】、从阴影中恢复形状【23, 71】、图像分割【41】以及字典方法【18, 30, 45, 63】。尽管其中一些技术可以用于深度补全,但超分辨率的挑战有所不同——超分辨率主要关注的是提高空间分辨率,假设低分辨率的测量数据是完整且有规律采样的。相比之下,我们的重点是填补空洞,这些空洞可能非常大且复杂,因此需要合成大规模的内容。
稀疏样本的深度重建其他研究探讨了利用稀疏深度测量数据增强的彩色图像进行深度重建。Hawe等人研究了使用小波基进行重建【25】。Liu等人结合了小波和轮廓字典【39】。Ma等人表明,提供大约100个均匀分布的深度样本可以使深度估计在NYUv2数据集上比仅依赖彩色图像的方法提高两倍【43】,但结果的质量仍然相对较低。这些方法与我们的工作有一些相似之处,然而,它们的动机是为了在特定环境中降低传感成本(例如,在机器人上节省电力),而不是为了补全常见的商用深度摄像头通常缺失的数据。

3.方法

在本文中,我们探讨了如何利用深度网络来补全单个RGB-D图像的深度通道。我们的研究重点关注以下问题:“如何获取用于深度补全的训练数据?”,“我们应使用什么样的深度表示?”,以及“如何结合来自彩色图像和深度信息的线索?”

3.1数据集

我们首先解决的问题是创建一个包含RGB-D图像与完整深度图像配对的数据集。
一个简单的方法是使用低成本的RGB-D摄像头捕捉图像,并将其与同时使用高成本深度传感器拍摄的图像进行对齐。这种方法既昂贵又耗时——现有最大的此类公共数据集仅涵盖少数室内场景(例如【52, 57, 70】)。
在这里插入图片描述
为了创建我们的数据集,我们利用现有的通过多视角RGB-D扫描重建的大型环境表面网格。此类数据集有多个,包括Matterport3D【6】、ScanNet【10】、SceneNN【28】和SUN3D【22, 67】等。我们使用了Matterport3D数据集。对于每个场景,我们通过使用屏蔽泊松表面重建【29】,从全局表面重建中提取了每个房间约1-6百万个三角形的三角网格M。接着,我们对场景中的RGB-D图像进行采样,并从图像视角的相机位置渲染重建的网格M,以获得完整的深度图像D*。这一过程为我们提供了一组RGB-D → D*图像对,而无需采集新的数据。
图3展示了我们数据集中一些深度图像补全的示例。虽然补全结果并不总是完美,但它们具备了一些有利于训练深度网络的特性【47】。首先,补全后的图像通常有较少的空洞。这是因为它不仅受限于一个相机视角的观测(如图3中的红点),而是基于所有相机视角的观测联合构成的表面重建(图3中的黄点)。因此,虽然某些表面在一个视角下可能距离过远,但在另一个视角下仍在范围内,从而被包含在完整的深度图像中。同样,对于以刮擦角度观看时无法获取深度数据的光滑表面,通常可以用其他相机从更直接角度观测到的数据进行填补(注意渲染深度图中光亮地板的补全)。平均而言,我们的重建过程填补了原始深度图像中64.6%缺失的像素。其次,补全的深度图像通常能复制原始图像中近距离表面的分辨率,但对远距离表面提供了更好的分辨率。由于表面重建是在与深度摄像头分辨率相当的3D网格大小上构建的,完成的深度图像通常不会损失分辨率。然而,当将3D表面投影到视平面上时,同样的3D分辨率在远离相机的表面上实际上提供了更高的像素分辨率。因此,在渲染高分辨率网格时,完成的深度图像可以利用亚像素抗锯齿,从而获得比原始图像更精细的分辨率(请注意图3中家具的细节)。
最后,完成的深度图像通常比原始图像的噪声要少得多。由于表面重建算法通过过滤和平均来自多个相机视角的噪声深度样本,它本质上对表面进行了去噪。这对于远距离观测(例如超过4米)尤为重要,因为原始深度测量在这些情况下往往是量化的且带有噪声。
总之,我们的数据集包含117,516张具有渲染完成度的RGB-D图像,我们将其分成一个包含105,432张图像的训练集和一个包含12,084张图像的测试集。

3.2深度表示

第二个有趣的问题是:“什么几何表示形式最适合用于深度补全?”
一个直接的方法是设计一个网络,从原始深度和颜色中回归出完整的深度。然而,从单目图像预测绝对深度是困难的,因为这可能需要了解物体的尺寸、场景类别等信息。因此,我们的做法是训练网络来预测每个像素可见表面的局部属性,然后通过这些预测反求深度。
以往的研究提出了多种间接的深度表示方法。例如,Chen等人研究了相对深度【7】。Chakrabarti等人提出了深度导数【5】。Li等人结合使用了深度导数和深度【35】。我们也尝试了基于预测导数的方法。然而,在我们的实验中发现这些方法并不是表现最好的(参见第4节)。
相反,我们将重点放在预测表面法线和遮挡边界上。由于法线是表面的微分属性,它们仅依赖于像素的局部邻域。此外,它们与彩色图像中直接可观察到的局部光照变化有很强的关联。因此,之前关于从彩色图像进行稠密表面法线预测的研究成果非常优秀【1, 15, 34, 66, 75】。同样,遮挡边界在像素中表现为局部模式(例如边缘),因此通常可以通过深度网络稳健地检测到。
一个关键问题是,如何利用预测的表面法线和遮挡边界来补全深度图像。几位研究人员曾使用预测的法线来细化已观测到的3D表面细节【24, 50, 69】,而Galliani等人【19】使用表面法线在多视角重建桌面物体时恢复缺失的几何信息。然而,至今还没有人使用表面法线来从单目RGB-D图像中进行深度估计或补全,尤其是在复杂环境中。
在这里插入图片描述
不幸的是,理论上仅通过表面法线和遮挡边界无法求解深度。在某些极端情况下,仅依赖法线无法推断图像不同部分之间的深度关系。例如,在图4(a)中,仅根据给定的表面法线无法推断通过窗户看到的墙壁的深度。在这种情况下,从相机视角来看,墙壁的可见区域完全被遮挡边界(轮廓线)包围,使得其相对于图像其他部分的深度无法确定。
然而,在实际应用中,对于真实世界的场景,图像中的某个区域同时被遮挡边界包围并且完全没有任何原始深度观测的情况非常罕见(如图4(b)所示)。因此,我们发现使用预测的表面法线可以实用地补全深度图像中的大空洞,法线的一致性通过预测的遮挡边界进行加权,正则化约束则由观测到的原始深度提供。在实验中,我们发现,通过预测的表面法线和遮挡边界来求解深度,比直接预测绝对深度或通过深度导数求解的深度补全效果更好(详见第4节)。

3.3网络结构和训练

第三个有趣的问题是:“训练一个深度网络来预测用于深度补全的表面法线和遮挡边界的最佳方法是什么?”
在我们的研究中,我们选择了Zhang等人提出的深度网络架构,因为它在法线估计和边界检测方面都表现出了竞争力【75】。该模型是一个全卷积神经网络,基于VGG-16的骨干结构,具有对称的编码器和解码器。它还配备了快捷连接和共享池化掩码,用于相应的最大池化和反池化层,这对学习局部图像特征至关重要。我们使用从重建网格计算出的“真实”表面法线和轮廓边界来训练这个网络。
在选择了这个网络后,关于如何为深度补全训练它,仍然存在几个有趣的问题。接下来的段落将探讨这些问题,重点关注法线估计,但这些问题和结论同样适用于遮挡边界检测。
**使用什么损失来训练网络?**与以往关于表面法线估计的工作不同,我们的主要目标是训练一个网络,仅预测原始观测深度图像中空洞区域的像素的法线。由于这些像素的颜色外观特征可能与其他像素不同(如表面光滑、距离相机较远等),因此有人可能认为网络应该只在这些像素上进行监督回归法线。然而,空洞中的像素比非空洞的像素少,因此这类训练数据是有限的。是否仅在空洞像素上进行训练比在所有像素上训练更好,并不显而易见。因此,我们测试并比较了这两种方法。
我们将观测像素定义为同时具有来自原始传感器和渲染网格的深度数据的像素,而未观测像素是指只有来自渲染网格而没有来自原始传感器的深度数据的像素。对于任何给定的像素集(观测像素、未观测像素或两者),我们通过在反向传播过程中屏蔽掉其他像素的梯度,只针对这些像素训练模型并计算损失。
在补充材料中展示了不同训练模型的定性和定量比较结果。结果表明,使用所有像素进行训练的模型优于仅使用观测像素或仅使用未观测像素进行训练的模型。此外,使用渲染法线进行训练的模型比使用原始法线进行训练的模型表现更好。
**使用哪些图像通道作为网络的输入?**人们可能认为,训练网络从原始RGB-D图像中预测表面法线的最佳方法是提供所有四个通道(RGBD),并训练网络回归三个法线通道。然而,令人惊讶的是,我们发现这样训练的网络在预测没有观测深度的像素的法线时表现不佳。虽然它们在预测具有观测深度的像素的法线方面表现出色,但对于那些位于空洞中的像素——即深度补全所需的像素,效果却很差。这一结果无论损失函数中包含哪些像素,均保持一致。
我们推测,使用原始深度训练的网络主要学会了直接从深度数据计算法线,而未能学会在缺少深度信息时从颜色预测法线的能力——这是深度补全的关键技能。总体上,我们发现网络从颜色预测法线的效果优于从深度预测,即使给网络增加一个额外的二进制掩码通道来指示哪些像素有观测深度【74】。例如,在图5中,我们可以看到,仅凭颜色预测的大空洞区域的法线比仅靠深度的预测效果更好,而且与同时使用颜色和深度的预测结果一样好。表1中的定量实验也支持这一发现。
在这里插入图片描述
这个结果非常有趣,因为它表明我们可以训练网络仅从颜色预测表面法线,并在从法线回推深度时仅将观测到的深度用作正则化(见下一节)。这种将“无深度的预测”和“结合深度的优化”分开的策略具有两方面的吸引力。首先,预测网络无需针对不同的深度传感器重新训练。其次,优化过程可以推广到使用各种深度观测作为正则化,包括稀疏的深度样本【43】。这一点在第4节中进行了实验研究。
在这里插入图片描述

3.4 优化

在预测出表面法线图像 N 和遮挡边界图像 B 之后,我们通过解一个方程系统来补全深度图像 D。目标函数定义为带有四项的加权平方误差之和:
E = λ D E D + λ S E S + λ N E N B E = \lambda_D E_D + \lambda_S E_S + \lambda_N E_N B E=λDED+λSES+λNENB
E D = ∑ p ∈ T obs ∣ ∣ D ( p ) − D 0 ( p ) ∣ ∣ 2 E_D = \sum_{p \in T_{\text{obs}}} ||D(p) - D_0(p)||^2 ED=pTobs∣∣D(p)D0(p)2
E N = ∑ p , q ∈ N ∣ ∣ ⟨ v ( p , q ) , N ( p ) ⟩ ∣ ∣ 2 E_N = \sum_{p,q \in N} || \langle v(p, q), N(p) \rangle ||^2 EN=p,qN∣∣v(p,q),N(p)⟩2
E S = ∑ p , q ∈ N ∣ ∣ D ( p ) − D ( q ) ∣ ∣ 2 E_S = \sum_{p,q \in N} ||D(p) - D(q)||^2 ES=p,qN∣∣D(p)D(q)2
E D E_D ED 测量估计深度 D ( p ) D(p) D(p) 与像素 p p p 处观测到的原始深度 D 0 ( p ) D_0(p) D0(p) 之间的距离, E N E_N EN 测量估计深度与预测的表面法线 N ( p ) N(p) N(p) 之间的一致性, E S E_S ES 鼓励相邻像素具有相同的深度。 B ∈ [ 0 , 1 ] B \in [0, 1] B[0,1] 根据像素处的遮挡边界概率 B ( p ) B(p) B(p) 对法线项进行降权处理。
在其最简单的形式中,该目标函数是非线性的,因为在 E N E_N EN 中与表面法线进行点积时,需要对切向量 v ( p , q ) v(p, q) v(p,q) 进行归一化。然而,我们可以通过放弃向量归一化来将这一误差项线性化,如文献【50】所建议的那样。在其他环境下,这种近似可能会增加对缩放误差的敏感性,因为较小的深度会导致切向量较短,并可能使 E N E_N EN 项变小。然而,在深度补全场景中,数据项 E D E_D ED 强制全局解与观测到的原始深度保持一致,从而维持正确的比例,因此这并不是一个显著的问题。
由于方程组的矩阵形式是稀疏且对称正定的,我们可以通过稀疏 Cholesky 分解高效地求解它(使用 CSparse 中的 cs_cholsol 实现【11】)。最终的解是近似目标函数的全局最小值。
这种线性化方法对于所提方法的成功至关重要。表面法线和遮挡边界(以及可选的深度导数)只捕捉到表面几何的局部属性,因此它们相对容易估计。只有通过全局优化,才能将这些局部信息结合起来,为所有像素补全深度,并得到一个一致的解。

4.实验结果

在这里插入图片描述
我们进行了系列实验来测试所提出的方法。除非另有说明,网络先在SUNCG数据集【60, 75】上进行预训练,然后在我们新数据集的训练集上进行微调,使用颜色作为输入,并对所有渲染像素计算损失。优化过程中使用的参数为 λ D = 1 0 3 \lambda_D = 10^3 λD=103 λ N = 1 \lambda_N = 1 λN=1 λ S = 1 0 − 3 \lambda_S = 10^{-3} λS=103。评估在新数据集的测试集上进行。

我们发现,从颜色预测表面法线和遮挡边界在320x256分辨率下,使用NVIDIA TITAN X GPU大约需要0.3秒。求解深度的线性方程在Intel Xeon 2.4GHz CPU上大约需要1.5秒。

4.1消融研究

第一组实验探讨了不同的测试输入、训练数据、损失函数、深度表示以及优化方法如何影响深度预测结果(更多结果可以在补充材料中找到)。
由于我们的工作重点是预测深度传感器未观测到的深度,因此我们的评估仅测量测试图像中未被测试深度图像观测到但在渲染图像中存在的像素的深度预测误差。这与之前大多数关于深度估计的工作相反,之前的研究通常只对深度摄像头观测到的像素测量误差。
在评估深度预测时,我们报告相对于渲染深度的中位误差(Rel)、以米为单位的均方根误差(RMSE),以及预测深度落入某个区间内的像素百分比( δ = ∣ predicted − true ∣ / true \delta = | \text{predicted} - \text{true} | / \text{true} δ=predictedtrue∣/true),其中 δ \delta δ 分别为 1.05、1.10、1.25、1.25² 或 1.25³。这些指标是深度预测工作中的标准指标,只是我们添加了 1.05 和 1.10 这两个阈值,以便进行更细粒度的评估。
在评估表面法线预测时,我们报告平均误差和中位误差(以度为单位),以及预测法线误差小于 11.25 度、22.5 度和 30 度的像素百分比。
**在网络中应该输入哪些数据?**表1显示了一个实验结果,测试了哪种输入类型对我们的法线预测网络效果最好:仅颜色、仅原始深度,还是两者结合。从直觉上看,输入两者应该是最好的。然而,我们发现当仅提供颜色作为输入时,网络预测表面法线的效果更好(颜色的中位误差为17.28°,而两者结合时为23.07°),这也导致深度估计稍微更好(相对误差Rel = 0.089,vs. 0.090)。这种差异无论我们是否使用所有像素的深度、仅观测像素的深度,还是仅未观测像素的深度进行训练,都会持续存在(更多结果在补充材料中)。我们推测其原因是,当原始深度可用时,网络会很快学会从观测深度插值,从而阻碍了它在大空洞中学习合成新的深度。
这一结果的影响非常显著,它为我们设计的两阶段系统提供了动机,即将法线/边界预测仅限于颜色输入,并与原始深度的优化分开处理。
**哪种深度表示是最佳的?**表2显示了一个实验结果,测试哪种深度表示最适合我们的网络进行预测。我们分别训练网络来预测绝对深度 (D)、表面法线 (N) 和8个方向的深度导数 (DD),然后使用不同的组合通过优化方程1来补全深度。结果表明,通过预测法线 (N) 来求解深度提供了最佳效果(法线的相对误差Rel = 0.089,而绝对深度D为0.167,深度导数DD为0.100,法线加导数N+DD为0.092)。我们认为这是因为法线仅表示表面的方向,而预测方向相对容易【31】。此外,与深度或深度导数不同,法线不随深度变化,因此在不同视角下更具一致性。
在这里插入图片描述
遮挡边界的预测有帮助吗?
表2的最后六行显示了一个实验结果,测试在预测的遮挡边界附近降低表面法线的影响是否有助于优化器求解出更好的深度。第2-4行没有边界预测(第一列为“No”),而第5-7行有边界预测(第一列为“Yes”)。结果表明,边界预测使结果改善了约19%(相对误差Rel = 0.089 vs. 0.110)。这表明网络在平均情况下能够正确预测法线噪声较大或不准确的像素,正如图6中的定性结果所示。
在这里插入图片描述
需要多少观测深度?
在这里插入图片描述
图7展示了一个实验结果,用于测试我们的方法在深度补全中对输入深度数量的依赖性。为研究这个问题,我们通过随机遮盖不同数量的像素来降低输入深度图像的质量,然后将这些降质的图像交给优化器,通过预测的法线和边界来求解完整的深度。两个图分别显示了原始深度图像中观测到的像素(左图)和未观测到的像素(右图)的深度精度曲线。

从结果可以看出,即使只给出原始深度图像中很少一部分像素,优化器仍能几乎同样精确地求解出深度。正如预期的那样,原始深度图像未观测到的像素(它们更难预测)在精度上表现较差。然而,即使只提供原始像素中的一小部分(曲线最右端的点代表2000个像素,仅占所有像素的2.5%),深度估计的效果依然相当不错。这一结果表明,我们的方法对稀疏测量的深度传感器设计可能具有实际意义。在这种情况下,由于我们的方法仅依赖于颜色信息,因此深度网络不需要为每个新的密集传感器重新训练,这也是我们两阶段方法的优势之一。
在这里插入图片描述

4.2与基线方法的对比

第二组实验研究了所提出的方法与基线深度插入和深度估计方法的比较。
与深度修补方法的比较表3显示了一个研究结果,比较了我们提出的方法与典型的非数据驱动的深度修补替代方法的表现。此研究的重点是评估这些广为人知的方法在我们新数据集上的表现,以建立一个基线,说明这一问题的难度。我们考虑的方法包括:a) 联合双边滤波【59】(Bilateral),b) 快速双边求解器【3】(Fast),c) 全局边缘感知能量优化【17】(TGV)。表3的结果表明,我们的方法显著优于这些方法(相对误差Rel=0.089 vs. 其他方法为0.103-0.151)。通过训练深度网络预测表面法线,我们的方法学会了利用数据驱动的先验来补全深度,这些先验比简单的几何启发式方法更强大。与测试中表现最好的手工调优方法(Bilateral)的差异可以在图8中看到。
在这里插入图片描述
与深度估算方法的比较表4展示了一个研究结果,将我们提出的方法与之前仅从颜色估计深度的方法进行比较。我们对比的方法包括Chakrabarti等人的方法【5】,他们的方式与我们最相似(使用预测的深度导数),以及Laina等人的方法【33】,他们最近在NYUv2数据集的实验中报告了最新的性能【59】。我们对【5】的方法在我们的数据集上进行了微调,但由于【33】的方法没有提供训练代码,我们使用了预训练的NYUv2模型进行比较。
在这里插入图片描述
当然,这些深度估计方法解决的问题与我们的方法不同(它们没有输入深度信息),并且不同的方法对深度值的尺度敏感性不同。因此,我们尽最大努力将它们与我们的方法调整到相同的设置,以便进行公平比较。为此,我们运行所有仅使用彩色图像作为输入的方法,然后均匀缩放它们的深度图像输出,使其在一个随机选择的像素上与真实深度完全对齐(该像素对所有方法都是相同的)。对于我们的方法,由于方程1在没有任何深度数据的情况下约束不足,我们在优化过程中任意将中间像素的深度设为3米,随后应用与其他方法相同的缩放。这种方法的比较重点在于计算深度图像的“形状”预测,而不是其全局尺度。
比较结果如图9和表4所示。从图9中的定性结果来看,我们的方法在重现场景结构和细节方面表现最佳——即使仅给定一个像素的原始深度数据。根据表4中的定量结果显示,无论评估像素是否具有观测深度(Y)或没有观测深度(N),我们的方法比其他方法优23%-40%。这些结果表明,预测表面法线也是深度估计的一个很有前景的方向。
在这里插入图片描述

5.结论

本文描述了一种用于补全使用商用RGB-D摄像头获取的RGB-D图像深度通道的深度学习框架,提供了两大研究贡献。首先,提出了一个两阶段的深度补全过程,先从彩色图像预测表面法线和遮挡边界,然后通过这些预测结果求解完整的深度。其次,框架通过对从大规模表面重建渲染的数据进行监督训练,学习如何补全深度图像。在一个新的基准测试中,实验结果表明,所提出的方法在深度修补和估计方面优于之前的基线方法。

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

只需15秒!这也太短了吧,单反自动拍VR就看这篇

在如今这个追求高效的时代,拍摄VR全景不再是复杂的技术挑战,而是轻松可实现的日常操作。720云相机电动云台的问世彻底颠覆了传统VR拍摄的方式,只需15秒,一键拍摄,极简流程即可呈现出令人惊叹的VR全景效果。 集成多功能…

机器视觉系统硬件组成之工业相机篇

工业相机是一种非常重要的机器视觉器件,它能够将被采集的图像信息通过电路转换成电信号,再通过模数转换器(ADC)将其转化为数字信号,最后以标准的视频信号输出。工业相机在机器视觉领域得到了广泛应用,包括质…

新时代AI桌宠:XGO Rider让你的办公室瞬间高大上

​ XGO Rider Luwu 智能打造了桌面双轮足式机器人 XGO Rider,这款全球首创的轮腿式桌面AI机器人,正在悄然改变我们的办公环境。它不仅是一个高科技玩具,更是一个能大幅提升工作效率和办公室科技感的智能助手。 XGO Rider 新时代“桌宠” micr…

基于zbar的二维码识别和机器人视觉巡线,附源码,使用ROS 2与OpenCV 结合的方式,让机器人识别二维码并执行设定动作

目录 前言 二维码扫描库——Zbar Zbar库的功能主要包含以下四个部分: 代码实现 运行结果 拉到文末有惊喜 前言 微信登录要扫二维码,手机支付要扫二维码,共享单车也要扫二维码。除了这些在日常生活中已经非常普及的扫码场景之外&#xf…

开源OpenStack

1.查询HCS基于OpenStack哪个版本开发 2.九大核心组件 OpenStack可以对接FC也可以对接KVM主机;(OpenStack 对接华为FusionCompute,一个集群对应 openstack 一台计算主机)-引申出nova compute 2.1nova nova两个核心组件nova contro…

图的最小生成树算法--普里姆(Prim)算法和克鲁斯克尔(Kruskal)算法

一、图的最小生成树 最小生成树(Minimum spanning tree,MST)是最小权重生成树(Minimum weight spanning tree)的简称,是一个连通加权无向图中一棵权值最小的生成树。 在一给定的无向图 G ( V , E ) G …

win11环境下成功安装mamba

文章目录 1. Mamba环境搭建2. triton安装3. causal_conv1d安装3.1 下载causal_conv1d工程文件源码3.2 修改setup.py文件3.3 安装 causal_conv1d 4. Mamba安装4.1 下载mamba工程文件源码4.2 修改setup.py文件4.3 安装 mamba 5. 查看所有成功安装的库6. 测试mamba安装是否成功6.1…

软件质量管理体系,软件评审资料,资质认证资料,安全建设,数据安全及项目管理全套资料(原件参考)

软件项目质量管理体系是指一套系统化的管理方法、流程、工具和文档,旨在确保软件项目从需求分析、设计、开发、测试到部署和维护的整个生命周期中,都能达到预定的质量标准和客户期望。该体系通过明确的角色和责任、标准化的工作流程、有效的质量控制和持…

MySQL(python开发)——(3)表数据的基本操作,增删改查

MySQL(python开发)——(1)数据库概述及其MySQL介绍 MySQL(python开发)——(2)数据库基本操作及数据类型 MySQL—— 表数据基本操作 一、表中插入(insert)数据——增 insert into 表名 values (值1&#…

springboot2.0x 和springboot 1.0 整合redis 使用自定义CacheManager 问题

问题描述: 在我们深入理解springboot2.0x的缓存机制的时候,发现在springboot1.0 和springboot2.0 中默认的序列化都是使用的jdk的 Serializer 实现这个接口,jdk自带的序列化方法,由此我们需要自己去创建自定义的RedisCacheManager…

解决springboot redisTemplate lua execute hash脚本 field有转义符的问题

问题:使用execute,是 result redisTemplate.execute(redisScript,Collections.singletonList(hashKey), // KEYSargs.toArray()); // ARGV会存在field有转义符 发现这个方法是直接调用下图的方法 使用的序列化的方式是 template.getValueSerializer(…

详解23种设计模式——第一部分:概述+创建型模式

目录 1. 概述 2. 创建型模式 2.1 简单(静态)工厂模式 2.1.1 介绍 2.1.2 实现 2.2 工厂模式 2.3 抽象工厂模式 2.4 单例模式 2.4.1 饿汉模式 2.4.2 懒汉模式 2.4.3 线程安全的懒汉式 2.4.4 DCL单例 - 高性能的懒汉式 2.5 建造者模式 2.6 原…

【进阶OpenCV】 (19)-- Dlib库 --人脸表情识别

文章目录 表情识别一、原理二、代码实现1. 摄像头前预处理2. 计算嘴唇变化3. 绘制嘴唇轮廓4. 显示结果5. 完整代码展示 总结 表情识别 目标:识别人物的喜悦状态。 一、原理 我们在对一张人脸图片进行关键点定位后,得到每个关键点的位置: 比…

go压缩的使用

基础:使用go创建一个zip func base(path string) {// 创建 zip 文件zipFile, err : os.Create("test.zip")if err ! nil {panic(err)}defer zipFile.Close()// 创建一个新的 *Writer 对象zipWriter : zip.NewWriter(zipFile)defer zipWriter.Close()// 创…

【Linux】————动静态库

作者主页: 作者主页 本篇博客专栏:Linux 创作时间 :2024年10月22日 一.库的定义 什么是库,在windows平台和linux平台下都大量存在着库。 本质上来说库是一种可执行代码的二进制形式,可以被操作系统载…

渗透实战 JS文件怎么利用

1.前言 关于JS在渗透测试中的关键作用,想必不用过多强调,在互联网上也有许多从JS中找到敏感信息从而拿下关键系统的案例。大部分师傅喜欢使用findsomething之类的浏览器插件,也有使用诸如Unexpected.information以及APIFinder之类的Burp插件…

ES6 Promise的用法

学习链接:ES6 Promise的用法,ES7 async/await异步处理同步化,异步处理进化史_哔哩哔哩_bilibili 一、同步与异步区别 1.JavaScript代码是单线程的程序,即通过一行一行代码顺序执行,即同步概念。 2.若处理一些简短、…

算法魅力-双指针的实战

目录 1.双指针的介绍 1. 左右指针(对撞指针) 2. 快慢指针 2.题目练习讲解 2.1 移动零 算法思路 代码展示 画图效果效果 2.2 复写零 算法思路 代码展示 2.3 快乐数 算法思路 代码展示 2.4 盛最多水的容器 算法思路 代码展示 结束语 1.双指针的…

宝塔PHP8.1安装fileinfo拓展失败解决办法

在宝塔面板中安装PHP8.1后,安装fileinfo扩展一直安装不上,查看日志有报错,于是手动来安装也报错。 宝塔报错: 手动命令行编译安装同,也有报错 cd /www/server/php/81/src/ext/fileinfo/ make distclean ./configure …

【用74ls194实现1000-0100-0010-0001转换】2022-5-13

试用74194附加门电路设计1011011010序列发生器,并用示波器观察。要求:(1)写出设计过程;(2)画出电路图。 2、用multisim软件仿真实现上述序列信号发生器,CP频率为1KHz,用示…