经典的端到端的立体匹配网络:PSMNet(Pyramid Stereo Matching Network)

论文地址:https://arxiv.org/abs/1803.08669

代码地址:https://github.com/JiaRenChang/PSMNet

摘要

  1. 当前的体系结构依赖于基于 patch 的 Siamese 网络,缺乏利用上下文信息在不适区域中找到对应关系的方法(本文核心)。
  2. PSMNet 包括:空间金字塔池化、3D CNN、stackhourglass。
  3. 空间金字塔池模块通过在不同尺寸和位置聚合上下文以形成 cost volume,从而利用了全局上下文信息的能力。3D CNN 学习使用堆叠的多个沙漏网络和中间监督来正则化 cost volume。

贡献

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

一. 观点

  1. 深度估计的目标是计算参考图像中每个像素的视差 d。视差是指左右图像上对应像素之间的水平位移。
  2. 虽然与传统方法相比,CNN 在精度和速度上都有显着的提高,但在固有不适定的区域,如遮挡区域、重复模式、无纹理区域和反射表面,仍然很难找到准确的对应点。
  3. 单纯应用不同视点之间的强度一致性约束对于不适定区域的准确对应估计是不够的,对于无纹理区域则是无用的。因此,必须将来自全局上下文信息的区域支持纳入到立体匹配中。
  4. 当前基于 CNN 的立体匹配方法的一个主要问题是如何有效地利用上下文信息。
  5. 利用空间金字塔池 (SPP) 和空洞卷积放大感受野。通过这种方式,PSMNet 将像素级特征扩展为接受不同尺度的区域级特征。此外,还设计了一个堆叠的沙漏 3D CNN 和中间监督,以规范 cost volume。堆叠的沙漏 3D CNN 以自顶向下/自底向上的方式重复处理成本量,进一步提高全局上下文信息的利用率。

二.  相关工作

  1. 目前 SOTA 研究集中在如何使用 CNN 精确计算匹配代价,以及如何应用半全局匹配 (SGM) 来细化视差图。一些研究主要集中在视差图的后处理方面。基于物体通常呈现规则的结构,而非任意形状,提出了 Displets 方法。在该方法中,利用 3D 车辆模型解决了反射区域和无纹理区域的匹配歧义问题。
  2. DispNet 还为网络训练提供了一个大型合成数据集——场景流。第一和第二阶段分别计算视差图及其多尺度残差。然后将两个阶段的输出相加形成最终的视差图。CRL 也使用分级监督来计算不同分辨率的视差。GC-Net 采用编码器-解码器结构来规范成本量。这些方法的主要思想是结合上下文信息来减少模糊区域的失配,从而提高深度估计。
  3. 利用全局上下文信息的方法主要由两种:解码器——解码器体系结构和金字塔池化。编码器——解码器架构的主要思想是通过跳跃连接来集成自顶向下和自底向上的信息。全卷积网络 (FCN) 首先被提出来聚集粗-细预测,以提高分割结果。编码器-解码器结构也称为沙漏结构。

三.  网络结构

经典的端到端的立体匹配网络:PSMNet(Pyramid Stereo Matching Network)_第1张图片

  1. PSMNet 由整合全局上下文的 SPP 模块和用于成本量正则化的堆叠沙漏模块组成。
  2. 单从像素强度来确定上下文关系是很困难的。SPP 模块学习一个物体与其子区域(窗口、轮胎、发动机罩等)之间的关系,以合并层次上下文信息。
  3. SPP 模块采用自适应 average pooling 将 feature 压缩到 4 个尺度,然后通过 1×1 卷积维,再通过双线性插值将低维 feature map 上采样到与原始 feature map 相同大小的尺寸。然后利用左右图像特征形成 4D cost volume,将其送入 3D CNN 进行 cost volume 正则化和视差回归。

具体结构如下所示:
经典的端到端的立体匹配网络:PSMNet(Pyramid Stereo Matching Network)_第2张图片
经典的端到端的立体匹配网络:PSMNet(Pyramid Stereo Matching Network)_第3张图片
  中括号表示残差块,conv0_1 和 conv2_1 步长为 2 实现下采样,加和后不采用 ReLU,D 表示最大视差。conv1x、conv2x、conv3x 和 conv4x 是学习一元特征提取的基本残差块。对于 conv3 x 和 conv4 x,应用了空洞卷积以进一步扩大感受野。输出特征图的大小是输入图像大小的 1/4×1/4 。然后,将 SPP 模块应用于收集上下文信息。再将左右特征图连接成一个 cost volume,并将其输入 3D CNN 中进行正则化。最后,应用回归来计算输出视差图。

