Boosting Monocular Depth Estimation Models to High-Resolution via Content-Adaptive Multi-Resolution Merging
May 2021
CVPR 2021
S. Mahdi H. Miangoleh*, Sebastian Dille*, Long Mai, Sylvain Paris, Yağız Aksoy
[Simon Fraser University, Adobe Research]
https://arxiv.org/abs/2105.14021
http://yaksoy.github.io/papers/CVPR21-HighResDepth.pdf
http://yaksoy.github.io/papers/CVPR21-HighResDepth-Supp.pdf
http://yaksoy.github.io/highresdepth/
https://github.com/compphoto/BoostingMonocularDepth
作者在他的硕士毕业论文里对这一方法有更详细的阐述:https://www.icloud.com/iclouddrive/01eMAGJjh7LMeUBNIOQQCP0pQ#SMahdi%5FHMiangoleh%5FMasterThesis%5FSummer2022
https://github.com/compphoto/BoostYourOwnDepth
https://github.com/compphoto/BoostYourOwnDepth/blob/main/colab/byod.ipynb
神经网络在从一幅图像中估计深度方面表现出了巨大的能力。然而,推断出的深度图远低于一百万像素的分辨率,而且往往缺乏细粒度的细节,这限制了它们的实用性。分析了输入分辨率和场景结构对深度估计性能的影响。我们证明了在一致的场景结构和高频细节之间存在一种折衷,并使用一个简单的深度合并网络合并低分辨率和高分辨率估计以利用这种对偶性。我们提出了一种改进整体深度估计的双重估计方法和一种在最终结果中加入局部细节的面片选择方法。我们证明了通过合并不同分辨率的估计值和变化的上下文,我们可以使用预先训练的模型生成具有高细节级别的数百万像素深度图。

1 引言
单目或单幅图像深度估计的目的是从单幅图像中提取场景的结构。与从深度传感器或具有几何约束的多视图数据获得原始深度信息的设置不同,单目深度估计必须依赖于高级单目深度提示,例如遮挡边界和透视。因此,基于深度神经网络的数据驱动技术已成为现代单目深度估计方法的标准解决方案[11、13、14、15、29]。尽管该领域最近取得了一些进展,包括网络设计[12、18、21、32],结合高级约束[43、50、56、58]和监督策略[14、15、16、20、23],但实现具有良好边界精度和一致场景结构的高分辨率深度估计仍然是一个挑战。最先进的方法基于完全卷积结构,原则上可以处理任意大小的输入。然而,实际的限制,如可用的GPU内存,缺乏多样的高分辨率数据集,以及CNN的感受野大小限制了现有方法的潜力。
我们提出一种方法,利用预先训练的单目深度估计模型来获得高分辨率的结果和高边界精度。我们的主要见解来自于观察到单目深度估计网络的输出特性随输入图像的分辨率而变化。在接近训练分辨率的低分辨率下,估计具有一致的结构,但缺乏高频细节。当同一幅图像以更高的分辨率传输到网络时,高频细节被更好地捕获,而估计的结构一致性逐渐降低。根据第3节的分析,我们认为这种二重性源于给定模型的容量和感受野大小的限制。我们提出了一种双重估计框架,该框架将同一幅图像在不同分辨率下的两种深度估计合并起来,以适应图像内容,从而在保持结构一致性的前提下生成具有高频细节的结果。
我们的第二个观察是关于输出特征与输入中高级深度线索的数量和分布之间的关系。我们证明,当深度线索比感受野的大小相距更远时,模型开始产生结构上不一致的结果。这意味着,将图像输入到网络的正确分辨率会局部地区域到区域的变化。我们利用这一观察,从输入图像中选择补丁,并将它们以与局部深度线索密度相适应的分辨率输入到模型中。我们将这些估计合并到结构一致的基础估计上,以实现高度详细的高分辨率深度估计。
Our second observation is on the relationship between the output characteristics and the amount and distribution of high-level depth cues in the input. We demonstrate that the models start generating structurally inconsistent results when the depth cues are further apart than the receptive field size. This means that the right resolution to input the image to the network changes locally from region to region. We make use of this observation by selecting patches from the input image and feeding them to the model in resolutions adaptive to the local depth cue density. We merge these estimates onto a structurally consistent base estimate to achieve a highly detailed high-resolution depth estimation.
通过利用单目深度估计模型的特点,我们在不重新训练原始网络的情况下,获得了在分辨率和边界精度方面超过现有技术的结果。我们使用两种最先进的单目深度估计方法给出了我们的结果和分析[34,48]。我们的双重估计框架在没有太多计算开销的情况下大大提高了性能,而图2所示的完整管道可以生成非常详细的结果,即使对于非常复杂的场景,如图1所示。

