综述-深度学习的双目深度估计:下

https://arxiv.org/pdf/2006.02535.pdf

A Survey on Deep Learning Techniques for Stereo-based Depth Estimation

发表在TPAMI上



6学习多视角立体

多视图立体(MVS)方法遵循与立体深度相同的管道。早期的工作重点是计算多个patch 之间的相似性。例如,Hartmann等人[47](图6-(a))将立体匹配中使用的成对相关层替换为平均池层,以聚合n的学习特征≥ 2个输入patch ,然后将输出反馈给顶级网络,该网络返回匹配的分数。使用这种方法,计算参考图像上像素的最佳匹配需要n−1 d向前传球。(nd是深度级别的数量,n是图像的数量。)这在计算上非常昂贵,尤其是在处理高分辨率图像时。

在单个正向过程中计算深度图的技术在将来自多个视图的信息馈送到网络并聚合的方式上有所不同。我们将其分为基于体积(第6.1节)还是基于平面扫描体积(第6.2节)。后者不依赖于三维几何体的中间体积表示。唯一的例外是Hou等人[115]的方法,该方法对输入图像的潜在表示进行时间融合。然而,这种方法需要时间有序的图像。表4提供了一个分类,并比较了13种最先进的MVS技术。

6.1体积表示法

MVS重建的主要问题之一是如何高效地匹配多幅图像的特征。两两立体方法对图像进行校正,使对应的搜索仅限于水平极线。这在MVS中是不可能的,因为图像之间的视角差异很大。这是通过场景几何体的体积表示[60],[116]解决的。然后通过从所需视点投影生成深度图。对于给定的输入图像,使用已知的相机参数,从视点投射光线穿过每个图像像素。与该光线相交的体素被指定该像素的颜色[116]或学习特征[60]。现有方法在融合多个视图信息的方式上有所不同:

(1) 融合特征网格。Kar等人[60](图6-(c))使用递归神经网络(RNN)递归地融合反向投影的3D特征网格。生成的三维网格使用编码器-解码器进行正则化。为了避免对图像顺序的依赖,Kar等人[60]在训练期间随机排列输入图像,同时限制输出相同。

(2) 融合成对成本。Choi等人[117]使用加权和融合从每对图像计算出的成本体积,其中每个体积的权重是从该成本体积计算出的置信图。

(3) 融合重建的表面。Ji等人[116]使用3D CNN处理每一对体积网格,该CNN对体素是否为曲面点进行分类。为了避免对所有可能的图像对进行详尽的组合,Ji等人[116]了解了它们的相对重要性,使用由完全连接的层组成的网络,根据它们的相对重要性自动选择几个视图对来重建多个体积网格,然后取它们的加权和,生成最终的三维重建。

为了处理高分辨率的体网格,Ji等人[116]将整个空间分割成小的彩色体素立方体(CVC),并逐立方体回归曲面立方体。虽然这减少了内存需求,但它需要多次向前传递,从而增加了计算时间。Paschalidou等人[91]避免明确使用体积表示法。取而代之的是,网格的每个体素投影到每个输入视图上,然后计算每对视图上相应的学习特征之间的成对相关性,然后对所有视图对进行平均。对每个深度值重复此过程将导致每个像素上的深度分布。该深度分布通过使用MRF(表示为可微函数)进行正则化,以实现端到端训练。

就性能而言,Ji等人[116]的体积法需要4小时才能在DTU数据集中获得典型场景的完整重建[24]。Paschalidou等人[91]的方法在配备Nvidia GTX Titan X GPU的英特尔i7计算机上完成同样的任务大约需要25分钟。最后,与早期融合的方法相比,进行融合后重建的方法具有更高的重建误差。

6.2平面扫描体积表示法

这些方法直接从输入估计深度图,而不使用三维几何体的中间体积表示。因此,它们的计算效率更高。要解决的主要挑战是如何在一次正向传递中有效地匹配多个视图中的功能。这是通过使用平面扫描体积(PSV)[27]、[66]、[90]、[93]、[118]、[119]来实现的,即它们将输入图像[27]、[66]、[118]或其学习的特征[90]、[93]、[119]反向投影到不同深度值的平面中,形成PSV,从中估计深度图。现有的方法在特征提取和特征匹配块处理PSV的方式上有所不同。

