2021 cvpr A Decomposition Model for Stereo Matching翻译文档

摘要

本文提出了一种立体匹配的分解(Decomposition)模型,解决了随着分辨率的增加,计算成本(时间和存储成本)过度增长的问题。为了减少原始分辨率下立体匹配的巨大代价,我们的模型只在非常低的分辨率下进行密集匹配,而在不同的高分辨率下使用稀疏匹配逐级恢复丢失细节的视差(sparse matching at different higher resolutions to recover the disparity of lost details scale-by-scale)。在立体匹配分解后,我们的模型迭代融合稀疏和稠密的视差图从邻近尺度与遮挡感知掩模。在此基础上,提出了一种改进的融合网络。与PSMNet和GANet等高性能方法相比,我们的方法在获得可比的视差估计结果的同时,速度提高了10-100。

1、 介绍

立体匹配的目的是从一对图像中估计视差。它有各种下游应用,如3D重建、AR、自动驾驶、机器人导航等。尽管对立体匹配进行了多年的研究,但随着分辨率的提高,许多先进的立体匹配方法仍面临着计算开销和内存消耗过大的问题。这一问题限制了现有方法处理高分辨率图像的能力,并限制了在实际情况下使用立体匹配方法的内存/速度限制。
本文提出了一种立体匹配的分解模型。与许多最先进的方法的过度增长相比,我们的模型将增长率降低了几个数量级,如图1所示。我们模型的设计灵感来自以下两个观察结果:
(1)没有必要在最高分辨率下估计所有像素的视差,例如墙壁和地板上的视差。只要在降采样过程中内容没有明显丢失,就可以在低分辨率下有效估计大部分区域的视差,然后在高分辨率下细化。
(2)它只需要考虑下采样过程中丢失的一些图像细节的视差估计。幸运的是,这些丢失的细节是稀疏的,它们的立体匹配也是稀疏的(即左边图像丢失的细节大多只匹配右边图像丢失的细节)。与密集匹配相比,稀疏匹配意味着更少的时间和存储开销。

图1:随着分辨率的增加,最先进的方法在1080 Ti GPU和11GB内存上的时间成本的增长。一些曲线停止增长是因为对应的方法不能在GPU上以期望的分辨率运行。与GANet[48]相比,我们的模型要快100倍。与PSMNet[5]相比,我们的模型几乎提高了15倍的速度。与DeepPruner[8]相比,我们的模型实现了几乎两倍的运行速度和更低的内存消耗。

基于第一个观测结果,我们的模型只在一个非常低的分辨率(如20x36,称为参考分辨率)下运行密集匹配,以确保在降采样期间不会丢失大多数区域的视差估计。在第二次观测的基础上,我们的模型使用了一系列的稀疏匹配,每一个都有一个合适的更高分辨率,来逐级恢复丢失细节的视差。通过将原始立体匹配分解为最低分辨率的密集匹配和一系列高分辨率的稀疏匹配,可以显著降低原始立体匹配的巨大代价。

我们模型的特定pipeline如图2所示。我们的模型在参考分辨率使用全成本量和成本正则化稠密匹配。从参考分辨率开始,按比例执行一系列操作,直到达到原始输入分辨率。这些操作包括四个模块:细节丢失检测、稀疏匹配、视差上采样和视差融合。四个模块的具体实现如下:(1)细节丢失检测模块是基于相邻尺度深度特征间的平方差,在无监督的情况下学习丢失图像的细节。(2)在稀疏匹配模块中,在检测到的丢失细节的指导下,通过互相关联和soft-max估计稀疏视差图。(3)在视差上采样模块中,通过内容感知权值将之前尺度估计的视差图上采样到当前尺度的分辨率。(4)在视差融合模块中,通过一种感知遮挡的软掩模将视差上采样模块和稀疏匹配模块的结果融合。该模块还使用了一个细化网络来改进融合的视差图。
在这里插入图片描述
图2:我们模型的概述。给定一对图像,首先提取特征图进行第l级匹配,然后在最低分辨率l = 0处进行密集匹配,在不同的较高分辨率l ≥1处进行稀疏匹配。对计算得到的稠密和稀疏视差图进行分层融合,以恢复原始分辨率l = l的稠密视差图。该融合包括视差上采样、视差融合和细化。W 是左右视图之间的warp操作。- 表示相邻层特征图的平方差的计算。详情请参考我们的方法部分。

本文对立体匹配的复杂性进行了分析。为方便起见,我们将匹配的复杂度定义为搜索空间[21]的大小。我们证明了原始稠密立体匹配的复杂度随输入分辨率的增加呈三次幂增长,而稀疏匹配的复杂度只以对数增长。在我们的模型中,参考分辨率下的密集匹配的复杂度是固定的,并且与输入分辨率无关。同时,可以有效地实现细节丢失检测、视差上采样和视差融合三个操作。

