目录
摘要
问题:构建三维成本体积来规范和回归深度或视差,会受到高分辨率输出的限制,随着体积分辨率的增加,内存和时间成本会随着体积分辨率的增加而增加。
方案:首先,提出的成本体积是建立在一个特征金字塔编码几何和上下文在逐渐较细的尺度。然后,通过对上一阶段的预测,我们可以缩小每个阶段的深度(或视差)范围。随着越来越高的成本体积分辨率和深度(或视差)间隔的自适应调整,输出将以更粗到更精细的方式恢复。
2 相关工作
立体匹配:
一个典型的立体匹配算法包括四个步骤:匹配成本计算、匹配成本聚合、视差计算和视差细化。局部方法将相邻像素的匹配成本聚合,通常利用赢家所有策略来选择最优视差。全局方法构造了一个能量函数,并试图将其最小化,以找到最优的视差。
在GCNet中首次提出了广泛使用的立体三维成本体积,其中视差回归步骤使用soft argmin操作来求出最佳匹配结果。PSMNet进一步引入了金字塔空间池和三维沙漏网络,以实现成本体积正则化,并产生了更好的结果。GwcNet修改了三维沙漏的结构,并引入了组明智的相关性,形成了一个基于组的三维成本体积。HSM用层次设计构建了一个高分辨率图像的光模型。GANet构造了几个半全局聚合层和局部引导聚合层,以进一步提高其精度。DeepPruner是一种粗到细的方法,该方法提出了一个基于可微的补丁匹配的模块来预测每个像素的剪枝搜索范围。
虽然基于三维成本量的方法显著地提高了性能,但它们仅限于下采样的成本量,并依赖于插值操作来产生高分辨率的差异。我们的级联成本量可以与这些方法相结合,以提高视差精度和GPU内存效率。
3 方法
3.1 构建成本体积
构建3D成本体积需要三个主要步骤:首先,确定离散假设深度(或视差)平面。然后,我们将提取的每个视图的二维特征扭曲到假设平面上,构造特征卷,最后融合在一起构建三维成本卷。
像素计算成本计算通常在固有的不适态区域中是模糊的,如遮挡区域、重复模式、无纹理区域和反射表面。为了解决这个问题,通常引入多尺度的三维CNNs来聚合上下文信息,并规范可能被噪声污染的成本量。
立体匹配中的三维成本体积
PSMNet使用视差水平作为假设平面,视差的范围是根据特定的场景来设计的。由于左右图像已被校正,因此坐标映射由x轴方向上的偏移量确定:
其中,Cr(d)是指右视图变换后的x轴坐标,Xl是左视图的源x轴坐标。为了构建特征卷,我们使用沿x轴的转换将右视图的特征图扭曲到左视图。有多种方法可以构建最终的成本量。GCNet和PSMNet在不减少特征维度的情况下连接左特征卷和右特征卷。DispNetC计算关于左特征卷和右特征卷的完全相关性,并且只为每个视差水平生成一个单通道相关图。GwcNet提出了通过将特征划分为组并计算相关图在每个组的组相关性。
3.2 级联成本量
图3显示了W×H×D×F分辨率的标准成本体积,其中W×H表示空间分辨率,D为平面假设数,F为特征图的通道数。
假设的范围
如图4所示,由R1表示的第一阶段的深度(或视差)范围覆盖了输入场景的整个深度(或视差)范围。在接下来的阶段,我们可以基于前一阶段的预测输出,并缩小假设范围。因此,我们有Rk1=Rk·wk,其中Rk是第k阶段的假设范围,wk<1是假设范围的减少因子。
假设的平面时间间隔
我们也表示在第一阶段的深度(或视差)间隔为I1。与通常采用的单成本体积公式相比,初始假设平面间隔相对较大,可以产生粗深度(或视差)估计。在以下阶段,应用更精细的假设平面间隔来恢复更详细的输出。因此,我们有:Ik1=Ik·pk,其中Ik是第k阶段的假设平面区间,pk<1是假设平面区间的减少因子。
假设平面数
在第k阶段,给定假设范围Rk和假设平面区间Ik,相应数量的假设平面Dk由方程确定:Dk=Rk/Ik。基于级联公式,我们可以有效地减少假设平面的总数,因为假设范围在覆盖整个输出范围的同时,逐级地减少。
空间分辨率
根据特征金字塔网络的实践,我们将每个阶段的成本体积的空间分辨率与输入特征图的双分辨率翻倍。我们将N定义为级联成本体积的总阶段数,然后将第k阶段成本体积的空间分辨率定义为。
扭曲操作
同样地,在立体匹配中,我们根据级联成本体积重新制定了方程式2。第k1阶段的第m像素坐标映射表示为:
3.3 特征金字塔
在这里,我们参考了特征金字塔网络[28],并采用了其增加了空间分辨率的特征图来构建更高分辨率的成本体积。
3.4 损失函数
具有N级的级联成本体积产生N−1中间输出和最终预测。我们将监督应用于所有输出,总损失定义为:
4. 实验
4.2 立体匹配
Implementation
为了平衡精度和效率之间的权衡,采用了两级级联成本体积,视差假设数为12个。相应的视差间隔分别设置为4像素和1像素。特征图的空间分辨率从原始输入图像大小的1/16增加到1/4。最大视差设置为192