Flynn等人的网络[66](图6-(b))由nd分支组成,每个深度平面一个分支。d−网络的第h分支将参考图像和位于深度d的其他图像的PSV平面作为输入。这些图像被打包在一起,并馈送到两级网络。第一阶段计算参考图像和位于深度d的所有PSV平面之间的匹配特征。第二阶段使用卷积层模拟深度平面之间的交互。网络的最后一个块是每像素softmax over depth,它返回每像素最可能的深度值。该方法要求已知每个视图的视图数量和相机参数。

Huang等人[27]的方法(图6-(d))从两两匹配步骤开始,其中计算参考图像和每个输入图像之间的cost volumes 。对于给定的一对(I1,Ii),i=2,n、 Ii首先被反投影到PSV中。然后,暹罗网络计算I1和每个PSV飞机之间的匹配cost volumes 。使用编码器-解码器网络将这些卷聚合为单个cost volumes。这称为卷内聚合。最后,使用最大池层将多个内部卷聚合为单个内部卷,然后使用该内部卷预测深度图。

与Flynn等人[66]不同,Huang等人[27]的方法不需要固定数量的输入视图,因为聚合是使用池来执行的。事实上,在训练和运行时,视图的数量可能会有所不同。与[27]、[66]不同的是,Yao等人[93]的MVSNet使用相机参数将学习到的特征反向投影到参考相机的3D平截头体中,该平截头体被切割成平行的正面平面,每个深度值对应一个。然后,该方法根据基于像素方差的度量生成匹配代价体,最后使用通用的3D U网络对匹配代价体进行正则化,以估计深度图。Luo等人[119]通过两种方式将MVSNet[93]扩展到P-MVSNet。首先,在将原始cost volumes 输入正则化网络之前,使用可学习的分片聚合函数对其进行处理。这提高了噪声数据的匹配鲁棒性和准确性。其次,PMVSNet使用混合各向同性三维UNet,而不是使用通用的三维UNet网络进行正则化。平面扫描体积在深度和空间方向上基本上是各向异性的,但它们通常由各向同性成本体积近似,这可能是有害的。事实上,人们可以沿着匹配cost volumes 的深度方向推断出相应的深度图,但不能沿着其他方向获得相同的信息。Luo等人[119]利用这一事实,通过提出的具有各向同性和各向异性3D卷积的混合3D U网,来指导匹配置信体积的正则化。

使用PSV的主要优点是,无需提供校正图像。换句话说,相机参数是隐式编码的。然而,为了计算PSV,需要提前提供内部和外部摄像机参数,或者使用例如[27]中的运动结构技术来估计。此外,这些方法需要提前设置视差范围及其离散化。此外,它们通常会导致复杂的网络架构。Wang等人[120]提出了一种轻量级的架构。它将参考图像和成本体积堆叠在一起,使用参考图像和其他图像之间的绝对差值计算,但深度平面不同,并将它们提供给具有跳过连接的编码器-解码器网络,以估计三种不同分辨率下的逆深度。Wang等人[120]使用视图选择规则,该规则选择具有足够角度或平移差的帧,然后使用所选帧计算cost volumes 。

最后,请注意,Won等人[30]也使用特征反投影从宽基线多视图立体设置进行全向深度估计。该方法使用球形映射和球形成本体积。

7.训练端到端立体匹配方法

训练过程旨在找到使损失函数L(W;D,ˆΘ)最小化的网络参数W,其中Dˆ是估计的差异,Θ是监督线索。损失函数被定义为数据项L1(D,ˆΘ,W)和正则化或平滑项L2(D,Wˆ)的总和,前者测量基础真值和估计的视差之间的差异,后者对解施加局部或全局约束。监督线索的类型定义了监督的程度(第7.1节),可以使用3D真值(第7.1.1节)进行监督,使用辅助线索进行自监督(第7.1.2节),或弱监督(第7.1.3节)。一些方法使用额外的线索,以约束解决方案的形式,来提高准确性和性能(第7.2节)。基于深度学习的技术的主要挑战之一是它们推广到新领域的能力。第7.3节回顾了解决该问题的方法。最后,第7.4节回顾了学习网络架构的方法

7.1监督方法

7.1.1三维监测方法

对监督方法进行训练,使损失函数最小化,该损失函数测量真值视差和估计视差之间的误差。其形式如下:

