美文网首页
实用的单目室内深度估计

实用的单目室内深度估计

作者: Valar_Morghulis | 来源:发表于2023-01-13 09:45 被阅读0次

Toward Practical Monocular Indoor Depth Estimation

Dec 2021

CVPR 2022

https://arxiv.org/abs/2112.02306

摘要:大多数现有的没有真值深度指导的单目深度估计方法侧重于驾驶场景。我们表明,这种方法很难推广到看不见的复杂室内场景,其中物体杂乱且在近场中任意排列。为了获得更强的鲁棒性,我们提出了一种结构蒸馏方法,以从现成的相对深度估计器中学习诀窍,该估计器产生结构化但度量不可知的深度。通过将结构蒸馏与从左右一致性学习度量的分支相结合,我们获得了一般室内场景的结构化和度量深度,并实时进行推断。为了便于学习和评估,我们收集了SimSIN和UniSIN数据集,SimSIN是模拟数千个环境的数据集,UniSIN是包含大约500个普通室内环境的真实扫描序列的数据集。我们在sim-to-real和real-to-real设置中进行了实验,并使用我们的深度图在下游应用中显示了改进。这项工作提供了全面的研究,涵盖了方法、数据和应用方面。

1.引言

这项工作提出了一种实用的室内深度估计框架,该框架具有以下特点:从现成的估计器和左右图像对学习,而无需其深度注释,高效的训练数据收集,对跨数据集推断的高度通用性,以及准确和实时的深度感知。我们的工作适用于消费者级AR/VR,如3D室内场景重建、虚拟对象插入以及与环境的交互[33]

尽管自监督的深度估计,特别是使用左右一致性,最近吸引了很多研究兴趣,但流行的作品,如MonoDepth[24]、MonoDepth 2[25]、DepthHints[78]和ManyDepth[79],主要关注驾驶场景,并在KITTI[23]和Cityscape[14]等大规模驾驶数据集上进行训练,目前尚不清楚这些方法如何应用于室内环境。通过自监督学习室内深度可能更具挑战性,原因如下:(1)结构优先:驾驶场景的深度估计在学习范式之前强加了强大的场景结构。图像的上部通常被天空或建筑物占据,通常距离较远;另一方面,下部通常是延伸到距离[16]的道路。相比之下,室内环境中的结构先验要弱得多,因为物体可能会在近场中杂乱和任意排列。(2) 分布:驾驶场景的场景深度往往在道路上从近到远的范围内分布得更均匀,而室内深度可以集中在近或远的范围,例如桌子或天花板的放大视图。不均匀的深度分布使得预测室内场景的精确度量深度具有挑战性。(3) 相机姿势:深度感测设备可以在6°F内移动进行室内拍摄,但它们通常固定在汽车上,用于收集驾驶数据,其中平移通常没有仰角,旋转主要由偏航角控制。因此,理想的网络需要对室内情况下的任意摄像机姿态和复杂场景结构更加鲁棒。(4) 无纹理表面:大的无纹理区域(如墙)使常用的光度损失模糊不清。

在这项工作中,我们提出了DistDepth,这是一种通过自监督学习来提高深度精度的结构蒸馏方法。DistDepth使用现成的相对深度估计器DPT[61,62],该估计器产生结构化但仅产生相对深度(输出值反映深度排序关系,但度量不可知)。我们的结构蒸馏策略鼓励统计和空间上的深度结构相似性。这样,来自DPT的深度排序关系可以有效地混合到由左右一致性训练的度量深度估计分支中。我们的学习范式只需要现成的相对深度估计器和立体图像输入,而不需要精确的深度标注。给定测试时的单目图像,我们的深度估计器可以预测结构化和度量精确的深度,并对看不见的室内场景具有高度的通用性(第3.2节)。蒸馏也有助于将DPT的大型视觉Transformer缩小到更小的架构,从而在便携式设备上实现实时推断。