四. cost volume

  1. 本文采用 SPP 通过在每个视差级别上将左特征图与其对应的右特征图进行连接以形成一个 cost volume ,最终可得到 4D cost volume (高度×宽度×视差×特征尺寸)。
  2. 为了沿着视差维度和空间维度聚合特征信息,本文提出了两种用于 cost volume 正则化的3D CNN架构:basic 和堆叠的沙漏架构。其中basic是简单地用残差块构成的,含 12个3×3×3的卷积层。然后通过双线性插值将成本量向上采样回 H×W×D。最后,应用回归来计算大小为H×W的视差图。
  3. 为了了解更多上下文信息,本文使用了堆叠沙漏(编码器-解码器)体系结构,由重复的自顶向下/自底向上处理以及中间监督组成,堆叠的沙漏架构具有三个主要的沙漏网络,每个沙漏网络都会生成视差图。
  4. 在训练阶段,总损失被计算为三个损失的加权。在测试阶段,最终的视差图是三个输出中的最后一个。消融研究中,basic 用于评估 SPP 模块的性能,因为 basic 不会像中那样通过编码/解码过程来学习额外的上下文信息。

五. Disparity Regression

视差回归:
在这里插入图片描述
  σ(·) 表示 softmax 函数。每个视差 d 的概率是通过 softmax 运算从预测代价 cd 计算得出的。预测视差 d^ 是由每个视差 d 的概率加权得到的。上述视差回归方法比基于分类的立体匹配方法具有更强的鲁棒性。

六. Loss

PSMNet的损失函数定义为:
在这里插入图片描述
其中:
在这里插入图片描述   采用 Smooth L1 损失函数来训练 PSMNet。相比于L2,Smooth L1 损失对异常值有着更好的鲁棒性。

七. Experiments

  1. 在三个数据集上评估:Scene Flow, KITTI 2012, KITTI 2015。此外,在 KITTI 2015 进行消融实验,以评估空洞卷积、不同大小的金字塔池和堆叠沙漏 3D CNN 对性能的影响。
  2. Scene Flow 提供了密集和详细的视差图作为 GT。对于一些视差较大的像素,如果视差大于实验中设定的限制,则在损失计算中被排除。KITTI 2015 是真实世界的数据集,它包含2 00 对利用激光雷达获得的有稀疏 GT 视差的训练立体图像对和另外 200 对无 GT 视差的测试图像对。进一步将整个训练数据集划分为训练集和验证集。
  3. BN 和 ReLU 的使用与 ResNet 中相同,但PSMNet 在求和后不使用 ReLU。Adam 训练,颜色归一化、随机裁剪、最大视差(D):192。Scene Flow 以恒定的 0.001 学习率头开始训练 10 个 epoch。对于 Scene Flow,直接使用训练好的模型进行测试。KITTI 使用经过 Scene Flow 训练的模型。这个微调的学习率在前 200 个epoch开始为0.001,在剩下的 100 个 epoch 开始为 0.0001。

消融实验

经典的端到端的立体匹配网络:PSMNet(Pyramid Stereo Matching Network)_第4张图片
“*” 表示使用了空洞卷积的一半扩张率

  1. KITTI 三像素误差的百分比,以及 Scene Flow上的端点误差的百分比。
  2. 当与 SPP 模块一起使用时,空洞卷积效果更好。
  3. 对于金字塔池,有更多层次的池工作得更好。
  4. 堆叠沙漏 3D CNN 在与空洞卷积、SPP 模块相结合的情况下,明显优于 basic 3D CNN。
    经典的端到端的立体匹配网络:PSMNet(Pyramid Stereo Matching Network)_第5张图片
      Loss_1、Loss_2 和 Loss_3 的权重值对验证错误的影响。根据训练发现,0.5/0.7/1.0 的性能最好。
    经典的端到端的立体匹配网络:PSMNet(Pyramid Stereo Matching Network)_第6张图片
      “All” 表示在误差估计中考虑了所有的像素。“Noc” 表示只考虑了未遮挡区域的像素。“D1-bg”、“D1-fg” 和 “D1-all” 三列分别表示在误差估计中考虑了背景、前景和所有区域的像素点结果显示了来自所有测试图像的误差超过三个像素或视差误差的 5% 的像素百分比。
    经典的端到端的立体匹配网络:PSMNet(Pyramid Stereo Matching Network)_第7张图片
    经典的端到端的立体匹配网络:PSMNet(Pyramid Stereo Matching Network)_第8张图片
      计算了 KITTI 2012 数据集中 195 幅测试图像的视差图, PSMNet 的全图三像素误差为 1.89%,表现 SOTA。
    经典的端到端的立体匹配网络:PSMNet(Pyramid Stereo Matching Network)_第9张图片
      PSMNet 获得了更可靠的结果,特别是在车窗和墙壁区域,如图中黄色箭头所示。

最后

  也做了一些复现工作,无须怀疑的是 PSMNet 的参数量是较大的,对设备的要求会高一些,复现起来还蛮困难的。
  由于随机初始化了训练,导致结果还是远不及论文标准。现在想着有没有办法能够变得更轻量一些,不然训练就是一件很让人头疼的事情。
  虽然后面也出了很多轻量级,精确度也没有下降很多的网络,但这篇论文还是很经典的。

你可能感兴趣的:(立体匹配,卷积神经网络,计算机视觉,神经网络,网络,卷积,机器学习)