其中:dx aˆdx分别是地面真值和像素x处的估计视差。D是距离的度量,可以是L2、L1[61]、[62]、[99]、[121]、平滑L1[64]或平滑L1,但使用双参数鲁棒函数ρ(·)[72]、[122]进行近似。C(x)∈ [0,1]是x处估计视差的置信度。设置C(x)=1,阈值C=0,∀x相当于忽略置信度图。H(x)是重边函数,如果x等于1≥ 0,否则为0。Φ(·)是标识函数或日志函数。后者避免了过度调整网络以适应巨大的差异。

有些文件限制了等式中的总和。(6) 仅覆盖有效像素或感兴趣区域,例如前景或可见像素[123],以避免异常值。其他人,例如Yao等人[93],将损失分为两部分,一部分是初始差异,另一部分是细化差异。然后将总损失定义为两个损失的加权和。

7.1.2自监督方法

自监督方法最初用于光流估计[124],[125],在缺乏足够的地面真值训练数据的情况下,已被提出作为一种可能的解决方案。这些方法主要依赖于图像重建损失,利用投影几何,以及当同一场景的多幅图像可用时的空间和时间一致性。其基本原理是,如果估计的视差图尽可能接近地面真值,则参考图像与任何其他图像之间的差异也会最小化,但未使用估计的深度图投影到参考图像上。一般损失函数的形式如下:

式中〜Iref,它是Iright,但使用估计的视差未旋转到Iref上,D是距离的度量。映射函数Φ可以是:

•身份[68]、[70]、[126]、[127]。在这种情况下,失去Eqn。(7) 被称为光度学或图像重建损失。

•到特征空间的映射[68],即Φ(Iref)=f,其中f是学习的特征映射。

•图像的梯度,即Φ(Iref)=∇与光度损失相比,Iref对光照和采集条件的变化不那么敏感。

距离D可以是L1或L2距离。一些论文[70]还使用了更复杂的度量标准,例如Iref和〜Iref中patch 之间的结构差异[128]。

虽然基于立体的监控方法不需要真值感3D标签,但它们依赖于训练期间校准立体对的可用性。

7.1.3弱监督方法

如果对大量地面真深度数据进行训练,有监督的视差估计方法可以获得令人满意的结果。然而,手动获取真值深度数据极其困难且昂贵,并且容易产生噪音和不准确。弱监督方法依靠辅助信号来减少人工标记的数量。尤其是,Tonioni等人[129]将使用传统立体匹配技术对深度估计网络进行微调的深度估计用作监控信号。由于此类深度数据可能稀疏、嘈杂且容易出错,他们提出了一种置信度引导的损失,该损失会惩罚被认为不可靠的地面真值深度值。它是使用Eqn定义的。(6) 将D(·)设置为L1距离,c>0。Kuznietsov等人[130]使用稀疏真值深度进行监督学习,同时使用直接图像对齐/重投影损失,在立体设置中强制使用深度网络生成照片一致的密集深度图。这两种方法依赖于一种特殊的视差估计器。为了避免这种情况,Zhou等人[131]提出了一种迭代方法,从随机初始化的网络开始。在每次迭代中,它计算从左到右图像的匹配,以及从右到左图像的匹配。然后,它选择高置信度匹配项,并将其作为标记数据添加,以便在后续迭代中进行进一步训练。利用等式n的左右一致性计算置信度。(12).

7.2加入额外线索

有几项工作结合了额外的线索和约束,以提高视差估计的质量。示例包括平滑度[70]、左右一致性[70]、最大深度[70]和比例不变梯度损失[121]。此类线索还可以是辅助信息的形式,例如用于指导视差估计网络的语义线索。下面,我们将讨论其中一些作品。

(1) 平滑度。

通常,可以假设相邻像素具有相似的视差值。这种平滑度约束可以通过最小化:

•在x处预测的视差与在x周围某个预定义邻域Nx内每个像素y处预测的视差之间的绝对差值:这里,N是像素总数。

•一阶梯度的大小∇ 在估计的视差图[68]中:

估计视差的二阶梯度的大小[127],[132]:

由图像的二阶梯度加权的估计视差图的二阶梯度[70]:

(2) 一致性。