接下来我们将描述数据集级别的贡献。当前公开可用的立体数据集要么以驾驶场景为目标[9,14,21,23,80],小规模且缺乏场景可变性[67,68],由不现实的3D动画渲染[6,54],要么在野外收集[36,74]。流行的室内数据集要么是小规模的(Middlebury[67]),要么缺乏立体声对(NYUv2[56])。目前还没有大规模的室内立体声数据集来促进自监督研究的左右一致性。我们利用流行的Habitat模拟器[65,73]在3D室内环境中收集立体声对。选择常用的环境,包括副本[72]、Matterport3D(MP3D)[8]和栖息地Matterport 3D(HM3D)[59],以创建SimSIN,这是一个新的数据集,由约1K室内环境中的约500K模拟立体室内图像组成(第4节)。使用SimSIN,我们能够研究先前自监督框架在室内场景中的性能[25,78,79]。我们表明,我们可以通过直接训练这些模型来适应SimSIN,但这些模型很难推广到未知环境的异构领域。然而,使用我们的结构蒸馏策略,可以在看不见的数据上产生高度结构化和度量精确的深度(第5节)。

一些商业质量模拟和真实数据被用于评估,包括具有挑战性的虚拟公寓(VA)序列[1,2]、Hypersim中的预渲染场景[63]和NYUv2中的真实单目图像[71]。为了进一步调查模拟训练与真实数据训练之间的差距,我们进一步收集了UniSIN数据集,该数据集包括500个真实的室内立体序列,总计200K张图像,使用现成的高性能立体摄像机,在一所大学中跨越建筑物和空间。我们表明,我们在模拟数据上训练的DistDepth的性能仅与在真实数据上训练过的DistDept相当。

我们的DistDepth特别适合1。获得零样本交叉数据集推断,以及2。缩小了sim-to-real和real-to-real学习之间的差距,如图1所示。在整个工作过程中,除非标记为相对深度,否则我们将实际度量范围内的深度图可视化。我们总结我们的贡献如下。

1.我们提出了DistDepth,该框架将深度域结构知识提取到自监督深度估计器中,以获得高度结构化和度量精确的深度图。

2.我们提出了SimSIN,这是一个大规模的室内模拟数据集,通过左右一致性为室内深度估计的研究提供了燃料,以及一个真实的数据集UniSIN,旨在研究模拟训练和真实数据之间的差距。

3.我们获得了一种实用的室内深度估计器:无需精确的深度真值的学习、通过模拟进行的高效和有效的数据收集、高度可推广性以及用于深度传感的准确和实时推断。

2.相关工作

单目场景深度估计。

许多研究兴趣集中在基于学习的方法来学习地图:→ D、 从图像到深度域。

2.1监督场景深度估计

监督学习需要像素级深度注释。早期的方法[18-20,34,46,47,51,60,83,85]使用卷积神经网络对深度值进行像素级回归,以最小化预测和真值之间的损失。最近,Bhat等人[4]采用自适应箱进行深度回归,并使用视觉Transformer[17]。MiDaS[62]和Wei等人[86]巧妙地混合了多个数据集,以使用尺度和位移不变损失实现大规模深度训练。BoostingDepth[55]基于[35]的观察结果,融合了MiDaS中的多尺度深度线索,但后处理深度图需要几分钟。DPT(MiDaSV3)[61]设计了一种密集视觉Transformer,并获得了比原始MiDaS更好的结果。

尽管最先进的MiDaS[62]和DPT[61]可以估计野外图像的细粒度深度结构,但由于混合数据集训练策略,它们只能提供相对深度,这是未知的尺度和移位因子,以与实际大小一致。我们的DistDepth在野外场景中采用了深度结构蒸馏专家的预训练,以从左右一致性训练的分支中获得结构化深度和度量深度。

2.2.左右和时间一致性

