PSMnet

摘要

        最近的工作表明,可以将立于体图像对的深度估计表述为一种有监督的学习任务,可以通过卷积神经网络 (CNN) 来解决。然而,当前的架构依赖基于补丁的Siamese网络,缺乏利用上下文信息在不适定区域中查找对应关系的方法。为了解决这个问题,我们提出了 PSMNet,这是一种金字塔立体匹配网络,由两个主要模块组成:空间金字塔池化3D CNN空间金字塔池化模块利用全局上下文信息的容量,通过聚合不同尺度和位置的上下文来形成成本量。 3D CNN 学习使用堆叠的多个沙漏网络结合中间监督来规范成本量。所提出的方法在几个基准数据集上进行了评估。我们的方法在 2018 年 3 月 18 日之前在 KITTI 2012 和 2015 排行榜中排名第一。 PSMNet 的代码可在:https://github.com/JiaRenChang/PSMNet 获得。

1. 介绍

       车辆自动驾驶、 立体图像的深度估计对于计算机视觉应用至关重要,包括3D 模型重建以及物体检测和识别 [4, 31]。给定一对校正后的立体图像,深度估计的目标是计算参考图像中每个像素的视差 d。视差是指左右图像上一对对应像素之间的水平位移。对于左图中的像素 (x, y),如果在右图中的(x-d, y) 处找到其对应点,则该像素的深度由 fB/d 计算,其中 f 是相机的焦距长度, B 是两个相机中心之间的距离。

        立体匹配的典型流程涉及基于匹配成本后处理寻找对应点。最近,卷积神经网络 (CNN) 已被应用于学习如何匹配 MC-CNN [30] 中的对应点。使用 CNN 的早期方法将对应估计问题视为相似度计算 [27、30],其中 CNN 计算一对图像块的相似度分数,以进一步确定它们是否匹配。尽管与传统方法相比,CNN 在精度和速度方面都取得了显着的进步,但仍然很难在固有的不适定区域(例如遮挡区域、重复图案、无纹理区域和反射面)中找到准确的对应点。仅在不同视点之间应用强度一致性约束通常不足以在此类不适定区域中进行准确的对应估计,并且在无纹理区域中是无用的。因此,必须将来自全局上下文信息的区域支持纳入立体匹配。

        当前基于 CNN 的立体匹配方法的一个主要问题是如何有效地利用上下文信息。一些研究试图结合语义信息来大幅改进成本量或视差图 [8, 13, 27]。 Displets [8] 方法通过对 3D 车辆建模来利用对象信息来解决立体匹配中的歧义。 ResMatchNet [27] 学习测量视差图的反射置信度,以提高不适定区域的性能。 GC-Net [13] 采用编码器-解码器架构来合并多尺度特征以进行成本量正则化。

        在这项工作中,我们提出了一种新颖的金字塔立体匹配网络(PSMNet)来利用立体匹配中的全局上下文信息。 空间金字塔池化 (SPP) [9, 32] 和扩张卷积 [2, 29] 用于扩大感受野。 这样,PSMNet 将像素级特征扩展到具有不同感受野尺度的区域级特征; 由此产生的组合全局和局部特征线索用于形成可靠视差估计的成本量。 此外,我们结合中间监督设计了一个堆叠的沙漏 3D CNN,以规范成本量。 堆叠沙漏3D CNN以自上而下/自下而上的方式重复处理成本量,以进一步提高全局上下文信息的利用率。

我们的主要贡献如下:

  1. 我们提出了一种无需任何后处理的立体匹配端到端学习框架。
  2. 我们引入了一个金字塔池模块,用于将全局上下文信息合并到图像特征中。
  3. 我们提出了一个堆叠的沙漏 3D CNN,以扩展成本量中上下文信息的区域支持。

我们在 KITTI 数据集上实现了最先进的准确性。