在实验中,我们比较了我们的模型与最先进的方法在计算成本和内存消耗方面的增长。结果表明,我们的模型降低了几个数量级的增长率。我们还将我们的模型与最先进的方法进行比较
场景流数据集[23],KITTI 2015数据集[24,25,26],Middlebury数据集[34]。结果表明,我们的模型具有更快的运行时间和更低的内存成本,与最先进的方法相当,甚至更好。

2、 Related Work

立体匹配已经研究了几十年[39,22,33]。在研究的初期,研究者主要关注双目视觉的分析及其计算框架的构建[39,30,16,22,29]。随后,提出了一系列传统的立体匹配方法来改进框架,包括局部模型[2,13,45]、全局模型
[4,19,36]和半全局模型[15,35]。最近,基于深度学习的方法出现了,并在立体匹配中发挥着最重要的作用[47,23,17,5]。虽然传统方法和深度学习方法都取得了很好的性能,但随着分辨率的提高,它们仍然存在计算代价增长过快的问题。

2.1 Traditional Methods

为了解决这一问题,研究人员提出了许多减小搜索空间大小的方法,要么改进稠密匹配中的操作,要么转向稀疏到稠密的方法。第一个角度,研究人员提出从图像大小[27,9]、匹配窗口[31]或视差空间[28,9]等方面降低成本聚合的复杂性。此外,还提出了半全局匹配(SGM)[14],从各个方向进行路径优化来逼近全局能量函数。在改进高密度匹配操作的基础上,我们将高分辨率的高密度匹配替换为稀疏匹配,以降低复杂度。第二方面,研究者主要关注立体匹配中的稀疏性[10,3,12,21,35]。他们提出在提取的关键点上计算稀疏视差图,然后根据稀疏结果推断稠密的视差图,如高效的大规模立体[10]和局部平面扫频[35]。基于patchmatch的方法[3,12,21]与之相似,但大多是通过随机初始化生成稀疏结果。它们基于这样的假设,即区域的至少一个像素是用接近地面真相的标签初始化的。不同于只使用局部信息的稀疏匹配,我们使用最低分辨率的密集匹配来提供全局信息,使用稀疏匹配来恢复高分辨率的局部细节。

2.2 Deep Methods

在深度学习方法中,研究者试图从轻量级网络两个方面解决计算开销和内存消耗过度增长的问题,并以开销量改进计算。在第一个方面,大多数研究者用专门设计的模块来替代成本量上昂贵的操作[48,43,40,20]。还有一些改进了整个网络架构,实现了更少的计算开销[18,41,37]。但上述方法均忽略了成本量的影响。当分辨率增加时,成本量会导致计算成本和内存消耗的立方增长。为了进一步解决这一问题,研究者提出了基于大部分成本量内容是冗余的假设,对成本量计算进行改进。主要是在初始估计的基础上,缩小差距空间,然后将结果由粗向上抽样[44,8,6,46,7,11],以成本量改进计算。

其中DeepPruner[8]表现良好。他们使用最小和最大的视差回归CNN样本固定大小的候选视差匹配在一个更高的分辨率。他们还设计了一个轻量级的体系结构,以便更有效地进行成本聚合和回归。但是,它们忽略了高分辨率细节的计算,这些细节在低分辨率匹配中丢失,并且在小采样规模下难以恢复。与上面的粗到细的方法不同,我们的模型是粗+细。在立体匹配分解过程中,我们不再只依赖粗尺度的初始估计来生成细尺度的细节信息,而是保留了细节信息。因此,我们的模型可以在很低的分辨率下执行密集匹配,以减少搜索空间的大小,但不会造成显著的信息损失。此外,我们从一个新的角度解决了这一问题,提出了一种新的立体匹配流水线,将上述方法集成到模型的每个步骤中,构建更强大的立体匹配,这是对当前研究主流的一个很好的补充。

3、Method

3.1. Multi-Scale Stereo Matching

立体匹配是一个密集对应问题。典型的模型是通过多尺度分析,从左、右两个角度对不同区域进行穷举搜索,以减少不适定区域引起的歧义。为了更好地建模这个过程,我们将图像识别为一组区域在这里插入图片描述,其中Al代表每个尺度/级别l上的所有区域。耗尽搜索过程被建模为:
在这里插入图片描述
A ' l在这里插入图片描述分别表示左视图和右视图的图像区域。Dl是第1级估计的稠密视差图,或将成本量作为第1级+ 1级的输入。F(·)表示全匹配操作。F(·,Dl)表示基于Dl的全匹配操作。一些方法还包括φ(·),它代表不同层次的稠密视差图融合。