左右和时间一致性有助于实现自监督学习,以提高训练对真值深度的要求,这更接近实际深度感知[28,42,44,45,57]。MonoDepth[24]从立体对学习深度,并使用左右深度重投影和光度损失最小化。MonoDepth2[25]还包括时间上的相邻帧,并且还最小化了光度一致性损失。DepthHints[78]采用来自立体声对的预先计算的SGM[31,32]深度作为代理,并且仍然保持自监督。ManyDepth[79]使用成本体积最小化的测试时间多帧输入,以获得更准确的预测。然而,这些方法都侧重于驾驶场景,其对室内数据的适用性尚待调查。我们的工作基于深度结构蒸馏的左右和时间一致性,以获得结构化、度量和可推广的深度估计,而大多数工作没有讨论可推广性[25-27,79,84]。注意,我们的结构蒸馏不同于常规蒸馏[30,64,88],因为我们的专家只能估计深度排序,并且需要将其与学生推断的度量相结合,以获得最终输出。其他一些工作仅通过时间一致性实现自监督[5,37],这使得规模不那么稳健。另一项工作[48]基于曼哈顿世界假设,将共面和正态损失最小化,但仅对具有固有模糊尺度的平面区域显示鲁棒性。

3.方法

3.1.基本问题设置

在本节中,我们描述了自监督方法(如MonoDepth2、DepthHints和ManyDepth)中常用的左右和时间光度一致性。在训练期间,It和I 0 t是时间步长t的立体对。DepthNet fd用于预测It的深度,Dt=fd(It)。已知摄像机固有K和变换Tt:It→ I 0 t使用立体基线,可以将其反向投影到3D空间中,然后通过利用K、Dt和Tt重新投影到I 0 t的成像平面。目标是最小化光度损失L=pe(I 0 t,⑪I 0 t),其中pe如下所示。

其中,κ通常设置为0.85,SSIM[76]用于测量图像域结构相似性,L1用于计算像素差异。pe(I 0 t,⑪I 0 t)测量立体对的光度重建误差以获得左右一致性。

时间相邻帧也用于计算光度一致性。PoseNet计算时间步长t和t+k之间的相对相机姿势:Tt+k→t=fp(It,It+k),其中k∈{1,−1}。然后,通过将图像从t+k扭曲到t并在等式1中计算光度一致性来获得时间一致性。在推断时间,通过D=fd(I)从单目图像预测深度。

适用性。

我们在SimSIN数据集上训练MonoDepth2、DepthHints和ManyDepth,并在稍后的图4中举例说明场景拟合。现有技术适合于训练集,但由于室内环境中看不见的复杂对象排列,因此不能很好地概括跨数据集推断。

3.2.DistDepth:来自专家的结构蒸馏

为了克服将自监督框架应用于室内环境时的可推广性问题,我们提出了DistDepth(图2)。使用密集视觉Transformer的DPT[61]可以产生高度结构化但仅通过D*t=f*D(It)1产生相对深度值,如第2.1节所述。我们提取了D*t的深度域结构,并将其转移到自监督学习分支,包括DepthNet fd和PoseNet fp。自监督分支学习度量深度,因为它利用了具有已知相机固有和基线的立体对以及深度扭曲操作it hproj(Dt,Tt,K)i。我们的蒸馏使fd既能产生高度结构化的深度,又能产生公制深度,并且仍能以无需真值深度的方式进行训练。

我们首先利用最小二乘优化中的闭合形式表达式,通过最小化D´*t=asD*t+at和Dt之间的差异,估计DPT输出D*t到预测深度Dt的粗略校准因子as和位移at(见补充)。

统计损失。

与图像域结构相比,深度域结构排除了与深度无关的低级线索,例如对象上的纹理和绘画图案,并显示几何结构。图像结构相似性可通过SSIM[75–77](考虑统计约束)获得。深度域结构还与由相似性度量的均值、方差和协方差表示的深度分布相关。因此,我们使用深度图输入D´*t和Dt计算SSIM,并使用负度量作为损失项

与广泛使用的将SSIM与L1损失相结合的外观损失不同,我们发现像素级差异度量导致不稳定的训练,因为从视差到深度的反转放大了预测不确定性,并在任意范围内产生更大的异常值。相比之下,SSIM损失限制了两个分布的平均值和方差项,而不是每个像素的差异,因此成为理想的选择。

空间细化损失。