2. 相关工作

        对于立体图像的深度估计,文献中已经提出了许多匹配成本计算和成本量优化的方法。 根据[25],典型的立体匹配算法包括四个步骤:匹配成本计算、成本聚合、优化和视差细化

        当前最先进的研究集中在如何使用 CNN 准确计算匹配成本以及如何应用半全局匹配 (SGM) [11] 来细化视差图。 Zbontar 和 LeCun [30] 引入了一个深度连体网络来计算匹配成本。 使用一对 9 × 9 的图像块,训练网络学习预测图像块之间的相似性。 他们的方法还利用典型的立体匹配程序,包括成本聚合、SGM 和其他视差图改进来改进匹配结果。 进一步的研究改进了立体深度估计。 罗等人。 [18] 提出了一个显着更快的 Siamese 网络,其中匹配成本的计算被视为多标签分类。 Shaked 和 Wolf [27] 提出了一个用于匹配成本计算的高速公路网络和一个用于预测视差置信度分数的全局视差网络,这有助于进一步细化视差图。

        一些研究侧重于视差图的后处理。 Displets [8] 方法是基于物体通常表现出规则的结构,而不是任意形状的事实而提出的。 在 Displets [8] 方法中,车辆的 3D 模型用于解决反射和无纹理区域中的匹配模糊性。 此外,Gidaris 和 Komodakis [6] 提出了一种网络架构,该架构通过检测不正确的标签、用新标签替换不正确的标签以及细化更新的标签 (DRR) 来改进标签。 Gidaris 和 Komodakis [6] 在视差图上使用 DRR 网络,无需其他后处理即可获得良好的性能。 SGM-Net [26] 学习预测 SGM 惩罚,而不是手动调整正则化惩罚。

        最近,已经开发出端到端网络来预测整个视差图而无需后处理。迈耶等人。 [19] 提出了用于估计视差 (DispNet) 和光流 (FlowNet) 的端到端网络。它们还提供了用于网络训练的大型合成数据集 Scene Flow。庞等人。 [21] 扩展了 DispNet [19] 并引入了一个称为级联残差学习(CRL)的两阶段网络。第一和第二阶段分别计算视差图及其多尺度残差。然后将两个阶段的输出相加以形成最终的视差图。此外,肯德尔等人。 [13] 介绍了 GC-Net,这是一种使用 3D 卷积进行成本量正则化的端到端网络。上述端到端方法利用多尺度特征进行视差估计。 DispNet [19] 和 CRL [21] 都重用层次信息,将来自较低层的特征与来自较高层的特征连接起来。 CRL [21] 还使用分层监督来计算多个分辨率的差异。 GC-Net [13] 应用编码器-解码器架构来规范成本量。这些方法的主要思想是结合上下文信息来减少模糊区域的失配,从而提高深度估计。

        在语义分割领域,聚合上下文信息对于标记对象类也是必不可少的。利用全局上下文信息有两种主要方法:编码器-解码器架构金字塔池化。编码器-解码器架构的主要思想是通过跳过连接集成自顶向下和自底向上的信息。全卷积网络(FCN)[17]首先被提出来聚合粗到细的预测以改善分割结果。 UNet [24],不是聚合粗到细的预测,而是聚合粗到细的特征,并为生物医学图像实现了良好的分割结果。包括 SharpMask [22]、RefineNet [15] 和标签细化网络 [12] 在内的进一步研究遵循这一核心思想,并提出了更复杂的架构来合并多尺度特征。此外,还引入了堆叠的多个编码器 - 解码器网络,例如 [5] 和 [20],以改进特征融合。在[20]中,编码器-解码器架构被称为沙漏架构。

        金字塔池化的提出是基于这样一个事实,即深度网络中的经验感受野远小于理论感受野[16]。 ParseNet [16] 表明使用 FCN 的全局池化扩大了经验感受野以在整个图像级别提取信息,从而改善语义分割结果。 DeepLab v2 [2] 提出了用于多尺度特征嵌入的多孔空间金字塔池化 (ASPP),包含具有不同扩张率的平行扩张卷积。 PSPNet [32] 提出了一个金字塔池模块来收集有效的多尺度上下文先验。 受 PSPNet [32] 的启发,DeepLab v3 [3] 提出了一个新的 ASPP 模块,增加了全局池化。

        空间金字塔的类似想法已用于光流的上下文中。 SPyNet [23] 引入图像金字塔以从粗到细的方法估计光流。 WCNet [28] 通过使用特征金字塔改进了光流估计。

        在这项立体匹配工作中,我们利用语义分割研究的经验,并在整个图像级别利用全局上下文信息。 如下所述,我们通过用于深度估计的金字塔立体匹配网络提出多尺度上下文聚合。

3. 金字塔立体匹配网络

        我们提出了 PSMNet,它由一个 SPP [9, 32] 模块组成,用于有效地结合全局上下文和一个堆叠的沙漏模块,用于成本量正则化。 PSMNet 的架构如图 1 所示。