然而,F(·)具有很高的复杂性。假设Al的分辨率为Hl x Wl,视差空间大小为Dl,我们将F(·)在第l级的复杂度O定义为搜索空间的大小:
在这里插入图片描述
然后,穷举搜索过程的整个复杂度为:
在这里插入图片描述
重写公式3后,得到以下定理:
定理1:设s{2,3,···}为相邻层间上采样比的大小,1 <C ≤ 8 /7为常数值,O(·)表示紧上界,则穷举搜索过程的复杂度O为:
在这里插入图片描述
定理1揭示了在高分辨率图像上使用穷举搜索时复杂度的立方增长。具体证明请参考补充资料。

3.2. Decomposition Model

如前所述,只要在降采样过程中内容没有明显丢失,大多数区域(我们称之为粗粒度区域)的视差都可以在低分辨率下有效估计,然后在高分辨率下细化。对于在降采样过程中丢失的图像细节,我们称之为细粒度区域,在高分辨率下估计其差异。因此,将l级的图像面积Al分解为:
在这里插入图片描述
其中 CAl和 FAl分别表示第1级的粗粒度区域和细粒度区域。

立体匹配的粗粒度的区域,有细密纹理的区域是适合进行分别在低和高分辨率,我们分解原始立体匹配成一个完整的匹配在最低水平和一系列稀疏匹配其余级别,如图2所示。我们的模型可以表述为:
在这里插入图片描述
其中Fb(·)为稀疏匹配操作,D l为第l级估计的稀疏视差图,∪表示视差上采样后的视差融合。我们模型中的细节损耗检测模块将检测出细粒度区域FAl。

计算Fb(·)的复杂度Oˆ为:
在这里插入图片描述
其中rspa,l是左侧视图中在降采样过程中丢失的稀疏细节的百分比,rdis,l是右侧视图中稀疏视差搜索空间相对于完整视差搜索空间大小Dl的百分比。不失一般性,我们用rspa,来近似rdis。这是因为左边视图中的细节的立体匹配只在右边视图的细节上进行搜索。rspa,l表示一行中细节像素的百分比,可以近似于在全视差搜索范围内要搜索的像素的平均百分比rdis,l。因此,Fb(·)的复杂度O可以重写为:
在这里插入图片描述
用Eq. 9和Eq. 2重写Eq. 3后,我们得到以下定理:
定理二:设s{2,3,···}为相邻层间上采样比的大小,C为常值,O(·)为紧上界,则模型的复杂度Oˆ为:
在这里插入图片描述
我们对数据进行了统计分析,证明定理2中的条件在大多数情况下是可满足的。具体来说,我们根据细节丢失检测模块的内容感知结果进行统计分析(见第3.3.1节)。如表1所示,Scene Flow数据集中几乎所有的数据在每一层都满足条件rl p C/s3l, C值很小,说明定理2的条件在大多数时间都成立。与定理1所示的穷举搜索过程的复杂度呈指数级增长相比,我们的模型中立体匹配的复杂度仅随层数L线性增长。

3.3 Implementation

如图2所示,我们首先使用U-Net[32]获取每个层次l上的深度特征Fl进行立体匹配。然后在最低分辨率l = 0时,基于稠密匹配计算稠密视差图D0。在检测到的丢失细节的指导下,利用稀疏匹配估计稀疏视差图Dˆl。我们融合Dl-1和Dˆl来计算稠密的视差图Dl,作为下一层的输入或模型的输出。

3.3.1 Decomposed Matching

3.3.1.1 Dense Matching.

在最低的层次上,我们遵循前面的方法,建立一个完整的成本量进行差异回归[17,5]。由于搜索空间的大小可以忽略不计,因此占用的计算资源很少。在用softmax进行视差回归之前,我们还使用代价正则化对代价量进行了校正。代价正则化由8个三维卷积组成,每个卷积都跟随一个批化层。具体结构请参考补充资料。

3.3.1.2 Detail Loss Detection

我们将F Al定义为在低能级中会消失的细节。我们使用二进制掩模MF a来表示丢失细节的位置,该位置由网络FDLD根据Fl和上采样f0 l 1之间的平方差来计算。
在这里插入图片描述
受益于无监督学习,我们不需要额外的数据注释来进行训练。

3.3.1.3 Sparse Matching