SSIM丢失仅限制统计深度分布,但丢失空间信息。我们接下来提出了使用深度遮挡边界图的空间控制(图2(B))。Sobel滤波器是一阶梯度算子[38],用于计算深度域梯度:g=(⑪Xύu,ύXόv),其中X∈{D´*t,Dt}和u,v表示2D网格上的水平和垂直方向。然后,我们在梯度图的95%分位数水平上计算开启水平α=分位数(kgk2,95%),以确定深度遮挡边界,其中梯度大于α。我们计算0/1二进制值映射E*和E,通过用其各自的α项对D*t和Dt进行阈值处理来表示遮挡边界位置。最后,我们计算e*和e的Hamming距离,即位差,并通过映射大小对其进行归一化,并将其用作空间损失项,

其中,是两个布尔集合的XOR运算,|E|计算集合的大小。在实现中,为了使阈值化和二值化操作可微,我们从D´*t和Dt中减去各自的α,并应用软符号函数,该函数类似于符号函数,但反投影平滑和非零梯度,以获得值为{-1,1}的映射。除以2后,我们得到了地图之间的元素方向汉明距离。结构蒸馏的损失函数为Ldist=Lstat+10−1Lsput。It的最终损失函数Lt与左右一致性LLR=pe(I 0 t,⑪I 0 t)、时间一致性Ltemp=pe(It,⑪It+k→t) ,其中→t是前向翘曲和后向翘曲,k∈{1,−1},Ldist:

设计的结构蒸馏是提高自监督深度估计器对不可见纹理的高度可推广性的关键,以便更好地分离深度相关和深度无关的低级线索。从另一个角度来看,通过左右一致性训练的学生有助于DPT在不同的室内场景中学习范围。

另一种替代方法是基于对齐关系预测比例和移位因子,以将相对深度与度量深度对齐[62]。然而,这种看似简单的方法的缺点是,来自神经网络的深度估计不可避免地包含不确定性,这要么是由神经网络模型引起的,要么是由数据引起的[39,40,53]。相对深度和度量深度之间的转换显示出总体线性但有噪声的趋势,最佳直线方程对于不同场景可能会有很大变化,如图3所示。因此,这种替代方法不能仅用尺度和移位项分解噪声和异常值。我们在补充中展示了使用该方法的实验

我们采用ResNet[29]作为DepthNet fd。尽管可以使用密集的视觉Transformer来获得更高的预测精度,但由于网络规模较大和操作复杂,它们的推理速度较低,无法满足设备上的实时深度感测。因此,我们最大限度地利用了DPT中嵌入的结构知识,并将大型视觉Transformer缩小到更小尺寸的ResNet,这使我们能够以交互速率(不同版本的DPT为35+fps vs.s.8-11 fps,在配备RTX 2080 GPU的笔记本电脑上测量)运行深度感测,以实现实际的深度估计目的。请参见补充说明进行演示。

4.数据集

4.1.训练:SimSIN

为了利用左右和时间相邻帧来获得自监督训练的光度一致性,我们采用了流行的Habitat模拟器[65,73],该模拟器启动虚拟代理并渲染摄像机捕捉的3D室内环境。我们采用Replica、MP3D和HM3D作为后端3D模型,遵循先前体现的AI工作[10–12、15、22、58]。

我们采用13cm的立体基线,遵循[7]中的相机设置,并以512×512分辨率进行渲染。代理多次导航并捕获立体序列。然后,我们手动过滤掉失败序列,例如当代理太靠近墙壁或导航到空空间时。我们的数据集分别包含来自Replica、MP3D和HM3D的约80K、205K和215K张图像,在我们提出的SimSIN数据集中,来自约1000个不同环境的500K张立体图像,这是迄今为止通用室内环境的最大立体数据集。

4.2.训练:UniSIN

调查模拟和现实之间的差距,并比较模拟训练的模型和真实数据训练的模型的性能。我们使用ZED-2i[3],一种高性能立体摄像系统,从大学周围的各个室内空间收集大规模立体序列,并创建UniSIN数据集。它的训练分割包含500个序列,每个序列有200个立体声对,总计200K个训练图像。

4.3.评估集

商业质量模拟。