Zhong等人[70]介绍了循环一致性损失,其构造如下。考虑左图像Ilef T和利用右图像上定义的视差图将右图像翘曲到左图像坐标的合成图像ILEF T。通过使用左图像的差异将左图像扭曲到右图像坐标,然后使用右图像的差异将其扭曲回左图像,也可以生成第二个合成的左图像〜Ilef t。左图的三个版本提供了两个约束条件:Ilef t=~Ilef t和Ilef t=~Ilef t,它们可用于调整视差图。Godard等人[133]引入了左右一致性项,这是循环一致性的线性近似。丢失试图使左视图视差图与投影的右视图视差图相等。定义如下:

式中,d是右侧图像的视差,但被重新投影到左侧图像的坐标上。

(3) 最大深度启发法。可能有多种翘曲功能可以实现类似的翘曲损失,尤其是对于无纹理区域。为了在这些区域提供强大的规则化,Zhong等人[70]使用最大深度启发式(MDH)[134]定义为所有深度/差异的总和:

(4) 尺度不变梯度损失[121]。定义如下:

其中A={1,2,4,8,16},x=(i,j),fi,j≡ f(i,j),以及

这种损失会影响相邻像素之间的相对深度误差。这种损失刺激网络比较每个像素在本地邻域内的深度值。它强调深度不连续性,刺激锐利边缘,并增加均匀区域内的平滑度。

(5) 结合语义线索。

一些论文结合了其他线索,如法线[135]、分割[68]和边缘[76]图,以指导视差估计。这些可以在一开始就提供,例如,使用[76]中的单独方法进行估计,或者与视差图一起进行估计。Qi等人[135]提出了一种机制,使用深度图来优化正态估计的质量,使用正态图来优化深度估计的质量。这是使用双流网络完成的:深度到法线网络用于使用初始深度估计进行法线图细化,而法线到深度网络用于使用估计的法线图进行深度细化。

Yang等人[68]和Song等人[76]通过将语义图(在[68]的情况下是分割遮罩,在[76]的情况下是边缘特征)与3Dcost volumes 叠加,来整合语义。Yang等人[68]通过使用定义为重建误差、平滑度项和分割误差加权和的损失函数,联合训练视差估计网络和分割网络。Song等人[76]进一步将边缘线索纳入边缘感知平滑度损失中,以惩罚平坦区域的剧烈深度变化。此外,为了允许对象边界处的深度不连续性,基于从边缘检测子网络获得的梯度图定义了边缘感知平滑度损失,这在语义上比原始像素强度的变化更有意义。

Wu等人[79]介绍了一种将多尺度4Dcost volumes 与使用分割子网络获得的语义特征相融合的方法。该方法使用左右图像的特征作为语义分割网络的输入,类似于PSPNet[136]。然后,从分割网络分类层的输出中获得每个图像的语义特征。通过将每个一元语义特征与其对应的一元语义特征在每个视差水平上从相反的立体图像连接起来,获得4D语义代价量。空间金字塔cost volumes 和语义cost volumes 都被送入三维多成本聚合模块,该模块使用编码器-解码器和三维特征融合模块,以成对方式将它们聚合为单个三维cost volumes ,从最小的体积开始。

总之,将语义特征添加到代价体中可以改进精细细节的重建,尤其是在对象边界附近。

7.3领域适应和迁移学习

用于深度估计的深度架构受到域转移问题的严重影响,当对与训练阶段使用的图像有显著差异的图像执行推理时,域转移问题会阻碍其有效性。例如,当在室内和室外环境之间移动、从合成数据移动到真实数据时(参见图7),或者在不同的室外/室内环境之间移动,以及更改相机模型/参数时,可以观察到这一点。因此,在一个领域(例如,通过使用合成数据)上训练的深度学习网络在应用于另一个领域(例如,真实数据)时会受到影响,导致对象边界模糊,以及在不适定区域(例如对象遮挡、重复模式和无纹理区域)中出现错误。这些被称为泛化故障[137]。

有人提出了几种策略来解决这个领域偏见问题。它们可以分为两类:通过微调进行的自适应(第7.3.1节)和通过数据转换进行的自适应(第7.3.2节)。在这两种情况下,自适应都可以离线或在线。

7.3.1通过微调进行自适应