在获得细粒度区域后,我们的重点转向如何对提取的{F Al} l= l l=0进行稀疏匹配。它不适合使用成本量表示,因为F Al是内容感知的,其形状和大小是动态的,而不是固定的。相反,我们选择直接计算视差图。具体来说,我们通过互相关来计算成本:
在这里插入图片描述
其中F ’ l和F ’ l分别为左、右视图的深度特征,在这里插入图片描述然后我们使用softmax得到概率分布:
在这里插入图片描述
我们在计算的概率分布上回归稀疏视差映射为:
在这里插入图片描述
与完全匹配相比,稀疏匹配不仅减少了A ' l
上的点数,而且消除了大量在在这里插入图片描述上冗余匹配。具体反向传播方程见补充资料。

3.3.2 Fusion

Disparity Upsampling.

在得到D0和{D l} l= ll =1后,我们将它们分层融合,得到最终输出的最高层次的视差图。在每一层,我们首先以内容感知的方式将稠密的视差图从之前的层次d1上传到当前的层次d0l。通过三次卷积运算获取内容感知权值,分别输入当前层次的左侧特征图A l和前一层次的稠密视差图Dl 1

Disparity Fusion

根据Eq. 7,我们可以将融合过程建模为集合的并集,就像多幅图像的叠加,我们称之为硬融合。然而,由于遮挡的影响,这种硬融合在实际应用中表现较差。在稀疏匹配中,遮挡导致匹配歧义严重,而细粒度区域包含许多容易出现遮挡的边缘。因此,我们提出将稀疏视差图D l和上采样稠密视差图d0l通过学习掩模进行融合,我们称之为软融合。具体来说,我们使用一个回归网络来生成软掩模Ml。回归网络包含三个二维卷积运算和一个sigmoid激活函数。回归网络的输入是左特征F l、上采样稠密视差图d0l、稀疏视差图D l、当前细粒度区域的掩模MF A l和稀疏匹配的鲁棒掩模V l的拼接。像素级的鲁棒性可以用稀疏匹配中的方差来表示:
在这里插入图片描述
其中在这里插入图片描述,然后,通过回归网络FREG生成软掩模公式为:
在这里插入图片描述
θ为回归网络的参数,cat(·)为串联运算。在得到软掩模Ml后,计算稠密和稀疏视差图的软融合为:
在这里插入图片描述

Refinement.

我们进一步提出了一种细化网络来提高当前密集视差图D L的亚像素精度,具体地,我们使用D L来warp正确的特征图。然后,我们将warp的右特征映射F ' 0l,左特征映射F l和当前视差映射D l连接到一个细化网络FREF:
在这里插入图片描述
θ是求精网络的参数,求精网络包含7个卷积运算。所有卷积后面都跟着一个relu激活函数和一个批标准化级别,除了最后一个卷积后面只跟着一个批标准化级别。

4. Experiment

在本节中,除了在高分辨率Middlebury-v3[34]上进行复杂度分析外,我们主要基于Scene Flow数据集[23]对模型进行分析。我们还将我们的模型与基于Scene Flow[23]、KITTI 2015[24, 25, 26]和Middlebury-v3[34]的最新方法[23,17,5,18,37,48,41,8,1,40,42]进行了比较。

我们在3个Nvidia 1080Ti gpu上使用Adam优化(β1 = 0.9, β2 = 0.999, batch size为18)来训练我们的端到端模型。我们设置最大视差为216,在训练过程中对每个输入图像进行颜色归一化。对于Scene Flow数据集,我们训练我们的模型20个epoch,学习率为0.001,然后每7个epoch衰减一半。对于KITTI 2015数据集,我们在混合KITTI 2012和KITTI 2015训练集上对模型进行了500个epoch的微调。初始学习率设为0.001,在第200个epoch之后每100个epoch减少一半。至于Middlebury-v3,我们对场景流中预先训练的模型进行了微调。学习速率为300个epoch设置为0.001,然后为剩下的600个epoch更改为0.0001。

4.1. Analysis

4.1.1 Complexity Analysis(复杂度分析)

我们通过比较计算代价的增长速度来分析模型的复杂性。为了得到增长率的曲线,我们将Middlebury-v3中的图像重新调整大小,比如名为Australia的图像,以获得不同分辨率的输入序列。然后,我们用官方代码测试每个方法的运行时间。测试是在具有Cuda同步的1080Ti GPU上进行的。如图1所示,由于难以承受的内存消耗,大多数方法在高分辨率图像上停止工作,而我们的方法仍然可以在分辨率为5000 3500的图像上运行。当分辨率增加时,最先进的方法的时间成本也呈指数增长。与之不同的是,由于我们的立体匹配分解,我们的模型具有非常低的时间成本增长率。与高性能的方法GANet[48]相比,我们的模型要快100倍。与PSMNet[5]相比,我们的模型几乎提高了15倍的速度。对于DeepPruner[8],我们仍然可以实现几乎两倍的运行速度和更好的内存消耗性能,即使当前的实现使用固定大小的分解级别。根据定理2,我们的模型可以在动态或更大的分解规模下获得更好的速度和内存消耗。