我们选择了一个精心设计的虚拟公寓(VA),并沿着轨迹渲染大约3.5K的照片级真实感图像作为评估集[1,2]。VA数据集包含用于深度感测的具有挑战性的室内场景,例如具有不同照明的橱柜立方体、薄结构和复杂的装饰。这些场景使我们能够对私人室内空间中的深度感知进行详细研究,这是AR/VR最常见的使用案例。我们还包括来自预渲染Hypersim[63]数据集的样本,该数据集包含虚拟环境的单目图像,用于定性演示。

真实数据。

我们采用了流行的NYUv2[71],其测试集包含654张单目图像,其中包含使用Kinect v1的飞行时间激光的深度图。为了弥补Kinect较旧的成像系统和较低的分辨率,以满足更实际的AR/VR应用,我们收集了由ZED-2i提供的1K高清图像和精细优化的深度,用于数值评估。

我们在补充资料中展示了所有数据集的样本集。

5.实验与分析

我们将输入大小设置为256×256,批大小设置为24,epoch设置为10。Adam[41]被用作优化器,初始学习率为2×。我们采用颜色抖动和随机翻转的常见数据增强。我们将ResNet50用于PoseNet fp,将ResNet152用于DepthNet fd,将MonDepth2、DepthHints和ManyDepth用于本节中的比较。DPT采用大型密集Transformer网络在野外应用。因此,我们为DepthNet选择了更大的架构来证明可推广性,但仍然可以以交互帧速率运行(如补充说明所示)。

5.1.模拟数据实验

我们使用SimSIN作为第5.1节中的训练数据集,并对各种商业质量模拟数据进行评估。以前在SimSIN上训练过的自监督方法。

我们首先按照论文中的设置在SimSIN上直接训练MonoDepth2、DepthHints和ManyDepth,并在图4中显示了对训练数据的拟合和对VA的推断,以调查可推广性。ManyDepth和DepthHints比MonoDepth2获得更好的结果。我们的DistDepth生成高度正则化的结构,具有对未知示例的鲁棒性。距离预测也有所改善,我们认为这是由于更好的结构遮挡边界推理。

VA.误差分析。

VA数据集包括室内空间中各种具有挑战性的场景。我们在图5中显示了定性误差分析。在误差图中突出显示,我们的DistDepth在估计各种照明条件下的底层几何结构(如绘画、书架和墙壁)方面具有更好的通用性。更多示例请参见补充。

我们在表1中进一步显示了整个VA序列的数值比较。比较中的所有方法都是在SimSIN上训练的。我们进一步为DistDepth配备了测试时间多帧策略,并在ManyDepth中引入了成本体积最小化,并用DistDepth-M表示此变体。方法分为测试时间单帧和测试时间多帧。在这两种情况下,DistDepth都比现有技术获得更低的误差。这验证了我们的网络设计:通过使用深度域结构蒸馏的专家,学生网络fd可以生成更接近真值的结构化和度量深度。

VA消融研究。

我们首先研究专家网络,并采用不同版本的DPT(混合和传统),其网络大小不同。表2显示,由较大规模的专家DPTlegacy教授的学生网络实现了较低的深度估计误差。如果不进行蒸馏,结果会更糟,因为它的估计仅依赖于光度损失,而光度损失在没有纹理的区域如墙壁上会失败。作为健全性检查,我们还提供了使用SimSIN的真值深度(具有像素MSE损失)进行监督训练的结果,并在VA数据集上进行了测试,这显示了在精确深度和专家网络预测深度之间的差距。

我们接下来在第3.2节中研究了具有不同蒸馏损失和开启水平α的影响的训练策略。我们比较了(1)w/o蒸馏,(2)仅具有统计损失的蒸馏,以及(3)具有统计和空间细化损失的蒸馏。我们在图6中展示了定性结果,以显示深度域结构的改进。没有蒸馏,空间结构就无法清晰地推理。通过统计改进,深度结构更加清晰。添加了空间细化,深度域结构显示了细粒度细节。我们进一步分析了α的不同开启水平的影响。低α使结构变得模糊,因为细化不像高α那样聚焦于高梯度遮挡边界,这仅将高梯度区域识别为遮挡边界,并有利于结构知识转移。