这类方法通过首先对来自特定域的图像(如[22]中的合成图像)训练网络,然后对来自目标域的图像进行微调,来执行域自适应。一个主要的困难是从目标域为立体或多视图图像收集准确的真值深度。在实际应用中,依靠主动传感器(如激光雷达)获取此类有监督的标记数据是不可行的。因此,最近的作品,例如[129]、[137]、[138]依靠现成的立体算法以无监督的方式获得真值视差/深度标签,以及最先进的置信度来确定现成立体算法测量的正确性。后者在[129]、[138]中用于区分可靠和不可靠的视差测量,选择前者并微调预训练模型,例如DispNet[22],使用更小且稀疏的点集,就像它们是地面真值标签一样。

Pang等人[137]也使用了与[129]、[138]类似的方法来解决泛化问题。然而,该方法利用了尺度多样性,即对立体对进行上采样,通过对在输入的多个分辨率下获得的预测进行迭代优化,使模型能够以亚像素精度的局部方式执行立体匹配。

注意,用于视差估计的自监督和弱监督技术,例如[133]、[139]、[140]、[141]也可用于离线域自适应。特别是,如果目标域的立体对可用,则可以使用重投影损耗以无监督的方式对这些技术进行微调,见第7.1.2和7.1.3节。

虽然有效,但这些离线适应技术降低了方法的可用性,因为用户每次接触新领域时都需要训练模型。因此,最近几篇论文发展了在线适应技术。例如,Tonioni等人[84]通过将自适应转换为一个持续学习过程来解决域转移问题,通过这个过程,立体网络可以根据相机在实际部署过程中收集的图像在线演化。这是以无监督的方式实现的,方法是计算当前帧上的错误信号,通过单个反向传播迭代更新整个网络,并移动到下一对输入帧。为了保持足够高的帧速率,Tonioni等人[84]提出了一种轻量级、快速且模块化的架构,称为MADNet,它允许对整个网络的子部分进行相互独立的训练。这使得视差估计网络能够适应看不见的环境,而无需以大约25 fps的速度进行监控,同时实现与DispNetC相当的精度[22]。类似地,Zhong等人[142]使用视频序列从随机初始化开始在线训练深层网络。他们在模型中使用LSTM来利用预测期间的时间信息。

钟等人等人〔142〕和ToNIII等人〔84〕分别考虑在线适应与初始训练。另一方面,Tonioni等人[143]将适应程序与学习目标结合起来,以获得一组适合在线适应的初始参数,即它们可以快速适应看不见的环境。这是使用[144]的模型不可知元学习框架实现的,这是一个明确的学习适应框架,使立体方法能够以无监督的方式快速、持续地适应新的目标领域。

7.3.2通过数据转换进行调整

这类方法将一个域的数据转换为与另一个域的数据在样式上相似。例如,Atapour Abarghoue等人[145]提出了一种两阶段的方法。第一阶段使用合成数据训练深度估计模型。第二阶段是训练如何将合成图像的风格转换为现实世界的图像。通过这样做,首先将真实图像的样式转换为与合成数据的样式相匹配,然后将其输入到基于合成数据训练的深度估计网络中。Zheng等人[146]通过将合成图像转换为更逼真的图像,并使用它们来训练深度估计网络,实现了相反的效果。赵等人(147)考虑合成到真实[146 ]和现实合成[145 ],[148 ]翻译。两位翻译人员以对抗性的方式接受训练,使用对抗性损失和循环一致性损失。也就是说,合成图像在转换为真实图像并转换回合成域时,应该与原始图像相似。

虽然这些方法已用于单目深度估计,但它们适用于(多视图)立体匹配方法。

7.4学习网络架构

许多深入评估的研究工作都花在手动优化网络架构上,但如果也能从数据中学习到最佳网络架构及其参数呢?Saika等人[149]展示了如何使用和扩展现有的AutoML技术[150],以有效地优化基于立体的深度估计的大规模U-Netlike编码器-解码器架构。传统的AutoML技术具有极端的计算需求,限制了它们在小规模分类任务中的使用。Saika等人[149]将可微架构搜索(DART)[151]应用于编码器-解码器架构。它的主要思想是拥有一个包含所有架构选择的大型网络,并通过优化选择该网络的最佳部分。这可以简化为一个连续的优化问题,再加上常规的网络训练,这将导致一个双层优化问题。在[22]的改进版本[75]的DispNet上进行的实验表明,与[75]的基线DispNet相比,自动优化的DispNet(AutoDispNet)在参数数量大致相同的情况下产生了更好的性能。论文还表明,自动优化的好处将延续到大型堆叠网络。