2 相关工作
早期的单目深度估计工作依赖于手工制作的特征,这些特征用于编码图像深度线索,如物体大小、纹理密度或线性透视图[36]。最近的研究利用深度神经网络直接从训练数据中学习与深度相关的先验知识[6,11,14,33,44,46,57]。近年来,由于大规模深度数据集的可用性[7、29、47、54]以及一些技术突破,包括创新的架构设计[12、13、18、21、28、32],几何和语义约束的有效结合[4、43、50、52、55、56、58],深度估计性能令人印象深刻,新的损失函数[26,29,34,44,48]和监督策略[5,14,15,16,20,23,27,45,46]。在这项工作中,我们没有开发一种新的深度估计方法,而是通过合并来自不同分辨率和patches的估计,现有的深度估计模型可以得到更高质量的结果。
虽然在深度估计基准中取得了令人印象深刻的性能,但大多数现有方法都经过训练,能够在相对较小的输入分辨率上执行,这妨碍了它们在需要高分辨率深度图的应用中的使用[30、38、41、42]。一些工作提出了利用仅使用引导上采样[10,30]或结合residual training[59]的低分辨率深度估计的改进方法。我们的方法是通过改变网络的输入和合并多个估计来生成高频细节。
我们基于patches的框架与基于patches的图像编辑、抠图和合成技术有相似之处,其中局部结果由图像patches生成,并混合到全局结果中[9、22、49、51、53]。虽然相关,但现有的基于patches的编辑技术并不直接适用于我们的场景,因为在单目深度估计中存在特定问题的挑战。这些挑战包括patches估计中深度值的变化范围、对图像patches中存在的上下文的强依赖性以及在高分辨率深度估计中出现的特征性低频伪影。
Our patch-based framework shares similarities with patch-based image editing, matting, and synthesis techniques where local results are generated from image patches and blended into global results [9, 22, 49, 51, 53]. While related, existing patch-based editing techniques are not directly applicable to our scenario because of problemspecific challenges in monocular depth estimation. These challenges include varying range of depth values in patch estimates, strong dependency on context present in the image patch, and characteristic low-frequency artifacts that arise in high-resolution depth estimates.
3 模型行为观察
单目深度估计,由于缺乏多摄像机系统可以利用的几何线索,必须依赖于存在于图像的高层次深度线索。在他们的分析中,Hu等人[17]表明,单目深度估计模型确实利用了人类视觉系统利用的单目深度线索,如遮挡和透视相关线索[40],我们将其称为上下文线索或更广泛地称为上下文。在本节中,我们将介绍我们对上下文如何影响网络性能的观察,更重要的是,输入中的上下文密度(context density)如何影响网络性能。我们给出了MiDaS[34]的例子,并在补充资料中展示了[48]的类似结果。
大多数深度估计方法都遵循预先定义的、相对较低的输入分辨率的训练惯例,但模型本身是完全卷积的,原则上可以处理任意大小的输入。然而,当我们将一幅图像以不同的分辨率输入到同一个模型中时,我们会看到结果特征的特定趋势。图3显示,在较小的分辨率下,估计缺少许多高频细节,同时生成场景的一致整体结构。随着输入分辨率的提高,结果中会产生更多的细节,但是我们看到场景结构中的不一致性,其特征是图像区域之间的深度逐渐变化。我们通过有限的网络容量和有限的感受野大小来解释这种双重特性(duality)。

一个网络的感受野大小主要取决于结构以及训练分辨率。它可以定义为一个像素周围的区域,该区域有助于该像素的输出[2,25]。由于单目深度估计依赖于上下文线索,当图像中的这些线索比感受野相距更远时,网络无法在接收不到足够信息的像素周围产生相干深度估计。我们用图4中的一个简单场景演示了这种行为。感受野大小为384× 384的MiDaS[34]在输入变得更大时开始在图像区域之间产生不一致,并且集中在图像边缘(编者注:应该是指图像中物体的边缘)的上下文提示变得比384像素更远。图3(顶部)中平壁的不一致结果也支持这一观察结果。