Hypersim对比。

接下来,我们将在图7中展示Hypersim中某些场景的深度和纹理点云。点云可视化采用了两种不同的视图。我们可以发现,我们的DistDepth在深度图和点云中都能预测更好的几何形状。有关更多示例,请参阅补充资料。

5.2.真实数据实验

接近真实差距。

我们比较了模拟训练(SimSIN)2和真实数据训练(UniSIN)的结果,以研究性能差距。我们考察了(1)MonoDepth2在模拟上的训练和对真实数据的评估,(2)MonoDepth2在真实数据上的训练并对真实数据进行评估,(3)DistDepth在模拟上训练并对实际数据进行评估;以及(4)DistDepth2的训练和真实数据的评价。图8显示了四种设置的结果。比较(1)和(2),可以发现在真实数据上训练的MonoDepth2比在模拟上产生更可靠的结果。相比之下,当使用DistDepth比较(3)和(4)时,这种差距变得不明显。(3)的结果与(4)相当,有时甚至产生更好的几何形状,如突出显示的区域。我们在补充中进一步包括数值分析。

结果在方法和数据集层面验证了我们的建议。首先,DistDepth利用专家网络为学生蒸馏小技巧。蒸馏大大增加了基于模拟数据训练的模型的鲁棒性,并使结果与基于真实数据训练的结果相当。这表明DistDepth能够缩小模拟数据和真实数据之间的差距。其次,立体模拟数据为左右一致性提供了一个平台,以从立体三角测量中学习度量深度。我们在图9中显示了一组结果,使用的是纯模拟训练的DistDepth。

对NYUv2的评估。

表3显示了对NYUv2的评估。我们首先在SimSIN上训练DistDepth,并在NYUv2上进行微调,但仅具有时间一致性。请注意,一个微调模型(Sup:4)被归类为半监督模型,因为它使用了一位受过NYUv2策划深度训练的专家。微调后的模型在没有NYUv2深度监督的方法中产生最佳结果,甚至可以获得与许多监督方法相当的结果。我们接下来只在模拟(SimSIN)或真实数据(UniSIN)上训练DistDepth,并在NYUv2上进行评估。与在UniSIN上训练的模型相比,在SimSIN上训练的模型性能只下降了一点点,这再次证明了我们的sim具有真正的优势。在不涉及NYUv2中的任何训练数据的情况下,DistDepth仍然实现了与许多监督和自监督方法相当的性能,这进一步验证了我们的零样本交叉数据集优势。我们补充展示了实时深度感知、3D照片和深度感知AR应用。

6.结论和讨论

这项工作的目标是一个实用的室内深度估计框架,该框架具有以下特点:无深度真值性的训练、有效的模拟训练、高度可推广性以及准确和实时的推断。我们首先确定了室内深度估计的挑战,并研究了现有的具有左右一致性的自监督方法在SimSIN上的适用性。利用从专家那里蒸馏出的深度域结构知识,我们发现在推断更精细的结构和更精确的度量深度方面都有了实质性的改进。我们展示了零样本交叉数据集推断,证明了其在异构数据域上工作的可推广性,并获得了适用于室内场景的广泛深度估计。更重要的是,从模拟数据中学到的深度很好地传递到真实场景,这表明了我们蒸馏策略的成功。在推断时,只需向DepthNet进行一次前馈,即可生成结构化的度量深度,并在满足实时需求的便携式设备上达到35+fps。

局限性

尽管DistDepth能够使用深度估计的单个前向通道产生结构化深度和度量深度,但它以每帧为基础进行操作,可以对其进行细化,以产生视频输入的时间上更一致的深度[43,52]。深度估计的另一个常见问题是反射物体的正确处理。通过蒸馏,DistDepth可以对轮廓清晰的物体进行估计,如图1所示。然而,我们的方法对于大型镜像仍然不够健壮。一种可能的解决方案是定位反射镜并对原始估计执行深度完成[81,82,90,92]。

相关文章

网友评论

      本文标题:实用的单目室内深度估计

      本文链接:https://www.haomeiwen.com/subject/ofmbcdtx.html