4.1.2 Ablation Study

我们用不同的配置评估我们的模型,以了解模型中每个组件的有效性/影响。我们使用双三次上采样对预测进行上采样,并使用ground truth计算端到端点(EPE)。如表2所示,使用内容感知的上采样后,错误率有所降低。对每一层的稀疏结果进行融合后,错误率也有所提高。然而,改善甚微。因为EPE规在这表计算整个空间空间而稀疏的结果只提高了一点点区域各级l。因此,只在每一级非遮挡的细粒度区域上呈现上采样密集结果在这里插入图片描述和融合结果D 0 D l l的差异。如表3所示,融合结果D l优于密集结果D 0l,反映了考虑降采样导致细节丢失的必要性。此外,我们比较了硬融合和软融合的结果,以说明考虑遮挡问题的必要性。如表3所示,软融合优于硬融合。此外,我们还分析了我们的改进网络的有效性。如表2所示,通过细化网络,性能得到了显著提高。
在这里插入图片描述
表2:在Fusion步骤中获得的每个组件对场景流数据集的影响。Fusion表示第1级的融合步骤。
在这里插入图片描述
表3:非遮挡细粒度区域上采样的高密度结果D 0l和融合结果D 0 D l l,以及硬融合和软融合结果的说明。在场景流数据集上进行了实验。

4.1.3 Visualizing Results of Detail Loss Detection(细节丢失检测的可视化结果)

细节丢失检测的目标是找到每个尺度上的细粒度区域。我们将学习到的二进制掩模可视化,以了解检测器的有效性。如图3所示,薄的或小的物体被检测到在相应的l级,特别是在第一列和第三列的蓝色方框中。
在这里插入图片描述
图3:细节损耗检测和软掩模结果的可视化。倒数第二列的白色区域表示闭塞。第三列和第四列中的红色点表示丢失的细节,最后两列中的红色点表示学习到的软掩模。

4.1.4 Visualization of Soft Mask

我们比较了硬融合、软融合和软融合的可视化效果,以了解软融合的效果。如图3所示,大多数非鲁棒点,如闭塞点,经过软融合后被消除,尤其是在橙色框中。我们还发现,随着分辨率的增加,软注意的平均值逐渐变小。我们认为这是由于稀疏匹配的上下文减少,需要进行特征探索,如密集图网或变压器,以便更好地进行稀疏匹配的上下文学习。

4.2. Benchmark performance

Sceneflow: 按照前面的方法[8,40],我们根据运行时间是否超过100ms,将最先进的方法分为两部分。需要注意的是,一些方法的时间和内存成本是经过Cuda同步后在我们的1080Ti GPU上用相应的官方代码获得的,以便进行公平的比较。如表4所示,我们的方法在所有方法中取得了可比性的结果。与高性能方法相比,我们的模型降低了时间和内存成本的数量级,同时仍然实现了可比较的结果。我们还在补充材料中提供定性结果,以显示我们的模型在不同区域的估计,如薄或小的物体和大的无纹理区域.
在这里插入图片描述
表4:场景流数据集上的算法比较。表示统一设置Cuda同步后,用官方代码在我们机器上获得的结果。EP E为以像素为单位的平均绝对视差误差。比;3px是其预测的视差与他们的ground truth至少相差3像素的像素数。
KITTI 2015: 在KITTI 2015数据集中,如表5所示,参考方法的时间成本由官方声明获得,这意味着GPU类型不同以及Cuda同步未被使用的可能性。如表5所示,与高性能方法相比,我们的模型获得了可比较的结果,并且在复杂性方面有了显著的改进。对于运行时间小于100ms的方法,我们获得了最先进的结果。我们还提供了一些可视化的补充材料,以显示我们的模型在各种情况下的竞争估计。
在这里插入图片描述
表5:KITTI 2015数据集的算法比较。D1度量度量超过3个像素的视差异常值的百分比及其真实值的5%。(注:这里给出的时间并不是在统一的设置下测试的。如需公平比较,请参阅表4及图1)。
Middlebury-v3 在Middlebury-v3中,当大多数方法只能提供半分辨率时,我们基于全分辨率输入估计差异。图4显示了三个示例,以显示我们的模型在高分辨率图像上的能力。更多结果请参考补充资料。

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值