8讨论和比较

表3和表4分别比较了本文中调查的方法在标准数据集上的性能,如KITTI2015(成对立体匹配方法)和DTU、SUN3D和ETH3D(多视图立体匹配方法)。这些方法中的大多数都是在这些公开数据集的子集上进行训练的。一个好的视差估计方法,一旦经过适当的训练,不仅在公开的基准上,而且在任意的新图像上,都应该获得良好的性能。它们不应该在每次使用领域发生变化时都需要重新训练或微调。在本节中,我们将了解其中一些方法如何在新的看不见的图像上执行。我们将首先在第8.1节中描述评估协议、将使用的图像以及评估指标。然后,我们将在第8.2节和第8.3节中讨论这些方法的性能。

8.1评估协议

我们考虑几个关键的方法,并评估他们的性能在立体匹配子集的AdoLaskPE数据集(34),并在一个内部收集的四幅图像集。这一选择背后的动机是双重的。首先,ApolloScape数据集由在户外自动驾驶环境中拍摄的立体图像组成。因此,它表现出与不受控制的复杂和变化的光照条件以及严重遮挡有关的若干挑战。第二,数据集是新颖的,现有的方法没有经过训练或暴露于该数据集。因此,它可以用来评估这些方法如何推广到新的场景中。在这个数据集中,通过从激光雷达中积累3D点云,并将3D CAD模型拟合到单独移动的汽车上,获得了真值差异。我们还使用了四幅尺寸分别为W=640和H=480的内部图像,见图9,这是专门为挑战这些方法而设计的。其中两幅是真实场景:一幅是由停车场中的自行车组成的自行车场景,另一幅是由办公室家具组成的室内办公桌场景。我们使用一个移动的立体相机来捕捉多个立体对,并从运动构造(SfM)来构建场景的三维模型。然后,我们从真实相机的视点渲染深度图。高度可靠地估计深度的区域将被用作真值。剩下的两张图片是合成的,但看起来很真实。它们包括具有复杂结构的对象,例如植物等薄结构、颜色或纹理均匀且图案重复的大表面,这给基于立体的深度估计算法带来了一些挑战。

我们测试了发表在9篇论文(2018年至2019年)中的16种基于立体匹配的方法,见下文。我们使用作者提供的网络权重。

(1) AnyNet[88]:它是一个四阶段网络,以从粗到细的方式构建3Dcost volumes 。第一阶段通过搜索小视差范围来估计低分辨率视差图。后续阶段使用残差学习来估计细化的视差图。

(2) DeepPruner[83]:它将深度学习与PatchMatch[101]相结合,通过自适应地删减可能较大的对应搜索空间来加速推理。已经提出了两种变体:DeepPruner(最佳)和DeepPruner(快速),前者将成本降低了4倍,后者将成本降低了8倍。

(3) DispNet3[75],是DispNet[22]的一个改进版本,其中遮挡和视差图是联合估计的。

(4) GANet[85]:它将正则化块中的大量3D卷积层替换为(1)两个3D卷积层,(2)半全局聚合层(SGA)和(3)局部引导聚合层(LGA)。SGA和LGA层捕获局部和整体图像成本相关性。它们旨在提高具有挑战性的区域(如遮挡、大的无纹理/反射区域和薄结构)的精确度。

(5) HighResNet[32]:为了在对高分辨率图像进行操作时同时优化空间分辨率和深度分辨率,该方法使用从粗到精的层次结构以增量方式搜索对应关系。其分层设计还允许随时按需报告差异。

(6) PSMNet[64]:它逐步规范化了低分辨率4Dcost volumes ,根据特征金字塔进行估算。

(7) iResNet[63]:初始视差和学习的特征用于计算特征恒常性映射,该映射衡量立体匹配的正确性。然后将初始视差图和特征恒常性图送入子网络进行视差细化。

(8) Unpadpt[129]:这是一种无监督的自适应方法,可以在没有任何基本事实信息的情况下进行微调。它首先使用KITTI 2012训练数据集对DispNet-Corr1D[22]进行训练,然后将网络调整为KITTI 2015和Middlebury 2014。