卷积神经网络具有固有的有限容量,为其存储和生成的信息量提供了上限[3]。由于神经网络一次只能看到尽可能多的感受野大小,因此容量的限制适用于神经网络在感受野内所能产生的能量。我们将低分辨率估计中缺乏高频细节归因于这一限制。当输入中存在许多上下文线索时,网络能够更好地推理场景中较大的结构,因此能够生成一致的结构。然而,这导致网络不能同时生成高频细节,因为在单个前向传递中可以生成的信息量有限。我们在图5中展示了一个简单的实验。我们使用原始分辨率为192×192像素的图片,上采样得到更高分辨率的图片。这样,输入中的高频信息量保持不变,但结果中的高分辨率细节仍有所增加,这表明网络容量有限。因此,我们声称,网络会被大量的上下文线索所淹没,这些线索集中在一个小的图像中,并且只能生成场景的整体结构。

4 方法准备
根据我们在第3节中的观察,我们的目标是对要合并的单个图像生成多个深度估计,以获得具有一致总体结构的高频细节的结果。这需要(i)检索图像中上下文线索的分布,我们将使用该分布来确定网络的输入,以及(ii)合并操作以将高频细节从一个估计转移到另一个具有结构一致性的估计。在第5节和第6节详细介绍我们的管道之前,我们先介绍一下这些准备工作的方法。
估计上下文线索 确定图像中的上下文线索不是一项简单的任务。Hu等人[17]通过识别图像中最相关的像素进行单目深度估计来关注这个问题。虽然他们提供了推理过程中不同模型使用的上下文线索的对比分析,但我们无法使用他们的方法生成MiDaS的线索分布所需的高分辨率估计值[34]。取而代之的是,在他们观察到图像边缘与上下文线索合理相关之后,我们使用通过阈值化RGB梯度获得的图像的近似边缘图作为代理。(we use an approximate edge map of the image obtained by thresholding the RGB gradients as a proxy)
合并单目深度估计 在我们的问题公式中,我们有两个深度估计,我们想合并:(i)一个低分辨率输入给网络得到的低分辨率深度图,(ii)相同图像的高分辨率深度图或patch,其在深度不连续性周围有更好的精度,但会受到低频伪影的影响。我们的目标是将第二个输入的高频细节嵌入到第一个输入中,从而为整个图像提供一致的结构和固定的深度范围(a consistent structure and a fixed range of depths)。
虽然这个问题类似于Poisson混合等梯度转移方法[31],但由于高分辨率估计中的低频伪影,这种低水平的方法在我们的目的上并没有很好的表现。相反,我们使用标准网络并采用Pix2Pix架构[19],其中10层U网[35]作为生成器。我们选择了一个10层的U网而不是默认的6层,目的是将训练和推理的分辨率提高到1024×1024,因为我们将使用这个合并网络来获得广泛的输入分辨率。我们训练网络将细粒度细节从高分辨率输入传输到低分辨率输入。为此,我们通过从Middlebury2014[37]和Ibims-1[24]的选定图像集的深度估计中选择patches来生成输入/输出对。虽然创建低分辨率和高分辨率的输入不是问题,但一致和高分辨率的真值不能简单地生成(consistent and high-resolution ground truth cannot be generated natively)。注意,我们也不能直接利用原始的真值数据,因为我们只为low-level合并操作训练网络,并且期望的输出取决于低分辨率估计中深度值的范围。相反,我们根据经验选择672*672像素作为网络的输入分辨率,从而最大化我们可以在两个数据集上获得的无伪影估计。为了保证真值和高分辨率patch的估计具有相同数量的细粒度细节,我们对patch估计中应用了导向滤波,以真值估计为引导。这些修改后的高分辨率patch可以作为低分辨率和高分辨率估计的无缝合并版本的真值代理。图6和图7展示了我们的合并操作。