3.1 网络架构

        所提出的 PSMNet 的参数在表 1 中详述。 与其他研究 [10] 中第一个卷积层的大滤波器 (7 × 7) 的应用相比,三个小卷积滤波器 (3 × 3) 级联以构建 具有相同感受野的更深层次的网络。 conv1 x、conv2 x、conv3 x和conv4 x是用于学习一元特征提取的基本残差块[10]。 对于 conv3 x 和 conv4 x, 输出特征图大小为应用扩张卷积以进一步扩大感受野。输入图像大小的 1/4 × 1/4,如表 1 所示。然后应用 SPP 模块(如图 1 所示)来收集上下文信息。 我们将左右特征图连接成一个成本量,将其输入 3D CNN 进行正则化。 最后,应用回归来计算输出视差图。 SPP 模块、成本量、3D CNN 和视差回归将在后面的部分中描述。

3.2 空间金字塔池化模块

仅从像素强度很难确定上下文关系。 因此,富含对象上下文信息的图像特征可以有利于对应估计,特别是对于不适定区域。 在这项工作中,SPP 模块学习对象(例如,汽车)与其子区域(窗户、轮胎、引擎盖等)之间的关系,以合并分层上下文信息。

在 [9] 中,SPP 旨在消除 CNN 的固定大小约束。由 SPP 生成的不同级别的特征图被展平并送入全连接层进行分类,然后将 SPP 应用于语义分割问题。 ParseNet [16] 应用全局平均池化来合并全局上下文信息。 PSPNet [32] 将 ParseNet [16] 扩展到分层全局先验,包含不同尺度和子区域的信息。在 [32] 中,SPP 模块使用自适应平均池化将特征压缩为四个尺度,然后进行 1 × 1 卷积以减少特征维度,然后将低维特征图上采样到与原始特征相同的大小通过双线性插值映射。不同级别的特征图连接起来作为最终的 SPP 特征图。

在目前的工作中,我们为 SPP 设计了四个固定大小的平均池化块:64 × 64、32 × 32、16 × 16、8 × 8,如图 1 和表 1 所示。进一步的操作,包括 1 × 1 卷积和上采样,与 [32] 中的相同。 在消融研究中,我们进行了大量实验以显示不同级别的特征图的影响,如第 4.2 节所述。

3.3 成本量

MC-而是连接左CNN [30] 和 GC-Net [13] 方法不是使用距离度量,右特征以使用深度网络学习匹配成本估计。 在[13]之后,我们采用SPP特征通过在每个视差级别上将左特征图与其对应的右特征图连接起来形成成本量,从而产生4D体积(高×宽×视差×特征大小)。

3.4 3D CNN

SPP 模块通过涉及不同级别的特征来促进立体匹配。 为了沿视差维度和空间维度聚合特征信息,我们提出了两种用于成本量正则化的 3D CNN 架构:基本和堆叠沙漏架构。 在基本架构中,如图 1 所示,网络是简单地使用残差块构建的。 基本架构包含十二个 3 × 3 × 3 卷积层。 然后我们通过双线性插值将成本量上采样回大小 H×W×D。 最后,我们应用回归来计算大小为 H × W 的视差图,这在 3.5 节中介绍。

为了学习更多的上下文信息,我们使用了堆叠沙漏(编码器-解码器)架构,由重复的自顶向下/自底向上处理结合中间监督组成,如图 1 所示。 堆叠沙漏架构具有三个主要 沙漏网络,每个网络都会生成一个视差图。 也就是说,堆叠沙漏架构具有三个输出和损失(Loss 1、Loss 2 和 Loss 3)。 损失函数在第 3.6 节中描述。 在训练阶段,总损失计算为三个损失的加权和。 在测试阶段,最终的视差图是三个输出中的最后一个。 在我们的消融研究中,基本架构用于评估 SPP 模块的性能,因为基本架构没有像 [13] 那样通过编码/解码过程学习额外的上下文信息。

3.5 视差回归

我们使用 [13] 中提出的视差回归来估计连续视差图。 每个视差 d 的概率是通过 softmax 操作 σ(·) 从预测成本 cd 计算的。 预测的视差 ˆd 计算为每个视差 d 的总和,按其概率加权,如:

正如 [13] 中所报道的,上述视差回归比基于分类的立体匹配方法更稳健。 请注意,上述等式类似于 [1] 中介绍的等式,在其中它被称为软注意机制。

3.6 损失函数

由于视差回归,我们采用平滑 L1 损失函数来训练提出的 PSMNet。 与 L2 损失相比,平滑 L1 损失广泛用于目标检测的边界框回归,因为它具有鲁棒性和对异常值的低敏感性 [7]。 PSMNet 的损失函数定义为:

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值