(9) SegStereo[68]:这是一种无监督视差估计方法,使用分割模板来指导视差估计。分割图和视差图都是通过端到端网络联合估计的。

方法(1)至(7)由真值深度图监督,而方法(8)和(9)是自监督的。我们使用以下定义的总均方根误差(RMSE)来比较它们在运行时的精度:

Bad-n误差定义为估计视差偏离真值超过n个像素的像素百分比。我们使用n∈ {0.5, 1, 2, 3, 4, 5}. Bad-n误差考虑了误差的分布和传播,因此可以更好地了解方法的准确性。除了准确性,我们还报告了运行时的计算时间和内存占用。”

8.2计算时间和内存占用

从表5中,我们可以区分三种方法;慢速方法,例如PSMNet[64]、DeepPruner(最佳)和(快速)[83]以及GANet[85],需要1秒以上的时间来估计一个视差图。它们在运行时还需要3GB到10GB(对于DispNet3[75])的内存。因此,这些方法很难在移动平台上部署。平均速度方法,例如AnyNet[88]和iResNet[63],在大约一秒钟内生成视差图。最后,快速方法,例如HighResNet[32],所需时间不到0.1秒。一般来说,使用3Dcost volumes的方法比使用4Dcost volumes的方法更快,占用的内存更少。然而,有两个例外:iResNet[63]和DeepPruner[83],它们使用3Dcost volumes,但在运行时需要大量内存。虽然iResNet处理大小为W=640、H=480的图像需要不到一秒的时间,因为它使用2D卷积来调整成本,但DeepPruner[83]需要超过3秒的时间。我们还观察到,HighResNet[32]使用4Dcost volumes ,但采用分层方法按需产生差异,在计算时间方面非常有效,因为它只需要37毫秒,比使用3Dcost volumes 的AnyNet[88]快近8倍。还要注意的是,AnyNet[88]可以在移动设备上运行,因为它的内存效率很高。

8.3重建精度

表5显示了第8.1节所述每种方法的平均RMSE。我们报告了由141幅看起来或多或少像KITTI2012图像的基线子集(以下简称基线)和另一个由33幅具有挑战性照明条件的图像组成的子集(以下简称挑战)的结果。在这里,我们主要关注不同方法之间的相对比较,因为观察到的一些高误差可能是由于ApolloScape[34]数据集中获取基本事实的方式,而不是方法本身。

我们观察到,这些方法在这两个子集上的表现几乎相同。然而,与KITTI2012和KITTI2015等标准数据集上报告的误差相比,大于8像素的重建误差非常重要。这表明,当训练和测试之间存在显著的领域差距时,重建精度会受到显著影响。

我们还在图10的Bad-n曲线上观察到相同的趋势,在所有方法中,超过25%的像素的重建误差大于5个像素。Bad-n曲线显示,前景像素的误差较大,即对应于汽车的像素,超过55%的像素的误差大于3像素(背景像素的误差为35%)。有趣的是,表5和图10显示,大多数方法实现了类似的重建精度。唯一的例外是iResNet[63]在Kitti2015和ROB[152]上进行了训练,这两个版本的像素数分别超过90%和55%,误差大于5个像素。在所有的方法中,只有不到5%的像素的误差小于2像素。这表明,实现亚像素精度仍然是未来研究的一个重要挑战。

请注意,SegStereo[68]是一种自监督的方法,其性能与许多监督方法相似或更好。此外,Tonioni等人[129]的无监督自适应方法采用了在KITTI 2012上训练的基线DispNet-Corr1D网络[22],并将其适应KITTI 2015和Middlebury 2014,在前景区域实现了最佳性能之一。

关于估计差异的视觉质量,见图11,我们观察到大多数方法都能够恢复树木的整体形状,但无法重建细节,尤其是树叶。在平坦区域和物体边界附近,重建误差很高。此外,如图11-(b)所示,高反射材料和恶劣的照明条件仍然是这些方法的一大挑战。补充材料提供了关于图9的四对立体匹配的更多结果。

9.未来的研究方向

基于立体的深度估计的深度学习方法已经取得了很好的效果。然而,这一主题仍处于初级阶段,有待进一步发展。在本节中,我们将介绍一些当前的问题,并强调未来研究的方向。

(1) 摄像机参数。