5. 双重估计
我们在第3节和图3中的估计中显示了一致的场景结构和高频细节之间的权衡,以及输入分辨率的变化。我们在图3和图4中还显示,当图像中的上下文线索比感受野的大小相距更远时,网络开始产生结构上不一致的结果。网络能够产生一致结构的最大分辨率取决于图像中上下文线索的分布。使用边缘图作为上下文线索的代理,我们可以通过确保没有像素与上下文线索的距离超过感受野大小的一半来确定最大分辨率。为此,我们在不同分辨率下,用感受野尺寸的核对边缘图进行二值扩张(For this purpose, we apply binary dilation to the edge map with a receptive-field-sized kernel in different resolutions)。
然后,扩张的边缘图不再产生all-one结构的分辨率是最大分辨率,其中每个像素将在前向过程中接收上下文信息。我们将这个与图像内容相适应的分辨率称为。我们将把
以上的分辨率称为
,其中
表示在给定分辨率下不接收任何上下文信息的像素百分比。分辨率大于
的估计将失去结构一致性,但其结果将具有更丰富的高频内容。
根据这些观察结果,我们提出了一种称为双重估计的算法:为了获得两个世界中的最佳结果,我们将图像以两种不同的分辨率馈送到网络中,并将估计值合并以获得具有高频细节和一致性的结果。我们的低分辨率估计设置为网络的感受野大小,它将决定图像的整体结构。低于感受野大小的分辨率并不能改善结构,实际上会降低性能,因为没有充分利用网络的容量。我们通过第7.2节中的实验分析确定,我们的合并网络可以成功地将高频细节合并到低分辨率估计的结构上,直至。
之后的估计中的低分辨率伪影开始损害合并结果。请注意,
可能高于原始分辨率。
图6表明,我们可以在低分辨率估计(a)中保留结构,同时将高分辨率估计(c)中的细节成功地集成到结果中(d)。通过合并,我们可以产生超过的一致结果(b),其是由网络的感受野大小设置的限制,代价是通过基础网络的第二次前向传递。
6 局部增强的补丁估计
我们根据附近没有任何上下文线索的像素数来确定整个图像的估计分辨率。这些具有最低背景线索密度的区域决定了我们可以用于图像的最大分辨率。然而,具有更高背景线索密度的区域仍然会受益于更高的分辨率估计,以产生更多的高频细节。我们提出了一种patch选择方法,在不同分辨率下对图像中的不同区域进行深度估计,并将这些区域合并在一起以获得一致的完整结果。
理想情况下,patch选择过程应该由高层次的信息来指导,这些信息决定了用于估计的最佳局部分辨率。这就需要一种数据驱动的方法来评估网络的高分辨率性能,并对上下文线索进行精确的高分辨率估计。然而,现有数据集的分辨率不足以训练这样一个系统。因此,我们提出了一种简单的patch选择方法,在这种方法中,我们会做出谨慎的设计决策,以获得可靠的高分辨率深度估计管道,而不需要额外的数据集或训练。
基本估计 我们首先对整个图像使用第5节中的双重估计生成一个基本估计。对于大多数图像,此基本估计的分辨率固定为。仅对于一部分图像,我们会提高分辨率,详见本节末尾。
Patch选择 我们通过在基本分辨率下平铺(tiling)图像,平铺大小(tile size)等于感受野大小,重叠1/3,来开始patch选择过程。这些tiles中的每一块都可以作为候选patch。我们通过比较每个patch中边缘的密度和整个图像中边缘的密度,确保每个patch接收到足够的上下文来生成有意义的深度估计。如果tile的边缘密度小于图像的边缘密度,则会丢弃该tile。如果tile具有更高的边缘密度,则会增大patch的大小,直到边缘密度与原始图像匹配。这样可以确保每个patch估计都有一个稳定的结构(编者注:可参考这个页面的动图https://github.com/compphoto/BoostingMonocularDepth)
Patch估计 我们使用另一种双重估计方案来生成patch的深度估计。由于patch是根据边缘密度选择的,因此我们不需要进一步调整估计分辨率。相反,我们将高分辨率估计的大小固定为感受野大小的两倍。然后将生成的patch估计值逐一合并到该基础估计值上,以生成更详细的深度图,如图2所示。请注意,patch估计值中的深度值范围与基础估计值不同,因为单目深度估计网络不提供度量深度。相反,它们的结果表示图像区域之间的顺序深度关系。我们的合并网络设计用于处理此类挑战,并且可以成功地将patch估计中的高频细节合并到基本估计上,如图7所示。
基准分辨率调整 我们观察到,当图像中的边缘密度变化很大时,特别是当图像的很大一部分缺少任何边缘时,由于较小,我们的patch选择过程最终会选择太小的patches。我们通过在选择patches之前将基估计向上采样到更高的分辨率来解决这一问题。为此,我们首先确定最大基尺寸
=3000×3000从
的value of a 36-megapixel outdoors image with a lot of high-frequency content。然后我们定义了一个简单的基础估计大小系数
,其中
是图像中接近边缘的像素百分比,通过使用感受野大小的四分之一的核来扩展边缘映射来确定。最大值操作确保我们永远不会减少基本大小。当我们将最小patch大小定义为基本分辨率中的感受野大小时,这个系数确保我们可以在具有小patches的整体低密度图像中选择小的高密度区域。
7. 结果与讨论
我们在两个不同的数据集上评估了我们的方法,Middleburry 2014[37],其中提供了高分辨率输入和真值深度图,以及IBMS-1[24]。我们使用一组标准的深度评估指标进行评估,如最近的工作[34,48]中所建议的,包括视差空间中的均方根误差(RMSE),像素百分比(
),以及深度空间[48]中的顺序误差(ORD)。此外,我们还提出了一种称为深度不连续不一致比(depth discontinuity disagreement ratio,
)的序数关系误差变体[48],用于测量深度估计中高频的质量。我们不使用[48]中的随机点进行顺序比较,而是使用使用真值深度计算的超像素的中心[1],并在深度不连续处比较相邻的超像素质心。因此,这一指标侧重于边界精度。我们在补充资料中对我们的指标作了更详细的说明。
我们的合并网络是轻量的,向前传递所需的时间比单目深度估计网络小很多。我们的方法的运行时间主要取决于我们在管道中使用基本网络的次数。计算基估计的分辨率,和合并到基估计的patches数与图像内容相适应。我们的方法在Middleburry 2014[37]数据集上,最终平均每幅图像选择74.82个patches,平均
=2145×1501;在IBMS-1[24]上,平均
=1443× 1082,每幅图像12.17个patches。这些数字之间的差异来自于两个数据集中不同的场景结构。还要注意IBMS-1[24]的原始图像分辨率是640× 480。正如我们在第3节中所演示的,放大低分辨率图像确实有助于生成更多高频细节。因此,我们的估计分辨率主要取决于图像内容,而不是原始输入分辨率。
7.1 增强单目深度估计模型
我们评估我们的方法多少程度地改善了用MiDaS[34]和SGR[48]预训练的单目深度模型,我们也评估了其它深度refinement方法,包括Niklaus等人[30]的方法,以及双线性上采样+双边滤波的基线。
表1中的定量结果表明,对于大多数度量,我们的完整管道大大提高了数值性能,并且我们的双重估计方法已经在较小的计算开销下提供了很好的改进。我们的内容自适应boosting框架在ORD和D3R度量方面一致地提高了两个数据集上基线的深度估计精度,表明了准确的深度排序和更好的保留边界。我们的方法在RMSE和δ1.25方面也表现得有可比性。我们还观察到,简单地将输入分辨率自适应地调整为有意义地提高了性能。

在图8所示的定性比较中,我们的方法提供的性能改进更为显著。与原始网络相比,我们可以大幅增加高频细节的数量和边缘定位。
We do not see a large improvement when depth refinement methods are used in Table 1 and also in the qualitative examples in Figure 9. 这种差异来自这样一个事实,即我们多次利用网络生成更丰富的信息,而细化方法受到基本估计结果中可用细节的限制。定性例子表明,细化方法不能产生在基本估计中遗漏的额外细节,如小物体或尖锐的深度不连续。


7.2 双重估计和
在我们的双重估计框架中,我们选择作为高分辨率估计。这个数字是根据表2中的定量结果选择的,在表2中,我们表明使用更高分辨率的
会导致性能下降。这是由于当图像中没有上下文信息的像素数目增加时,高分辨率结果具有严重的伪影。表2还表明,我们的双重估计框架优于固定输入分辨率(这是常见的做法)以及
处的估计,
表示图像可以提供给网络的最大分辨率,而不会造成结构上的不一致。

局限性
由于我们的方法是建立在单目深度估计的基础上的,它有其固有的局限性:产生相对的,顺序的深度估计,但不是绝对的深度值。我们还观察到,基本模型的性能随着噪声的降低而降低,并且我们的方法不能为噪声图像提供有意义的改进。我们在补充材料中对NYUv2[39]数据集的分析中解决了这个问题。高频估计会受到低幅度白噪声的影响,这种白噪声并不总是被合并网络过滤掉,结果中可能会出现噪声。
我们利用RGB边缘作为单目深度线索的代理,并在我们的patches选择过程中做出一些特殊的选择。虽然我们能够用我们目前的公式显著提高基础模型,但我们相信对背景线索和patches选择过程的研究将有助于充分发挥预先训练的单目深度估计网络的潜力。
8 结论
我们已经演示了一种算法来推断一个高分辨率的深度图从一个单一的图像使用预先训练的模型。虽然以前的工作仅限于亚百万像素分辨率,但我们的技术可以处理现代相机拍摄的数百万像素图像。高质量、高分辨率的单目深度估计使得图像分割等应用成为可能。我们在图10中展示了一个通过阈值化深度值的简单分割,这也展示了我们的边缘定位能力。我们的工作是基于对现有深度估计网络的能力及其影响因素的仔细描述。我们希望我们的方法将刺激更多的高分辨率深度估计工作,并为引人注目的应用铺平道路。