本文介绍的大多数基于立体的技术都需要经过校正的图像。多视图立体技术使用平面扫描体积或反向投影图像/特征。图像校正和PSV都需要已知的摄像机参数,这在野外很难估计。许多论文试图通过联合优化相机参数和3D场景的几何结构来解决单目深度估计和3D形状重建的这个问题[153]。

(2) 照明条件和复杂的材料特性。恶劣的光照条件和复杂的材料特性仍然是当前大多数方法面临的挑战,例如图11-(b)。将目标识别、高级场景理解和低级特征学习相结合是解决这些问题的一个有希望的途径。

(3) 空间和深度分辨率。目前的大多数技术不处理高分辨率的输入图像,通常生成低空间和深度分辨率的深度图。深度分辨率特别有限,使得这些方法无法重建薄结构,例如植被和头发,以及距离相机很远的结构。尽管细化模块可以提高估计深度图的分辨率,但与输入图像的分辨率相比,增益仍然很小。这一点最近已通过分层技术得到解决,该技术通过限制中间结果的分辨率,允许按需报告差异[32]。在这些方法中,低分辨率深度地图可以实时生成,因此可以在移动平台上使用,而高分辨率地图需要更多的计算时间。实时生成高空间和深度分辨率的精确地图仍然是未来研究的挑战。

(4) 实时处理。大多数用于视差估计的深度学习方法使用3D和4Dcost volumes ,这些cost volumes 使用2D和3D卷积进行处理和正则化。它们在内存需求和处理时间方面都很昂贵。开发轻量级的、随后快速的端到端深度网络仍然是未来研究的一个具有挑战性的途径。

(5) 差异范围。现有技术统一离散视差范围。这导致了多个问题。特别是,尽管重建误差在视差空间中可能很小,但在深度空间中可能会导致米的误差,尤其是在远距离。缓解这种情况的一种方法是在日志空间中均匀地对视差和深度进行分类。此外,改变差异范围需要对网络进行再训练。将深度视为一个连续体可能是未来研究的一个有希望的途径。

(6) 训练。

深度网络严重依赖于使用真值标签标注的训练图像的可用性。这对于深度/差异重建来说是非常昂贵且劳动密集的。因此,这些方法的性能及其泛化能力可能会受到显著影响,包括将模型过度拟合到特定领域的风险。现有技术通过设计不需要3D标注的损失函数,或通过使用领域适应和转移学习策略来缓解这一问题。然而,前者需要经过校准的摄像机。领域适应技术,尤其是无监督的领域适应技术[138],最近吸引了更多的关注,因为有了这些技术,人们可以用容易获得的合成数据和真实世界的数据进行训练。他们还以无监督的方式在运行时适应不断变化的环境,只要收集到新的图像。早期的结果非常令人鼓舞,因此预计未来会出现类似ImageNet但用于3D重建的大型数据集。

(7) 从数据中自动学习网络结构、激活功能及其参数。现有的研究大多集中在设计新的网络结构和新的训练方法来优化其参数。直到最近,一些论文才开始关注自动学习最优架构。早期的尝试,例如[149],侧重于简单的架构。我们期望在未来看到更多关于自动学习复杂视差估计结构及其激活函数的研究,例如,使用神经进化理论[154],[155],这将免除手动网络设计的需要。

10结论

本文综述了利用深度学习技术进行立体深度估计的最新进展。尽管这些技术还处于起步阶段,但它们正在取得最先进的成果。自2014年以来,我们进入了一个新时代,数据驱动和机器学习技术在基于图像的深度重建中发挥着核心作用。我们已经看到,从2014年到2019年,在主要的计算机视觉、计算机图形学和机器学习会议和期刊上发表了150多篇关于该主题的论文。即使在本次提交的最后阶段,也有更多的新论文发表,这使得人们很难跟踪最近的发展,更重要的是,了解它们的差异和相似之处,尤其是对于该领域的新来者。因此,这项及时的调查可以作为读者在这个快速发展的研究领域中导航的指南。

最后,本次调查还未涉及几个相关主题。例如,Han等人[153]最近调查了使用深度学习的基于图像的3D对象重建,以及基于单目和视频的深度估计,鉴于在过去5到6年中发表了大量关于该主题的论文,这需要单独的调查论文。其他主题包括光度立体匹配和主动立体匹配[156],[157],这超出了本文的范围。

你可能感兴趣的:(综述-深度学习的双目深度估计:下)